/*===========================================================================*/
/*   (Llib/weakhash.scm)                                                     */
/*   Bigloo (4.7a)                                                           */
/*   Inria -- Sophia Antipolis (c)       Thu Feb 19 09:11:58 AM CET 2026     */
/*===========================================================================*/
/* COMPILATION: (/home/serrano/prgm/project/bigloo/4.7a/bin/bigloo -srfi bigloo-unsafe -O3 -fcfa-arithmetic -q -lib-dir /home/serrano/prgm/project/bigloo/4.7a/lib/bigloo/4.7a +rm -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);
	static obj_t BGl_z62zc3z04anonymousza31523ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_weakzd2hashtablezd2getz00zz__weakhashz00(obj_t,
		obj_t);
	static obj_t BGl_z62zc3z04anonymousza31337ze3ze5zz__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_requirezd2initializa7ationz75zz__weakhashz00 = BUNSPEC;
	static obj_t BGl_traversezd2bucketszd2zz__weakhashz00(obj_t, obj_t, long,
		obj_t);
	static obj_t BGl_z62zc3z04anonymousza31460ze3ze5zz__weakhashz00(obj_t, obj_t,
		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_z62zc3z04anonymousza31446ze3ze5zz__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 obj_t BGl_z62zc3z04anonymousza31439ze3ze5zz__weakhashz00(obj_t, obj_t,
		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_z62zc3z04anonymousza31634ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_z62zc3z04anonymousza31448ze3ze5zz__weakhashz00(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);
	extern obj_t bgl_bignum_mul(obj_t, obj_t);
	static obj_t BGl_z62zc3z04anonymousza31401ze3ze5zz__weakhashz00(obj_t, 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);
	BGL_EXPORTED_DECL bool_t
		BGl_weakzd2hashtablezd2containszf3zf3zz__weakhashz00(obj_t, obj_t);
	static obj_t BGl_z62zc3z04anonymousza31475ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t, obj_t);
	static bool_t
		BGl_weakzd2oldzd2hashtablezd2containszf3z21zz__weakhashz00(obj_t, obj_t);
	extern obj_t bstring_to_symbol(obj_t);
	static obj_t BGl_symbol2180z00zz__weakhashz00 = BUNSPEC;
	extern obj_t make_vector(long, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_weakzd2hashtablezd2ze3listze3zz__weakhashz00(obj_t);
	static obj_t BGl_z62zc3z04anonymousza31420ze3ze5zz__weakhashz00(obj_t, obj_t);
	static obj_t BGl_z62zc3z04anonymousza31581ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_z62weakzd2hashtablezd2mapz62zz__weakhashz00(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);
	static obj_t BGl_z62zc3z04anonymousza31413ze3ze5zz__weakhashz00(obj_t, obj_t,
		obj_t);
	extern obj_t bgl_make_weakptr(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_z62zc3z04anonymousza31672ze3ze5zz__weakhashz00(obj_t, 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);
	extern obj_t bgl_long_to_bignum(long);
	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_z62zc3z04anonymousza31409ze3ze5zz__weakhashz00(obj_t, obj_t,
		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_za762weakza7d2hashta2192z00,
		BGl_z62weakzd2hashtablezd2filterz12z70zz__weakhashz00, 0L, BUNSPEC, 2);
	      BGL_DEFINE_STRING(BGl_string2168z00zz__weakhashz00,
		BgL_bgl_string2168za700za7za7_2193za7,
		"/tmp/bigloo/runtime/Llib/weakhash.scm", 37);
	      BGL_DEFINE_STRING(BGl_string2169z00zz__weakhashz00,
		BgL_bgl_string2169za700za7za7_2194za7, "&weak-hashtable->vector", 23);
	      BGL_DEFINE_STRING(BGl_string2170z00zz__weakhashz00,
		BgL_bgl_string2170za700za7za7_2195za7, "struct", 6);
	      BGL_DEFINE_STRING(BGl_string2171z00zz__weakhashz00,
		BgL_bgl_string2171za700za7za7_2196za7, "&weak-hashtable->list", 21);
	      BGL_DEFINE_STRING(BGl_string2172z00zz__weakhashz00,
		BgL_bgl_string2172za700za7za7_2197za7, "&weak-hashtable-key-list", 24);
	      BGL_DEFINE_STRING(BGl_string2173z00zz__weakhashz00,
		BgL_bgl_string2173za700za7za7_2198za7, "&weak-hashtable-map", 19);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2167z00zz__weakhashz00,
		BgL_bgl_za762za7c3za704anonymo2199za7,
		BGl_z62zc3z04anonymousza31337ze3ze5zz__weakhashz00, 0L, BUNSPEC, 2);
	      BGL_DEFINE_STRING(BGl_string2174z00zz__weakhashz00,
		BgL_bgl_string2174za700za7za7_2200za7, "procedure", 9);
	      BGL_DEFINE_STRING(BGl_string2175z00zz__weakhashz00,
		BgL_bgl_string2175za700za7za7_2201za7, "&weak-hashtable-for-each", 24);
	      BGL_DEFINE_STRING(BGl_string2176z00zz__weakhashz00,
		BgL_bgl_string2176za700za7za7_2202za7, "&weak-hashtable-filter!", 23);
	      BGL_DEFINE_STRING(BGl_string2179z00zz__weakhashz00,
		BgL_bgl_string2179za700za7za7_2203za7, "&weak-hashtable-clear!", 22);
	      BGL_DEFINE_STRING(BGl_string2181z00zz__weakhashz00,
		BgL_bgl_string2181za700za7za7_2204za7, "persistent", 10);
	      BGL_DEFINE_STRING(BGl_string2182z00zz__weakhashz00,
		BgL_bgl_string2182za700za7za7_2205za7, "&weak-hashtable-contains?", 25);
	      BGL_DEFINE_STRING(BGl_string2183z00zz__weakhashz00,
		BgL_bgl_string2183za700za7za7_2206za7, "&weak-hashtable-get", 19);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2177z00zz__weakhashz00,
		BgL_bgl_za762za7c3za704anonymo2207za7,
		BGl_z62zc3z04anonymousza31446ze3ze5zz__weakhashz00, 0L, BUNSPEC, 2);
	      BGL_DEFINE_STRING(BGl_string2184z00zz__weakhashz00,
		BgL_bgl_string2184za700za7za7_2208za7, "&weak-hashtable-put!", 20);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2178z00zz__weakhashz00,
		BgL_bgl_za762za7c3za704anonymo2209za7,
		BGl_z62zc3z04anonymousza31448ze3ze5zz__weakhashz00, 0L, BUNSPEC, 2);
	      BGL_DEFINE_STRING(BGl_string2185z00zz__weakhashz00,
		BgL_bgl_string2185za700za7za7_2210za7, "&weak-hashtable-update!", 23);
	      BGL_DEFINE_STRING(BGl_string2186z00zz__weakhashz00,
		BgL_bgl_string2186za700za7za7_2211za7, "&weak-hashtable-add!", 20);
	      BGL_DEFINE_STRING(BGl_string2187z00zz__weakhashz00,
		BgL_bgl_string2187za700za7za7_2212za7, "&weak-hashtable-remove!", 23);
	      BGL_DEFINE_STRING(BGl_string2188z00zz__weakhashz00,
		BgL_bgl_string2188za700za7za7_2213za7,
		"Hashtable too large (new-len=~a/~a, size=~a)", 44);
	      BGL_DEFINE_STRING(BGl_string2189z00zz__weakhashz00,
		BgL_bgl_string2189za700za7za7_2214za7, "hashtable-put!", 14);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2clearz12zd2envzc0zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2215z00,
		BGl_z62weakzd2hashtablezd2clearz12z70zz__weakhashz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2ze3vectorzd2envz31zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2216z00,
		BGl_z62weakzd2hashtablezd2ze3vectorz81zz__weakhashz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2mapzd2envzd2zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2217z00,
		BGl_z62weakzd2hashtablezd2mapz62zz__weakhashz00, 0L, BUNSPEC, 2);
	      BGL_DEFINE_STRING(BGl_string2190z00zz__weakhashz00,
		BgL_bgl_string2190za700za7za7_2218za7, "&weak-hashtable-expand!", 23);
	      BGL_DEFINE_STRING(BGl_string2191z00zz__weakhashz00,
		BgL_bgl_string2191za700za7za7_2219za7, "__weakhash", 10);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2getzd2envzd2zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2220z00,
		BGl_z62weakzd2hashtablezd2getz62zz__weakhashz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2containszf3zd2envz21zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2221z00,
		BGl_z62weakzd2hashtablezd2containszf3z91zz__weakhashz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2expandz12zd2envzc0zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2222z00,
		BGl_z62weakzd2hashtablezd2expandz12z70zz__weakhashz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2ze3listzd2envz31zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2223z00,
		BGl_z62weakzd2hashtablezd2ze3listz81zz__weakhashz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2updatez12zd2envzc0zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2224z00,
		BGl_z62weakzd2hashtablezd2updatez12z70zz__weakhashz00, 0L, BUNSPEC, 4);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2forzd2eachzd2envz00zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2225z00,
		BGl_z62weakzd2hashtablezd2forzd2eachzb0zz__weakhashz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2addz12zd2envzc0zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2226z00,
		BGl_z62weakzd2hashtablezd2addz12z70zz__weakhashz00, 0L, BUNSPEC, 5);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2removez12zd2envzc0zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2227z00,
		BGl_z62weakzd2hashtablezd2removez12z70zz__weakhashz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2putz12zd2envzc0zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2228z00,
		BGl_z62weakzd2hashtablezd2putz12z70zz__weakhashz00, 0L, BUNSPEC, 3);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_weakzd2hashtablezd2keyzd2listzd2envz00zz__weakhashz00,
		BgL_bgl_za762weakza7d2hashta2229z00,
		BGl_z62weakzd2hashtablezd2keyzd2listzb0zz__weakhashz00, 0L, BUNSPEC, 1);

/* contant bindings */
	static void bgl_constant_bindings()
	{
		BGL_BIND_PROCEDURE
			(BGl_weakzd2hashtablezd2keyzd2listzd2envz00zz__weakhashz00,
			BgL_bgl_za762weakza7d2hashta2229z00);
		BGL_BIND_PROCEDURE(BGl_weakzd2hashtablezd2putz12zd2envzc0zz__weakhashz00,
			BgL_bgl_za762weakza7d2hashta2228z00);
		BGL_BIND_PROCEDURE(BGl_weakzd2hashtablezd2removez12zd2envzc0zz__weakhashz00,
			BgL_bgl_za762weakza7d2hashta2227z00);
		BGL_BIND_PROCEDURE(BGl_weakzd2hashtablezd2addz12zd2envzc0zz__weakhashz00,
			BgL_bgl_za762weakza7d2hashta2226z00);
		BGL_BIND_PROCEDURE
			(BGl_weakzd2hashtablezd2forzd2eachzd2envz00zz__weakhashz00,
			BgL_bgl_za762weakza7d2hashta2225z00);
		BGL_BIND_PROCEDURE(BGl_weakzd2hashtablezd2updatez12zd2envzc0zz__weakhashz00,
			BgL_bgl_za762weakza7d2hashta2224z00);
		BGL_BIND_PROCEDURE(BGl_weakzd2hashtablezd2ze3listzd2envz31zz__weakhashz00,
			BgL_bgl_za762weakza7d2hashta2223z00);
		BGL_BIND_PROCEDURE(BGl_weakzd2hashtablezd2expandz12zd2envzc0zz__weakhashz00,
			BgL_bgl_za762weakza7d2hashta2222z00);
		BGL_BIND_PROCEDURE
			(BGl_weakzd2hashtablezd2containszf3zd2envz21zz__weakhashz00,
			BgL_bgl_za762weakza7d2hashta2221z00);
		BGL_BIND_PROCEDURE(BGl_weakzd2hashtablezd2getzd2envzd2zz__weakhashz00,
			BgL_bgl_za762weakza7d2hashta2220z00);
		BGL_BIND_STRING(BGl_string2191z00zz__weakhashz00,
			BgL_bgl_string2191za700za7za7_2219za7);
		BGL_BIND_STRING(BGl_string2190z00zz__weakhashz00,
			BgL_bgl_string2190za700za7za7_2218za7);
		BGL_BIND_PROCEDURE(BGl_weakzd2hashtablezd2mapzd2envzd2zz__weakhashz00,
			BgL_bgl_za762weakza7d2hashta2217z00);
		BGL_BIND_PROCEDURE(BGl_weakzd2hashtablezd2ze3vectorzd2envz31zz__weakhashz00,
			BgL_bgl_za762weakza7d2hashta2216z00);
		BGL_BIND_PROCEDURE(BGl_weakzd2hashtablezd2clearz12zd2envzc0zz__weakhashz00,
			BgL_bgl_za762weakza7d2hashta2215z00);
		BGL_BIND_STRING(BGl_string2189z00zz__weakhashz00,
			BgL_bgl_string2189za700za7za7_2214za7);
		BGL_BIND_STRING(BGl_string2188z00zz__weakhashz00,
			BgL_bgl_string2188za700za7za7_2213za7);
		BGL_BIND_STRING(BGl_string2187z00zz__weakhashz00,
			BgL_bgl_string2187za700za7za7_2212za7);
		BGL_BIND_STRING(BGl_string2186z00zz__weakhashz00,
			BgL_bgl_string2186za700za7za7_2211za7);
		BGL_BIND_STRING(BGl_string2185z00zz__weakhashz00,
			BgL_bgl_string2185za700za7za7_2210za7);
		BGL_BIND_PROCEDURE(BGl_proc2178z00zz__weakhashz00,
			BgL_bgl_za762za7c3za704anonymo2209za7);
		BGL_BIND_STRING(BGl_string2184z00zz__weakhashz00,
			BgL_bgl_string2184za700za7za7_2208za7);
		BGL_BIND_PROCEDURE(BGl_proc2177z00zz__weakhashz00,
			BgL_bgl_za762za7c3za704anonymo2207za7);
		BGL_BIND_STRING(BGl_string2183z00zz__weakhashz00,
			BgL_bgl_string2183za700za7za7_2206za7);
		BGL_BIND_STRING(BGl_string2182z00zz__weakhashz00,
			BgL_bgl_string2182za700za7za7_2205za7);
		BGL_BIND_STRING(BGl_string2181z00zz__weakhashz00,
			BgL_bgl_string2181za700za7za7_2204za7);
		BGL_BIND_STRING(BGl_string2179z00zz__weakhashz00,
			BgL_bgl_string2179za700za7za7_2203za7);
		BGL_BIND_STRING(BGl_string2176z00zz__weakhashz00,
			BgL_bgl_string2176za700za7za7_2202za7);
		BGL_BIND_STRING(BGl_string2175z00zz__weakhashz00,
			BgL_bgl_string2175za700za7za7_2201za7);
		BGL_BIND_STRING(BGl_string2174z00zz__weakhashz00,
			BgL_bgl_string2174za700za7za7_2200za7);
		BGL_BIND_PROCEDURE(BGl_proc2167z00zz__weakhashz00,
			BgL_bgl_za762za7c3za704anonymo2199za7);
		BGL_BIND_STRING(BGl_string2173z00zz__weakhashz00,
			BgL_bgl_string2173za700za7za7_2198za7);
		BGL_BIND_STRING(BGl_string2172z00zz__weakhashz00,
			BgL_bgl_string2172za700za7za7_2197za7);
		BGL_BIND_STRING(BGl_string2171z00zz__weakhashz00,
			BgL_bgl_string2171za700za7za7_2196za7);
		BGL_BIND_STRING(BGl_string2170z00zz__weakhashz00,
			BgL_bgl_string2170za700za7za7_2195za7);
		BGL_BIND_STRING(BGl_string2169z00zz__weakhashz00,
			BgL_bgl_string2169za700za7za7_2194za7);
		BGL_BIND_STRING(BGl_string2168z00zz__weakhashz00,
			BgL_bgl_string2168za700za7za7_2193za7);
		BGL_BIND_PROCEDURE(BGl_weakzd2hashtablezd2filterz12zd2envzc0zz__weakhashz00,
			BgL_bgl_za762weakza7d2hashta2192z00);
	}

/* 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_symbol2180z00zz__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_4354, char *BgL_fromz00_4355)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zz__weakhashz00))
				{
					BGl_requirezd2initializa7ationz75zz__weakhashz00 =
						BBOOL(((bool_t) 0));
					bgl_constant_bindings();
					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_symbol2180z00zz__weakhashz00 =
				bstring_to_symbol(BGl_string2181z00zz__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_1296;

					BgL_g1060z00_1296 =
						VECTOR_REF(((obj_t) BgL_bucketsz00_48), BgL_iz00_49);
					{
						obj_t BgL_bucketz00_1298;
						obj_t BgL_lastzd2bucketzd2_1299;

						BgL_bucketz00_1298 = BgL_g1060z00_1296;
						BgL_lastzd2bucketzd2_1299 = BFALSE;
					BgL_zc3z04anonymousza31269ze3z87_1300:
						if (NULLP(BgL_bucketz00_1298))
							{	/* Llib/weakhash.scm 145 */
								return BGl_keepgoingz00zz__weakhashz00;
							}
						else
							{	/* Llib/weakhash.scm 145 */
								obj_t BgL_retz00_1302;

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

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

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

											BgL_pairz00_2571 = CAR(((obj_t) BgL_bucketz00_1298));
											BgL_arg1278z00_1307 = CAR(BgL_pairz00_2571);
										}
										BgL_keyz00_1305 =
											bgl_weakptr_data(((obj_t) BgL_arg1278z00_1307));
									}
									if ((BgL_keyz00_1305 == BUNSPEC))
										{	/* Llib/weakhash.scm 154 */
											BgL_retz00_1302 = BGl_removez00zz__weakhashz00;
										}
									else
										{	/* Llib/weakhash.scm 156 */
											obj_t BgL_arg1276z00_1306;

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

												BgL_pairz00_2576 = CAR(((obj_t) BgL_bucketz00_1298));
												BgL_arg1276z00_1306 = CDR(BgL_pairz00_2576);
											}
											BgL_retz00_1302 =
												((obj_t(*)(obj_t, obj_t, obj_t,
														obj_t))
												PROCEDURE_L_ENTRY(BgL_funz00_50)) (BgL_funz00_50,
												BgL_keyz00_1305, BgL_arg1276z00_1306,
												BgL_bucketz00_1298);
										}
								}
								if ((BgL_retz00_1302 == BGl_keepgoingz00zz__weakhashz00))
									{	/* Llib/weakhash.scm 145 */
										obj_t BgL_arg1271z00_1303;

										BgL_arg1271z00_1303 = CDR(((obj_t) BgL_bucketz00_1298));
										{
											obj_t BgL_lastzd2bucketzd2_4399;
											obj_t BgL_bucketz00_4398;

											BgL_bucketz00_4398 = BgL_arg1271z00_1303;
											BgL_lastzd2bucketzd2_4399 = BgL_bucketz00_1298;
											BgL_lastzd2bucketzd2_1299 = BgL_lastzd2bucketzd2_4399;
											BgL_bucketz00_1298 = BgL_bucketz00_4398;
											goto BgL_zc3z04anonymousza31269ze3z87_1300;
										}
									}
								else
									{	/* Llib/weakhash.scm 145 */
										if ((BgL_retz00_1302 == BGl_removez00zz__weakhashz00))
											{	/* Llib/weakhash.scm 145 */
												{	/* Llib/weakhash.scm 134 */
													long BgL_arg1262z00_2578;

													BgL_arg1262z00_2578 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_47,
																(int) (0L))) - 1L);
													{	/* Llib/weakhash.scm 134 */
														obj_t BgL_auxz00_4408;
														int BgL_tmpz00_4406;

														BgL_auxz00_4408 = BINT(BgL_arg1262z00_2578);
														BgL_tmpz00_4406 = (int) (0L);
														STRUCT_SET(BgL_tablez00_47, BgL_tmpz00_4406,
															BgL_auxz00_4408);
												}}
												if (CBOOL(BgL_lastzd2bucketzd2_1299))
													{	/* Llib/weakhash.scm 136 */
														obj_t BgL_arg1265z00_2580;

														BgL_arg1265z00_2580 =
															CDR(((obj_t) BgL_bucketz00_1298));
														{	/* Llib/weakhash.scm 136 */
															obj_t BgL_tmpz00_4415;

															BgL_tmpz00_4415 =
																((obj_t) BgL_lastzd2bucketzd2_1299);
															SET_CDR(BgL_tmpz00_4415, BgL_arg1265z00_2580);
														}
													}
												else
													{	/* Llib/weakhash.scm 137 */
														obj_t BgL_arg1266z00_2581;

														BgL_arg1266z00_2581 =
															CDR(((obj_t) BgL_bucketz00_1298));
														VECTOR_SET(
															((obj_t) BgL_bucketsz00_48), BgL_iz00_49,
															BgL_arg1266z00_2581);
													}
												BGl_keepgoingz00zz__weakhashz00;
												{	/* Llib/weakhash.scm 145 */
													obj_t BgL_arg1274z00_1304;

													BgL_arg1274z00_1304 =
														CDR(((obj_t) BgL_bucketz00_1298));
													{
														obj_t BgL_bucketz00_4424;

														BgL_bucketz00_4424 = BgL_arg1274z00_1304;
														BgL_bucketz00_1298 = BgL_bucketz00_4424;
														goto BgL_zc3z04anonymousza31269ze3z87_1300;
													}
												}
											}
										else
											{	/* Llib/weakhash.scm 145 */
												if (
													(BgL_retz00_1302 == BGl_removestopz00zz__weakhashz00))
													{	/* Llib/weakhash.scm 145 */
														{	/* Llib/weakhash.scm 134 */
															long BgL_arg1262z00_2591;

															BgL_arg1262z00_2591 =
																(
																(long) CINT(STRUCT_REF(BgL_tablez00_47,
																		(int) (0L))) - 1L);
															{	/* Llib/weakhash.scm 134 */
																obj_t BgL_auxz00_4433;
																int BgL_tmpz00_4431;

																BgL_auxz00_4433 = BINT(BgL_arg1262z00_2591);
																BgL_tmpz00_4431 = (int) (0L);
																STRUCT_SET(BgL_tablez00_47, BgL_tmpz00_4431,
																	BgL_auxz00_4433);
														}}
														if (CBOOL(BgL_lastzd2bucketzd2_1299))
															{	/* Llib/weakhash.scm 136 */
																obj_t BgL_arg1265z00_2593;

																BgL_arg1265z00_2593 =
																	CDR(((obj_t) BgL_bucketz00_1298));
																{	/* Llib/weakhash.scm 136 */
																	obj_t BgL_tmpz00_4440;

																	BgL_tmpz00_4440 =
																		((obj_t) BgL_lastzd2bucketzd2_1299);
																	SET_CDR(BgL_tmpz00_4440, BgL_arg1265z00_2593);
																}
															}
														else
															{	/* Llib/weakhash.scm 137 */
																obj_t BgL_arg1266z00_2594;

																BgL_arg1266z00_2594 =
																	CDR(((obj_t) BgL_bucketz00_1298));
																VECTOR_SET(
																	((obj_t) BgL_bucketsz00_48), BgL_iz00_49,
																	BgL_arg1266z00_2594);
															}
														return BGl_keepgoingz00zz__weakhashz00;
													}
												else
													{	/* Llib/weakhash.scm 145 */
														return BgL_retz00_1302;
													}
											}
									}
							}
					}
				}
			else
				{	/* Llib/weakhash.scm 145 */
					if ((2L == (long) CINT(STRUCT_REF(BgL_tablez00_47, (int) (5L)))))
						{	/* Llib/weakhash.scm 145 */
							obj_t BgL_g1061z00_1311;

							BgL_g1061z00_1311 =
								VECTOR_REF(((obj_t) BgL_bucketsz00_48), BgL_iz00_49);
							{
								obj_t BgL_bucketz00_1313;
								obj_t BgL_lastzd2bucketzd2_1314;

								BgL_bucketz00_1313 = BgL_g1061z00_1311;
								BgL_lastzd2bucketzd2_1314 = BFALSE;
							BgL_zc3z04anonymousza31281ze3z87_1315:
								if (NULLP(BgL_bucketz00_1313))
									{	/* Llib/weakhash.scm 145 */
										return BGl_keepgoingz00zz__weakhashz00;
									}
								else
									{	/* Llib/weakhash.scm 145 */
										obj_t BgL_retz00_1317;

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

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

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

													BgL_pairz00_2610 = CAR(((obj_t) BgL_bucketz00_1313));
													BgL_arg1291z00_1322 = CDR(BgL_pairz00_2610);
												}
												BgL_dataz00_1320 =
													bgl_weakptr_data(((obj_t) BgL_arg1291z00_1322));
											}
											if ((BgL_dataz00_1320 == BUNSPEC))
												{	/* Llib/weakhash.scm 160 */
													BgL_retz00_1317 = BGl_removez00zz__weakhashz00;
												}
											else
												{	/* Llib/weakhash.scm 162 */
													obj_t BgL_arg1287z00_1321;

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

														BgL_pairz00_2615 =
															CAR(((obj_t) BgL_bucketz00_1313));
														BgL_arg1287z00_1321 = CAR(BgL_pairz00_2615);
													}
													BgL_retz00_1317 =
														((obj_t(*)(obj_t, obj_t, obj_t,
																obj_t))
														PROCEDURE_L_ENTRY(BgL_funz00_50)) (BgL_funz00_50,
														BgL_arg1287z00_1321, BgL_dataz00_1320,
														BgL_bucketz00_1313);
												}
										}
										if ((BgL_retz00_1317 == BGl_keepgoingz00zz__weakhashz00))
											{	/* Llib/weakhash.scm 145 */
												obj_t BgL_arg1283z00_1318;

												BgL_arg1283z00_1318 = CDR(((obj_t) BgL_bucketz00_1313));
												{
													obj_t BgL_lastzd2bucketzd2_4477;
													obj_t BgL_bucketz00_4476;

													BgL_bucketz00_4476 = BgL_arg1283z00_1318;
													BgL_lastzd2bucketzd2_4477 = BgL_bucketz00_1313;
													BgL_lastzd2bucketzd2_1314 = BgL_lastzd2bucketzd2_4477;
													BgL_bucketz00_1313 = BgL_bucketz00_4476;
													goto BgL_zc3z04anonymousza31281ze3z87_1315;
												}
											}
										else
											{	/* Llib/weakhash.scm 145 */
												if ((BgL_retz00_1317 == BGl_removez00zz__weakhashz00))
													{	/* Llib/weakhash.scm 145 */
														{	/* Llib/weakhash.scm 134 */
															long BgL_arg1262z00_2617;

															BgL_arg1262z00_2617 =
																(
																(long) CINT(STRUCT_REF(BgL_tablez00_47,
																		(int) (0L))) - 1L);
															{	/* Llib/weakhash.scm 134 */
																obj_t BgL_auxz00_4486;
																int BgL_tmpz00_4484;

																BgL_auxz00_4486 = BINT(BgL_arg1262z00_2617);
																BgL_tmpz00_4484 = (int) (0L);
																STRUCT_SET(BgL_tablez00_47, BgL_tmpz00_4484,
																	BgL_auxz00_4486);
														}}
														if (CBOOL(BgL_lastzd2bucketzd2_1314))
															{	/* Llib/weakhash.scm 136 */
																obj_t BgL_arg1265z00_2619;

																BgL_arg1265z00_2619 =
																	CDR(((obj_t) BgL_bucketz00_1313));
																{	/* Llib/weakhash.scm 136 */
																	obj_t BgL_tmpz00_4493;

																	BgL_tmpz00_4493 =
																		((obj_t) BgL_lastzd2bucketzd2_1314);
																	SET_CDR(BgL_tmpz00_4493, BgL_arg1265z00_2619);
																}
															}
														else
															{	/* Llib/weakhash.scm 137 */
																obj_t BgL_arg1266z00_2620;

																BgL_arg1266z00_2620 =
																	CDR(((obj_t) BgL_bucketz00_1313));
																VECTOR_SET(
																	((obj_t) BgL_bucketsz00_48), BgL_iz00_49,
																	BgL_arg1266z00_2620);
															}
														BGl_keepgoingz00zz__weakhashz00;
														{	/* Llib/weakhash.scm 145 */
															obj_t BgL_arg1285z00_1319;

															BgL_arg1285z00_1319 =
																CDR(((obj_t) BgL_bucketz00_1313));
															{
																obj_t BgL_bucketz00_4502;

																BgL_bucketz00_4502 = BgL_arg1285z00_1319;
																BgL_bucketz00_1313 = BgL_bucketz00_4502;
																goto BgL_zc3z04anonymousza31281ze3z87_1315;
															}
														}
													}
												else
													{	/* Llib/weakhash.scm 145 */
														if (
															(BgL_retz00_1317 ==
																BGl_removestopz00zz__weakhashz00))
															{	/* Llib/weakhash.scm 145 */
																{	/* Llib/weakhash.scm 134 */
																	long BgL_arg1262z00_2630;

																	BgL_arg1262z00_2630 =
																		(
																		(long) CINT(STRUCT_REF(BgL_tablez00_47,
																				(int) (0L))) - 1L);
																	{	/* Llib/weakhash.scm 134 */
																		obj_t BgL_auxz00_4511;
																		int BgL_tmpz00_4509;

																		BgL_auxz00_4511 = BINT(BgL_arg1262z00_2630);
																		BgL_tmpz00_4509 = (int) (0L);
																		STRUCT_SET(BgL_tablez00_47, BgL_tmpz00_4509,
																			BgL_auxz00_4511);
																}}
																if (CBOOL(BgL_lastzd2bucketzd2_1314))
																	{	/* Llib/weakhash.scm 136 */
																		obj_t BgL_arg1265z00_2632;

																		BgL_arg1265z00_2632 =
																			CDR(((obj_t) BgL_bucketz00_1313));
																		{	/* Llib/weakhash.scm 136 */
																			obj_t BgL_tmpz00_4518;

																			BgL_tmpz00_4518 =
																				((obj_t) BgL_lastzd2bucketzd2_1314);
																			SET_CDR(BgL_tmpz00_4518,
																				BgL_arg1265z00_2632);
																		}
																	}
																else
																	{	/* Llib/weakhash.scm 137 */
																		obj_t BgL_arg1266z00_2633;

																		BgL_arg1266z00_2633 =
																			CDR(((obj_t) BgL_bucketz00_1313));
																		VECTOR_SET(
																			((obj_t) BgL_bucketsz00_48), BgL_iz00_49,
																			BgL_arg1266z00_2633);
																	}
																return BGl_keepgoingz00zz__weakhashz00;
															}
														else
															{	/* Llib/weakhash.scm 145 */
																return BgL_retz00_1317;
															}
													}
											}
									}
							}
						}
					else
						{	/* Llib/weakhash.scm 145 */
							if ((3L == (long) CINT(STRUCT_REF(BgL_tablez00_47, (int) (5L)))))
								{	/* Llib/weakhash.scm 145 */
									obj_t BgL_g1062z00_1326;

									BgL_g1062z00_1326 =
										VECTOR_REF(((obj_t) BgL_bucketsz00_48), BgL_iz00_49);
									{
										obj_t BgL_bucketz00_1328;
										obj_t BgL_lastzd2bucketzd2_1329;

										BgL_bucketz00_1328 = BgL_g1062z00_1326;
										BgL_lastzd2bucketzd2_1329 = BFALSE;
									BgL_zc3z04anonymousza31294ze3z87_1330:
										if (NULLP(BgL_bucketz00_1328))
											{	/* Llib/weakhash.scm 145 */
												return BGl_keepgoingz00zz__weakhashz00;
											}
										else
											{	/* Llib/weakhash.scm 145 */
												obj_t BgL_retz00_1332;

												{	/* Llib/weakhash.scm 165 */
													obj_t BgL_keyz00_1335;
													obj_t BgL_dataz00_1336;

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

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

															BgL_pairz00_2649 =
																CAR(((obj_t) BgL_bucketz00_1328));
															BgL_arg1301z00_1338 = CAR(BgL_pairz00_2649);
														}
														BgL_keyz00_1335 =
															bgl_weakptr_data(((obj_t) BgL_arg1301z00_1338));
													}
													{	/* Llib/weakhash.scm 166 */
														obj_t BgL_arg1322z00_1339;

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

															BgL_pairz00_2654 =
																CAR(((obj_t) BgL_bucketz00_1328));
															BgL_arg1322z00_1339 = CDR(BgL_pairz00_2654);
														}
														BgL_dataz00_1336 =
															bgl_weakptr_data(((obj_t) BgL_arg1322z00_1339));
													}
													{	/* Llib/weakhash.scm 167 */
														bool_t BgL_test2249z00_4544;

														if ((BgL_keyz00_1335 == BUNSPEC))
															{	/* Llib/weakhash.scm 167 */
																BgL_test2249z00_4544 = ((bool_t) 1);
															}
														else
															{	/* Llib/weakhash.scm 167 */
																BgL_test2249z00_4544 =
																	(BgL_dataz00_1336 == BUNSPEC);
															}
														if (BgL_test2249z00_4544)
															{	/* Llib/weakhash.scm 167 */
																BgL_retz00_1332 = BGl_removez00zz__weakhashz00;
															}
														else
															{	/* Llib/weakhash.scm 167 */
																BgL_retz00_1332 =
																	((obj_t(*)(obj_t, obj_t, obj_t,
																			obj_t))
																	PROCEDURE_L_ENTRY(BgL_funz00_50))
																	(BgL_funz00_50, BgL_keyz00_1335,
																	BgL_dataz00_1336, BgL_bucketz00_1328);
															}
													}
												}
												if (
													(BgL_retz00_1332 == BGl_keepgoingz00zz__weakhashz00))
													{	/* Llib/weakhash.scm 145 */
														obj_t BgL_arg1296z00_1333;

														BgL_arg1296z00_1333 =
															CDR(((obj_t) BgL_bucketz00_1328));
														{
															obj_t BgL_lastzd2bucketzd2_4559;
															obj_t BgL_bucketz00_4558;

															BgL_bucketz00_4558 = BgL_arg1296z00_1333;
															BgL_lastzd2bucketzd2_4559 = BgL_bucketz00_1328;
															BgL_lastzd2bucketzd2_1329 =
																BgL_lastzd2bucketzd2_4559;
															BgL_bucketz00_1328 = BgL_bucketz00_4558;
															goto BgL_zc3z04anonymousza31294ze3z87_1330;
														}
													}
												else
													{	/* Llib/weakhash.scm 145 */
														if (
															(BgL_retz00_1332 == BGl_removez00zz__weakhashz00))
															{	/* Llib/weakhash.scm 145 */
																{	/* Llib/weakhash.scm 134 */
																	long BgL_arg1262z00_2657;

																	BgL_arg1262z00_2657 =
																		(
																		(long) CINT(STRUCT_REF(BgL_tablez00_47,
																				(int) (0L))) - 1L);
																	{	/* Llib/weakhash.scm 134 */
																		obj_t BgL_auxz00_4568;
																		int BgL_tmpz00_4566;

																		BgL_auxz00_4568 = BINT(BgL_arg1262z00_2657);
																		BgL_tmpz00_4566 = (int) (0L);
																		STRUCT_SET(BgL_tablez00_47, BgL_tmpz00_4566,
																			BgL_auxz00_4568);
																}}
																if (CBOOL(BgL_lastzd2bucketzd2_1329))
																	{	/* Llib/weakhash.scm 136 */
																		obj_t BgL_arg1265z00_2659;

																		BgL_arg1265z00_2659 =
																			CDR(((obj_t) BgL_bucketz00_1328));
																		{	/* Llib/weakhash.scm 136 */
																			obj_t BgL_tmpz00_4575;

																			BgL_tmpz00_4575 =
																				((obj_t) BgL_lastzd2bucketzd2_1329);
																			SET_CDR(BgL_tmpz00_4575,
																				BgL_arg1265z00_2659);
																		}
																	}
																else
																	{	/* Llib/weakhash.scm 137 */
																		obj_t BgL_arg1266z00_2660;

																		BgL_arg1266z00_2660 =
																			CDR(((obj_t) BgL_bucketz00_1328));
																		VECTOR_SET(
																			((obj_t) BgL_bucketsz00_48), BgL_iz00_49,
																			BgL_arg1266z00_2660);
																	}
																BGl_keepgoingz00zz__weakhashz00;
																{	/* Llib/weakhash.scm 145 */
																	obj_t BgL_arg1298z00_1334;

																	BgL_arg1298z00_1334 =
																		CDR(((obj_t) BgL_bucketz00_1328));
																	{
																		obj_t BgL_bucketz00_4584;

																		BgL_bucketz00_4584 = BgL_arg1298z00_1334;
																		BgL_bucketz00_1328 = BgL_bucketz00_4584;
																		goto BgL_zc3z04anonymousza31294ze3z87_1330;
																	}
																}
															}
														else
															{	/* Llib/weakhash.scm 145 */
																if (
																	(BgL_retz00_1332 ==
																		BGl_removestopz00zz__weakhashz00))
																	{	/* Llib/weakhash.scm 145 */
																		{	/* Llib/weakhash.scm 134 */
																			long BgL_arg1262z00_2670;

																			BgL_arg1262z00_2670 =
																				(
																				(long) CINT(STRUCT_REF(BgL_tablez00_47,
																						(int) (0L))) - 1L);
																			{	/* Llib/weakhash.scm 134 */
																				obj_t BgL_auxz00_4593;
																				int BgL_tmpz00_4591;

																				BgL_auxz00_4593 =
																					BINT(BgL_arg1262z00_2670);
																				BgL_tmpz00_4591 = (int) (0L);
																				STRUCT_SET(BgL_tablez00_47,
																					BgL_tmpz00_4591, BgL_auxz00_4593);
																		}}
																		if (CBOOL(BgL_lastzd2bucketzd2_1329))
																			{	/* Llib/weakhash.scm 136 */
																				obj_t BgL_arg1265z00_2672;

																				BgL_arg1265z00_2672 =
																					CDR(((obj_t) BgL_bucketz00_1328));
																				{	/* Llib/weakhash.scm 136 */
																					obj_t BgL_tmpz00_4600;

																					BgL_tmpz00_4600 =
																						((obj_t) BgL_lastzd2bucketzd2_1329);
																					SET_CDR(BgL_tmpz00_4600,
																						BgL_arg1265z00_2672);
																				}
																			}
																		else
																			{	/* Llib/weakhash.scm 137 */
																				obj_t BgL_arg1266z00_2673;

																				BgL_arg1266z00_2673 =
																					CDR(((obj_t) BgL_bucketz00_1328));
																				VECTOR_SET(
																					((obj_t) BgL_bucketsz00_48),
																					BgL_iz00_49, BgL_arg1266z00_2673);
																			}
																		return BGl_keepgoingz00zz__weakhashz00;
																	}
																else
																	{	/* Llib/weakhash.scm 145 */
																		return BgL_retz00_1332;
																	}
															}
													}
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 145 */
									obj_t BgL_g1063z00_1341;

									BgL_g1063z00_1341 =
										VECTOR_REF(((obj_t) BgL_bucketsz00_48), BgL_iz00_49);
									{
										obj_t BgL_bucketz00_1343;
										obj_t BgL_lastzd2bucketzd2_1344;

										BgL_bucketz00_1343 = BgL_g1063z00_1341;
										BgL_lastzd2bucketzd2_1344 = BFALSE;
									BgL_zc3z04anonymousza31323ze3z87_1345:
										if (NULLP(BgL_bucketz00_1343))
											{	/* Llib/weakhash.scm 145 */
												return BGl_keepgoingz00zz__weakhashz00;
											}
										else
											{	/* Llib/weakhash.scm 145 */
												obj_t BgL_retz00_1347;

												{	/* Llib/weakhash.scm 173 */
													obj_t BgL_arg1331z00_1350;
													obj_t BgL_arg1332z00_1351;

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

														BgL_pairz00_2687 =
															CAR(((obj_t) BgL_bucketz00_1343));
														BgL_arg1331z00_1350 = CAR(BgL_pairz00_2687);
													}
													{	/* Llib/weakhash.scm 173 */
														obj_t BgL_pairz00_2691;

														BgL_pairz00_2691 =
															CAR(((obj_t) BgL_bucketz00_1343));
														BgL_arg1332z00_1351 = CDR(BgL_pairz00_2691);
													}
													BgL_retz00_1347 =
														((obj_t(*)(obj_t, obj_t, obj_t,
																obj_t))
														PROCEDURE_L_ENTRY(BgL_funz00_50)) (BgL_funz00_50,
														BgL_arg1331z00_1350, BgL_arg1332z00_1351,
														BgL_bucketz00_1343);
												}
												if (
													(BgL_retz00_1347 == BGl_keepgoingz00zz__weakhashz00))
													{	/* Llib/weakhash.scm 145 */
														obj_t BgL_arg1329z00_1348;

														BgL_arg1329z00_1348 =
															CDR(((obj_t) BgL_bucketz00_1343));
														{
															obj_t BgL_lastzd2bucketzd2_4628;
															obj_t BgL_bucketz00_4627;

															BgL_bucketz00_4627 = BgL_arg1329z00_1348;
															BgL_lastzd2bucketzd2_4628 = BgL_bucketz00_1343;
															BgL_lastzd2bucketzd2_1344 =
																BgL_lastzd2bucketzd2_4628;
															BgL_bucketz00_1343 = BgL_bucketz00_4627;
															goto BgL_zc3z04anonymousza31323ze3z87_1345;
														}
													}
												else
													{	/* Llib/weakhash.scm 145 */
														if (
															(BgL_retz00_1347 == BGl_removez00zz__weakhashz00))
															{	/* Llib/weakhash.scm 145 */
																{	/* Llib/weakhash.scm 134 */
																	long BgL_arg1262z00_2693;

																	BgL_arg1262z00_2693 =
																		(
																		(long) CINT(STRUCT_REF(BgL_tablez00_47,
																				(int) (0L))) - 1L);
																	{	/* Llib/weakhash.scm 134 */
																		obj_t BgL_auxz00_4637;
																		int BgL_tmpz00_4635;

																		BgL_auxz00_4637 = BINT(BgL_arg1262z00_2693);
																		BgL_tmpz00_4635 = (int) (0L);
																		STRUCT_SET(BgL_tablez00_47, BgL_tmpz00_4635,
																			BgL_auxz00_4637);
																}}
																if (CBOOL(BgL_lastzd2bucketzd2_1344))
																	{	/* Llib/weakhash.scm 136 */
																		obj_t BgL_arg1265z00_2695;

																		BgL_arg1265z00_2695 =
																			CDR(((obj_t) BgL_bucketz00_1343));
																		{	/* Llib/weakhash.scm 136 */
																			obj_t BgL_tmpz00_4644;

																			BgL_tmpz00_4644 =
																				((obj_t) BgL_lastzd2bucketzd2_1344);
																			SET_CDR(BgL_tmpz00_4644,
																				BgL_arg1265z00_2695);
																		}
																	}
																else
																	{	/* Llib/weakhash.scm 137 */
																		obj_t BgL_arg1266z00_2696;

																		BgL_arg1266z00_2696 =
																			CDR(((obj_t) BgL_bucketz00_1343));
																		VECTOR_SET(
																			((obj_t) BgL_bucketsz00_48), BgL_iz00_49,
																			BgL_arg1266z00_2696);
																	}
																BGl_keepgoingz00zz__weakhashz00;
																{	/* Llib/weakhash.scm 145 */
																	obj_t BgL_arg1330z00_1349;

																	BgL_arg1330z00_1349 =
																		CDR(((obj_t) BgL_bucketz00_1343));
																	{
																		obj_t BgL_bucketz00_4653;

																		BgL_bucketz00_4653 = BgL_arg1330z00_1349;
																		BgL_bucketz00_1343 = BgL_bucketz00_4653;
																		goto BgL_zc3z04anonymousza31323ze3z87_1345;
																	}
																}
															}
														else
															{	/* Llib/weakhash.scm 145 */
																if (
																	(BgL_retz00_1347 ==
																		BGl_removestopz00zz__weakhashz00))
																	{	/* Llib/weakhash.scm 145 */
																		{	/* Llib/weakhash.scm 134 */
																			long BgL_arg1262z00_2706;

																			BgL_arg1262z00_2706 =
																				(
																				(long) CINT(STRUCT_REF(BgL_tablez00_47,
																						(int) (0L))) - 1L);
																			{	/* Llib/weakhash.scm 134 */
																				obj_t BgL_auxz00_4662;
																				int BgL_tmpz00_4660;

																				BgL_auxz00_4662 =
																					BINT(BgL_arg1262z00_2706);
																				BgL_tmpz00_4660 = (int) (0L);
																				STRUCT_SET(BgL_tablez00_47,
																					BgL_tmpz00_4660, BgL_auxz00_4662);
																		}}
																		if (CBOOL(BgL_lastzd2bucketzd2_1344))
																			{	/* Llib/weakhash.scm 136 */
																				obj_t BgL_arg1265z00_2708;

																				BgL_arg1265z00_2708 =
																					CDR(((obj_t) BgL_bucketz00_1343));
																				{	/* Llib/weakhash.scm 136 */
																					obj_t BgL_tmpz00_4669;

																					BgL_tmpz00_4669 =
																						((obj_t) BgL_lastzd2bucketzd2_1344);
																					SET_CDR(BgL_tmpz00_4669,
																						BgL_arg1265z00_2708);
																				}
																			}
																		else
																			{	/* Llib/weakhash.scm 137 */
																				obj_t BgL_arg1266z00_2709;

																				BgL_arg1266z00_2709 =
																					CDR(((obj_t) BgL_bucketz00_1343));
																				VECTOR_SET(
																					((obj_t) BgL_bucketsz00_48),
																					BgL_iz00_49, BgL_arg1266z00_2709);
																			}
																		return BGl_keepgoingz00zz__weakhashz00;
																	}
																else
																	{	/* Llib/weakhash.scm 145 */
																		return BgL_retz00_1347;
																	}
															}
													}
											}
									}
								}
						}
				}
		}

	}



/* 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_proc2167z00zz__weakhashz00);
			{	/* Llib/weakhash.scm 191 */
				obj_t BgL_bucketsz00_1361;

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

					{
						long BgL_iz00_1364;

						BgL_iz00_1364 = 0L;
						if ((BgL_iz00_1364 == VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1361))))
							{	/* Llib/weakhash.scm 194 */
								return ((bool_t) 0);
							}
						else
							{	/* Llib/weakhash.scm 195 */
								obj_t BgL_bucketz00_1367;

								BgL_bucketz00_1367 =
									VECTOR_REF(((obj_t) BgL_bucketsz00_1361), BgL_iz00_1364);
								{
									obj_t BgL_l1113z00_1369;

									BgL_l1113z00_1369 = BgL_bucketz00_1367;
								BgL_zc3z04anonymousza31340ze3z87_1370:
									if (PAIRP(BgL_l1113z00_1369))
										{	/* Llib/weakhash.scm 196 */
											{	/* Llib/weakhash.scm 197 */
												obj_t BgL_pz00_1372;

												BgL_pz00_1372 = CAR(BgL_l1113z00_1369);
												{	/* Llib/weakhash.scm 197 */
													bool_t BgL_test2264z00_4688;

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

														BgL_arg1347z00_1377 =
															bgl_weakptr_data(((obj_t) BgL_pz00_1372));
														BgL_test2264z00_4688 =
															(BgL_arg1347z00_1377 == BUNSPEC);
													}
													if (BgL_test2264z00_4688)
														{	/* Llib/weakhash.scm 197 */
															BFALSE;
														}
													else
														{	/* Llib/weakhash.scm 198 */
															obj_t BgL_arg1345z00_1375;
															obj_t BgL_arg1346z00_1376;

															BgL_arg1345z00_1375 =
																bgl_weakptr_data(((obj_t) BgL_pz00_1372));
															BgL_arg1346z00_1376 =
																bgl_weakptr_ref(((obj_t) BgL_pz00_1372));
															BGL_PROCEDURE_CALL2(BgL_funz00_52,
																BgL_arg1345z00_1375, BgL_arg1346z00_1376);
														}
												}
											}
											{
												obj_t BgL_l1113z00_4701;

												BgL_l1113z00_4701 = CDR(BgL_l1113z00_1369);
												BgL_l1113z00_1369 = BgL_l1113z00_4701;
												goto BgL_zc3z04anonymousza31340ze3z87_1370;
											}
										}
									else
										{	/* Llib/weakhash.scm 196 */
											return ((bool_t) 1);
										}
								}
							}
					}
				}
			}
		}

	}



/* &<@anonymous:1337> */
	obj_t BGl_z62zc3z04anonymousza31337ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4110, obj_t BgL_kz00_4111, obj_t BgL_vz00_4112)
	{
		{	/* 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_1383;

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

						{
							long BgL_iz00_1386;

							BgL_iz00_1386 = 0L;
						BgL_zc3z04anonymousza31353ze3z87_1387:
							if (
								(BgL_iz00_1386 == VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1383))))
								{	/* Llib/weakhash.scm 205 */
									return ((bool_t) 0);
								}
							else
								{	/* Llib/weakhash.scm 205 */
									{	/* Llib/weakhash.scm 205 */
										obj_t BgL_g1064z00_1389;

										BgL_g1064z00_1389 =
											VECTOR_REF(((obj_t) BgL_bucketsz00_1383), BgL_iz00_1386);
										{
											obj_t BgL_bucketz00_1391;
											obj_t BgL_lastzd2bucketzd2_1392;

											BgL_bucketz00_1391 = BgL_g1064z00_1389;
											BgL_lastzd2bucketzd2_1392 = BFALSE;
										BgL_zc3z04anonymousza31355ze3z87_1393:
											if (NULLP(BgL_bucketz00_1391))
												{	/* Llib/weakhash.scm 205 */
													((bool_t) 0);
												}
											else
												{	/* Llib/weakhash.scm 216 */
													obj_t BgL_retz00_1395;

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

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

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

																BgL_pairz00_2740 =
																	CAR(((obj_t) BgL_bucketz00_1391));
																BgL_arg1360z00_1400 = CAR(BgL_pairz00_2740);
															}
															BgL_keyz00_1398 =
																bgl_weakptr_data(((obj_t) BgL_arg1360z00_1400));
														}
														if ((BgL_keyz00_1398 == BUNSPEC))
															{	/* Llib/weakhash.scm 217 */
																BgL_retz00_1395 = BGl_removez00zz__weakhashz00;
															}
														else
															{	/* Llib/weakhash.scm 219 */
																obj_t BgL_arg1359z00_1399;

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

																	BgL_pairz00_2745 =
																		CAR(((obj_t) BgL_bucketz00_1391));
																	BgL_arg1359z00_1399 = CDR(BgL_pairz00_2745);
																}
																BgL_retz00_1395 =
																	BGL_PROCEDURE_CALL2(BgL_funz00_54,
																	BgL_keyz00_1398, BgL_arg1359z00_1399);
															}
													}
													if ((BgL_retz00_1395 == BGl_removez00zz__weakhashz00))
														{	/* Llib/weakhash.scm 205 */
															{	/* Llib/weakhash.scm 134 */
																long BgL_arg1262z00_2746;

																BgL_arg1262z00_2746 =
																	(
																	(long) CINT(STRUCT_REF(BgL_tablez00_53,
																			(int) (0L))) - 1L);
																{	/* Llib/weakhash.scm 134 */
																	obj_t BgL_auxz00_4742;
																	int BgL_tmpz00_4740;

																	BgL_auxz00_4742 = BINT(BgL_arg1262z00_2746);
																	BgL_tmpz00_4740 = (int) (0L);
																	STRUCT_SET(BgL_tablez00_53, BgL_tmpz00_4740,
																		BgL_auxz00_4742);
															}}
															if (CBOOL(BgL_lastzd2bucketzd2_1392))
																{	/* Llib/weakhash.scm 136 */
																	obj_t BgL_arg1265z00_2748;

																	BgL_arg1265z00_2748 =
																		CDR(((obj_t) BgL_bucketz00_1391));
																	{	/* Llib/weakhash.scm 136 */
																		obj_t BgL_tmpz00_4749;

																		BgL_tmpz00_4749 =
																			((obj_t) BgL_lastzd2bucketzd2_1392);
																		SET_CDR(BgL_tmpz00_4749,
																			BgL_arg1265z00_2748);
																	}
																}
															else
																{	/* Llib/weakhash.scm 137 */
																	obj_t BgL_arg1266z00_2749;

																	BgL_arg1266z00_2749 =
																		CDR(((obj_t) BgL_bucketz00_1391));
																	VECTOR_SET(
																		((obj_t) BgL_bucketsz00_1383),
																		BgL_iz00_1386, BgL_arg1266z00_2749);
																}
															BGl_keepgoingz00zz__weakhashz00;
															{	/* Llib/weakhash.scm 205 */
																obj_t BgL_arg1357z00_1396;

																BgL_arg1357z00_1396 =
																	CDR(((obj_t) BgL_bucketz00_1391));
																{
																	obj_t BgL_bucketz00_4758;

																	BgL_bucketz00_4758 = BgL_arg1357z00_1396;
																	BgL_bucketz00_1391 = BgL_bucketz00_4758;
																	goto BgL_zc3z04anonymousza31355ze3z87_1393;
																}
															}
														}
													else
														{	/* Llib/weakhash.scm 205 */
															obj_t BgL_arg1358z00_1397;

															BgL_arg1358z00_1397 =
																CDR(((obj_t) BgL_bucketz00_1391));
															{
																obj_t BgL_lastzd2bucketzd2_4762;
																obj_t BgL_bucketz00_4761;

																BgL_bucketz00_4761 = BgL_arg1358z00_1397;
																BgL_lastzd2bucketzd2_4762 = BgL_bucketz00_1391;
																BgL_lastzd2bucketzd2_1392 =
																	BgL_lastzd2bucketzd2_4762;
																BgL_bucketz00_1391 = BgL_bucketz00_4761;
																goto BgL_zc3z04anonymousza31355ze3z87_1393;
															}
														}
												}
										}
									}
									{
										long BgL_iz00_4763;

										BgL_iz00_4763 = (BgL_iz00_1386 + 1L);
										BgL_iz00_1386 = BgL_iz00_4763;
										goto BgL_zc3z04anonymousza31353ze3z87_1387;
									}
								}
						}
					}
				}
			else
				{	/* Llib/weakhash.scm 205 */
					if ((2L == (long) CINT(STRUCT_REF(BgL_tablez00_53, (int) (5L)))))
						{	/* Llib/weakhash.scm 205 */
							obj_t BgL_bucketsz00_1406;

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

								{
									long BgL_iz00_1409;

									BgL_iz00_1409 = 0L;
								BgL_zc3z04anonymousza31364ze3z87_1410:
									if (
										(BgL_iz00_1409 ==
											VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1406))))
										{	/* Llib/weakhash.scm 205 */
											return ((bool_t) 0);
										}
									else
										{	/* Llib/weakhash.scm 205 */
											{	/* Llib/weakhash.scm 205 */
												obj_t BgL_g1065z00_1412;

												BgL_g1065z00_1412 =
													VECTOR_REF(
													((obj_t) BgL_bucketsz00_1406), BgL_iz00_1409);
												{
													obj_t BgL_bucketz00_1414;
													obj_t BgL_lastzd2bucketzd2_1415;

													BgL_bucketz00_1414 = BgL_g1065z00_1412;
													BgL_lastzd2bucketzd2_1415 = BFALSE;
												BgL_zc3z04anonymousza31366ze3z87_1416:
													if (NULLP(BgL_bucketz00_1414))
														{	/* Llib/weakhash.scm 205 */
															((bool_t) 0);
														}
													else
														{	/* Llib/weakhash.scm 222 */
															obj_t BgL_retz00_1418;

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

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

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

																		BgL_pairz00_2772 =
																			CAR(((obj_t) BgL_bucketz00_1414));
																		BgL_arg1371z00_1423 = CDR(BgL_pairz00_2772);
																	}
																	BgL_dataz00_1421 =
																		bgl_weakptr_data(
																		((obj_t) BgL_arg1371z00_1423));
																}
																if ((BgL_dataz00_1421 == BUNSPEC))
																	{	/* Llib/weakhash.scm 223 */
																		BgL_retz00_1418 =
																			BGl_removez00zz__weakhashz00;
																	}
																else
																	{	/* Llib/weakhash.scm 225 */
																		obj_t BgL_arg1370z00_1422;

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

																			BgL_pairz00_2777 =
																				CAR(((obj_t) BgL_bucketz00_1414));
																			BgL_arg1370z00_1422 =
																				CAR(BgL_pairz00_2777);
																		}
																		BgL_retz00_1418 =
																			BGL_PROCEDURE_CALL2(BgL_funz00_54,
																			BgL_arg1370z00_1422, BgL_dataz00_1421);
																	}
															}
															if (
																(BgL_retz00_1418 ==
																	BGl_removez00zz__weakhashz00))
																{	/* Llib/weakhash.scm 205 */
																	{	/* Llib/weakhash.scm 134 */
																		long BgL_arg1262z00_2778;

																		BgL_arg1262z00_2778 =
																			(
																			(long) CINT(STRUCT_REF(BgL_tablez00_53,
																					(int) (0L))) - 1L);
																		{	/* Llib/weakhash.scm 134 */
																			obj_t BgL_auxz00_4803;
																			int BgL_tmpz00_4801;

																			BgL_auxz00_4803 =
																				BINT(BgL_arg1262z00_2778);
																			BgL_tmpz00_4801 = (int) (0L);
																			STRUCT_SET(BgL_tablez00_53,
																				BgL_tmpz00_4801, BgL_auxz00_4803);
																	}}
																	if (CBOOL(BgL_lastzd2bucketzd2_1415))
																		{	/* Llib/weakhash.scm 136 */
																			obj_t BgL_arg1265z00_2780;

																			BgL_arg1265z00_2780 =
																				CDR(((obj_t) BgL_bucketz00_1414));
																			{	/* Llib/weakhash.scm 136 */
																				obj_t BgL_tmpz00_4810;

																				BgL_tmpz00_4810 =
																					((obj_t) BgL_lastzd2bucketzd2_1415);
																				SET_CDR(BgL_tmpz00_4810,
																					BgL_arg1265z00_2780);
																			}
																		}
																	else
																		{	/* Llib/weakhash.scm 137 */
																			obj_t BgL_arg1266z00_2781;

																			BgL_arg1266z00_2781 =
																				CDR(((obj_t) BgL_bucketz00_1414));
																			VECTOR_SET(
																				((obj_t) BgL_bucketsz00_1406),
																				BgL_iz00_1409, BgL_arg1266z00_2781);
																		}
																	BGl_keepgoingz00zz__weakhashz00;
																	{	/* Llib/weakhash.scm 205 */
																		obj_t BgL_arg1368z00_1419;

																		BgL_arg1368z00_1419 =
																			CDR(((obj_t) BgL_bucketz00_1414));
																		{
																			obj_t BgL_bucketz00_4819;

																			BgL_bucketz00_4819 = BgL_arg1368z00_1419;
																			BgL_bucketz00_1414 = BgL_bucketz00_4819;
																			goto
																				BgL_zc3z04anonymousza31366ze3z87_1416;
																		}
																	}
																}
															else
																{	/* Llib/weakhash.scm 205 */
																	obj_t BgL_arg1369z00_1420;

																	BgL_arg1369z00_1420 =
																		CDR(((obj_t) BgL_bucketz00_1414));
																	{
																		obj_t BgL_lastzd2bucketzd2_4823;
																		obj_t BgL_bucketz00_4822;

																		BgL_bucketz00_4822 = BgL_arg1369z00_1420;
																		BgL_lastzd2bucketzd2_4823 =
																			BgL_bucketz00_1414;
																		BgL_lastzd2bucketzd2_1415 =
																			BgL_lastzd2bucketzd2_4823;
																		BgL_bucketz00_1414 = BgL_bucketz00_4822;
																		goto BgL_zc3z04anonymousza31366ze3z87_1416;
																	}
																}
														}
												}
											}
											{
												long BgL_iz00_4824;

												BgL_iz00_4824 = (BgL_iz00_1409 + 1L);
												BgL_iz00_1409 = BgL_iz00_4824;
												goto BgL_zc3z04anonymousza31364ze3z87_1410;
											}
										}
								}
							}
						}
					else
						{	/* Llib/weakhash.scm 205 */
							if ((3L == (long) CINT(STRUCT_REF(BgL_tablez00_53, (int) (5L)))))
								{	/* Llib/weakhash.scm 205 */
									obj_t BgL_bucketsz00_1429;

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

										{
											long BgL_iz00_1432;

											BgL_iz00_1432 = 0L;
										BgL_zc3z04anonymousza31375ze3z87_1433:
											if (
												(BgL_iz00_1432 ==
													VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1429))))
												{	/* Llib/weakhash.scm 205 */
													return ((bool_t) 0);
												}
											else
												{	/* Llib/weakhash.scm 205 */
													{	/* Llib/weakhash.scm 205 */
														obj_t BgL_g1066z00_1435;

														BgL_g1066z00_1435 =
															VECTOR_REF(
															((obj_t) BgL_bucketsz00_1429), BgL_iz00_1432);
														{
															obj_t BgL_bucketz00_1437;
															obj_t BgL_lastzd2bucketzd2_1438;

															BgL_bucketz00_1437 = BgL_g1066z00_1435;
															BgL_lastzd2bucketzd2_1438 = BFALSE;
														BgL_zc3z04anonymousza31377ze3z87_1439:
															if (NULLP(BgL_bucketz00_1437))
																{	/* Llib/weakhash.scm 205 */
																	((bool_t) 0);
																}
															else
																{	/* Llib/weakhash.scm 228 */
																	obj_t BgL_retz00_1441;

																	{	/* Llib/weakhash.scm 228 */
																		obj_t BgL_keyz00_1444;
																		obj_t BgL_dataz00_1445;

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

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

																				BgL_pairz00_2804 =
																					CAR(((obj_t) BgL_bucketz00_1437));
																				BgL_arg1382z00_1447 =
																					CAR(BgL_pairz00_2804);
																			}
																			BgL_keyz00_1444 =
																				bgl_weakptr_data(
																				((obj_t) BgL_arg1382z00_1447));
																		}
																		{	/* Llib/weakhash.scm 229 */
																			obj_t BgL_arg1383z00_1448;

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

																				BgL_pairz00_2809 =
																					CAR(((obj_t) BgL_bucketz00_1437));
																				BgL_arg1383z00_1448 =
																					CDR(BgL_pairz00_2809);
																			}
																			BgL_dataz00_1445 =
																				bgl_weakptr_data(
																				((obj_t) BgL_arg1383z00_1448));
																		}
																		{	/* Llib/weakhash.scm 230 */
																			bool_t BgL_test2280z00_4851;

																			if ((BgL_keyz00_1444 == BUNSPEC))
																				{	/* Llib/weakhash.scm 230 */
																					BgL_test2280z00_4851 = ((bool_t) 1);
																				}
																			else
																				{	/* Llib/weakhash.scm 230 */
																					BgL_test2280z00_4851 =
																						(BgL_dataz00_1445 == BUNSPEC);
																				}
																			if (BgL_test2280z00_4851)
																				{	/* Llib/weakhash.scm 230 */
																					BgL_retz00_1441 =
																						BGl_removez00zz__weakhashz00;
																				}
																			else
																				{	/* Llib/weakhash.scm 230 */
																					BgL_retz00_1441 =
																						BGL_PROCEDURE_CALL2(BgL_funz00_54,
																						BgL_keyz00_1444, BgL_dataz00_1445);
																				}
																		}
																	}
																	if (
																		(BgL_retz00_1441 ==
																			BGl_removez00zz__weakhashz00))
																		{	/* Llib/weakhash.scm 205 */
																			{	/* Llib/weakhash.scm 134 */
																				long BgL_arg1262z00_2811;

																				BgL_arg1262z00_2811 =
																					(
																					(long)
																					CINT(STRUCT_REF(BgL_tablez00_53,
																							(int) (0L))) - 1L);
																				{	/* Llib/weakhash.scm 134 */
																					obj_t BgL_auxz00_4868;
																					int BgL_tmpz00_4866;

																					BgL_auxz00_4868 =
																						BINT(BgL_arg1262z00_2811);
																					BgL_tmpz00_4866 = (int) (0L);
																					STRUCT_SET(BgL_tablez00_53,
																						BgL_tmpz00_4866, BgL_auxz00_4868);
																			}}
																			if (CBOOL(BgL_lastzd2bucketzd2_1438))
																				{	/* Llib/weakhash.scm 136 */
																					obj_t BgL_arg1265z00_2813;

																					BgL_arg1265z00_2813 =
																						CDR(((obj_t) BgL_bucketz00_1437));
																					{	/* Llib/weakhash.scm 136 */
																						obj_t BgL_tmpz00_4875;

																						BgL_tmpz00_4875 =
																							((obj_t)
																							BgL_lastzd2bucketzd2_1438);
																						SET_CDR(BgL_tmpz00_4875,
																							BgL_arg1265z00_2813);
																					}
																				}
																			else
																				{	/* Llib/weakhash.scm 137 */
																					obj_t BgL_arg1266z00_2814;

																					BgL_arg1266z00_2814 =
																						CDR(((obj_t) BgL_bucketz00_1437));
																					VECTOR_SET(
																						((obj_t) BgL_bucketsz00_1429),
																						BgL_iz00_1432, BgL_arg1266z00_2814);
																				}
																			BGl_keepgoingz00zz__weakhashz00;
																			{	/* Llib/weakhash.scm 205 */
																				obj_t BgL_arg1379z00_1442;

																				BgL_arg1379z00_1442 =
																					CDR(((obj_t) BgL_bucketz00_1437));
																				{
																					obj_t BgL_bucketz00_4884;

																					BgL_bucketz00_4884 =
																						BgL_arg1379z00_1442;
																					BgL_bucketz00_1437 =
																						BgL_bucketz00_4884;
																					goto
																						BgL_zc3z04anonymousza31377ze3z87_1439;
																				}
																			}
																		}
																	else
																		{	/* Llib/weakhash.scm 205 */
																			obj_t BgL_arg1380z00_1443;

																			BgL_arg1380z00_1443 =
																				CDR(((obj_t) BgL_bucketz00_1437));
																			{
																				obj_t BgL_lastzd2bucketzd2_4888;
																				obj_t BgL_bucketz00_4887;

																				BgL_bucketz00_4887 =
																					BgL_arg1380z00_1443;
																				BgL_lastzd2bucketzd2_4888 =
																					BgL_bucketz00_1437;
																				BgL_lastzd2bucketzd2_1438 =
																					BgL_lastzd2bucketzd2_4888;
																				BgL_bucketz00_1437 = BgL_bucketz00_4887;
																				goto
																					BgL_zc3z04anonymousza31377ze3z87_1439;
																			}
																		}
																}
														}
													}
													{
														long BgL_iz00_4889;

														BgL_iz00_4889 = (BgL_iz00_1432 + 1L);
														BgL_iz00_1432 = BgL_iz00_4889;
														goto BgL_zc3z04anonymousza31375ze3z87_1433;
													}
												}
										}
									}
								}
							else
								{	/* Llib/weakhash.scm 205 */
									obj_t BgL_bucketsz00_1452;

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

										{
											long BgL_iz00_1455;

											BgL_iz00_1455 = 0L;
										BgL_zc3z04anonymousza31385ze3z87_1456:
											if (
												(BgL_iz00_1455 ==
													VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1452))))
												{	/* Llib/weakhash.scm 205 */
													return ((bool_t) 0);
												}
											else
												{	/* Llib/weakhash.scm 205 */
													{	/* Llib/weakhash.scm 205 */
														obj_t BgL_g1067z00_1458;

														BgL_g1067z00_1458 =
															VECTOR_REF(
															((obj_t) BgL_bucketsz00_1452), BgL_iz00_1455);
														{
															obj_t BgL_bucketz00_1460;
															obj_t BgL_lastzd2bucketzd2_1461;

															BgL_bucketz00_1460 = BgL_g1067z00_1458;
															BgL_lastzd2bucketzd2_1461 = BFALSE;
														BgL_zc3z04anonymousza31387ze3z87_1462:
															if (NULLP(BgL_bucketz00_1460))
																{	/* Llib/weakhash.scm 205 */
																	((bool_t) 0);
																}
															else
																{	/* Llib/weakhash.scm 236 */
																	obj_t BgL_retz00_1464;

																	{	/* Llib/weakhash.scm 236 */
																		obj_t BgL_arg1391z00_1467;
																		obj_t BgL_arg1392z00_1468;

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

																			BgL_pairz00_2835 =
																				CAR(((obj_t) BgL_bucketz00_1460));
																			BgL_arg1391z00_1467 =
																				CAR(BgL_pairz00_2835);
																		}
																		{	/* Llib/weakhash.scm 236 */
																			obj_t BgL_pairz00_2839;

																			BgL_pairz00_2839 =
																				CAR(((obj_t) BgL_bucketz00_1460));
																			BgL_arg1392z00_1468 =
																				CDR(BgL_pairz00_2839);
																		}
																		BgL_retz00_1464 =
																			BGL_PROCEDURE_CALL2(BgL_funz00_54,
																			BgL_arg1391z00_1467, BgL_arg1392z00_1468);
																	}
																	if (
																		(BgL_retz00_1464 ==
																			BGl_removez00zz__weakhashz00))
																		{	/* Llib/weakhash.scm 205 */
																			{	/* Llib/weakhash.scm 134 */
																				long BgL_arg1262z00_2840;

																				BgL_arg1262z00_2840 =
																					(
																					(long)
																					CINT(STRUCT_REF(BgL_tablez00_53,
																							(int) (0L))) - 1L);
																				{	/* Llib/weakhash.scm 134 */
																					obj_t BgL_auxz00_4920;
																					int BgL_tmpz00_4918;

																					BgL_auxz00_4920 =
																						BINT(BgL_arg1262z00_2840);
																					BgL_tmpz00_4918 = (int) (0L);
																					STRUCT_SET(BgL_tablez00_53,
																						BgL_tmpz00_4918, BgL_auxz00_4920);
																			}}
																			if (CBOOL(BgL_lastzd2bucketzd2_1461))
																				{	/* Llib/weakhash.scm 136 */
																					obj_t BgL_arg1265z00_2842;

																					BgL_arg1265z00_2842 =
																						CDR(((obj_t) BgL_bucketz00_1460));
																					{	/* Llib/weakhash.scm 136 */
																						obj_t BgL_tmpz00_4927;

																						BgL_tmpz00_4927 =
																							((obj_t)
																							BgL_lastzd2bucketzd2_1461);
																						SET_CDR(BgL_tmpz00_4927,
																							BgL_arg1265z00_2842);
																					}
																				}
																			else
																				{	/* Llib/weakhash.scm 137 */
																					obj_t BgL_arg1266z00_2843;

																					BgL_arg1266z00_2843 =
																						CDR(((obj_t) BgL_bucketz00_1460));
																					VECTOR_SET(
																						((obj_t) BgL_bucketsz00_1452),
																						BgL_iz00_1455, BgL_arg1266z00_2843);
																				}
																			BGl_keepgoingz00zz__weakhashz00;
																			{	/* Llib/weakhash.scm 205 */
																				obj_t BgL_arg1389z00_1465;

																				BgL_arg1389z00_1465 =
																					CDR(((obj_t) BgL_bucketz00_1460));
																				{
																					obj_t BgL_bucketz00_4936;

																					BgL_bucketz00_4936 =
																						BgL_arg1389z00_1465;
																					BgL_bucketz00_1460 =
																						BgL_bucketz00_4936;
																					goto
																						BgL_zc3z04anonymousza31387ze3z87_1462;
																				}
																			}
																		}
																	else
																		{	/* Llib/weakhash.scm 205 */
																			obj_t BgL_arg1390z00_1466;

																			BgL_arg1390z00_1466 =
																				CDR(((obj_t) BgL_bucketz00_1460));
																			{
																				obj_t BgL_lastzd2bucketzd2_4940;
																				obj_t BgL_bucketz00_4939;

																				BgL_bucketz00_4939 =
																					BgL_arg1390z00_1466;
																				BgL_lastzd2bucketzd2_4940 =
																					BgL_bucketz00_1460;
																				BgL_lastzd2bucketzd2_1461 =
																					BgL_lastzd2bucketzd2_4940;
																				BgL_bucketz00_1460 = BgL_bucketz00_4939;
																				goto
																					BgL_zc3z04anonymousza31387ze3z87_1462;
																			}
																		}
																}
														}
													}
													{
														long BgL_iz00_4941;

														BgL_iz00_4941 = (BgL_iz00_1455 + 1L);
														BgL_iz00_1455 = BgL_iz00_4941;
														goto BgL_zc3z04anonymousza31385ze3z87_1456;
													}
												}
										}
									}
								}
						}
				}
		}

	}



/* 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_1476;
				obj_t BgL_wz00_4122;

				BgL_vecz00_1476 =
					make_vector(BGl_hashtablezd2siza7ez75zz__hashz00(BgL_tablez00_57),
					BUNSPEC);
				BgL_wz00_4122 = BGL_MAKE_UNSAFE_CELL(BINT(0L));
				{	/* Llib/weakhash.scm 261 */
					obj_t BgL_zc3z04anonymousza31401ze3z87_4113;

					BgL_zc3z04anonymousza31401ze3z87_4113 =
						MAKE_FX_PROCEDURE
						(BGl_z62zc3z04anonymousza31401ze3ze5zz__weakhashz00, (int) (2L),
						(int) (2L));
					PROCEDURE_SET(BgL_zc3z04anonymousza31401ze3z87_4113, (int) (0L),
						BgL_vecz00_1476);
					PROCEDURE_SET(BgL_zc3z04anonymousza31401ze3z87_4113, (int) (1L),
						((obj_t) BgL_wz00_4122));
					if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_57))
						{	/* Llib/weakhash.scm 249 */
							BGl_keyszd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_57,
								BgL_zc3z04anonymousza31401ze3z87_4113);
						}
					else
						{	/* Llib/weakhash.scm 249 */
							BGl_oldzd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_57,
								BgL_zc3z04anonymousza31401ze3z87_4113);
						}
				}
				{	/* Llib/weakhash.scm 263 */
					bool_t BgL_test2289z00_4958;

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

						BgL_arg1404z00_1485 =
							BGl_hashtablezd2siza7ez75zz__hashz00(BgL_tablez00_57);
						BgL_test2289z00_4958 =
							(
							(long) CINT(BGL_UNSAFE_CELL_REF(BgL_wz00_4122)) <
							BgL_arg1404z00_1485);
					}
					if (BgL_test2289z00_4958)
						{	/* Llib/weakhash.scm 263 */
							return
								BGl_copyzd2vectorzd2zz__r4_vectors_6_8z00(BgL_vecz00_1476,
								(long) CINT(BGL_UNSAFE_CELL_REF(BgL_wz00_4122)));
						}
					else
						{	/* Llib/weakhash.scm 263 */
							return BgL_vecz00_1476;
						}
				}
			}
		}

	}



/* &weak-hashtable->vector */
	obj_t BGl_z62weakzd2hashtablezd2ze3vectorz81zz__weakhashz00(obj_t
		BgL_envz00_4114, obj_t BgL_tablez00_4115)
	{
		{	/* Llib/weakhash.scm 256 */
			{	/* Llib/weakhash.scm 257 */
				obj_t BgL_auxz00_4964;

				if (STRUCTP(BgL_tablez00_4115))
					{	/* Llib/weakhash.scm 257 */
						BgL_auxz00_4964 = BgL_tablez00_4115;
					}
				else
					{
						obj_t BgL_auxz00_4967;

						BgL_auxz00_4967 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(9857L), BGl_string2169z00zz__weakhashz00,
							BGl_string2170z00zz__weakhashz00, BgL_tablez00_4115);
						FAILURE(BgL_auxz00_4967, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2ze3vectorze3zz__weakhashz00(BgL_auxz00_4964);
			}
		}

	}



/* &<@anonymous:1401> */
	obj_t BGl_z62zc3z04anonymousza31401ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4116, obj_t BgL_keyz00_4119, obj_t BgL_valz00_4120)
	{
		{	/* Llib/weakhash.scm 260 */
			{	/* Llib/weakhash.scm 261 */
				obj_t BgL_vecz00_4117;
				obj_t BgL_wz00_4118;

				BgL_vecz00_4117 = ((obj_t) PROCEDURE_REF(BgL_envz00_4116, (int) (0L)));
				BgL_wz00_4118 = PROCEDURE_REF(BgL_envz00_4116, (int) (1L));
				{	/* Llib/weakhash.scm 261 */
					long BgL_kz00_4315;

					BgL_kz00_4315 = (long) CINT(BGL_UNSAFE_CELL_REF(BgL_wz00_4118));
					VECTOR_SET(((obj_t) BgL_vecz00_4117), BgL_kz00_4315, BgL_valz00_4120);
				}
				{	/* Llib/weakhash.scm 262 */
					obj_t BgL_auxz00_4316;

					BgL_auxz00_4316 = ADDFX(BGL_UNSAFE_CELL_REF(BgL_wz00_4118), BINT(1L));
					return BGL_UNSAFE_CELL_SET(BgL_wz00_4118, BgL_auxz00_4316);
				}
			}
		}

	}



/* 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_4132;

				BgL_resz00_4132 = BGL_MAKE_UNSAFE_CELL(BNIL);
				{	/* Llib/weakhash.scm 274 */
					obj_t BgL_zc3z04anonymousza31409ze3z87_4124;

					BgL_zc3z04anonymousza31409ze3z87_4124 =
						MAKE_FX_PROCEDURE
						(BGl_z62zc3z04anonymousza31409ze3ze5zz__weakhashz00, (int) (2L),
						(int) (1L));
					PROCEDURE_SET(BgL_zc3z04anonymousza31409ze3z87_4124, (int) (0L),
						((obj_t) BgL_resz00_4132));
					if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_58))
						{	/* Llib/weakhash.scm 249 */
							BGl_keyszd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_58,
								BgL_zc3z04anonymousza31409ze3z87_4124);
						}
					else
						{	/* Llib/weakhash.scm 249 */
							BGl_oldzd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_58,
								BgL_zc3z04anonymousza31409ze3z87_4124);
						}
				}
				return BGL_UNSAFE_CELL_REF(BgL_resz00_4132);
			}
		}

	}



/* &weak-hashtable->list */
	obj_t BGl_z62weakzd2hashtablezd2ze3listz81zz__weakhashz00(obj_t
		BgL_envz00_4125, obj_t BgL_tablez00_4126)
	{
		{	/* Llib/weakhash.scm 270 */
			{	/* Llib/weakhash.scm 271 */
				obj_t BgL_auxz00_4992;

				if (STRUCTP(BgL_tablez00_4126))
					{	/* Llib/weakhash.scm 271 */
						BgL_auxz00_4992 = BgL_tablez00_4126;
					}
				else
					{
						obj_t BgL_auxz00_4995;

						BgL_auxz00_4995 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(10362L), BGl_string2171z00zz__weakhashz00,
							BGl_string2170z00zz__weakhashz00, BgL_tablez00_4126);
						FAILURE(BgL_auxz00_4995, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2ze3listze3zz__weakhashz00(BgL_auxz00_4992);
			}
		}

	}



/* &<@anonymous:1409> */
	obj_t BGl_z62zc3z04anonymousza31409ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4127, obj_t BgL_keyz00_4129, obj_t BgL_valz00_4130)
	{
		{	/* Llib/weakhash.scm 273 */
			{	/* Llib/weakhash.scm 274 */
				obj_t BgL_resz00_4128;

				BgL_resz00_4128 = PROCEDURE_REF(BgL_envz00_4127, (int) (0L));
				{	/* Llib/weakhash.scm 274 */
					obj_t BgL_auxz00_4317;

					BgL_auxz00_4317 =
						MAKE_YOUNG_PAIR(BgL_valz00_4130,
						BGL_UNSAFE_CELL_REF(BgL_resz00_4128));
					return BGL_UNSAFE_CELL_SET(BgL_resz00_4128, BgL_auxz00_4317);
				}
			}
		}

	}



/* 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_4142;

				BgL_resz00_4142 = BGL_MAKE_UNSAFE_CELL(BNIL);
				{	/* Llib/weakhash.scm 284 */
					obj_t BgL_zc3z04anonymousza31411ze3z87_4134;

					BgL_zc3z04anonymousza31411ze3z87_4134 =
						MAKE_FX_PROCEDURE
						(BGl_z62zc3z04anonymousza31411ze3ze5zz__weakhashz00, (int) (2L),
						(int) (1L));
					PROCEDURE_SET(BgL_zc3z04anonymousza31411ze3z87_4134, (int) (0L),
						((obj_t) BgL_resz00_4142));
					if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_59))
						{	/* Llib/weakhash.scm 249 */
							BGl_keyszd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_59,
								BgL_zc3z04anonymousza31411ze3z87_4134);
						}
					else
						{	/* Llib/weakhash.scm 249 */
							BGl_oldzd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_59,
								BgL_zc3z04anonymousza31411ze3z87_4134);
						}
				}
				return BGL_UNSAFE_CELL_REF(BgL_resz00_4142);
			}
		}

	}



/* &weak-hashtable-key-list */
	obj_t BGl_z62weakzd2hashtablezd2keyzd2listzb0zz__weakhashz00(obj_t
		BgL_envz00_4135, obj_t BgL_tablez00_4136)
	{
		{	/* Llib/weakhash.scm 280 */
			{	/* Llib/weakhash.scm 281 */
				obj_t BgL_auxz00_5013;

				if (STRUCTP(BgL_tablez00_4136))
					{	/* Llib/weakhash.scm 281 */
						BgL_auxz00_5013 = BgL_tablez00_4136;
					}
				else
					{
						obj_t BgL_auxz00_5016;

						BgL_auxz00_5016 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(10745L), BGl_string2172z00zz__weakhashz00,
							BGl_string2170z00zz__weakhashz00, BgL_tablez00_4136);
						FAILURE(BgL_auxz00_5016, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2keyzd2listzd2zz__weakhashz00(BgL_auxz00_5013);
			}
		}

	}



/* &<@anonymous:1411> */
	obj_t BGl_z62zc3z04anonymousza31411ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4137, obj_t BgL_keyz00_4139, obj_t BgL_valz00_4140)
	{
		{	/* Llib/weakhash.scm 283 */
			{	/* Llib/weakhash.scm 284 */
				obj_t BgL_resz00_4138;

				BgL_resz00_4138 = PROCEDURE_REF(BgL_envz00_4137, (int) (0L));
				{	/* Llib/weakhash.scm 284 */
					obj_t BgL_auxz00_4318;

					BgL_auxz00_4318 =
						MAKE_YOUNG_PAIR(BgL_keyz00_4139,
						BGL_UNSAFE_CELL_REF(BgL_resz00_4138));
					return BGL_UNSAFE_CELL_SET(BgL_resz00_4138, BgL_auxz00_4318);
				}
			}
		}

	}



/* 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_4154;

				BgL_resz00_4154 = BGL_MAKE_UNSAFE_CELL(BNIL);
				{	/* Llib/weakhash.scm 294 */
					obj_t BgL_zc3z04anonymousza31413ze3z87_4144;

					BgL_zc3z04anonymousza31413ze3z87_4144 =
						MAKE_FX_PROCEDURE
						(BGl_z62zc3z04anonymousza31413ze3ze5zz__weakhashz00, (int) (2L),
						(int) (2L));
					PROCEDURE_SET(BgL_zc3z04anonymousza31413ze3z87_4144, (int) (0L),
						BgL_funz00_61);
					PROCEDURE_SET(BgL_zc3z04anonymousza31413ze3z87_4144, (int) (1L),
						((obj_t) BgL_resz00_4154));
					if (BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_tablez00_60))
						{	/* Llib/weakhash.scm 249 */
							BGl_keyszd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_60,
								BgL_zc3z04anonymousza31413ze3z87_4144);
						}
					else
						{	/* Llib/weakhash.scm 249 */
							BGl_oldzd2traversezd2hashz00zz__weakhashz00(BgL_tablez00_60,
								BgL_zc3z04anonymousza31413ze3z87_4144);
						}
				}
				return BGL_UNSAFE_CELL_REF(BgL_resz00_4154);
			}
		}

	}



/* &weak-hashtable-map */
	obj_t BGl_z62weakzd2hashtablezd2mapz62zz__weakhashz00(obj_t BgL_envz00_4145,
		obj_t BgL_tablez00_4146, obj_t BgL_funz00_4147)
	{
		{	/* Llib/weakhash.scm 290 */
			{	/* Llib/weakhash.scm 291 */
				obj_t BgL_auxz00_5043;
				obj_t BgL_auxz00_5036;

				if (PROCEDUREP(BgL_funz00_4147))
					{	/* Llib/weakhash.scm 291 */
						BgL_auxz00_5043 = BgL_funz00_4147;
					}
				else
					{
						obj_t BgL_auxz00_5046;

						BgL_auxz00_5046 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(11138L), BGl_string2173z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_funz00_4147);
						FAILURE(BgL_auxz00_5046, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_4146))
					{	/* Llib/weakhash.scm 291 */
						BgL_auxz00_5036 = BgL_tablez00_4146;
					}
				else
					{
						obj_t BgL_auxz00_5039;

						BgL_auxz00_5039 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(11138L), BGl_string2173z00zz__weakhashz00,
							BGl_string2170z00zz__weakhashz00, BgL_tablez00_4146);
						FAILURE(BgL_auxz00_5039, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2mapz00zz__weakhashz00(BgL_auxz00_5036,
					BgL_auxz00_5043);
			}
		}

	}



/* &<@anonymous:1413> */
	obj_t BGl_z62zc3z04anonymousza31413ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4148, obj_t BgL_keyz00_4151, obj_t BgL_valz00_4152)
	{
		{	/* Llib/weakhash.scm 293 */
			{	/* Llib/weakhash.scm 294 */
				obj_t BgL_funz00_4149;
				obj_t BgL_resz00_4150;

				BgL_funz00_4149 = ((obj_t) PROCEDURE_REF(BgL_envz00_4148, (int) (0L)));
				BgL_resz00_4150 = PROCEDURE_REF(BgL_envz00_4148, (int) (1L));
				{	/* Llib/weakhash.scm 294 */
					obj_t BgL_auxz00_4319;

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

						BgL_arg1414z00_4320 =
							BGL_PROCEDURE_CALL2(BgL_funz00_4149, BgL_keyz00_4151,
							BgL_valz00_4152);
						BgL_auxz00_4319 =
							MAKE_YOUNG_PAIR(BgL_arg1414z00_4320,
							BGL_UNSAFE_CELL_REF(BgL_resz00_4150));
					}
					return BGL_UNSAFE_CELL_SET(BgL_resz00_4150, BgL_auxz00_4319);
				}
			}
		}

	}



/* 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_4156, obj_t BgL_tablez00_4157, obj_t BgL_funz00_4158)
	{
		{	/* Llib/weakhash.scm 300 */
			{	/* Llib/weakhash.scm 249 */
				obj_t BgL_auxz00_5075;
				obj_t BgL_auxz00_5068;

				if (PROCEDUREP(BgL_funz00_4158))
					{	/* Llib/weakhash.scm 249 */
						BgL_auxz00_5075 = BgL_funz00_4158;
					}
				else
					{
						obj_t BgL_auxz00_5078;

						BgL_auxz00_5078 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(9474L), BGl_string2175z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_funz00_4158);
						FAILURE(BgL_auxz00_5078, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_4157))
					{	/* Llib/weakhash.scm 249 */
						BgL_auxz00_5068 = BgL_tablez00_4157;
					}
				else
					{
						obj_t BgL_auxz00_5071;

						BgL_auxz00_5071 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(9474L), BGl_string2175z00zz__weakhashz00,
							BGl_string2170z00zz__weakhashz00, BgL_tablez00_4157);
						FAILURE(BgL_auxz00_5071, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2forzd2eachzd2zz__weakhashz00(BgL_auxz00_5068,
					BgL_auxz00_5075);
			}
		}

	}



/* 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_1507;

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

					{
						long BgL_iz00_1510;

						BgL_iz00_1510 = 0L;
					BgL_zc3z04anonymousza31415ze3z87_1511:
						if ((BgL_iz00_1510 < VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1507))))
							{	/* Llib/weakhash.scm 311 */
								obj_t BgL_bucketz00_1513;
								obj_t BgL_countz00_4165;

								BgL_bucketz00_1513 =
									VECTOR_REF(((obj_t) BgL_bucketsz00_1507), BgL_iz00_1510);
								BgL_countz00_4165 = BGL_MAKE_UNSAFE_CELL(BINT(0L));
								{	/* Llib/weakhash.scm 315 */
									obj_t BgL_arg1417z00_1515;

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

										BgL_zc3z04anonymousza31420ze3z87_4159 =
											MAKE_FX_PROCEDURE
											(BGl_z62zc3z04anonymousza31420ze3ze5zz__weakhashz00,
											(int) (1L), (int) (2L));
										PROCEDURE_SET(BgL_zc3z04anonymousza31420ze3z87_4159,
											(int) (0L), ((obj_t) BgL_countz00_4165));
										PROCEDURE_SET(BgL_zc3z04anonymousza31420ze3z87_4159,
											(int) (1L), ((obj_t) BgL_funz00_65));
										BgL_arg1417z00_1515 =
											BGl_filterz12z12zz__r4_control_features_6_9z00
											(BgL_zc3z04anonymousza31420ze3z87_4159,
											BgL_bucketz00_1513);
									}
									VECTOR_SET(
										((obj_t) BgL_bucketsz00_1507), BgL_iz00_1510,
										BgL_arg1417z00_1515);
								}
								{	/* Llib/weakhash.scm 322 */
									long BgL_arg1433z00_1534;

									BgL_arg1433z00_1534 =
										(
										(long) CINT(STRUCT_REF(BgL_tablez00_64,
												(int) (0L))) -
										(long) CINT(BGL_UNSAFE_CELL_REF(BgL_countz00_4165)));
									{	/* Llib/weakhash.scm 322 */
										obj_t BgL_auxz00_5111;
										int BgL_tmpz00_5109;

										BgL_auxz00_5111 = BINT(BgL_arg1433z00_1534);
										BgL_tmpz00_5109 = (int) (0L);
										STRUCT_SET(BgL_tablez00_64, BgL_tmpz00_5109,
											BgL_auxz00_5111);
								}}
								{
									long BgL_iz00_5114;

									BgL_iz00_5114 = (BgL_iz00_1510 + 1L);
									BgL_iz00_1510 = BgL_iz00_5114;
									goto BgL_zc3z04anonymousza31415ze3z87_1511;
								}
							}
						else
							{	/* Llib/weakhash.scm 310 */
								return ((bool_t) 0);
							}
					}
				}
			}
		}

	}



/* &<@anonymous:1420> */
	obj_t BGl_z62zc3z04anonymousza31420ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4160, obj_t BgL_vz00_4163)
	{
		{	/* Llib/weakhash.scm 314 */
			{	/* Llib/weakhash.scm 315 */
				obj_t BgL_countz00_4161;
				obj_t BgL_funz00_4162;

				BgL_countz00_4161 = PROCEDURE_REF(BgL_envz00_4160, (int) (0L));
				BgL_funz00_4162 = PROCEDURE_REF(BgL_envz00_4160, (int) (1L));
				{	/* Llib/weakhash.scm 315 */
					bool_t BgL_tmpz00_5120;

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

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

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

								BgL_arg1432z00_4321 = bgl_weakptr_data(((obj_t) BgL_vz00_4163));
								BgL_test2303z00_5122 = (BgL_arg1432z00_4321 == BUNSPEC);
							}
							if (BgL_test2303z00_5122)
								{	/* Llib/weakhash.scm 315 */
									BgL_test2302z00_5121 = ((bool_t) 1);
								}
							else
								{	/* Llib/weakhash.scm 316 */
									bool_t BgL_test2304z00_5126;

									{	/* Llib/weakhash.scm 316 */
										obj_t BgL_arg1430z00_4322;
										obj_t BgL_arg1431z00_4323;

										BgL_arg1430z00_4322 =
											bgl_weakptr_data(((obj_t) BgL_vz00_4163));
										BgL_arg1431z00_4323 =
											bgl_weakptr_ref(((obj_t) BgL_vz00_4163));
										BgL_test2304z00_5126 =
											CBOOL(BGL_PROCEDURE_CALL2(BgL_funz00_4162,
												BgL_arg1430z00_4322, BgL_arg1431z00_4323));
									}
									if (BgL_test2304z00_5126)
										{	/* Llib/weakhash.scm 316 */
											BgL_test2302z00_5121 = ((bool_t) 0);
										}
									else
										{	/* Llib/weakhash.scm 316 */
											BgL_test2302z00_5121 = ((bool_t) 1);
										}
								}
						}
						if (BgL_test2302z00_5121)
							{	/* Llib/weakhash.scm 315 */
								{	/* Llib/weakhash.scm 318 */
									obj_t BgL_auxz00_4324;

									BgL_auxz00_4324 =
										ADDFX(BGL_UNSAFE_CELL_REF(BgL_countz00_4161), BINT(1L));
									BGL_UNSAFE_CELL_SET(BgL_countz00_4161, BgL_auxz00_4324);
								}
								BgL_tmpz00_5120 = ((bool_t) 0);
							}
						else
							{	/* Llib/weakhash.scm 315 */
								BgL_tmpz00_5120 = ((bool_t) 1);
							}
					}
					return BBOOL(BgL_tmpz00_5120);
				}
			}
		}

	}



/* 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_1538;

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

					{
						long BgL_iz00_1541;

						BgL_iz00_1541 = 0L;
					BgL_zc3z04anonymousza31436ze3z87_1542:
						if ((BgL_iz00_1541 < VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1538))))
							{	/* Llib/weakhash.scm 332 */
								{	/* Llib/weakhash.scm 336 */
									obj_t BgL_zc3z04anonymousza31439ze3z87_4167;

									{
										int BgL_tmpz00_5146;

										BgL_tmpz00_5146 = (int) (1L);
										BgL_zc3z04anonymousza31439ze3z87_4167 =
											MAKE_L_PROCEDURE
											(BGl_z62zc3z04anonymousza31439ze3ze5zz__weakhashz00,
											BgL_tmpz00_5146);
									}
									PROCEDURE_L_SET(BgL_zc3z04anonymousza31439ze3z87_4167,
										(int) (0L), ((obj_t) BgL_funz00_67));
									BGl_traversezd2bucketszd2zz__weakhashz00(BgL_tablez00_66,
										BgL_bucketsz00_1538, BgL_iz00_1541,
										BgL_zc3z04anonymousza31439ze3z87_4167);
								}
								{
									long BgL_iz00_5153;

									BgL_iz00_5153 = (BgL_iz00_1541 + 1L);
									BgL_iz00_1541 = BgL_iz00_5153;
									goto BgL_zc3z04anonymousza31436ze3z87_1542;
								}
							}
						else
							{	/* Llib/weakhash.scm 332 */
								return ((bool_t) 0);
							}
					}
				}
			}
		}

	}



/* &<@anonymous:1439> */
	obj_t BGl_z62zc3z04anonymousza31439ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4168, obj_t BgL_keyz00_4170, obj_t BgL_valz00_4171,
		obj_t BgL_bucketz00_4172)
	{
		{	/* Llib/weakhash.scm 335 */
			{	/* Llib/weakhash.scm 336 */
				obj_t BgL_funz00_4169;

				BgL_funz00_4169 = PROCEDURE_L_REF(BgL_envz00_4168, (int) (0L));
				if (CBOOL(BGL_PROCEDURE_CALL2(BgL_funz00_4169, BgL_keyz00_4170,
							BgL_valz00_4171)))
					{	/* 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_4173, obj_t BgL_tablez00_4174, obj_t BgL_funz00_4175)
	{
		{	/* Llib/weakhash.scm 344 */
			{	/* Llib/weakhash.scm 345 */
				obj_t BgL_auxz00_5177;
				obj_t BgL_auxz00_5170;

				if (PROCEDUREP(BgL_funz00_4175))
					{	/* Llib/weakhash.scm 345 */
						BgL_auxz00_5177 = BgL_funz00_4175;
					}
				else
					{
						obj_t BgL_auxz00_5180;

						BgL_auxz00_5180 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(13294L), BGl_string2176z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_funz00_4175);
						FAILURE(BgL_auxz00_5180, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_4174))
					{	/* Llib/weakhash.scm 345 */
						BgL_auxz00_5170 = BgL_tablez00_4174;
					}
				else
					{
						obj_t BgL_auxz00_5173;

						BgL_auxz00_5173 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(13294L), BGl_string2176z00zz__weakhashz00,
							BGl_string2170z00zz__weakhashz00, BgL_tablez00_4174);
						FAILURE(BgL_auxz00_5173, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2filterz12z12zz__weakhashz00(BgL_auxz00_5170,
					BgL_auxz00_5177);
			}
		}

	}



/* 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_proc2177z00zz__weakhashz00));
				}
			else
				{	/* Llib/weakhash.scm 353 */
					return
						BBOOL(BGl_weakzd2oldzd2hashtablezd2filterz12zc0zz__weakhashz00
						(BgL_tablez00_70, BGl_proc2178z00zz__weakhashz00));
				}
		}

	}



/* &weak-hashtable-clear! */
	obj_t BGl_z62weakzd2hashtablezd2clearz12z70zz__weakhashz00(obj_t
		BgL_envz00_4178, obj_t BgL_tablez00_4179)
	{
		{	/* Llib/weakhash.scm 352 */
			{	/* Llib/weakhash.scm 353 */
				obj_t BgL_auxz00_5191;

				if (STRUCTP(BgL_tablez00_4179))
					{	/* Llib/weakhash.scm 353 */
						BgL_auxz00_5191 = BgL_tablez00_4179;
					}
				else
					{
						obj_t BgL_auxz00_5194;

						BgL_auxz00_5194 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(13701L), BGl_string2179z00zz__weakhashz00,
							BGl_string2170z00zz__weakhashz00, BgL_tablez00_4179);
						FAILURE(BgL_auxz00_5194, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2clearz12z12zz__weakhashz00(BgL_auxz00_5191);
			}
		}

	}



/* &<@anonymous:1446> */
	obj_t BGl_z62zc3z04anonymousza31446ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4180, obj_t BgL_kz00_4181, obj_t BgL_vz00_4182)
	{
		{	/* Llib/weakhash.scm 354 */
			return BBOOL(((bool_t) 0));
		}

	}



/* &<@anonymous:1448> */
	obj_t BGl_z62zc3z04anonymousza31448ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4183, obj_t BgL_kz00_4184, obj_t BgL_vz00_4185)
	{
		{	/* 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_1565;

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

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

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

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

									BgL_arg1258z00_2914 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_2912, BgL_keyz00_72);
									{	/* Llib/weakhash.scm 363 */
										long BgL_nz00_2916;

										BgL_nz00_2916 = (long) CINT(BgL_arg1258z00_2914);
										if ((BgL_nz00_2916 < 0L))
											{	/* Llib/weakhash.scm 363 */
												BgL_arg1458z00_1580 = NEG(BgL_nz00_2916);
											}
										else
											{	/* Llib/weakhash.scm 363 */
												BgL_arg1458z00_1580 = BgL_nz00_2916;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 363 */
									if ((BgL_hashnz00_2912 == BGl_symbol2180z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 363 */
											BgL_arg1458z00_1580 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_72);
										}
									else
										{	/* Llib/weakhash.scm 363 */
											BgL_arg1458z00_1580 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_72);
										}
								}
						}
						{	/* Llib/weakhash.scm 363 */
							long BgL_n1z00_2920;
							long BgL_n2z00_2921;

							BgL_n1z00_2920 = BgL_arg1458z00_1580;
							BgL_n2z00_2921 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1565));
							{	/* Llib/weakhash.scm 363 */
								bool_t BgL_test2315z00_5221;

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

									BgL_arg1960z00_2923 =
										(((BgL_n1z00_2920) | (BgL_n2z00_2921)) & -2147483648);
									BgL_test2315z00_5221 = (BgL_arg1960z00_2923 == 0L);
								}
								if (BgL_test2315z00_5221)
									{	/* Llib/weakhash.scm 363 */
										int32_t BgL_arg1956z00_2924;

										{	/* Llib/weakhash.scm 363 */
											int32_t BgL_arg1957z00_2925;
											int32_t BgL_arg1959z00_2926;

											BgL_arg1957z00_2925 = (int32_t) (BgL_n1z00_2920);
											BgL_arg1959z00_2926 = (int32_t) (BgL_n2z00_2921);
											BgL_arg1956z00_2924 =
												(BgL_arg1957z00_2925 % BgL_arg1959z00_2926);
										}
										{	/* Llib/weakhash.scm 363 */
											long BgL_arg2069z00_2931;

											BgL_arg2069z00_2931 = (long) (BgL_arg1956z00_2924);
											BgL_bucketzd2numzd2_1567 = (long) (BgL_arg2069z00_2931);
									}}
								else
									{	/* Llib/weakhash.scm 363 */
										BgL_bucketzd2numzd2_1567 =
											(BgL_n1z00_2920 % BgL_n2z00_2921);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 363 */
						obj_t BgL_bucketz00_1568;

						BgL_bucketz00_1568 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1565), BgL_bucketzd2numzd2_1567);
						{	/* Llib/weakhash.scm 364 */

							{
								obj_t BgL_bucketz00_1570;

								BgL_bucketz00_1570 = BgL_bucketz00_1568;
							BgL_zc3z04anonymousza31449ze3z87_1571:
								if (NULLP(BgL_bucketz00_1570))
									{	/* Llib/weakhash.scm 367 */
										return ((bool_t) 0);
									}
								else
									{	/* Llib/weakhash.scm 369 */
										bool_t BgL_test2317z00_5234;

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

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

												BgL_arg1457z00_1578 = CAR(((obj_t) BgL_bucketz00_1570));
												BgL_arg1456z00_1577 =
													bgl_weakptr_data(((obj_t) BgL_arg1457z00_1578));
											}
											{	/* Llib/weakhash.scm 369 */
												obj_t BgL_eqtz00_2937;

												BgL_eqtz00_2937 =
													STRUCT_REF(BgL_tablez00_71, (int) (3L));
												if (PROCEDUREP(BgL_eqtz00_2937))
													{	/* Llib/weakhash.scm 369 */
														BgL_test2317z00_5234 =
															CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_2937,
																BgL_arg1456z00_1577, BgL_keyz00_72));
													}
												else
													{	/* Llib/weakhash.scm 369 */
														if ((BgL_arg1456z00_1577 == BgL_keyz00_72))
															{	/* Llib/weakhash.scm 369 */
																BgL_test2317z00_5234 = ((bool_t) 1);
															}
														else
															{	/* Llib/weakhash.scm 369 */
																if (STRINGP(BgL_arg1456z00_1577))
																	{	/* Llib/weakhash.scm 369 */
																		if (STRINGP(BgL_keyz00_72))
																			{	/* Llib/weakhash.scm 369 */
																				long BgL_l1z00_2944;

																				BgL_l1z00_2944 =
																					STRING_LENGTH(BgL_arg1456z00_1577);
																				if (
																					(BgL_l1z00_2944 ==
																						STRING_LENGTH(BgL_keyz00_72)))
																					{	/* Llib/weakhash.scm 369 */
																						int BgL_arg1839z00_2947;

																						{	/* Llib/weakhash.scm 369 */
																							char *BgL_auxz00_5261;
																							char *BgL_tmpz00_5259;

																							BgL_auxz00_5261 =
																								BSTRING_TO_STRING
																								(BgL_keyz00_72);
																							BgL_tmpz00_5259 =
																								BSTRING_TO_STRING
																								(BgL_arg1456z00_1577);
																							BgL_arg1839z00_2947 =
																								memcmp(BgL_tmpz00_5259,
																								BgL_auxz00_5261,
																								BgL_l1z00_2944);
																						}
																						BgL_test2317z00_5234 =
																							(
																							(long) (BgL_arg1839z00_2947) ==
																							0L);
																					}
																				else
																					{	/* Llib/weakhash.scm 369 */
																						BgL_test2317z00_5234 = ((bool_t) 0);
																					}
																			}
																		else
																			{	/* Llib/weakhash.scm 369 */
																				BgL_test2317z00_5234 = ((bool_t) 0);
																			}
																	}
																else
																	{	/* Llib/weakhash.scm 369 */
																		BgL_test2317z00_5234 = ((bool_t) 0);
																	}
															}
													}
											}
										}
										if (BgL_test2317z00_5234)
											{	/* Llib/weakhash.scm 369 */
												return ((bool_t) 1);
											}
										else
											{	/* Llib/weakhash.scm 372 */
												obj_t BgL_arg1455z00_1576;

												BgL_arg1455z00_1576 = CDR(((obj_t) BgL_bucketz00_1570));
												{
													obj_t BgL_bucketz00_5268;

													BgL_bucketz00_5268 = BgL_arg1455z00_1576;
													BgL_bucketz00_1570 = BgL_bucketz00_5268;
													goto BgL_zc3z04anonymousza31449ze3z87_1571;
												}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* 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_1581;

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

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

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

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

									BgL_arg1258z00_2958 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_2956, BgL_keyz00_74);
									{	/* Llib/weakhash.scm 380 */
										long BgL_nz00_2960;

										BgL_nz00_2960 = (long) CINT(BgL_arg1258z00_2958);
										if ((BgL_nz00_2960 < 0L))
											{	/* Llib/weakhash.scm 380 */
												BgL_arg1462z00_1592 = NEG(BgL_nz00_2960);
											}
										else
											{	/* Llib/weakhash.scm 380 */
												BgL_arg1462z00_1592 = BgL_nz00_2960;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 380 */
									if ((BgL_hashnz00_2956 == BGl_symbol2180z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 380 */
											BgL_arg1462z00_1592 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_74);
										}
									else
										{	/* Llib/weakhash.scm 380 */
											BgL_arg1462z00_1592 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_74);
										}
								}
						}
						{	/* Llib/weakhash.scm 380 */
							long BgL_n1z00_2964;
							long BgL_n2z00_2965;

							BgL_n1z00_2964 = BgL_arg1462z00_1592;
							BgL_n2z00_2965 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1581));
							{	/* Llib/weakhash.scm 380 */
								bool_t BgL_test2326z00_5289;

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

									BgL_arg1960z00_2967 =
										(((BgL_n1z00_2964) | (BgL_n2z00_2965)) & -2147483648);
									BgL_test2326z00_5289 = (BgL_arg1960z00_2967 == 0L);
								}
								if (BgL_test2326z00_5289)
									{	/* Llib/weakhash.scm 380 */
										int32_t BgL_arg1956z00_2968;

										{	/* Llib/weakhash.scm 380 */
											int32_t BgL_arg1957z00_2969;
											int32_t BgL_arg1959z00_2970;

											BgL_arg1957z00_2969 = (int32_t) (BgL_n1z00_2964);
											BgL_arg1959z00_2970 = (int32_t) (BgL_n2z00_2965);
											BgL_arg1956z00_2968 =
												(BgL_arg1957z00_2969 % BgL_arg1959z00_2970);
										}
										{	/* Llib/weakhash.scm 380 */
											long BgL_arg2069z00_2975;

											BgL_arg2069z00_2975 = (long) (BgL_arg1956z00_2968);
											BgL_bucketzd2numzd2_1583 = (long) (BgL_arg2069z00_2975);
									}}
								else
									{	/* Llib/weakhash.scm 380 */
										BgL_bucketzd2numzd2_1583 =
											(BgL_n1z00_2964 % BgL_n2z00_2965);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 380 */
						obj_t BgL_retz00_1584;

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

							{
								int BgL_tmpz00_5298;

								BgL_tmpz00_5298 = (int) (2L);
								BgL_zc3z04anonymousza31460ze3z87_4186 =
									MAKE_L_PROCEDURE
									(BGl_z62zc3z04anonymousza31460ze3ze5zz__weakhashz00,
									BgL_tmpz00_5298);
							}
							PROCEDURE_L_SET(BgL_zc3z04anonymousza31460ze3z87_4186,
								(int) (0L), BgL_tablez00_73);
							PROCEDURE_L_SET(BgL_zc3z04anonymousza31460ze3z87_4186,
								(int) (1L), BgL_keyz00_74);
							BgL_retz00_1584 =
								BGl_traversezd2bucketszd2zz__weakhashz00(BgL_tablez00_73,
								BgL_bucketsz00_1581, BgL_bucketzd2numzd2_1583,
								BgL_zc3z04anonymousza31460ze3z87_4186);
						}
						{	/* Llib/weakhash.scm 381 */

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

	}



/* &<@anonymous:1460> */
	obj_t BGl_z62zc3z04anonymousza31460ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4187, obj_t BgL_bkeyz00_4190, obj_t BgL_valz00_4191,
		obj_t BgL_bucketz00_4192)
	{
		{	/* Llib/weakhash.scm 382 */
			{	/* Llib/weakhash.scm 383 */
				obj_t BgL_tablez00_4188;
				obj_t BgL_keyz00_4189;

				BgL_tablez00_4188 =
					((obj_t) PROCEDURE_L_REF(BgL_envz00_4187, (int) (0L)));
				BgL_keyz00_4189 = PROCEDURE_L_REF(BgL_envz00_4187, (int) (1L));
				{	/* Llib/weakhash.scm 383 */
					bool_t BgL_test2328z00_5313;

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

						BgL_eqtz00_4325 = STRUCT_REF(BgL_tablez00_4188, (int) (3L));
						if (PROCEDUREP(BgL_eqtz00_4325))
							{	/* Llib/weakhash.scm 383 */
								BgL_test2328z00_5313 =
									CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_4325, BgL_keyz00_4189,
										BgL_bkeyz00_4190));
							}
						else
							{	/* Llib/weakhash.scm 383 */
								if ((BgL_keyz00_4189 == BgL_bkeyz00_4190))
									{	/* Llib/weakhash.scm 383 */
										BgL_test2328z00_5313 = ((bool_t) 1);
									}
								else
									{	/* Llib/weakhash.scm 383 */
										if (STRINGP(BgL_keyz00_4189))
											{	/* Llib/weakhash.scm 383 */
												if (STRINGP(BgL_bkeyz00_4190))
													{	/* Llib/weakhash.scm 383 */
														long BgL_l1z00_4326;

														BgL_l1z00_4326 = STRING_LENGTH(BgL_keyz00_4189);
														if (
															(BgL_l1z00_4326 ==
																STRING_LENGTH(BgL_bkeyz00_4190)))
															{	/* Llib/weakhash.scm 383 */
																int BgL_arg1839z00_4327;

																{	/* Llib/weakhash.scm 383 */
																	char *BgL_auxz00_5336;
																	char *BgL_tmpz00_5334;

																	BgL_auxz00_5336 =
																		BSTRING_TO_STRING(BgL_bkeyz00_4190);
																	BgL_tmpz00_5334 =
																		BSTRING_TO_STRING(BgL_keyz00_4189);
																	BgL_arg1839z00_4327 =
																		memcmp(BgL_tmpz00_5334, BgL_auxz00_5336,
																		BgL_l1z00_4326);
																}
																BgL_test2328z00_5313 =
																	((long) (BgL_arg1839z00_4327) == 0L);
															}
														else
															{	/* Llib/weakhash.scm 383 */
																BgL_test2328z00_5313 = ((bool_t) 0);
															}
													}
												else
													{	/* Llib/weakhash.scm 383 */
														BgL_test2328z00_5313 = ((bool_t) 0);
													}
											}
										else
											{	/* Llib/weakhash.scm 383 */
												BgL_test2328z00_5313 = ((bool_t) 0);
											}
									}
							}
					}
					if (BgL_test2328z00_5313)
						{	/* 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_4193, obj_t BgL_tablez00_4194, obj_t BgL_keyz00_4195)
	{
		{	/* Llib/weakhash.scm 391 */
			{	/* Llib/weakhash.scm 392 */
				bool_t BgL_tmpz00_5345;

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

					if (STRUCTP(BgL_tablez00_4194))
						{	/* Llib/weakhash.scm 392 */
							BgL_auxz00_5346 = BgL_tablez00_4194;
						}
					else
						{
							obj_t BgL_auxz00_5349;

							BgL_auxz00_5349 =
								BGl_typezd2errorzd2zz__errorz00
								(BGl_string2168z00zz__weakhashz00, BINT(15453L),
								BGl_string2182z00zz__weakhashz00,
								BGl_string2170z00zz__weakhashz00, BgL_tablez00_4194);
							FAILURE(BgL_auxz00_5349, BFALSE, BFALSE);
						}
					BgL_tmpz00_5345 =
						BGl_weakzd2hashtablezd2containszf3zf3zz__weakhashz00
						(BgL_auxz00_5346, BgL_keyz00_4195);
				}
				return BBOOL(BgL_tmpz00_5345);
			}
		}

	}



/* 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_1594;

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

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

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

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

									BgL_arg1258z00_2999 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_2997, BgL_keyz00_78);
									{	/* Llib/weakhash.scm 402 */
										long BgL_nz00_3001;

										BgL_nz00_3001 = (long) CINT(BgL_arg1258z00_2999);
										if ((BgL_nz00_3001 < 0L))
											{	/* Llib/weakhash.scm 402 */
												BgL_arg1473z00_1610 = NEG(BgL_nz00_3001);
											}
										else
											{	/* Llib/weakhash.scm 402 */
												BgL_arg1473z00_1610 = BgL_nz00_3001;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 402 */
									if ((BgL_hashnz00_2997 == BGl_symbol2180z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 402 */
											BgL_arg1473z00_1610 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_78);
										}
									else
										{	/* Llib/weakhash.scm 402 */
											BgL_arg1473z00_1610 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_78);
										}
								}
						}
						{	/* Llib/weakhash.scm 402 */
							long BgL_n1z00_3005;
							long BgL_n2z00_3006;

							BgL_n1z00_3005 = BgL_arg1473z00_1610;
							BgL_n2z00_3006 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1594));
							{	/* Llib/weakhash.scm 402 */
								bool_t BgL_test2339z00_5375;

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

									BgL_arg1960z00_3008 =
										(((BgL_n1z00_3005) | (BgL_n2z00_3006)) & -2147483648);
									BgL_test2339z00_5375 = (BgL_arg1960z00_3008 == 0L);
								}
								if (BgL_test2339z00_5375)
									{	/* Llib/weakhash.scm 402 */
										int32_t BgL_arg1956z00_3009;

										{	/* Llib/weakhash.scm 402 */
											int32_t BgL_arg1957z00_3010;
											int32_t BgL_arg1959z00_3011;

											BgL_arg1957z00_3010 = (int32_t) (BgL_n1z00_3005);
											BgL_arg1959z00_3011 = (int32_t) (BgL_n2z00_3006);
											BgL_arg1956z00_3009 =
												(BgL_arg1957z00_3010 % BgL_arg1959z00_3011);
										}
										{	/* Llib/weakhash.scm 402 */
											long BgL_arg2069z00_3016;

											BgL_arg2069z00_3016 = (long) (BgL_arg1956z00_3009);
											BgL_bucketzd2numzd2_1596 = (long) (BgL_arg2069z00_3016);
									}}
								else
									{	/* Llib/weakhash.scm 402 */
										BgL_bucketzd2numzd2_1596 =
											(BgL_n1z00_3005 % BgL_n2z00_3006);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 402 */
						obj_t BgL_bucketz00_1597;

						BgL_bucketz00_1597 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1594), BgL_bucketzd2numzd2_1596);
						{	/* Llib/weakhash.scm 403 */

							{
								obj_t BgL_bucketz00_1599;

								BgL_bucketz00_1599 = BgL_bucketz00_1597;
							BgL_zc3z04anonymousza31464ze3z87_1600:
								if (NULLP(BgL_bucketz00_1599))
									{	/* Llib/weakhash.scm 406 */
										return BFALSE;
									}
								else
									{	/* Llib/weakhash.scm 408 */
										bool_t BgL_test2341z00_5388;

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

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

												BgL_arg1472z00_1608 = CAR(((obj_t) BgL_bucketz00_1599));
												BgL_arg1471z00_1607 =
													bgl_weakptr_data(((obj_t) BgL_arg1472z00_1608));
											}
											{	/* Llib/weakhash.scm 408 */
												obj_t BgL_eqtz00_3022;

												BgL_eqtz00_3022 =
													STRUCT_REF(BgL_tablez00_77, (int) (3L));
												if (PROCEDUREP(BgL_eqtz00_3022))
													{	/* Llib/weakhash.scm 408 */
														BgL_test2341z00_5388 =
															CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_3022,
																BgL_arg1471z00_1607, BgL_keyz00_78));
													}
												else
													{	/* Llib/weakhash.scm 408 */
														if ((BgL_arg1471z00_1607 == BgL_keyz00_78))
															{	/* Llib/weakhash.scm 408 */
																BgL_test2341z00_5388 = ((bool_t) 1);
															}
														else
															{	/* Llib/weakhash.scm 408 */
																if (STRINGP(BgL_arg1471z00_1607))
																	{	/* Llib/weakhash.scm 408 */
																		if (STRINGP(BgL_keyz00_78))
																			{	/* Llib/weakhash.scm 408 */
																				long BgL_l1z00_3029;

																				BgL_l1z00_3029 =
																					STRING_LENGTH(BgL_arg1471z00_1607);
																				if (
																					(BgL_l1z00_3029 ==
																						STRING_LENGTH(BgL_keyz00_78)))
																					{	/* Llib/weakhash.scm 408 */
																						int BgL_arg1839z00_3032;

																						{	/* Llib/weakhash.scm 408 */
																							char *BgL_auxz00_5415;
																							char *BgL_tmpz00_5413;

																							BgL_auxz00_5415 =
																								BSTRING_TO_STRING
																								(BgL_keyz00_78);
																							BgL_tmpz00_5413 =
																								BSTRING_TO_STRING
																								(BgL_arg1471z00_1607);
																							BgL_arg1839z00_3032 =
																								memcmp(BgL_tmpz00_5413,
																								BgL_auxz00_5415,
																								BgL_l1z00_3029);
																						}
																						BgL_test2341z00_5388 =
																							(
																							(long) (BgL_arg1839z00_3032) ==
																							0L);
																					}
																				else
																					{	/* Llib/weakhash.scm 408 */
																						BgL_test2341z00_5388 = ((bool_t) 0);
																					}
																			}
																		else
																			{	/* Llib/weakhash.scm 408 */
																				BgL_test2341z00_5388 = ((bool_t) 0);
																			}
																	}
																else
																	{	/* Llib/weakhash.scm 408 */
																		BgL_test2341z00_5388 = ((bool_t) 0);
																	}
															}
													}
											}
										}
										if (BgL_test2341z00_5388)
											{	/* Llib/weakhash.scm 409 */
												obj_t BgL_arg1469z00_1605;

												BgL_arg1469z00_1605 = CAR(((obj_t) BgL_bucketz00_1599));
												return bgl_weakptr_ref(((obj_t) BgL_arg1469z00_1605));
											}
										else
											{	/* Llib/weakhash.scm 411 */
												obj_t BgL_arg1470z00_1606;

												BgL_arg1470z00_1606 = CDR(((obj_t) BgL_bucketz00_1599));
												{
													obj_t BgL_bucketz00_5426;

													BgL_bucketz00_5426 = BgL_arg1470z00_1606;
													BgL_bucketz00_1599 = BgL_bucketz00_5426;
													goto BgL_zc3z04anonymousza31464ze3z87_1600;
												}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* 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_1611;

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

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

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

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

									BgL_arg1258z00_3045 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_3043, BgL_keyz00_80);
									{	/* Llib/weakhash.scm 419 */
										long BgL_nz00_3047;

										BgL_nz00_3047 = (long) CINT(BgL_arg1258z00_3045);
										if ((BgL_nz00_3047 < 0L))
											{	/* Llib/weakhash.scm 419 */
												BgL_arg1479z00_1622 = NEG(BgL_nz00_3047);
											}
										else
											{	/* Llib/weakhash.scm 419 */
												BgL_arg1479z00_1622 = BgL_nz00_3047;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 419 */
									if ((BgL_hashnz00_3043 == BGl_symbol2180z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 419 */
											BgL_arg1479z00_1622 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_80);
										}
									else
										{	/* Llib/weakhash.scm 419 */
											BgL_arg1479z00_1622 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_80);
										}
								}
						}
						{	/* Llib/weakhash.scm 419 */
							long BgL_n1z00_3051;
							long BgL_n2z00_3052;

							BgL_n1z00_3051 = BgL_arg1479z00_1622;
							BgL_n2z00_3052 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1611));
							{	/* Llib/weakhash.scm 419 */
								bool_t BgL_test2350z00_5447;

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

									BgL_arg1960z00_3054 =
										(((BgL_n1z00_3051) | (BgL_n2z00_3052)) & -2147483648);
									BgL_test2350z00_5447 = (BgL_arg1960z00_3054 == 0L);
								}
								if (BgL_test2350z00_5447)
									{	/* Llib/weakhash.scm 419 */
										int32_t BgL_arg1956z00_3055;

										{	/* Llib/weakhash.scm 419 */
											int32_t BgL_arg1957z00_3056;
											int32_t BgL_arg1959z00_3057;

											BgL_arg1957z00_3056 = (int32_t) (BgL_n1z00_3051);
											BgL_arg1959z00_3057 = (int32_t) (BgL_n2z00_3052);
											BgL_arg1956z00_3055 =
												(BgL_arg1957z00_3056 % BgL_arg1959z00_3057);
										}
										{	/* Llib/weakhash.scm 419 */
											long BgL_arg2069z00_3062;

											BgL_arg2069z00_3062 = (long) (BgL_arg1956z00_3055);
											BgL_bucketzd2numzd2_1613 = (long) (BgL_arg2069z00_3062);
									}}
								else
									{	/* Llib/weakhash.scm 419 */
										BgL_bucketzd2numzd2_1613 =
											(BgL_n1z00_3051 % BgL_n2z00_3052);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 419 */
						obj_t BgL_retz00_1614;

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

							{
								int BgL_tmpz00_5456;

								BgL_tmpz00_5456 = (int) (2L);
								BgL_zc3z04anonymousza31475ze3z87_4196 =
									MAKE_L_PROCEDURE
									(BGl_z62zc3z04anonymousza31475ze3ze5zz__weakhashz00,
									BgL_tmpz00_5456);
							}
							PROCEDURE_L_SET(BgL_zc3z04anonymousza31475ze3z87_4196,
								(int) (0L), BgL_tablez00_79);
							PROCEDURE_L_SET(BgL_zc3z04anonymousza31475ze3z87_4196,
								(int) (1L), BgL_keyz00_80);
							BgL_retz00_1614 =
								BGl_traversezd2bucketszd2zz__weakhashz00(BgL_tablez00_79,
								BgL_bucketsz00_1611, BgL_bucketzd2numzd2_1613,
								BgL_zc3z04anonymousza31475ze3z87_4196);
						}
						{	/* Llib/weakhash.scm 420 */

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

	}



/* &<@anonymous:1475> */
	obj_t BGl_z62zc3z04anonymousza31475ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4197, obj_t BgL_bkeyz00_4200, obj_t BgL_valz00_4201,
		obj_t BgL_bucketz00_4202)
	{
		{	/* Llib/weakhash.scm 421 */
			{	/* Llib/weakhash.scm 422 */
				obj_t BgL_tablez00_4198;
				obj_t BgL_keyz00_4199;

				BgL_tablez00_4198 =
					((obj_t) PROCEDURE_L_REF(BgL_envz00_4197, (int) (0L)));
				BgL_keyz00_4199 = PROCEDURE_L_REF(BgL_envz00_4197, (int) (1L));
				{	/* Llib/weakhash.scm 422 */
					bool_t BgL_test2352z00_5471;

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

						BgL_eqtz00_4328 = STRUCT_REF(BgL_tablez00_4198, (int) (3L));
						if (PROCEDUREP(BgL_eqtz00_4328))
							{	/* Llib/weakhash.scm 422 */
								BgL_test2352z00_5471 =
									CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_4328, BgL_keyz00_4199,
										BgL_bkeyz00_4200));
							}
						else
							{	/* Llib/weakhash.scm 422 */
								if ((BgL_keyz00_4199 == BgL_bkeyz00_4200))
									{	/* Llib/weakhash.scm 422 */
										BgL_test2352z00_5471 = ((bool_t) 1);
									}
								else
									{	/* Llib/weakhash.scm 422 */
										if (STRINGP(BgL_keyz00_4199))
											{	/* Llib/weakhash.scm 422 */
												if (STRINGP(BgL_bkeyz00_4200))
													{	/* Llib/weakhash.scm 422 */
														long BgL_l1z00_4329;

														BgL_l1z00_4329 = STRING_LENGTH(BgL_keyz00_4199);
														if (
															(BgL_l1z00_4329 ==
																STRING_LENGTH(BgL_bkeyz00_4200)))
															{	/* Llib/weakhash.scm 422 */
																int BgL_arg1839z00_4330;

																{	/* Llib/weakhash.scm 422 */
																	char *BgL_auxz00_5494;
																	char *BgL_tmpz00_5492;

																	BgL_auxz00_5494 =
																		BSTRING_TO_STRING(BgL_bkeyz00_4200);
																	BgL_tmpz00_5492 =
																		BSTRING_TO_STRING(BgL_keyz00_4199);
																	BgL_arg1839z00_4330 =
																		memcmp(BgL_tmpz00_5492, BgL_auxz00_5494,
																		BgL_l1z00_4329);
																}
																BgL_test2352z00_5471 =
																	((long) (BgL_arg1839z00_4330) == 0L);
															}
														else
															{	/* Llib/weakhash.scm 422 */
																BgL_test2352z00_5471 = ((bool_t) 0);
															}
													}
												else
													{	/* Llib/weakhash.scm 422 */
														BgL_test2352z00_5471 = ((bool_t) 0);
													}
											}
										else
											{	/* Llib/weakhash.scm 422 */
												BgL_test2352z00_5471 = ((bool_t) 0);
											}
									}
							}
					}
					if (BgL_test2352z00_5471)
						{	/* Llib/weakhash.scm 422 */
							return BgL_valz00_4201;
						}
					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_4203,
		obj_t BgL_tablez00_4204, obj_t BgL_keyz00_4205)
	{
		{	/* Llib/weakhash.scm 432 */
			{	/* Llib/weakhash.scm 433 */
				obj_t BgL_auxz00_5503;

				if (STRUCTP(BgL_tablez00_4204))
					{	/* Llib/weakhash.scm 433 */
						BgL_auxz00_5503 = BgL_tablez00_4204;
					}
				else
					{
						obj_t BgL_auxz00_5506;

						BgL_auxz00_5506 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(17200L), BGl_string2183z00zz__weakhashz00,
							BGl_string2170z00zz__weakhashz00, BgL_tablez00_4204);
						FAILURE(BgL_auxz00_5506, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2getz00zz__weakhashz00(BgL_auxz00_5503,
					BgL_keyz00_4205);
			}
		}

	}



/* 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_1624;

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

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

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

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

									BgL_arg1258z00_3086 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_3084, BgL_keyz00_84);
									{	/* Llib/weakhash.scm 443 */
										long BgL_nz00_3088;

										BgL_nz00_3088 = (long) CINT(BgL_arg1258z00_3086);
										if ((BgL_nz00_3088 < 0L))
											{	/* Llib/weakhash.scm 443 */
												BgL_arg1508z00_1656 = NEG(BgL_nz00_3088);
											}
										else
											{	/* Llib/weakhash.scm 443 */
												BgL_arg1508z00_1656 = BgL_nz00_3088;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 443 */
									if ((BgL_hashnz00_3084 == BGl_symbol2180z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 443 */
											BgL_arg1508z00_1656 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_84);
										}
									else
										{	/* Llib/weakhash.scm 443 */
											BgL_arg1508z00_1656 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_84);
										}
								}
						}
						{	/* Llib/weakhash.scm 443 */
							long BgL_n1z00_3092;
							long BgL_n2z00_3093;

							BgL_n1z00_3092 = BgL_arg1508z00_1656;
							BgL_n2z00_3093 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1624));
							{	/* Llib/weakhash.scm 443 */
								bool_t BgL_test2363z00_5531;

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

									BgL_arg1960z00_3095 =
										(((BgL_n1z00_3092) | (BgL_n2z00_3093)) & -2147483648);
									BgL_test2363z00_5531 = (BgL_arg1960z00_3095 == 0L);
								}
								if (BgL_test2363z00_5531)
									{	/* Llib/weakhash.scm 443 */
										int32_t BgL_arg1956z00_3096;

										{	/* Llib/weakhash.scm 443 */
											int32_t BgL_arg1957z00_3097;
											int32_t BgL_arg1959z00_3098;

											BgL_arg1957z00_3097 = (int32_t) (BgL_n1z00_3092);
											BgL_arg1959z00_3098 = (int32_t) (BgL_n2z00_3093);
											BgL_arg1956z00_3096 =
												(BgL_arg1957z00_3097 % BgL_arg1959z00_3098);
										}
										{	/* Llib/weakhash.scm 443 */
											long BgL_arg2069z00_3103;

											BgL_arg2069z00_3103 = (long) (BgL_arg1956z00_3096);
											BgL_bucketzd2numzd2_1626 = (long) (BgL_arg2069z00_3103);
									}}
								else
									{	/* Llib/weakhash.scm 443 */
										BgL_bucketzd2numzd2_1626 =
											(BgL_n1z00_3092 % BgL_n2z00_3093);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 443 */
						obj_t BgL_bucketz00_1627;

						BgL_bucketz00_1627 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1624), BgL_bucketzd2numzd2_1626);
						{	/* Llib/weakhash.scm 444 */
							obj_t BgL_maxzd2bucketzd2lenz00_1628;

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

								if (NULLP(BgL_bucketz00_1627))
									{	/* Llib/weakhash.scm 446 */
										{	/* Llib/weakhash.scm 448 */
											long BgL_arg1482z00_1630;

											BgL_arg1482z00_1630 =
												(
												(long) CINT(STRUCT_REF(BgL_tablez00_83,
														(int) (0L))) + 1L);
											{	/* Llib/weakhash.scm 448 */
												obj_t BgL_auxz00_5552;
												int BgL_tmpz00_5550;

												BgL_auxz00_5552 = BINT(BgL_arg1482z00_1630);
												BgL_tmpz00_5550 = (int) (0L);
												STRUCT_SET(BgL_tablez00_83, BgL_tmpz00_5550,
													BgL_auxz00_5552);
										}}
										{	/* Llib/weakhash.scm 449 */
											obj_t BgL_arg1484z00_1632;

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

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

													BgL_list1487z00_1634 =
														MAKE_YOUNG_PAIR(BgL_arg1486z00_1633, BNIL);
													BgL_arg1484z00_1632 = BgL_list1487z00_1634;
											}}
											VECTOR_SET(
												((obj_t) BgL_bucketsz00_1624), BgL_bucketzd2numzd2_1626,
												BgL_arg1484z00_1632);
										}
										return BgL_objz00_85;
									}
								else
									{
										obj_t BgL_buckz00_1636;
										long BgL_countz00_1637;

										BgL_buckz00_1636 = BgL_bucketz00_1627;
										BgL_countz00_1637 = 0L;
									BgL_zc3z04anonymousza31488ze3z87_1638:
										if (NULLP(BgL_buckz00_1636))
											{	/* Llib/weakhash.scm 454 */
												{	/* Llib/weakhash.scm 455 */
													long BgL_arg1490z00_1640;

													BgL_arg1490z00_1640 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_83,
																(int) (0L))) + 1L);
													{	/* Llib/weakhash.scm 455 */
														obj_t BgL_auxz00_5567;
														int BgL_tmpz00_5565;

														BgL_auxz00_5567 = BINT(BgL_arg1490z00_1640);
														BgL_tmpz00_5565 = (int) (0L);
														STRUCT_SET(BgL_tablez00_83, BgL_tmpz00_5565,
															BgL_auxz00_5567);
												}}
												{	/* Llib/weakhash.scm 457 */
													obj_t BgL_arg1492z00_1642;

													BgL_arg1492z00_1642 =
														MAKE_YOUNG_PAIR(bgl_make_weakptr(BgL_keyz00_84,
															BgL_objz00_85), BgL_bucketz00_1627);
													VECTOR_SET(((obj_t) BgL_bucketsz00_1624),
														BgL_bucketzd2numzd2_1626, BgL_arg1492z00_1642);
												}
												if (
													(BgL_countz00_1637 >
														(long) CINT(BgL_maxzd2bucketzd2lenz00_1628)))
													{	/* 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_test2367z00_5578;

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

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

														BgL_arg1507z00_1654 =
															CAR(((obj_t) BgL_buckz00_1636));
														BgL_arg1506z00_1653 =
															bgl_weakptr_data(((obj_t) BgL_arg1507z00_1654));
													}
													{	/* Llib/weakhash.scm 461 */
														obj_t BgL_eqtz00_3123;

														BgL_eqtz00_3123 =
															STRUCT_REF(BgL_tablez00_83, (int) (3L));
														if (PROCEDUREP(BgL_eqtz00_3123))
															{	/* Llib/weakhash.scm 461 */
																BgL_test2367z00_5578 =
																	CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_3123,
																		BgL_arg1506z00_1653, BgL_keyz00_84));
															}
														else
															{	/* Llib/weakhash.scm 461 */
																if ((BgL_arg1506z00_1653 == BgL_keyz00_84))
																	{	/* Llib/weakhash.scm 461 */
																		BgL_test2367z00_5578 = ((bool_t) 1);
																	}
																else
																	{	/* Llib/weakhash.scm 461 */
																		if (STRINGP(BgL_arg1506z00_1653))
																			{	/* Llib/weakhash.scm 461 */
																				if (STRINGP(BgL_keyz00_84))
																					{	/* Llib/weakhash.scm 461 */
																						long BgL_l1z00_3130;

																						BgL_l1z00_3130 =
																							STRING_LENGTH
																							(BgL_arg1506z00_1653);
																						if ((BgL_l1z00_3130 ==
																								STRING_LENGTH(BgL_keyz00_84)))
																							{	/* Llib/weakhash.scm 461 */
																								int BgL_arg1839z00_3133;

																								{	/* Llib/weakhash.scm 461 */
																									char *BgL_auxz00_5605;
																									char *BgL_tmpz00_5603;

																									BgL_auxz00_5605 =
																										BSTRING_TO_STRING
																										(BgL_keyz00_84);
																									BgL_tmpz00_5603 =
																										BSTRING_TO_STRING
																										(BgL_arg1506z00_1653);
																									BgL_arg1839z00_3133 =
																										memcmp(BgL_tmpz00_5603,
																										BgL_auxz00_5605,
																										BgL_l1z00_3130);
																								}
																								BgL_test2367z00_5578 =
																									(
																									(long) (BgL_arg1839z00_3133)
																									== 0L);
																							}
																						else
																							{	/* Llib/weakhash.scm 461 */
																								BgL_test2367z00_5578 =
																									((bool_t) 0);
																							}
																					}
																				else
																					{	/* Llib/weakhash.scm 461 */
																						BgL_test2367z00_5578 = ((bool_t) 0);
																					}
																			}
																		else
																			{	/* Llib/weakhash.scm 461 */
																				BgL_test2367z00_5578 = ((bool_t) 0);
																			}
																	}
															}
													}
												}
												if (BgL_test2367z00_5578)
													{	/* Llib/weakhash.scm 462 */
														obj_t BgL_oldzd2objzd2_1648;

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

															BgL_arg1501z00_1650 =
																CAR(((obj_t) BgL_buckz00_1636));
															BgL_oldzd2objzd2_1648 =
																bgl_weakptr_ref(((obj_t) BgL_arg1501z00_1650));
														}
														{	/* Llib/weakhash.scm 463 */
															obj_t BgL_arg1500z00_1649;

															BgL_arg1500z00_1649 =
																CAR(((obj_t) BgL_buckz00_1636));
															bgl_weakptr_ref_set(
																((obj_t) BgL_arg1500z00_1649), BgL_objz00_85);
															BUNSPEC;
															BUNSPEC;
														}
														return BgL_oldzd2objzd2_1648;
													}
												else
													{	/* Llib/weakhash.scm 466 */
														obj_t BgL_arg1502z00_1651;
														long BgL_arg1505z00_1652;

														BgL_arg1502z00_1651 =
															CDR(((obj_t) BgL_buckz00_1636));
														BgL_arg1505z00_1652 = (BgL_countz00_1637 + 1L);
														{
															long BgL_countz00_5622;
															obj_t BgL_buckz00_5621;

															BgL_buckz00_5621 = BgL_arg1502z00_1651;
															BgL_countz00_5622 = BgL_arg1505z00_1652;
															BgL_countz00_1637 = BgL_countz00_5622;
															BgL_buckz00_1636 = BgL_buckz00_5621;
															goto BgL_zc3z04anonymousza31488ze3z87_1638;
														}
													}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* 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_1657;

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

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

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

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

									BgL_arg1258z00_3149 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_3147, BgL_keyz00_87);
									{	/* Llib/weakhash.scm 474 */
										long BgL_nz00_3151;

										BgL_nz00_3151 = (long) CINT(BgL_arg1258z00_3149);
										if ((BgL_nz00_3151 < 0L))
											{	/* Llib/weakhash.scm 474 */
												BgL_arg1528z00_1691 = NEG(BgL_nz00_3151);
											}
										else
											{	/* Llib/weakhash.scm 474 */
												BgL_arg1528z00_1691 = BgL_nz00_3151;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 474 */
									if ((BgL_hashnz00_3147 == BGl_symbol2180z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 474 */
											BgL_arg1528z00_1691 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_87);
										}
									else
										{	/* Llib/weakhash.scm 474 */
											BgL_arg1528z00_1691 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_87);
										}
								}
						}
						{	/* Llib/weakhash.scm 474 */
							long BgL_n1z00_3155;
							long BgL_n2z00_3156;

							BgL_n1z00_3155 = BgL_arg1528z00_1691;
							BgL_n2z00_3156 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1657));
							{	/* Llib/weakhash.scm 474 */
								bool_t BgL_test2376z00_5643;

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

									BgL_arg1960z00_3158 =
										(((BgL_n1z00_3155) | (BgL_n2z00_3156)) & -2147483648);
									BgL_test2376z00_5643 = (BgL_arg1960z00_3158 == 0L);
								}
								if (BgL_test2376z00_5643)
									{	/* Llib/weakhash.scm 474 */
										int32_t BgL_arg1956z00_3159;

										{	/* Llib/weakhash.scm 474 */
											int32_t BgL_arg1957z00_3160;
											int32_t BgL_arg1959z00_3161;

											BgL_arg1957z00_3160 = (int32_t) (BgL_n1z00_3155);
											BgL_arg1959z00_3161 = (int32_t) (BgL_n2z00_3156);
											BgL_arg1956z00_3159 =
												(BgL_arg1957z00_3160 % BgL_arg1959z00_3161);
										}
										{	/* Llib/weakhash.scm 474 */
											long BgL_arg2069z00_3166;

											BgL_arg2069z00_3166 = (long) (BgL_arg1956z00_3159);
											BgL_bucketzd2numzd2_1659 = (long) (BgL_arg2069z00_3166);
									}}
								else
									{	/* Llib/weakhash.scm 474 */
										BgL_bucketzd2numzd2_1659 =
											(BgL_n1z00_3155 % BgL_n2z00_3156);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 474 */
						obj_t BgL_bucketz00_1660;

						BgL_bucketz00_1660 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1657), BgL_bucketzd2numzd2_1659);
						{	/* Llib/weakhash.scm 475 */
							obj_t BgL_maxzd2bucketzd2lenz00_1661;

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

								BgL_countz00_4216 = BGL_MAKE_UNSAFE_CELL(BINT(0L));
								{	/* Llib/weakhash.scm 477 */
									obj_t BgL_foundz00_1663;

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

										{
											int BgL_tmpz00_5657;

											BgL_tmpz00_5657 = (int) (4L);
											BgL_zc3z04anonymousza31523ze3z87_4206 =
												MAKE_L_PROCEDURE
												(BGl_z62zc3z04anonymousza31523ze3ze5zz__weakhashz00,
												BgL_tmpz00_5657);
										}
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31523ze3z87_4206,
											(int) (0L), ((obj_t) BgL_countz00_4216));
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31523ze3z87_4206,
											(int) (1L), BgL_objz00_88);
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31523ze3z87_4206,
											(int) (2L), BgL_tablez00_86);
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31523ze3z87_4206,
											(int) (3L), BgL_keyz00_87);
										BgL_foundz00_1663 =
											BGl_traversezd2bucketszd2zz__weakhashz00(BgL_tablez00_86,
											BgL_bucketsz00_1657, BgL_bucketzd2numzd2_1659,
											BgL_zc3z04anonymousza31523ze3z87_4206);
									}
									{	/* Llib/weakhash.scm 479 */

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

													BgL_arg1509z00_1664 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_86,
																(int) (0L))) + 1L);
													{	/* Llib/weakhash.scm 496 */
														obj_t BgL_auxz00_5678;
														int BgL_tmpz00_5676;

														BgL_auxz00_5678 = BINT(BgL_arg1509z00_1664);
														BgL_tmpz00_5676 = (int) (0L);
														STRUCT_SET(BgL_tablez00_86, BgL_tmpz00_5676,
															BgL_auxz00_5678);
												}}
												{	/* Llib/weakhash.scm 498 */
													obj_t BgL_arg1511z00_1666;

													{	/* Llib/weakhash.scm 498 */
														obj_t BgL_arg1512z00_1667;
														obj_t BgL_arg1513z00_1668;

														{	/* Llib/weakhash.scm 498 */
															obj_t BgL_arg1514z00_1669;
															obj_t BgL_arg1515z00_1670;

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

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

																	BgL_arg1515z00_1670 =
																		bgl_make_weakptr(BgL_objz00_88, BFALSE);
																}
															else
																{	/* Llib/weakhash.scm 501 */
																	BgL_arg1515z00_1670 = BgL_objz00_88;
																}
															BgL_arg1512z00_1667 =
																MAKE_YOUNG_PAIR(BgL_arg1514z00_1669,
																BgL_arg1515z00_1670);
														}
														{	/* Llib/weakhash.scm 506 */
															obj_t BgL_arg1520z00_1677;

															BgL_arg1520z00_1677 =
																STRUCT_REF(BgL_tablez00_86, (int) (2L));
															BgL_arg1513z00_1668 =
																VECTOR_REF(
																((obj_t) BgL_arg1520z00_1677),
																BgL_bucketzd2numzd2_1659);
														}
														BgL_arg1511z00_1666 =
															MAKE_YOUNG_PAIR(BgL_arg1512z00_1667,
															BgL_arg1513z00_1668);
													}
													VECTOR_SET(
														((obj_t) BgL_bucketsz00_1657),
														BgL_bucketzd2numzd2_1659, BgL_arg1511z00_1666);
												}
												if (
													((long) CINT(BGL_UNSAFE_CELL_REF(BgL_countz00_4216)) >
														(long) CINT(BgL_maxzd2bucketzd2lenz00_1661)))
													{	/* 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_1663;
											}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* &<@anonymous:1523> */
	obj_t BGl_z62zc3z04anonymousza31523ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4207, obj_t BgL_bkeyz00_4212, obj_t BgL_valz00_4213,
		obj_t BgL_bucketz00_4214)
	{
		{	/* Llib/weakhash.scm 481 */
			{	/* Llib/weakhash.scm 482 */
				obj_t BgL_countz00_4208;
				obj_t BgL_objz00_4209;
				obj_t BgL_tablez00_4210;
				obj_t BgL_keyz00_4211;

				BgL_countz00_4208 = PROCEDURE_L_REF(BgL_envz00_4207, (int) (0L));
				BgL_objz00_4209 = PROCEDURE_L_REF(BgL_envz00_4207, (int) (1L));
				BgL_tablez00_4210 =
					((obj_t) PROCEDURE_L_REF(BgL_envz00_4207, (int) (2L)));
				BgL_keyz00_4211 = PROCEDURE_L_REF(BgL_envz00_4207, (int) (3L));
				{	/* Llib/weakhash.scm 482 */
					obj_t BgL_auxz00_4331;

					BgL_auxz00_4331 =
						ADDFX(BGL_UNSAFE_CELL_REF(BgL_countz00_4208), BINT(1L));
					BGL_UNSAFE_CELL_SET(BgL_countz00_4208, BgL_auxz00_4331);
				}
				{	/* Llib/weakhash.scm 483 */
					bool_t BgL_test2382z00_5714;

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

						BgL_eqtz00_4332 = STRUCT_REF(BgL_tablez00_4210, (int) (3L));
						if (PROCEDUREP(BgL_eqtz00_4332))
							{	/* Llib/weakhash.scm 483 */
								BgL_test2382z00_5714 =
									CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_4332, BgL_bkeyz00_4212,
										BgL_keyz00_4211));
							}
						else
							{	/* Llib/weakhash.scm 483 */
								if ((BgL_bkeyz00_4212 == BgL_keyz00_4211))
									{	/* Llib/weakhash.scm 483 */
										BgL_test2382z00_5714 = ((bool_t) 1);
									}
								else
									{	/* Llib/weakhash.scm 483 */
										if (STRINGP(BgL_bkeyz00_4212))
											{	/* Llib/weakhash.scm 483 */
												if (STRINGP(BgL_keyz00_4211))
													{	/* Llib/weakhash.scm 483 */
														long BgL_l1z00_4333;

														BgL_l1z00_4333 = STRING_LENGTH(BgL_bkeyz00_4212);
														if (
															(BgL_l1z00_4333 ==
																STRING_LENGTH(BgL_keyz00_4211)))
															{	/* Llib/weakhash.scm 483 */
																int BgL_arg1839z00_4334;

																{	/* Llib/weakhash.scm 483 */
																	char *BgL_auxz00_5737;
																	char *BgL_tmpz00_5735;

																	BgL_auxz00_5737 =
																		BSTRING_TO_STRING(BgL_keyz00_4211);
																	BgL_tmpz00_5735 =
																		BSTRING_TO_STRING(BgL_bkeyz00_4212);
																	BgL_arg1839z00_4334 =
																		memcmp(BgL_tmpz00_5735, BgL_auxz00_5737,
																		BgL_l1z00_4333);
																}
																BgL_test2382z00_5714 =
																	((long) (BgL_arg1839z00_4334) == 0L);
															}
														else
															{	/* Llib/weakhash.scm 483 */
																BgL_test2382z00_5714 = ((bool_t) 0);
															}
													}
												else
													{	/* Llib/weakhash.scm 483 */
														BgL_test2382z00_5714 = ((bool_t) 0);
													}
											}
										else
											{	/* Llib/weakhash.scm 483 */
												BgL_test2382z00_5714 = ((bool_t) 0);
											}
									}
							}
					}
					if (BgL_test2382z00_5714)
						{	/* Llib/weakhash.scm 483 */
							{	/* Llib/weakhash.scm 485 */
								obj_t BgL_arg1525z00_4335;
								obj_t BgL_arg1526z00_4336;

								BgL_arg1525z00_4335 = CAR(((obj_t) BgL_bucketz00_4214));
								if (BGl_hashtablezd2weakzd2datazf3zf3zz__hashz00
									(BgL_tablez00_4210))
									{	/* Llib/weakhash.scm 487 */

										BgL_arg1526z00_4336 =
											bgl_make_weakptr(BgL_objz00_4209, BFALSE);
									}
								else
									{	/* Llib/weakhash.scm 486 */
										BgL_arg1526z00_4336 = BgL_objz00_4209;
									}
								{	/* Llib/weakhash.scm 485 */
									obj_t BgL_tmpz00_5747;

									BgL_tmpz00_5747 = ((obj_t) BgL_arg1525z00_4335);
									SET_CDR(BgL_tmpz00_5747, BgL_arg1526z00_4336);
								}
							}
							return BgL_valz00_4213;
						}
					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_4218, obj_t BgL_tablez00_4219, obj_t BgL_keyz00_4220,
		obj_t BgL_objz00_4221)
	{
		{	/* Llib/weakhash.scm 515 */
			{	/* Llib/weakhash.scm 516 */
				obj_t BgL_auxz00_5754;

				if (STRUCTP(BgL_tablez00_4219))
					{	/* Llib/weakhash.scm 516 */
						BgL_auxz00_5754 = BgL_tablez00_4219;
					}
				else
					{
						obj_t BgL_auxz00_5757;

						BgL_auxz00_5757 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(20423L), BGl_string2184z00zz__weakhashz00,
							BGl_string2170z00zz__weakhashz00, BgL_tablez00_4219);
						FAILURE(BgL_auxz00_5757, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2putz12z12zz__weakhashz00(BgL_auxz00_5754,
					BgL_keyz00_4220, BgL_objz00_4221);
			}
		}

	}



/* 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_1693;

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

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

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

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

									BgL_arg1258z00_3213 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_3211, BgL_keyz00_93);
									{	/* Llib/weakhash.scm 526 */
										long BgL_nz00_3215;

										BgL_nz00_3215 = (long) CINT(BgL_arg1258z00_3213);
										if ((BgL_nz00_3215 < 0L))
											{	/* Llib/weakhash.scm 526 */
												BgL_arg1562z00_1726 = NEG(BgL_nz00_3215);
											}
										else
											{	/* Llib/weakhash.scm 526 */
												BgL_arg1562z00_1726 = BgL_nz00_3215;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 526 */
									if ((BgL_hashnz00_3211 == BGl_symbol2180z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 526 */
											BgL_arg1562z00_1726 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_93);
										}
									else
										{	/* Llib/weakhash.scm 526 */
											BgL_arg1562z00_1726 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_93);
										}
								}
						}
						{	/* Llib/weakhash.scm 526 */
							long BgL_n1z00_3219;
							long BgL_n2z00_3220;

							BgL_n1z00_3219 = BgL_arg1562z00_1726;
							BgL_n2z00_3220 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1693));
							{	/* Llib/weakhash.scm 526 */
								bool_t BgL_test2394z00_5782;

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

									BgL_arg1960z00_3222 =
										(((BgL_n1z00_3219) | (BgL_n2z00_3220)) & -2147483648);
									BgL_test2394z00_5782 = (BgL_arg1960z00_3222 == 0L);
								}
								if (BgL_test2394z00_5782)
									{	/* Llib/weakhash.scm 526 */
										int32_t BgL_arg1956z00_3223;

										{	/* Llib/weakhash.scm 526 */
											int32_t BgL_arg1957z00_3224;
											int32_t BgL_arg1959z00_3225;

											BgL_arg1957z00_3224 = (int32_t) (BgL_n1z00_3219);
											BgL_arg1959z00_3225 = (int32_t) (BgL_n2z00_3220);
											BgL_arg1956z00_3223 =
												(BgL_arg1957z00_3224 % BgL_arg1959z00_3225);
										}
										{	/* Llib/weakhash.scm 526 */
											long BgL_arg2069z00_3230;

											BgL_arg2069z00_3230 = (long) (BgL_arg1956z00_3223);
											BgL_bucketzd2numzd2_1695 = (long) (BgL_arg2069z00_3230);
									}}
								else
									{	/* Llib/weakhash.scm 526 */
										BgL_bucketzd2numzd2_1695 =
											(BgL_n1z00_3219 % BgL_n2z00_3220);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 526 */
						obj_t BgL_bucketz00_1696;

						BgL_bucketz00_1696 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1693), BgL_bucketzd2numzd2_1695);
						{	/* Llib/weakhash.scm 527 */
							obj_t BgL_maxzd2bucketzd2lenz00_1697;

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

								if (NULLP(BgL_bucketz00_1696))
									{	/* Llib/weakhash.scm 529 */
										{	/* Llib/weakhash.scm 531 */
											long BgL_arg1532z00_1699;

											BgL_arg1532z00_1699 =
												(
												(long) CINT(STRUCT_REF(BgL_tablez00_92,
														(int) (0L))) + 1L);
											{	/* Llib/weakhash.scm 531 */
												obj_t BgL_auxz00_5803;
												int BgL_tmpz00_5801;

												BgL_auxz00_5803 = BINT(BgL_arg1532z00_1699);
												BgL_tmpz00_5801 = (int) (0L);
												STRUCT_SET(BgL_tablez00_92, BgL_tmpz00_5801,
													BgL_auxz00_5803);
										}}
										{	/* Llib/weakhash.scm 532 */
											obj_t BgL_arg1534z00_1701;

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

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

													BgL_list1538z00_1703 =
														MAKE_YOUNG_PAIR(BgL_arg1537z00_1702, BNIL);
													BgL_arg1534z00_1701 = BgL_list1538z00_1703;
											}}
											VECTOR_SET(
												((obj_t) BgL_bucketsz00_1693), BgL_bucketzd2numzd2_1695,
												BgL_arg1534z00_1701);
										}
										return BgL_objz00_95;
									}
								else
									{
										obj_t BgL_buckz00_1705;
										long BgL_countz00_1706;

										BgL_buckz00_1705 = BgL_bucketz00_1696;
										BgL_countz00_1706 = 0L;
									BgL_zc3z04anonymousza31539ze3z87_1707:
										if (NULLP(BgL_buckz00_1705))
											{	/* Llib/weakhash.scm 537 */
												{	/* Llib/weakhash.scm 538 */
													long BgL_arg1541z00_1709;

													BgL_arg1541z00_1709 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_92,
																(int) (0L))) + 1L);
													{	/* Llib/weakhash.scm 538 */
														obj_t BgL_auxz00_5818;
														int BgL_tmpz00_5816;

														BgL_auxz00_5818 = BINT(BgL_arg1541z00_1709);
														BgL_tmpz00_5816 = (int) (0L);
														STRUCT_SET(BgL_tablez00_92, BgL_tmpz00_5816,
															BgL_auxz00_5818);
												}}
												{	/* Llib/weakhash.scm 540 */
													obj_t BgL_arg1543z00_1711;

													BgL_arg1543z00_1711 =
														MAKE_YOUNG_PAIR(bgl_make_weakptr(BgL_keyz00_93,
															BgL_objz00_95), BgL_bucketz00_1696);
													VECTOR_SET(((obj_t) BgL_bucketsz00_1693),
														BgL_bucketzd2numzd2_1695, BgL_arg1543z00_1711);
												}
												if (
													(BgL_countz00_1706 >
														(long) CINT(BgL_maxzd2bucketzd2lenz00_1697)))
													{	/* 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_test2398z00_5829;

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

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

														BgL_arg1561z00_1724 =
															CAR(((obj_t) BgL_buckz00_1705));
														BgL_arg1559z00_1723 =
															bgl_weakptr_data(((obj_t) BgL_arg1561z00_1724));
													}
													{	/* Llib/weakhash.scm 544 */
														obj_t BgL_eqtz00_3250;

														BgL_eqtz00_3250 =
															STRUCT_REF(BgL_tablez00_92, (int) (3L));
														if (PROCEDUREP(BgL_eqtz00_3250))
															{	/* Llib/weakhash.scm 544 */
																BgL_test2398z00_5829 =
																	CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_3250,
																		BgL_arg1559z00_1723, BgL_keyz00_93));
															}
														else
															{	/* Llib/weakhash.scm 544 */
																if ((BgL_arg1559z00_1723 == BgL_keyz00_93))
																	{	/* Llib/weakhash.scm 544 */
																		BgL_test2398z00_5829 = ((bool_t) 1);
																	}
																else
																	{	/* Llib/weakhash.scm 544 */
																		if (STRINGP(BgL_arg1559z00_1723))
																			{	/* Llib/weakhash.scm 544 */
																				if (STRINGP(BgL_keyz00_93))
																					{	/* Llib/weakhash.scm 544 */
																						long BgL_l1z00_3257;

																						BgL_l1z00_3257 =
																							STRING_LENGTH
																							(BgL_arg1559z00_1723);
																						if ((BgL_l1z00_3257 ==
																								STRING_LENGTH(BgL_keyz00_93)))
																							{	/* Llib/weakhash.scm 544 */
																								int BgL_arg1839z00_3260;

																								{	/* Llib/weakhash.scm 544 */
																									char *BgL_auxz00_5856;
																									char *BgL_tmpz00_5854;

																									BgL_auxz00_5856 =
																										BSTRING_TO_STRING
																										(BgL_keyz00_93);
																									BgL_tmpz00_5854 =
																										BSTRING_TO_STRING
																										(BgL_arg1559z00_1723);
																									BgL_arg1839z00_3260 =
																										memcmp(BgL_tmpz00_5854,
																										BgL_auxz00_5856,
																										BgL_l1z00_3257);
																								}
																								BgL_test2398z00_5829 =
																									(
																									(long) (BgL_arg1839z00_3260)
																									== 0L);
																							}
																						else
																							{	/* Llib/weakhash.scm 544 */
																								BgL_test2398z00_5829 =
																									((bool_t) 0);
																							}
																					}
																				else
																					{	/* Llib/weakhash.scm 544 */
																						BgL_test2398z00_5829 = ((bool_t) 0);
																					}
																			}
																		else
																			{	/* Llib/weakhash.scm 544 */
																				BgL_test2398z00_5829 = ((bool_t) 0);
																			}
																	}
															}
													}
												}
												if (BgL_test2398z00_5829)
													{	/* Llib/weakhash.scm 545 */
														obj_t BgL_resz00_1717;

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

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

																BgL_arg1554z00_1720 =
																	CAR(((obj_t) BgL_buckz00_1705));
																BgL_arg1552z00_1719 =
																	bgl_weakptr_ref(
																	((obj_t) BgL_arg1554z00_1720));
															}
															BgL_resz00_1717 =
																BGL_PROCEDURE_CALL1(BgL_procz00_94,
																BgL_arg1552z00_1719);
														}
														{	/* Llib/weakhash.scm 546 */
															obj_t BgL_arg1551z00_1718;

															BgL_arg1551z00_1718 =
																CAR(((obj_t) BgL_buckz00_1705));
															bgl_weakptr_ref_set(
																((obj_t) BgL_arg1551z00_1718), BgL_resz00_1717);
															BUNSPEC;
															BUNSPEC;
														}
														return BgL_resz00_1717;
													}
												else
													{	/* Llib/weakhash.scm 549 */
														obj_t BgL_arg1555z00_1721;
														long BgL_arg1558z00_1722;

														BgL_arg1555z00_1721 =
															CDR(((obj_t) BgL_buckz00_1705));
														BgL_arg1558z00_1722 = (BgL_countz00_1706 + 1L);
														{
															long BgL_countz00_5877;
															obj_t BgL_buckz00_5876;

															BgL_buckz00_5876 = BgL_arg1555z00_1721;
															BgL_countz00_5877 = BgL_arg1558z00_1722;
															BgL_countz00_1706 = BgL_countz00_5877;
															BgL_buckz00_1705 = BgL_buckz00_5876;
															goto BgL_zc3z04anonymousza31539ze3z87_1707;
														}
													}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* 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_1727;

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

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

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

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

									BgL_arg1258z00_3276 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_3274, BgL_keyz00_97);
									{	/* Llib/weakhash.scm 557 */
										long BgL_nz00_3278;

										BgL_nz00_3278 = (long) CINT(BgL_arg1258z00_3276);
										if ((BgL_nz00_3278 < 0L))
											{	/* Llib/weakhash.scm 557 */
												BgL_arg1588z00_1762 = NEG(BgL_nz00_3278);
											}
										else
											{	/* Llib/weakhash.scm 557 */
												BgL_arg1588z00_1762 = BgL_nz00_3278;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 557 */
									if ((BgL_hashnz00_3274 == BGl_symbol2180z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 557 */
											BgL_arg1588z00_1762 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_97);
										}
									else
										{	/* Llib/weakhash.scm 557 */
											BgL_arg1588z00_1762 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_97);
										}
								}
						}
						{	/* Llib/weakhash.scm 557 */
							long BgL_n1z00_3282;
							long BgL_n2z00_3283;

							BgL_n1z00_3282 = BgL_arg1588z00_1762;
							BgL_n2z00_3283 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1727));
							{	/* Llib/weakhash.scm 557 */
								bool_t BgL_test2407z00_5898;

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

									BgL_arg1960z00_3285 =
										(((BgL_n1z00_3282) | (BgL_n2z00_3283)) & -2147483648);
									BgL_test2407z00_5898 = (BgL_arg1960z00_3285 == 0L);
								}
								if (BgL_test2407z00_5898)
									{	/* Llib/weakhash.scm 557 */
										int32_t BgL_arg1956z00_3286;

										{	/* Llib/weakhash.scm 557 */
											int32_t BgL_arg1957z00_3287;
											int32_t BgL_arg1959z00_3288;

											BgL_arg1957z00_3287 = (int32_t) (BgL_n1z00_3282);
											BgL_arg1959z00_3288 = (int32_t) (BgL_n2z00_3283);
											BgL_arg1956z00_3286 =
												(BgL_arg1957z00_3287 % BgL_arg1959z00_3288);
										}
										{	/* Llib/weakhash.scm 557 */
											long BgL_arg2069z00_3293;

											BgL_arg2069z00_3293 = (long) (BgL_arg1956z00_3286);
											BgL_bucketzd2numzd2_1729 = (long) (BgL_arg2069z00_3293);
									}}
								else
									{	/* Llib/weakhash.scm 557 */
										BgL_bucketzd2numzd2_1729 =
											(BgL_n1z00_3282 % BgL_n2z00_3283);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 557 */
						obj_t BgL_bucketz00_1730;

						BgL_bucketz00_1730 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1727), BgL_bucketzd2numzd2_1729);
						{	/* Llib/weakhash.scm 558 */
							obj_t BgL_maxzd2bucketzd2lenz00_1731;

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

								BgL_countz00_4232 = BGL_MAKE_UNSAFE_CELL(BINT(0L));
								{	/* Llib/weakhash.scm 560 */
									obj_t BgL_foundz00_1733;

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

										{
											int BgL_tmpz00_5912;

											BgL_tmpz00_5912 = (int) (4L);
											BgL_zc3z04anonymousza31581ze3z87_4222 =
												MAKE_L_PROCEDURE
												(BGl_z62zc3z04anonymousza31581ze3ze5zz__weakhashz00,
												BgL_tmpz00_5912);
										}
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31581ze3z87_4222,
											(int) (0L), ((obj_t) BgL_countz00_4232));
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31581ze3z87_4222,
											(int) (1L), BgL_procz00_98);
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31581ze3z87_4222,
											(int) (2L), BgL_tablez00_96);
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31581ze3z87_4222,
											(int) (3L), BgL_keyz00_97);
										BgL_foundz00_1733 =
											BGl_traversezd2bucketszd2zz__weakhashz00(BgL_tablez00_96,
											BgL_bucketsz00_1727, BgL_bucketzd2numzd2_1729,
											BgL_zc3z04anonymousza31581ze3z87_4222);
									}
									{	/* Llib/weakhash.scm 562 */

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

													BgL_arg1563z00_1734 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_96,
																(int) (0L))) + 1L);
													{	/* Llib/weakhash.scm 579 */
														obj_t BgL_auxz00_5933;
														int BgL_tmpz00_5931;

														BgL_auxz00_5933 = BINT(BgL_arg1563z00_1734);
														BgL_tmpz00_5931 = (int) (0L);
														STRUCT_SET(BgL_tablez00_96, BgL_tmpz00_5931,
															BgL_auxz00_5933);
												}}
												{	/* Llib/weakhash.scm 581 */
													obj_t BgL_arg1568z00_1736;

													{	/* Llib/weakhash.scm 581 */
														obj_t BgL_arg1569z00_1737;
														obj_t BgL_arg1573z00_1738;

														{	/* Llib/weakhash.scm 581 */
															obj_t BgL_arg1574z00_1739;
															obj_t BgL_arg1575z00_1740;

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

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

																	BgL_arg1575z00_1740 =
																		bgl_make_weakptr(BgL_objz00_99, BFALSE);
																}
															else
																{	/* Llib/weakhash.scm 584 */
																	BgL_arg1575z00_1740 = BgL_objz00_99;
																}
															BgL_arg1569z00_1737 =
																MAKE_YOUNG_PAIR(BgL_arg1574z00_1739,
																BgL_arg1575z00_1740);
														}
														{	/* Llib/weakhash.scm 589 */
															obj_t BgL_arg1578z00_1747;

															BgL_arg1578z00_1747 =
																STRUCT_REF(BgL_tablez00_96, (int) (2L));
															BgL_arg1573z00_1738 =
																VECTOR_REF(
																((obj_t) BgL_arg1578z00_1747),
																BgL_bucketzd2numzd2_1729);
														}
														BgL_arg1568z00_1736 =
															MAKE_YOUNG_PAIR(BgL_arg1569z00_1737,
															BgL_arg1573z00_1738);
													}
													VECTOR_SET(
														((obj_t) BgL_bucketsz00_1727),
														BgL_bucketzd2numzd2_1729, BgL_arg1568z00_1736);
												}
												if (
													((long) CINT(BGL_UNSAFE_CELL_REF(BgL_countz00_4232)) >
														(long) CINT(BgL_maxzd2bucketzd2lenz00_1731)))
													{	/* 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_1733;
											}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* &<@anonymous:1581> */
	obj_t BGl_z62zc3z04anonymousza31581ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4223, obj_t BgL_bkeyz00_4228, obj_t BgL_valz00_4229,
		obj_t BgL_bucketz00_4230)
	{
		{	/* Llib/weakhash.scm 564 */
			{	/* Llib/weakhash.scm 565 */
				obj_t BgL_countz00_4224;
				obj_t BgL_procz00_4225;
				obj_t BgL_tablez00_4226;
				obj_t BgL_keyz00_4227;

				BgL_countz00_4224 = PROCEDURE_L_REF(BgL_envz00_4223, (int) (0L));
				BgL_procz00_4225 =
					((obj_t) PROCEDURE_L_REF(BgL_envz00_4223, (int) (1L)));
				BgL_tablez00_4226 =
					((obj_t) PROCEDURE_L_REF(BgL_envz00_4223, (int) (2L)));
				BgL_keyz00_4227 = PROCEDURE_L_REF(BgL_envz00_4223, (int) (3L));
				{	/* Llib/weakhash.scm 565 */
					obj_t BgL_auxz00_4337;

					BgL_auxz00_4337 =
						ADDFX(BGL_UNSAFE_CELL_REF(BgL_countz00_4224), BINT(1L));
					BGL_UNSAFE_CELL_SET(BgL_countz00_4224, BgL_auxz00_4337);
				}
				{	/* Llib/weakhash.scm 566 */
					bool_t BgL_test2413z00_5970;

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

						BgL_eqtz00_4338 = STRUCT_REF(BgL_tablez00_4226, (int) (3L));
						if (PROCEDUREP(BgL_eqtz00_4338))
							{	/* Llib/weakhash.scm 566 */
								BgL_test2413z00_5970 =
									CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_4338, BgL_bkeyz00_4228,
										BgL_keyz00_4227));
							}
						else
							{	/* Llib/weakhash.scm 566 */
								if ((BgL_bkeyz00_4228 == BgL_keyz00_4227))
									{	/* Llib/weakhash.scm 566 */
										BgL_test2413z00_5970 = ((bool_t) 1);
									}
								else
									{	/* Llib/weakhash.scm 566 */
										if (STRINGP(BgL_bkeyz00_4228))
											{	/* Llib/weakhash.scm 566 */
												if (STRINGP(BgL_keyz00_4227))
													{	/* Llib/weakhash.scm 566 */
														long BgL_l1z00_4339;

														BgL_l1z00_4339 = STRING_LENGTH(BgL_bkeyz00_4228);
														if (
															(BgL_l1z00_4339 ==
																STRING_LENGTH(BgL_keyz00_4227)))
															{	/* Llib/weakhash.scm 566 */
																int BgL_arg1839z00_4340;

																{	/* Llib/weakhash.scm 566 */
																	char *BgL_auxz00_5993;
																	char *BgL_tmpz00_5991;

																	BgL_auxz00_5993 =
																		BSTRING_TO_STRING(BgL_keyz00_4227);
																	BgL_tmpz00_5991 =
																		BSTRING_TO_STRING(BgL_bkeyz00_4228);
																	BgL_arg1839z00_4340 =
																		memcmp(BgL_tmpz00_5991, BgL_auxz00_5993,
																		BgL_l1z00_4339);
																}
																BgL_test2413z00_5970 =
																	((long) (BgL_arg1839z00_4340) == 0L);
															}
														else
															{	/* Llib/weakhash.scm 566 */
																BgL_test2413z00_5970 = ((bool_t) 0);
															}
													}
												else
													{	/* Llib/weakhash.scm 566 */
														BgL_test2413z00_5970 = ((bool_t) 0);
													}
											}
										else
											{	/* Llib/weakhash.scm 566 */
												BgL_test2413z00_5970 = ((bool_t) 0);
											}
									}
							}
					}
					if (BgL_test2413z00_5970)
						{	/* Llib/weakhash.scm 567 */
							obj_t BgL_newvalz00_4341;

							BgL_newvalz00_4341 =
								BGL_PROCEDURE_CALL1(BgL_procz00_4225, BgL_valz00_4229);
							{	/* Llib/weakhash.scm 568 */
								obj_t BgL_arg1584z00_4342;
								obj_t BgL_arg1586z00_4343;

								BgL_arg1584z00_4342 = CAR(((obj_t) BgL_bucketz00_4230));
								if (BGl_hashtablezd2weakzd2datazf3zf3zz__hashz00
									(BgL_tablez00_4226))
									{	/* Llib/weakhash.scm 570 */

										BgL_arg1586z00_4343 =
											bgl_make_weakptr(BgL_newvalz00_4341, BFALSE);
									}
								else
									{	/* Llib/weakhash.scm 569 */
										BgL_arg1586z00_4343 = BgL_newvalz00_4341;
									}
								{	/* Llib/weakhash.scm 568 */
									obj_t BgL_tmpz00_6007;

									BgL_tmpz00_6007 = ((obj_t) BgL_arg1584z00_4342);
									SET_CDR(BgL_tmpz00_6007, BgL_arg1586z00_4343);
								}
							}
							return BgL_newvalz00_4341;
						}
					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_4234, obj_t BgL_tablez00_4235, obj_t BgL_keyz00_4236,
		obj_t BgL_procz00_4237, obj_t BgL_objz00_4238)
	{
		{	/* Llib/weakhash.scm 598 */
			{	/* Llib/weakhash.scm 599 */
				obj_t BgL_auxz00_6021;
				obj_t BgL_auxz00_6014;

				if (PROCEDUREP(BgL_procz00_4237))
					{	/* Llib/weakhash.scm 599 */
						BgL_auxz00_6021 = BgL_procz00_4237;
					}
				else
					{
						obj_t BgL_auxz00_6024;

						BgL_auxz00_6024 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(23717L), BGl_string2185z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_procz00_4237);
						FAILURE(BgL_auxz00_6024, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_4235))
					{	/* Llib/weakhash.scm 599 */
						BgL_auxz00_6014 = BgL_tablez00_4235;
					}
				else
					{
						obj_t BgL_auxz00_6017;

						BgL_auxz00_6017 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(23717L), BGl_string2185z00zz__weakhashz00,
							BGl_string2170z00zz__weakhashz00, BgL_tablez00_4235);
						FAILURE(BgL_auxz00_6017, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2updatez12z12zz__weakhashz00(BgL_auxz00_6014,
					BgL_keyz00_4236, BgL_auxz00_6021, BgL_objz00_4238);
			}
		}

	}



/* 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_1764;

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

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

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

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

									BgL_arg1258z00_3341 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_3339, BgL_keyz00_105);
									{	/* Llib/weakhash.scm 609 */
										long BgL_nz00_3343;

										BgL_nz00_3343 = (long) CINT(BgL_arg1258z00_3341);
										if ((BgL_nz00_3343 < 0L))
											{	/* Llib/weakhash.scm 609 */
												BgL_arg1620z00_1799 = NEG(BgL_nz00_3343);
											}
										else
											{	/* Llib/weakhash.scm 609 */
												BgL_arg1620z00_1799 = BgL_nz00_3343;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 609 */
									if ((BgL_hashnz00_3339 == BGl_symbol2180z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 609 */
											BgL_arg1620z00_1799 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_105);
										}
									else
										{	/* Llib/weakhash.scm 609 */
											BgL_arg1620z00_1799 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_105);
										}
								}
						}
						{	/* Llib/weakhash.scm 609 */
							long BgL_n1z00_3347;
							long BgL_n2z00_3348;

							BgL_n1z00_3347 = BgL_arg1620z00_1799;
							BgL_n2z00_3348 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1764));
							{	/* Llib/weakhash.scm 609 */
								bool_t BgL_test2426z00_6049;

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

									BgL_arg1960z00_3350 =
										(((BgL_n1z00_3347) | (BgL_n2z00_3348)) & -2147483648);
									BgL_test2426z00_6049 = (BgL_arg1960z00_3350 == 0L);
								}
								if (BgL_test2426z00_6049)
									{	/* Llib/weakhash.scm 609 */
										int32_t BgL_arg1956z00_3351;

										{	/* Llib/weakhash.scm 609 */
											int32_t BgL_arg1957z00_3352;
											int32_t BgL_arg1959z00_3353;

											BgL_arg1957z00_3352 = (int32_t) (BgL_n1z00_3347);
											BgL_arg1959z00_3353 = (int32_t) (BgL_n2z00_3348);
											BgL_arg1956z00_3351 =
												(BgL_arg1957z00_3352 % BgL_arg1959z00_3353);
										}
										{	/* Llib/weakhash.scm 609 */
											long BgL_arg2069z00_3358;

											BgL_arg2069z00_3358 = (long) (BgL_arg1956z00_3351);
											BgL_bucketzd2numzd2_1766 = (long) (BgL_arg2069z00_3358);
									}}
								else
									{	/* Llib/weakhash.scm 609 */
										BgL_bucketzd2numzd2_1766 =
											(BgL_n1z00_3347 % BgL_n2z00_3348);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 609 */
						obj_t BgL_bucketz00_1767;

						BgL_bucketz00_1767 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1764), BgL_bucketzd2numzd2_1766);
						{	/* Llib/weakhash.scm 610 */
							obj_t BgL_maxzd2bucketzd2lenz00_1768;

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

								if (NULLP(BgL_bucketz00_1767))
									{	/* Llib/weakhash.scm 613 */
										obj_t BgL_vz00_1770;

										BgL_vz00_1770 =
											BGL_PROCEDURE_CALL2(BgL_procz00_106, BgL_objz00_107,
											BgL_initz00_108);
										{	/* Llib/weakhash.scm 614 */
											long BgL_arg1592z00_1771;

											BgL_arg1592z00_1771 =
												(
												(long) CINT(STRUCT_REF(BgL_tablez00_104,
														(int) (0L))) + 1L);
											{	/* Llib/weakhash.scm 614 */
												obj_t BgL_auxz00_6075;
												int BgL_tmpz00_6073;

												BgL_auxz00_6075 = BINT(BgL_arg1592z00_1771);
												BgL_tmpz00_6073 = (int) (0L);
												STRUCT_SET(BgL_tablez00_104, BgL_tmpz00_6073,
													BgL_auxz00_6075);
										}}
										{	/* Llib/weakhash.scm 615 */
											obj_t BgL_arg1595z00_1773;

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

												BgL_arg1596z00_1774 =
													MAKE_YOUNG_PAIR(BgL_keyz00_105, BgL_vz00_1770);
												{	/* Llib/weakhash.scm 615 */
													obj_t BgL_list1597z00_1775;

													BgL_list1597z00_1775 =
														MAKE_YOUNG_PAIR(BgL_arg1596z00_1774, BNIL);
													BgL_arg1595z00_1773 = BgL_list1597z00_1775;
											}}
											VECTOR_SET(
												((obj_t) BgL_bucketsz00_1764), BgL_bucketzd2numzd2_1766,
												BgL_arg1595z00_1773);
										}
										return BgL_vz00_1770;
									}
								else
									{
										obj_t BgL_buckz00_1777;
										long BgL_countz00_1778;

										BgL_buckz00_1777 = BgL_bucketz00_1767;
										BgL_countz00_1778 = 0L;
									BgL_zc3z04anonymousza31598ze3z87_1779:
										if (NULLP(BgL_buckz00_1777))
											{	/* Llib/weakhash.scm 621 */
												obj_t BgL_vz00_1781;

												BgL_vz00_1781 =
													BGL_PROCEDURE_CALL2(BgL_procz00_106, BgL_objz00_107,
													BgL_initz00_108);
												{	/* Llib/weakhash.scm 622 */
													long BgL_arg1600z00_1782;

													BgL_arg1600z00_1782 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_104,
																(int) (0L))) + 1L);
													{	/* Llib/weakhash.scm 622 */
														obj_t BgL_auxz00_6095;
														int BgL_tmpz00_6093;

														BgL_auxz00_6095 = BINT(BgL_arg1600z00_1782);
														BgL_tmpz00_6093 = (int) (0L);
														STRUCT_SET(BgL_tablez00_104, BgL_tmpz00_6093,
															BgL_auxz00_6095);
												}}
												{	/* Llib/weakhash.scm 624 */
													obj_t BgL_arg1603z00_1784;

													BgL_arg1603z00_1784 =
														MAKE_YOUNG_PAIR(bgl_make_weakptr(BgL_keyz00_105,
															BgL_vz00_1781), BgL_bucketz00_1767);
													VECTOR_SET(((obj_t) BgL_bucketsz00_1764),
														BgL_bucketzd2numzd2_1766, BgL_arg1603z00_1784);
												}
												if (
													(BgL_countz00_1778 >
														(long) CINT(BgL_maxzd2bucketzd2lenz00_1768)))
													{	/* Llib/weakhash.scm 625 */
														BGl_weakzd2keyszd2hashtablezd2expandz12zc0zz__weakhashz00
															(BgL_tablez00_104);
													}
												else
													{	/* Llib/weakhash.scm 625 */
														BFALSE;
													}
												return BgL_vz00_1781;
											}
										else
											{	/* Llib/weakhash.scm 628 */
												bool_t BgL_test2430z00_6106;

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

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

														BgL_arg1619z00_1797 =
															CAR(((obj_t) BgL_buckz00_1777));
														BgL_arg1617z00_1796 =
															bgl_weakptr_data(((obj_t) BgL_arg1619z00_1797));
													}
													{	/* Llib/weakhash.scm 628 */
														obj_t BgL_eqtz00_3378;

														BgL_eqtz00_3378 =
															STRUCT_REF(BgL_tablez00_104, (int) (3L));
														if (PROCEDUREP(BgL_eqtz00_3378))
															{	/* Llib/weakhash.scm 628 */
																BgL_test2430z00_6106 =
																	CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_3378,
																		BgL_arg1617z00_1796, BgL_keyz00_105));
															}
														else
															{	/* Llib/weakhash.scm 628 */
																if ((BgL_arg1617z00_1796 == BgL_keyz00_105))
																	{	/* Llib/weakhash.scm 628 */
																		BgL_test2430z00_6106 = ((bool_t) 1);
																	}
																else
																	{	/* Llib/weakhash.scm 628 */
																		if (STRINGP(BgL_arg1617z00_1796))
																			{	/* Llib/weakhash.scm 628 */
																				if (STRINGP(BgL_keyz00_105))
																					{	/* Llib/weakhash.scm 628 */
																						long BgL_l1z00_3385;

																						BgL_l1z00_3385 =
																							STRING_LENGTH
																							(BgL_arg1617z00_1796);
																						if ((BgL_l1z00_3385 ==
																								STRING_LENGTH(BgL_keyz00_105)))
																							{	/* Llib/weakhash.scm 628 */
																								int BgL_arg1839z00_3388;

																								{	/* Llib/weakhash.scm 628 */
																									char *BgL_auxz00_6133;
																									char *BgL_tmpz00_6131;

																									BgL_auxz00_6133 =
																										BSTRING_TO_STRING
																										(BgL_keyz00_105);
																									BgL_tmpz00_6131 =
																										BSTRING_TO_STRING
																										(BgL_arg1617z00_1796);
																									BgL_arg1839z00_3388 =
																										memcmp(BgL_tmpz00_6131,
																										BgL_auxz00_6133,
																										BgL_l1z00_3385);
																								}
																								BgL_test2430z00_6106 =
																									(
																									(long) (BgL_arg1839z00_3388)
																									== 0L);
																							}
																						else
																							{	/* Llib/weakhash.scm 628 */
																								BgL_test2430z00_6106 =
																									((bool_t) 0);
																							}
																					}
																				else
																					{	/* Llib/weakhash.scm 628 */
																						BgL_test2430z00_6106 = ((bool_t) 0);
																					}
																			}
																		else
																			{	/* Llib/weakhash.scm 628 */
																				BgL_test2430z00_6106 = ((bool_t) 0);
																			}
																	}
															}
													}
												}
												if (BgL_test2430z00_6106)
													{	/* Llib/weakhash.scm 629 */
														obj_t BgL_resz00_1790;

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

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

																BgL_arg1614z00_1793 =
																	CAR(((obj_t) BgL_buckz00_1777));
																BgL_arg1613z00_1792 =
																	bgl_weakptr_ref(
																	((obj_t) BgL_arg1614z00_1793));
															}
															BgL_resz00_1790 =
																BGL_PROCEDURE_CALL2(BgL_procz00_106,
																BgL_objz00_107, BgL_arg1613z00_1792);
														}
														{	/* Llib/weakhash.scm 630 */
															obj_t BgL_arg1612z00_1791;

															BgL_arg1612z00_1791 =
																CAR(((obj_t) BgL_buckz00_1777));
															bgl_weakptr_ref_set(
																((obj_t) BgL_arg1612z00_1791), BgL_resz00_1790);
															BUNSPEC;
															BUNSPEC;
														}
														return BgL_resz00_1790;
													}
												else
													{	/* Llib/weakhash.scm 633 */
														obj_t BgL_arg1615z00_1794;
														long BgL_arg1616z00_1795;

														BgL_arg1615z00_1794 =
															CDR(((obj_t) BgL_buckz00_1777));
														BgL_arg1616z00_1795 = (BgL_countz00_1778 + 1L);
														{
															long BgL_countz00_6155;
															obj_t BgL_buckz00_6154;

															BgL_buckz00_6154 = BgL_arg1615z00_1794;
															BgL_countz00_6155 = BgL_arg1616z00_1795;
															BgL_countz00_1778 = BgL_countz00_6155;
															BgL_buckz00_1777 = BgL_buckz00_6154;
															goto BgL_zc3z04anonymousza31598ze3z87_1779;
														}
													}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* 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_1800;

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

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

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

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

									BgL_arg1258z00_3404 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_3402, BgL_keyz00_110);
									{	/* Llib/weakhash.scm 641 */
										long BgL_nz00_3406;

										BgL_nz00_3406 = (long) CINT(BgL_arg1258z00_3404);
										if ((BgL_nz00_3406 < 0L))
											{	/* Llib/weakhash.scm 641 */
												BgL_arg1639z00_1839 = NEG(BgL_nz00_3406);
											}
										else
											{	/* Llib/weakhash.scm 641 */
												BgL_arg1639z00_1839 = BgL_nz00_3406;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 641 */
									if ((BgL_hashnz00_3402 == BGl_symbol2180z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 641 */
											BgL_arg1639z00_1839 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_110);
										}
									else
										{	/* Llib/weakhash.scm 641 */
											BgL_arg1639z00_1839 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_110);
										}
								}
						}
						{	/* Llib/weakhash.scm 641 */
							long BgL_n1z00_3410;
							long BgL_n2z00_3411;

							BgL_n1z00_3410 = BgL_arg1639z00_1839;
							BgL_n2z00_3411 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1800));
							{	/* Llib/weakhash.scm 641 */
								bool_t BgL_test2439z00_6176;

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

									BgL_arg1960z00_3413 =
										(((BgL_n1z00_3410) | (BgL_n2z00_3411)) & -2147483648);
									BgL_test2439z00_6176 = (BgL_arg1960z00_3413 == 0L);
								}
								if (BgL_test2439z00_6176)
									{	/* Llib/weakhash.scm 641 */
										int32_t BgL_arg1956z00_3414;

										{	/* Llib/weakhash.scm 641 */
											int32_t BgL_arg1957z00_3415;
											int32_t BgL_arg1959z00_3416;

											BgL_arg1957z00_3415 = (int32_t) (BgL_n1z00_3410);
											BgL_arg1959z00_3416 = (int32_t) (BgL_n2z00_3411);
											BgL_arg1956z00_3414 =
												(BgL_arg1957z00_3415 % BgL_arg1959z00_3416);
										}
										{	/* Llib/weakhash.scm 641 */
											long BgL_arg2069z00_3421;

											BgL_arg2069z00_3421 = (long) (BgL_arg1956z00_3414);
											BgL_bucketzd2numzd2_1802 = (long) (BgL_arg2069z00_3421);
									}}
								else
									{	/* Llib/weakhash.scm 641 */
										BgL_bucketzd2numzd2_1802 =
											(BgL_n1z00_3410 % BgL_n2z00_3411);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 641 */
						obj_t BgL_bucketz00_1803;

						BgL_bucketz00_1803 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1800), BgL_bucketzd2numzd2_1802);
						{	/* Llib/weakhash.scm 642 */
							obj_t BgL_maxzd2bucketzd2lenz00_1804;

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

								BgL_countz00_4249 = BGL_MAKE_UNSAFE_CELL(BINT(0L));
								{	/* Llib/weakhash.scm 644 */
									obj_t BgL_foundz00_1806;

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

										{
											int BgL_tmpz00_6190;

											BgL_tmpz00_6190 = (int) (4L);
											BgL_zc3z04anonymousza31634ze3z87_4239 =
												MAKE_L_PROCEDURE
												(BGl_z62zc3z04anonymousza31634ze3ze5zz__weakhashz00,
												BgL_tmpz00_6190);
										}
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31634ze3z87_4239,
											(int) (0L), ((obj_t) BgL_countz00_4249));
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31634ze3z87_4239,
											(int) (1L), BgL_procz00_111);
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31634ze3z87_4239,
											(int) (2L), BgL_tablez00_109);
										PROCEDURE_L_SET(BgL_zc3z04anonymousza31634ze3z87_4239,
											(int) (3L), BgL_keyz00_110);
										BgL_foundz00_1806 =
											BGl_traversezd2bucketszd2zz__weakhashz00(BgL_tablez00_109,
											BgL_bucketsz00_1800, BgL_bucketzd2numzd2_1802,
											BgL_zc3z04anonymousza31634ze3z87_4239);
									}
									{	/* Llib/weakhash.scm 646 */

										if ((BgL_foundz00_1806 == BGl_keepgoingz00zz__weakhashz00))
											{	/* Llib/weakhash.scm 662 */
												obj_t BgL_vz00_1807;

												if (BGl_hashtablezd2weakzd2datazf3zf3zz__hashz00
													(BgL_tablez00_109))
													{	/* Llib/weakhash.scm 663 */
														obj_t BgL_arg1631z00_1820;
														obj_t BgL_arg1632z00_1821;

														{	/* Llib/weakhash.scm 663 */

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

															BgL_arg1632z00_1821 =
																bgl_make_weakptr(BgL_initz00_113, BFALSE);
														}
														BgL_vz00_1807 =
															BGL_PROCEDURE_CALL2(BgL_procz00_111,
															BgL_arg1631z00_1820, BgL_arg1632z00_1821);
													}
												else
													{	/* Llib/weakhash.scm 662 */
														BgL_vz00_1807 =
															BGL_PROCEDURE_CALL2(BgL_procz00_111,
															BgL_objz00_112, BgL_initz00_113);
													}
												{	/* Llib/weakhash.scm 665 */
													long BgL_arg1621z00_1808;

													BgL_arg1621z00_1808 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_109,
																(int) (0L))) + 1L);
													{	/* Llib/weakhash.scm 665 */
														obj_t BgL_auxz00_6225;
														int BgL_tmpz00_6223;

														BgL_auxz00_6225 = BINT(BgL_arg1621z00_1808);
														BgL_tmpz00_6223 = (int) (0L);
														STRUCT_SET(BgL_tablez00_109, BgL_tmpz00_6223,
															BgL_auxz00_6225);
												}}
												{	/* Llib/weakhash.scm 667 */
													obj_t BgL_arg1623z00_1810;

													{	/* Llib/weakhash.scm 667 */
														obj_t BgL_arg1624z00_1811;
														obj_t BgL_arg1625z00_1812;

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

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

																	BgL_arg1626z00_1813 =
																		bgl_make_weakptr(BgL_keyz00_110, BFALSE);
																}
															else
																{	/* Llib/weakhash.scm 667 */
																	BgL_arg1626z00_1813 = BgL_keyz00_110;
																}
															BgL_arg1624z00_1811 =
																MAKE_YOUNG_PAIR(BgL_arg1626z00_1813,
																BgL_vz00_1807);
														}
														{	/* Llib/weakhash.scm 673 */
															obj_t BgL_arg1628z00_1817;

															BgL_arg1628z00_1817 =
																STRUCT_REF(BgL_tablez00_109, (int) (2L));
															BgL_arg1625z00_1812 =
																VECTOR_REF(
																((obj_t) BgL_arg1628z00_1817),
																BgL_bucketzd2numzd2_1802);
														}
														BgL_arg1623z00_1810 =
															MAKE_YOUNG_PAIR(BgL_arg1624z00_1811,
															BgL_arg1625z00_1812);
													}
													VECTOR_SET(
														((obj_t) BgL_bucketsz00_1800),
														BgL_bucketzd2numzd2_1802, BgL_arg1623z00_1810);
												}
												if (
													((long) CINT(BGL_UNSAFE_CELL_REF(BgL_countz00_4249)) >
														(long) CINT(BgL_maxzd2bucketzd2lenz00_1804)))
													{	/* 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_1807;
											}
										else
											{	/* Llib/weakhash.scm 660 */
												return BgL_foundz00_1806;
											}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* &<@anonymous:1634> */
	obj_t BGl_z62zc3z04anonymousza31634ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4240, obj_t BgL_bkeyz00_4245, obj_t BgL_valz00_4246,
		obj_t BgL_bucketz00_4247)
	{
		{	/* Llib/weakhash.scm 648 */
			{	/* Llib/weakhash.scm 649 */
				obj_t BgL_countz00_4241;
				obj_t BgL_procz00_4242;
				obj_t BgL_tablez00_4243;
				obj_t BgL_keyz00_4244;

				BgL_countz00_4241 = PROCEDURE_L_REF(BgL_envz00_4240, (int) (0L));
				BgL_procz00_4242 =
					((obj_t) PROCEDURE_L_REF(BgL_envz00_4240, (int) (1L)));
				BgL_tablez00_4243 =
					((obj_t) PROCEDURE_L_REF(BgL_envz00_4240, (int) (2L)));
				BgL_keyz00_4244 = PROCEDURE_L_REF(BgL_envz00_4240, (int) (3L));
				{	/* Llib/weakhash.scm 649 */
					obj_t BgL_auxz00_4344;

					BgL_auxz00_4344 =
						ADDFX(BGL_UNSAFE_CELL_REF(BgL_countz00_4241), BINT(1L));
					BGL_UNSAFE_CELL_SET(BgL_countz00_4241, BgL_auxz00_4344);
				}
				{	/* Llib/weakhash.scm 650 */
					bool_t BgL_test2445z00_6259;

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

						BgL_eqtz00_4345 = STRUCT_REF(BgL_tablez00_4243, (int) (3L));
						if (PROCEDUREP(BgL_eqtz00_4345))
							{	/* Llib/weakhash.scm 650 */
								BgL_test2445z00_6259 =
									CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_4345, BgL_bkeyz00_4245,
										BgL_keyz00_4244));
							}
						else
							{	/* Llib/weakhash.scm 650 */
								if ((BgL_bkeyz00_4245 == BgL_keyz00_4244))
									{	/* Llib/weakhash.scm 650 */
										BgL_test2445z00_6259 = ((bool_t) 1);
									}
								else
									{	/* Llib/weakhash.scm 650 */
										if (STRINGP(BgL_bkeyz00_4245))
											{	/* Llib/weakhash.scm 650 */
												if (STRINGP(BgL_keyz00_4244))
													{	/* Llib/weakhash.scm 650 */
														long BgL_l1z00_4346;

														BgL_l1z00_4346 = STRING_LENGTH(BgL_bkeyz00_4245);
														if (
															(BgL_l1z00_4346 ==
																STRING_LENGTH(BgL_keyz00_4244)))
															{	/* Llib/weakhash.scm 650 */
																int BgL_arg1839z00_4347;

																{	/* Llib/weakhash.scm 650 */
																	char *BgL_auxz00_6282;
																	char *BgL_tmpz00_6280;

																	BgL_auxz00_6282 =
																		BSTRING_TO_STRING(BgL_keyz00_4244);
																	BgL_tmpz00_6280 =
																		BSTRING_TO_STRING(BgL_bkeyz00_4245);
																	BgL_arg1839z00_4347 =
																		memcmp(BgL_tmpz00_6280, BgL_auxz00_6282,
																		BgL_l1z00_4346);
																}
																BgL_test2445z00_6259 =
																	((long) (BgL_arg1839z00_4347) == 0L);
															}
														else
															{	/* Llib/weakhash.scm 650 */
																BgL_test2445z00_6259 = ((bool_t) 0);
															}
													}
												else
													{	/* Llib/weakhash.scm 650 */
														BgL_test2445z00_6259 = ((bool_t) 0);
													}
											}
										else
											{	/* Llib/weakhash.scm 650 */
												BgL_test2445z00_6259 = ((bool_t) 0);
											}
									}
							}
					}
					if (BgL_test2445z00_6259)
						{	/* Llib/weakhash.scm 651 */
							obj_t BgL_newvalz00_4348;

							BgL_newvalz00_4348 =
								BGL_PROCEDURE_CALL1(BgL_procz00_4242, BgL_valz00_4246);
							{	/* Llib/weakhash.scm 652 */
								obj_t BgL_arg1636z00_4349;
								obj_t BgL_arg1637z00_4350;

								BgL_arg1636z00_4349 = CAR(((obj_t) BgL_bucketz00_4247));
								if (BGl_hashtablezd2weakzd2datazf3zf3zz__hashz00
									(BgL_tablez00_4243))
									{	/* Llib/weakhash.scm 654 */

										BgL_arg1637z00_4350 =
											bgl_make_weakptr(BgL_newvalz00_4348, BFALSE);
									}
								else
									{	/* Llib/weakhash.scm 653 */
										BgL_arg1637z00_4350 = BgL_newvalz00_4348;
									}
								{	/* Llib/weakhash.scm 652 */
									obj_t BgL_tmpz00_6296;

									BgL_tmpz00_6296 = ((obj_t) BgL_arg1636z00_4349);
									SET_CDR(BgL_tmpz00_6296, BgL_arg1637z00_4350);
								}
							}
							return BgL_newvalz00_4348;
						}
					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_4251, obj_t BgL_tablez00_4252, obj_t BgL_keyz00_4253,
		obj_t BgL_procz00_4254, obj_t BgL_objz00_4255, obj_t BgL_initz00_4256)
	{
		{	/* Llib/weakhash.scm 682 */
			{	/* Llib/weakhash.scm 683 */
				obj_t BgL_auxz00_6310;
				obj_t BgL_auxz00_6303;

				if (PROCEDUREP(BgL_procz00_4254))
					{	/* Llib/weakhash.scm 683 */
						BgL_auxz00_6310 = BgL_procz00_4254;
					}
				else
					{
						obj_t BgL_auxz00_6313;

						BgL_auxz00_6313 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(27143L), BGl_string2186z00zz__weakhashz00,
							BGl_string2174z00zz__weakhashz00, BgL_procz00_4254);
						FAILURE(BgL_auxz00_6313, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_4252))
					{	/* Llib/weakhash.scm 683 */
						BgL_auxz00_6303 = BgL_tablez00_4252;
					}
				else
					{
						obj_t BgL_auxz00_6306;

						BgL_auxz00_6306 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(27143L), BGl_string2186z00zz__weakhashz00,
							BGl_string2170z00zz__weakhashz00, BgL_tablez00_4252);
						FAILURE(BgL_auxz00_6306, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2addz12z12zz__weakhashz00(BgL_auxz00_6303,
					BgL_keyz00_4253, BgL_auxz00_6310, BgL_objz00_4255, BgL_initz00_4256);
			}
		}

	}



/* 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_1841;

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

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

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

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

									BgL_arg1258z00_3469 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_3467, BgL_keyz00_120);
									{	/* Llib/weakhash.scm 693 */
										long BgL_nz00_3471;

										BgL_nz00_3471 = (long) CINT(BgL_arg1258z00_3469);
										if ((BgL_nz00_3471 < 0L))
											{	/* Llib/weakhash.scm 693 */
												BgL_arg1667z00_1870 = NEG(BgL_nz00_3471);
											}
										else
											{	/* Llib/weakhash.scm 693 */
												BgL_arg1667z00_1870 = BgL_nz00_3471;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 693 */
									if ((BgL_hashnz00_3467 == BGl_symbol2180z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 693 */
											BgL_arg1667z00_1870 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_120);
										}
									else
										{	/* Llib/weakhash.scm 693 */
											BgL_arg1667z00_1870 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_120);
										}
								}
						}
						{	/* Llib/weakhash.scm 693 */
							long BgL_n1z00_3475;
							long BgL_n2z00_3476;

							BgL_n1z00_3475 = BgL_arg1667z00_1870;
							BgL_n2z00_3476 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1841));
							{	/* Llib/weakhash.scm 693 */
								bool_t BgL_test2458z00_6338;

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

									BgL_arg1960z00_3478 =
										(((BgL_n1z00_3475) | (BgL_n2z00_3476)) & -2147483648);
									BgL_test2458z00_6338 = (BgL_arg1960z00_3478 == 0L);
								}
								if (BgL_test2458z00_6338)
									{	/* Llib/weakhash.scm 693 */
										int32_t BgL_arg1956z00_3479;

										{	/* Llib/weakhash.scm 693 */
											int32_t BgL_arg1957z00_3480;
											int32_t BgL_arg1959z00_3481;

											BgL_arg1957z00_3480 = (int32_t) (BgL_n1z00_3475);
											BgL_arg1959z00_3481 = (int32_t) (BgL_n2z00_3476);
											BgL_arg1956z00_3479 =
												(BgL_arg1957z00_3480 % BgL_arg1959z00_3481);
										}
										{	/* Llib/weakhash.scm 693 */
											long BgL_arg2069z00_3486;

											BgL_arg2069z00_3486 = (long) (BgL_arg1956z00_3479);
											BgL_bucketzd2numzd2_1843 = (long) (BgL_arg2069z00_3486);
									}}
								else
									{	/* Llib/weakhash.scm 693 */
										BgL_bucketzd2numzd2_1843 =
											(BgL_n1z00_3475 % BgL_n2z00_3476);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 693 */
						obj_t BgL_bucketz00_1844;

						BgL_bucketz00_1844 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1841), BgL_bucketzd2numzd2_1843);
						{	/* Llib/weakhash.scm 694 */

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

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

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

											BgL_arg1666z00_1869 = CAR(((obj_t) BgL_bucketz00_1844));
											BgL_arg1665z00_1868 =
												bgl_weakptr_data(((obj_t) BgL_arg1666z00_1869));
										}
										{	/* Llib/weakhash.scm 698 */
											obj_t BgL_eqtz00_3492;

											BgL_eqtz00_3492 =
												STRUCT_REF(BgL_tablez00_119, (int) (3L));
											if (PROCEDUREP(BgL_eqtz00_3492))
												{	/* Llib/weakhash.scm 698 */
													BgL_test2460z00_6351 =
														CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_3492,
															BgL_arg1665z00_1868, BgL_keyz00_120));
												}
											else
												{	/* Llib/weakhash.scm 698 */
													if ((BgL_arg1665z00_1868 == BgL_keyz00_120))
														{	/* Llib/weakhash.scm 698 */
															BgL_test2460z00_6351 = ((bool_t) 1);
														}
													else
														{	/* Llib/weakhash.scm 698 */
															if (STRINGP(BgL_arg1665z00_1868))
																{	/* Llib/weakhash.scm 698 */
																	if (STRINGP(BgL_keyz00_120))
																		{	/* Llib/weakhash.scm 698 */
																			long BgL_l1z00_3499;

																			BgL_l1z00_3499 =
																				STRING_LENGTH(BgL_arg1665z00_1868);
																			if (
																				(BgL_l1z00_3499 ==
																					STRING_LENGTH(BgL_keyz00_120)))
																				{	/* Llib/weakhash.scm 698 */
																					int BgL_arg1839z00_3502;

																					{	/* Llib/weakhash.scm 698 */
																						char *BgL_auxz00_6378;
																						char *BgL_tmpz00_6376;

																						BgL_auxz00_6378 =
																							BSTRING_TO_STRING(BgL_keyz00_120);
																						BgL_tmpz00_6376 =
																							BSTRING_TO_STRING
																							(BgL_arg1665z00_1868);
																						BgL_arg1839z00_3502 =
																							memcmp(BgL_tmpz00_6376,
																							BgL_auxz00_6378, BgL_l1z00_3499);
																					}
																					BgL_test2460z00_6351 =
																						(
																						(long) (BgL_arg1839z00_3502) == 0L);
																				}
																			else
																				{	/* Llib/weakhash.scm 698 */
																					BgL_test2460z00_6351 = ((bool_t) 0);
																				}
																		}
																	else
																		{	/* Llib/weakhash.scm 698 */
																			BgL_test2460z00_6351 = ((bool_t) 0);
																		}
																}
															else
																{	/* Llib/weakhash.scm 698 */
																	BgL_test2460z00_6351 = ((bool_t) 0);
																}
														}
												}
										}
									}
									if (BgL_test2460z00_6351)
										{	/* Llib/weakhash.scm 698 */
											{	/* Llib/weakhash.scm 699 */
												obj_t BgL_arg1645z00_1849;

												BgL_arg1645z00_1849 = CDR(((obj_t) BgL_bucketz00_1844));
												VECTOR_SET(
													((obj_t) BgL_bucketsz00_1841),
													BgL_bucketzd2numzd2_1843, BgL_arg1645z00_1849);
											}
											{	/* Llib/weakhash.scm 700 */
												long BgL_arg1646z00_1850;

												BgL_arg1646z00_1850 =
													(
													(long) CINT(STRUCT_REF(BgL_tablez00_119,
															(int) (0L))) - 1L);
												{	/* Llib/weakhash.scm 700 */
													obj_t BgL_auxz00_6393;
													int BgL_tmpz00_6391;

													BgL_auxz00_6393 = BINT(BgL_arg1646z00_1850);
													BgL_tmpz00_6391 = (int) (0L);
													STRUCT_SET(BgL_tablez00_119, BgL_tmpz00_6391,
														BgL_auxz00_6393);
											}}
											return ((bool_t) 1);
										}
									else
										{	/* Llib/weakhash.scm 703 */
											obj_t BgL_g1068z00_1852;

											BgL_g1068z00_1852 = CDR(((obj_t) BgL_bucketz00_1844));
											{
												obj_t BgL_bucketz00_1854;
												obj_t BgL_prevz00_1855;

												BgL_bucketz00_1854 = BgL_g1068z00_1852;
												BgL_prevz00_1855 = BgL_bucketz00_1844;
											BgL_zc3z04anonymousza31648ze3z87_1856:
												if (PAIRP(BgL_bucketz00_1854))
													{	/* Llib/weakhash.scm 706 */
														bool_t BgL_test2467z00_6400;

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

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

																BgL_arg1664z00_1866 = CAR(BgL_bucketz00_1854);
																BgL_arg1662z00_1865 =
																	bgl_weakptr_data(
																	((obj_t) BgL_arg1664z00_1866));
															}
															{	/* Llib/weakhash.scm 706 */
																obj_t BgL_eqtz00_3517;

																BgL_eqtz00_3517 =
																	STRUCT_REF(BgL_tablez00_119, (int) (3L));
																if (PROCEDUREP(BgL_eqtz00_3517))
																	{	/* Llib/weakhash.scm 706 */
																		BgL_test2467z00_6400 =
																			CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_3517,
																				BgL_arg1662z00_1865, BgL_keyz00_120));
																	}
																else
																	{	/* Llib/weakhash.scm 706 */
																		if ((BgL_arg1662z00_1865 == BgL_keyz00_120))
																			{	/* Llib/weakhash.scm 706 */
																				BgL_test2467z00_6400 = ((bool_t) 1);
																			}
																		else
																			{	/* Llib/weakhash.scm 706 */
																				if (STRINGP(BgL_arg1662z00_1865))
																					{	/* Llib/weakhash.scm 706 */
																						if (STRINGP(BgL_keyz00_120))
																							{	/* Llib/weakhash.scm 706 */
																								long BgL_l1z00_3524;

																								BgL_l1z00_3524 =
																									STRING_LENGTH
																									(BgL_arg1662z00_1865);
																								if ((BgL_l1z00_3524 ==
																										STRING_LENGTH
																										(BgL_keyz00_120)))
																									{	/* Llib/weakhash.scm 706 */
																										int BgL_arg1839z00_3527;

																										{	/* Llib/weakhash.scm 706 */
																											char *BgL_auxz00_6426;
																											char *BgL_tmpz00_6424;

																											BgL_auxz00_6426 =
																												BSTRING_TO_STRING
																												(BgL_keyz00_120);
																											BgL_tmpz00_6424 =
																												BSTRING_TO_STRING
																												(BgL_arg1662z00_1865);
																											BgL_arg1839z00_3527 =
																												memcmp(BgL_tmpz00_6424,
																												BgL_auxz00_6426,
																												BgL_l1z00_3524);
																										}
																										BgL_test2467z00_6400 =
																											(
																											(long)
																											(BgL_arg1839z00_3527) ==
																											0L);
																									}
																								else
																									{	/* Llib/weakhash.scm 706 */
																										BgL_test2467z00_6400 =
																											((bool_t) 0);
																									}
																							}
																						else
																							{	/* Llib/weakhash.scm 706 */
																								BgL_test2467z00_6400 =
																									((bool_t) 0);
																							}
																					}
																				else
																					{	/* Llib/weakhash.scm 706 */
																						BgL_test2467z00_6400 = ((bool_t) 0);
																					}
																			}
																	}
															}
														}
														if (BgL_test2467z00_6400)
															{	/* Llib/weakhash.scm 706 */
																{	/* Llib/weakhash.scm 708 */
																	obj_t BgL_arg1655z00_1861;

																	BgL_arg1655z00_1861 = CDR(BgL_bucketz00_1854);
																	{	/* Llib/weakhash.scm 708 */
																		obj_t BgL_tmpz00_6432;

																		BgL_tmpz00_6432 =
																			((obj_t) BgL_prevz00_1855);
																		SET_CDR(BgL_tmpz00_6432,
																			BgL_arg1655z00_1861);
																	}
																}
																{	/* Llib/weakhash.scm 710 */
																	long BgL_arg1658z00_1862;

																	BgL_arg1658z00_1862 =
																		(
																		(long) CINT(STRUCT_REF(BgL_tablez00_119,
																				(int) (0L))) - 1L);
																	{	/* Llib/weakhash.scm 709 */
																		obj_t BgL_auxz00_6441;
																		int BgL_tmpz00_6439;

																		BgL_auxz00_6441 = BINT(BgL_arg1658z00_1862);
																		BgL_tmpz00_6439 = (int) (0L);
																		STRUCT_SET(BgL_tablez00_119,
																			BgL_tmpz00_6439, BgL_auxz00_6441);
																}}
																return ((bool_t) 1);
															}
														else
															{
																obj_t BgL_prevz00_6446;
																obj_t BgL_bucketz00_6444;

																BgL_bucketz00_6444 = CDR(BgL_bucketz00_1854);
																BgL_prevz00_6446 = BgL_bucketz00_1854;
																BgL_prevz00_1855 = BgL_prevz00_6446;
																BgL_bucketz00_1854 = BgL_bucketz00_6444;
																goto BgL_zc3z04anonymousza31648ze3z87_1856;
															}
													}
												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_1871;

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

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

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

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

									BgL_arg1258z00_3543 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_3541, BgL_keyz00_122);
									{	/* Llib/weakhash.scm 721 */
										long BgL_nz00_3545;

										BgL_nz00_3545 = (long) CINT(BgL_arg1258z00_3543);
										if ((BgL_nz00_3545 < 0L))
											{	/* Llib/weakhash.scm 721 */
												BgL_arg1674z00_1883 = NEG(BgL_nz00_3545);
											}
										else
											{	/* Llib/weakhash.scm 721 */
												BgL_arg1674z00_1883 = BgL_nz00_3545;
											}
									}
								}
							else
								{	/* Llib/weakhash.scm 721 */
									if ((BgL_hashnz00_3541 == BGl_symbol2180z00zz__weakhashz00))
										{	/* Llib/weakhash.scm 721 */
											BgL_arg1674z00_1883 =
												BGl_getzd2hashnumberzd2persistentz00zz__hashz00
												(BgL_keyz00_122);
										}
									else
										{	/* Llib/weakhash.scm 721 */
											BgL_arg1674z00_1883 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_122);
										}
								}
						}
						{	/* Llib/weakhash.scm 721 */
							long BgL_n1z00_3549;
							long BgL_n2z00_3550;

							BgL_n1z00_3549 = BgL_arg1674z00_1883;
							BgL_n2z00_3550 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1871));
							{	/* Llib/weakhash.scm 721 */
								bool_t BgL_test2476z00_6467;

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

									BgL_arg1960z00_3552 =
										(((BgL_n1z00_3549) | (BgL_n2z00_3550)) & -2147483648);
									BgL_test2476z00_6467 = (BgL_arg1960z00_3552 == 0L);
								}
								if (BgL_test2476z00_6467)
									{	/* Llib/weakhash.scm 721 */
										int32_t BgL_arg1956z00_3553;

										{	/* Llib/weakhash.scm 721 */
											int32_t BgL_arg1957z00_3554;
											int32_t BgL_arg1959z00_3555;

											BgL_arg1957z00_3554 = (int32_t) (BgL_n1z00_3549);
											BgL_arg1959z00_3555 = (int32_t) (BgL_n2z00_3550);
											BgL_arg1956z00_3553 =
												(BgL_arg1957z00_3554 % BgL_arg1959z00_3555);
										}
										{	/* Llib/weakhash.scm 721 */
											long BgL_arg2069z00_3560;

											BgL_arg2069z00_3560 = (long) (BgL_arg1956z00_3553);
											BgL_bucketzd2numzd2_1873 = (long) (BgL_arg2069z00_3560);
									}}
								else
									{	/* Llib/weakhash.scm 721 */
										BgL_bucketzd2numzd2_1873 =
											(BgL_n1z00_3549 % BgL_n2z00_3550);
									}
							}
						}
					}
					{	/* Llib/weakhash.scm 721 */
						obj_t BgL_bucketz00_1874;

						BgL_bucketz00_1874 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1871), BgL_bucketzd2numzd2_1873);
						{	/* Llib/weakhash.scm 722 */
							obj_t BgL_foundz00_1875;

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

								{
									int BgL_tmpz00_6478;

									BgL_tmpz00_6478 = (int) (2L);
									BgL_zc3z04anonymousza31672ze3z87_4257 =
										MAKE_L_PROCEDURE
										(BGl_z62zc3z04anonymousza31672ze3ze5zz__weakhashz00,
										BgL_tmpz00_6478);
								}
								PROCEDURE_L_SET(BgL_zc3z04anonymousza31672ze3z87_4257,
									(int) (0L), BgL_tablez00_121);
								PROCEDURE_L_SET(BgL_zc3z04anonymousza31672ze3z87_4257,
									(int) (1L), BgL_keyz00_122);
								BgL_foundz00_1875 =
									BGl_traversezd2bucketszd2zz__weakhashz00(BgL_tablez00_121,
									BgL_bucketsz00_1871, BgL_bucketzd2numzd2_1873,
									BgL_zc3z04anonymousza31672ze3z87_4257);
							}
							{	/* Llib/weakhash.scm 723 */

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

	}



/* &<@anonymous:1672> */
	obj_t BGl_z62zc3z04anonymousza31672ze3ze5zz__weakhashz00(obj_t
		BgL_envz00_4258, obj_t BgL_bkeyz00_4261, obj_t BgL_valz00_4262,
		obj_t BgL_bucketz00_4263)
	{
		{	/* Llib/weakhash.scm 725 */
			{	/* Llib/weakhash.scm 726 */
				obj_t BgL_tablez00_4259;
				obj_t BgL_keyz00_4260;

				BgL_tablez00_4259 =
					((obj_t) PROCEDURE_L_REF(BgL_envz00_4258, (int) (0L)));
				BgL_keyz00_4260 = PROCEDURE_L_REF(BgL_envz00_4258, (int) (1L));
				{	/* Llib/weakhash.scm 726 */
					bool_t BgL_test2478z00_6493;

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

						BgL_eqtz00_4351 = STRUCT_REF(BgL_tablez00_4259, (int) (3L));
						if (PROCEDUREP(BgL_eqtz00_4351))
							{	/* Llib/weakhash.scm 726 */
								BgL_test2478z00_6493 =
									CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_4351, BgL_keyz00_4260,
										BgL_bkeyz00_4261));
							}
						else
							{	/* Llib/weakhash.scm 726 */
								if ((BgL_keyz00_4260 == BgL_bkeyz00_4261))
									{	/* Llib/weakhash.scm 726 */
										BgL_test2478z00_6493 = ((bool_t) 1);
									}
								else
									{	/* Llib/weakhash.scm 726 */
										if (STRINGP(BgL_keyz00_4260))
											{	/* Llib/weakhash.scm 726 */
												if (STRINGP(BgL_bkeyz00_4261))
													{	/* Llib/weakhash.scm 726 */
														long BgL_l1z00_4352;

														BgL_l1z00_4352 = STRING_LENGTH(BgL_keyz00_4260);
														if (
															(BgL_l1z00_4352 ==
																STRING_LENGTH(BgL_bkeyz00_4261)))
															{	/* Llib/weakhash.scm 726 */
																int BgL_arg1839z00_4353;

																{	/* Llib/weakhash.scm 726 */
																	char *BgL_auxz00_6516;
																	char *BgL_tmpz00_6514;

																	BgL_auxz00_6516 =
																		BSTRING_TO_STRING(BgL_bkeyz00_4261);
																	BgL_tmpz00_6514 =
																		BSTRING_TO_STRING(BgL_keyz00_4260);
																	BgL_arg1839z00_4353 =
																		memcmp(BgL_tmpz00_6514, BgL_auxz00_6516,
																		BgL_l1z00_4352);
																}
																BgL_test2478z00_6493 =
																	((long) (BgL_arg1839z00_4353) == 0L);
															}
														else
															{	/* Llib/weakhash.scm 726 */
																BgL_test2478z00_6493 = ((bool_t) 0);
															}
													}
												else
													{	/* Llib/weakhash.scm 726 */
														BgL_test2478z00_6493 = ((bool_t) 0);
													}
											}
										else
											{	/* Llib/weakhash.scm 726 */
												BgL_test2478z00_6493 = ((bool_t) 0);
											}
									}
							}
					}
					if (BgL_test2478z00_6493)
						{	/* 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_4264, obj_t BgL_tablez00_4265, obj_t BgL_keyz00_4266)
	{
		{	/* Llib/weakhash.scm 734 */
			{	/* Llib/weakhash.scm 735 */
				obj_t BgL_auxz00_6527;

				if (STRUCTP(BgL_tablez00_4265))
					{	/* Llib/weakhash.scm 735 */
						BgL_auxz00_6527 = BgL_tablez00_4265;
					}
				else
					{
						obj_t BgL_auxz00_6530;

						BgL_auxz00_6530 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(29319L), BGl_string2187z00zz__weakhashz00,
							BGl_string2170z00zz__weakhashz00, BgL_tablez00_4265);
						FAILURE(BgL_auxz00_6530, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2removez12z12zz__weakhashz00(BgL_auxz00_6527,
					BgL_keyz00_4266);
			}
		}

	}



/* 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_1886;

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

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

						{
							long BgL_iz00_1890;
							long BgL_siza7eza7_1891;
							bool_t BgL_expandz00_1892;

							BgL_iz00_1890 = 0L;
							BgL_siza7eza7_1891 = 0L;
							BgL_expandz00_1892 = ((bool_t) 0);
						BgL_zc3z04anonymousza31676ze3z87_1893:
							if (
								(BgL_iz00_1890 <
									VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_1886))))
								{	/* Llib/weakhash.scm 754 */
									long BgL_countz00_1895;

									BgL_countz00_1895 = 0L;
									{	/* Llib/weakhash.scm 756 */
										obj_t BgL_arg1681z00_1896;

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

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

												BgL_g1120z00_1898 =
													VECTOR_REF(
													((obj_t) BgL_oldzd2buckszd2_1886), BgL_iz00_1890);
												{
													obj_t BgL_l1116z00_1900;
													obj_t BgL_h1117z00_1901;

													BgL_l1116z00_1900 = BgL_g1120z00_1898;
													BgL_h1117z00_1901 = BgL_hook1119z00_1897;
												BgL_zc3z04anonymousza31682ze3z87_1902:
													if (NULLP(BgL_l1116z00_1900))
														{	/* Llib/weakhash.scm 761 */
															BgL_arg1681z00_1896 = CDR(BgL_hook1119z00_1897);
														}
													else
														{	/* Llib/weakhash.scm 761 */
															bool_t BgL_test2488z00_6550;

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

																BgL_cellz00_1911 =
																	CAR(((obj_t) BgL_l1116z00_1900));
																{	/* Llib/weakhash.scm 757 */
																	obj_t BgL_keyz00_1912;

																	BgL_keyz00_1912 =
																		bgl_weakptr_data(
																		((obj_t) BgL_cellz00_1911));
																	if ((BgL_keyz00_1912 == BUNSPEC))
																		{	/* Llib/weakhash.scm 758 */
																			BgL_test2488z00_6550 = ((bool_t) 0);
																		}
																	else
																		{	/* Llib/weakhash.scm 758 */
																			BgL_countz00_1895 =
																				(BgL_countz00_1895 + 1L);
																			BgL_test2488z00_6550 =
																				CBOOL(BgL_keyz00_1912);
																		}
																}
															}
															if (BgL_test2488z00_6550)
																{	/* Llib/weakhash.scm 761 */
																	obj_t BgL_nh1118z00_1907;

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

																		BgL_arg1689z00_1909 =
																			CAR(((obj_t) BgL_l1116z00_1900));
																		BgL_nh1118z00_1907 =
																			MAKE_YOUNG_PAIR(BgL_arg1689z00_1909,
																			BNIL);
																	}
																	SET_CDR(BgL_h1117z00_1901,
																		BgL_nh1118z00_1907);
																	{	/* Llib/weakhash.scm 761 */
																		obj_t BgL_arg1687z00_1908;

																		BgL_arg1687z00_1908 =
																			CDR(((obj_t) BgL_l1116z00_1900));
																		{
																			obj_t BgL_h1117z00_6566;
																			obj_t BgL_l1116z00_6565;

																			BgL_l1116z00_6565 = BgL_arg1687z00_1908;
																			BgL_h1117z00_6566 = BgL_nh1118z00_1907;
																			BgL_h1117z00_1901 = BgL_h1117z00_6566;
																			BgL_l1116z00_1900 = BgL_l1116z00_6565;
																			goto
																				BgL_zc3z04anonymousza31682ze3z87_1902;
																		}
																	}
																}
															else
																{	/* Llib/weakhash.scm 761 */
																	obj_t BgL_arg1690z00_1910;

																	BgL_arg1690z00_1910 =
																		CDR(((obj_t) BgL_l1116z00_1900));
																	{
																		obj_t BgL_l1116z00_6569;

																		BgL_l1116z00_6569 = BgL_arg1690z00_1910;
																		BgL_l1116z00_1900 = BgL_l1116z00_6569;
																		goto BgL_zc3z04anonymousza31682ze3z87_1902;
																	}
																}
														}
												}
											}
										}
										VECTOR_SET(
											((obj_t) BgL_oldzd2buckszd2_1886), BgL_iz00_1890,
											BgL_arg1681z00_1896);
									}
									{	/* Llib/weakhash.scm 762 */
										long BgL_arg1691z00_1914;
										long BgL_arg1692z00_1915;
										bool_t BgL_arg1697z00_1916;

										BgL_arg1691z00_1914 = (BgL_iz00_1890 + 1L);
										BgL_arg1692z00_1915 =
											(BgL_siza7eza7_1891 + BgL_countz00_1895);
										if (BgL_expandz00_1892)
											{	/* Llib/weakhash.scm 763 */
												BgL_arg1697z00_1916 = BgL_expandz00_1892;
											}
										else
											{	/* Llib/weakhash.scm 763 */
												BgL_arg1697z00_1916 =
													(BgL_countz00_1895 >
													(long) CINT(BgL_maxzd2bucketzd2lenz00_1888));
											}
										{
											bool_t BgL_expandz00_6579;
											long BgL_siza7eza7_6578;
											long BgL_iz00_6577;

											BgL_iz00_6577 = BgL_arg1691z00_1914;
											BgL_siza7eza7_6578 = BgL_arg1692z00_1915;
											BgL_expandz00_6579 = BgL_arg1697z00_1916;
											BgL_expandz00_1892 = BgL_expandz00_6579;
											BgL_siza7eza7_1891 = BgL_siza7eza7_6578;
											BgL_iz00_1890 = BgL_iz00_6577;
											goto BgL_zc3z04anonymousza31676ze3z87_1893;
										}
									}
								}
							else
								{	/* Llib/weakhash.scm 753 */
									if (BgL_expandz00_1892)
										{	/* Llib/weakhash.scm 765 */
											long BgL_newzd2lenzd2_1918;

											BgL_newzd2lenzd2_1918 =
												(2L * VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_1886)));
											{	/* Llib/weakhash.scm 765 */
												obj_t BgL_maxzd2lenzd2_1919;

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

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

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

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

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

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

																		if (INTEGERP(BgL_a1121z00_1923))
																			{	/* Llib/weakhash.scm 768 */
																				BgL_test2492z00_6590 =
																					INTEGERP(BgL_b1122z00_1924);
																			}
																		else
																			{	/* Llib/weakhash.scm 768 */
																				BgL_test2492z00_6590 = ((bool_t) 0);
																			}
																		if (BgL_test2492z00_6590)
																			{	/* Llib/weakhash.scm 768 */
																				obj_t BgL_tmpz00_3610;

																				BgL_tmpz00_3610 = BINT(0L);
																				if (BGL_MULFX_OV(BgL_a1121z00_1923,
																						BgL_b1122z00_1924, BgL_tmpz00_3610))
																					{	/* Llib/weakhash.scm 768 */
																						BgL_nmaxz00_1920 =
																							bgl_bignum_mul(bgl_long_to_bignum(
																								(long) CINT(BgL_a1121z00_1923)),
																							bgl_long_to_bignum(
																								(long)
																								CINT(BgL_b1122z00_1924)));
																					}
																				else
																					{	/* Llib/weakhash.scm 768 */
																						BgL_nmaxz00_1920 = BgL_tmpz00_3610;
																					}
																			}
																		else
																			{	/* Llib/weakhash.scm 768 */
																				BgL_nmaxz00_1920 =
																					BGl_2za2za2zz__r4_numbers_6_5z00
																					(BgL_a1121z00_1923,
																					BgL_b1122z00_1924);
																			}
																	}
																}
															}
														}
														{	/* Llib/weakhash.scm 771 */
															obj_t BgL_arg1698z00_1921;

															if (REALP(BgL_nmaxz00_1920))
																{	/* Llib/weakhash.scm 771 */
																	BgL_arg1698z00_1921 =
																		BINT(
																		(long) (REAL_TO_DOUBLE(BgL_nmaxz00_1920)));
																}
															else
																{	/* Llib/weakhash.scm 771 */
																	BgL_arg1698z00_1921 = BgL_nmaxz00_1920;
																}
															{	/* Llib/weakhash.scm 770 */
																int BgL_tmpz00_6608;

																BgL_tmpz00_6608 = (int) (1L);
																STRUCT_SET(BgL_tablez00_125, BgL_tmpz00_6608,
																	BgL_arg1698z00_1921);
													}}}
													{	/* Llib/weakhash.scm 773 */
														bool_t BgL_test2496z00_6611;

														if (((long) CINT(BgL_maxzd2lenzd2_1919) < 0L))
															{	/* Llib/weakhash.scm 773 */
																BgL_test2496z00_6611 = ((bool_t) 1);
															}
														else
															{	/* Llib/weakhash.scm 773 */
																BgL_test2496z00_6611 =
																	(BgL_newzd2lenzd2_1918 <=
																	(long) CINT(BgL_maxzd2lenzd2_1919));
															}
														if (BgL_test2496z00_6611)
															{	/* Llib/weakhash.scm 774 */
																obj_t BgL_newzd2buckszd2_1928;

																BgL_newzd2buckszd2_1928 =
																	make_vector(BgL_newzd2lenzd2_1918, BNIL);
																{	/* Llib/weakhash.scm 775 */
																	int BgL_tmpz00_6618;

																	BgL_tmpz00_6618 = (int) (2L);
																	STRUCT_SET(BgL_tablez00_125, BgL_tmpz00_6618,
																		BgL_newzd2buckszd2_1928);
																}
																{
																	long BgL_iz00_1930;

																	BgL_iz00_1930 = 0L;
																BgL_zc3z04anonymousza31703ze3z87_1931:
																	if (
																		(BgL_iz00_1930 <
																			VECTOR_LENGTH(
																				((obj_t) BgL_oldzd2buckszd2_1886))))
																		{	/* Llib/weakhash.scm 778 */
																			{	/* Llib/weakhash.scm 779 */
																				obj_t BgL_g1125z00_1933;

																				BgL_g1125z00_1933 =
																					VECTOR_REF(
																					((obj_t) BgL_oldzd2buckszd2_1886),
																					BgL_iz00_1930);
																				{
																					obj_t BgL_l1123z00_1935;

																					BgL_l1123z00_1935 = BgL_g1125z00_1933;
																				BgL_zc3z04anonymousza31705ze3z87_1936:
																					if (PAIRP(BgL_l1123z00_1935))
																						{	/* Llib/weakhash.scm 786 */
																							{	/* Llib/weakhash.scm 780 */
																								obj_t BgL_cellz00_1938;

																								BgL_cellz00_1938 =
																									CAR(BgL_l1123z00_1935);
																								{	/* Llib/weakhash.scm 780 */
																									obj_t BgL_keyz00_1939;

																									BgL_keyz00_1939 =
																										bgl_weakptr_data(
																										((obj_t) BgL_cellz00_1938));
																									{	/* Llib/weakhash.scm 781 */
																										long BgL_nz00_1940;

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

																											BgL_hashnz00_3630 =
																												STRUCT_REF
																												(BgL_tablez00_125,
																												(int) (4L));
																											if (PROCEDUREP
																												(BgL_hashnz00_3630))
																												{	/* Llib/weakhash.scm 781 */
																													obj_t
																														BgL_arg1258z00_3632;
																													BgL_arg1258z00_3632 =
																														BGL_PROCEDURE_CALL1
																														(BgL_hashnz00_3630,
																														BgL_keyz00_1939);
																													{	/* Llib/weakhash.scm 781 */
																														long BgL_nz00_3634;

																														BgL_nz00_3634 =
																															(long)
																															CINT
																															(BgL_arg1258z00_3632);
																														if ((BgL_nz00_3634 <
																																0L))
																															{	/* Llib/weakhash.scm 781 */
																																BgL_nz00_1940 =
																																	NEG
																																	(BgL_nz00_3634);
																															}
																														else
																															{	/* Llib/weakhash.scm 781 */
																																BgL_nz00_1940 =
																																	BgL_nz00_3634;
																															}
																													}
																												}
																											else
																												{	/* Llib/weakhash.scm 781 */
																													if (
																														(BgL_hashnz00_3630
																															==
																															BGl_symbol2180z00zz__weakhashz00))
																														{	/* Llib/weakhash.scm 781 */
																															BgL_nz00_1940 =
																																BGl_getzd2hashnumberzd2persistentz00zz__hashz00
																																(BgL_keyz00_1939);
																														}
																													else
																														{	/* Llib/weakhash.scm 781 */
																															BgL_nz00_1940 =
																																BGl_getzd2hashnumberzd2zz__hashz00
																																(BgL_keyz00_1939);
																														}
																												}
																										}
																										{	/* Llib/weakhash.scm 781 */
																											long BgL_hz00_1941;

																											{	/* Llib/weakhash.scm 783 */
																												long BgL_n1z00_3638;
																												long BgL_n2z00_3639;

																												BgL_n1z00_3638 =
																													BgL_nz00_1940;
																												BgL_n2z00_3639 =
																													BgL_newzd2lenzd2_1918;
																												{	/* Llib/weakhash.scm 783 */
																													bool_t
																														BgL_test2503z00_6648;
																													{	/* Llib/weakhash.scm 783 */
																														long
																															BgL_arg1960z00_3641;
																														BgL_arg1960z00_3641
																															=
																															(((BgL_n1z00_3638)
																																|
																																(BgL_n2z00_3639))
																															& -2147483648);
																														BgL_test2503z00_6648
																															=
																															(BgL_arg1960z00_3641
																															== 0L);
																													}
																													if (BgL_test2503z00_6648)
																														{	/* Llib/weakhash.scm 783 */
																															int32_t
																																BgL_arg1956z00_3642;
																															{	/* Llib/weakhash.scm 783 */
																																int32_t
																																	BgL_arg1957z00_3643;
																																int32_t
																																	BgL_arg1959z00_3644;
																																BgL_arg1957z00_3643
																																	=
																																	(int32_t)
																																	(BgL_n1z00_3638);
																																BgL_arg1959z00_3644
																																	=
																																	(int32_t)
																																	(BgL_n2z00_3639);
																																BgL_arg1956z00_3642
																																	=
																																	(BgL_arg1957z00_3643
																																	%
																																	BgL_arg1959z00_3644);
																															}
																															{	/* Llib/weakhash.scm 783 */
																																long
																																	BgL_arg2069z00_3649;
																																BgL_arg2069z00_3649
																																	=
																																	(long)
																																	(BgL_arg1956z00_3642);
																																BgL_hz00_1941 =
																																	(long)
																																	(BgL_arg2069z00_3649);
																														}}
																													else
																														{	/* Llib/weakhash.scm 783 */
																															BgL_hz00_1941 =
																																(BgL_n1z00_3638
																																%
																																BgL_n2z00_3639);
																														}
																												}
																											}
																											{	/* Llib/weakhash.scm 783 */

																												{	/* Llib/weakhash.scm 785 */
																													obj_t
																														BgL_arg1707z00_1942;
																													BgL_arg1707z00_1942 =
																														MAKE_YOUNG_PAIR
																														(BgL_cellz00_1938,
																														VECTOR_REF
																														(BgL_newzd2buckszd2_1928,
																															BgL_hz00_1941));
																													VECTOR_SET
																														(BgL_newzd2buckszd2_1928,
																														BgL_hz00_1941,
																														BgL_arg1707z00_1942);
																												}
																											}
																										}
																									}
																								}
																							}
																							{
																								obj_t BgL_l1123z00_6660;

																								BgL_l1123z00_6660 =
																									CDR(BgL_l1123z00_1935);
																								BgL_l1123z00_1935 =
																									BgL_l1123z00_6660;
																								goto
																									BgL_zc3z04anonymousza31705ze3z87_1936;
																							}
																						}
																					else
																						{	/* Llib/weakhash.scm 786 */
																							((bool_t) 1);
																						}
																				}
																			}
																			{
																				long BgL_iz00_6662;

																				BgL_iz00_6662 = (BgL_iz00_1930 + 1L);
																				BgL_iz00_1930 = BgL_iz00_6662;
																				goto
																					BgL_zc3z04anonymousza31703ze3z87_1931;
																			}
																		}
																	else
																		{	/* Llib/weakhash.scm 789 */
																			obj_t BgL_xz00_4307;

																			{	/* Llib/weakhash.scm 789 */
																				obj_t BgL_auxz00_6666;
																				int BgL_tmpz00_6664;

																				BgL_auxz00_6666 =
																					BINT(BgL_siza7eza7_1891);
																				BgL_tmpz00_6664 = (int) (0L);
																				BgL_xz00_4307 =
																					STRUCT_SET(BgL_tablez00_125,
																					BgL_tmpz00_6664, BgL_auxz00_6666);
																			}
																			return BUNSPEC;
																		}
																}
															}
														else
															{	/* Llib/weakhash.scm 793 */
																obj_t BgL_arg1711z00_1948;

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

																	BgL_arg1712z00_1949 =
																		BGl_hashtablezd2siza7ez75zz__hashz00
																		(BgL_tablez00_125);
																	{	/* Llib/weakhash.scm 791 */
																		obj_t BgL_list1713z00_1950;

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

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

																				BgL_arg1715z00_1952 =
																					MAKE_YOUNG_PAIR(BINT
																					(BgL_arg1712z00_1949), BNIL);
																				BgL_arg1714z00_1951 =
																					MAKE_YOUNG_PAIR(BgL_maxzd2lenzd2_1919,
																					BgL_arg1715z00_1952);
																			}
																			BgL_list1713z00_1950 =
																				MAKE_YOUNG_PAIR(BINT
																				(BgL_newzd2lenzd2_1918),
																				BgL_arg1714z00_1951);
																		}
																		BgL_arg1711z00_1948 =
																			BGl_formatz00zz__r4_output_6_10_3z00
																			(BGl_string2188z00zz__weakhashz00,
																			BgL_list1713z00_1950);
																}}
																return
																	BGl_errorz00zz__errorz00
																	(BGl_string2189z00zz__weakhashz00,
																	BgL_arg1711z00_1948, 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_1957;

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

						BgL_newzd2buckszd2lenz00_1959 =
							(2L * VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_1957)));
						{	/* Llib/weakhash.scm 800 */
							obj_t BgL_newzd2buckszd2_1960;

							BgL_newzd2buckszd2_1960 =
								make_vector(BgL_newzd2buckszd2lenz00_1959, BNIL);
							{	/* Llib/weakhash.scm 800 */
								obj_t BgL_countz00_1961;

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

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

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

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

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

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

														if (INTEGERP(BgL_a1126z00_1965))
															{	/* Llib/weakhash.scm 800 */
																BgL_test2505z00_6694 =
																	INTEGERP(BgL_b1127z00_1966);
															}
														else
															{	/* Llib/weakhash.scm 800 */
																BgL_test2505z00_6694 = ((bool_t) 0);
															}
														if (BgL_test2505z00_6694)
															{	/* Llib/weakhash.scm 800 */
																obj_t BgL_tmpz00_3668;

																BgL_tmpz00_3668 = BINT(0L);
																if (BGL_MULFX_OV(BgL_a1126z00_1965,
																		BgL_b1127z00_1966, BgL_tmpz00_3668))
																	{	/* Llib/weakhash.scm 800 */
																		BgL_nmaxz00_1962 =
																			bgl_bignum_mul(bgl_long_to_bignum(
																				(long) CINT(BgL_a1126z00_1965)),
																			bgl_long_to_bignum(
																				(long) CINT(BgL_b1127z00_1966)));
																	}
																else
																	{	/* Llib/weakhash.scm 800 */
																		BgL_nmaxz00_1962 = BgL_tmpz00_3668;
																	}
															}
														else
															{	/* Llib/weakhash.scm 800 */
																BgL_nmaxz00_1962 =
																	BGl_2za2za2zz__r4_numbers_6_5z00
																	(BgL_a1126z00_1965, BgL_b1127z00_1966);
															}
													}
												}
											}
										}
										{	/* Llib/weakhash.scm 800 */
											obj_t BgL_arg1718z00_1963;

											if (REALP(BgL_nmaxz00_1962))
												{	/* Llib/weakhash.scm 800 */
													BgL_arg1718z00_1963 =
														BINT((long) (REAL_TO_DOUBLE(BgL_nmaxz00_1962)));
												}
											else
												{	/* Llib/weakhash.scm 800 */
													BgL_arg1718z00_1963 = BgL_nmaxz00_1962;
												}
											{	/* Llib/weakhash.scm 800 */
												int BgL_tmpz00_6712;

												BgL_tmpz00_6712 = (int) (1L);
												STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6712,
													BgL_arg1718z00_1963);
									}}}
									{	/* Llib/weakhash.scm 800 */
										int BgL_tmpz00_6715;

										BgL_tmpz00_6715 = (int) (2L);
										STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6715,
											BgL_newzd2buckszd2_1960);
									}
									{
										long BgL_iz00_1969;

										BgL_iz00_1969 = 0L;
									BgL_zc3z04anonymousza31721ze3z87_1970:
										if (
											(BgL_iz00_1969 <
												VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_1957))))
											{	/* Llib/weakhash.scm 800 */
												{	/* Llib/weakhash.scm 800 */
													obj_t BgL_g1130z00_1972;

													BgL_g1130z00_1972 =
														VECTOR_REF(
														((obj_t) BgL_oldzd2buckszd2_1957), BgL_iz00_1969);
													{
														obj_t BgL_l1128z00_1974;

														BgL_l1128z00_1974 = BgL_g1130z00_1972;
													BgL_zc3z04anonymousza31723ze3z87_1975:
														if (PAIRP(BgL_l1128z00_1974))
															{	/* Llib/weakhash.scm 800 */
																{	/* Llib/weakhash.scm 818 */
																	obj_t BgL_cellz00_1977;

																	BgL_cellz00_1977 = CAR(BgL_l1128z00_1974);
																	{	/* Llib/weakhash.scm 818 */
																		obj_t BgL_keyz00_1978;

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

																			BgL_arg1728z00_1983 =
																				CAR(((obj_t) BgL_cellz00_1977));
																			BgL_keyz00_1978 =
																				bgl_weakptr_data(
																				((obj_t) BgL_arg1728z00_1983));
																		}
																		if ((BgL_keyz00_1978 == BUNSPEC))
																			{	/* Llib/weakhash.scm 819 */
																				BgL_countz00_1961 =
																					SUBFX(BgL_countz00_1961, BINT(1L));
																			}
																		else
																			{	/* Llib/weakhash.scm 821 */
																				long BgL_hz00_1979;

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

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

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

																								BgL_arg1258z00_3689 =
																									BGL_PROCEDURE_CALL1
																									(BgL_hashnz00_3687,
																									BgL_keyz00_1978);
																								{	/* Llib/weakhash.scm 822 */
																									long BgL_nz00_3691;

																									BgL_nz00_3691 =
																										(long)
																										CINT(BgL_arg1258z00_3689);
																									if ((BgL_nz00_3691 < 0L))
																										{	/* Llib/weakhash.scm 822 */
																											BgL_arg1727z00_1982 =
																												NEG(BgL_nz00_3691);
																										}
																									else
																										{	/* Llib/weakhash.scm 822 */
																											BgL_arg1727z00_1982 =
																												BgL_nz00_3691;
																										}
																								}
																							}
																						else
																							{	/* Llib/weakhash.scm 822 */
																								if (
																									(BgL_hashnz00_3687 ==
																										BGl_symbol2180z00zz__weakhashz00))
																									{	/* Llib/weakhash.scm 822 */
																										BgL_arg1727z00_1982 =
																											BGl_getzd2hashnumberzd2persistentz00zz__hashz00
																											(BgL_keyz00_1978);
																									}
																								else
																									{	/* Llib/weakhash.scm 822 */
																										BgL_arg1727z00_1982 =
																											BGl_getzd2hashnumberzd2zz__hashz00
																											(BgL_keyz00_1978);
																									}
																							}
																					}
																					{	/* Llib/weakhash.scm 821 */
																						long BgL_n1z00_3695;
																						long BgL_n2z00_3696;

																						BgL_n1z00_3695 =
																							BgL_arg1727z00_1982;
																						BgL_n2z00_3696 =
																							BgL_newzd2buckszd2lenz00_1959;
																						{	/* Llib/weakhash.scm 821 */
																							bool_t BgL_test2515z00_6751;

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

																								BgL_arg1960z00_3698 =
																									(((BgL_n1z00_3695) |
																										(BgL_n2z00_3696)) &
																									-2147483648);
																								BgL_test2515z00_6751 =
																									(BgL_arg1960z00_3698 == 0L);
																							}
																							if (BgL_test2515z00_6751)
																								{	/* Llib/weakhash.scm 821 */
																									int32_t BgL_arg1956z00_3699;

																									{	/* Llib/weakhash.scm 821 */
																										int32_t BgL_arg1957z00_3700;
																										int32_t BgL_arg1959z00_3701;

																										BgL_arg1957z00_3700 =
																											(int32_t)
																											(BgL_n1z00_3695);
																										BgL_arg1959z00_3701 =
																											(int32_t)
																											(BgL_n2z00_3696);
																										BgL_arg1956z00_3699 =
																											(BgL_arg1957z00_3700 %
																											BgL_arg1959z00_3701);
																									}
																									{	/* Llib/weakhash.scm 821 */
																										long BgL_arg2069z00_3706;

																										BgL_arg2069z00_3706 =
																											(long)
																											(BgL_arg1956z00_3699);
																										BgL_hz00_1979 =
																											(long)
																											(BgL_arg2069z00_3706);
																								}}
																							else
																								{	/* Llib/weakhash.scm 821 */
																									BgL_hz00_1979 =
																										(BgL_n1z00_3695 %
																										BgL_n2z00_3696);
																								}
																						}
																					}
																				}
																				{	/* Llib/weakhash.scm 827 */
																					obj_t BgL_arg1725z00_1980;

																					BgL_arg1725z00_1980 =
																						MAKE_YOUNG_PAIR(BgL_cellz00_1977,
																						VECTOR_REF(BgL_newzd2buckszd2_1960,
																							BgL_hz00_1979));
																					VECTOR_SET(BgL_newzd2buckszd2_1960,
																						BgL_hz00_1979, BgL_arg1725z00_1980);
																				}
																			}
																	}
																}
																{
																	obj_t BgL_l1128z00_6763;

																	BgL_l1128z00_6763 = CDR(BgL_l1128z00_1974);
																	BgL_l1128z00_1974 = BgL_l1128z00_6763;
																	goto BgL_zc3z04anonymousza31723ze3z87_1975;
																}
															}
														else
															{	/* Llib/weakhash.scm 800 */
																((bool_t) 1);
															}
													}
												}
												{
													long BgL_iz00_6765;

													BgL_iz00_6765 = (BgL_iz00_1969 + 1L);
													BgL_iz00_1969 = BgL_iz00_6765;
													goto BgL_zc3z04anonymousza31721ze3z87_1970;
												}
											}
										else
											{	/* Llib/weakhash.scm 800 */
												((bool_t) 0);
											}
									}
									{	/* Llib/weakhash.scm 800 */
										obj_t BgL_vz00_3714;

										BgL_vz00_3714 = BgL_countz00_1961;
										{	/* Llib/weakhash.scm 800 */
											obj_t BgL_xz00_4308;

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

												BgL_tmpz00_6767 = (int) (0L);
												BgL_xz00_4308 =
													STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6767,
													BgL_vz00_3714);
											}
											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_1990;

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

								BgL_newzd2buckszd2lenz00_1992 =
									(2L * VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_1990)));
								{	/* Llib/weakhash.scm 800 */
									obj_t BgL_newzd2buckszd2_1993;

									BgL_newzd2buckszd2_1993 =
										make_vector(BgL_newzd2buckszd2lenz00_1992, BNIL);
									{	/* Llib/weakhash.scm 800 */
										obj_t BgL_countz00_1994;

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

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

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

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

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

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

																if (INTEGERP(BgL_a1131z00_1998))
																	{	/* Llib/weakhash.scm 800 */
																		BgL_test2517z00_6787 =
																			INTEGERP(BgL_b1132z00_1999);
																	}
																else
																	{	/* Llib/weakhash.scm 800 */
																		BgL_test2517z00_6787 = ((bool_t) 0);
																	}
																if (BgL_test2517z00_6787)
																	{	/* Llib/weakhash.scm 800 */
																		obj_t BgL_tmpz00_3726;

																		BgL_tmpz00_3726 = BINT(0L);
																		if (BGL_MULFX_OV(BgL_a1131z00_1998,
																				BgL_b1132z00_1999, BgL_tmpz00_3726))
																			{	/* Llib/weakhash.scm 800 */
																				BgL_nmaxz00_1995 =
																					bgl_bignum_mul(bgl_long_to_bignum(
																						(long) CINT(BgL_a1131z00_1998)),
																					bgl_long_to_bignum(
																						(long) CINT(BgL_b1132z00_1999)));
																			}
																		else
																			{	/* Llib/weakhash.scm 800 */
																				BgL_nmaxz00_1995 = BgL_tmpz00_3726;
																			}
																	}
																else
																	{	/* Llib/weakhash.scm 800 */
																		BgL_nmaxz00_1995 =
																			BGl_2za2za2zz__r4_numbers_6_5z00
																			(BgL_a1131z00_1998, BgL_b1132z00_1999);
																	}
															}
														}
													}
												}
												{	/* Llib/weakhash.scm 800 */
													obj_t BgL_arg1733z00_1996;

													if (REALP(BgL_nmaxz00_1995))
														{	/* Llib/weakhash.scm 800 */
															BgL_arg1733z00_1996 =
																BINT((long) (REAL_TO_DOUBLE(BgL_nmaxz00_1995)));
														}
													else
														{	/* Llib/weakhash.scm 800 */
															BgL_arg1733z00_1996 = BgL_nmaxz00_1995;
														}
													{	/* Llib/weakhash.scm 800 */
														int BgL_tmpz00_6805;

														BgL_tmpz00_6805 = (int) (1L);
														STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6805,
															BgL_arg1733z00_1996);
											}}}
											{	/* Llib/weakhash.scm 800 */
												int BgL_tmpz00_6808;

												BgL_tmpz00_6808 = (int) (2L);
												STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6808,
													BgL_newzd2buckszd2_1993);
											}
											{
												long BgL_iz00_2002;

												BgL_iz00_2002 = 0L;
											BgL_zc3z04anonymousza31736ze3z87_2003:
												if (
													(BgL_iz00_2002 <
														VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_1990))))
													{	/* Llib/weakhash.scm 800 */
														{	/* Llib/weakhash.scm 800 */
															obj_t BgL_g1135z00_2005;

															BgL_g1135z00_2005 =
																VECTOR_REF(
																((obj_t) BgL_oldzd2buckszd2_1990),
																BgL_iz00_2002);
															{
																obj_t BgL_l1133z00_2007;

																BgL_l1133z00_2007 = BgL_g1135z00_2005;
															BgL_zc3z04anonymousza31738ze3z87_2008:
																if (PAIRP(BgL_l1133z00_2007))
																	{	/* Llib/weakhash.scm 800 */
																		{	/* Llib/weakhash.scm 831 */
																			obj_t BgL_cellz00_2010;

																			BgL_cellz00_2010 = CAR(BgL_l1133z00_2007);
																			{	/* Llib/weakhash.scm 831 */
																				obj_t BgL_dataz00_2011;

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

																					BgL_arg1744z00_2017 =
																						CDR(((obj_t) BgL_cellz00_2010));
																					BgL_dataz00_2011 =
																						bgl_weakptr_data(
																						((obj_t) BgL_arg1744z00_2017));
																				}
																				if ((BgL_dataz00_2011 == BUNSPEC))
																					{	/* Llib/weakhash.scm 832 */
																						BgL_countz00_1994 =
																							SUBFX(BgL_countz00_1994,
																							BINT(1L));
																					}
																				else
																					{	/* Llib/weakhash.scm 834 */
																						long BgL_hz00_2012;

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

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

																								BgL_arg1743z00_2016 =
																									CAR(
																									((obj_t) BgL_cellz00_2010));
																								{	/* Llib/weakhash.scm 835 */
																									obj_t BgL_hashnz00_3746;

																									BgL_hashnz00_3746 =
																										STRUCT_REF(BgL_tablez00_126,
																										(int) (4L));
																									if (PROCEDUREP
																										(BgL_hashnz00_3746))
																										{	/* Llib/weakhash.scm 835 */
																											obj_t BgL_arg1258z00_3748;

																											BgL_arg1258z00_3748 =
																												BGL_PROCEDURE_CALL1
																												(BgL_hashnz00_3746,
																												BgL_arg1743z00_2016);
																											{	/* Llib/weakhash.scm 835 */
																												long BgL_nz00_3750;

																												BgL_nz00_3750 =
																													(long)
																													CINT
																													(BgL_arg1258z00_3748);
																												if ((BgL_nz00_3750 <
																														0L))
																													{	/* Llib/weakhash.scm 835 */
																														BgL_arg1742z00_2015
																															=
																															NEG
																															(BgL_nz00_3750);
																													}
																												else
																													{	/* Llib/weakhash.scm 835 */
																														BgL_arg1742z00_2015
																															= BgL_nz00_3750;
																													}
																											}
																										}
																									else
																										{	/* Llib/weakhash.scm 835 */
																											if (
																												(BgL_hashnz00_3746 ==
																													BGl_symbol2180z00zz__weakhashz00))
																												{	/* Llib/weakhash.scm 835 */
																													BgL_arg1742z00_2015 =
																														BGl_getzd2hashnumberzd2persistentz00zz__hashz00
																														(BgL_arg1743z00_2016);
																												}
																											else
																												{	/* Llib/weakhash.scm 835 */
																													BgL_arg1742z00_2015 =
																														BGl_getzd2hashnumberzd2zz__hashz00
																														(BgL_arg1743z00_2016);
																												}
																										}
																								}
																							}
																							{	/* Llib/weakhash.scm 834 */
																								long BgL_n1z00_3754;
																								long BgL_n2z00_3755;

																								BgL_n1z00_3754 =
																									BgL_arg1742z00_2015;
																								BgL_n2z00_3755 =
																									BgL_newzd2buckszd2lenz00_1992;
																								{	/* Llib/weakhash.scm 834 */
																									bool_t BgL_test2527z00_6846;

																									{	/* Llib/weakhash.scm 834 */
																										long BgL_arg1960z00_3757;

																										BgL_arg1960z00_3757 =
																											(((BgL_n1z00_3754) |
																												(BgL_n2z00_3755)) &
																											-2147483648);
																										BgL_test2527z00_6846 =
																											(BgL_arg1960z00_3757 ==
																											0L);
																									}
																									if (BgL_test2527z00_6846)
																										{	/* Llib/weakhash.scm 834 */
																											int32_t
																												BgL_arg1956z00_3758;
																											{	/* Llib/weakhash.scm 834 */
																												int32_t
																													BgL_arg1957z00_3759;
																												int32_t
																													BgL_arg1959z00_3760;
																												BgL_arg1957z00_3759 =
																													(int32_t)
																													(BgL_n1z00_3754);
																												BgL_arg1959z00_3760 =
																													(int32_t)
																													(BgL_n2z00_3755);
																												BgL_arg1956z00_3758 =
																													(BgL_arg1957z00_3759 %
																													BgL_arg1959z00_3760);
																											}
																											{	/* Llib/weakhash.scm 834 */
																												long
																													BgL_arg2069z00_3765;
																												BgL_arg2069z00_3765 =
																													(long)
																													(BgL_arg1956z00_3758);
																												BgL_hz00_2012 =
																													(long)
																													(BgL_arg2069z00_3765);
																										}}
																									else
																										{	/* Llib/weakhash.scm 834 */
																											BgL_hz00_2012 =
																												(BgL_n1z00_3754 %
																												BgL_n2z00_3755);
																										}
																								}
																							}
																						}
																						{	/* Llib/weakhash.scm 841 */
																							obj_t BgL_arg1740z00_2013;

																							BgL_arg1740z00_2013 =
																								MAKE_YOUNG_PAIR
																								(BgL_cellz00_2010,
																								VECTOR_REF
																								(BgL_newzd2buckszd2_1993,
																									BgL_hz00_2012));
																							VECTOR_SET
																								(BgL_newzd2buckszd2_1993,
																								BgL_hz00_2012,
																								BgL_arg1740z00_2013);
																						}
																					}
																			}
																		}
																		{
																			obj_t BgL_l1133z00_6858;

																			BgL_l1133z00_6858 =
																				CDR(BgL_l1133z00_2007);
																			BgL_l1133z00_2007 = BgL_l1133z00_6858;
																			goto
																				BgL_zc3z04anonymousza31738ze3z87_2008;
																		}
																	}
																else
																	{	/* Llib/weakhash.scm 800 */
																		((bool_t) 1);
																	}
															}
														}
														{
															long BgL_iz00_6860;

															BgL_iz00_6860 = (BgL_iz00_2002 + 1L);
															BgL_iz00_2002 = BgL_iz00_6860;
															goto BgL_zc3z04anonymousza31736ze3z87_2003;
														}
													}
												else
													{	/* Llib/weakhash.scm 800 */
														((bool_t) 0);
													}
											}
											{	/* Llib/weakhash.scm 800 */
												obj_t BgL_vz00_3773;

												BgL_vz00_3773 = BgL_countz00_1994;
												{	/* Llib/weakhash.scm 800 */
													obj_t BgL_xz00_4309;

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

														BgL_tmpz00_6862 = (int) (0L);
														BgL_xz00_4309 =
															STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6862,
															BgL_vz00_3773);
													}
													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_2024;

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

										BgL_newzd2buckszd2lenz00_2026 =
											(2L * VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_2024)));
										{	/* Llib/weakhash.scm 800 */
											obj_t BgL_newzd2buckszd2_2027;

											BgL_newzd2buckszd2_2027 =
												make_vector(BgL_newzd2buckszd2lenz00_2026, BNIL);
											{	/* Llib/weakhash.scm 800 */
												obj_t BgL_countz00_2028;

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

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

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

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

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

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

																		if (INTEGERP(BgL_a1136z00_2032))
																			{	/* Llib/weakhash.scm 800 */
																				BgL_test2529z00_6882 =
																					INTEGERP(BgL_b1137z00_2033);
																			}
																		else
																			{	/* Llib/weakhash.scm 800 */
																				BgL_test2529z00_6882 = ((bool_t) 0);
																			}
																		if (BgL_test2529z00_6882)
																			{	/* Llib/weakhash.scm 800 */
																				obj_t BgL_tmpz00_3785;

																				BgL_tmpz00_3785 = BINT(0L);
																				if (BGL_MULFX_OV(BgL_a1136z00_2032,
																						BgL_b1137z00_2033, BgL_tmpz00_3785))
																					{	/* Llib/weakhash.scm 800 */
																						BgL_nmaxz00_2029 =
																							bgl_bignum_mul(bgl_long_to_bignum(
																								(long) CINT(BgL_a1136z00_2032)),
																							bgl_long_to_bignum(
																								(long)
																								CINT(BgL_b1137z00_2033)));
																					}
																				else
																					{	/* Llib/weakhash.scm 800 */
																						BgL_nmaxz00_2029 = BgL_tmpz00_3785;
																					}
																			}
																		else
																			{	/* Llib/weakhash.scm 800 */
																				BgL_nmaxz00_2029 =
																					BGl_2za2za2zz__r4_numbers_6_5z00
																					(BgL_a1136z00_2032,
																					BgL_b1137z00_2033);
																			}
																	}
																}
															}
														}
														{	/* Llib/weakhash.scm 800 */
															obj_t BgL_arg1750z00_2030;

															if (REALP(BgL_nmaxz00_2029))
																{	/* Llib/weakhash.scm 800 */
																	BgL_arg1750z00_2030 =
																		BINT(
																		(long) (REAL_TO_DOUBLE(BgL_nmaxz00_2029)));
																}
															else
																{	/* Llib/weakhash.scm 800 */
																	BgL_arg1750z00_2030 = BgL_nmaxz00_2029;
																}
															{	/* Llib/weakhash.scm 800 */
																int BgL_tmpz00_6900;

																BgL_tmpz00_6900 = (int) (1L);
																STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6900,
																	BgL_arg1750z00_2030);
													}}}
													{	/* Llib/weakhash.scm 800 */
														int BgL_tmpz00_6903;

														BgL_tmpz00_6903 = (int) (2L);
														STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6903,
															BgL_newzd2buckszd2_2027);
													}
													{
														long BgL_iz00_2036;

														BgL_iz00_2036 = 0L;
													BgL_zc3z04anonymousza31753ze3z87_2037:
														if (
															(BgL_iz00_2036 <
																VECTOR_LENGTH(
																	((obj_t) BgL_oldzd2buckszd2_2024))))
															{	/* Llib/weakhash.scm 800 */
																{	/* Llib/weakhash.scm 800 */
																	obj_t BgL_g1140z00_2039;

																	BgL_g1140z00_2039 =
																		VECTOR_REF(
																		((obj_t) BgL_oldzd2buckszd2_2024),
																		BgL_iz00_2036);
																	{
																		obj_t BgL_l1138z00_2041;

																		BgL_l1138z00_2041 = BgL_g1140z00_2039;
																	BgL_zc3z04anonymousza31755ze3z87_2042:
																		if (PAIRP(BgL_l1138z00_2041))
																			{	/* Llib/weakhash.scm 800 */
																				{	/* Llib/weakhash.scm 845 */
																					obj_t BgL_cellz00_2044;

																					BgL_cellz00_2044 =
																						CAR(BgL_l1138z00_2041);
																					{	/* Llib/weakhash.scm 845 */
																						obj_t BgL_keyz00_2045;
																						obj_t BgL_dataz00_2046;

																						{	/* Llib/weakhash.scm 845 */
																							obj_t BgL_arg1761z00_2052;

																							BgL_arg1761z00_2052 =
																								CAR(((obj_t) BgL_cellz00_2044));
																							BgL_keyz00_2045 =
																								bgl_weakptr_data(
																								((obj_t) BgL_arg1761z00_2052));
																						}
																						{	/* Llib/weakhash.scm 846 */
																							obj_t BgL_arg1762z00_2053;

																							BgL_arg1762z00_2053 =
																								CDR(((obj_t) BgL_cellz00_2044));
																							BgL_dataz00_2046 =
																								bgl_weakptr_data(
																								((obj_t) BgL_arg1762z00_2053));
																						}
																						{	/* Llib/weakhash.scm 847 */
																							bool_t BgL_test2535z00_6923;

																							if ((BgL_keyz00_2045 == BUNSPEC))
																								{	/* Llib/weakhash.scm 847 */
																									BgL_test2535z00_6923 =
																										((bool_t) 1);
																								}
																							else
																								{	/* Llib/weakhash.scm 847 */
																									BgL_test2535z00_6923 =
																										(BgL_dataz00_2046 ==
																										BUNSPEC);
																								}
																							if (BgL_test2535z00_6923)
																								{	/* Llib/weakhash.scm 847 */
																									BgL_countz00_2028 =
																										SUBFX(BgL_countz00_2028,
																										BINT(1L));
																								}
																							else
																								{	/* Llib/weakhash.scm 850 */
																									long BgL_hz00_2048;

																									{	/* Llib/weakhash.scm 851 */
																										long BgL_arg1760z00_2051;

																										{	/* Llib/weakhash.scm 851 */
																											obj_t BgL_hashnz00_3806;

																											BgL_hashnz00_3806 =
																												STRUCT_REF
																												(BgL_tablez00_126,
																												(int) (4L));
																											if (PROCEDUREP
																												(BgL_hashnz00_3806))
																												{	/* Llib/weakhash.scm 851 */
																													obj_t
																														BgL_arg1258z00_3808;
																													BgL_arg1258z00_3808 =
																														BGL_PROCEDURE_CALL1
																														(BgL_hashnz00_3806,
																														BgL_keyz00_2045);
																													{	/* Llib/weakhash.scm 851 */
																														long BgL_nz00_3810;

																														BgL_nz00_3810 =
																															(long)
																															CINT
																															(BgL_arg1258z00_3808);
																														if ((BgL_nz00_3810 <
																																0L))
																															{	/* Llib/weakhash.scm 851 */
																																BgL_arg1760z00_2051
																																	=
																																	NEG
																																	(BgL_nz00_3810);
																															}
																														else
																															{	/* Llib/weakhash.scm 851 */
																																BgL_arg1760z00_2051
																																	=
																																	BgL_nz00_3810;
																															}
																													}
																												}
																											else
																												{	/* Llib/weakhash.scm 851 */
																													if (
																														(BgL_hashnz00_3806
																															==
																															BGl_symbol2180z00zz__weakhashz00))
																														{	/* Llib/weakhash.scm 851 */
																															BgL_arg1760z00_2051
																																=
																																BGl_getzd2hashnumberzd2persistentz00zz__hashz00
																																(BgL_keyz00_2045);
																														}
																													else
																														{	/* Llib/weakhash.scm 851 */
																															BgL_arg1760z00_2051
																																=
																																BGl_getzd2hashnumberzd2zz__hashz00
																																(BgL_keyz00_2045);
																														}
																												}
																										}
																										{	/* Llib/weakhash.scm 850 */
																											long BgL_n1z00_3814;
																											long BgL_n2z00_3815;

																											BgL_n1z00_3814 =
																												BgL_arg1760z00_2051;
																											BgL_n2z00_3815 =
																												BgL_newzd2buckszd2lenz00_2026;
																											{	/* Llib/weakhash.scm 850 */
																												bool_t
																													BgL_test2540z00_6945;
																												{	/* Llib/weakhash.scm 850 */
																													long
																														BgL_arg1960z00_3817;
																													BgL_arg1960z00_3817 =
																														(((BgL_n1z00_3814) |
																															(BgL_n2z00_3815))
																														& -2147483648);
																													BgL_test2540z00_6945 =
																														(BgL_arg1960z00_3817
																														== 0L);
																												}
																												if (BgL_test2540z00_6945)
																													{	/* Llib/weakhash.scm 850 */
																														int32_t
																															BgL_arg1956z00_3818;
																														{	/* Llib/weakhash.scm 850 */
																															int32_t
																																BgL_arg1957z00_3819;
																															int32_t
																																BgL_arg1959z00_3820;
																															BgL_arg1957z00_3819
																																=
																																(int32_t)
																																(BgL_n1z00_3814);
																															BgL_arg1959z00_3820
																																=
																																(int32_t)
																																(BgL_n2z00_3815);
																															BgL_arg1956z00_3818
																																=
																																(BgL_arg1957z00_3819
																																%
																																BgL_arg1959z00_3820);
																														}
																														{	/* Llib/weakhash.scm 850 */
																															long
																																BgL_arg2069z00_3825;
																															BgL_arg2069z00_3825
																																=
																																(long)
																																(BgL_arg1956z00_3818);
																															BgL_hz00_2048 =
																																(long)
																																(BgL_arg2069z00_3825);
																													}}
																												else
																													{	/* Llib/weakhash.scm 850 */
																														BgL_hz00_2048 =
																															(BgL_n1z00_3814 %
																															BgL_n2z00_3815);
																													}
																											}
																										}
																									}
																									{	/* Llib/weakhash.scm 856 */
																										obj_t BgL_arg1758z00_2049;

																										BgL_arg1758z00_2049 =
																											MAKE_YOUNG_PAIR
																											(BgL_cellz00_2044,
																											VECTOR_REF
																											(BgL_newzd2buckszd2_2027,
																												BgL_hz00_2048));
																										VECTOR_SET
																											(BgL_newzd2buckszd2_2027,
																											BgL_hz00_2048,
																											BgL_arg1758z00_2049);
																									}
																								}
																						}
																					}
																				}
																				{
																					obj_t BgL_l1138z00_6957;

																					BgL_l1138z00_6957 =
																						CDR(BgL_l1138z00_2041);
																					BgL_l1138z00_2041 = BgL_l1138z00_6957;
																					goto
																						BgL_zc3z04anonymousza31755ze3z87_2042;
																				}
																			}
																		else
																			{	/* Llib/weakhash.scm 800 */
																				((bool_t) 1);
																			}
																	}
																}
																{
																	long BgL_iz00_6959;

																	BgL_iz00_6959 = (BgL_iz00_2036 + 1L);
																	BgL_iz00_2036 = BgL_iz00_6959;
																	goto BgL_zc3z04anonymousza31753ze3z87_2037;
																}
															}
														else
															{	/* Llib/weakhash.scm 800 */
																((bool_t) 0);
															}
													}
													{	/* Llib/weakhash.scm 800 */
														obj_t BgL_vz00_3833;

														BgL_vz00_3833 = BgL_countz00_2028;
														{	/* Llib/weakhash.scm 800 */
															obj_t BgL_xz00_4310;

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

																BgL_tmpz00_6961 = (int) (0L);
																BgL_xz00_4310 =
																	STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6961,
																	BgL_vz00_3833);
															}
															return BUNSPEC;
														}
													}
												}
											}
										}
									}
								}
							else
								{	/* Llib/weakhash.scm 800 */
									obj_t BgL_oldzd2buckszd2_2058;

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

										BgL_newzd2buckszd2lenz00_2060 =
											(2L * VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_2058)));
										{	/* Llib/weakhash.scm 800 */
											obj_t BgL_newzd2buckszd2_2061;

											BgL_newzd2buckszd2_2061 =
												make_vector(BgL_newzd2buckszd2lenz00_2060, BNIL);
											{	/* Llib/weakhash.scm 800 */
												obj_t BgL_countz00_2062;

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

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

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

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

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

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

																		if (INTEGERP(BgL_a1141z00_2066))
																			{	/* Llib/weakhash.scm 800 */
																				BgL_test2541z00_6976 =
																					INTEGERP(BgL_b1142z00_2067);
																			}
																		else
																			{	/* Llib/weakhash.scm 800 */
																				BgL_test2541z00_6976 = ((bool_t) 0);
																			}
																		if (BgL_test2541z00_6976)
																			{	/* Llib/weakhash.scm 800 */
																				obj_t BgL_tmpz00_3843;

																				BgL_tmpz00_3843 = BINT(0L);
																				if (BGL_MULFX_OV(BgL_a1141z00_2066,
																						BgL_b1142z00_2067, BgL_tmpz00_3843))
																					{	/* Llib/weakhash.scm 800 */
																						BgL_nmaxz00_2063 =
																							bgl_bignum_mul(bgl_long_to_bignum(
																								(long) CINT(BgL_a1141z00_2066)),
																							bgl_long_to_bignum(
																								(long)
																								CINT(BgL_b1142z00_2067)));
																					}
																				else
																					{	/* Llib/weakhash.scm 800 */
																						BgL_nmaxz00_2063 = BgL_tmpz00_3843;
																					}
																			}
																		else
																			{	/* Llib/weakhash.scm 800 */
																				BgL_nmaxz00_2063 =
																					BGl_2za2za2zz__r4_numbers_6_5z00
																					(BgL_a1141z00_2066,
																					BgL_b1142z00_2067);
																			}
																	}
																}
															}
														}
														{	/* Llib/weakhash.scm 800 */
															obj_t BgL_arg1765z00_2064;

															if (REALP(BgL_nmaxz00_2063))
																{	/* Llib/weakhash.scm 800 */
																	BgL_arg1765z00_2064 =
																		BINT(
																		(long) (REAL_TO_DOUBLE(BgL_nmaxz00_2063)));
																}
															else
																{	/* Llib/weakhash.scm 800 */
																	BgL_arg1765z00_2064 = BgL_nmaxz00_2063;
																}
															{	/* Llib/weakhash.scm 800 */
																int BgL_tmpz00_6994;

																BgL_tmpz00_6994 = (int) (1L);
																STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6994,
																	BgL_arg1765z00_2064);
													}}}
													{	/* Llib/weakhash.scm 800 */
														int BgL_tmpz00_6997;

														BgL_tmpz00_6997 = (int) (2L);
														STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_6997,
															BgL_newzd2buckszd2_2061);
													}
													{
														long BgL_iz00_2070;

														BgL_iz00_2070 = 0L;
													BgL_zc3z04anonymousza31768ze3z87_2071:
														if (
															(BgL_iz00_2070 <
																VECTOR_LENGTH(
																	((obj_t) BgL_oldzd2buckszd2_2058))))
															{	/* Llib/weakhash.scm 800 */
																{	/* Llib/weakhash.scm 800 */
																	obj_t BgL_g1145z00_2073;

																	BgL_g1145z00_2073 =
																		VECTOR_REF(
																		((obj_t) BgL_oldzd2buckszd2_2058),
																		BgL_iz00_2070);
																	{
																		obj_t BgL_l1143z00_2075;

																		BgL_l1143z00_2075 = BgL_g1145z00_2073;
																	BgL_zc3z04anonymousza31770ze3z87_2076:
																		if (PAIRP(BgL_l1143z00_2075))
																			{	/* Llib/weakhash.scm 800 */
																				{	/* Llib/weakhash.scm 860 */
																					obj_t BgL_cellz00_2078;

																					BgL_cellz00_2078 =
																						CAR(BgL_l1143z00_2075);
																					{	/* Llib/weakhash.scm 860 */
																						long BgL_hz00_2079;

																						{	/* Llib/weakhash.scm 862 */
																							long BgL_arg1775z00_2082;

																							{	/* Llib/weakhash.scm 862 */
																								obj_t BgL_arg1776z00_2083;

																								BgL_arg1776z00_2083 =
																									CAR(
																									((obj_t) BgL_cellz00_2078));
																								{	/* Llib/weakhash.scm 861 */
																									obj_t BgL_hashnz00_3860;

																									BgL_hashnz00_3860 =
																										STRUCT_REF(BgL_tablez00_126,
																										(int) (4L));
																									if (PROCEDUREP
																										(BgL_hashnz00_3860))
																										{	/* Llib/weakhash.scm 861 */
																											obj_t BgL_arg1258z00_3862;

																											BgL_arg1258z00_3862 =
																												BGL_PROCEDURE_CALL1
																												(BgL_hashnz00_3860,
																												BgL_arg1776z00_2083);
																											{	/* Llib/weakhash.scm 861 */
																												long BgL_nz00_3864;

																												BgL_nz00_3864 =
																													(long)
																													CINT
																													(BgL_arg1258z00_3862);
																												if ((BgL_nz00_3864 <
																														0L))
																													{	/* Llib/weakhash.scm 861 */
																														BgL_arg1775z00_2082
																															=
																															NEG
																															(BgL_nz00_3864);
																													}
																												else
																													{	/* Llib/weakhash.scm 861 */
																														BgL_arg1775z00_2082
																															= BgL_nz00_3864;
																													}
																											}
																										}
																									else
																										{	/* Llib/weakhash.scm 861 */
																											if (
																												(BgL_hashnz00_3860 ==
																													BGl_symbol2180z00zz__weakhashz00))
																												{	/* Llib/weakhash.scm 861 */
																													BgL_arg1775z00_2082 =
																														BGl_getzd2hashnumberzd2persistentz00zz__hashz00
																														(BgL_arg1776z00_2083);
																												}
																											else
																												{	/* Llib/weakhash.scm 861 */
																													BgL_arg1775z00_2082 =
																														BGl_getzd2hashnumberzd2zz__hashz00
																														(BgL_arg1776z00_2083);
																												}
																										}
																								}
																							}
																							{	/* Llib/weakhash.scm 860 */
																								long BgL_n1z00_3868;
																								long BgL_n2z00_3869;

																								BgL_n1z00_3868 =
																									BgL_arg1775z00_2082;
																								BgL_n2z00_3869 =
																									BgL_newzd2buckszd2lenz00_2060;
																								{	/* Llib/weakhash.scm 860 */
																									bool_t BgL_test2550z00_7027;

																									{	/* Llib/weakhash.scm 860 */
																										long BgL_arg1960z00_3871;

																										BgL_arg1960z00_3871 =
																											(((BgL_n1z00_3868) |
																												(BgL_n2z00_3869)) &
																											-2147483648);
																										BgL_test2550z00_7027 =
																											(BgL_arg1960z00_3871 ==
																											0L);
																									}
																									if (BgL_test2550z00_7027)
																										{	/* Llib/weakhash.scm 860 */
																											int32_t
																												BgL_arg1956z00_3872;
																											{	/* Llib/weakhash.scm 860 */
																												int32_t
																													BgL_arg1957z00_3873;
																												int32_t
																													BgL_arg1959z00_3874;
																												BgL_arg1957z00_3873 =
																													(int32_t)
																													(BgL_n1z00_3868);
																												BgL_arg1959z00_3874 =
																													(int32_t)
																													(BgL_n2z00_3869);
																												BgL_arg1956z00_3872 =
																													(BgL_arg1957z00_3873 %
																													BgL_arg1959z00_3874);
																											}
																											{	/* Llib/weakhash.scm 860 */
																												long
																													BgL_arg2069z00_3879;
																												BgL_arg2069z00_3879 =
																													(long)
																													(BgL_arg1956z00_3872);
																												BgL_hz00_2079 =
																													(long)
																													(BgL_arg2069z00_3879);
																										}}
																									else
																										{	/* Llib/weakhash.scm 860 */
																											BgL_hz00_2079 =
																												(BgL_n1z00_3868 %
																												BgL_n2z00_3869);
																										}
																								}
																							}
																						}
																						{	/* Llib/weakhash.scm 868 */
																							obj_t BgL_arg1772z00_2080;

																							BgL_arg1772z00_2080 =
																								MAKE_YOUNG_PAIR
																								(BgL_cellz00_2078,
																								VECTOR_REF
																								(BgL_newzd2buckszd2_2061,
																									BgL_hz00_2079));
																							VECTOR_SET
																								(BgL_newzd2buckszd2_2061,
																								BgL_hz00_2079,
																								BgL_arg1772z00_2080);
																						}
																					}
																				}
																				{
																					obj_t BgL_l1143z00_7039;

																					BgL_l1143z00_7039 =
																						CDR(BgL_l1143z00_2075);
																					BgL_l1143z00_2075 = BgL_l1143z00_7039;
																					goto
																						BgL_zc3z04anonymousza31770ze3z87_2076;
																				}
																			}
																		else
																			{	/* Llib/weakhash.scm 800 */
																				((bool_t) 1);
																			}
																	}
																}
																{
																	long BgL_iz00_7041;

																	BgL_iz00_7041 = (BgL_iz00_2070 + 1L);
																	BgL_iz00_2070 = BgL_iz00_7041;
																	goto BgL_zc3z04anonymousza31768ze3z87_2071;
																}
															}
														else
															{	/* Llib/weakhash.scm 800 */
																((bool_t) 0);
															}
													}
													{	/* Llib/weakhash.scm 800 */
														obj_t BgL_xz00_4311;

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

															BgL_tmpz00_7043 = (int) (0L);
															BgL_xz00_4311 =
																STRUCT_SET(BgL_tablez00_126, BgL_tmpz00_7043,
																BgL_countz00_2062);
														}
														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_4267, obj_t BgL_tablez00_4268)
	{
		{	/* Llib/weakhash.scm 876 */
			{	/* Llib/weakhash.scm 877 */
				obj_t BgL_auxz00_7050;

				if (STRUCTP(BgL_tablez00_4268))
					{	/* Llib/weakhash.scm 877 */
						BgL_auxz00_7050 = BgL_tablez00_4268;
					}
				else
					{
						obj_t BgL_auxz00_7053;

						BgL_auxz00_7053 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2168z00zz__weakhashz00,
							BINT(34257L), BGl_string2190z00zz__weakhashz00,
							BGl_string2170z00zz__weakhashz00, BgL_tablez00_4268);
						FAILURE(BgL_auxz00_7053, BFALSE, BFALSE);
					}
				return
					BGl_weakzd2hashtablezd2expandz12z12zz__weakhashz00(BgL_auxz00_7050);
			}
		}

	}



/* 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_string2191z00zz__weakhashz00));
			BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(115192690L,
				BSTRING_TO_STRING(BGl_string2191z00zz__weakhashz00));
			BGl_modulezd2initializa7ationz75zz__paramz00(453939141L,
				BSTRING_TO_STRING(BGl_string2191z00zz__weakhashz00));
			BGl_modulezd2initializa7ationz75zz__hashz00(254893342L,
				BSTRING_TO_STRING(BGl_string2191z00zz__weakhashz00));
			BGl_modulezd2initializa7ationz75zz__bexitz00(443005284L,
				BSTRING_TO_STRING(BGl_string2191z00zz__weakhashz00));
			BGl_modulezd2initializa7ationz75zz__objectz00(475449627L,
				BSTRING_TO_STRING(BGl_string2191z00zz__weakhashz00));
			return
				BGl_modulezd2initializa7ationz75zz__threadz00(149516032L,
				BSTRING_TO_STRING(BGl_string2191z00zz__weakhashz00));
		}

	}

#ifdef __cplusplus
}
#endif
