/*===========================================================================*/
/*   (Llib/hash.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/hash.scm -indent -o objs/obj_u/Llib/hash.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___HASH_TYPE_DEFINITIONS
#define BGL___HASH_TYPE_DEFINITIONS

/* object type definitions */

#endif													// BGL___HASH_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	static obj_t BGl_plainzd2hashtablezd2getz00zz__hashz00(obj_t, obj_t);
	extern long bgl_symbol_hash_number(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_hashtablezd2clearz12zc0zz__hashz00(obj_t);
	extern obj_t BGl_weakzd2hashtablezd2putz12z12zz__weakhashz00(obj_t, obj_t,
		obj_t);
	extern long bgl_pointer_hashnumber(obj_t, long);
	static obj_t BGl_z62openzd2stringzd2hashtablezd2addz12za2zz__hashz00(obj_t,
		obj_t, obj_t, obj_t, obj_t, obj_t);
	extern obj_t BGl_weakzd2hashtablezd2getz00zz__weakhashz00(obj_t, obj_t);
	extern obj_t BGl_weakzd2hashtablezd2forzd2eachzd2zz__weakhashz00(obj_t,
		obj_t);
	static bool_t BGl_plainzd2hashtablezd2containszf3zf3zz__hashz00(obj_t, obj_t);
	extern long bgl_symbol_hash_number_persistent(obj_t);
	static obj_t BGl_z62openzd2stringzd2hashtablezd2putz12za2zz__hashz00(obj_t,
		obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_openzd2stringzd2hashtablezd2getzd2zz__hashz00(obj_t, obj_t);
	extern obj_t BGl_weakzd2hashtablezd2keyzd2listzd2zz__weakhashz00(obj_t);
	static obj_t
		BGl_z62openzd2stringzd2hashtablezd2forzd2eachz62zz__hashz00(obj_t, obj_t,
		obj_t);
	static obj_t BGl_symbol2578z00zz__hashz00 = BUNSPEC;
	extern obj_t bstring_to_keyword(obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zz__hashz00 = BUNSPEC;
	static long BGl_defaultzd2maxzd2bucketzd2lengthzd2zz__hashz00 = 0L;
	static obj_t BGl_plainzd2hashtablezd2ze3listze3zz__hashz00(obj_t);
	static obj_t BGl_plainzd2hashtablezd2updatez12z12zz__hashz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_symbol2660z00zz__hashz00 = BUNSPEC;
	static obj_t BGl_symbol2584z00zz__hashz00 = BUNSPEC;
	static obj_t BGl_z62hashtablezd2weakzd2keyszf3z91zz__hashz00(obj_t, obj_t);
	extern obj_t BGl_weakzd2hashtablezd2updatez12z12zz__weakhashz00(obj_t, obj_t,
		obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_makezd2hashtablezd2zz__hashz00(obj_t);
	static bool_t BGl_openzd2stringzd2hashtablezd2rehashz12zc0zz__hashz00(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__hashz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__weakhashz00(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_z62hashtablezd2containszf3z43zz__hashz00(obj_t, obj_t,
		obj_t);
	static obj_t BGl_plainzd2hashtablezd2clearz12z12zz__hashz00(obj_t);
	extern long bgl_string_hash_persistent(char *, int, int);
	extern long bgl_keyword_hash_number(obj_t);
	static obj_t BGl_z62hashtablezd2removez12za2zz__hashz00(obj_t, obj_t, obj_t);
	static obj_t BGl_z62hashtablezd2ze3vectorz53zz__hashz00(obj_t, obj_t);
	static obj_t BGl_z62zc3z04anonymousza31356ze3ze5zz__hashz00(obj_t, obj_t);
	BGL_EXPORTED_DECL long BGl_hashtablezd2siza7ez75zz__hashz00(obj_t);
	static obj_t BGl_z62hashtablezd2collisionszb0zz__hashz00(obj_t, obj_t);
	BGL_EXPORTED_DECL long BGl_stringzd2hashzd2numberz00zz__hashz00(obj_t);
	static obj_t BGl_z62hashtablezd2getzb0zz__hashz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_vectorzd2fillz12zc0zz__r4_vectors_6_8z00(obj_t, obj_t, long,
		long);
	static obj_t BGl_z62hashtablezd2addz12za2zz__hashz00(obj_t, obj_t, obj_t,
		obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL bool_t BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_openzd2stringzd2hashtablezd2removez12zc0zz__hashz00(obj_t, obj_t);
	static obj_t BGl_toplevelzd2initzd2zz__hashz00(void);
	static obj_t BGl_openzd2stringzd2hashtablezd2ze3vectorz31zz__hashz00(obj_t);
	extern obj_t BGl_integerzd2ze3stringz31zz__r4_numbers_6_5_fixnumz00(long,
		long);
	static obj_t BGl_z62createzd2hashtablezd2openzd2stringzb0zz__hashz00(obj_t);
	static obj_t BGl_z62hashtablezd2putz12za2zz__hashz00(obj_t, obj_t, obj_t,
		obj_t);
	static obj_t BGl_z62openzd2stringzd2hashtablezd2mapzb0zz__hashz00(obj_t,
		obj_t, obj_t);
	extern long bgl_obj_hash_number(obj_t);
	static obj_t BGl_z62hashtablezd2filterz12za2zz__hashz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_formatz00zz__r4_output_6_10_3z00(obj_t, obj_t);
	extern obj_t create_struct(obj_t, int);
	static obj_t BGl_z62getzd2pointerzd2hashnumberz62zz__hashz00(obj_t, obj_t,
		obj_t);
	static obj_t BGl_list2586z00zz__hashz00 = BUNSPEC;
	BGL_EXPORTED_DECL obj_t BGl_hashtablezd2collisionszd2zz__hashz00(obj_t);
	static obj_t BGl_cnstzd2initzd2zz__hashz00(void);
	static long BGl_objzd2hashze70z35zz__hashz00(obj_t);
	static obj_t BGl_genericzd2initzd2zz__hashz00(void);
	extern long bgl_list_length(obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_openzd2stringzd2hashtablezd2filterz12zc0zz__hashz00(obj_t, obj_t);
	static obj_t BGl_z62stringzd2hashzd2numberz62zz__hashz00(obj_t, obj_t);
	static obj_t BGl_z62hashtablezd2clearz12za2zz__hashz00(obj_t, obj_t);
	static obj_t BGl_importedzd2moduleszd2initz00zz__hashz00(void);
	static obj_t BGl_gczd2rootszd2initz00zz__hashz00(void);
	BGL_EXPORTED_DECL obj_t
		BGl_createzd2hashtablezd2openzd2stringzd2zz__hashz00(void);
	static obj_t BGl_openzd2stringzd2hashtablezd2ze3listz31zz__hashz00(obj_t);
	static obj_t BGl_objectzd2initzd2zz__hashz00(void);
	extern obj_t BGl_2za2za2zz__r4_numbers_6_5z00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_hashtablezd2forzd2eachz00zz__hashz00(obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_openzd2stringzd2hashtablezd2forzd2eachz00zz__hashz00(obj_t, obj_t);
	extern obj_t BGl_homogeneouszd2vectorzd2infoz00zz__srfi4z00(obj_t);
	static obj_t BGl_z62stringzd2hashtablezd2getz62zz__hashz00(obj_t, obj_t,
		obj_t);
	extern obj_t bgl_bignum_mul(obj_t, obj_t);
	BGL_EXPORTED_DECL bool_t BGl_hashtablezd2removez12zc0zz__hashz00(obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t BGl_hashtablezd2ze3vectorz31zz__hashz00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_hashtablezd2keyzd2listz00zz__hashz00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_createzd2hashtablezd2zz__hashz00(obj_t, obj_t,
		obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
	static obj_t BGl_keyword2601z00zz__hashz00 = BUNSPEC;
	static obj_t BGl_openzd2stringzd2hashtablezd2keyzd2listz00zz__hashz00(obj_t);
	extern obj_t BGl_memqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_hashtablezd2mapzd2zz__hashz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_stringzd2hashtablezd2putz12z12zz__hashz00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_plainzd2hashtablezd2mapz00zz__hashz00(obj_t, obj_t);
	extern obj_t string_append_3(obj_t, obj_t, obj_t);
	static obj_t BGl__stringzd2hashzd2zz__hashz00(obj_t, obj_t);
	extern obj_t BGl_weakzd2hashtablezd2mapz00zz__weakhashz00(obj_t, obj_t);
	static obj_t BGl_z62openzd2stringzd2hashtablezd2removez12za2zz__hashz00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_z62zc3z04anonymousza31555ze3ze5zz__hashz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_openzd2stringzd2hashtablezd2mapzd2zz__hashz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_stringzd2hashtablezd2getz00zz__hashz00(obj_t,
		obj_t);
	static obj_t BGl_z62getzd2hashnumberzb0zz__hashz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_hashtablezd2filterz12zc0zz__hashz00(obj_t, obj_t);
	static obj_t BGl_z62hashtablezd2forzd2eachz62zz__hashz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_filterz12z12zz__r4_control_features_6_9z00(obj_t, obj_t);
	extern long bgl_keyword_hash_number_persistent(obj_t);
	BGL_EXPORTED_DECL bool_t BGl_hashtablezf3zf3zz__hashz00(obj_t);
	extern bool_t BGl_weakzd2hashtablezd2containszf3zf3zz__weakhashz00(obj_t,
		obj_t);
	static obj_t BGl_z62hashtablezd2keyzd2listz62zz__hashz00(obj_t, obj_t);
	extern long bgl_foreign_hash_number(obj_t);
	extern obj_t bstring_to_symbol(obj_t);
	extern obj_t make_vector(long, obj_t);
	static obj_t BGl_z62hashtablezd2updatez12za2zz__hashz00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_hashtablezd2addz12zc0zz__hashz00(obj_t, obj_t,
		obj_t, obj_t, obj_t);
	static obj_t BGl_openzd2stringzd2hashtablezd2clearz12zc0zz__hashz00(obj_t);
	extern obj_t BGl_weakzd2hashtablezd2ze3listze3zz__weakhashz00(obj_t);
	static obj_t BGl_z62openzd2stringzd2hashtablezd2filterz12za2zz__hashz00(obj_t,
		obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_hashtablezd2putz12zc0zz__hashz00(obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL bool_t BGl_hashtablezd2containszf3z21zz__hashz00(obj_t,
		obj_t);
	static obj_t BGl_z62getzd2hashnumberzd2persistentz62zz__hashz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_openzd2stringzd2hashtablezd2updatez12zc0zz__hashz00(obj_t, obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_z42openzd2stringzd2hashtablezd2getz90zz__hashz00(obj_t, char *);
	static obj_t BGl_methodzd2initzd2zz__hashz00(void);
	static obj_t BGl_plainzd2hashtablezd2addz12z12zz__hashz00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	BGL_EXPORTED_DECL long BGl_stringzd2hashzd2zz__hashz00(obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL long BGl_getzd2pointerzd2hashnumberz00zz__hashz00(obj_t,
		long);
	static bool_t BGl_plainzd2hashtablezd2removez12z12zz__hashz00(obj_t, obj_t);
	static obj_t
		BGl_openzd2stringzd2hashtablezd2putzf2hashz12z32zz__hashz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_plainzd2hashtablezd2ze3vectorze3zz__hashz00(obj_t);
	static obj_t BGl_z62hashtablezf3z91zz__hashz00(obj_t, obj_t);
	static obj_t BGl_plainzd2hashtablezd2putz12z12zz__hashz00(obj_t, obj_t,
		obj_t);
	static long BGl_defaultzd2hashtablezd2bucketzd2lengthzd2zz__hashz00 = 0L;
	static obj_t BGl_z62stringzd2hashtablezd2putz12z70zz__hashz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_z62hashtablezd2mapzb0zz__hashz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_weakzd2hashtablezd2removez12z12zz__weakhashz00(obj_t, obj_t);
	static bool_t BGl_plainzd2hashtablezd2forzd2eachzd2zz__hashz00(obj_t, obj_t);
	extern obj_t BGl_weakzd2hashtablezd2ze3vectorze3zz__weakhashz00(obj_t);
	static obj_t BGl_symbol2603z00zz__hashz00 = BUNSPEC;
	static obj_t BGl_symbol2608z00zz__hashz00 = BUNSPEC;
	static obj_t BGl_plainzd2hashtablezd2keyzd2listzd2zz__hashz00(obj_t);
	extern long bgl_date_to_seconds(obj_t);
	static obj_t BGl_plainzd2hashtablezd2collisionsz00zz__hashz00(obj_t);
	static obj_t BGl_plainzd2hashtablezd2expandz12z12zz__hashz00(obj_t);
	static obj_t BGl_z62makezd2hashtablezb0zz__hashz00(obj_t, obj_t);
	extern obj_t obj_to_string(obj_t, obj_t);
	static obj_t BGl_symbol2610z00zz__hashz00 = BUNSPEC;
	static obj_t BGl_symbol2612z00zz__hashz00 = BUNSPEC;
	static obj_t BGl_plainzd2hashtablezd2filterz12z12zz__hashz00(obj_t, obj_t);
	static obj_t BGl_z62openzd2stringzd2hashtablezd2getzb0zz__hashz00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_symbol2614z00zz__hashz00 = BUNSPEC;
	static obj_t BGl_symbol2616z00zz__hashz00 = BUNSPEC;
	static obj_t BGl_z62z42openzd2stringzd2hashtablezd2getzf2zz__hashz00(obj_t,
		obj_t, obj_t);
	extern long bgl_string_hash(char *, int, int);
	static obj_t BGl_z62hashtablezd2weakzd2datazf3z91zz__hashz00(obj_t, obj_t);
	extern obj_t BGl_weakzd2hashtablezd2filterz12z12zz__weakhashz00(obj_t, obj_t);
	static obj_t BGl_z62hashtablezd2siza7ez17zz__hashz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_openzd2stringzd2hashtablezd2containszf3z21zz__hashz00(obj_t, obj_t);
	static obj_t BGl_keyword2587z00zz__hashz00 = BUNSPEC;
	static obj_t BGl_keyword2589z00zz__hashz00 = BUNSPEC;
	BGL_EXPORTED_DECL obj_t BGl_hashtablezd2updatez12zc0zz__hashz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t
		BGl_openzd2stringzd2hashtablezd2siza7ezd2incz12zb5zz__hashz00(obj_t);
	static obj_t BGl_symbol2620z00zz__hashz00 = BUNSPEC;
	static obj_t
		BGl_z62openzd2stringzd2hashtablezd2containszf3z43zz__hashz00(obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_openzd2stringzd2hashtablezd2addz12zc0zz__hashz00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	extern obj_t bgl_long_to_bignum(long);
	static obj_t BGl_keyword2591z00zz__hashz00 = BUNSPEC;
	BGL_EXPORTED_DECL obj_t
		BGl_openzd2stringzd2hashtablezd2putz12zc0zz__hashz00(obj_t, obj_t, obj_t);
	static obj_t BGl_keyword2593z00zz__hashz00 = BUNSPEC;
	BGL_EXPORTED_DECL long BGl_getzd2hashnumberzd2persistentz00zz__hashz00(obj_t);
	static obj_t BGl_keyword2595z00zz__hashz00 = BUNSPEC;
	BGL_EXPORTED_DECL long BGl_getzd2hashnumberzd2zz__hashz00(obj_t);
	static obj_t BGl_keyword2597z00zz__hashz00 = BUNSPEC;
	static obj_t BGl_keyword2599z00zz__hashz00 = BUNSPEC;
	static obj_t BGl_z62openzd2stringzd2hashtablezd2updatez12za2zz__hashz00(obj_t,
		obj_t, obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL bool_t BGl_hashtablezd2weakzd2datazf3zf3zz__hashz00(obj_t);
	extern obj_t BGl_errorz00zz__errorz00(obj_t, obj_t, obj_t);
	extern bool_t BGl_eqvzf3zf3zz__r4_equivalence_6_2z00(obj_t, obj_t);
	static obj_t BGl__createzd2hashtablezd2zz__hashz00(obj_t, obj_t);
	extern long BGl_objectzd2hashnumberzd2zz__objectz00(BgL_objectz00_bglt);
	BGL_EXPORTED_DECL obj_t BGl_hashtablezd2ze3listz31zz__hashz00(obj_t);
	extern obj_t BGl_weakzd2hashtablezd2clearz12z12zz__weakhashz00(obj_t);
	extern obj_t BGl_weakzd2hashtablezd2addz12z12zz__weakhashz00(obj_t, obj_t,
		obj_t, obj_t, obj_t);
	static obj_t BGl_z62hashtablezd2ze3listz53zz__hashz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_hashtablezd2getzd2zz__hashz00(obj_t, obj_t);
	static obj_t *__cnst;


	   
		 
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_hashtablezd2updatez12zd2envz12zz__hashz00,
		BgL_bgl_za762hashtableza7d2u2666z00,
		BGl_z62hashtablezd2updatez12za2zz__hashz00, 0L, BUNSPEC, 4);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_openzd2stringzd2hashtablezd2filterz12zd2envz12zz__hashz00,
		BgL_bgl_za762openza7d2string2667z00,
		BGl_z62openzd2stringzd2hashtablezd2filterz12za2zz__hashz00, 0L, BUNSPEC, 2);
	extern obj_t BGl_listzd2envzd2zz__r4_pairs_and_lists_6_3z00;
	   
		 
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_hashtablezd2keyzd2listzd2envzd2zz__hashz00,
		BgL_bgl_za762hashtableza7d2k2668z00,
		BGl_z62hashtablezd2keyzd2listz62zz__hashz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_hashtablezd2siza7ezd2envza7zz__hashz00,
		BgL_bgl_za762hashtableza7d2s2669z00,
		BGl_z62hashtablezd2siza7ez17zz__hashz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_stringzd2hashtablezd2putz12zd2envzc0zz__hashz00,
		BgL_bgl_za762stringza7d2hash2670z00,
		BGl_z62stringzd2hashtablezd2putz12z70zz__hashz00, 0L, BUNSPEC, 3);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_hashtablezd2mapzd2envz00zz__hashz00,
		BgL_bgl_za762hashtableza7d2m2671z00, BGl_z62hashtablezd2mapzb0zz__hashz00,
		0L, BUNSPEC, 2);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_hashtablezd2getzd2envz00zz__hashz00,
		BgL_bgl_za762hashtableza7d2g2672z00, BGl_z62hashtablezd2getzb0zz__hashz00,
		0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_hashtablezd2clearz12zd2envz12zz__hashz00,
		BgL_bgl_za762hashtableza7d2c2673z00,
		BGl_z62hashtablezd2clearz12za2zz__hashz00, 0L, BUNSPEC, 1);
	extern obj_t BGl_stringzd3zf3zd2envzf2zz__r4_strings_6_7z00;
	   
		 
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_hashtablezf3zd2envz21zz__hashz00,
		BgL_bgl_za762hashtableza7f3za72674za7, BGl_z62hashtablezf3z91zz__hashz00,
		0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_hashtablezd2collisionszd2envz00zz__hashz00,
		BgL_bgl_za762hashtableza7d2c2675z00,
		BGl_z62hashtablezd2collisionszb0zz__hashz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_openzd2stringzd2hashtablezd2containszf3zd2envzf3zz__hashz00,
		BgL_bgl_za762openza7d2string2676z00,
		BGl_z62openzd2stringzd2hashtablezd2containszf3z43zz__hashz00, 0L, BUNSPEC,
		2);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_hashtablezd2addz12zd2envz12zz__hashz00,
		BgL_bgl_za762hashtableza7d2a2677z00,
		BGl_z62hashtablezd2addz12za2zz__hashz00, 0L, BUNSPEC, 5);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_openzd2stringzd2hashtablezd2addz12zd2envz12zz__hashz00,
		BgL_bgl_za762openza7d2string2678z00,
		BGl_z62openzd2stringzd2hashtablezd2addz12za2zz__hashz00, 0L, BUNSPEC, 5);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_createzd2hashtablezd2openzd2stringzd2envz00zz__hashz00,
		BgL_bgl_za762createza7d2hash2679z00,
		BGl_z62createzd2hashtablezd2openzd2stringzb0zz__hashz00, 0L, BUNSPEC, 0);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_hashtablezd2putz12zd2envz12zz__hashz00,
		BgL_bgl_za762hashtableza7d2p2680z00,
		BGl_z62hashtablezd2putz12za2zz__hashz00, 0L, BUNSPEC, 3);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_openzd2stringzd2hashtablezd2putz12zd2envz12zz__hashz00,
		BgL_bgl_za762openza7d2string2681z00,
		BGl_z62openzd2stringzd2hashtablezd2putz12za2zz__hashz00, 0L, BUNSPEC, 3);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_hashtablezd2containszf3zd2envzf3zz__hashz00,
		BgL_bgl_za762hashtableza7d2c2682z00,
		BGl_z62hashtablezd2containszf3z43zz__hashz00, 0L, BUNSPEC, 2);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_getzd2hashnumberzd2envz00zz__hashz00,
		BgL_bgl_za762getza7d2hashnum2683z00, BGl_z62getzd2hashnumberzb0zz__hashz00,
		0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_hashtablezd2removez12zd2envz12zz__hashz00,
		BgL_bgl_za762hashtableza7d2r2684z00,
		BGl_z62hashtablezd2removez12za2zz__hashz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_hashtablezd2weakzd2keyszf3zd2envz21zz__hashz00,
		BgL_bgl_za762hashtableza7d2w2685z00,
		BGl_z62hashtablezd2weakzd2keyszf3z91zz__hashz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_hashtablezd2filterz12zd2envz12zz__hashz00,
		BgL_bgl_za762hashtableza7d2f2686z00,
		BGl_z62hashtablezd2filterz12za2zz__hashz00, 0L, BUNSPEC, 2);
	      BGL_DEFINE_STRING(BGl_string2600z00zz__hashz00,
		BgL_bgl_string2600za700za7za7_2687za7, "size", 4);
	      BGL_DEFINE_STRING(BGl_string2602z00zz__hashz00,
		BgL_bgl_string2602za700za7za7_2688za7, "weak", 4);
	      BGL_DEFINE_STRING(BGl_string2604z00zz__hashz00,
		BgL_bgl_string2604za700za7za7_2689za7, "create-hashtable", 16);
	      BGL_DEFINE_STRING(BGl_string2605z00zz__hashz00,
		BgL_bgl_string2605za700za7za7_2690za7, "Illegal keyword argument", 24);
	      BGL_DEFINE_STRING(BGl_string2606z00zz__hashz00,
		BgL_bgl_string2606za700za7za7_2691za7,
		"wrong number of arguments: [0..8] expected, provided", 52);
	      BGL_DEFINE_STRING(BGl_string2607z00zz__hashz00,
		BgL_bgl_string2607za700za7za7_2692za7, "bint", 4);
	      BGL_DEFINE_STRING(BGl_string2609z00zz__hashz00,
		BgL_bgl_string2609za700za7za7_2693za7, "keys", 4);
	      BGL_DEFINE_STRING(BGl_string2611z00zz__hashz00,
		BgL_bgl_string2611za700za7za7_2694za7, "data", 4);
	      BGL_DEFINE_STRING(BGl_string2613z00zz__hashz00,
		BgL_bgl_string2613za700za7za7_2695za7, "both", 4);
	      BGL_DEFINE_STRING(BGl_string2615z00zz__hashz00,
		BgL_bgl_string2615za700za7za7_2696za7, "open-string", 11);
	      BGL_DEFINE_STRING(BGl_string2617z00zz__hashz00,
		BgL_bgl_string2617za700za7za7_2697za7, "string", 6);
	      BGL_DEFINE_STRING(BGl_string2618z00zz__hashz00,
		BgL_bgl_string2618za700za7za7_2698za7, "Illegal weak argument", 21);
	      BGL_DEFINE_STRING(BGl_string2619z00zz__hashz00,
		BgL_bgl_string2619za700za7za7_2699za7,
		"Persistent hashtable cannot use custom hash function", 52);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_openzd2stringzd2hashtablezd2updatez12zd2envz12zz__hashz00,
		BgL_bgl_za762openza7d2string2700z00,
		BGl_z62openzd2stringzd2hashtablezd2updatez12za2zz__hashz00, 0L, BUNSPEC, 4);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42openzd2stringzd2hashtablezd2getzd2envz42zz__hashz00,
		BgL_bgl_za762za742openza7d2str2701za7,
		BGl_z62z42openzd2stringzd2hashtablezd2getzf2zz__hashz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_openzd2stringzd2hashtablezd2forzd2eachzd2envzd2zz__hashz00,
		BgL_bgl_za762openza7d2string2702z00,
		BGl_z62openzd2stringzd2hashtablezd2forzd2eachz62zz__hashz00, 0L, BUNSPEC,
		2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_hashtablezd2weakzd2datazf3zd2envz21zz__hashz00,
		BgL_bgl_za762hashtableza7d2w2703z00,
		BGl_z62hashtablezd2weakzd2datazf3z91zz__hashz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_stringzd2hashzd2envz00zz__hashz00,
		BgL_bgl__stringza7d2hashza7d2704z00, opt_generic_entry,
		BGl__stringzd2hashzd2zz__hashz00, BFALSE, -1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_getzd2pointerzd2hashnumberzd2envzd2zz__hashz00,
		BgL_bgl_za762getza7d2pointer2705z00,
		BGl_z62getzd2pointerzd2hashnumberz62zz__hashz00, 0L, BUNSPEC, 2);
	      BGL_DEFINE_STRING(BGl_string2621z00zz__hashz00,
		BgL_bgl_string2621za700za7za7_2706za7,
		"Cannot provide eqtest for string hashtable", 42);
	      BGL_DEFINE_STRING(BGl_string2622z00zz__hashz00,
		BgL_bgl_string2622za700za7za7_2707za7,
		"Cannot provide hash for string hashtable", 40);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_createzd2hashtablezd2envz00zz__hashz00,
		BgL_bgl__createza7d2hashta2708za7, opt_generic_entry,
		BGl__createzd2hashtablezd2zz__hashz00, BFALSE, -1);
	      BGL_DEFINE_STRING(BGl_string2624z00zz__hashz00,
		BgL_bgl_string2624za700za7za7_2709za7, "&hashtable-weak-keys?", 21);
	      BGL_DEFINE_STRING(BGl_string2625z00zz__hashz00,
		BgL_bgl_string2625za700za7za7_2710za7, "struct", 6);
	      BGL_DEFINE_STRING(BGl_string2626z00zz__hashz00,
		BgL_bgl_string2626za700za7za7_2711za7, "&hashtable-weak-data?", 21);
	      BGL_DEFINE_STRING(BGl_string2627z00zz__hashz00,
		BgL_bgl_string2627za700za7za7_2712za7, "&hashtable-size", 15);
	      BGL_DEFINE_STRING(BGl_string2628z00zz__hashz00,
		BgL_bgl_string2628za700za7za7_2713za7, "&hashtable->vector", 18);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_hashtablezd2ze3listzd2envze3zz__hashz00,
		BgL_bgl_za762hashtableza7d2za72714za7,
		BGl_z62hashtablezd2ze3listz53zz__hashz00, 0L, BUNSPEC, 1);
	      BGL_DEFINE_STRING(BGl_string2629z00zz__hashz00,
		BgL_bgl_string2629za700za7za7_2715za7, "&hashtable->list", 16);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_stringzd2hashzd2numberzd2envzd2zz__hashz00,
		BgL_bgl_za762stringza7d2hash2716z00,
		BGl_z62stringzd2hashzd2numberz62zz__hashz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2623z00zz__hashz00,
		BgL_bgl_za762za7c3za704anonymo2717za7,
		BGl_z62zc3z04anonymousza31356ze3ze5zz__hashz00, 0L, BUNSPEC, 1);
	      BGL_DEFINE_STRING(BGl_string2630z00zz__hashz00,
		BgL_bgl_string2630za700za7za7_2718za7, "&hashtable-key-list", 19);
	      BGL_DEFINE_STRING(BGl_string2631z00zz__hashz00,
		BgL_bgl_string2631za700za7za7_2719za7, "&hashtable-map", 14);
	      BGL_DEFINE_STRING(BGl_string2632z00zz__hashz00,
		BgL_bgl_string2632za700za7za7_2720za7, "procedure", 9);
	      BGL_DEFINE_STRING(BGl_string2633z00zz__hashz00,
		BgL_bgl_string2633za700za7za7_2721za7, "&open-string-hashtable-map", 26);
	      BGL_DEFINE_STRING(BGl_string2634z00zz__hashz00,
		BgL_bgl_string2634za700za7za7_2722za7, "&hashtable-for-each", 19);
	      BGL_DEFINE_STRING(BGl_string2635z00zz__hashz00,
		BgL_bgl_string2635za700za7za7_2723za7, "&open-string-hashtable-for-each",
		31);
	      BGL_DEFINE_STRING(BGl_string2636z00zz__hashz00,
		BgL_bgl_string2636za700za7za7_2724za7, "&hashtable-filter!", 18);
	      BGL_DEFINE_STRING(BGl_string2637z00zz__hashz00,
		BgL_bgl_string2637za700za7za7_2725za7, "&open-string-hashtable-filter!",
		30);
	      BGL_DEFINE_STRING(BGl_string2638z00zz__hashz00,
		BgL_bgl_string2638za700za7za7_2726za7, "&hashtable-clear!", 17);
	      BGL_DEFINE_STRING(BGl_string2639z00zz__hashz00,
		BgL_bgl_string2639za700za7za7_2727za7, "&hashtable-contains?", 20);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_stringzd2hashtablezd2getzd2envzd2zz__hashz00,
		BgL_bgl_za762stringza7d2hash2728z00,
		BGl_z62stringzd2hashtablezd2getz62zz__hashz00, 0L, BUNSPEC, 2);
	      BGL_DEFINE_STRING(BGl_string2640z00zz__hashz00,
		BgL_bgl_string2640za700za7za7_2729za7, "&open-string-hashtable-contains?",
		32);
	      BGL_DEFINE_STRING(BGl_string2641z00zz__hashz00,
		BgL_bgl_string2641za700za7za7_2730za7, "bstring", 7);
	      BGL_DEFINE_STRING(BGl_string2642z00zz__hashz00,
		BgL_bgl_string2642za700za7za7_2731za7, "&hashtable-get", 14);
	      BGL_DEFINE_STRING(BGl_string2643z00zz__hashz00,
		BgL_bgl_string2643za700za7za7_2732za7, "&string-hashtable-get", 21);
	      BGL_DEFINE_STRING(BGl_string2644z00zz__hashz00,
		BgL_bgl_string2644za700za7za7_2733za7, "&open-string-hashtable-get", 26);
	      BGL_DEFINE_STRING(BGl_string2645z00zz__hashz00,
		BgL_bgl_string2645za700za7za7_2734za7, "&$open-string-hashtable-get", 27);
	      BGL_DEFINE_STRING(BGl_string2646z00zz__hashz00,
		BgL_bgl_string2646za700za7za7_2735za7, "&hashtable-put!", 15);
	      BGL_DEFINE_STRING(BGl_string2647z00zz__hashz00,
		BgL_bgl_string2647za700za7za7_2736za7, "&open-string-hashtable-put!", 27);
	      BGL_DEFINE_STRING(BGl_string2648z00zz__hashz00,
		BgL_bgl_string2648za700za7za7_2737za7, "&string-hashtable-put!", 22);
	      BGL_DEFINE_STRING(BGl_string2649z00zz__hashz00,
		BgL_bgl_string2649za700za7za7_2738za7, "&hashtable-update!", 18);
	      BGL_DEFINE_REAL(BGl_real2580z00zz__hashz00,
		BgL_bgl_real2580za700za7za7__h2739za7, 1.2);
	      BGL_DEFINE_STRING(BGl_string2650z00zz__hashz00,
		BgL_bgl_string2650za700za7za7_2740za7, "&open-string-hashtable-update!",
		30);
	      BGL_DEFINE_STRING(BGl_string2651z00zz__hashz00,
		BgL_bgl_string2651za700za7za7_2741za7, "&hashtable-add!", 15);
	      BGL_DEFINE_STRING(BGl_string2652z00zz__hashz00,
		BgL_bgl_string2652za700za7za7_2742za7, "&open-string-hashtable-add!", 27);
	      BGL_DEFINE_STRING(BGl_string2653z00zz__hashz00,
		BgL_bgl_string2653za700za7za7_2743za7, "&hashtable-remove!", 18);
	      BGL_DEFINE_STRING(BGl_string2654z00zz__hashz00,
		BgL_bgl_string2654za700za7za7_2744za7, "&open-string-hashtable-remove!",
		30);
	      BGL_DEFINE_STRING(BGl_string2573z00zz__hashz00,
		BgL_bgl_string2573za700za7za7_2745za7, "make-hashtable", 14);
	      BGL_DEFINE_STRING(BGl_string2655z00zz__hashz00,
		BgL_bgl_string2655za700za7za7_2746za7,
		"Hashtable too large (new-len=~a/~a, size=~a)", 44);
	      BGL_DEFINE_STRING(BGl_string2574z00zz__hashz00,
		BgL_bgl_string2574za700za7za7_2747za7, "Illegal default bucket length", 29);
	      BGL_DEFINE_STRING(BGl_string2656z00zz__hashz00,
		BgL_bgl_string2656za700za7za7_2748za7, "hashtable-put!", 14);
	      BGL_DEFINE_STRING(BGl_string2575z00zz__hashz00,
		BgL_bgl_string2575za700za7za7_2749za7, "Illegal max bucket length", 25);
	      BGL_DEFINE_STRING(BGl_string2657z00zz__hashz00,
		BgL_bgl_string2657za700za7za7_2750za7, "&hashtable-collisions", 21);
	      BGL_DEFINE_STRING(BGl_string2576z00zz__hashz00,
		BgL_bgl_string2576za700za7za7_2751za7, "Illegal equality test", 21);
	extern obj_t BGl_eqzf3zd2envz21zz__r4_equivalence_6_2z00;
	   
		 
		BGL_DEFINE_STRING(BGl_string2658z00zz__hashz00,
		BgL_bgl_string2658za700za7za7_2752za7, "index out of range [0..", 23);
	      BGL_DEFINE_STRING(BGl_string2577z00zz__hashz00,
		BgL_bgl_string2577za700za7za7_2753za7, "Illegal hashnumber function", 27);
	      BGL_DEFINE_STRING(BGl_string2659z00zz__hashz00,
		BgL_bgl_string2659za700za7za7_2754za7, "]", 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_makezd2hashtablezd2envz00zz__hashz00,
		BgL_bgl_za762makeza7d2hashta2755z00, va_generic_entry,
		BGl_z62makezd2hashtablezb0zz__hashz00, BUNSPEC, -1);
	      BGL_DEFINE_STRING(BGl_string2579z00zz__hashz00,
		BgL_bgl_string2579za700za7za7_2756za7, "%hashtable", 10);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_getzd2hashnumberzd2persistentzd2envzd2zz__hashz00,
		BgL_bgl_za762getza7d2hashnum2757z00,
		BGl_z62getzd2hashnumberzd2persistentz62zz__hashz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_hashtablezd2forzd2eachzd2envzd2zz__hashz00,
		BgL_bgl_za762hashtableza7d2f2758z00,
		BGl_z62hashtablezd2forzd2eachz62zz__hashz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_hashtablezd2ze3vectorzd2envze3zz__hashz00,
		BgL_bgl_za762hashtableza7d2za72759za7,
		BGl_z62hashtablezd2ze3vectorz53zz__hashz00, 0L, BUNSPEC, 1);
	      BGL_DEFINE_STRING(BGl_string2661z00zz__hashz00,
		BgL_bgl_string2661za700za7za7_2760za7, "ucs2-string-ref", 15);
	      BGL_DEFINE_STRING(BGl_string2662z00zz__hashz00,
		BgL_bgl_string2662za700za7za7_2761za7, "&get-pointer-hashnumber", 23);
	      BGL_DEFINE_STRING(BGl_string2581z00zz__hashz00,
		BgL_bgl_string2581za700za7za7_2762za7, "/tmp/bigloo/runtime/Llib/hash.scm",
		33);
	      BGL_DEFINE_STRING(BGl_string2663z00zz__hashz00,
		BgL_bgl_string2663za700za7za7_2763za7, "_string-hash", 12);
	      BGL_DEFINE_STRING(BGl_string2582z00zz__hashz00,
		BgL_bgl_string2582za700za7za7_2764za7, "_create-hashtable", 17);
	      BGL_DEFINE_STRING(BGl_string2664z00zz__hashz00,
		BgL_bgl_string2664za700za7za7_2765za7, "&string-hash-number", 19);
	      BGL_DEFINE_STRING(BGl_string2583z00zz__hashz00,
		BgL_bgl_string2583za700za7za7_2766za7, "vector", 6);
	      BGL_DEFINE_STRING(BGl_string2665z00zz__hashz00,
		BgL_bgl_string2665za700za7za7_2767za7, "__hash", 6);
	      BGL_DEFINE_STRING(BGl_string2585z00zz__hashz00,
		BgL_bgl_string2585za700za7za7_2768za7, "none", 4);
	      BGL_DEFINE_STRING(BGl_string2588z00zz__hashz00,
		BgL_bgl_string2588za700za7za7_2769za7, "bucket-expansion", 16);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_openzd2stringzd2hashtablezd2removez12zd2envz12zz__hashz00,
		BgL_bgl_za762openza7d2string2770z00,
		BGl_z62openzd2stringzd2hashtablezd2removez12za2zz__hashz00, 0L, BUNSPEC, 2);
	      BGL_DEFINE_STRING(BGl_string2590z00zz__hashz00,
		BgL_bgl_string2590za700za7za7_2771za7, "eqtest", 6);
	      BGL_DEFINE_STRING(BGl_string2592z00zz__hashz00,
		BgL_bgl_string2592za700za7za7_2772za7, "hash", 4);
	      BGL_DEFINE_STRING(BGl_string2594z00zz__hashz00,
		BgL_bgl_string2594za700za7za7_2773za7, "max-bucket-length", 17);
	      BGL_DEFINE_STRING(BGl_string2596z00zz__hashz00,
		BgL_bgl_string2596za700za7za7_2774za7, "max-length", 10);
	      BGL_DEFINE_STRING(BGl_string2598z00zz__hashz00,
		BgL_bgl_string2598za700za7za7_2775za7, "persistent", 10);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_openzd2stringzd2hashtablezd2mapzd2envz00zz__hashz00,
		BgL_bgl_za762openza7d2string2776z00,
		BGl_z62openzd2stringzd2hashtablezd2mapzb0zz__hashz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_openzd2stringzd2hashtablezd2getzd2envz00zz__hashz00,
		BgL_bgl_za762openza7d2string2777z00,
		BGl_z62openzd2stringzd2hashtablezd2getzb0zz__hashz00, 0L, BUNSPEC, 2);

/* contant bindings */
	static void bgl_constant_bindings()
	{
		BGL_BIND_PROCEDURE(BGl_openzd2stringzd2hashtablezd2getzd2envz00zz__hashz00,
			BgL_bgl_za762openza7d2string2777z00);
		BGL_BIND_PROCEDURE(BGl_openzd2stringzd2hashtablezd2mapzd2envz00zz__hashz00,
			BgL_bgl_za762openza7d2string2776z00);
		BGL_BIND_STRING(BGl_string2598z00zz__hashz00,
			BgL_bgl_string2598za700za7za7_2775za7);
		BGL_BIND_STRING(BGl_string2596z00zz__hashz00,
			BgL_bgl_string2596za700za7za7_2774za7);
		BGL_BIND_STRING(BGl_string2594z00zz__hashz00,
			BgL_bgl_string2594za700za7za7_2773za7);
		BGL_BIND_STRING(BGl_string2592z00zz__hashz00,
			BgL_bgl_string2592za700za7za7_2772za7);
		BGL_BIND_STRING(BGl_string2590z00zz__hashz00,
			BgL_bgl_string2590za700za7za7_2771za7);
		BGL_BIND_PROCEDURE
			(BGl_openzd2stringzd2hashtablezd2removez12zd2envz12zz__hashz00,
			BgL_bgl_za762openza7d2string2770z00);
		BGL_BIND_STRING(BGl_string2588z00zz__hashz00,
			BgL_bgl_string2588za700za7za7_2769za7);
		BGL_BIND_STRING(BGl_string2585z00zz__hashz00,
			BgL_bgl_string2585za700za7za7_2768za7);
		BGL_BIND_STRING(BGl_string2665z00zz__hashz00,
			BgL_bgl_string2665za700za7za7_2767za7);
		BGL_BIND_STRING(BGl_string2583z00zz__hashz00,
			BgL_bgl_string2583za700za7za7_2766za7);
		BGL_BIND_STRING(BGl_string2664z00zz__hashz00,
			BgL_bgl_string2664za700za7za7_2765za7);
		BGL_BIND_STRING(BGl_string2582z00zz__hashz00,
			BgL_bgl_string2582za700za7za7_2764za7);
		BGL_BIND_STRING(BGl_string2663z00zz__hashz00,
			BgL_bgl_string2663za700za7za7_2763za7);
		BGL_BIND_STRING(BGl_string2581z00zz__hashz00,
			BgL_bgl_string2581za700za7za7_2762za7);
		BGL_BIND_STRING(BGl_string2662z00zz__hashz00,
			BgL_bgl_string2662za700za7za7_2761za7);
		BGL_BIND_STRING(BGl_string2661z00zz__hashz00,
			BgL_bgl_string2661za700za7za7_2760za7);
		BGL_BIND_PROCEDURE(BGl_hashtablezd2ze3vectorzd2envze3zz__hashz00,
			BgL_bgl_za762hashtableza7d2za72759za7);
		BGL_BIND_PROCEDURE(BGl_hashtablezd2forzd2eachzd2envzd2zz__hashz00,
			BgL_bgl_za762hashtableza7d2f2758z00);
		BGL_BIND_PROCEDURE(BGl_getzd2hashnumberzd2persistentzd2envzd2zz__hashz00,
			BgL_bgl_za762getza7d2hashnum2757z00);
		BGL_BIND_STRING(BGl_string2579z00zz__hashz00,
			BgL_bgl_string2579za700za7za7_2756za7);
		BGL_BIND_PROCEDURE(BGl_makezd2hashtablezd2envz00zz__hashz00,
			BgL_bgl_za762makeza7d2hashta2755z00);
		BGL_BIND_STRING(BGl_string2659z00zz__hashz00,
			BgL_bgl_string2659za700za7za7_2754za7);
		BGL_BIND_STRING(BGl_string2577z00zz__hashz00,
			BgL_bgl_string2577za700za7za7_2753za7);
		BGL_BIND_STRING(BGl_string2658z00zz__hashz00,
			BgL_bgl_string2658za700za7za7_2752za7);
		BGL_BIND_STRING(BGl_string2576z00zz__hashz00,
			BgL_bgl_string2576za700za7za7_2751za7);
		BGL_BIND_STRING(BGl_string2657z00zz__hashz00,
			BgL_bgl_string2657za700za7za7_2750za7);
		BGL_BIND_STRING(BGl_string2575z00zz__hashz00,
			BgL_bgl_string2575za700za7za7_2749za7);
		BGL_BIND_STRING(BGl_string2656z00zz__hashz00,
			BgL_bgl_string2656za700za7za7_2748za7);
		BGL_BIND_STRING(BGl_string2574z00zz__hashz00,
			BgL_bgl_string2574za700za7za7_2747za7);
		BGL_BIND_STRING(BGl_string2655z00zz__hashz00,
			BgL_bgl_string2655za700za7za7_2746za7);
		BGL_BIND_STRING(BGl_string2573z00zz__hashz00,
			BgL_bgl_string2573za700za7za7_2745za7);
		BGL_BIND_STRING(BGl_string2654z00zz__hashz00,
			BgL_bgl_string2654za700za7za7_2744za7);
		BGL_BIND_STRING(BGl_string2653z00zz__hashz00,
			BgL_bgl_string2653za700za7za7_2743za7);
		BGL_BIND_STRING(BGl_string2652z00zz__hashz00,
			BgL_bgl_string2652za700za7za7_2742za7);
		BGL_BIND_STRING(BGl_string2651z00zz__hashz00,
			BgL_bgl_string2651za700za7za7_2741za7);
		BGL_BIND_STRING(BGl_string2650z00zz__hashz00,
			BgL_bgl_string2650za700za7za7_2740za7);
		BGL_BIND_REAL(BGl_real2580z00zz__hashz00,
			BgL_bgl_real2580za700za7za7__h2739za7);
		BGL_BIND_STRING(BGl_string2649z00zz__hashz00,
			BgL_bgl_string2649za700za7za7_2738za7);
		BGL_BIND_STRING(BGl_string2648z00zz__hashz00,
			BgL_bgl_string2648za700za7za7_2737za7);
		BGL_BIND_STRING(BGl_string2647z00zz__hashz00,
			BgL_bgl_string2647za700za7za7_2736za7);
		BGL_BIND_STRING(BGl_string2646z00zz__hashz00,
			BgL_bgl_string2646za700za7za7_2735za7);
		BGL_BIND_STRING(BGl_string2645z00zz__hashz00,
			BgL_bgl_string2645za700za7za7_2734za7);
		BGL_BIND_STRING(BGl_string2644z00zz__hashz00,
			BgL_bgl_string2644za700za7za7_2733za7);
		BGL_BIND_STRING(BGl_string2643z00zz__hashz00,
			BgL_bgl_string2643za700za7za7_2732za7);
		BGL_BIND_STRING(BGl_string2642z00zz__hashz00,
			BgL_bgl_string2642za700za7za7_2731za7);
		BGL_BIND_STRING(BGl_string2641z00zz__hashz00,
			BgL_bgl_string2641za700za7za7_2730za7);
		BGL_BIND_STRING(BGl_string2640z00zz__hashz00,
			BgL_bgl_string2640za700za7za7_2729za7);
		BGL_BIND_PROCEDURE(BGl_stringzd2hashtablezd2getzd2envzd2zz__hashz00,
			BgL_bgl_za762stringza7d2hash2728z00);
		BGL_BIND_STRING(BGl_string2639z00zz__hashz00,
			BgL_bgl_string2639za700za7za7_2727za7);
		BGL_BIND_STRING(BGl_string2638z00zz__hashz00,
			BgL_bgl_string2638za700za7za7_2726za7);
		BGL_BIND_STRING(BGl_string2637z00zz__hashz00,
			BgL_bgl_string2637za700za7za7_2725za7);
		BGL_BIND_STRING(BGl_string2636z00zz__hashz00,
			BgL_bgl_string2636za700za7za7_2724za7);
		BGL_BIND_STRING(BGl_string2635z00zz__hashz00,
			BgL_bgl_string2635za700za7za7_2723za7);
		BGL_BIND_STRING(BGl_string2634z00zz__hashz00,
			BgL_bgl_string2634za700za7za7_2722za7);
		BGL_BIND_STRING(BGl_string2633z00zz__hashz00,
			BgL_bgl_string2633za700za7za7_2721za7);
		BGL_BIND_STRING(BGl_string2632z00zz__hashz00,
			BgL_bgl_string2632za700za7za7_2720za7);
		BGL_BIND_STRING(BGl_string2631z00zz__hashz00,
			BgL_bgl_string2631za700za7za7_2719za7);
		BGL_BIND_STRING(BGl_string2630z00zz__hashz00,
			BgL_bgl_string2630za700za7za7_2718za7);
		BGL_BIND_PROCEDURE(BGl_proc2623z00zz__hashz00,
			BgL_bgl_za762za7c3za704anonymo2717za7);
		BGL_BIND_PROCEDURE(BGl_stringzd2hashzd2numberzd2envzd2zz__hashz00,
			BgL_bgl_za762stringza7d2hash2716z00);
		BGL_BIND_STRING(BGl_string2629z00zz__hashz00,
			BgL_bgl_string2629za700za7za7_2715za7);
		BGL_BIND_PROCEDURE(BGl_hashtablezd2ze3listzd2envze3zz__hashz00,
			BgL_bgl_za762hashtableza7d2za72714za7);
		BGL_BIND_STRING(BGl_string2628z00zz__hashz00,
			BgL_bgl_string2628za700za7za7_2713za7);
		BGL_BIND_STRING(BGl_string2627z00zz__hashz00,
			BgL_bgl_string2627za700za7za7_2712za7);
		BGL_BIND_STRING(BGl_string2626z00zz__hashz00,
			BgL_bgl_string2626za700za7za7_2711za7);
		BGL_BIND_STRING(BGl_string2625z00zz__hashz00,
			BgL_bgl_string2625za700za7za7_2710za7);
		BGL_BIND_STRING(BGl_string2624z00zz__hashz00,
			BgL_bgl_string2624za700za7za7_2709za7);
		BGL_BIND_PROCEDURE(BGl_createzd2hashtablezd2envz00zz__hashz00,
			BgL_bgl__createza7d2hashta2708za7);
		BGL_BIND_STRING(BGl_string2622z00zz__hashz00,
			BgL_bgl_string2622za700za7za7_2707za7);
		BGL_BIND_STRING(BGl_string2621z00zz__hashz00,
			BgL_bgl_string2621za700za7za7_2706za7);
		BGL_BIND_PROCEDURE(BGl_getzd2pointerzd2hashnumberzd2envzd2zz__hashz00,
			BgL_bgl_za762getza7d2pointer2705z00);
		BGL_BIND_PROCEDURE(BGl_stringzd2hashzd2envz00zz__hashz00,
			BgL_bgl__stringza7d2hashza7d2704z00);
		BGL_BIND_PROCEDURE(BGl_hashtablezd2weakzd2datazf3zd2envz21zz__hashz00,
			BgL_bgl_za762hashtableza7d2w2703z00);
		BGL_BIND_PROCEDURE
			(BGl_openzd2stringzd2hashtablezd2forzd2eachzd2envzd2zz__hashz00,
			BgL_bgl_za762openza7d2string2702z00);
		BGL_BIND_PROCEDURE
			(BGl_z42openzd2stringzd2hashtablezd2getzd2envz42zz__hashz00,
			BgL_bgl_za762za742openza7d2str2701za7);
		BGL_BIND_PROCEDURE
			(BGl_openzd2stringzd2hashtablezd2updatez12zd2envz12zz__hashz00,
			BgL_bgl_za762openza7d2string2700z00);
		BGL_BIND_STRING(BGl_string2619z00zz__hashz00,
			BgL_bgl_string2619za700za7za7_2699za7);
		BGL_BIND_STRING(BGl_string2618z00zz__hashz00,
			BgL_bgl_string2618za700za7za7_2698za7);
		BGL_BIND_STRING(BGl_string2617z00zz__hashz00,
			BgL_bgl_string2617za700za7za7_2697za7);
		BGL_BIND_STRING(BGl_string2615z00zz__hashz00,
			BgL_bgl_string2615za700za7za7_2696za7);
		BGL_BIND_STRING(BGl_string2613z00zz__hashz00,
			BgL_bgl_string2613za700za7za7_2695za7);
		BGL_BIND_STRING(BGl_string2611z00zz__hashz00,
			BgL_bgl_string2611za700za7za7_2694za7);
		BGL_BIND_STRING(BGl_string2609z00zz__hashz00,
			BgL_bgl_string2609za700za7za7_2693za7);
		BGL_BIND_STRING(BGl_string2607z00zz__hashz00,
			BgL_bgl_string2607za700za7za7_2692za7);
		BGL_BIND_STRING(BGl_string2606z00zz__hashz00,
			BgL_bgl_string2606za700za7za7_2691za7);
		BGL_BIND_STRING(BGl_string2605z00zz__hashz00,
			BgL_bgl_string2605za700za7za7_2690za7);
		BGL_BIND_STRING(BGl_string2604z00zz__hashz00,
			BgL_bgl_string2604za700za7za7_2689za7);
		BGL_BIND_STRING(BGl_string2602z00zz__hashz00,
			BgL_bgl_string2602za700za7za7_2688za7);
		BGL_BIND_STRING(BGl_string2600z00zz__hashz00,
			BgL_bgl_string2600za700za7za7_2687za7);
		BGL_BIND_PROCEDURE(BGl_hashtablezd2filterz12zd2envz12zz__hashz00,
			BgL_bgl_za762hashtableza7d2f2686z00);
		BGL_BIND_PROCEDURE(BGl_hashtablezd2weakzd2keyszf3zd2envz21zz__hashz00,
			BgL_bgl_za762hashtableza7d2w2685z00);
		BGL_BIND_PROCEDURE(BGl_hashtablezd2removez12zd2envz12zz__hashz00,
			BgL_bgl_za762hashtableza7d2r2684z00);
		BGL_BIND_PROCEDURE(BGl_getzd2hashnumberzd2envz00zz__hashz00,
			BgL_bgl_za762getza7d2hashnum2683z00);
		BGL_BIND_PROCEDURE(BGl_hashtablezd2containszf3zd2envzf3zz__hashz00,
			BgL_bgl_za762hashtableza7d2c2682z00);
		BGL_BIND_PROCEDURE
			(BGl_openzd2stringzd2hashtablezd2putz12zd2envz12zz__hashz00,
			BgL_bgl_za762openza7d2string2681z00);
		BGL_BIND_PROCEDURE(BGl_hashtablezd2putz12zd2envz12zz__hashz00,
			BgL_bgl_za762hashtableza7d2p2680z00);
		BGL_BIND_PROCEDURE
			(BGl_createzd2hashtablezd2openzd2stringzd2envz00zz__hashz00,
			BgL_bgl_za762createza7d2hash2679z00);
		BGL_BIND_PROCEDURE
			(BGl_openzd2stringzd2hashtablezd2addz12zd2envz12zz__hashz00,
			BgL_bgl_za762openza7d2string2678z00);
		BGL_BIND_PROCEDURE(BGl_hashtablezd2addz12zd2envz12zz__hashz00,
			BgL_bgl_za762hashtableza7d2a2677z00);
		BGL_BIND_PROCEDURE
			(BGl_openzd2stringzd2hashtablezd2containszf3zd2envzf3zz__hashz00,
			BgL_bgl_za762openza7d2string2676z00);
		BGL_BIND_PROCEDURE(BGl_hashtablezd2collisionszd2envz00zz__hashz00,
			BgL_bgl_za762hashtableza7d2c2675z00);
		BGL_BIND_PROCEDURE(BGl_hashtablezf3zd2envz21zz__hashz00,
			BgL_bgl_za762hashtableza7f3za72674za7);
		BGL_BIND_PROCEDURE(BGl_hashtablezd2clearz12zd2envz12zz__hashz00,
			BgL_bgl_za762hashtableza7d2c2673z00);
		BGL_BIND_PROCEDURE(BGl_hashtablezd2getzd2envz00zz__hashz00,
			BgL_bgl_za762hashtableza7d2g2672z00);
		BGL_BIND_PROCEDURE(BGl_hashtablezd2mapzd2envz00zz__hashz00,
			BgL_bgl_za762hashtableza7d2m2671z00);
		BGL_BIND_PROCEDURE(BGl_stringzd2hashtablezd2putz12zd2envzc0zz__hashz00,
			BgL_bgl_za762stringza7d2hash2670z00);
		BGL_BIND_PROCEDURE(BGl_hashtablezd2siza7ezd2envza7zz__hashz00,
			BgL_bgl_za762hashtableza7d2s2669z00);
		BGL_BIND_PROCEDURE(BGl_hashtablezd2keyzd2listzd2envzd2zz__hashz00,
			BgL_bgl_za762hashtableza7d2k2668z00);
		BGL_BIND_PROCEDURE
			(BGl_openzd2stringzd2hashtablezd2filterz12zd2envz12zz__hashz00,
			BgL_bgl_za762openza7d2string2667z00);
		BGL_BIND_PROCEDURE(BGl_hashtablezd2updatez12zd2envz12zz__hashz00,
			BgL_bgl_za762hashtableza7d2u2666z00);
	}

/* 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_symbol2578z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_requirezd2initializa7ationz75zz__hashz00));
		ADD_ROOT((void *) (&BGl_symbol2660z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_symbol2584z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_list2586z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_keyword2601z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_symbol2603z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_symbol2608z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_symbol2610z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_symbol2612z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_symbol2614z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_symbol2616z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_keyword2587z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_keyword2589z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_symbol2620z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_keyword2591z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_keyword2593z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_keyword2595z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_keyword2597z00zz__hashz00));
		ADD_ROOT((void *) (&BGl_keyword2599z00zz__hashz00));
#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__hashz00(long
		BgL_checksumz00_5738, char *BgL_fromz00_5739)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zz__hashz00))
				{
					BGl_requirezd2initializa7ationz75zz__hashz00 = BBOOL(((bool_t) 0));
					bgl_constant_bindings();
					BGl_gczd2rootszd2initz00zz__hashz00();
					BGl_cnstzd2initzd2zz__hashz00();
					BGl_importedzd2moduleszd2initz00zz__hashz00();
					return BGl_toplevelzd2initzd2zz__hashz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zz__hashz00(void)
	{
		{	/* Llib/hash.scm 18 */
			BGl_symbol2578z00zz__hashz00 =
				bstring_to_symbol(BGl_string2579z00zz__hashz00);
			BGl_symbol2584z00zz__hashz00 =
				bstring_to_symbol(BGl_string2585z00zz__hashz00);
			BGl_keyword2587z00zz__hashz00 =
				bstring_to_keyword(BGl_string2588z00zz__hashz00);
			BGl_keyword2589z00zz__hashz00 =
				bstring_to_keyword(BGl_string2590z00zz__hashz00);
			BGl_keyword2591z00zz__hashz00 =
				bstring_to_keyword(BGl_string2592z00zz__hashz00);
			BGl_keyword2593z00zz__hashz00 =
				bstring_to_keyword(BGl_string2594z00zz__hashz00);
			BGl_keyword2595z00zz__hashz00 =
				bstring_to_keyword(BGl_string2596z00zz__hashz00);
			BGl_keyword2597z00zz__hashz00 =
				bstring_to_keyword(BGl_string2598z00zz__hashz00);
			BGl_keyword2599z00zz__hashz00 =
				bstring_to_keyword(BGl_string2600z00zz__hashz00);
			BGl_keyword2601z00zz__hashz00 =
				bstring_to_keyword(BGl_string2602z00zz__hashz00);
			BGl_list2586z00zz__hashz00 =
				MAKE_YOUNG_PAIR(BGl_keyword2587z00zz__hashz00,
				MAKE_YOUNG_PAIR(BGl_keyword2589z00zz__hashz00,
					MAKE_YOUNG_PAIR(BGl_keyword2591z00zz__hashz00,
						MAKE_YOUNG_PAIR(BGl_keyword2593z00zz__hashz00,
							MAKE_YOUNG_PAIR(BGl_keyword2595z00zz__hashz00,
								MAKE_YOUNG_PAIR(BGl_keyword2597z00zz__hashz00,
									MAKE_YOUNG_PAIR(BGl_keyword2599z00zz__hashz00,
										MAKE_YOUNG_PAIR(BGl_keyword2601z00zz__hashz00, BNIL))))))));
			BGl_symbol2603z00zz__hashz00 =
				bstring_to_symbol(BGl_string2604z00zz__hashz00);
			BGl_symbol2608z00zz__hashz00 =
				bstring_to_symbol(BGl_string2609z00zz__hashz00);
			BGl_symbol2610z00zz__hashz00 =
				bstring_to_symbol(BGl_string2611z00zz__hashz00);
			BGl_symbol2612z00zz__hashz00 =
				bstring_to_symbol(BGl_string2613z00zz__hashz00);
			BGl_symbol2614z00zz__hashz00 =
				bstring_to_symbol(BGl_string2615z00zz__hashz00);
			BGl_symbol2616z00zz__hashz00 =
				bstring_to_symbol(BGl_string2617z00zz__hashz00);
			BGl_symbol2620z00zz__hashz00 =
				bstring_to_symbol(BGl_string2598z00zz__hashz00);
			return (BGl_symbol2660z00zz__hashz00 =
				bstring_to_symbol(BGl_string2661z00zz__hashz00), BUNSPEC);
		}

	}



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

	}



/* toplevel-init */
	obj_t BGl_toplevelzd2initzd2zz__hashz00(void)
	{
		{	/* Llib/hash.scm 18 */
			BGl_defaultzd2hashtablezd2bucketzd2lengthzd2zz__hashz00 = 128L;
			return (BGl_defaultzd2maxzd2bucketzd2lengthzd2zz__hashz00 = 10L, BUNSPEC);
		}

	}



/* make-hashtable */
	BGL_EXPORTED_DEF obj_t BGl_makezd2hashtablezd2zz__hashz00(obj_t
		BgL_argsz00_42)
	{
		{	/* Llib/hash.scm 167 */
			{	/* Llib/hash.scm 168 */
				obj_t BgL_siza7eza7_1535;

				if (PAIRP(BgL_argsz00_42))
					{	/* Llib/hash.scm 169 */
						obj_t BgL_siza7eza7_1567;

						BgL_siza7eza7_1567 = CAR(BgL_argsz00_42);
						BgL_argsz00_42 = CDR(BgL_argsz00_42);
						{	/* Llib/hash.scm 172 */
							bool_t BgL_test2780z00_5779;

							if (INTEGERP(BgL_siza7eza7_1567))
								{	/* Llib/hash.scm 172 */
									BgL_test2780z00_5779 =
										((long) CINT(BgL_siza7eza7_1567) >= 1L);
								}
							else
								{	/* Llib/hash.scm 172 */
									BgL_test2780z00_5779 = ((bool_t) 0);
								}
							if (BgL_test2780z00_5779)
								{	/* Llib/hash.scm 172 */
									BgL_siza7eza7_1535 = BgL_siza7eza7_1567;
								}
							else
								{	/* Llib/hash.scm 172 */
									if ((BgL_siza7eza7_1567 == BUNSPEC))
										{	/* Llib/hash.scm 174 */
											BgL_siza7eza7_1535 = BINT(128L);
										}
									else
										{	/* Llib/hash.scm 174 */
											BgL_siza7eza7_1535 =
												BGl_errorz00zz__errorz00(BGl_string2573z00zz__hashz00,
												BGl_string2574z00zz__hashz00, BgL_siza7eza7_1567);
										}
								}
						}
					}
				else
					{	/* Llib/hash.scm 168 */
						BgL_siza7eza7_1535 = BINT(128L);
					}
				{	/* Llib/hash.scm 168 */
					obj_t BgL_mblenz00_1536;

					if (PAIRP(BgL_argsz00_42))
						{	/* Llib/hash.scm 182 */
							obj_t BgL_mblenz00_1562;

							BgL_mblenz00_1562 = CAR(BgL_argsz00_42);
							BgL_argsz00_42 = CDR(BgL_argsz00_42);
							{	/* Llib/hash.scm 185 */
								bool_t BgL_test2784z00_5793;

								if (INTEGERP(BgL_mblenz00_1562))
									{	/* Llib/hash.scm 185 */
										BgL_test2784z00_5793 =
											((long) CINT(BgL_mblenz00_1562) >= 1L);
									}
								else
									{	/* Llib/hash.scm 185 */
										BgL_test2784z00_5793 = ((bool_t) 0);
									}
								if (BgL_test2784z00_5793)
									{	/* Llib/hash.scm 185 */
										BgL_mblenz00_1536 = BgL_mblenz00_1562;
									}
								else
									{	/* Llib/hash.scm 185 */
										if ((BgL_mblenz00_1562 == BUNSPEC))
											{	/* Llib/hash.scm 187 */
												BgL_mblenz00_1536 = BINT(10L);
											}
										else
											{	/* Llib/hash.scm 187 */
												BgL_mblenz00_1536 =
													BGl_errorz00zz__errorz00(BGl_string2573z00zz__hashz00,
													BGl_string2575z00zz__hashz00, BgL_mblenz00_1562);
											}
									}
							}
						}
					else
						{	/* Llib/hash.scm 181 */
							BgL_mblenz00_1536 = BINT(10L);
						}
					{	/* Llib/hash.scm 181 */
						obj_t BgL_eqtestz00_1537;

						if (PAIRP(BgL_argsz00_42))
							{	/* Llib/hash.scm 195 */
								obj_t BgL_eqtestz00_1557;

								BgL_eqtestz00_1557 = CAR(BgL_argsz00_42);
								BgL_argsz00_42 = CDR(BgL_argsz00_42);
								{	/* Llib/hash.scm 198 */
									bool_t BgL_test2788z00_5807;

									if (PROCEDUREP(BgL_eqtestz00_1557))
										{	/* Llib/hash.scm 198 */
											BgL_test2788z00_5807 =
												PROCEDURE_CORRECT_ARITYP(BgL_eqtestz00_1557,
												(int) (2L));
										}
									else
										{	/* Llib/hash.scm 198 */
											BgL_test2788z00_5807 = ((bool_t) 0);
										}
									if (BgL_test2788z00_5807)
										{	/* Llib/hash.scm 198 */
											BgL_eqtestz00_1537 = BgL_eqtestz00_1557;
										}
									else
										{	/* Llib/hash.scm 198 */
											if ((BgL_eqtestz00_1557 == BUNSPEC))
												{	/* Llib/hash.scm 200 */
													BgL_eqtestz00_1537 = BFALSE;
												}
											else
												{	/* Llib/hash.scm 200 */
													BgL_eqtestz00_1537 =
														BGl_errorz00zz__errorz00
														(BGl_string2573z00zz__hashz00,
														BGl_string2576z00zz__hashz00, BgL_eqtestz00_1557);
												}
										}
								}
							}
						else
							{	/* Llib/hash.scm 194 */
								BgL_eqtestz00_1537 = BFALSE;
							}
						{	/* Llib/hash.scm 194 */
							obj_t BgL_hashnz00_1538;

							if (PAIRP(BgL_argsz00_42))
								{	/* Llib/hash.scm 208 */
									obj_t BgL_hnz00_1552;

									BgL_hnz00_1552 = CAR(BgL_argsz00_42);
									BgL_argsz00_42 = CDR(BgL_argsz00_42);
									{	/* Llib/hash.scm 211 */
										bool_t BgL_test2792z00_5819;

										if (PROCEDUREP(BgL_hnz00_1552))
											{	/* Llib/hash.scm 211 */
												BgL_test2792z00_5819 =
													PROCEDURE_CORRECT_ARITYP(BgL_hnz00_1552, (int) (1L));
											}
										else
											{	/* Llib/hash.scm 211 */
												BgL_test2792z00_5819 = ((bool_t) 0);
											}
										if (BgL_test2792z00_5819)
											{	/* Llib/hash.scm 211 */
												BgL_hashnz00_1538 = BgL_hnz00_1552;
											}
										else
											{	/* Llib/hash.scm 211 */
												if ((BgL_hnz00_1552 == BUNSPEC))
													{	/* Llib/hash.scm 213 */
														BgL_hashnz00_1538 = BFALSE;
													}
												else
													{	/* Llib/hash.scm 213 */
														BgL_hashnz00_1538 =
															BGl_errorz00zz__errorz00
															(BGl_string2573z00zz__hashz00,
															BGl_string2577z00zz__hashz00, BgL_hnz00_1552);
													}
											}
									}
								}
							else
								{	/* Llib/hash.scm 207 */
									BgL_hashnz00_1538 = BFALSE;
								}
							{	/* Llib/hash.scm 207 */
								long BgL_wkkz00_1539;

								if (PAIRP(BgL_argsz00_42))
									{	/* Llib/hash.scm 221 */
										obj_t BgL_wkkz00_1549;

										BgL_wkkz00_1549 = CAR(BgL_argsz00_42);
										BgL_argsz00_42 = CDR(BgL_argsz00_42);
										{	/* Llib/hash.scm 223 */
											bool_t BgL_test2796z00_5831;

											if ((BgL_wkkz00_1549 == BUNSPEC))
												{	/* Llib/hash.scm 223 */
													BgL_test2796z00_5831 = ((bool_t) 0);
												}
											else
												{	/* Llib/hash.scm 223 */
													BgL_test2796z00_5831 = CBOOL(BgL_wkkz00_1549);
												}
											if (BgL_test2796z00_5831)
												{	/* Llib/hash.scm 223 */
													BgL_wkkz00_1539 = 1L;
												}
											else
												{	/* Llib/hash.scm 223 */
													BgL_wkkz00_1539 = 0L;
												}
										}
									}
								else
									{	/* Llib/hash.scm 220 */
										BgL_wkkz00_1539 = 0L;
									}
								{	/* Llib/hash.scm 220 */
									long BgL_wkdz00_1540;

									if (PAIRP(BgL_argsz00_42))
										{	/* Llib/hash.scm 228 */
											obj_t BgL_wkdz00_1546;

											BgL_wkdz00_1546 = CAR(BgL_argsz00_42);
											{	/* Llib/hash.scm 229 */
												bool_t BgL_test2799z00_5838;

												if ((BgL_wkdz00_1546 == BUNSPEC))
													{	/* Llib/hash.scm 229 */
														BgL_test2799z00_5838 = ((bool_t) 0);
													}
												else
													{	/* Llib/hash.scm 229 */
														BgL_test2799z00_5838 = CBOOL(BgL_wkdz00_1546);
													}
												if (BgL_test2799z00_5838)
													{	/* Llib/hash.scm 229 */
														BgL_wkdz00_1540 = 2L;
													}
												else
													{	/* Llib/hash.scm 229 */
														BgL_wkdz00_1540 = 0L;
													}
											}
										}
									else
										{	/* Llib/hash.scm 227 */
											BgL_wkdz00_1540 = 0L;
										}
									{	/* Llib/hash.scm 227 */
										long BgL_wkz00_1541;

										BgL_wkz00_1541 = (BgL_wkkz00_1539 | BgL_wkdz00_1540);
										{	/* Llib/hash.scm 233 */

											if ((BINT(BgL_wkz00_1541) == BINT(8L)))
												{	/* Llib/hash.scm 235 */
													obj_t BgL_arg1282z00_1542;

													BgL_arg1282z00_1542 =
														make_vector(
														(3L * (long) CINT(BgL_siza7eza7_1535)), BFALSE);
													{	/* Llib/hash.scm 235 */
														obj_t BgL_newz00_3154;

														BgL_newz00_3154 =
															create_struct(BGl_symbol2578z00zz__hashz00,
															(int) (8L));
														{	/* Llib/hash.scm 235 */
															obj_t BgL_auxz00_5854;
															int BgL_tmpz00_5852;

															BgL_auxz00_5854 = BINT(0L);
															BgL_tmpz00_5852 = (int) (7L);
															STRUCT_SET(BgL_newz00_3154, BgL_tmpz00_5852,
																BgL_auxz00_5854);
														}
														{	/* Llib/hash.scm 235 */
															obj_t BgL_auxz00_5859;
															int BgL_tmpz00_5857;

															BgL_auxz00_5859 = BINT(0L);
															BgL_tmpz00_5857 = (int) (6L);
															STRUCT_SET(BgL_newz00_3154, BgL_tmpz00_5857,
																BgL_auxz00_5859);
														}
														{	/* Llib/hash.scm 235 */
															obj_t BgL_auxz00_5864;
															int BgL_tmpz00_5862;

															BgL_auxz00_5864 = BINT(BgL_wkz00_1541);
															BgL_tmpz00_5862 = (int) (5L);
															STRUCT_SET(BgL_newz00_3154, BgL_tmpz00_5862,
																BgL_auxz00_5864);
														}
														{	/* Llib/hash.scm 235 */
															int BgL_tmpz00_5867;

															BgL_tmpz00_5867 = (int) (4L);
															STRUCT_SET(BgL_newz00_3154, BgL_tmpz00_5867,
																BGl_listzd2envzd2zz__r4_pairs_and_lists_6_3z00);
														}
														{	/* Llib/hash.scm 235 */
															int BgL_tmpz00_5870;

															BgL_tmpz00_5870 = (int) (3L);
															STRUCT_SET(BgL_newz00_3154, BgL_tmpz00_5870,
																BGl_eqzf3zd2envz21zz__r4_equivalence_6_2z00);
														}
														{	/* Llib/hash.scm 235 */
															int BgL_tmpz00_5873;

															BgL_tmpz00_5873 = (int) (2L);
															STRUCT_SET(BgL_newz00_3154, BgL_tmpz00_5873,
																BgL_arg1282z00_1542);
														}
														{	/* Llib/hash.scm 235 */
															int BgL_tmpz00_5876;

															BgL_tmpz00_5876 = (int) (1L);
															STRUCT_SET(BgL_newz00_3154, BgL_tmpz00_5876,
																BgL_siza7eza7_1535);
														}
														{	/* Llib/hash.scm 235 */
															obj_t BgL_auxz00_5881;
															int BgL_tmpz00_5879;

															BgL_auxz00_5881 = BINT(0L);
															BgL_tmpz00_5879 = (int) (0L);
															STRUCT_SET(BgL_newz00_3154, BgL_tmpz00_5879,
																BgL_auxz00_5881);
														}
														return BgL_newz00_3154;
													}
												}
											else
												{	/* Llib/hash.scm 236 */
													obj_t BgL_arg1285z00_1544;

													BgL_arg1285z00_1544 =
														make_vector((long) CINT(BgL_siza7eza7_1535), BNIL);
													{	/* Llib/hash.scm 236 */
														obj_t BgL_newz00_3163;

														BgL_newz00_3163 =
															create_struct(BGl_symbol2578z00zz__hashz00,
															(int) (8L));
														{	/* Llib/hash.scm 236 */
															int BgL_tmpz00_5888;

															BgL_tmpz00_5888 = (int) (7L);
															STRUCT_SET(BgL_newz00_3163, BgL_tmpz00_5888,
																BGL_REAL_CNST(BGl_real2580z00zz__hashz00));
														}
														{	/* Llib/hash.scm 236 */
															obj_t BgL_auxz00_5893;
															int BgL_tmpz00_5891;

															BgL_auxz00_5893 = BINT((-1L));
															BgL_tmpz00_5891 = (int) (6L);
															STRUCT_SET(BgL_newz00_3163, BgL_tmpz00_5891,
																BgL_auxz00_5893);
														}
														{	/* Llib/hash.scm 236 */
															obj_t BgL_auxz00_5898;
															int BgL_tmpz00_5896;

															BgL_auxz00_5898 = BINT(BgL_wkz00_1541);
															BgL_tmpz00_5896 = (int) (5L);
															STRUCT_SET(BgL_newz00_3163, BgL_tmpz00_5896,
																BgL_auxz00_5898);
														}
														{	/* Llib/hash.scm 236 */
															int BgL_tmpz00_5901;

															BgL_tmpz00_5901 = (int) (4L);
															STRUCT_SET(BgL_newz00_3163, BgL_tmpz00_5901,
																BgL_hashnz00_1538);
														}
														{	/* Llib/hash.scm 236 */
															int BgL_tmpz00_5904;

															BgL_tmpz00_5904 = (int) (3L);
															STRUCT_SET(BgL_newz00_3163, BgL_tmpz00_5904,
																BgL_eqtestz00_1537);
														}
														{	/* Llib/hash.scm 236 */
															int BgL_tmpz00_5907;

															BgL_tmpz00_5907 = (int) (2L);
															STRUCT_SET(BgL_newz00_3163, BgL_tmpz00_5907,
																BgL_arg1285z00_1544);
														}
														{	/* Llib/hash.scm 236 */
															int BgL_tmpz00_5910;

															BgL_tmpz00_5910 = (int) (1L);
															STRUCT_SET(BgL_newz00_3163, BgL_tmpz00_5910,
																BgL_mblenz00_1536);
														}
														{	/* Llib/hash.scm 236 */
															obj_t BgL_auxz00_5915;
															int BgL_tmpz00_5913;

															BgL_auxz00_5915 = BINT(0L);
															BgL_tmpz00_5913 = (int) (0L);
															STRUCT_SET(BgL_newz00_3163, BgL_tmpz00_5913,
																BgL_auxz00_5915);
														}
														return BgL_newz00_3163;
													}
												}
										}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* &make-hashtable */
	obj_t BGl_z62makezd2hashtablezb0zz__hashz00(obj_t BgL_envz00_5432,
		obj_t BgL_argsz00_5433)
	{
		{	/* Llib/hash.scm 167 */
			return BGl_makezd2hashtablezd2zz__hashz00(BgL_argsz00_5433);
		}

	}



/* _create-hashtable */
	obj_t BGl__createzd2hashtablezd2zz__hashz00(obj_t BgL_env1160z00_52,
		obj_t BgL_opt1159z00_51)
	{
		{	/* Llib/hash.scm 241 */
			{	/* Llib/hash.scm 241 */
				long BgL_l1161z00_1571;

				{	/* Llib/hash.scm 241 */
					obj_t BgL_vectorz00_3172;

					if (VECTORP(BgL_opt1159z00_51))
						{	/* Llib/hash.scm 241 */
							BgL_vectorz00_3172 = BgL_opt1159z00_51;
						}
					else
						{
							obj_t BgL_auxz00_5921;

							BgL_auxz00_5921 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
								BINT(8950L), BGl_string2582z00zz__hashz00,
								BGl_string2583z00zz__hashz00, BgL_opt1159z00_51);
							FAILURE(BgL_auxz00_5921, BFALSE, BFALSE);
						}
					BgL_l1161z00_1571 = VECTOR_LENGTH(BgL_vectorz00_3172);
				}
				{	/* Llib/hash.scm 241 */

					{	/* Llib/hash.scm 241 */
						obj_t BgL_bucketzd2expansionzd2_1575;

						BgL_bucketzd2expansionzd2_1575 =
							BGL_REAL_CNST(BGl_real2580z00zz__hashz00);
						{	/* Llib/hash.scm 241 */
							obj_t BgL_eqtestz00_1576;

							BgL_eqtestz00_1576 = BFALSE;
							{	/* Llib/hash.scm 241 */
								obj_t BgL_hashz00_1577;

								BgL_hashz00_1577 = BFALSE;
								{	/* Llib/hash.scm 241 */
									obj_t BgL_maxzd2bucketzd2lengthz00_1578;

									BgL_maxzd2bucketzd2lengthz00_1578 = BINT(10L);
									{	/* Llib/hash.scm 241 */
										obj_t BgL_maxzd2lengthzd2_1579;

										BgL_maxzd2lengthzd2_1579 = BINT(16384L);
										{	/* Llib/hash.scm 241 */
											obj_t BgL_persistentz00_1580;

											BgL_persistentz00_1580 = BFALSE;
											{	/* Llib/hash.scm 241 */
												obj_t BgL_siza7eza7_1581;

												BgL_siza7eza7_1581 = BINT(128L);
												{	/* Llib/hash.scm 246 */
													obj_t BgL_weakz00_1582;

													BgL_weakz00_1582 = BGl_symbol2584z00zz__hashz00;
													{	/* Llib/hash.scm 241 */

														{
															long BgL_iz00_1583;

															BgL_iz00_1583 = 0L;
														BgL_check1163z00_1584:
															if ((BgL_iz00_1583 == BgL_l1161z00_1571))
																{	/* Llib/hash.scm 241 */
																	BNIL;
																}
															else
																{	/* Llib/hash.scm 241 */
																	bool_t BgL_test2804z00_5931;

																	{	/* Llib/hash.scm 241 */
																		obj_t BgL_arg1331z00_1590;

																		BgL_arg1331z00_1590 =
																			VECTOR_REF(
																			((obj_t) BgL_opt1159z00_51),
																			BgL_iz00_1583);
																		BgL_test2804z00_5931 =
																			CBOOL
																			(BGl_memqz00zz__r4_pairs_and_lists_6_3z00
																			(BgL_arg1331z00_1590,
																				BGl_list2586z00zz__hashz00));
																	}
																	if (BgL_test2804z00_5931)
																		{
																			long BgL_iz00_5936;

																			BgL_iz00_5936 = (BgL_iz00_1583 + 2L);
																			BgL_iz00_1583 = BgL_iz00_5936;
																			goto BgL_check1163z00_1584;
																		}
																	else
																		{	/* Llib/hash.scm 241 */
																			obj_t BgL_arg1330z00_1589;

																			BgL_arg1330z00_1589 =
																				VECTOR_REF(
																				((obj_t) BgL_opt1159z00_51),
																				BgL_iz00_1583);
																			BGl_errorz00zz__errorz00
																				(BGl_symbol2603z00zz__hashz00,
																				BGl_string2605z00zz__hashz00,
																				BgL_arg1330z00_1589);
																		}
																}
														}
														{	/* Llib/hash.scm 241 */
															obj_t BgL_index1165z00_1591;

															{
																long BgL_iz00_3188;

																BgL_iz00_3188 = 0L;
															BgL_search1162z00_3187:
																if ((BgL_iz00_3188 == BgL_l1161z00_1571))
																	{	/* Llib/hash.scm 241 */
																		BgL_index1165z00_1591 = BINT((-1L));
																	}
																else
																	{	/* Llib/hash.scm 241 */
																		if (
																			(BgL_iz00_3188 ==
																				(BgL_l1161z00_1571 - 1L)))
																			{	/* Llib/hash.scm 241 */
																				BgL_index1165z00_1591 =
																					BGl_errorz00zz__errorz00
																					(BGl_symbol2603z00zz__hashz00,
																					BGl_string2606z00zz__hashz00,
																					BINT(VECTOR_LENGTH
																						(BgL_opt1159z00_51)));
																			}
																		else
																			{	/* Llib/hash.scm 241 */
																				obj_t BgL_vz00_3198;

																				BgL_vz00_3198 =
																					VECTOR_REF(BgL_opt1159z00_51,
																					BgL_iz00_3188);
																				if ((BgL_vz00_3198 ==
																						BGl_keyword2587z00zz__hashz00))
																					{	/* Llib/hash.scm 241 */
																						BgL_index1165z00_1591 =
																							BINT((BgL_iz00_3188 + 1L));
																					}
																				else
																					{
																						long BgL_iz00_5955;

																						BgL_iz00_5955 =
																							(BgL_iz00_3188 + 2L);
																						BgL_iz00_3188 = BgL_iz00_5955;
																						goto BgL_search1162z00_3187;
																					}
																			}
																	}
															}
															{	/* Llib/hash.scm 241 */
																bool_t BgL_test2808z00_5957;

																{	/* Llib/hash.scm 241 */
																	long BgL_n1z00_3202;

																	{	/* Llib/hash.scm 241 */
																		obj_t BgL_tmpz00_5958;

																		if (INTEGERP(BgL_index1165z00_1591))
																			{	/* Llib/hash.scm 241 */
																				BgL_tmpz00_5958 = BgL_index1165z00_1591;
																			}
																		else
																			{
																				obj_t BgL_auxz00_5961;

																				BgL_auxz00_5961 =
																					BGl_typezd2errorzd2zz__errorz00
																					(BGl_string2581z00zz__hashz00,
																					BINT(8950L),
																					BGl_string2582z00zz__hashz00,
																					BGl_string2607z00zz__hashz00,
																					BgL_index1165z00_1591);
																				FAILURE(BgL_auxz00_5961, BFALSE,
																					BFALSE);
																			}
																		BgL_n1z00_3202 =
																			(long) CINT(BgL_tmpz00_5958);
																	}
																	BgL_test2808z00_5957 = (BgL_n1z00_3202 >= 0L);
																}
																if (BgL_test2808z00_5957)
																	{
																		long BgL_auxz00_5974;
																		obj_t BgL_auxz00_5967;

																		{	/* Llib/hash.scm 241 */
																			obj_t BgL_tmpz00_5975;

																			if (INTEGERP(BgL_index1165z00_1591))
																				{	/* Llib/hash.scm 241 */
																					BgL_tmpz00_5975 =
																						BgL_index1165z00_1591;
																				}
																			else
																				{
																					obj_t BgL_auxz00_5978;

																					BgL_auxz00_5978 =
																						BGl_typezd2errorzd2zz__errorz00
																						(BGl_string2581z00zz__hashz00,
																						BINT(8950L),
																						BGl_string2582z00zz__hashz00,
																						BGl_string2607z00zz__hashz00,
																						BgL_index1165z00_1591);
																					FAILURE(BgL_auxz00_5978, BFALSE,
																						BFALSE);
																				}
																			BgL_auxz00_5974 =
																				(long) CINT(BgL_tmpz00_5975);
																		}
																		if (VECTORP(BgL_opt1159z00_51))
																			{	/* Llib/hash.scm 241 */
																				BgL_auxz00_5967 = BgL_opt1159z00_51;
																			}
																		else
																			{
																				obj_t BgL_auxz00_5970;

																				BgL_auxz00_5970 =
																					BGl_typezd2errorzd2zz__errorz00
																					(BGl_string2581z00zz__hashz00,
																					BINT(8950L),
																					BGl_string2582z00zz__hashz00,
																					BGl_string2583z00zz__hashz00,
																					BgL_opt1159z00_51);
																				FAILURE(BgL_auxz00_5970, BFALSE,
																					BFALSE);
																			}
																		BgL_bucketzd2expansionzd2_1575 =
																			VECTOR_REF(BgL_auxz00_5967,
																			BgL_auxz00_5974);
																	}
																else
																	{	/* Llib/hash.scm 241 */
																		BFALSE;
																	}
															}
														}
														{	/* Llib/hash.scm 241 */
															obj_t BgL_index1166z00_1593;

															{
																long BgL_iz00_3204;

																BgL_iz00_3204 = 0L;
															BgL_search1162z00_3203:
																if ((BgL_iz00_3204 == BgL_l1161z00_1571))
																	{	/* Llib/hash.scm 241 */
																		BgL_index1166z00_1593 = BINT((-1L));
																	}
																else
																	{	/* Llib/hash.scm 241 */
																		if (
																			(BgL_iz00_3204 ==
																				(BgL_l1161z00_1571 - 1L)))
																			{	/* Llib/hash.scm 241 */
																				BgL_index1166z00_1593 =
																					BGl_errorz00zz__errorz00
																					(BGl_symbol2603z00zz__hashz00,
																					BGl_string2606z00zz__hashz00,
																					BINT(VECTOR_LENGTH
																						(BgL_opt1159z00_51)));
																			}
																		else
																			{	/* Llib/hash.scm 241 */
																				obj_t BgL_vz00_3214;

																				BgL_vz00_3214 =
																					VECTOR_REF(BgL_opt1159z00_51,
																					BgL_iz00_3204);
																				if ((BgL_vz00_3214 ==
																						BGl_keyword2589z00zz__hashz00))
																					{	/* Llib/hash.scm 241 */
																						BgL_index1166z00_1593 =
																							BINT((BgL_iz00_3204 + 1L));
																					}
																				else
																					{
																						long BgL_iz00_5998;

																						BgL_iz00_5998 =
																							(BgL_iz00_3204 + 2L);
																						BgL_iz00_3204 = BgL_iz00_5998;
																						goto BgL_search1162z00_3203;
																					}
																			}
																	}
															}
															{	/* Llib/hash.scm 241 */
																bool_t BgL_test2815z00_6000;

																{	/* Llib/hash.scm 241 */
																	long BgL_n1z00_3218;

																	{	/* Llib/hash.scm 241 */
																		obj_t BgL_tmpz00_6001;

																		if (INTEGERP(BgL_index1166z00_1593))
																			{	/* Llib/hash.scm 241 */
																				BgL_tmpz00_6001 = BgL_index1166z00_1593;
																			}
																		else
																			{
																				obj_t BgL_auxz00_6004;

																				BgL_auxz00_6004 =
																					BGl_typezd2errorzd2zz__errorz00
																					(BGl_string2581z00zz__hashz00,
																					BINT(8950L),
																					BGl_string2582z00zz__hashz00,
																					BGl_string2607z00zz__hashz00,
																					BgL_index1166z00_1593);
																				FAILURE(BgL_auxz00_6004, BFALSE,
																					BFALSE);
																			}
																		BgL_n1z00_3218 =
																			(long) CINT(BgL_tmpz00_6001);
																	}
																	BgL_test2815z00_6000 = (BgL_n1z00_3218 >= 0L);
																}
																if (BgL_test2815z00_6000)
																	{
																		long BgL_auxz00_6017;
																		obj_t BgL_auxz00_6010;

																		{	/* Llib/hash.scm 241 */
																			obj_t BgL_tmpz00_6018;

																			if (INTEGERP(BgL_index1166z00_1593))
																				{	/* Llib/hash.scm 241 */
																					BgL_tmpz00_6018 =
																						BgL_index1166z00_1593;
																				}
																			else
																				{
																					obj_t BgL_auxz00_6021;

																					BgL_auxz00_6021 =
																						BGl_typezd2errorzd2zz__errorz00
																						(BGl_string2581z00zz__hashz00,
																						BINT(8950L),
																						BGl_string2582z00zz__hashz00,
																						BGl_string2607z00zz__hashz00,
																						BgL_index1166z00_1593);
																					FAILURE(BgL_auxz00_6021, BFALSE,
																						BFALSE);
																				}
																			BgL_auxz00_6017 =
																				(long) CINT(BgL_tmpz00_6018);
																		}
																		if (VECTORP(BgL_opt1159z00_51))
																			{	/* Llib/hash.scm 241 */
																				BgL_auxz00_6010 = BgL_opt1159z00_51;
																			}
																		else
																			{
																				obj_t BgL_auxz00_6013;

																				BgL_auxz00_6013 =
																					BGl_typezd2errorzd2zz__errorz00
																					(BGl_string2581z00zz__hashz00,
																					BINT(8950L),
																					BGl_string2582z00zz__hashz00,
																					BGl_string2583z00zz__hashz00,
																					BgL_opt1159z00_51);
																				FAILURE(BgL_auxz00_6013, BFALSE,
																					BFALSE);
																			}
																		BgL_eqtestz00_1576 =
																			VECTOR_REF(BgL_auxz00_6010,
																			BgL_auxz00_6017);
																	}
																else
																	{	/* Llib/hash.scm 241 */
																		BFALSE;
																	}
															}
														}
														{	/* Llib/hash.scm 241 */
															obj_t BgL_index1167z00_1595;

															{
																long BgL_iz00_3220;

																BgL_iz00_3220 = 0L;
															BgL_search1162z00_3219:
																if ((BgL_iz00_3220 == BgL_l1161z00_1571))
																	{	/* Llib/hash.scm 241 */
																		BgL_index1167z00_1595 = BINT((-1L));
																	}
																else
																	{	/* Llib/hash.scm 241 */
																		if (
																			(BgL_iz00_3220 ==
																				(BgL_l1161z00_1571 - 1L)))
																			{	/* Llib/hash.scm 241 */
																				BgL_index1167z00_1595 =
																					BGl_errorz00zz__errorz00
																					(BGl_symbol2603z00zz__hashz00,
																					BGl_string2606z00zz__hashz00,
																					BINT(VECTOR_LENGTH
																						(BgL_opt1159z00_51)));
																			}
																		else
																			{	/* Llib/hash.scm 241 */
																				obj_t BgL_vz00_3230;

																				BgL_vz00_3230 =
																					VECTOR_REF(BgL_opt1159z00_51,
																					BgL_iz00_3220);
																				if ((BgL_vz00_3230 ==
																						BGl_keyword2591z00zz__hashz00))
																					{	/* Llib/hash.scm 241 */
																						BgL_index1167z00_1595 =
																							BINT((BgL_iz00_3220 + 1L));
																					}
																				else
																					{
																						long BgL_iz00_6041;

																						BgL_iz00_6041 =
																							(BgL_iz00_3220 + 2L);
																						BgL_iz00_3220 = BgL_iz00_6041;
																						goto BgL_search1162z00_3219;
																					}
																			}
																	}
															}
															{	/* Llib/hash.scm 241 */
																bool_t BgL_test2822z00_6043;

																{	/* Llib/hash.scm 241 */
																	long BgL_n1z00_3234;

																	{	/* Llib/hash.scm 241 */
																		obj_t BgL_tmpz00_6044;

																		if (INTEGERP(BgL_index1167z00_1595))
																			{	/* Llib/hash.scm 241 */
																				BgL_tmpz00_6044 = BgL_index1167z00_1595;
																			}
																		else
																			{
																				obj_t BgL_auxz00_6047;

																				BgL_auxz00_6047 =
																					BGl_typezd2errorzd2zz__errorz00
																					(BGl_string2581z00zz__hashz00,
																					BINT(8950L),
																					BGl_string2582z00zz__hashz00,
																					BGl_string2607z00zz__hashz00,
																					BgL_index1167z00_1595);
																				FAILURE(BgL_auxz00_6047, BFALSE,
																					BFALSE);
																			}
																		BgL_n1z00_3234 =
																			(long) CINT(BgL_tmpz00_6044);
																	}
																	BgL_test2822z00_6043 = (BgL_n1z00_3234 >= 0L);
																}
																if (BgL_test2822z00_6043)
																	{
																		long BgL_auxz00_6060;
																		obj_t BgL_auxz00_6053;

																		{	/* Llib/hash.scm 241 */
																			obj_t BgL_tmpz00_6061;

																			if (INTEGERP(BgL_index1167z00_1595))
																				{	/* Llib/hash.scm 241 */
																					BgL_tmpz00_6061 =
																						BgL_index1167z00_1595;
																				}
																			else
																				{
																					obj_t BgL_auxz00_6064;

																					BgL_auxz00_6064 =
																						BGl_typezd2errorzd2zz__errorz00
																						(BGl_string2581z00zz__hashz00,
																						BINT(8950L),
																						BGl_string2582z00zz__hashz00,
																						BGl_string2607z00zz__hashz00,
																						BgL_index1167z00_1595);
																					FAILURE(BgL_auxz00_6064, BFALSE,
																						BFALSE);
																				}
																			BgL_auxz00_6060 =
																				(long) CINT(BgL_tmpz00_6061);
																		}
																		if (VECTORP(BgL_opt1159z00_51))
																			{	/* Llib/hash.scm 241 */
																				BgL_auxz00_6053 = BgL_opt1159z00_51;
																			}
																		else
																			{
																				obj_t BgL_auxz00_6056;

																				BgL_auxz00_6056 =
																					BGl_typezd2errorzd2zz__errorz00
																					(BGl_string2581z00zz__hashz00,
																					BINT(8950L),
																					BGl_string2582z00zz__hashz00,
																					BGl_string2583z00zz__hashz00,
																					BgL_opt1159z00_51);
																				FAILURE(BgL_auxz00_6056, BFALSE,
																					BFALSE);
																			}
																		BgL_hashz00_1577 =
																			VECTOR_REF(BgL_auxz00_6053,
																			BgL_auxz00_6060);
																	}
																else
																	{	/* Llib/hash.scm 241 */
																		BFALSE;
																	}
															}
														}
														{	/* Llib/hash.scm 241 */
															obj_t BgL_index1168z00_1597;

															{
																long BgL_iz00_3236;

																BgL_iz00_3236 = 0L;
															BgL_search1162z00_3235:
																if ((BgL_iz00_3236 == BgL_l1161z00_1571))
																	{	/* Llib/hash.scm 241 */
																		BgL_index1168z00_1597 = BINT((-1L));
																	}
																else
																	{	/* Llib/hash.scm 241 */
																		if (
																			(BgL_iz00_3236 ==
																				(BgL_l1161z00_1571 - 1L)))
																			{	/* Llib/hash.scm 241 */
																				BgL_index1168z00_1597 =
																					BGl_errorz00zz__errorz00
																					(BGl_symbol2603z00zz__hashz00,
																					BGl_string2606z00zz__hashz00,
																					BINT(VECTOR_LENGTH
																						(BgL_opt1159z00_51)));
																			}
																		else
																			{	/* Llib/hash.scm 241 */
																				obj_t BgL_vz00_3246;

																				BgL_vz00_3246 =
																					VECTOR_REF(BgL_opt1159z00_51,
																					BgL_iz00_3236);
																				if ((BgL_vz00_3246 ==
																						BGl_keyword2593z00zz__hashz00))
																					{	/* Llib/hash.scm 241 */
																						BgL_index1168z00_1597 =
																							BINT((BgL_iz00_3236 + 1L));
																					}
																				else
																					{
																						long BgL_iz00_6084;

																						BgL_iz00_6084 =
																							(BgL_iz00_3236 + 2L);
																						BgL_iz00_3236 = BgL_iz00_6084;
																						goto BgL_search1162z00_3235;
																					}
																			}
																	}
															}
															{	/* Llib/hash.scm 241 */
																bool_t BgL_test2829z00_6086;

																{	/* Llib/hash.scm 241 */
																	long BgL_n1z00_3250;

																	{	/* Llib/hash.scm 241 */
																		obj_t BgL_tmpz00_6087;

																		if (INTEGERP(BgL_index1168z00_1597))
																			{	/* Llib/hash.scm 241 */
																				BgL_tmpz00_6087 = BgL_index1168z00_1597;
																			}
																		else
																			{
																				obj_t BgL_auxz00_6090;

																				BgL_auxz00_6090 =
																					BGl_typezd2errorzd2zz__errorz00
																					(BGl_string2581z00zz__hashz00,
																					BINT(8950L),
																					BGl_string2582z00zz__hashz00,
																					BGl_string2607z00zz__hashz00,
																					BgL_index1168z00_1597);
																				FAILURE(BgL_auxz00_6090, BFALSE,
																					BFALSE);
																			}
																		BgL_n1z00_3250 =
																			(long) CINT(BgL_tmpz00_6087);
																	}
																	BgL_test2829z00_6086 = (BgL_n1z00_3250 >= 0L);
																}
																if (BgL_test2829z00_6086)
																	{
																		long BgL_auxz00_6103;
																		obj_t BgL_auxz00_6096;

																		{	/* Llib/hash.scm 241 */
																			obj_t BgL_tmpz00_6104;

																			if (INTEGERP(BgL_index1168z00_1597))
																				{	/* Llib/hash.scm 241 */
																					BgL_tmpz00_6104 =
																						BgL_index1168z00_1597;
																				}
																			else
																				{
																					obj_t BgL_auxz00_6107;

																					BgL_auxz00_6107 =
																						BGl_typezd2errorzd2zz__errorz00
																						(BGl_string2581z00zz__hashz00,
																						BINT(8950L),
																						BGl_string2582z00zz__hashz00,
																						BGl_string2607z00zz__hashz00,
																						BgL_index1168z00_1597);
																					FAILURE(BgL_auxz00_6107, BFALSE,
																						BFALSE);
																				}
																			BgL_auxz00_6103 =
																				(long) CINT(BgL_tmpz00_6104);
																		}
																		if (VECTORP(BgL_opt1159z00_51))
																			{	/* Llib/hash.scm 241 */
																				BgL_auxz00_6096 = BgL_opt1159z00_51;
																			}
																		else
																			{
																				obj_t BgL_auxz00_6099;

																				BgL_auxz00_6099 =
																					BGl_typezd2errorzd2zz__errorz00
																					(BGl_string2581z00zz__hashz00,
																					BINT(8950L),
																					BGl_string2582z00zz__hashz00,
																					BGl_string2583z00zz__hashz00,
																					BgL_opt1159z00_51);
																				FAILURE(BgL_auxz00_6099, BFALSE,
																					BFALSE);
																			}
																		BgL_maxzd2bucketzd2lengthz00_1578 =
																			VECTOR_REF(BgL_auxz00_6096,
																			BgL_auxz00_6103);
																	}
																else
																	{	/* Llib/hash.scm 241 */
																		BFALSE;
																	}
															}
														}
														{	/* Llib/hash.scm 241 */
															obj_t BgL_index1169z00_1599;

															{
																long BgL_iz00_3252;

																BgL_iz00_3252 = 0L;
															BgL_search1162z00_3251:
																if ((BgL_iz00_3252 == BgL_l1161z00_1571))
																	{	/* Llib/hash.scm 241 */
																		BgL_index1169z00_1599 = BINT((-1L));
																	}
																else
																	{	/* Llib/hash.scm 241 */
																		if (
																			(BgL_iz00_3252 ==
																				(BgL_l1161z00_1571 - 1L)))
																			{	/* Llib/hash.scm 241 */
																				BgL_index1169z00_1599 =
																					BGl_errorz00zz__errorz00
																					(BGl_symbol2603z00zz__hashz00,
																					BGl_string2606z00zz__hashz00,
																					BINT(VECTOR_LENGTH
																						(BgL_opt1159z00_51)));
																			}
																		else
																			{	/* Llib/hash.scm 241 */
																				obj_t BgL_vz00_3262;

																				BgL_vz00_3262 =
																					VECTOR_REF(BgL_opt1159z00_51,
																					BgL_iz00_3252);
																				if ((BgL_vz00_3262 ==
																						BGl_keyword2595z00zz__hashz00))
																					{	/* Llib/hash.scm 241 */
																						BgL_index1169z00_1599 =
																							BINT((BgL_iz00_3252 + 1L));
																					}
																				else
																					{
																						long BgL_iz00_6127;

																						BgL_iz00_6127 =
																							(BgL_iz00_3252 + 2L);
																						BgL_iz00_3252 = BgL_iz00_6127;
																						goto BgL_search1162z00_3251;
																					}
																			}
																	}
															}
															{	/* Llib/hash.scm 241 */
																bool_t BgL_test2836z00_6129;

																{	/* Llib/hash.scm 241 */
																	long BgL_n1z00_3266;

																	{	/* Llib/hash.scm 241 */
																		obj_t BgL_tmpz00_6130;

																		if (INTEGERP(BgL_index1169z00_1599))
																			{	/* Llib/hash.scm 241 */
																				BgL_tmpz00_6130 = BgL_index1169z00_1599;
																			}
																		else
																			{
																				obj_t BgL_auxz00_6133;

																				BgL_auxz00_6133 =
																					BGl_typezd2errorzd2zz__errorz00
																					(BGl_string2581z00zz__hashz00,
																					BINT(8950L),
																					BGl_string2582z00zz__hashz00,
																					BGl_string2607z00zz__hashz00,
																					BgL_index1169z00_1599);
																				FAILURE(BgL_auxz00_6133, BFALSE,
																					BFALSE);
																			}
																		BgL_n1z00_3266 =
																			(long) CINT(BgL_tmpz00_6130);
																	}
																	BgL_test2836z00_6129 = (BgL_n1z00_3266 >= 0L);
																}
																if (BgL_test2836z00_6129)
																	{
																		long BgL_auxz00_6146;
																		obj_t BgL_auxz00_6139;

																		{	/* Llib/hash.scm 241 */
																			obj_t BgL_tmpz00_6147;

																			if (INTEGERP(BgL_index1169z00_1599))
																				{	/* Llib/hash.scm 241 */
																					BgL_tmpz00_6147 =
																						BgL_index1169z00_1599;
																				}
																			else
																				{
																					obj_t BgL_auxz00_6150;

																					BgL_auxz00_6150 =
																						BGl_typezd2errorzd2zz__errorz00
																						(BGl_string2581z00zz__hashz00,
																						BINT(8950L),
																						BGl_string2582z00zz__hashz00,
																						BGl_string2607z00zz__hashz00,
																						BgL_index1169z00_1599);
																					FAILURE(BgL_auxz00_6150, BFALSE,
																						BFALSE);
																				}
																			BgL_auxz00_6146 =
																				(long) CINT(BgL_tmpz00_6147);
																		}
																		if (VECTORP(BgL_opt1159z00_51))
																			{	/* Llib/hash.scm 241 */
																				BgL_auxz00_6139 = BgL_opt1159z00_51;
																			}
																		else
																			{
																				obj_t BgL_auxz00_6142;

																				BgL_auxz00_6142 =
																					BGl_typezd2errorzd2zz__errorz00
																					(BGl_string2581z00zz__hashz00,
																					BINT(8950L),
																					BGl_string2582z00zz__hashz00,
																					BGl_string2583z00zz__hashz00,
																					BgL_opt1159z00_51);
																				FAILURE(BgL_auxz00_6142, BFALSE,
																					BFALSE);
																			}
																		BgL_maxzd2lengthzd2_1579 =
																			VECTOR_REF(BgL_auxz00_6139,
																			BgL_auxz00_6146);
																	}
																else
																	{	/* Llib/hash.scm 241 */
																		BFALSE;
																	}
															}
														}
														{	/* Llib/hash.scm 241 */
															obj_t BgL_index1170z00_1601;

															{
																long BgL_iz00_3268;

																BgL_iz00_3268 = 0L;
															BgL_search1162z00_3267:
																if ((BgL_iz00_3268 == BgL_l1161z00_1571))
																	{	/* Llib/hash.scm 241 */
																		BgL_index1170z00_1601 = BINT((-1L));
																	}
																else
																	{	/* Llib/hash.scm 241 */
																		if (
																			(BgL_iz00_3268 ==
																				(BgL_l1161z00_1571 - 1L)))
																			{	/* Llib/hash.scm 241 */
																				BgL_index1170z00_1601 =
																					BGl_errorz00zz__errorz00
																					(BGl_symbol2603z00zz__hashz00,
																					BGl_string2606z00zz__hashz00,
																					BINT(VECTOR_LENGTH
																						(BgL_opt1159z00_51)));
																			}
																		else
																			{	/* Llib/hash.scm 241 */
																				obj_t BgL_vz00_3278;

																				BgL_vz00_3278 =
																					VECTOR_REF(BgL_opt1159z00_51,
																					BgL_iz00_3268);
																				if ((BgL_vz00_3278 ==
																						BGl_keyword2597z00zz__hashz00))
																					{	/* Llib/hash.scm 241 */
																						BgL_index1170z00_1601 =
																							BINT((BgL_iz00_3268 + 1L));
																					}
																				else
																					{
																						long BgL_iz00_6170;

																						BgL_iz00_6170 =
																							(BgL_iz00_3268 + 2L);
																						BgL_iz00_3268 = BgL_iz00_6170;
																						goto BgL_search1162z00_3267;
																					}
																			}
																	}
															}
															{	/* Llib/hash.scm 241 */
																bool_t BgL_test2843z00_6172;

																{	/* Llib/hash.scm 241 */
																	long BgL_n1z00_3282;

																	{	/* Llib/hash.scm 241 */
																		obj_t BgL_tmpz00_6173;

																		if (INTEGERP(BgL_index1170z00_1601))
																			{	/* Llib/hash.scm 241 */
																				BgL_tmpz00_6173 = BgL_index1170z00_1601;
																			}
																		else
																			{
																				obj_t BgL_auxz00_6176;

																				BgL_auxz00_6176 =
																					BGl_typezd2errorzd2zz__errorz00
																					(BGl_string2581z00zz__hashz00,
																					BINT(8950L),
																					BGl_string2582z00zz__hashz00,
																					BGl_string2607z00zz__hashz00,
																					BgL_index1170z00_1601);
																				FAILURE(BgL_auxz00_6176, BFALSE,
																					BFALSE);
																			}
																		BgL_n1z00_3282 =
																			(long) CINT(BgL_tmpz00_6173);
																	}
																	BgL_test2843z00_6172 = (BgL_n1z00_3282 >= 0L);
																}
																if (BgL_test2843z00_6172)
																	{
																		long BgL_auxz00_6189;
																		obj_t BgL_auxz00_6182;

																		{	/* Llib/hash.scm 241 */
																			obj_t BgL_tmpz00_6190;

																			if (INTEGERP(BgL_index1170z00_1601))
																				{	/* Llib/hash.scm 241 */
																					BgL_tmpz00_6190 =
																						BgL_index1170z00_1601;
																				}
																			else
																				{
																					obj_t BgL_auxz00_6193;

																					BgL_auxz00_6193 =
																						BGl_typezd2errorzd2zz__errorz00
																						(BGl_string2581z00zz__hashz00,
																						BINT(8950L),
																						BGl_string2582z00zz__hashz00,
																						BGl_string2607z00zz__hashz00,
																						BgL_index1170z00_1601);
																					FAILURE(BgL_auxz00_6193, BFALSE,
																						BFALSE);
																				}
																			BgL_auxz00_6189 =
																				(long) CINT(BgL_tmpz00_6190);
																		}
																		if (VECTORP(BgL_opt1159z00_51))
																			{	/* Llib/hash.scm 241 */
																				BgL_auxz00_6182 = BgL_opt1159z00_51;
																			}
																		else
																			{
																				obj_t BgL_auxz00_6185;

																				BgL_auxz00_6185 =
																					BGl_typezd2errorzd2zz__errorz00
																					(BGl_string2581z00zz__hashz00,
																					BINT(8950L),
																					BGl_string2582z00zz__hashz00,
																					BGl_string2583z00zz__hashz00,
																					BgL_opt1159z00_51);
																				FAILURE(BgL_auxz00_6185, BFALSE,
																					BFALSE);
																			}
																		BgL_persistentz00_1580 =
																			VECTOR_REF(BgL_auxz00_6182,
																			BgL_auxz00_6189);
																	}
																else
																	{	/* Llib/hash.scm 241 */
																		BFALSE;
																	}
															}
														}
														{	/* Llib/hash.scm 241 */
															obj_t BgL_index1171z00_1603;

															{
																long BgL_iz00_3284;

																BgL_iz00_3284 = 0L;
															BgL_search1162z00_3283:
																if ((BgL_iz00_3284 == BgL_l1161z00_1571))
																	{	/* Llib/hash.scm 241 */
																		BgL_index1171z00_1603 = BINT((-1L));
																	}
																else
																	{	/* Llib/hash.scm 241 */
																		if (
																			(BgL_iz00_3284 ==
																				(BgL_l1161z00_1571 - 1L)))
																			{	/* Llib/hash.scm 241 */
																				BgL_index1171z00_1603 =
																					BGl_errorz00zz__errorz00
																					(BGl_symbol2603z00zz__hashz00,
																					BGl_string2606z00zz__hashz00,
																					BINT(VECTOR_LENGTH
																						(BgL_opt1159z00_51)));
																			}
																		else
																			{	/* Llib/hash.scm 241 */
																				obj_t BgL_vz00_3294;

																				BgL_vz00_3294 =
																					VECTOR_REF(BgL_opt1159z00_51,
																					BgL_iz00_3284);
																				if ((BgL_vz00_3294 ==
																						BGl_keyword2599z00zz__hashz00))
																					{	/* Llib/hash.scm 241 */
																						BgL_index1171z00_1603 =
																							BINT((BgL_iz00_3284 + 1L));
																					}
																				else
																					{
																						long BgL_iz00_6213;

																						BgL_iz00_6213 =
																							(BgL_iz00_3284 + 2L);
																						BgL_iz00_3284 = BgL_iz00_6213;
																						goto BgL_search1162z00_3283;
																					}
																			}
																	}
															}
															{	/* Llib/hash.scm 241 */
																bool_t BgL_test2850z00_6215;

																{	/* Llib/hash.scm 241 */
																	long BgL_n1z00_3298;

																	{	/* Llib/hash.scm 241 */
																		obj_t BgL_tmpz00_6216;

																		if (INTEGERP(BgL_index1171z00_1603))
																			{	/* Llib/hash.scm 241 */
																				BgL_tmpz00_6216 = BgL_index1171z00_1603;
																			}
																		else
																			{
																				obj_t BgL_auxz00_6219;

																				BgL_auxz00_6219 =
																					BGl_typezd2errorzd2zz__errorz00
																					(BGl_string2581z00zz__hashz00,
																					BINT(8950L),
																					BGl_string2582z00zz__hashz00,
																					BGl_string2607z00zz__hashz00,
																					BgL_index1171z00_1603);
																				FAILURE(BgL_auxz00_6219, BFALSE,
																					BFALSE);
																			}
																		BgL_n1z00_3298 =
																			(long) CINT(BgL_tmpz00_6216);
																	}
																	BgL_test2850z00_6215 = (BgL_n1z00_3298 >= 0L);
																}
																if (BgL_test2850z00_6215)
																	{
																		long BgL_auxz00_6232;
																		obj_t BgL_auxz00_6225;

																		{	/* Llib/hash.scm 241 */
																			obj_t BgL_tmpz00_6233;

																			if (INTEGERP(BgL_index1171z00_1603))
																				{	/* Llib/hash.scm 241 */
																					BgL_tmpz00_6233 =
																						BgL_index1171z00_1603;
																				}
																			else
																				{
																					obj_t BgL_auxz00_6236;

																					BgL_auxz00_6236 =
																						BGl_typezd2errorzd2zz__errorz00
																						(BGl_string2581z00zz__hashz00,
																						BINT(8950L),
																						BGl_string2582z00zz__hashz00,
																						BGl_string2607z00zz__hashz00,
																						BgL_index1171z00_1603);
																					FAILURE(BgL_auxz00_6236, BFALSE,
																						BFALSE);
																				}
																			BgL_auxz00_6232 =
																				(long) CINT(BgL_tmpz00_6233);
																		}
																		if (VECTORP(BgL_opt1159z00_51))
																			{	/* Llib/hash.scm 241 */
																				BgL_auxz00_6225 = BgL_opt1159z00_51;
																			}
																		else
																			{
																				obj_t BgL_auxz00_6228;

																				BgL_auxz00_6228 =
																					BGl_typezd2errorzd2zz__errorz00
																					(BGl_string2581z00zz__hashz00,
																					BINT(8950L),
																					BGl_string2582z00zz__hashz00,
																					BGl_string2583z00zz__hashz00,
																					BgL_opt1159z00_51);
																				FAILURE(BgL_auxz00_6228, BFALSE,
																					BFALSE);
																			}
																		BgL_siza7eza7_1581 =
																			VECTOR_REF(BgL_auxz00_6225,
																			BgL_auxz00_6232);
																	}
																else
																	{	/* Llib/hash.scm 241 */
																		BFALSE;
																	}
															}
														}
														{	/* Llib/hash.scm 241 */
															obj_t BgL_index1172z00_1605;

															{
																long BgL_iz00_3300;

																BgL_iz00_3300 = 0L;
															BgL_search1162z00_3299:
																if ((BgL_iz00_3300 == BgL_l1161z00_1571))
																	{	/* Llib/hash.scm 241 */
																		BgL_index1172z00_1605 = BINT((-1L));
																	}
																else
																	{	/* Llib/hash.scm 241 */
																		if (
																			(BgL_iz00_3300 ==
																				(BgL_l1161z00_1571 - 1L)))
																			{	/* Llib/hash.scm 241 */
																				BgL_index1172z00_1605 =
																					BGl_errorz00zz__errorz00
																					(BGl_symbol2603z00zz__hashz00,
																					BGl_string2606z00zz__hashz00,
																					BINT(VECTOR_LENGTH
																						(BgL_opt1159z00_51)));
																			}
																		else
																			{	/* Llib/hash.scm 241 */
																				obj_t BgL_vz00_3310;

																				BgL_vz00_3310 =
																					VECTOR_REF(BgL_opt1159z00_51,
																					BgL_iz00_3300);
																				if ((BgL_vz00_3310 ==
																						BGl_keyword2601z00zz__hashz00))
																					{	/* Llib/hash.scm 241 */
																						BgL_index1172z00_1605 =
																							BINT((BgL_iz00_3300 + 1L));
																					}
																				else
																					{
																						long BgL_iz00_6256;

																						BgL_iz00_6256 =
																							(BgL_iz00_3300 + 2L);
																						BgL_iz00_3300 = BgL_iz00_6256;
																						goto BgL_search1162z00_3299;
																					}
																			}
																	}
															}
															{	/* Llib/hash.scm 241 */
																bool_t BgL_test2857z00_6258;

																{	/* Llib/hash.scm 241 */
																	long BgL_n1z00_3314;

																	{	/* Llib/hash.scm 241 */
																		obj_t BgL_tmpz00_6259;

																		if (INTEGERP(BgL_index1172z00_1605))
																			{	/* Llib/hash.scm 241 */
																				BgL_tmpz00_6259 = BgL_index1172z00_1605;
																			}
																		else
																			{
																				obj_t BgL_auxz00_6262;

																				BgL_auxz00_6262 =
																					BGl_typezd2errorzd2zz__errorz00
																					(BGl_string2581z00zz__hashz00,
																					BINT(8950L),
																					BGl_string2582z00zz__hashz00,
																					BGl_string2607z00zz__hashz00,
																					BgL_index1172z00_1605);
																				FAILURE(BgL_auxz00_6262, BFALSE,
																					BFALSE);
																			}
																		BgL_n1z00_3314 =
																			(long) CINT(BgL_tmpz00_6259);
																	}
																	BgL_test2857z00_6258 = (BgL_n1z00_3314 >= 0L);
																}
																if (BgL_test2857z00_6258)
																	{
																		long BgL_auxz00_6275;
																		obj_t BgL_auxz00_6268;

																		{	/* Llib/hash.scm 241 */
																			obj_t BgL_tmpz00_6276;

																			if (INTEGERP(BgL_index1172z00_1605))
																				{	/* Llib/hash.scm 241 */
																					BgL_tmpz00_6276 =
																						BgL_index1172z00_1605;
																				}
																			else
																				{
																					obj_t BgL_auxz00_6279;

																					BgL_auxz00_6279 =
																						BGl_typezd2errorzd2zz__errorz00
																						(BGl_string2581z00zz__hashz00,
																						BINT(8950L),
																						BGl_string2582z00zz__hashz00,
																						BGl_string2607z00zz__hashz00,
																						BgL_index1172z00_1605);
																					FAILURE(BgL_auxz00_6279, BFALSE,
																						BFALSE);
																				}
																			BgL_auxz00_6275 =
																				(long) CINT(BgL_tmpz00_6276);
																		}
																		if (VECTORP(BgL_opt1159z00_51))
																			{	/* Llib/hash.scm 241 */
																				BgL_auxz00_6268 = BgL_opt1159z00_51;
																			}
																		else
																			{
																				obj_t BgL_auxz00_6271;

																				BgL_auxz00_6271 =
																					BGl_typezd2errorzd2zz__errorz00
																					(BGl_string2581z00zz__hashz00,
																					BINT(8950L),
																					BGl_string2582z00zz__hashz00,
																					BGl_string2583z00zz__hashz00,
																					BgL_opt1159z00_51);
																				FAILURE(BgL_auxz00_6271, BFALSE,
																					BFALSE);
																			}
																		BgL_weakz00_1582 =
																			VECTOR_REF(BgL_auxz00_6268,
																			BgL_auxz00_6275);
																	}
																else
																	{	/* Llib/hash.scm 241 */
																		BFALSE;
																	}
															}
														}
														{	/* Llib/hash.scm 241 */
															obj_t BgL_bucketzd2expansionzd2_1607;

															BgL_bucketzd2expansionzd2_1607 =
																BgL_bucketzd2expansionzd2_1575;
															{	/* Llib/hash.scm 241 */
																obj_t BgL_eqtestz00_1608;

																BgL_eqtestz00_1608 = BgL_eqtestz00_1576;
																{	/* Llib/hash.scm 241 */
																	obj_t BgL_hashz00_1609;

																	BgL_hashz00_1609 = BgL_hashz00_1577;
																	{	/* Llib/hash.scm 241 */
																		obj_t BgL_maxzd2bucketzd2lengthz00_1610;

																		BgL_maxzd2bucketzd2lengthz00_1610 =
																			BgL_maxzd2bucketzd2lengthz00_1578;
																		{	/* Llib/hash.scm 241 */
																			obj_t BgL_maxzd2lengthzd2_1611;

																			BgL_maxzd2lengthzd2_1611 =
																				BgL_maxzd2lengthzd2_1579;
																			{	/* Llib/hash.scm 241 */
																				obj_t BgL_persistentz00_1612;

																				BgL_persistentz00_1612 =
																					BgL_persistentz00_1580;
																				{	/* Llib/hash.scm 241 */
																					obj_t BgL_siza7eza7_1613;

																					BgL_siza7eza7_1613 =
																						BgL_siza7eza7_1581;
																					return
																						BGl_createzd2hashtablezd2zz__hashz00
																						(BgL_bucketzd2expansionzd2_1607,
																						BgL_eqtestz00_1608,
																						BgL_hashz00_1609,
																						BgL_maxzd2bucketzd2lengthz00_1610,
																						BgL_maxzd2lengthzd2_1611,
																						BgL_persistentz00_1612,
																						BgL_siza7eza7_1613,
																						BgL_weakz00_1582);
																				}
																			}
																		}
																	}
																}
															}
														}
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* create-hashtable */
	BGL_EXPORTED_DEF obj_t BGl_createzd2hashtablezd2zz__hashz00(obj_t
		BgL_bucketzd2expansionzd2_43, obj_t BgL_eqtestz00_44, obj_t BgL_hashz00_45,
		obj_t BgL_maxzd2bucketzd2lengthz00_46, obj_t BgL_maxzd2lengthzd2_47,
		obj_t BgL_persistentz00_48, obj_t BgL_siza7eza7_49, obj_t BgL_weakz00_50)
	{
		{	/* Llib/hash.scm 241 */
			{	/* Llib/hash.scm 250 */
				long BgL_wkz00_1622;

				{	/* Llib/hash.scm 250 */
					bool_t BgL_test2861z00_6286;

					if ((BgL_weakz00_50 == BGl_symbol2608z00zz__hashz00))
						{	/* Llib/hash.scm 250 */
							BgL_test2861z00_6286 = ((bool_t) 1);
						}
					else
						{	/* Llib/hash.scm 250 */
							BgL_test2861z00_6286 = (BgL_weakz00_50 == BINT(1L));
						}
					if (BgL_test2861z00_6286)
						{	/* Llib/hash.scm 250 */
							BgL_wkz00_1622 = 1L;
						}
					else
						{	/* Llib/hash.scm 250 */
							bool_t BgL_test2863z00_6291;

							if ((BgL_weakz00_50 == BGl_symbol2610z00zz__hashz00))
								{	/* Llib/hash.scm 250 */
									BgL_test2863z00_6291 = ((bool_t) 1);
								}
							else
								{	/* Llib/hash.scm 250 */
									BgL_test2863z00_6291 = (BgL_weakz00_50 == BINT(2L));
								}
							if (BgL_test2863z00_6291)
								{	/* Llib/hash.scm 250 */
									BgL_wkz00_1622 = 2L;
								}
							else
								{	/* Llib/hash.scm 250 */
									bool_t BgL_test2865z00_6296;

									if ((BgL_weakz00_50 == BGl_symbol2612z00zz__hashz00))
										{	/* Llib/hash.scm 250 */
											BgL_test2865z00_6296 = ((bool_t) 1);
										}
									else
										{	/* Llib/hash.scm 250 */
											BgL_test2865z00_6296 = (BgL_weakz00_50 == BINT(3L));
										}
									if (BgL_test2865z00_6296)
										{	/* Llib/hash.scm 250 */
											BgL_wkz00_1622 = 3L;
										}
									else
										{	/* Llib/hash.scm 250 */
											bool_t BgL_test2867z00_6301;

											if ((BgL_weakz00_50 == BGl_symbol2584z00zz__hashz00))
												{	/* Llib/hash.scm 250 */
													BgL_test2867z00_6301 = ((bool_t) 1);
												}
											else
												{	/* Llib/hash.scm 250 */
													BgL_test2867z00_6301 = (BgL_weakz00_50 == BINT(0L));
												}
											if (BgL_test2867z00_6301)
												{	/* Llib/hash.scm 250 */
													BgL_wkz00_1622 = 0L;
												}
											else
												{	/* Llib/hash.scm 250 */
													bool_t BgL_test2869z00_6306;

													if ((BgL_weakz00_50 == BGl_symbol2614z00zz__hashz00))
														{	/* Llib/hash.scm 250 */
															BgL_test2869z00_6306 = ((bool_t) 1);
														}
													else
														{	/* Llib/hash.scm 250 */
															BgL_test2869z00_6306 =
																(BgL_weakz00_50 == BINT(8L));
														}
													if (BgL_test2869z00_6306)
														{	/* Llib/hash.scm 250 */
															BgL_wkz00_1622 = 8L;
														}
													else
														{	/* Llib/hash.scm 250 */
															bool_t BgL_test2871z00_6311;

															if (
																(BgL_weakz00_50 ==
																	BGl_symbol2616z00zz__hashz00))
																{	/* Llib/hash.scm 250 */
																	BgL_test2871z00_6311 = ((bool_t) 1);
																}
															else
																{	/* Llib/hash.scm 250 */
																	BgL_test2871z00_6311 =
																		(BgL_weakz00_50 == BINT(4L));
																}
															if (BgL_test2871z00_6311)
																{	/* Llib/hash.scm 250 */
																	BgL_wkz00_1622 = 4L;
																}
															else
																{	/* Llib/hash.scm 250 */
																	if (BGl_eqvzf3zf3zz__r4_equivalence_6_2z00
																		(BgL_weakz00_50, BTRUE))
																		{	/* Llib/hash.scm 250 */
																			BgL_wkz00_1622 = 2L;
																		}
																	else
																		{	/* Llib/hash.scm 250 */
																			if (BGl_eqvzf3zf3zz__r4_equivalence_6_2z00
																				(BgL_weakz00_50, BFALSE))
																				{	/* Llib/hash.scm 250 */
																					BgL_wkz00_1622 = 0L;
																				}
																			else
																				{	/* Llib/hash.scm 250 */
																					BgL_wkz00_1622 =
																						(long)
																						CINT(BGl_errorz00zz__errorz00
																						(BGl_string2604z00zz__hashz00,
																							BGl_string2618z00zz__hashz00,
																							BgL_weakz00_50));
				}}}}}}}}}
				if (CBOOL(BgL_persistentz00_48))
					{	/* Llib/hash.scm 265 */
						if (CBOOL(BgL_hashz00_45))
							{	/* Llib/hash.scm 266 */
								BGl_errorz00zz__errorz00(BGl_string2604z00zz__hashz00,
									BGl_string2619z00zz__hashz00, BgL_hashz00_45);
							}
						else
							{	/* Llib/hash.scm 266 */
								BgL_hashz00_45 = BGl_symbol2620z00zz__hashz00;
							}
					}
				else
					{	/* Llib/hash.scm 265 */
						BFALSE;
					}
				{	/* Llib/hash.scm 271 */
					bool_t BgL_test2877z00_6327;

					if ((BgL_wkz00_1622 == 8L))
						{	/* Llib/hash.scm 271 */
							BgL_test2877z00_6327 = ((bool_t) 1);
						}
					else
						{	/* Llib/hash.scm 271 */
							BgL_test2877z00_6327 = (BgL_wkz00_1622 == 4L);
						}
					if (BgL_test2877z00_6327)
						{	/* Llib/hash.scm 271 */
							if (CBOOL(BgL_eqtestz00_44))
								{	/* Llib/hash.scm 273 */
									return
										BGl_errorz00zz__errorz00(BGl_string2604z00zz__hashz00,
										BGl_string2621z00zz__hashz00, BgL_eqtestz00_44);
								}
							else
								{	/* Llib/hash.scm 273 */
									if (CBOOL(BgL_hashz00_45))
										{	/* Llib/hash.scm 276 */
											return
												BGl_errorz00zz__errorz00(BGl_string2604z00zz__hashz00,
												BGl_string2622z00zz__hashz00, BgL_hashz00_45);
										}
									else
										{	/* Llib/hash.scm 276 */
											if ((BgL_wkz00_1622 == 8L))
												{	/* Llib/hash.scm 280 */
													obj_t BgL_arg1351z00_1626;

													BgL_arg1351z00_1626 =
														make_vector(
														(3L * (long) CINT(BgL_siza7eza7_49)), BFALSE);
													{	/* Llib/hash.scm 280 */
														obj_t BgL_newz00_3325;

														BgL_newz00_3325 =
															create_struct(BGl_symbol2578z00zz__hashz00,
															(int) (8L));
														{	/* Llib/hash.scm 280 */
															obj_t BgL_auxz00_6346;
															int BgL_tmpz00_6344;

															BgL_auxz00_6346 = BINT(0L);
															BgL_tmpz00_6344 = (int) (7L);
															STRUCT_SET(BgL_newz00_3325, BgL_tmpz00_6344,
																BgL_auxz00_6346);
														}
														{	/* Llib/hash.scm 280 */
															obj_t BgL_auxz00_6351;
															int BgL_tmpz00_6349;

															BgL_auxz00_6351 = BINT(0L);
															BgL_tmpz00_6349 = (int) (6L);
															STRUCT_SET(BgL_newz00_3325, BgL_tmpz00_6349,
																BgL_auxz00_6351);
														}
														{	/* Llib/hash.scm 280 */
															obj_t BgL_auxz00_6356;
															int BgL_tmpz00_6354;

															BgL_auxz00_6356 = BINT(BgL_wkz00_1622);
															BgL_tmpz00_6354 = (int) (5L);
															STRUCT_SET(BgL_newz00_3325, BgL_tmpz00_6354,
																BgL_auxz00_6356);
														}
														{	/* Llib/hash.scm 280 */
															int BgL_tmpz00_6359;

															BgL_tmpz00_6359 = (int) (4L);
															STRUCT_SET(BgL_newz00_3325, BgL_tmpz00_6359,
																BGl_listzd2envzd2zz__r4_pairs_and_lists_6_3z00);
														}
														{	/* Llib/hash.scm 280 */
															int BgL_tmpz00_6362;

															BgL_tmpz00_6362 = (int) (3L);
															STRUCT_SET(BgL_newz00_3325, BgL_tmpz00_6362,
																BGl_eqzf3zd2envz21zz__r4_equivalence_6_2z00);
														}
														{	/* Llib/hash.scm 280 */
															int BgL_tmpz00_6365;

															BgL_tmpz00_6365 = (int) (2L);
															STRUCT_SET(BgL_newz00_3325, BgL_tmpz00_6365,
																BgL_arg1351z00_1626);
														}
														{	/* Llib/hash.scm 280 */
															int BgL_tmpz00_6368;

															BgL_tmpz00_6368 = (int) (1L);
															STRUCT_SET(BgL_newz00_3325, BgL_tmpz00_6368,
																BgL_siza7eza7_49);
														}
														{	/* Llib/hash.scm 280 */
															obj_t BgL_auxz00_6373;
															int BgL_tmpz00_6371;

															BgL_auxz00_6373 = BINT(0L);
															BgL_tmpz00_6371 = (int) (0L);
															STRUCT_SET(BgL_newz00_3325, BgL_tmpz00_6371,
																BgL_auxz00_6373);
														}
														return BgL_newz00_3325;
													}
												}
											else
												{	/* Llib/hash.scm 282 */
													obj_t BgL_arg1353z00_1628;

													BgL_arg1353z00_1628 =
														make_vector((long) CINT(BgL_siza7eza7_49), BNIL);
													{	/* Llib/hash.scm 282 */
														obj_t BgL_newz00_3336;

														BgL_newz00_3336 =
															create_struct(BGl_symbol2578z00zz__hashz00,
															(int) (8L));
														{	/* Llib/hash.scm 282 */
															int BgL_tmpz00_6380;

															BgL_tmpz00_6380 = (int) (7L);
															STRUCT_SET(BgL_newz00_3336, BgL_tmpz00_6380,
																BgL_bucketzd2expansionzd2_43);
														}
														{	/* Llib/hash.scm 282 */
															int BgL_tmpz00_6383;

															BgL_tmpz00_6383 = (int) (6L);
															STRUCT_SET(BgL_newz00_3336, BgL_tmpz00_6383,
																BgL_maxzd2lengthzd2_47);
														}
														{	/* Llib/hash.scm 282 */
															obj_t BgL_auxz00_6388;
															int BgL_tmpz00_6386;

															BgL_auxz00_6388 = BINT(BgL_wkz00_1622);
															BgL_tmpz00_6386 = (int) (5L);
															STRUCT_SET(BgL_newz00_3336, BgL_tmpz00_6386,
																BgL_auxz00_6388);
														}
														{	/* Llib/hash.scm 282 */
															int BgL_tmpz00_6391;

															BgL_tmpz00_6391 = (int) (4L);
															STRUCT_SET(BgL_newz00_3336, BgL_tmpz00_6391,
																BGl_proc2623z00zz__hashz00);
														}
														{	/* Llib/hash.scm 282 */
															int BgL_tmpz00_6394;

															BgL_tmpz00_6394 = (int) (3L);
															STRUCT_SET(BgL_newz00_3336, BgL_tmpz00_6394,
																BGl_stringzd3zf3zd2envzf2zz__r4_strings_6_7z00);
														}
														{	/* Llib/hash.scm 282 */
															int BgL_tmpz00_6397;

															BgL_tmpz00_6397 = (int) (2L);
															STRUCT_SET(BgL_newz00_3336, BgL_tmpz00_6397,
																BgL_arg1353z00_1628);
														}
														{	/* Llib/hash.scm 282 */
															int BgL_tmpz00_6400;

															BgL_tmpz00_6400 = (int) (1L);
															STRUCT_SET(BgL_newz00_3336, BgL_tmpz00_6400,
																BgL_maxzd2bucketzd2lengthz00_46);
														}
														{	/* Llib/hash.scm 282 */
															obj_t BgL_auxz00_6405;
															int BgL_tmpz00_6403;

															BgL_auxz00_6405 = BINT(0L);
															BgL_tmpz00_6403 = (int) (0L);
															STRUCT_SET(BgL_newz00_3336, BgL_tmpz00_6403,
																BgL_auxz00_6405);
														}
														return BgL_newz00_3336;
													}
												}
										}
								}
						}
					else
						{	/* Llib/hash.scm 286 */
							obj_t BgL_arg1358z00_1634;

							BgL_arg1358z00_1634 =
								make_vector((long) CINT(BgL_siza7eza7_49), BNIL);
							{	/* Llib/hash.scm 286 */
								obj_t BgL_hashnz00_3345;

								BgL_hashnz00_3345 = BgL_hashz00_45;
								{	/* Llib/hash.scm 286 */
									obj_t BgL_newz00_3346;

									BgL_newz00_3346 =
										create_struct(BGl_symbol2578z00zz__hashz00, (int) (8L));
									{	/* Llib/hash.scm 286 */
										int BgL_tmpz00_6412;

										BgL_tmpz00_6412 = (int) (7L);
										STRUCT_SET(BgL_newz00_3346, BgL_tmpz00_6412,
											BgL_bucketzd2expansionzd2_43);
									}
									{	/* Llib/hash.scm 286 */
										int BgL_tmpz00_6415;

										BgL_tmpz00_6415 = (int) (6L);
										STRUCT_SET(BgL_newz00_3346, BgL_tmpz00_6415,
											BgL_maxzd2lengthzd2_47);
									}
									{	/* Llib/hash.scm 286 */
										obj_t BgL_auxz00_6420;
										int BgL_tmpz00_6418;

										BgL_auxz00_6420 = BINT(BgL_wkz00_1622);
										BgL_tmpz00_6418 = (int) (5L);
										STRUCT_SET(BgL_newz00_3346, BgL_tmpz00_6418,
											BgL_auxz00_6420);
									}
									{	/* Llib/hash.scm 286 */
										int BgL_tmpz00_6423;

										BgL_tmpz00_6423 = (int) (4L);
										STRUCT_SET(BgL_newz00_3346, BgL_tmpz00_6423,
											BgL_hashnz00_3345);
									}
									{	/* Llib/hash.scm 286 */
										int BgL_tmpz00_6426;

										BgL_tmpz00_6426 = (int) (3L);
										STRUCT_SET(BgL_newz00_3346, BgL_tmpz00_6426,
											BgL_eqtestz00_44);
									}
									{	/* Llib/hash.scm 286 */
										int BgL_tmpz00_6429;

										BgL_tmpz00_6429 = (int) (2L);
										STRUCT_SET(BgL_newz00_3346, BgL_tmpz00_6429,
											BgL_arg1358z00_1634);
									}
									{	/* Llib/hash.scm 286 */
										int BgL_tmpz00_6432;

										BgL_tmpz00_6432 = (int) (1L);
										STRUCT_SET(BgL_newz00_3346, BgL_tmpz00_6432,
											BgL_maxzd2bucketzd2lengthz00_46);
									}
									{	/* Llib/hash.scm 286 */
										obj_t BgL_auxz00_6437;
										int BgL_tmpz00_6435;

										BgL_auxz00_6437 = BINT(0L);
										BgL_tmpz00_6435 = (int) (0L);
										STRUCT_SET(BgL_newz00_3346, BgL_tmpz00_6435,
											BgL_auxz00_6437);
									}
									return BgL_newz00_3346;
								}
							}
						}
				}
			}
		}

	}



/* &<@anonymous:1356> */
	obj_t BGl_z62zc3z04anonymousza31356ze3ze5zz__hashz00(obj_t BgL_envz00_5440,
		obj_t BgL_sz00_5441)
	{
		{	/* Llib/hash.scm 284 */
			{	/* Llib/hash.scm 284 */
				long BgL_tmpz00_6440;

				{	/* Llib/hash.scm 284 */
					long BgL_arg1357z00_5734;

					BgL_arg1357z00_5734 = STRING_LENGTH(((obj_t) BgL_sz00_5441));
					BgL_tmpz00_6440 =
						bgl_string_hash(BSTRING_TO_STRING(BgL_sz00_5441),
						(int) (0L), (int) (BgL_arg1357z00_5734));
				}
				return BINT(BgL_tmpz00_6440);
			}
		}

	}



/* create-hashtable-open-string */
	BGL_EXPORTED_DEF obj_t
		BGl_createzd2hashtablezd2openzd2stringzd2zz__hashz00(void)
	{
		{	/* Llib/hash.scm 296 */
			{	/* Llib/hash.scm 299 */
				obj_t BgL_arg1373z00_1659;

				BgL_arg1373z00_1659 = make_vector((3L * 128L), BFALSE);
				{	/* Llib/hash.scm 299 */
					obj_t BgL_newz00_3356;

					BgL_newz00_3356 =
						create_struct(BGl_symbol2578z00zz__hashz00, (int) (8L));
					{	/* Llib/hash.scm 299 */
						obj_t BgL_auxz00_6454;
						int BgL_tmpz00_6452;

						BgL_auxz00_6454 = BINT(0L);
						BgL_tmpz00_6452 = (int) (7L);
						STRUCT_SET(BgL_newz00_3356, BgL_tmpz00_6452, BgL_auxz00_6454);
					}
					{	/* Llib/hash.scm 299 */
						obj_t BgL_auxz00_6459;
						int BgL_tmpz00_6457;

						BgL_auxz00_6459 = BINT(0L);
						BgL_tmpz00_6457 = (int) (6L);
						STRUCT_SET(BgL_newz00_3356, BgL_tmpz00_6457, BgL_auxz00_6459);
					}
					{	/* Llib/hash.scm 299 */
						obj_t BgL_auxz00_6464;
						int BgL_tmpz00_6462;

						BgL_auxz00_6464 = BINT(8L);
						BgL_tmpz00_6462 = (int) (5L);
						STRUCT_SET(BgL_newz00_3356, BgL_tmpz00_6462, BgL_auxz00_6464);
					}
					{	/* Llib/hash.scm 299 */
						int BgL_tmpz00_6467;

						BgL_tmpz00_6467 = (int) (4L);
						STRUCT_SET(BgL_newz00_3356, BgL_tmpz00_6467,
							BGl_listzd2envzd2zz__r4_pairs_and_lists_6_3z00);
					}
					{	/* Llib/hash.scm 299 */
						int BgL_tmpz00_6470;

						BgL_tmpz00_6470 = (int) (3L);
						STRUCT_SET(BgL_newz00_3356, BgL_tmpz00_6470,
							BGl_eqzf3zd2envz21zz__r4_equivalence_6_2z00);
					}
					{	/* Llib/hash.scm 299 */
						int BgL_tmpz00_6473;

						BgL_tmpz00_6473 = (int) (2L);
						STRUCT_SET(BgL_newz00_3356, BgL_tmpz00_6473, BgL_arg1373z00_1659);
					}
					{	/* Llib/hash.scm 299 */
						obj_t BgL_auxz00_6478;
						int BgL_tmpz00_6476;

						BgL_auxz00_6478 = BINT(128L);
						BgL_tmpz00_6476 = (int) (1L);
						STRUCT_SET(BgL_newz00_3356, BgL_tmpz00_6476, BgL_auxz00_6478);
					}
					{	/* Llib/hash.scm 299 */
						obj_t BgL_auxz00_6483;
						int BgL_tmpz00_6481;

						BgL_auxz00_6483 = BINT(0L);
						BgL_tmpz00_6481 = (int) (0L);
						STRUCT_SET(BgL_newz00_3356, BgL_tmpz00_6481, BgL_auxz00_6483);
					}
					return BgL_newz00_3356;
				}
			}
		}

	}



/* &create-hashtable-open-string */
	obj_t BGl_z62createzd2hashtablezd2openzd2stringzb0zz__hashz00(obj_t
		BgL_envz00_5445)
	{
		{	/* Llib/hash.scm 296 */
			return BGl_createzd2hashtablezd2openzd2stringzd2zz__hashz00();
		}

	}



/* hashtable? */
	BGL_EXPORTED_DEF bool_t BGl_hashtablezf3zf3zz__hashz00(obj_t BgL_objz00_53)
	{
		{	/* Llib/hash.scm 304 */
			if (STRUCTP(BgL_objz00_53))
				{	/* Llib/hash.scm 305 */
					return (STRUCT_KEY(BgL_objz00_53) == BGl_symbol2578z00zz__hashz00);
				}
			else
				{	/* Llib/hash.scm 305 */
					return ((bool_t) 0);
				}
		}

	}



/* &hashtable? */
	obj_t BGl_z62hashtablezf3z91zz__hashz00(obj_t BgL_envz00_5446,
		obj_t BgL_objz00_5447)
	{
		{	/* Llib/hash.scm 304 */
			return BBOOL(BGl_hashtablezf3zf3zz__hashz00(BgL_objz00_5447));
		}

	}



/* hashtable-weak-keys? */
	BGL_EXPORTED_DEF bool_t BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(obj_t
		BgL_tablez00_57)
	{
		{	/* Llib/hash.scm 328 */
			if ((0L == (1L & (long) CINT(STRUCT_REF(BgL_tablez00_57, (int) (5L))))))
				{	/* Llib/hash.scm 329 */
					return ((bool_t) 0);
				}
			else
				{	/* Llib/hash.scm 329 */
					return ((bool_t) 1);
				}
		}

	}



/* &hashtable-weak-keys? */
	obj_t BGl_z62hashtablezd2weakzd2keyszf3z91zz__hashz00(obj_t BgL_envz00_5448,
		obj_t BgL_tablez00_5449)
	{
		{	/* Llib/hash.scm 328 */
			{	/* Llib/hash.scm 329 */
				bool_t BgL_tmpz00_6499;

				{	/* Llib/hash.scm 329 */
					obj_t BgL_auxz00_6500;

					if (STRUCTP(BgL_tablez00_5449))
						{	/* Llib/hash.scm 329 */
							BgL_auxz00_6500 = BgL_tablez00_5449;
						}
					else
						{
							obj_t BgL_auxz00_6503;

							BgL_auxz00_6503 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
								BINT(12698L), BGl_string2624z00zz__hashz00,
								BGl_string2625z00zz__hashz00, BgL_tablez00_5449);
							FAILURE(BgL_auxz00_6503, BFALSE, BFALSE);
						}
					BgL_tmpz00_6499 =
						BGl_hashtablezd2weakzd2keyszf3zf3zz__hashz00(BgL_auxz00_6500);
				}
				return BBOOL(BgL_tmpz00_6499);
			}
		}

	}



/* hashtable-weak-data? */
	BGL_EXPORTED_DEF bool_t BGl_hashtablezd2weakzd2datazf3zf3zz__hashz00(obj_t
		BgL_tablez00_58)
	{
		{	/* Llib/hash.scm 334 */
			if ((0L == (2L & (long) CINT(STRUCT_REF(BgL_tablez00_58, (int) (5L))))))
				{	/* Llib/hash.scm 335 */
					return ((bool_t) 0);
				}
			else
				{	/* Llib/hash.scm 335 */
					return ((bool_t) 1);
				}
		}

	}



/* &hashtable-weak-data? */
	obj_t BGl_z62hashtablezd2weakzd2datazf3z91zz__hashz00(obj_t BgL_envz00_5450,
		obj_t BgL_tablez00_5451)
	{
		{	/* Llib/hash.scm 334 */
			{	/* Llib/hash.scm 335 */
				bool_t BgL_tmpz00_6515;

				{	/* Llib/hash.scm 335 */
					obj_t BgL_auxz00_6516;

					if (STRUCTP(BgL_tablez00_5451))
						{	/* Llib/hash.scm 335 */
							BgL_auxz00_6516 = BgL_tablez00_5451;
						}
					else
						{
							obj_t BgL_auxz00_6519;

							BgL_auxz00_6519 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
								BINT(13036L), BGl_string2626z00zz__hashz00,
								BGl_string2625z00zz__hashz00, BgL_tablez00_5451);
							FAILURE(BgL_auxz00_6519, BFALSE, BFALSE);
						}
					BgL_tmpz00_6515 =
						BGl_hashtablezd2weakzd2datazf3zf3zz__hashz00(BgL_auxz00_6516);
				}
				return BBOOL(BgL_tmpz00_6515);
			}
		}

	}



/* hashtable-size */
	BGL_EXPORTED_DEF long BGl_hashtablezd2siza7ez75zz__hashz00(obj_t
		BgL_tablez00_59)
	{
		{	/* Llib/hash.scm 340 */
			return (long) CINT(STRUCT_REF(BgL_tablez00_59, (int) (0L)));
		}

	}



/* &hashtable-size */
	obj_t BGl_z62hashtablezd2siza7ez17zz__hashz00(obj_t BgL_envz00_5452,
		obj_t BgL_tablez00_5453)
	{
		{	/* Llib/hash.scm 340 */
			{	/* Llib/hash.scm 341 */
				long BgL_tmpz00_6528;

				{	/* Llib/hash.scm 341 */
					obj_t BgL_auxz00_6529;

					if (STRUCTP(BgL_tablez00_5453))
						{	/* Llib/hash.scm 341 */
							BgL_auxz00_6529 = BgL_tablez00_5453;
						}
					else
						{
							obj_t BgL_auxz00_6532;

							BgL_auxz00_6532 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
								BINT(13368L), BGl_string2627z00zz__hashz00,
								BGl_string2625z00zz__hashz00, BgL_tablez00_5453);
							FAILURE(BgL_auxz00_6532, BFALSE, BFALSE);
						}
					BgL_tmpz00_6528 =
						BGl_hashtablezd2siza7ez75zz__hashz00(BgL_auxz00_6529);
				}
				return BINT(BgL_tmpz00_6528);
			}
		}

	}



/* hashtable->vector */
	BGL_EXPORTED_DEF obj_t BGl_hashtablezd2ze3vectorz31zz__hashz00(obj_t
		BgL_tablez00_60)
	{
		{	/* Llib/hash.scm 346 */
			{	/* Llib/hash.scm 348 */
				bool_t BgL_test2888z00_6538;

				if ((0L == ((long) CINT(STRUCT_REF(BgL_tablez00_60, (int) (5L))) & 8L)))
					{	/* Llib/hash.scm 317 */
						BgL_test2888z00_6538 = ((bool_t) 0);
					}
				else
					{	/* Llib/hash.scm 317 */
						BgL_test2888z00_6538 = ((bool_t) 1);
					}
				if (BgL_test2888z00_6538)
					{	/* Llib/hash.scm 348 */
						BGL_TAIL return
							BGl_openzd2stringzd2hashtablezd2ze3vectorz31zz__hashz00
							(BgL_tablez00_60);
					}
				else
					{	/* Llib/hash.scm 350 */
						bool_t BgL_test2890z00_6546;

						if (
							(0L ==
								((long) CINT(STRUCT_REF(BgL_tablez00_60, (int) (5L))) & 3L)))
							{	/* Llib/hash.scm 311 */
								BgL_test2890z00_6546 = ((bool_t) 0);
							}
						else
							{	/* Llib/hash.scm 311 */
								BgL_test2890z00_6546 = ((bool_t) 1);
							}
						if (BgL_test2890z00_6546)
							{	/* Llib/hash.scm 350 */
								BGL_TAIL return
									BGl_weakzd2hashtablezd2ze3vectorze3zz__weakhashz00
									(BgL_tablez00_60);
							}
						else
							{	/* Llib/hash.scm 350 */
								BGL_TAIL return
									BGl_plainzd2hashtablezd2ze3vectorze3zz__hashz00
									(BgL_tablez00_60);
							}
					}
			}
		}

	}



/* &hashtable->vector */
	obj_t BGl_z62hashtablezd2ze3vectorz53zz__hashz00(obj_t BgL_envz00_5454,
		obj_t BgL_tablez00_5455)
	{
		{	/* Llib/hash.scm 346 */
			{	/* Llib/hash.scm 348 */
				obj_t BgL_auxz00_6555;

				if (STRUCTP(BgL_tablez00_5455))
					{	/* Llib/hash.scm 348 */
						BgL_auxz00_6555 = BgL_tablez00_5455;
					}
				else
					{
						obj_t BgL_auxz00_6558;

						BgL_auxz00_6558 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(13673L), BGl_string2628z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5455);
						FAILURE(BgL_auxz00_6558, BFALSE, BFALSE);
					}
				return BGl_hashtablezd2ze3vectorz31zz__hashz00(BgL_auxz00_6555);
			}
		}

	}



/* open-string-hashtable->vector */
	obj_t BGl_openzd2stringzd2hashtablezd2ze3vectorz31zz__hashz00(obj_t
		BgL_tablez00_61)
	{
		{	/* Llib/hash.scm 358 */
			{	/* Llib/hash.scm 359 */
				obj_t BgL_siza7eza7_1684;

				BgL_siza7eza7_1684 = STRUCT_REF(BgL_tablez00_61, (int) (1L));
				{	/* Llib/hash.scm 359 */
					long BgL_siza7e3za7_1685;

					BgL_siza7e3za7_1685 = (3L * (long) CINT(BgL_siza7eza7_1684));
					{	/* Llib/hash.scm 360 */
						obj_t BgL_bucketsz00_1686;

						BgL_bucketsz00_1686 = STRUCT_REF(BgL_tablez00_61, (int) (2L));
						{	/* Llib/hash.scm 361 */
							obj_t BgL_vecz00_1687;

							BgL_vecz00_1687 =
								make_vector((long) CINT(BgL_siza7eza7_1684), BUNSPEC);
							{	/* Llib/hash.scm 362 */

								{
									long BgL_iz00_1689;
									long BgL_wz00_1690;

									BgL_iz00_1689 = 0L;
									BgL_wz00_1690 = 0L;
								BgL_zc3z04anonymousza31401ze3z87_1691:
									if ((BgL_iz00_1689 == BgL_siza7e3za7_1685))
										{	/* Llib/hash.scm 365 */
											return BgL_vecz00_1687;
										}
									else
										{	/* Llib/hash.scm 367 */
											bool_t BgL_test2894z00_6573;

											if (CBOOL(VECTOR_REF(
														((obj_t) BgL_bucketsz00_1686), BgL_iz00_1689)))
												{	/* Llib/hash.scm 367 */
													long BgL_arg1412z00_1702;

													BgL_arg1412z00_1702 = (BgL_iz00_1689 + 2L);
													BgL_test2894z00_6573 =
														CBOOL(VECTOR_REF(
															((obj_t) BgL_bucketsz00_1686),
															BgL_arg1412z00_1702));
												}
											else
												{	/* Llib/hash.scm 367 */
													BgL_test2894z00_6573 = ((bool_t) 0);
												}
											if (BgL_test2894z00_6573)
												{	/* Llib/hash.scm 367 */
													{	/* Llib/hash.scm 369 */
														obj_t BgL_arg1407z00_1696;

														{	/* Llib/hash.scm 369 */
															long BgL_arg1408z00_1697;

															BgL_arg1408z00_1697 = (BgL_iz00_1689 + 1L);
															BgL_arg1407z00_1696 =
																VECTOR_REF(
																((obj_t) BgL_bucketsz00_1686),
																BgL_arg1408z00_1697);
														}
														VECTOR_SET(BgL_vecz00_1687, BgL_wz00_1690,
															BgL_arg1407z00_1696);
													}
													{
														long BgL_wz00_6588;
														long BgL_iz00_6586;

														BgL_iz00_6586 = (BgL_iz00_1689 + 3L);
														BgL_wz00_6588 = (BgL_wz00_1690 + 1L);
														BgL_wz00_1690 = BgL_wz00_6588;
														BgL_iz00_1689 = BgL_iz00_6586;
														goto BgL_zc3z04anonymousza31401ze3z87_1691;
													}
												}
											else
												{
													long BgL_iz00_6590;

													BgL_iz00_6590 = (BgL_iz00_1689 + 3L);
													BgL_iz00_1689 = BgL_iz00_6590;
													goto BgL_zc3z04anonymousza31401ze3z87_1691;
												}
										}
								}
							}
						}
					}
				}
			}
		}

	}



/* plain-hashtable->vector */
	obj_t BGl_plainzd2hashtablezd2ze3vectorze3zz__hashz00(obj_t BgL_tablez00_62)
	{
		{	/* Llib/hash.scm 376 */
			{	/* Llib/hash.scm 377 */
				obj_t BgL_vecz00_1705;

				BgL_vecz00_1705 =
					make_vector(
					(long) CINT(STRUCT_REF(BgL_tablez00_62, (int) (0L))), BUNSPEC);
				{	/* Llib/hash.scm 377 */
					obj_t BgL_bucketsz00_1706;

					BgL_bucketsz00_1706 = STRUCT_REF(BgL_tablez00_62, (int) (2L));
					{	/* Llib/hash.scm 379 */

						{
							long BgL_iz00_3452;
							long BgL_wz00_3453;

							BgL_iz00_3452 = 0L;
							BgL_wz00_3453 = 0L;
						BgL_loopz00_3451:
							if (
								(BgL_iz00_3452 == VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1706))))
								{	/* Llib/hash.scm 382 */
									return BgL_vecz00_1705;
								}
							else
								{	/* Llib/hash.scm 384 */
									obj_t BgL_g1058z00_3457;

									BgL_g1058z00_3457 =
										VECTOR_REF(((obj_t) BgL_bucketsz00_1706), BgL_iz00_3452);
									{
										obj_t BgL_bucketz00_3461;
										long BgL_wz00_3462;

										BgL_bucketz00_3461 = BgL_g1058z00_3457;
										BgL_wz00_3462 = BgL_wz00_3453;
									BgL_liipz00_3460:
										if (NULLP(BgL_bucketz00_3461))
											{
												long BgL_wz00_6608;
												long BgL_iz00_6606;

												BgL_iz00_6606 = (BgL_iz00_3452 + 1L);
												BgL_wz00_6608 = BgL_wz00_3462;
												BgL_wz00_3453 = BgL_wz00_6608;
												BgL_iz00_3452 = BgL_iz00_6606;
												goto BgL_loopz00_3451;
											}
										else
											{	/* Llib/hash.scm 386 */
												{	/* Llib/hash.scm 389 */
													obj_t BgL_arg1420z00_3466;

													{	/* Llib/hash.scm 389 */
														obj_t BgL_pairz00_3470;

														BgL_pairz00_3470 =
															CAR(((obj_t) BgL_bucketz00_3461));
														BgL_arg1420z00_3466 = CDR(BgL_pairz00_3470);
													}
													VECTOR_SET(BgL_vecz00_1705, BgL_wz00_3462,
														BgL_arg1420z00_3466);
												}
												{	/* Llib/hash.scm 390 */
													obj_t BgL_arg1421z00_3473;
													long BgL_arg1422z00_3474;

													BgL_arg1421z00_3473 =
														CDR(((obj_t) BgL_bucketz00_3461));
													BgL_arg1422z00_3474 = (BgL_wz00_3462 + 1L);
													{
														long BgL_wz00_6617;
														obj_t BgL_bucketz00_6616;

														BgL_bucketz00_6616 = BgL_arg1421z00_3473;
														BgL_wz00_6617 = BgL_arg1422z00_3474;
														BgL_wz00_3462 = BgL_wz00_6617;
														BgL_bucketz00_3461 = BgL_bucketz00_6616;
														goto BgL_liipz00_3460;
													}
												}
											}
									}
								}
						}
					}
				}
			}
		}

	}



/* hashtable->list */
	BGL_EXPORTED_DEF obj_t BGl_hashtablezd2ze3listz31zz__hashz00(obj_t
		BgL_tablez00_63)
	{
		{	/* Llib/hash.scm 395 */
			{	/* Llib/hash.scm 397 */
				bool_t BgL_test2898z00_6618;

				if ((0L == ((long) CINT(STRUCT_REF(BgL_tablez00_63, (int) (5L))) & 8L)))
					{	/* Llib/hash.scm 317 */
						BgL_test2898z00_6618 = ((bool_t) 0);
					}
				else
					{	/* Llib/hash.scm 317 */
						BgL_test2898z00_6618 = ((bool_t) 1);
					}
				if (BgL_test2898z00_6618)
					{	/* Llib/hash.scm 397 */
						BGL_TAIL return
							BGl_openzd2stringzd2hashtablezd2ze3listz31zz__hashz00
							(BgL_tablez00_63);
					}
				else
					{	/* Llib/hash.scm 399 */
						bool_t BgL_test2900z00_6626;

						if (
							(0L ==
								((long) CINT(STRUCT_REF(BgL_tablez00_63, (int) (5L))) & 3L)))
							{	/* Llib/hash.scm 311 */
								BgL_test2900z00_6626 = ((bool_t) 0);
							}
						else
							{	/* Llib/hash.scm 311 */
								BgL_test2900z00_6626 = ((bool_t) 1);
							}
						if (BgL_test2900z00_6626)
							{	/* Llib/hash.scm 399 */
								BGL_TAIL return
									BGl_weakzd2hashtablezd2ze3listze3zz__weakhashz00
									(BgL_tablez00_63);
							}
						else
							{	/* Llib/hash.scm 399 */
								BGL_TAIL return
									BGl_plainzd2hashtablezd2ze3listze3zz__hashz00
									(BgL_tablez00_63);
							}
					}
			}
		}

	}



/* &hashtable->list */
	obj_t BGl_z62hashtablezd2ze3listz53zz__hashz00(obj_t BgL_envz00_5456,
		obj_t BgL_tablez00_5457)
	{
		{	/* Llib/hash.scm 395 */
			{	/* Llib/hash.scm 397 */
				obj_t BgL_auxz00_6635;

				if (STRUCTP(BgL_tablez00_5457))
					{	/* Llib/hash.scm 397 */
						BgL_auxz00_6635 = BgL_tablez00_5457;
					}
				else
					{
						obj_t BgL_auxz00_6638;

						BgL_auxz00_6638 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(15523L), BGl_string2629z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5457);
						FAILURE(BgL_auxz00_6638, BFALSE, BFALSE);
					}
				return BGl_hashtablezd2ze3listz31zz__hashz00(BgL_auxz00_6635);
			}
		}

	}



/* open-string-hashtable->list */
	obj_t BGl_openzd2stringzd2hashtablezd2ze3listz31zz__hashz00(obj_t
		BgL_tablez00_64)
	{
		{	/* Llib/hash.scm 407 */
			{	/* Llib/hash.scm 408 */
				obj_t BgL_siza7eza7_1729;

				BgL_siza7eza7_1729 = STRUCT_REF(BgL_tablez00_64, (int) (1L));
				{	/* Llib/hash.scm 408 */
					long BgL_siza7e3za7_1730;

					BgL_siza7e3za7_1730 = (3L * (long) CINT(BgL_siza7eza7_1729));
					{	/* Llib/hash.scm 409 */
						obj_t BgL_bucketsz00_1731;

						BgL_bucketsz00_1731 = STRUCT_REF(BgL_tablez00_64, (int) (2L));
						{	/* Llib/hash.scm 410 */

							{
								long BgL_iz00_1734;
								obj_t BgL_resz00_1735;

								BgL_iz00_1734 = 0L;
								BgL_resz00_1735 = BNIL;
							BgL_zc3z04anonymousza31427ze3z87_1736:
								if ((BgL_iz00_1734 == BgL_siza7e3za7_1730))
									{	/* Llib/hash.scm 413 */
										return BgL_resz00_1735;
									}
								else
									{	/* Llib/hash.scm 415 */
										bool_t BgL_test2904z00_6651;

										if (CBOOL(VECTOR_REF(
													((obj_t) BgL_bucketsz00_1731), BgL_iz00_1734)))
											{	/* Llib/hash.scm 415 */
												long BgL_arg1437z00_1747;

												BgL_arg1437z00_1747 = (BgL_iz00_1734 + 2L);
												BgL_test2904z00_6651 =
													CBOOL(VECTOR_REF(
														((obj_t) BgL_bucketsz00_1731),
														BgL_arg1437z00_1747));
											}
										else
											{	/* Llib/hash.scm 415 */
												BgL_test2904z00_6651 = ((bool_t) 0);
											}
										if (BgL_test2904z00_6651)
											{	/* Llib/hash.scm 416 */
												long BgL_arg1432z00_1741;
												obj_t BgL_arg1433z00_1742;

												BgL_arg1432z00_1741 = (BgL_iz00_1734 + 3L);
												{	/* Llib/hash.scm 416 */
													obj_t BgL_arg1434z00_1743;

													{	/* Llib/hash.scm 416 */
														long BgL_arg1435z00_1744;

														BgL_arg1435z00_1744 = (BgL_iz00_1734 + 1L);
														BgL_arg1434z00_1743 =
															VECTOR_REF(
															((obj_t) BgL_bucketsz00_1731),
															BgL_arg1435z00_1744);
													}
													BgL_arg1433z00_1742 =
														MAKE_YOUNG_PAIR(BgL_arg1434z00_1743,
														BgL_resz00_1735);
												}
												{
													obj_t BgL_resz00_6666;
													long BgL_iz00_6665;

													BgL_iz00_6665 = BgL_arg1432z00_1741;
													BgL_resz00_6666 = BgL_arg1433z00_1742;
													BgL_resz00_1735 = BgL_resz00_6666;
													BgL_iz00_1734 = BgL_iz00_6665;
													goto BgL_zc3z04anonymousza31427ze3z87_1736;
												}
											}
										else
											{
												long BgL_iz00_6667;

												BgL_iz00_6667 = (BgL_iz00_1734 + 3L);
												BgL_iz00_1734 = BgL_iz00_6667;
												goto BgL_zc3z04anonymousza31427ze3z87_1736;
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* plain-hashtable->list */
	obj_t BGl_plainzd2hashtablezd2ze3listze3zz__hashz00(obj_t BgL_tablez00_65)
	{
		{	/* Llib/hash.scm 422 */
			{	/* Llib/hash.scm 423 */
				obj_t BgL_vecz00_1749;

				BgL_vecz00_1749 =
					make_vector(
					(long) CINT(STRUCT_REF(BgL_tablez00_65, (int) (0L))), BUNSPEC);
				{	/* Llib/hash.scm 423 */
					obj_t BgL_bucketsz00_1750;

					BgL_bucketsz00_1750 = STRUCT_REF(BgL_tablez00_65, (int) (2L));
					{	/* Llib/hash.scm 425 */

						{
							long BgL_iz00_1754;
							obj_t BgL_resz00_1755;

							BgL_iz00_1754 = 0L;
							BgL_resz00_1755 = BNIL;
						BgL_zc3z04anonymousza31438ze3z87_1756:
							if (
								(BgL_iz00_1754 == VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1750))))
								{	/* Llib/hash.scm 428 */
									return BgL_resz00_1755;
								}
							else
								{	/* Llib/hash.scm 430 */
									obj_t BgL_g1061z00_1758;

									BgL_g1061z00_1758 =
										VECTOR_REF(((obj_t) BgL_bucketsz00_1750), BgL_iz00_1754);
									{
										obj_t BgL_bucketz00_3541;
										obj_t BgL_resz00_3542;

										BgL_bucketz00_3541 = BgL_g1061z00_1758;
										BgL_resz00_3542 = BgL_resz00_1755;
									BgL_liipz00_3540:
										if (NULLP(BgL_bucketz00_3541))
											{
												obj_t BgL_resz00_6685;
												long BgL_iz00_6683;

												BgL_iz00_6683 = (BgL_iz00_1754 + 1L);
												BgL_resz00_6685 = BgL_resz00_3542;
												BgL_resz00_1755 = BgL_resz00_6685;
												BgL_iz00_1754 = BgL_iz00_6683;
												goto BgL_zc3z04anonymousza31438ze3z87_1756;
											}
										else
											{	/* Llib/hash.scm 434 */
												obj_t BgL_arg1443z00_3550;
												obj_t BgL_arg1444z00_3551;

												BgL_arg1443z00_3550 = CDR(((obj_t) BgL_bucketz00_3541));
												{	/* Llib/hash.scm 434 */
													obj_t BgL_arg1445z00_3552;

													{	/* Llib/hash.scm 434 */
														obj_t BgL_pairz00_3558;

														BgL_pairz00_3558 =
															CAR(((obj_t) BgL_bucketz00_3541));
														BgL_arg1445z00_3552 = CDR(BgL_pairz00_3558);
													}
													BgL_arg1444z00_3551 =
														MAKE_YOUNG_PAIR(BgL_arg1445z00_3552,
														BgL_resz00_3542);
												}
												{
													obj_t BgL_resz00_6693;
													obj_t BgL_bucketz00_6692;

													BgL_bucketz00_6692 = BgL_arg1443z00_3550;
													BgL_resz00_6693 = BgL_arg1444z00_3551;
													BgL_resz00_3542 = BgL_resz00_6693;
													BgL_bucketz00_3541 = BgL_bucketz00_6692;
													goto BgL_liipz00_3540;
												}
											}
									}
								}
						}
					}
				}
			}
		}

	}



/* hashtable-key-list */
	BGL_EXPORTED_DEF obj_t BGl_hashtablezd2keyzd2listz00zz__hashz00(obj_t
		BgL_tablez00_66)
	{
		{	/* Llib/hash.scm 439 */
			{	/* Llib/hash.scm 441 */
				bool_t BgL_test2908z00_6694;

				if ((0L == ((long) CINT(STRUCT_REF(BgL_tablez00_66, (int) (5L))) & 8L)))
					{	/* Llib/hash.scm 317 */
						BgL_test2908z00_6694 = ((bool_t) 0);
					}
				else
					{	/* Llib/hash.scm 317 */
						BgL_test2908z00_6694 = ((bool_t) 1);
					}
				if (BgL_test2908z00_6694)
					{	/* Llib/hash.scm 441 */
						BGL_TAIL return
							BGl_openzd2stringzd2hashtablezd2keyzd2listz00zz__hashz00
							(BgL_tablez00_66);
					}
				else
					{	/* Llib/hash.scm 443 */
						bool_t BgL_test2910z00_6702;

						if (
							(0L ==
								((long) CINT(STRUCT_REF(BgL_tablez00_66, (int) (5L))) & 3L)))
							{	/* Llib/hash.scm 311 */
								BgL_test2910z00_6702 = ((bool_t) 0);
							}
						else
							{	/* Llib/hash.scm 311 */
								BgL_test2910z00_6702 = ((bool_t) 1);
							}
						if (BgL_test2910z00_6702)
							{	/* Llib/hash.scm 443 */
								BGL_TAIL return
									BGl_weakzd2hashtablezd2keyzd2listzd2zz__weakhashz00
									(BgL_tablez00_66);
							}
						else
							{	/* Llib/hash.scm 443 */
								BGL_TAIL return
									BGl_plainzd2hashtablezd2keyzd2listzd2zz__hashz00
									(BgL_tablez00_66);
							}
					}
			}
		}

	}



/* &hashtable-key-list */
	obj_t BGl_z62hashtablezd2keyzd2listz62zz__hashz00(obj_t BgL_envz00_5458,
		obj_t BgL_tablez00_5459)
	{
		{	/* Llib/hash.scm 439 */
			{	/* Llib/hash.scm 441 */
				obj_t BgL_auxz00_6711;

				if (STRUCTP(BgL_tablez00_5459))
					{	/* Llib/hash.scm 441 */
						BgL_auxz00_6711 = BgL_tablez00_5459;
					}
				else
					{
						obj_t BgL_auxz00_6714;

						BgL_auxz00_6714 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(17267L), BGl_string2630z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5459);
						FAILURE(BgL_auxz00_6714, BFALSE, BFALSE);
					}
				return BGl_hashtablezd2keyzd2listz00zz__hashz00(BgL_auxz00_6711);
			}
		}

	}



/* open-string-hashtable-key-list */
	obj_t BGl_openzd2stringzd2hashtablezd2keyzd2listz00zz__hashz00(obj_t
		BgL_tablez00_67)
	{
		{	/* Llib/hash.scm 451 */
			{	/* Llib/hash.scm 452 */
				obj_t BgL_siza7eza7_1774;

				BgL_siza7eza7_1774 = STRUCT_REF(BgL_tablez00_67, (int) (1L));
				{	/* Llib/hash.scm 452 */
					long BgL_siza7e3za7_1775;

					BgL_siza7e3za7_1775 = (3L * (long) CINT(BgL_siza7eza7_1774));
					{	/* Llib/hash.scm 453 */
						obj_t BgL_bucketsz00_1776;

						BgL_bucketsz00_1776 = STRUCT_REF(BgL_tablez00_67, (int) (2L));
						{	/* Llib/hash.scm 454 */

							{
								long BgL_iz00_1779;
								obj_t BgL_resz00_1780;

								BgL_iz00_1779 = 0L;
								BgL_resz00_1780 = BNIL;
							BgL_zc3z04anonymousza31450ze3z87_1781:
								if ((BgL_iz00_1779 == BgL_siza7e3za7_1775))
									{	/* Llib/hash.scm 457 */
										return BgL_resz00_1780;
									}
								else
									{	/* Llib/hash.scm 459 */
										bool_t BgL_test2914z00_6727;

										if (CBOOL(VECTOR_REF(
													((obj_t) BgL_bucketsz00_1776), BgL_iz00_1779)))
											{	/* Llib/hash.scm 459 */
												long BgL_arg1459z00_1791;

												BgL_arg1459z00_1791 = (BgL_iz00_1779 + 2L);
												BgL_test2914z00_6727 =
													CBOOL(VECTOR_REF(
														((obj_t) BgL_bucketsz00_1776),
														BgL_arg1459z00_1791));
											}
										else
											{	/* Llib/hash.scm 459 */
												BgL_test2914z00_6727 = ((bool_t) 0);
											}
										if (BgL_test2914z00_6727)
											{	/* Llib/hash.scm 460 */
												long BgL_arg1455z00_1786;
												obj_t BgL_arg1456z00_1787;

												BgL_arg1455z00_1786 = (BgL_iz00_1779 + 3L);
												{	/* Llib/hash.scm 460 */
													obj_t BgL_arg1457z00_1788;

													BgL_arg1457z00_1788 =
														VECTOR_REF(
														((obj_t) BgL_bucketsz00_1776), BgL_iz00_1779);
													BgL_arg1456z00_1787 =
														MAKE_YOUNG_PAIR(BgL_arg1457z00_1788,
														BgL_resz00_1780);
												}
												{
													obj_t BgL_resz00_6741;
													long BgL_iz00_6740;

													BgL_iz00_6740 = BgL_arg1455z00_1786;
													BgL_resz00_6741 = BgL_arg1456z00_1787;
													BgL_resz00_1780 = BgL_resz00_6741;
													BgL_iz00_1779 = BgL_iz00_6740;
													goto BgL_zc3z04anonymousza31450ze3z87_1781;
												}
											}
										else
											{
												long BgL_iz00_6742;

												BgL_iz00_6742 = (BgL_iz00_1779 + 3L);
												BgL_iz00_1779 = BgL_iz00_6742;
												goto BgL_zc3z04anonymousza31450ze3z87_1781;
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* plain-hashtable-key-list */
	obj_t BGl_plainzd2hashtablezd2keyzd2listzd2zz__hashz00(obj_t BgL_tablez00_68)
	{
		{	/* Llib/hash.scm 466 */
			{	/* Llib/hash.scm 467 */
				obj_t BgL_vecz00_1793;

				BgL_vecz00_1793 =
					make_vector(
					(long) CINT(STRUCT_REF(BgL_tablez00_68, (int) (0L))), BUNSPEC);
				{	/* Llib/hash.scm 467 */
					obj_t BgL_bucketsz00_1794;

					BgL_bucketsz00_1794 = STRUCT_REF(BgL_tablez00_68, (int) (2L));
					{	/* Llib/hash.scm 469 */

						{
							long BgL_iz00_1798;
							obj_t BgL_resz00_1799;

							BgL_iz00_1798 = 0L;
							BgL_resz00_1799 = BNIL;
						BgL_zc3z04anonymousza31460ze3z87_1800:
							if (
								(BgL_iz00_1798 == VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1794))))
								{	/* Llib/hash.scm 472 */
									return BgL_resz00_1799;
								}
							else
								{	/* Llib/hash.scm 474 */
									obj_t BgL_g1064z00_1802;

									BgL_g1064z00_1802 =
										VECTOR_REF(((obj_t) BgL_bucketsz00_1794), BgL_iz00_1798);
									{
										obj_t BgL_bucketz00_3622;
										obj_t BgL_resz00_3623;

										BgL_bucketz00_3622 = BgL_g1064z00_1802;
										BgL_resz00_3623 = BgL_resz00_1799;
									BgL_liipz00_3621:
										if (NULLP(BgL_bucketz00_3622))
											{
												obj_t BgL_resz00_6760;
												long BgL_iz00_6758;

												BgL_iz00_6758 = (BgL_iz00_1798 + 1L);
												BgL_resz00_6760 = BgL_resz00_3623;
												BgL_resz00_1799 = BgL_resz00_6760;
												BgL_iz00_1798 = BgL_iz00_6758;
												goto BgL_zc3z04anonymousza31460ze3z87_1800;
											}
										else
											{	/* Llib/hash.scm 478 */
												obj_t BgL_arg1465z00_3631;
												obj_t BgL_arg1466z00_3632;

												BgL_arg1465z00_3631 = CDR(((obj_t) BgL_bucketz00_3622));
												{	/* Llib/hash.scm 478 */
													obj_t BgL_arg1467z00_3633;

													{	/* Llib/hash.scm 478 */
														obj_t BgL_pairz00_3639;

														BgL_pairz00_3639 =
															CAR(((obj_t) BgL_bucketz00_3622));
														BgL_arg1467z00_3633 = CAR(BgL_pairz00_3639);
													}
													BgL_arg1466z00_3632 =
														MAKE_YOUNG_PAIR(BgL_arg1467z00_3633,
														BgL_resz00_3623);
												}
												{
													obj_t BgL_resz00_6768;
													obj_t BgL_bucketz00_6767;

													BgL_bucketz00_6767 = BgL_arg1465z00_3631;
													BgL_resz00_6768 = BgL_arg1466z00_3632;
													BgL_resz00_3623 = BgL_resz00_6768;
													BgL_bucketz00_3622 = BgL_bucketz00_6767;
													goto BgL_liipz00_3621;
												}
											}
									}
								}
						}
					}
				}
			}
		}

	}



/* hashtable-map */
	BGL_EXPORTED_DEF obj_t BGl_hashtablezd2mapzd2zz__hashz00(obj_t
		BgL_tablez00_69, obj_t BgL_funz00_70)
	{
		{	/* Llib/hash.scm 483 */
			{	/* Llib/hash.scm 485 */
				bool_t BgL_test2918z00_6769;

				if ((0L == ((long) CINT(STRUCT_REF(BgL_tablez00_69, (int) (5L))) & 8L)))
					{	/* Llib/hash.scm 317 */
						BgL_test2918z00_6769 = ((bool_t) 0);
					}
				else
					{	/* Llib/hash.scm 317 */
						BgL_test2918z00_6769 = ((bool_t) 1);
					}
				if (BgL_test2918z00_6769)
					{	/* Llib/hash.scm 485 */
						return
							BGl_openzd2stringzd2hashtablezd2ze3listz31zz__hashz00
							(BgL_tablez00_69);
					}
				else
					{	/* Llib/hash.scm 487 */
						bool_t BgL_test2920z00_6777;

						if (
							(0L ==
								((long) CINT(STRUCT_REF(BgL_tablez00_69, (int) (5L))) & 3L)))
							{	/* Llib/hash.scm 311 */
								BgL_test2920z00_6777 = ((bool_t) 0);
							}
						else
							{	/* Llib/hash.scm 311 */
								BgL_test2920z00_6777 = ((bool_t) 1);
							}
						if (BgL_test2920z00_6777)
							{	/* Llib/hash.scm 487 */
								BGL_TAIL return
									BGl_weakzd2hashtablezd2mapz00zz__weakhashz00(BgL_tablez00_69,
									BgL_funz00_70);
							}
						else
							{	/* Llib/hash.scm 487 */
								BGL_TAIL return
									BGl_plainzd2hashtablezd2mapz00zz__hashz00(BgL_tablez00_69,
									BgL_funz00_70);
							}
					}
			}
		}

	}



/* &hashtable-map */
	obj_t BGl_z62hashtablezd2mapzb0zz__hashz00(obj_t BgL_envz00_5460,
		obj_t BgL_tablez00_5461, obj_t BgL_funz00_5462)
	{
		{	/* Llib/hash.scm 483 */
			{	/* Llib/hash.scm 485 */
				obj_t BgL_auxz00_6793;
				obj_t BgL_auxz00_6786;

				if (PROCEDUREP(BgL_funz00_5462))
					{	/* Llib/hash.scm 485 */
						BgL_auxz00_6793 = BgL_funz00_5462;
					}
				else
					{
						obj_t BgL_auxz00_6796;

						BgL_auxz00_6796 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(19028L), BGl_string2631z00zz__hashz00,
							BGl_string2632z00zz__hashz00, BgL_funz00_5462);
						FAILURE(BgL_auxz00_6796, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_5461))
					{	/* Llib/hash.scm 485 */
						BgL_auxz00_6786 = BgL_tablez00_5461;
					}
				else
					{
						obj_t BgL_auxz00_6789;

						BgL_auxz00_6789 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(19028L), BGl_string2631z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5461);
						FAILURE(BgL_auxz00_6789, BFALSE, BFALSE);
					}
				return
					BGl_hashtablezd2mapzd2zz__hashz00(BgL_auxz00_6786, BgL_auxz00_6793);
			}
		}

	}



/* open-string-hashtable-map */
	BGL_EXPORTED_DEF obj_t BGl_openzd2stringzd2hashtablezd2mapzd2zz__hashz00(obj_t
		BgL_tablez00_71, obj_t BgL_funz00_72)
	{
		{	/* Llib/hash.scm 495 */
			{	/* Llib/hash.scm 496 */
				obj_t BgL_siza7eza7_1818;

				BgL_siza7eza7_1818 = STRUCT_REF(BgL_tablez00_71, (int) (1L));
				{	/* Llib/hash.scm 496 */
					long BgL_siza7e3za7_1819;

					BgL_siza7e3za7_1819 = (3L * (long) CINT(BgL_siza7eza7_1818));
					{	/* Llib/hash.scm 497 */
						obj_t BgL_bucketsz00_1820;

						BgL_bucketsz00_1820 = STRUCT_REF(BgL_tablez00_71, (int) (2L));
						{	/* Llib/hash.scm 498 */

							{
								long BgL_iz00_1823;
								obj_t BgL_resz00_1824;

								BgL_iz00_1823 = 0L;
								BgL_resz00_1824 = BNIL;
							BgL_zc3z04anonymousza31472ze3z87_1825:
								if ((BgL_iz00_1823 == BgL_siza7e3za7_1819))
									{	/* Llib/hash.scm 501 */
										return BgL_resz00_1824;
									}
								else
									{	/* Llib/hash.scm 503 */
										bool_t BgL_test2925z00_6809;

										if (CBOOL(VECTOR_REF(
													((obj_t) BgL_bucketsz00_1820), BgL_iz00_1823)))
											{	/* Llib/hash.scm 503 */
												long BgL_arg1487z00_1838;

												BgL_arg1487z00_1838 = (BgL_iz00_1823 + 2L);
												BgL_test2925z00_6809 =
													CBOOL(VECTOR_REF(
														((obj_t) BgL_bucketsz00_1820),
														BgL_arg1487z00_1838));
											}
										else
											{	/* Llib/hash.scm 503 */
												BgL_test2925z00_6809 = ((bool_t) 0);
											}
										if (BgL_test2925z00_6809)
											{	/* Llib/hash.scm 504 */
												long BgL_arg1479z00_1830;
												obj_t BgL_arg1480z00_1831;

												BgL_arg1479z00_1830 = (BgL_iz00_1823 + 3L);
												{	/* Llib/hash.scm 506 */
													obj_t BgL_arg1481z00_1832;

													{	/* Llib/hash.scm 506 */
														obj_t BgL_arg1482z00_1833;
														obj_t BgL_arg1483z00_1834;

														BgL_arg1482z00_1833 =
															VECTOR_REF(
															((obj_t) BgL_bucketsz00_1820), BgL_iz00_1823);
														{	/* Llib/hash.scm 506 */
															long BgL_arg1484z00_1835;

															BgL_arg1484z00_1835 = (BgL_iz00_1823 + 1L);
															BgL_arg1483z00_1834 =
																VECTOR_REF(
																((obj_t) BgL_bucketsz00_1820),
																BgL_arg1484z00_1835);
														}
														BgL_arg1481z00_1832 =
															BGL_PROCEDURE_CALL2(BgL_funz00_72,
															BgL_arg1482z00_1833, BgL_arg1483z00_1834);
													}
													BgL_arg1480z00_1831 =
														MAKE_YOUNG_PAIR(BgL_arg1481z00_1832,
														BgL_resz00_1824);
												}
												{
													obj_t BgL_resz00_6831;
													long BgL_iz00_6830;

													BgL_iz00_6830 = BgL_arg1479z00_1830;
													BgL_resz00_6831 = BgL_arg1480z00_1831;
													BgL_resz00_1824 = BgL_resz00_6831;
													BgL_iz00_1823 = BgL_iz00_6830;
													goto BgL_zc3z04anonymousza31472ze3z87_1825;
												}
											}
										else
											{
												long BgL_iz00_6832;

												BgL_iz00_6832 = (BgL_iz00_1823 + 3L);
												BgL_iz00_1823 = BgL_iz00_6832;
												goto BgL_zc3z04anonymousza31472ze3z87_1825;
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* &open-string-hashtable-map */
	obj_t BGl_z62openzd2stringzd2hashtablezd2mapzb0zz__hashz00(obj_t
		BgL_envz00_5463, obj_t BgL_tablez00_5464, obj_t BgL_funz00_5465)
	{
		{	/* Llib/hash.scm 495 */
			{	/* Llib/hash.scm 496 */
				obj_t BgL_auxz00_6841;
				obj_t BgL_auxz00_6834;

				if (PROCEDUREP(BgL_funz00_5465))
					{	/* Llib/hash.scm 496 */
						BgL_auxz00_6841 = BgL_funz00_5465;
					}
				else
					{
						obj_t BgL_auxz00_6844;

						BgL_auxz00_6844 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(19508L), BGl_string2633z00zz__hashz00,
							BGl_string2632z00zz__hashz00, BgL_funz00_5465);
						FAILURE(BgL_auxz00_6844, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_5464))
					{	/* Llib/hash.scm 496 */
						BgL_auxz00_6834 = BgL_tablez00_5464;
					}
				else
					{
						obj_t BgL_auxz00_6837;

						BgL_auxz00_6837 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(19508L), BGl_string2633z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5464);
						FAILURE(BgL_auxz00_6837, BFALSE, BFALSE);
					}
				return
					BGl_openzd2stringzd2hashtablezd2mapzd2zz__hashz00(BgL_auxz00_6834,
					BgL_auxz00_6841);
			}
		}

	}



/* plain-hashtable-map */
	obj_t BGl_plainzd2hashtablezd2mapz00zz__hashz00(obj_t BgL_tablez00_73,
		obj_t BgL_funz00_74)
	{
		{	/* Llib/hash.scm 513 */
			{	/* Llib/hash.scm 514 */
				obj_t BgL_bucketsz00_1840;

				BgL_bucketsz00_1840 = STRUCT_REF(BgL_tablez00_73, (int) (2L));
				{	/* Llib/hash.scm 515 */

					{
						long BgL_iz00_1844;
						obj_t BgL_resz00_1845;

						BgL_iz00_1844 = 0L;
						BgL_resz00_1845 = BNIL;
					BgL_zc3z04anonymousza31488ze3z87_1846:
						if ((BgL_iz00_1844 < VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1840))))
							{	/* Llib/hash.scm 519 */
								obj_t BgL_g1067z00_1848;

								BgL_g1067z00_1848 =
									VECTOR_REF(((obj_t) BgL_bucketsz00_1840), BgL_iz00_1844);
								{
									obj_t BgL_lstz00_1850;
									obj_t BgL_resz00_1851;

									BgL_lstz00_1850 = BgL_g1067z00_1848;
									BgL_resz00_1851 = BgL_resz00_1845;
								BgL_zc3z04anonymousza31490ze3z87_1852:
									if (NULLP(BgL_lstz00_1850))
										{
											obj_t BgL_resz00_6861;
											long BgL_iz00_6859;

											BgL_iz00_6859 = (BgL_iz00_1844 + 1L);
											BgL_resz00_6861 = BgL_resz00_1851;
											BgL_resz00_1845 = BgL_resz00_6861;
											BgL_iz00_1844 = BgL_iz00_6859;
											goto BgL_zc3z04anonymousza31488ze3z87_1846;
										}
									else
										{	/* Llib/hash.scm 523 */
											obj_t BgL_cellz00_1855;

											BgL_cellz00_1855 = CAR(((obj_t) BgL_lstz00_1850));
											{	/* Llib/hash.scm 524 */
												obj_t BgL_arg1494z00_1856;
												obj_t BgL_arg1495z00_1857;

												BgL_arg1494z00_1856 = CDR(((obj_t) BgL_lstz00_1850));
												{	/* Llib/hash.scm 525 */
													obj_t BgL_arg1497z00_1858;

													{	/* Llib/hash.scm 525 */
														obj_t BgL_arg1498z00_1859;
														obj_t BgL_arg1499z00_1860;

														BgL_arg1498z00_1859 =
															CAR(((obj_t) BgL_cellz00_1855));
														BgL_arg1499z00_1860 =
															CDR(((obj_t) BgL_cellz00_1855));
														BgL_arg1497z00_1858 =
															BGL_PROCEDURE_CALL2(BgL_funz00_74,
															BgL_arg1498z00_1859, BgL_arg1499z00_1860);
													}
													BgL_arg1495z00_1857 =
														MAKE_YOUNG_PAIR(BgL_arg1497z00_1858,
														BgL_resz00_1851);
												}
												{
													obj_t BgL_resz00_6877;
													obj_t BgL_lstz00_6876;

													BgL_lstz00_6876 = BgL_arg1494z00_1856;
													BgL_resz00_6877 = BgL_arg1495z00_1857;
													BgL_resz00_1851 = BgL_resz00_6877;
													BgL_lstz00_1850 = BgL_lstz00_6876;
													goto BgL_zc3z04anonymousza31490ze3z87_1852;
												}
											}
										}
								}
							}
						else
							{	/* Llib/hash.scm 518 */
								return BgL_resz00_1845;
							}
					}
				}
			}
		}

	}



/* hashtable-for-each */
	BGL_EXPORTED_DEF obj_t BGl_hashtablezd2forzd2eachz00zz__hashz00(obj_t
		BgL_tablez00_75, obj_t BgL_funz00_76)
	{
		{	/* Llib/hash.scm 531 */
			{	/* Llib/hash.scm 533 */
				bool_t BgL_test2931z00_6878;

				if ((0L == ((long) CINT(STRUCT_REF(BgL_tablez00_75, (int) (5L))) & 8L)))
					{	/* Llib/hash.scm 317 */
						BgL_test2931z00_6878 = ((bool_t) 0);
					}
				else
					{	/* Llib/hash.scm 317 */
						BgL_test2931z00_6878 = ((bool_t) 1);
					}
				if (BgL_test2931z00_6878)
					{	/* Llib/hash.scm 533 */
						BGL_TAIL return
							BGl_openzd2stringzd2hashtablezd2forzd2eachz00zz__hashz00
							(BgL_tablez00_75, BgL_funz00_76);
					}
				else
					{	/* Llib/hash.scm 535 */
						bool_t BgL_test2933z00_6886;

						if (
							(0L ==
								((long) CINT(STRUCT_REF(BgL_tablez00_75, (int) (5L))) & 3L)))
							{	/* Llib/hash.scm 311 */
								BgL_test2933z00_6886 = ((bool_t) 0);
							}
						else
							{	/* Llib/hash.scm 311 */
								BgL_test2933z00_6886 = ((bool_t) 1);
							}
						if (BgL_test2933z00_6886)
							{	/* Llib/hash.scm 535 */
								BGL_TAIL return
									BGl_weakzd2hashtablezd2forzd2eachzd2zz__weakhashz00
									(BgL_tablez00_75, BgL_funz00_76);
							}
						else
							{	/* Llib/hash.scm 535 */
								return
									BBOOL(BGl_plainzd2hashtablezd2forzd2eachzd2zz__hashz00
									(BgL_tablez00_75, BgL_funz00_76));
							}
					}
			}
		}

	}



/* &hashtable-for-each */
	obj_t BGl_z62hashtablezd2forzd2eachz62zz__hashz00(obj_t BgL_envz00_5466,
		obj_t BgL_tablez00_5467, obj_t BgL_funz00_5468)
	{
		{	/* Llib/hash.scm 531 */
			{	/* Llib/hash.scm 533 */
				obj_t BgL_auxz00_6903;
				obj_t BgL_auxz00_6896;

				if (PROCEDUREP(BgL_funz00_5468))
					{	/* Llib/hash.scm 533 */
						BgL_auxz00_6903 = BgL_funz00_5468;
					}
				else
					{
						obj_t BgL_auxz00_6906;

						BgL_auxz00_6906 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(20860L), BGl_string2634z00zz__hashz00,
							BGl_string2632z00zz__hashz00, BgL_funz00_5468);
						FAILURE(BgL_auxz00_6906, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_5467))
					{	/* Llib/hash.scm 533 */
						BgL_auxz00_6896 = BgL_tablez00_5467;
					}
				else
					{
						obj_t BgL_auxz00_6899;

						BgL_auxz00_6899 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(20860L), BGl_string2634z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5467);
						FAILURE(BgL_auxz00_6899, BFALSE, BFALSE);
					}
				return
					BGl_hashtablezd2forzd2eachz00zz__hashz00(BgL_auxz00_6896,
					BgL_auxz00_6903);
			}
		}

	}



/* open-string-hashtable-for-each */
	BGL_EXPORTED_DEF obj_t
		BGl_openzd2stringzd2hashtablezd2forzd2eachz00zz__hashz00(obj_t
		BgL_tablez00_77, obj_t BgL_funz00_78)
	{
		{	/* Llib/hash.scm 543 */
			{	/* Llib/hash.scm 544 */
				obj_t BgL_siza7eza7_1865;

				BgL_siza7eza7_1865 = STRUCT_REF(BgL_tablez00_77, (int) (1L));
				{	/* Llib/hash.scm 544 */
					long BgL_siza7e3za7_1866;

					BgL_siza7e3za7_1866 = (3L * (long) CINT(BgL_siza7eza7_1865));
					{	/* Llib/hash.scm 545 */
						obj_t BgL_bucketsz00_1867;

						BgL_bucketsz00_1867 = STRUCT_REF(BgL_tablez00_77, (int) (2L));
						{	/* Llib/hash.scm 546 */

							{
								long BgL_iz00_1869;

								{	/* Llib/hash.scm 547 */
									bool_t BgL_tmpz00_6917;

									BgL_iz00_1869 = 0L;
								BgL_zc3z04anonymousza31502ze3z87_1870:
									if ((BgL_iz00_1869 == BgL_siza7e3za7_1866))
										{	/* Llib/hash.scm 548 */
											BgL_tmpz00_6917 = ((bool_t) 0);
										}
									else
										{	/* Llib/hash.scm 548 */
											{	/* Llib/hash.scm 549 */
												bool_t BgL_test2938z00_6920;

												if (CBOOL(VECTOR_REF(
															((obj_t) BgL_bucketsz00_1867), BgL_iz00_1869)))
													{	/* Llib/hash.scm 549 */
														long BgL_arg1510z00_1879;

														BgL_arg1510z00_1879 = (BgL_iz00_1869 + 2L);
														BgL_test2938z00_6920 =
															CBOOL(VECTOR_REF(
																((obj_t) BgL_bucketsz00_1867),
																BgL_arg1510z00_1879));
													}
												else
													{	/* Llib/hash.scm 549 */
														BgL_test2938z00_6920 = ((bool_t) 0);
													}
												if (BgL_test2938z00_6920)
													{	/* Llib/hash.scm 550 */
														obj_t BgL_arg1507z00_1875;
														obj_t BgL_arg1508z00_1876;

														BgL_arg1507z00_1875 =
															VECTOR_REF(
															((obj_t) BgL_bucketsz00_1867), BgL_iz00_1869);
														{	/* Llib/hash.scm 550 */
															long BgL_arg1509z00_1877;

															BgL_arg1509z00_1877 = (BgL_iz00_1869 + 1L);
															BgL_arg1508z00_1876 =
																VECTOR_REF(
																((obj_t) BgL_bucketsz00_1867),
																BgL_arg1509z00_1877);
														}
														BGL_PROCEDURE_CALL2(BgL_funz00_78,
															BgL_arg1507z00_1875, BgL_arg1508z00_1876);
													}
												else
													{	/* Llib/hash.scm 549 */
														BFALSE;
													}
											}
											{
												long BgL_iz00_6939;

												BgL_iz00_6939 = (BgL_iz00_1869 + 3L);
												BgL_iz00_1869 = BgL_iz00_6939;
												goto BgL_zc3z04anonymousza31502ze3z87_1870;
											}
										}
									return BBOOL(BgL_tmpz00_6917);
								}
							}
						}
					}
				}
			}
		}

	}



/* &open-string-hashtable-for-each */
	obj_t BGl_z62openzd2stringzd2hashtablezd2forzd2eachz62zz__hashz00(obj_t
		BgL_envz00_5469, obj_t BgL_tablez00_5470, obj_t BgL_funz00_5471)
	{
		{	/* Llib/hash.scm 543 */
			{	/* Llib/hash.scm 544 */
				obj_t BgL_auxz00_6949;
				obj_t BgL_auxz00_6942;

				if (PROCEDUREP(BgL_funz00_5471))
					{	/* Llib/hash.scm 544 */
						BgL_auxz00_6949 = BgL_funz00_5471;
					}
				else
					{
						obj_t BgL_auxz00_6952;

						BgL_auxz00_6952 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(21362L), BGl_string2635z00zz__hashz00,
							BGl_string2632z00zz__hashz00, BgL_funz00_5471);
						FAILURE(BgL_auxz00_6952, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_5470))
					{	/* Llib/hash.scm 544 */
						BgL_auxz00_6942 = BgL_tablez00_5470;
					}
				else
					{
						obj_t BgL_auxz00_6945;

						BgL_auxz00_6945 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(21362L), BGl_string2635z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5470);
						FAILURE(BgL_auxz00_6945, BFALSE, BFALSE);
					}
				return
					BGl_openzd2stringzd2hashtablezd2forzd2eachz00zz__hashz00
					(BgL_auxz00_6942, BgL_auxz00_6949);
			}
		}

	}



/* plain-hashtable-for-each */
	bool_t BGl_plainzd2hashtablezd2forzd2eachzd2zz__hashz00(obj_t BgL_tablez00_79,
		obj_t BgL_funz00_80)
	{
		{	/* Llib/hash.scm 556 */
			{	/* Llib/hash.scm 557 */
				obj_t BgL_bucketsz00_1882;

				BgL_bucketsz00_1882 = STRUCT_REF(BgL_tablez00_79, (int) (2L));
				{	/* Llib/hash.scm 558 */

					{
						long BgL_iz00_1885;

						BgL_iz00_1885 = 0L;
					BgL_zc3z04anonymousza31512ze3z87_1886:
						if ((BgL_iz00_1885 < VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1882))))
							{	/* Llib/hash.scm 560 */
								{	/* Llib/hash.scm 562 */
									obj_t BgL_g1137z00_1888;

									BgL_g1137z00_1888 =
										VECTOR_REF(((obj_t) BgL_bucketsz00_1882), BgL_iz00_1885);
									{
										obj_t BgL_l1135z00_1890;

										BgL_l1135z00_1890 = BgL_g1137z00_1888;
									BgL_zc3z04anonymousza31514ze3z87_1891:
										if (PAIRP(BgL_l1135z00_1890))
											{	/* Llib/hash.scm 564 */
												{	/* Llib/hash.scm 563 */
													obj_t BgL_cellz00_1893;

													BgL_cellz00_1893 = CAR(BgL_l1135z00_1890);
													{	/* Llib/hash.scm 563 */
														obj_t BgL_arg1516z00_1894;
														obj_t BgL_arg1517z00_1895;

														BgL_arg1516z00_1894 =
															CAR(((obj_t) BgL_cellz00_1893));
														BgL_arg1517z00_1895 =
															CDR(((obj_t) BgL_cellz00_1893));
														BGL_PROCEDURE_CALL2(BgL_funz00_80,
															BgL_arg1516z00_1894, BgL_arg1517z00_1895);
													}
												}
												{
													obj_t BgL_l1135z00_6977;

													BgL_l1135z00_6977 = CDR(BgL_l1135z00_1890);
													BgL_l1135z00_1890 = BgL_l1135z00_6977;
													goto BgL_zc3z04anonymousza31514ze3z87_1891;
												}
											}
										else
											{	/* Llib/hash.scm 564 */
												((bool_t) 1);
											}
									}
								}
								{
									long BgL_iz00_6979;

									BgL_iz00_6979 = (BgL_iz00_1885 + 1L);
									BgL_iz00_1885 = BgL_iz00_6979;
									goto BgL_zc3z04anonymousza31512ze3z87_1886;
								}
							}
						else
							{	/* Llib/hash.scm 560 */
								return ((bool_t) 0);
							}
					}
				}
			}
		}

	}



/* hashtable-filter! */
	BGL_EXPORTED_DEF obj_t BGl_hashtablezd2filterz12zc0zz__hashz00(obj_t
		BgL_tablez00_81, obj_t BgL_funz00_82)
	{
		{	/* Llib/hash.scm 570 */
			{	/* Llib/hash.scm 572 */
				bool_t BgL_test2944z00_6981;

				if ((0L == ((long) CINT(STRUCT_REF(BgL_tablez00_81, (int) (5L))) & 8L)))
					{	/* Llib/hash.scm 317 */
						BgL_test2944z00_6981 = ((bool_t) 0);
					}
				else
					{	/* Llib/hash.scm 317 */
						BgL_test2944z00_6981 = ((bool_t) 1);
					}
				if (BgL_test2944z00_6981)
					{	/* Llib/hash.scm 572 */
						BGL_TAIL return
							BGl_openzd2stringzd2hashtablezd2filterz12zc0zz__hashz00
							(BgL_tablez00_81, BgL_funz00_82);
					}
				else
					{	/* Llib/hash.scm 574 */
						bool_t BgL_test2946z00_6989;

						if (
							(0L ==
								((long) CINT(STRUCT_REF(BgL_tablez00_81, (int) (5L))) & 3L)))
							{	/* Llib/hash.scm 311 */
								BgL_test2946z00_6989 = ((bool_t) 0);
							}
						else
							{	/* Llib/hash.scm 311 */
								BgL_test2946z00_6989 = ((bool_t) 1);
							}
						if (BgL_test2946z00_6989)
							{	/* Llib/hash.scm 574 */
								BGL_TAIL return
									BGl_weakzd2hashtablezd2filterz12z12zz__weakhashz00
									(BgL_tablez00_81, BgL_funz00_82);
							}
						else
							{	/* Llib/hash.scm 574 */
								BGL_TAIL return
									BGl_plainzd2hashtablezd2filterz12z12zz__hashz00
									(BgL_tablez00_81, BgL_funz00_82);
							}
					}
			}
		}

	}



/* &hashtable-filter! */
	obj_t BGl_z62hashtablezd2filterz12za2zz__hashz00(obj_t BgL_envz00_5472,
		obj_t BgL_tablez00_5473, obj_t BgL_funz00_5474)
	{
		{	/* Llib/hash.scm 570 */
			{	/* Llib/hash.scm 572 */
				obj_t BgL_auxz00_7005;
				obj_t BgL_auxz00_6998;

				if (PROCEDUREP(BgL_funz00_5474))
					{	/* Llib/hash.scm 572 */
						BgL_auxz00_7005 = BgL_funz00_5474;
					}
				else
					{
						obj_t BgL_auxz00_7008;

						BgL_auxz00_7008 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(22543L), BGl_string2636z00zz__hashz00,
							BGl_string2632z00zz__hashz00, BgL_funz00_5474);
						FAILURE(BgL_auxz00_7008, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_5473))
					{	/* Llib/hash.scm 572 */
						BgL_auxz00_6998 = BgL_tablez00_5473;
					}
				else
					{
						obj_t BgL_auxz00_7001;

						BgL_auxz00_7001 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(22543L), BGl_string2636z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5473);
						FAILURE(BgL_auxz00_7001, BFALSE, BFALSE);
					}
				return
					BGl_hashtablezd2filterz12zc0zz__hashz00(BgL_auxz00_6998,
					BgL_auxz00_7005);
			}
		}

	}



/* open-string-hashtable-filter! */
	BGL_EXPORTED_DEF obj_t
		BGl_openzd2stringzd2hashtablezd2filterz12zc0zz__hashz00(obj_t
		BgL_tablez00_83, obj_t BgL_funz00_84)
	{
		{	/* Llib/hash.scm 582 */
			{	/* Llib/hash.scm 583 */
				obj_t BgL_siza7eza7_1902;

				BgL_siza7eza7_1902 = STRUCT_REF(BgL_tablez00_83, (int) (1L));
				{	/* Llib/hash.scm 583 */
					long BgL_siza7e3za7_1903;

					BgL_siza7e3za7_1903 = (3L * (long) CINT(BgL_siza7eza7_1902));
					{	/* Llib/hash.scm 584 */
						obj_t BgL_bucketsz00_1904;

						BgL_bucketsz00_1904 = STRUCT_REF(BgL_tablez00_83, (int) (2L));
						{	/* Llib/hash.scm 585 */

							{
								long BgL_iz00_1906;

								{	/* Llib/hash.scm 586 */
									bool_t BgL_tmpz00_7019;

									BgL_iz00_1906 = 0L;
								BgL_zc3z04anonymousza31524ze3z87_1907:
									if ((BgL_iz00_1906 == BgL_siza7e3za7_1903))
										{	/* Llib/hash.scm 587 */
											BgL_tmpz00_7019 = ((bool_t) 0);
										}
									else
										{	/* Llib/hash.scm 587 */
											{	/* Llib/hash.scm 588 */
												bool_t BgL_test2951z00_7022;

												if (CBOOL(VECTOR_REF(
															((obj_t) BgL_bucketsz00_1904), BgL_iz00_1906)))
													{	/* Llib/hash.scm 588 */
														long BgL_arg1543z00_1922;

														BgL_arg1543z00_1922 = (BgL_iz00_1906 + 2L);
														BgL_test2951z00_7022 =
															CBOOL(VECTOR_REF(
																((obj_t) BgL_bucketsz00_1904),
																BgL_arg1543z00_1922));
													}
												else
													{	/* Llib/hash.scm 588 */
														BgL_test2951z00_7022 = ((bool_t) 0);
													}
												if (BgL_test2951z00_7022)
													{	/* Llib/hash.scm 589 */
														bool_t BgL_test2953z00_7031;

														{	/* Llib/hash.scm 589 */
															obj_t BgL_arg1540z00_1918;
															obj_t BgL_arg1541z00_1919;

															BgL_arg1540z00_1918 =
																VECTOR_REF(
																((obj_t) BgL_bucketsz00_1904), BgL_iz00_1906);
															{	/* Llib/hash.scm 589 */
																long BgL_arg1542z00_1920;

																BgL_arg1542z00_1920 = (BgL_iz00_1906 + 1L);
																BgL_arg1541z00_1919 =
																	VECTOR_REF(
																	((obj_t) BgL_bucketsz00_1904),
																	BgL_arg1542z00_1920);
															}
															BgL_test2953z00_7031 =
																CBOOL(BGL_PROCEDURE_CALL2(BgL_funz00_84,
																	BgL_arg1540z00_1918, BgL_arg1541z00_1919));
														}
														if (BgL_test2953z00_7031)
															{	/* Llib/hash.scm 589 */
																BFALSE;
															}
														else
															{	/* Llib/hash.scm 589 */
																{	/* Llib/hash.scm 590 */
																	long BgL_arg1537z00_1916;

																	BgL_arg1537z00_1916 = (BgL_iz00_1906 + 1L);
																	VECTOR_SET(
																		((obj_t) BgL_bucketsz00_1904),
																		BgL_arg1537z00_1916, BFALSE);
																}
																{	/* Llib/hash.scm 591 */
																	long BgL_arg1538z00_1917;

																	BgL_arg1538z00_1917 = (BgL_iz00_1906 + 2L);
																	VECTOR_SET(
																		((obj_t) BgL_bucketsz00_1904),
																		BgL_arg1538z00_1917, BFALSE);
																}
																{	/* Llib/hash.scm 1326 */
																	long BgL_arg1988z00_3764;

																	BgL_arg1988z00_3764 =
																		(
																		(long) CINT(STRUCT_REF(BgL_tablez00_83,
																				(int) (6L))) + 1L);
																	{	/* Llib/hash.scm 1296 */
																		obj_t BgL_auxz00_7055;
																		int BgL_tmpz00_7053;

																		BgL_auxz00_7055 = BINT(BgL_arg1988z00_3764);
																		BgL_tmpz00_7053 = (int) (6L);
																		STRUCT_SET(BgL_tablez00_83, BgL_tmpz00_7053,
																			BgL_auxz00_7055);
													}}}}
												else
													{	/* Llib/hash.scm 588 */
														BFALSE;
													}
											}
											{
												long BgL_iz00_7058;

												BgL_iz00_7058 = (BgL_iz00_1906 + 3L);
												BgL_iz00_1906 = BgL_iz00_7058;
												goto BgL_zc3z04anonymousza31524ze3z87_1907;
											}
										}
									return BBOOL(BgL_tmpz00_7019);
								}
							}
						}
					}
				}
			}
		}

	}



/* &open-string-hashtable-filter! */
	obj_t BGl_z62openzd2stringzd2hashtablezd2filterz12za2zz__hashz00(obj_t
		BgL_envz00_5475, obj_t BgL_tablez00_5476, obj_t BgL_funz00_5477)
	{
		{	/* Llib/hash.scm 582 */
			{	/* Llib/hash.scm 583 */
				obj_t BgL_auxz00_7068;
				obj_t BgL_auxz00_7061;

				if (PROCEDUREP(BgL_funz00_5477))
					{	/* Llib/hash.scm 583 */
						BgL_auxz00_7068 = BgL_funz00_5477;
					}
				else
					{
						obj_t BgL_auxz00_7071;

						BgL_auxz00_7071 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(23041L), BGl_string2637z00zz__hashz00,
							BGl_string2632z00zz__hashz00, BgL_funz00_5477);
						FAILURE(BgL_auxz00_7071, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_5476))
					{	/* Llib/hash.scm 583 */
						BgL_auxz00_7061 = BgL_tablez00_5476;
					}
				else
					{
						obj_t BgL_auxz00_7064;

						BgL_auxz00_7064 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(23041L), BGl_string2637z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5476);
						FAILURE(BgL_auxz00_7064, BFALSE, BFALSE);
					}
				return
					BGl_openzd2stringzd2hashtablezd2filterz12zc0zz__hashz00
					(BgL_auxz00_7061, BgL_auxz00_7068);
			}
		}

	}



/* plain-hashtable-filter! */
	obj_t BGl_plainzd2hashtablezd2filterz12z12zz__hashz00(obj_t BgL_tablez00_85,
		obj_t BgL_funz00_86)
	{
		{	/* Llib/hash.scm 598 */
			{	/* Llib/hash.scm 599 */
				obj_t BgL_bucketsz00_1925;

				BgL_bucketsz00_1925 = STRUCT_REF(BgL_tablez00_85, (int) (2L));
				{	/* Llib/hash.scm 600 */

					{
						long BgL_iz00_1928;
						long BgL_deltaz00_1929;

						BgL_iz00_1928 = 0L;
						BgL_deltaz00_1929 = 0L;
					BgL_zc3z04anonymousza31546ze3z87_1930:
						if ((BgL_iz00_1928 < VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1925))))
							{	/* Llib/hash.scm 603 */
								obj_t BgL_lz00_1932;

								BgL_lz00_1932 =
									VECTOR_REF(((obj_t) BgL_bucketsz00_1925), BgL_iz00_1928);
								{	/* Llib/hash.scm 603 */
									long BgL_oldzd2lenzd2_1933;

									BgL_oldzd2lenzd2_1933 = bgl_list_length(BgL_lz00_1932);
									{	/* Llib/hash.scm 604 */
										obj_t BgL_newlz00_1934;

										{	/* Llib/hash.scm 606 */
											obj_t BgL_zc3z04anonymousza31555ze3z87_5478;

											BgL_zc3z04anonymousza31555ze3z87_5478 =
												MAKE_FX_PROCEDURE
												(BGl_z62zc3z04anonymousza31555ze3ze5zz__hashz00,
												(int) (1L), (int) (1L));
											PROCEDURE_SET(BgL_zc3z04anonymousza31555ze3z87_5478,
												(int) (0L), BgL_funz00_86);
											BgL_newlz00_1934 =
												BGl_filterz12z12zz__r4_control_features_6_9z00
												(BgL_zc3z04anonymousza31555ze3z87_5478, BgL_lz00_1932);
										}
										{	/* Llib/hash.scm 605 */
											long BgL_newzd2lenzd2_1935;

											BgL_newzd2lenzd2_1935 = bgl_list_length(BgL_newlz00_1934);
											{	/* Llib/hash.scm 608 */

												VECTOR_SET(
													((obj_t) BgL_bucketsz00_1925), BgL_iz00_1928,
													BgL_newlz00_1934);
												{
													long BgL_deltaz00_7096;
													long BgL_iz00_7094;

													BgL_iz00_7094 = (BgL_iz00_1928 + 1L);
													BgL_deltaz00_7096 =
														(BgL_deltaz00_1929 +
														(BgL_newzd2lenzd2_1935 - BgL_oldzd2lenzd2_1933));
													BgL_deltaz00_1929 = BgL_deltaz00_7096;
													BgL_iz00_1928 = BgL_iz00_7094;
													goto BgL_zc3z04anonymousza31546ze3z87_1930;
												}
											}
										}
									}
								}
							}
						else
							{	/* Llib/hash.scm 612 */
								long BgL_arg1561z00_1945;

								BgL_arg1561z00_1945 =
									(BgL_deltaz00_1929 +
									(long) CINT(STRUCT_REF(BgL_tablez00_85, (int) (0L))));
								{	/* Llib/hash.scm 611 */
									obj_t BgL_xz00_5628;

									{	/* Llib/hash.scm 611 */
										obj_t BgL_auxz00_7105;
										int BgL_tmpz00_7103;

										BgL_auxz00_7105 = BINT(BgL_arg1561z00_1945);
										BgL_tmpz00_7103 = (int) (0L);
										BgL_xz00_5628 =
											STRUCT_SET(BgL_tablez00_85, BgL_tmpz00_7103,
											BgL_auxz00_7105);
									}
									return BUNSPEC;
								}
							}
					}
				}
			}
		}

	}



/* &<@anonymous:1555> */
	obj_t BGl_z62zc3z04anonymousza31555ze3ze5zz__hashz00(obj_t BgL_envz00_5479,
		obj_t BgL_cellz00_5481)
	{
		{	/* Llib/hash.scm 605 */
			{	/* Llib/hash.scm 606 */
				obj_t BgL_funz00_5480;

				BgL_funz00_5480 = ((obj_t) PROCEDURE_REF(BgL_envz00_5479, (int) (0L)));
				{	/* Llib/hash.scm 606 */
					obj_t BgL_arg1558z00_5735;
					obj_t BgL_arg1559z00_5736;

					BgL_arg1558z00_5735 = CAR(((obj_t) BgL_cellz00_5481));
					BgL_arg1559z00_5736 = CDR(((obj_t) BgL_cellz00_5481));
					return
						BGL_PROCEDURE_CALL2(BgL_funz00_5480, BgL_arg1558z00_5735,
						BgL_arg1559z00_5736);
				}
			}
		}

	}



/* hashtable-clear! */
	BGL_EXPORTED_DEF obj_t BGl_hashtablezd2clearz12zc0zz__hashz00(obj_t
		BgL_tablez00_87)
	{
		{	/* Llib/hash.scm 617 */
			{	/* Llib/hash.scm 619 */
				bool_t BgL_test2957z00_7120;

				if ((0L == ((long) CINT(STRUCT_REF(BgL_tablez00_87, (int) (5L))) & 8L)))
					{	/* Llib/hash.scm 317 */
						BgL_test2957z00_7120 = ((bool_t) 0);
					}
				else
					{	/* Llib/hash.scm 317 */
						BgL_test2957z00_7120 = ((bool_t) 1);
					}
				if (BgL_test2957z00_7120)
					{	/* Llib/hash.scm 619 */
						BGL_TAIL return
							BGl_openzd2stringzd2hashtablezd2clearz12zc0zz__hashz00
							(BgL_tablez00_87);
					}
				else
					{	/* Llib/hash.scm 621 */
						bool_t BgL_test2959z00_7128;

						if (
							(0L ==
								((long) CINT(STRUCT_REF(BgL_tablez00_87, (int) (5L))) & 3L)))
							{	/* Llib/hash.scm 311 */
								BgL_test2959z00_7128 = ((bool_t) 0);
							}
						else
							{	/* Llib/hash.scm 311 */
								BgL_test2959z00_7128 = ((bool_t) 1);
							}
						if (BgL_test2959z00_7128)
							{	/* Llib/hash.scm 621 */
								BGL_TAIL return
									BGl_weakzd2hashtablezd2clearz12z12zz__weakhashz00
									(BgL_tablez00_87);
							}
						else
							{	/* Llib/hash.scm 621 */
								BGL_TAIL return
									BGl_plainzd2hashtablezd2clearz12z12zz__hashz00
									(BgL_tablez00_87);
							}
					}
			}
		}

	}



/* &hashtable-clear! */
	obj_t BGl_z62hashtablezd2clearz12za2zz__hashz00(obj_t BgL_envz00_5482,
		obj_t BgL_tablez00_5483)
	{
		{	/* Llib/hash.scm 617 */
			{	/* Llib/hash.scm 619 */
				obj_t BgL_auxz00_7137;

				if (STRUCTP(BgL_tablez00_5483))
					{	/* Llib/hash.scm 619 */
						BgL_auxz00_7137 = BgL_tablez00_5483;
					}
				else
					{
						obj_t BgL_auxz00_7140;

						BgL_auxz00_7140 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(24621L), BGl_string2638z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5483);
						FAILURE(BgL_auxz00_7140, BFALSE, BFALSE);
					}
				return BGl_hashtablezd2clearz12zc0zz__hashz00(BgL_auxz00_7137);
			}
		}

	}



/* open-string-hashtable-clear! */
	obj_t BGl_openzd2stringzd2hashtablezd2clearz12zc0zz__hashz00(obj_t
		BgL_tablez00_88)
	{
		{	/* Llib/hash.scm 629 */
			{	/* Llib/hash.scm 630 */
				obj_t BgL_arg1565z00_1950;

				BgL_arg1565z00_1950 = STRUCT_REF(BgL_tablez00_88, (int) (2L));
				{	/* Ieee/vector.scm 105 */

					BGl_vectorzd2fillz12zc0zz__r4_vectors_6_8z00(BgL_arg1565z00_1950,
						BFALSE, 0L, VECTOR_LENGTH(((obj_t) BgL_arg1565z00_1950)));
			}}
			{	/* Llib/hash.scm 1296 */
				obj_t BgL_auxz00_7152;
				int BgL_tmpz00_7150;

				BgL_auxz00_7152 = BINT(0L);
				BgL_tmpz00_7150 = (int) (6L);
				STRUCT_SET(BgL_tablez00_88, BgL_tmpz00_7150, BgL_auxz00_7152);
			}
			{	/* Llib/hash.scm 632 */
				obj_t BgL_xz00_5631;

				{	/* Llib/hash.scm 632 */
					obj_t BgL_auxz00_7157;
					int BgL_tmpz00_7155;

					BgL_auxz00_7157 = BINT(0L);
					BgL_tmpz00_7155 = (int) (0L);
					BgL_xz00_5631 =
						STRUCT_SET(BgL_tablez00_88, BgL_tmpz00_7155, BgL_auxz00_7157);
				}
				return BUNSPEC;
			}
		}

	}



/* plain-hashtable-clear! */
	obj_t BGl_plainzd2hashtablezd2clearz12z12zz__hashz00(obj_t BgL_tablez00_89)
	{
		{	/* Llib/hash.scm 637 */
			{	/* Llib/hash.scm 638 */
				obj_t BgL_bucketsz00_1955;

				BgL_bucketsz00_1955 = STRUCT_REF(BgL_tablez00_89, (int) (2L));
				{	/* Llib/hash.scm 639 */

					{
						long BgL_iz00_3820;

						BgL_iz00_3820 = 0L;
					BgL_loopz00_3819:
						if ((BgL_iz00_3820 < VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1955))))
							{	/* Llib/hash.scm 641 */
								VECTOR_SET(((obj_t) BgL_bucketsz00_1955), BgL_iz00_3820, BNIL);
								{
									long BgL_iz00_7168;

									BgL_iz00_7168 = (BgL_iz00_3820 + 1L);
									BgL_iz00_3820 = BgL_iz00_7168;
									goto BgL_loopz00_3819;
								}
							}
						else
							{	/* Llib/hash.scm 645 */
								obj_t BgL_xz00_5632;

								{	/* Llib/hash.scm 645 */
									obj_t BgL_auxz00_7172;
									int BgL_tmpz00_7170;

									BgL_auxz00_7172 = BINT(0L);
									BgL_tmpz00_7170 = (int) (0L);
									BgL_xz00_5632 =
										STRUCT_SET(BgL_tablez00_89, BgL_tmpz00_7170,
										BgL_auxz00_7172);
								}
								return BUNSPEC;
							}
					}
				}
			}
		}

	}



/* hashtable-contains? */
	BGL_EXPORTED_DEF bool_t BGl_hashtablezd2containszf3z21zz__hashz00(obj_t
		BgL_tablez00_90, obj_t BgL_keyz00_91)
	{
		{	/* Llib/hash.scm 650 */
			{	/* Llib/hash.scm 652 */
				bool_t BgL_test2963z00_7175;

				if ((0L == ((long) CINT(STRUCT_REF(BgL_tablez00_90, (int) (5L))) & 8L)))
					{	/* Llib/hash.scm 317 */
						BgL_test2963z00_7175 = ((bool_t) 0);
					}
				else
					{	/* Llib/hash.scm 317 */
						BgL_test2963z00_7175 = ((bool_t) 1);
					}
				if (BgL_test2963z00_7175)
					{	/* Llib/hash.scm 652 */
						return
							CBOOL(BGl_openzd2stringzd2hashtablezd2containszf3z21zz__hashz00
							(BgL_tablez00_90, BgL_keyz00_91));
					}
				else
					{	/* Llib/hash.scm 654 */
						bool_t BgL_test2965z00_7184;

						if (
							(0L ==
								((long) CINT(STRUCT_REF(BgL_tablez00_90, (int) (5L))) & 3L)))
							{	/* Llib/hash.scm 311 */
								BgL_test2965z00_7184 = ((bool_t) 0);
							}
						else
							{	/* Llib/hash.scm 311 */
								BgL_test2965z00_7184 = ((bool_t) 1);
							}
						if (BgL_test2965z00_7184)
							{	/* Llib/hash.scm 654 */
								BGL_TAIL return
									BGl_weakzd2hashtablezd2containszf3zf3zz__weakhashz00
									(BgL_tablez00_90, BgL_keyz00_91);
							}
						else
							{	/* Llib/hash.scm 654 */
								BGL_TAIL return
									BGl_plainzd2hashtablezd2containszf3zf3zz__hashz00
									(BgL_tablez00_90, BgL_keyz00_91);
							}
					}
			}
		}

	}



/* &hashtable-contains? */
	obj_t BGl_z62hashtablezd2containszf3z43zz__hashz00(obj_t BgL_envz00_5484,
		obj_t BgL_tablez00_5485, obj_t BgL_keyz00_5486)
	{
		{	/* Llib/hash.scm 650 */
			{	/* Llib/hash.scm 652 */
				bool_t BgL_tmpz00_7193;

				{	/* Llib/hash.scm 652 */
					obj_t BgL_auxz00_7194;

					if (STRUCTP(BgL_tablez00_5485))
						{	/* Llib/hash.scm 652 */
							BgL_auxz00_7194 = BgL_tablez00_5485;
						}
					else
						{
							obj_t BgL_auxz00_7197;

							BgL_auxz00_7197 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
								BINT(26028L), BGl_string2639z00zz__hashz00,
								BGl_string2625z00zz__hashz00, BgL_tablez00_5485);
							FAILURE(BgL_auxz00_7197, BFALSE, BFALSE);
						}
					BgL_tmpz00_7193 =
						BGl_hashtablezd2containszf3z21zz__hashz00(BgL_auxz00_7194,
						BgL_keyz00_5486);
				}
				return BBOOL(BgL_tmpz00_7193);
			}
		}

	}



/* open-string-hashtable-contains? */
	BGL_EXPORTED_DEF obj_t
		BGl_openzd2stringzd2hashtablezd2containszf3z21zz__hashz00(obj_t BgL_tz00_92,
		obj_t BgL_keyz00_93)
	{
		{	/* Llib/hash.scm 662 */
			{	/* Llib/hash.scm 663 */
				obj_t BgL_siza7eza7_1965;

				BgL_siza7eza7_1965 = STRUCT_REF(BgL_tz00_92, (int) (1L));
				{	/* Llib/hash.scm 663 */
					obj_t BgL_bucketsz00_1966;

					BgL_bucketsz00_1966 = STRUCT_REF(BgL_tz00_92, (int) (2L));
					{	/* Llib/hash.scm 664 */
						long BgL_hashz00_1967;

						{	/* Llib/hash.scm 665 */
							long BgL_arg1587z00_1989;

							BgL_arg1587z00_1989 = STRING_LENGTH(BgL_keyz00_93);
							BgL_hashz00_1967 =
								bgl_string_hash(BSTRING_TO_STRING(BgL_keyz00_93),
								(int) (0L), (int) (BgL_arg1587z00_1989));
						}
						{	/* Llib/hash.scm 665 */

							{	/* Llib/hash.scm 667 */
								long BgL_g1068z00_1968;

								{	/* Llib/hash.scm 667 */
									long BgL_n1z00_3848;
									long BgL_n2z00_3849;

									BgL_n1z00_3848 = BgL_hashz00_1967;
									BgL_n2z00_3849 = (long) CINT(BgL_siza7eza7_1965);
									{	/* Llib/hash.scm 667 */
										bool_t BgL_test2968z00_7213;

										{	/* Llib/hash.scm 667 */
											long BgL_arg2156z00_3851;

											BgL_arg2156z00_3851 =
												(((BgL_n1z00_3848) | (BgL_n2z00_3849)) & -2147483648);
											BgL_test2968z00_7213 = (BgL_arg2156z00_3851 == 0L);
										}
										if (BgL_test2968z00_7213)
											{	/* Llib/hash.scm 667 */
												int32_t BgL_arg2153z00_3852;

												{	/* Llib/hash.scm 667 */
													int32_t BgL_arg2154z00_3853;
													int32_t BgL_arg2155z00_3854;

													BgL_arg2154z00_3853 = (int32_t) (BgL_n1z00_3848);
													BgL_arg2155z00_3854 = (int32_t) (BgL_n2z00_3849);
													BgL_arg2153z00_3852 =
														(BgL_arg2154z00_3853 % BgL_arg2155z00_3854);
												}
												{	/* Llib/hash.scm 667 */
													long BgL_arg2257z00_3859;

													BgL_arg2257z00_3859 = (long) (BgL_arg2153z00_3852);
													BgL_g1068z00_1968 = (long) (BgL_arg2257z00_3859);
											}}
										else
											{	/* Llib/hash.scm 667 */
												BgL_g1068z00_1968 = (BgL_n1z00_3848 % BgL_n2z00_3849);
											}
									}
								}
								{
									long BgL_offz00_1970;
									long BgL_iz00_1971;

									BgL_offz00_1970 = BgL_g1068z00_1968;
									BgL_iz00_1971 = 1L;
								BgL_zc3z04anonymousza31571ze3z87_1972:
									{	/* Llib/hash.scm 669 */
										long BgL_off3z00_1973;

										BgL_off3z00_1973 = (BgL_offz00_1970 * 3L);
										if (CBOOL(VECTOR_REF(
													((obj_t) BgL_bucketsz00_1966), BgL_off3z00_1973)))
											{	/* Llib/hash.scm 671 */
												bool_t BgL_test2970z00_7227;

												{	/* Llib/hash.scm 671 */
													obj_t BgL_arg1586z00_1987;

													BgL_arg1586z00_1987 =
														VECTOR_REF(
														((obj_t) BgL_bucketsz00_1966), BgL_off3z00_1973);
													{	/* Llib/hash.scm 671 */
														long BgL_l1z00_3868;

														BgL_l1z00_3868 =
															STRING_LENGTH(((obj_t) BgL_arg1586z00_1987));
														if (
															(BgL_l1z00_3868 == STRING_LENGTH(BgL_keyz00_93)))
															{	/* Llib/hash.scm 671 */
																int BgL_arg2055z00_3871;

																{	/* Llib/hash.scm 671 */
																	char *BgL_auxz00_7238;
																	char *BgL_tmpz00_7235;

																	BgL_auxz00_7238 =
																		BSTRING_TO_STRING(BgL_keyz00_93);
																	BgL_tmpz00_7235 =
																		BSTRING_TO_STRING(
																		((obj_t) BgL_arg1586z00_1987));
																	BgL_arg2055z00_3871 =
																		memcmp(BgL_tmpz00_7235, BgL_auxz00_7238,
																		BgL_l1z00_3868);
																}
																BgL_test2970z00_7227 =
																	((long) (BgL_arg2055z00_3871) == 0L);
															}
														else
															{	/* Llib/hash.scm 671 */
																BgL_test2970z00_7227 = ((bool_t) 0);
															}
													}
												}
												if (BgL_test2970z00_7227)
													{	/* Llib/hash.scm 672 */
														bool_t BgL_test2972z00_7243;

														{	/* Llib/hash.scm 672 */
															long BgL_arg1578z00_1980;

															BgL_arg1578z00_1980 = (BgL_off3z00_1973 + 1L);
															BgL_test2972z00_7243 =
																CBOOL(VECTOR_REF(
																	((obj_t) BgL_bucketsz00_1966),
																	BgL_arg1578z00_1980));
														}
														if (BgL_test2972z00_7243)
															{	/* Llib/hash.scm 673 */
																long BgL_arg1577z00_1979;

																BgL_arg1577z00_1979 = (BgL_off3z00_1973 + 1L);
																return
																	VECTOR_REF(
																	((obj_t) BgL_bucketsz00_1966),
																	BgL_arg1577z00_1979);
															}
														else
															{	/* Llib/hash.scm 672 */
																return BFALSE;
															}
													}
												else
													{	/* Llib/hash.scm 674 */
														long BgL_noffz00_1981;

														BgL_noffz00_1981 =
															(BgL_offz00_1970 +
															(BgL_iz00_1971 * BgL_iz00_1971));
														if (
															(BgL_noffz00_1981 >=
																(long) CINT(BgL_siza7eza7_1965)))
															{	/* Llib/hash.scm 676 */
																long BgL_arg1580z00_1983;
																long BgL_arg1581z00_1984;

																{	/* Llib/hash.scm 676 */
																	long BgL_n1z00_3889;
																	long BgL_n2z00_3890;

																	BgL_n1z00_3889 = BgL_noffz00_1981;
																	BgL_n2z00_3890 =
																		(long) CINT(BgL_siza7eza7_1965);
																	{	/* Llib/hash.scm 676 */
																		bool_t BgL_test2974z00_7257;

																		{	/* Llib/hash.scm 676 */
																			long BgL_arg2156z00_3892;

																			BgL_arg2156z00_3892 =
																				(((BgL_n1z00_3889) | (BgL_n2z00_3890)) &
																				-2147483648);
																			BgL_test2974z00_7257 =
																				(BgL_arg2156z00_3892 == 0L);
																		}
																		if (BgL_test2974z00_7257)
																			{	/* Llib/hash.scm 676 */
																				int32_t BgL_arg2153z00_3893;

																				{	/* Llib/hash.scm 676 */
																					int32_t BgL_arg2154z00_3894;
																					int32_t BgL_arg2155z00_3895;

																					BgL_arg2154z00_3894 =
																						(int32_t) (BgL_n1z00_3889);
																					BgL_arg2155z00_3895 =
																						(int32_t) (BgL_n2z00_3890);
																					BgL_arg2153z00_3893 =
																						(BgL_arg2154z00_3894 %
																						BgL_arg2155z00_3895);
																				}
																				{	/* Llib/hash.scm 676 */
																					long BgL_arg2257z00_3900;

																					BgL_arg2257z00_3900 =
																						(long) (BgL_arg2153z00_3893);
																					BgL_arg1580z00_1983 =
																						(long) (BgL_arg2257z00_3900);
																			}}
																		else
																			{	/* Llib/hash.scm 676 */
																				BgL_arg1580z00_1983 =
																					(BgL_n1z00_3889 % BgL_n2z00_3890);
																			}
																	}
																}
																BgL_arg1581z00_1984 = (BgL_iz00_1971 + 1L);
																{
																	long BgL_iz00_7268;
																	long BgL_offz00_7267;

																	BgL_offz00_7267 = BgL_arg1580z00_1983;
																	BgL_iz00_7268 = BgL_arg1581z00_1984;
																	BgL_iz00_1971 = BgL_iz00_7268;
																	BgL_offz00_1970 = BgL_offz00_7267;
																	goto BgL_zc3z04anonymousza31571ze3z87_1972;
																}
															}
														else
															{
																long BgL_iz00_7270;
																long BgL_offz00_7269;

																BgL_offz00_7269 = BgL_noffz00_1981;
																BgL_iz00_7270 = (BgL_iz00_1971 + 1L);
																BgL_iz00_1971 = BgL_iz00_7270;
																BgL_offz00_1970 = BgL_offz00_7269;
																goto BgL_zc3z04anonymousza31571ze3z87_1972;
															}
													}
											}
										else
											{	/* Llib/hash.scm 670 */
												return BFALSE;
											}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* &open-string-hashtable-contains? */
	obj_t BGl_z62openzd2stringzd2hashtablezd2containszf3z43zz__hashz00(obj_t
		BgL_envz00_5487, obj_t BgL_tz00_5488, obj_t BgL_keyz00_5489)
	{
		{	/* Llib/hash.scm 662 */
			{	/* Llib/hash.scm 663 */
				obj_t BgL_auxz00_7279;
				obj_t BgL_auxz00_7272;

				if (STRINGP(BgL_keyz00_5489))
					{	/* Llib/hash.scm 663 */
						BgL_auxz00_7279 = BgL_keyz00_5489;
					}
				else
					{
						obj_t BgL_auxz00_7282;

						BgL_auxz00_7282 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(26522L), BGl_string2640z00zz__hashz00,
							BGl_string2641z00zz__hashz00, BgL_keyz00_5489);
						FAILURE(BgL_auxz00_7282, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tz00_5488))
					{	/* Llib/hash.scm 663 */
						BgL_auxz00_7272 = BgL_tz00_5488;
					}
				else
					{
						obj_t BgL_auxz00_7275;

						BgL_auxz00_7275 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(26522L), BGl_string2640z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tz00_5488);
						FAILURE(BgL_auxz00_7275, BFALSE, BFALSE);
					}
				return
					BGl_openzd2stringzd2hashtablezd2containszf3z21zz__hashz00
					(BgL_auxz00_7272, BgL_auxz00_7279);
			}
		}

	}



/* plain-hashtable-contains? */
	bool_t BGl_plainzd2hashtablezd2containszf3zf3zz__hashz00(obj_t
		BgL_tablez00_94, obj_t BgL_keyz00_95)
	{
		{	/* Llib/hash.scm 682 */
			{	/* Llib/hash.scm 683 */
				obj_t BgL_bucketsz00_1990;

				BgL_bucketsz00_1990 = STRUCT_REF(BgL_tablez00_94, (int) (2L));
				{	/* Llib/hash.scm 684 */
					long BgL_bucketzd2numzd2_1992;

					{	/* Llib/hash.scm 685 */
						long BgL_arg1597z00_2003;

						{	/* Llib/hash.scm 685 */
							obj_t BgL_hashnz00_3906;

							BgL_hashnz00_3906 = STRUCT_REF(BgL_tablez00_94, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_3906))
								{	/* Llib/hash.scm 685 */
									obj_t BgL_arg1278z00_3908;

									BgL_arg1278z00_3908 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_3906, BgL_keyz00_95);
									{	/* Llib/hash.scm 685 */
										long BgL_nz00_3910;

										BgL_nz00_3910 = (long) CINT(BgL_arg1278z00_3908);
										if ((BgL_nz00_3910 < 0L))
											{	/* Llib/hash.scm 685 */
												BgL_arg1597z00_2003 = NEG(BgL_nz00_3910);
											}
										else
											{	/* Llib/hash.scm 685 */
												BgL_arg1597z00_2003 = BgL_nz00_3910;
											}
									}
								}
							else
								{	/* Llib/hash.scm 685 */
									if ((BgL_hashnz00_3906 == BGl_symbol2620z00zz__hashz00))
										{	/* Llib/hash.scm 685 */
											BgL_arg1597z00_2003 =
												BGl_objzd2hashze70z35zz__hashz00(BgL_keyz00_95);
										}
									else
										{	/* Llib/hash.scm 685 */
											BgL_arg1597z00_2003 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_95);
										}
								}
						}
						{	/* Llib/hash.scm 685 */
							long BgL_n1z00_3914;
							long BgL_n2z00_3915;

							BgL_n1z00_3914 = BgL_arg1597z00_2003;
							BgL_n2z00_3915 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_1990));
							{	/* Llib/hash.scm 685 */
								bool_t BgL_test2980z00_7307;

								{	/* Llib/hash.scm 685 */
									long BgL_arg2156z00_3917;

									BgL_arg2156z00_3917 =
										(((BgL_n1z00_3914) | (BgL_n2z00_3915)) & -2147483648);
									BgL_test2980z00_7307 = (BgL_arg2156z00_3917 == 0L);
								}
								if (BgL_test2980z00_7307)
									{	/* Llib/hash.scm 685 */
										int32_t BgL_arg2153z00_3918;

										{	/* Llib/hash.scm 685 */
											int32_t BgL_arg2154z00_3919;
											int32_t BgL_arg2155z00_3920;

											BgL_arg2154z00_3919 = (int32_t) (BgL_n1z00_3914);
											BgL_arg2155z00_3920 = (int32_t) (BgL_n2z00_3915);
											BgL_arg2153z00_3918 =
												(BgL_arg2154z00_3919 % BgL_arg2155z00_3920);
										}
										{	/* Llib/hash.scm 685 */
											long BgL_arg2257z00_3925;

											BgL_arg2257z00_3925 = (long) (BgL_arg2153z00_3918);
											BgL_bucketzd2numzd2_1992 = (long) (BgL_arg2257z00_3925);
									}}
								else
									{	/* Llib/hash.scm 685 */
										BgL_bucketzd2numzd2_1992 =
											(BgL_n1z00_3914 % BgL_n2z00_3915);
									}
							}
						}
					}
					{	/* Llib/hash.scm 685 */
						obj_t BgL_bucketz00_1993;

						BgL_bucketz00_1993 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_1990), BgL_bucketzd2numzd2_1992);
						{	/* Llib/hash.scm 686 */

							{
								obj_t BgL_bucketz00_1995;

								BgL_bucketz00_1995 = BgL_bucketz00_1993;
							BgL_zc3z04anonymousza31588ze3z87_1996:
								if (NULLP(BgL_bucketz00_1995))
									{	/* Llib/hash.scm 689 */
										return ((bool_t) 0);
									}
								else
									{	/* Llib/hash.scm 691 */
										bool_t BgL_test2982z00_7320;

										{	/* Llib/hash.scm 691 */
											obj_t BgL_arg1596z00_2001;

											{	/* Llib/hash.scm 691 */
												obj_t BgL_pairz00_3932;

												BgL_pairz00_3932 = CAR(((obj_t) BgL_bucketz00_1995));
												BgL_arg1596z00_2001 = CAR(BgL_pairz00_3932);
											}
											{	/* Llib/hash.scm 691 */
												obj_t BgL_eqtz00_3933;

												BgL_eqtz00_3933 =
													STRUCT_REF(BgL_tablez00_94, (int) (3L));
												if (PROCEDUREP(BgL_eqtz00_3933))
													{	/* Llib/hash.scm 691 */
														BgL_test2982z00_7320 =
															CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_3933,
																BgL_arg1596z00_2001, BgL_keyz00_95));
													}
												else
													{	/* Llib/hash.scm 691 */
														if ((BgL_arg1596z00_2001 == BgL_keyz00_95))
															{	/* Llib/hash.scm 691 */
																BgL_test2982z00_7320 = ((bool_t) 1);
															}
														else
															{	/* Llib/hash.scm 691 */
																if (STRINGP(BgL_arg1596z00_2001))
																	{	/* Llib/hash.scm 691 */
																		if (STRINGP(BgL_keyz00_95))
																			{	/* Llib/hash.scm 691 */
																				long BgL_l1z00_3940;

																				BgL_l1z00_3940 =
																					STRING_LENGTH(BgL_arg1596z00_2001);
																				if (
																					(BgL_l1z00_3940 ==
																						STRING_LENGTH(BgL_keyz00_95)))
																					{	/* Llib/hash.scm 691 */
																						int BgL_arg2055z00_3943;

																						{	/* Llib/hash.scm 691 */
																							char *BgL_auxz00_7346;
																							char *BgL_tmpz00_7344;

																							BgL_auxz00_7346 =
																								BSTRING_TO_STRING
																								(BgL_keyz00_95);
																							BgL_tmpz00_7344 =
																								BSTRING_TO_STRING
																								(BgL_arg1596z00_2001);
																							BgL_arg2055z00_3943 =
																								memcmp(BgL_tmpz00_7344,
																								BgL_auxz00_7346,
																								BgL_l1z00_3940);
																						}
																						BgL_test2982z00_7320 =
																							(
																							(long) (BgL_arg2055z00_3943) ==
																							0L);
																					}
																				else
																					{	/* Llib/hash.scm 691 */
																						BgL_test2982z00_7320 = ((bool_t) 0);
																					}
																			}
																		else
																			{	/* Llib/hash.scm 691 */
																				BgL_test2982z00_7320 = ((bool_t) 0);
																			}
																	}
																else
																	{	/* Llib/hash.scm 691 */
																		BgL_test2982z00_7320 = ((bool_t) 0);
																	}
															}
													}
											}
										}
										if (BgL_test2982z00_7320)
											{	/* Llib/hash.scm 691 */
												return ((bool_t) 1);
											}
										else
											{	/* Llib/hash.scm 694 */
												obj_t BgL_arg1595z00_2000;

												BgL_arg1595z00_2000 = CDR(((obj_t) BgL_bucketz00_1995));
												{
													obj_t BgL_bucketz00_7353;

													BgL_bucketz00_7353 = BgL_arg1595z00_2000;
													BgL_bucketz00_1995 = BgL_bucketz00_7353;
													goto BgL_zc3z04anonymousza31588ze3z87_1996;
												}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* hashtable-get */
	BGL_EXPORTED_DEF obj_t BGl_hashtablezd2getzd2zz__hashz00(obj_t
		BgL_tablez00_96, obj_t BgL_keyz00_97)
	{
		{	/* Llib/hash.scm 699 */
			{	/* Llib/hash.scm 701 */
				bool_t BgL_test2988z00_7354;

				if ((0L == ((long) CINT(STRUCT_REF(BgL_tablez00_96, (int) (5L))) & 8L)))
					{	/* Llib/hash.scm 317 */
						BgL_test2988z00_7354 = ((bool_t) 0);
					}
				else
					{	/* Llib/hash.scm 317 */
						BgL_test2988z00_7354 = ((bool_t) 1);
					}
				if (BgL_test2988z00_7354)
					{	/* Llib/hash.scm 701 */
						return
							BGl_openzd2stringzd2hashtablezd2getzd2zz__hashz00(BgL_tablez00_96,
							BgL_keyz00_97);
					}
				else
					{	/* Llib/hash.scm 701 */
						if (((long) CINT(STRUCT_REF(BgL_tablez00_96, (int) (5L))) == 4L))
							{	/* Llib/hash.scm 702 */
								return
									BGl_stringzd2hashtablezd2getz00zz__hashz00(BgL_tablez00_96,
									BgL_keyz00_97);
							}
						else
							{	/* Llib/hash.scm 703 */
								bool_t BgL_test2991z00_7368;

								if (
									(0L ==
										((long) CINT(STRUCT_REF(BgL_tablez00_96,
													(int) (5L))) & 3L)))
									{	/* Llib/hash.scm 311 */
										BgL_test2991z00_7368 = ((bool_t) 0);
									}
								else
									{	/* Llib/hash.scm 311 */
										BgL_test2991z00_7368 = ((bool_t) 1);
									}
								if (BgL_test2991z00_7368)
									{	/* Llib/hash.scm 703 */
										BGL_TAIL return
											BGl_weakzd2hashtablezd2getz00zz__weakhashz00
											(BgL_tablez00_96, BgL_keyz00_97);
									}
								else
									{	/* Llib/hash.scm 703 */
										BGL_TAIL return
											BGl_plainzd2hashtablezd2getz00zz__hashz00(BgL_tablez00_96,
											BgL_keyz00_97);
									}
							}
					}
			}
		}

	}



/* &hashtable-get */
	obj_t BGl_z62hashtablezd2getzb0zz__hashz00(obj_t BgL_envz00_5490,
		obj_t BgL_tablez00_5491, obj_t BgL_keyz00_5492)
	{
		{	/* Llib/hash.scm 699 */
			{	/* Llib/hash.scm 701 */
				obj_t BgL_auxz00_7377;

				if (STRUCTP(BgL_tablez00_5491))
					{	/* Llib/hash.scm 701 */
						BgL_auxz00_7377 = BgL_tablez00_5491;
					}
				else
					{
						obj_t BgL_auxz00_7380;

						BgL_auxz00_7380 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(28038L), BGl_string2642z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5491);
						FAILURE(BgL_auxz00_7380, BFALSE, BFALSE);
					}
				return
					BGl_hashtablezd2getzd2zz__hashz00(BgL_auxz00_7377, BgL_keyz00_5492);
			}
		}

	}



/* plain-hashtable-get */
	obj_t BGl_plainzd2hashtablezd2getz00zz__hashz00(obj_t BgL_tablez00_98,
		obj_t BgL_keyz00_99)
	{
		{	/* Llib/hash.scm 709 */
			{	/* Llib/hash.scm 710 */
				obj_t BgL_bucketsz00_2007;

				BgL_bucketsz00_2007 = STRUCT_REF(BgL_tablez00_98, (int) (2L));
				{	/* Llib/hash.scm 711 */
					long BgL_bucketzd2numzd2_2009;

					{	/* Llib/hash.scm 712 */
						long BgL_arg1609z00_2020;

						{	/* Llib/hash.scm 712 */
							obj_t BgL_hashnz00_3970;

							BgL_hashnz00_3970 = STRUCT_REF(BgL_tablez00_98, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_3970))
								{	/* Llib/hash.scm 712 */
									obj_t BgL_arg1278z00_3972;

									BgL_arg1278z00_3972 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_3970, BgL_keyz00_99);
									{	/* Llib/hash.scm 712 */
										long BgL_nz00_3974;

										BgL_nz00_3974 = (long) CINT(BgL_arg1278z00_3972);
										if ((BgL_nz00_3974 < 0L))
											{	/* Llib/hash.scm 712 */
												BgL_arg1609z00_2020 = NEG(BgL_nz00_3974);
											}
										else
											{	/* Llib/hash.scm 712 */
												BgL_arg1609z00_2020 = BgL_nz00_3974;
											}
									}
								}
							else
								{	/* Llib/hash.scm 712 */
									if ((BgL_hashnz00_3970 == BGl_symbol2620z00zz__hashz00))
										{	/* Llib/hash.scm 712 */
											BgL_arg1609z00_2020 =
												BGl_objzd2hashze70z35zz__hashz00(BgL_keyz00_99);
										}
									else
										{	/* Llib/hash.scm 712 */
											BgL_arg1609z00_2020 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_99);
										}
								}
						}
						{	/* Llib/hash.scm 712 */
							long BgL_n1z00_3978;
							long BgL_n2z00_3979;

							BgL_n1z00_3978 = BgL_arg1609z00_2020;
							BgL_n2z00_3979 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_2007));
							{	/* Llib/hash.scm 712 */
								bool_t BgL_test2997z00_7405;

								{	/* Llib/hash.scm 712 */
									long BgL_arg2156z00_3981;

									BgL_arg2156z00_3981 =
										(((BgL_n1z00_3978) | (BgL_n2z00_3979)) & -2147483648);
									BgL_test2997z00_7405 = (BgL_arg2156z00_3981 == 0L);
								}
								if (BgL_test2997z00_7405)
									{	/* Llib/hash.scm 712 */
										int32_t BgL_arg2153z00_3982;

										{	/* Llib/hash.scm 712 */
											int32_t BgL_arg2154z00_3983;
											int32_t BgL_arg2155z00_3984;

											BgL_arg2154z00_3983 = (int32_t) (BgL_n1z00_3978);
											BgL_arg2155z00_3984 = (int32_t) (BgL_n2z00_3979);
											BgL_arg2153z00_3982 =
												(BgL_arg2154z00_3983 % BgL_arg2155z00_3984);
										}
										{	/* Llib/hash.scm 712 */
											long BgL_arg2257z00_3989;

											BgL_arg2257z00_3989 = (long) (BgL_arg2153z00_3982);
											BgL_bucketzd2numzd2_2009 = (long) (BgL_arg2257z00_3989);
									}}
								else
									{	/* Llib/hash.scm 712 */
										BgL_bucketzd2numzd2_2009 =
											(BgL_n1z00_3978 % BgL_n2z00_3979);
									}
							}
						}
					}
					{	/* Llib/hash.scm 712 */
						obj_t BgL_bucketz00_2010;

						BgL_bucketz00_2010 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_2007), BgL_bucketzd2numzd2_2009);
						{	/* Llib/hash.scm 713 */

							{
								obj_t BgL_bucketz00_2012;

								BgL_bucketz00_2012 = BgL_bucketz00_2010;
							BgL_zc3z04anonymousza31601ze3z87_2013:
								if (NULLP(BgL_bucketz00_2012))
									{	/* Llib/hash.scm 716 */
										return BFALSE;
									}
								else
									{	/* Llib/hash.scm 718 */
										bool_t BgL_test2999z00_7418;

										{	/* Llib/hash.scm 718 */
											obj_t BgL_arg1608z00_2018;

											{	/* Llib/hash.scm 718 */
												obj_t BgL_pairz00_3996;

												BgL_pairz00_3996 = CAR(((obj_t) BgL_bucketz00_2012));
												BgL_arg1608z00_2018 = CAR(BgL_pairz00_3996);
											}
											{	/* Llib/hash.scm 718 */
												obj_t BgL_eqtz00_3997;

												BgL_eqtz00_3997 =
													STRUCT_REF(BgL_tablez00_98, (int) (3L));
												if (PROCEDUREP(BgL_eqtz00_3997))
													{	/* Llib/hash.scm 718 */
														BgL_test2999z00_7418 =
															CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_3997,
																BgL_arg1608z00_2018, BgL_keyz00_99));
													}
												else
													{	/* Llib/hash.scm 718 */
														if ((BgL_arg1608z00_2018 == BgL_keyz00_99))
															{	/* Llib/hash.scm 718 */
																BgL_test2999z00_7418 = ((bool_t) 1);
															}
														else
															{	/* Llib/hash.scm 718 */
																if (STRINGP(BgL_arg1608z00_2018))
																	{	/* Llib/hash.scm 718 */
																		if (STRINGP(BgL_keyz00_99))
																			{	/* Llib/hash.scm 718 */
																				long BgL_l1z00_4004;

																				BgL_l1z00_4004 =
																					STRING_LENGTH(BgL_arg1608z00_2018);
																				if (
																					(BgL_l1z00_4004 ==
																						STRING_LENGTH(BgL_keyz00_99)))
																					{	/* Llib/hash.scm 718 */
																						int BgL_arg2055z00_4007;

																						{	/* Llib/hash.scm 718 */
																							char *BgL_auxz00_7444;
																							char *BgL_tmpz00_7442;

																							BgL_auxz00_7444 =
																								BSTRING_TO_STRING
																								(BgL_keyz00_99);
																							BgL_tmpz00_7442 =
																								BSTRING_TO_STRING
																								(BgL_arg1608z00_2018);
																							BgL_arg2055z00_4007 =
																								memcmp(BgL_tmpz00_7442,
																								BgL_auxz00_7444,
																								BgL_l1z00_4004);
																						}
																						BgL_test2999z00_7418 =
																							(
																							(long) (BgL_arg2055z00_4007) ==
																							0L);
																					}
																				else
																					{	/* Llib/hash.scm 718 */
																						BgL_test2999z00_7418 = ((bool_t) 0);
																					}
																			}
																		else
																			{	/* Llib/hash.scm 718 */
																				BgL_test2999z00_7418 = ((bool_t) 0);
																			}
																	}
																else
																	{	/* Llib/hash.scm 718 */
																		BgL_test2999z00_7418 = ((bool_t) 0);
																	}
															}
													}
											}
										}
										if (BgL_test2999z00_7418)
											{	/* Llib/hash.scm 719 */
												obj_t BgL_pairz00_4016;

												BgL_pairz00_4016 = CAR(((obj_t) BgL_bucketz00_2012));
												return CDR(BgL_pairz00_4016);
											}
										else
											{	/* Llib/hash.scm 721 */
												obj_t BgL_arg1605z00_2017;

												BgL_arg1605z00_2017 = CDR(((obj_t) BgL_bucketz00_2012));
												{
													obj_t BgL_bucketz00_7454;

													BgL_bucketz00_7454 = BgL_arg1605z00_2017;
													BgL_bucketz00_2012 = BgL_bucketz00_7454;
													goto BgL_zc3z04anonymousza31601ze3z87_2013;
												}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* string-hashtable-get */
	BGL_EXPORTED_DEF obj_t BGl_stringzd2hashtablezd2getz00zz__hashz00(obj_t
		BgL_tablez00_100, obj_t BgL_keyz00_101)
	{
		{	/* Llib/hash.scm 726 */
			{	/* Llib/hash.scm 727 */
				obj_t BgL_bucketsz00_2021;

				BgL_bucketsz00_2021 = STRUCT_REF(BgL_tablez00_100, (int) (2L));
				{	/* Llib/hash.scm 728 */
					long BgL_bucketzd2numzd2_2023;

					{	/* Llib/hash.scm 729 */
						long BgL_arg1616z00_2034;

						{	/* Llib/hash.scm 729 */
							long BgL_arg1617z00_2035;

							BgL_arg1617z00_2035 = STRING_LENGTH(BgL_keyz00_101);
							BgL_arg1616z00_2034 =
								bgl_string_hash(BSTRING_TO_STRING(BgL_keyz00_101),
								(int) (0L), (int) (BgL_arg1617z00_2035));
						}
						{	/* Llib/hash.scm 729 */
							long BgL_n1z00_4021;
							long BgL_n2z00_4022;

							BgL_n1z00_4021 = BgL_arg1616z00_2034;
							BgL_n2z00_4022 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_2021));
							{	/* Llib/hash.scm 729 */
								bool_t BgL_test3005z00_7464;

								{	/* Llib/hash.scm 729 */
									long BgL_arg2156z00_4024;

									BgL_arg2156z00_4024 =
										(((BgL_n1z00_4021) | (BgL_n2z00_4022)) & -2147483648);
									BgL_test3005z00_7464 = (BgL_arg2156z00_4024 == 0L);
								}
								if (BgL_test3005z00_7464)
									{	/* Llib/hash.scm 729 */
										int32_t BgL_arg2153z00_4025;

										{	/* Llib/hash.scm 729 */
											int32_t BgL_arg2154z00_4026;
											int32_t BgL_arg2155z00_4027;

											BgL_arg2154z00_4026 = (int32_t) (BgL_n1z00_4021);
											BgL_arg2155z00_4027 = (int32_t) (BgL_n2z00_4022);
											BgL_arg2153z00_4025 =
												(BgL_arg2154z00_4026 % BgL_arg2155z00_4027);
										}
										{	/* Llib/hash.scm 729 */
											long BgL_arg2257z00_4032;

											BgL_arg2257z00_4032 = (long) (BgL_arg2153z00_4025);
											BgL_bucketzd2numzd2_2023 = (long) (BgL_arg2257z00_4032);
									}}
								else
									{	/* Llib/hash.scm 729 */
										BgL_bucketzd2numzd2_2023 =
											(BgL_n1z00_4021 % BgL_n2z00_4022);
									}
							}
						}
					}
					{	/* Llib/hash.scm 729 */
						obj_t BgL_bucketz00_2024;

						BgL_bucketz00_2024 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_2021), BgL_bucketzd2numzd2_2023);
						{	/* Llib/hash.scm 730 */

							{
								obj_t BgL_bucketz00_2026;

								BgL_bucketz00_2026 = BgL_bucketz00_2024;
							BgL_zc3z04anonymousza31610ze3z87_2027:
								if (NULLP(BgL_bucketz00_2026))
									{	/* Llib/hash.scm 733 */
										return BFALSE;
									}
								else
									{	/* Llib/hash.scm 735 */
										bool_t BgL_test3007z00_7477;

										{	/* Llib/hash.scm 735 */
											obj_t BgL_arg1615z00_2032;

											{	/* Llib/hash.scm 735 */
												obj_t BgL_pairz00_4039;

												BgL_pairz00_4039 = CAR(((obj_t) BgL_bucketz00_2026));
												BgL_arg1615z00_2032 = CAR(BgL_pairz00_4039);
											}
											{	/* Llib/hash.scm 735 */
												long BgL_l1z00_4042;

												BgL_l1z00_4042 =
													STRING_LENGTH(((obj_t) BgL_arg1615z00_2032));
												if ((BgL_l1z00_4042 == STRING_LENGTH(BgL_keyz00_101)))
													{	/* Llib/hash.scm 735 */
														int BgL_arg2055z00_4045;

														{	/* Llib/hash.scm 735 */
															char *BgL_auxz00_7489;
															char *BgL_tmpz00_7486;

															BgL_auxz00_7489 =
																BSTRING_TO_STRING(BgL_keyz00_101);
															BgL_tmpz00_7486 =
																BSTRING_TO_STRING(
																((obj_t) BgL_arg1615z00_2032));
															BgL_arg2055z00_4045 =
																memcmp(BgL_tmpz00_7486, BgL_auxz00_7489,
																BgL_l1z00_4042);
														}
														BgL_test3007z00_7477 =
															((long) (BgL_arg2055z00_4045) == 0L);
													}
												else
													{	/* Llib/hash.scm 735 */
														BgL_test3007z00_7477 = ((bool_t) 0);
													}
											}
										}
										if (BgL_test3007z00_7477)
											{	/* Llib/hash.scm 736 */
												obj_t BgL_pairz00_4054;

												BgL_pairz00_4054 = CAR(((obj_t) BgL_bucketz00_2026));
												return CDR(BgL_pairz00_4054);
											}
										else
											{	/* Llib/hash.scm 738 */
												obj_t BgL_arg1614z00_2031;

												BgL_arg1614z00_2031 = CDR(((obj_t) BgL_bucketz00_2026));
												{
													obj_t BgL_bucketz00_7499;

													BgL_bucketz00_7499 = BgL_arg1614z00_2031;
													BgL_bucketz00_2026 = BgL_bucketz00_7499;
													goto BgL_zc3z04anonymousza31610ze3z87_2027;
												}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* &string-hashtable-get */
	obj_t BGl_z62stringzd2hashtablezd2getz62zz__hashz00(obj_t BgL_envz00_5493,
		obj_t BgL_tablez00_5494, obj_t BgL_keyz00_5495)
	{
		{	/* Llib/hash.scm 726 */
			{	/* Llib/hash.scm 727 */
				obj_t BgL_auxz00_7507;
				obj_t BgL_auxz00_7500;

				if (STRINGP(BgL_keyz00_5495))
					{	/* Llib/hash.scm 727 */
						BgL_auxz00_7507 = BgL_keyz00_5495;
					}
				else
					{
						obj_t BgL_auxz00_7510;

						BgL_auxz00_7510 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(29240L), BGl_string2643z00zz__hashz00,
							BGl_string2641z00zz__hashz00, BgL_keyz00_5495);
						FAILURE(BgL_auxz00_7510, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_5494))
					{	/* Llib/hash.scm 727 */
						BgL_auxz00_7500 = BgL_tablez00_5494;
					}
				else
					{
						obj_t BgL_auxz00_7503;

						BgL_auxz00_7503 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(29240L), BGl_string2643z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5494);
						FAILURE(BgL_auxz00_7503, BFALSE, BFALSE);
					}
				return
					BGl_stringzd2hashtablezd2getz00zz__hashz00(BgL_auxz00_7500,
					BgL_auxz00_7507);
			}
		}

	}



/* open-string-hashtable-get */
	BGL_EXPORTED_DEF obj_t BGl_openzd2stringzd2hashtablezd2getzd2zz__hashz00(obj_t
		BgL_tz00_102, obj_t BgL_keyz00_103)
	{
		{	/* Llib/hash.scm 743 */
			{	/* Llib/hash.scm 744 */
				obj_t BgL_siza7eza7_2036;

				BgL_siza7eza7_2036 = STRUCT_REF(BgL_tz00_102, (int) (1L));
				{	/* Llib/hash.scm 744 */
					obj_t BgL_bucketsz00_2037;

					BgL_bucketsz00_2037 = STRUCT_REF(BgL_tz00_102, (int) (2L));
					{	/* Llib/hash.scm 745 */
						long BgL_hashz00_2038;

						{	/* Llib/hash.scm 746 */
							long BgL_arg1632z00_2060;

							BgL_arg1632z00_2060 = STRING_LENGTH(BgL_keyz00_103);
							BgL_hashz00_2038 =
								bgl_string_hash(BSTRING_TO_STRING(BgL_keyz00_103),
								(int) (0L), (int) (BgL_arg1632z00_2060));
						}
						{	/* Llib/hash.scm 746 */

							{	/* Llib/hash.scm 747 */
								long BgL_g1069z00_2039;

								{	/* Llib/hash.scm 747 */
									long BgL_n1z00_4059;
									long BgL_n2z00_4060;

									BgL_n1z00_4059 = BgL_hashz00_2038;
									BgL_n2z00_4060 = (long) CINT(BgL_siza7eza7_2036);
									{	/* Llib/hash.scm 747 */
										bool_t BgL_test3011z00_7525;

										{	/* Llib/hash.scm 747 */
											long BgL_arg2156z00_4062;

											BgL_arg2156z00_4062 =
												(((BgL_n1z00_4059) | (BgL_n2z00_4060)) & -2147483648);
											BgL_test3011z00_7525 = (BgL_arg2156z00_4062 == 0L);
										}
										if (BgL_test3011z00_7525)
											{	/* Llib/hash.scm 747 */
												int32_t BgL_arg2153z00_4063;

												{	/* Llib/hash.scm 747 */
													int32_t BgL_arg2154z00_4064;
													int32_t BgL_arg2155z00_4065;

													BgL_arg2154z00_4064 = (int32_t) (BgL_n1z00_4059);
													BgL_arg2155z00_4065 = (int32_t) (BgL_n2z00_4060);
													BgL_arg2153z00_4063 =
														(BgL_arg2154z00_4064 % BgL_arg2155z00_4065);
												}
												{	/* Llib/hash.scm 747 */
													long BgL_arg2257z00_4070;

													BgL_arg2257z00_4070 = (long) (BgL_arg2153z00_4063);
													BgL_g1069z00_2039 = (long) (BgL_arg2257z00_4070);
											}}
										else
											{	/* Llib/hash.scm 747 */
												BgL_g1069z00_2039 = (BgL_n1z00_4059 % BgL_n2z00_4060);
											}
									}
								}
								{
									long BgL_offz00_2041;
									long BgL_iz00_2042;

									BgL_offz00_2041 = BgL_g1069z00_2039;
									BgL_iz00_2042 = 1L;
								BgL_zc3z04anonymousza31618ze3z87_2043:
									{	/* Llib/hash.scm 749 */
										long BgL_off3z00_2044;

										BgL_off3z00_2044 = (BgL_offz00_2041 * 3L);
										if (CBOOL(VECTOR_REF(
													((obj_t) BgL_bucketsz00_2037), BgL_off3z00_2044)))
											{	/* Llib/hash.scm 751 */
												bool_t BgL_test3013z00_7539;

												{	/* Llib/hash.scm 751 */
													obj_t BgL_arg1631z00_2058;

													BgL_arg1631z00_2058 =
														VECTOR_REF(
														((obj_t) BgL_bucketsz00_2037), BgL_off3z00_2044);
													{	/* Llib/hash.scm 751 */
														long BgL_l1z00_4079;

														BgL_l1z00_4079 =
															STRING_LENGTH(((obj_t) BgL_arg1631z00_2058));
														if (
															(BgL_l1z00_4079 == STRING_LENGTH(BgL_keyz00_103)))
															{	/* Llib/hash.scm 751 */
																int BgL_arg2055z00_4082;

																{	/* Llib/hash.scm 751 */
																	char *BgL_auxz00_7550;
																	char *BgL_tmpz00_7547;

																	BgL_auxz00_7550 =
																		BSTRING_TO_STRING(BgL_keyz00_103);
																	BgL_tmpz00_7547 =
																		BSTRING_TO_STRING(
																		((obj_t) BgL_arg1631z00_2058));
																	BgL_arg2055z00_4082 =
																		memcmp(BgL_tmpz00_7547, BgL_auxz00_7550,
																		BgL_l1z00_4079);
																}
																BgL_test3013z00_7539 =
																	((long) (BgL_arg2055z00_4082) == 0L);
															}
														else
															{	/* Llib/hash.scm 751 */
																BgL_test3013z00_7539 = ((bool_t) 0);
															}
													}
												}
												if (BgL_test3013z00_7539)
													{	/* Llib/hash.scm 752 */
														bool_t BgL_test3015z00_7555;

														{	/* Llib/hash.scm 752 */
															long BgL_arg1625z00_2051;

															BgL_arg1625z00_2051 = (BgL_off3z00_2044 + 2L);
															BgL_test3015z00_7555 =
																CBOOL(VECTOR_REF(
																	((obj_t) BgL_bucketsz00_2037),
																	BgL_arg1625z00_2051));
														}
														if (BgL_test3015z00_7555)
															{	/* Llib/hash.scm 753 */
																long BgL_arg1624z00_2050;

																BgL_arg1624z00_2050 = (BgL_off3z00_2044 + 1L);
																return
																	VECTOR_REF(
																	((obj_t) BgL_bucketsz00_2037),
																	BgL_arg1624z00_2050);
															}
														else
															{	/* Llib/hash.scm 752 */
																return BFALSE;
															}
													}
												else
													{	/* Llib/hash.scm 754 */
														long BgL_noffz00_2052;

														BgL_noffz00_2052 =
															(BgL_offz00_2041 +
															(BgL_iz00_2042 * BgL_iz00_2042));
														if (
															(BgL_noffz00_2052 >=
																(long) CINT(BgL_siza7eza7_2036)))
															{	/* Llib/hash.scm 756 */
																long BgL_arg1627z00_2054;
																long BgL_arg1628z00_2055;

																{	/* Llib/hash.scm 756 */
																	long BgL_n1z00_4100;
																	long BgL_n2z00_4101;

																	BgL_n1z00_4100 = BgL_noffz00_2052;
																	BgL_n2z00_4101 =
																		(long) CINT(BgL_siza7eza7_2036);
																	{	/* Llib/hash.scm 756 */
																		bool_t BgL_test3017z00_7569;

																		{	/* Llib/hash.scm 756 */
																			long BgL_arg2156z00_4103;

																			BgL_arg2156z00_4103 =
																				(((BgL_n1z00_4100) | (BgL_n2z00_4101)) &
																				-2147483648);
																			BgL_test3017z00_7569 =
																				(BgL_arg2156z00_4103 == 0L);
																		}
																		if (BgL_test3017z00_7569)
																			{	/* Llib/hash.scm 756 */
																				int32_t BgL_arg2153z00_4104;

																				{	/* Llib/hash.scm 756 */
																					int32_t BgL_arg2154z00_4105;
																					int32_t BgL_arg2155z00_4106;

																					BgL_arg2154z00_4105 =
																						(int32_t) (BgL_n1z00_4100);
																					BgL_arg2155z00_4106 =
																						(int32_t) (BgL_n2z00_4101);
																					BgL_arg2153z00_4104 =
																						(BgL_arg2154z00_4105 %
																						BgL_arg2155z00_4106);
																				}
																				{	/* Llib/hash.scm 756 */
																					long BgL_arg2257z00_4111;

																					BgL_arg2257z00_4111 =
																						(long) (BgL_arg2153z00_4104);
																					BgL_arg1627z00_2054 =
																						(long) (BgL_arg2257z00_4111);
																			}}
																		else
																			{	/* Llib/hash.scm 756 */
																				BgL_arg1627z00_2054 =
																					(BgL_n1z00_4100 % BgL_n2z00_4101);
																			}
																	}
																}
																BgL_arg1628z00_2055 = (BgL_iz00_2042 + 1L);
																{
																	long BgL_iz00_7580;
																	long BgL_offz00_7579;

																	BgL_offz00_7579 = BgL_arg1627z00_2054;
																	BgL_iz00_7580 = BgL_arg1628z00_2055;
																	BgL_iz00_2042 = BgL_iz00_7580;
																	BgL_offz00_2041 = BgL_offz00_7579;
																	goto BgL_zc3z04anonymousza31618ze3z87_2043;
																}
															}
														else
															{
																long BgL_iz00_7582;
																long BgL_offz00_7581;

																BgL_offz00_7581 = BgL_noffz00_2052;
																BgL_iz00_7582 = (BgL_iz00_2042 + 1L);
																BgL_iz00_2042 = BgL_iz00_7582;
																BgL_offz00_2041 = BgL_offz00_7581;
																goto BgL_zc3z04anonymousza31618ze3z87_2043;
															}
													}
											}
										else
											{	/* Llib/hash.scm 750 */
												return BFALSE;
											}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* &open-string-hashtable-get */
	obj_t BGl_z62openzd2stringzd2hashtablezd2getzb0zz__hashz00(obj_t
		BgL_envz00_5496, obj_t BgL_tz00_5497, obj_t BgL_keyz00_5498)
	{
		{	/* Llib/hash.scm 743 */
			{	/* Llib/hash.scm 744 */
				obj_t BgL_auxz00_7591;
				obj_t BgL_auxz00_7584;

				if (STRINGP(BgL_keyz00_5498))
					{	/* Llib/hash.scm 744 */
						BgL_auxz00_7591 = BgL_keyz00_5498;
					}
				else
					{
						obj_t BgL_auxz00_7594;

						BgL_auxz00_7594 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(29893L), BGl_string2644z00zz__hashz00,
							BGl_string2641z00zz__hashz00, BgL_keyz00_5498);
						FAILURE(BgL_auxz00_7594, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tz00_5497))
					{	/* Llib/hash.scm 744 */
						BgL_auxz00_7584 = BgL_tz00_5497;
					}
				else
					{
						obj_t BgL_auxz00_7587;

						BgL_auxz00_7587 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(29893L), BGl_string2644z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tz00_5497);
						FAILURE(BgL_auxz00_7587, BFALSE, BFALSE);
					}
				return
					BGl_openzd2stringzd2hashtablezd2getzd2zz__hashz00(BgL_auxz00_7584,
					BgL_auxz00_7591);
			}
		}

	}



/* $open-string-hashtable-get */
	BGL_EXPORTED_DEF obj_t
		BGl_z42openzd2stringzd2hashtablezd2getz90zz__hashz00(obj_t BgL_tz00_104,
		char *BgL_keyz00_105)
	{
		{	/* Llib/hash.scm 764 */
			{	/* Llib/hash.scm 767 */
				obj_t BgL_siza7eza7_2061;

				BgL_siza7eza7_2061 = STRUCT_REF(BgL_tz00_104, (int) (1L));
				{	/* Llib/hash.scm 767 */
					obj_t BgL_bucketsz00_2062;

					BgL_bucketsz00_2062 = STRUCT_REF(BgL_tz00_104, (int) (2L));
					{	/* Llib/hash.scm 768 */
						long BgL_lenz00_2063;

						BgL_lenz00_2063 = strlen(BgL_keyz00_105);
						{	/* Llib/hash.scm 769 */
							long BgL_hashz00_2064;

							BgL_hashz00_2064 =
								bgl_string_hash(BgL_keyz00_105,
								(int) (0L), (int) (BgL_lenz00_2063));
							{	/* Llib/hash.scm 770 */

								{	/* Llib/hash.scm 771 */
									long BgL_g1070z00_2065;

									{	/* Llib/hash.scm 771 */
										long BgL_n1z00_4117;
										long BgL_n2z00_4118;

										BgL_n1z00_4117 = BgL_hashz00_2064;
										BgL_n2z00_4118 = (long) CINT(BgL_siza7eza7_2061);
										{	/* Llib/hash.scm 771 */
											bool_t BgL_test3020z00_7608;

											{	/* Llib/hash.scm 771 */
												long BgL_arg2156z00_4120;

												BgL_arg2156z00_4120 =
													(((BgL_n1z00_4117) | (BgL_n2z00_4118)) & -2147483648);
												BgL_test3020z00_7608 = (BgL_arg2156z00_4120 == 0L);
											}
											if (BgL_test3020z00_7608)
												{	/* Llib/hash.scm 771 */
													int32_t BgL_arg2153z00_4121;

													{	/* Llib/hash.scm 771 */
														int32_t BgL_arg2154z00_4122;
														int32_t BgL_arg2155z00_4123;

														BgL_arg2154z00_4122 = (int32_t) (BgL_n1z00_4117);
														BgL_arg2155z00_4123 = (int32_t) (BgL_n2z00_4118);
														BgL_arg2153z00_4121 =
															(BgL_arg2154z00_4122 % BgL_arg2155z00_4123);
													}
													{	/* Llib/hash.scm 771 */
														long BgL_arg2257z00_4128;

														BgL_arg2257z00_4128 = (long) (BgL_arg2153z00_4121);
														BgL_g1070z00_2065 = (long) (BgL_arg2257z00_4128);
												}}
											else
												{	/* Llib/hash.scm 771 */
													BgL_g1070z00_2065 = (BgL_n1z00_4117 % BgL_n2z00_4118);
												}
										}
									}
									{
										long BgL_offz00_2067;
										long BgL_iz00_2068;

										BgL_offz00_2067 = BgL_g1070z00_2065;
										BgL_iz00_2068 = 1L;
										{	/* Llib/hash.scm 773 */
											long BgL_off3z00_2070;

											BgL_off3z00_2070 = (BgL_offz00_2067 * 3L);
											if (CBOOL(VECTOR_REF(
														((obj_t) BgL_bucketsz00_2062), BgL_off3z00_2070)))
												{	/* Llib/hash.scm 774 */
													{	/* Llib/hash.scm 775 */
														obj_t BgL_arg1647z00_2084;

														BgL_arg1647z00_2084 =
															VECTOR_REF(
															((obj_t) BgL_bucketsz00_2062), BgL_off3z00_2070);
														{	/* Llib/hash.scm 775 */
															int BgL_xz00_5649;

															{	/* Llib/hash.scm 775 */
																char *BgL_tmpz00_7624;

																BgL_tmpz00_7624 =
																	BSTRING_TO_STRING(BgL_arg1647z00_2084);
																BgL_xz00_5649 =
																	memcmp(BgL_tmpz00_7624, BgL_keyz00_105,
																	BgL_lenz00_2063);
															} ((bool_t) 1);
													}}
													{	/* Llib/hash.scm 776 */
														bool_t BgL_test3022z00_7627;

														{	/* Llib/hash.scm 776 */
															long BgL_arg1641z00_2077;

															BgL_arg1641z00_2077 = (BgL_off3z00_2070 + 2L);
															BgL_test3022z00_7627 =
																CBOOL(VECTOR_REF(
																	((obj_t) BgL_bucketsz00_2062),
																	BgL_arg1641z00_2077));
														}
														if (BgL_test3022z00_7627)
															{	/* Llib/hash.scm 777 */
																long BgL_arg1639z00_2076;

																BgL_arg1639z00_2076 = (BgL_off3z00_2070 + 1L);
																return
																	VECTOR_REF(
																	((obj_t) BgL_bucketsz00_2062),
																	BgL_arg1639z00_2076);
															}
														else
															{	/* Llib/hash.scm 776 */
																return BFALSE;
															}
													}
												}
											else
												{	/* Llib/hash.scm 774 */
													return BFALSE;
												}
										}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* &$open-string-hashtable-get */
	obj_t BGl_z62z42openzd2stringzd2hashtablezd2getzf2zz__hashz00(obj_t
		BgL_envz00_5499, obj_t BgL_tz00_5500, obj_t BgL_keyz00_5501)
	{
		{	/* Llib/hash.scm 764 */
			{	/* Llib/hash.scm 767 */
				char *BgL_auxz00_7642;
				obj_t BgL_auxz00_7635;

				{	/* Llib/hash.scm 767 */
					obj_t BgL_tmpz00_7643;

					if (STRINGP(BgL_keyz00_5501))
						{	/* Llib/hash.scm 767 */
							BgL_tmpz00_7643 = BgL_keyz00_5501;
						}
					else
						{
							obj_t BgL_auxz00_7646;

							BgL_auxz00_7646 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
								BINT(30890L), BGl_string2645z00zz__hashz00,
								BGl_string2641z00zz__hashz00, BgL_keyz00_5501);
							FAILURE(BgL_auxz00_7646, BFALSE, BFALSE);
						}
					BgL_auxz00_7642 = BSTRING_TO_STRING(BgL_tmpz00_7643);
				}
				if (STRUCTP(BgL_tz00_5500))
					{	/* Llib/hash.scm 767 */
						BgL_auxz00_7635 = BgL_tz00_5500;
					}
				else
					{
						obj_t BgL_auxz00_7638;

						BgL_auxz00_7638 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(30890L), BGl_string2645z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tz00_5500);
						FAILURE(BgL_auxz00_7638, BFALSE, BFALSE);
					}
				return
					BGl_z42openzd2stringzd2hashtablezd2getz90zz__hashz00(BgL_auxz00_7635,
					BgL_auxz00_7642);
			}
		}

	}



/* hashtable-put! */
	BGL_EXPORTED_DEF obj_t BGl_hashtablezd2putz12zc0zz__hashz00(obj_t
		BgL_tablez00_106, obj_t BgL_keyz00_107, obj_t BgL_objz00_108)
	{
		{	/* Llib/hash.scm 788 */
			{	/* Llib/hash.scm 790 */
				bool_t BgL_test3025z00_7652;

				if (
					(0L == ((long) CINT(STRUCT_REF(BgL_tablez00_106, (int) (5L))) & 8L)))
					{	/* Llib/hash.scm 317 */
						BgL_test3025z00_7652 = ((bool_t) 0);
					}
				else
					{	/* Llib/hash.scm 317 */
						BgL_test3025z00_7652 = ((bool_t) 1);
					}
				if (BgL_test3025z00_7652)
					{	/* Llib/hash.scm 802 */
						long BgL_arg1651z00_4173;

						{	/* Llib/hash.scm 802 */
							long BgL_arg1652z00_4174;

							BgL_arg1652z00_4174 = STRING_LENGTH(((obj_t) BgL_keyz00_107));
							BgL_arg1651z00_4173 =
								bgl_string_hash(BSTRING_TO_STRING(
									((obj_t) BgL_keyz00_107)),
								(int) (0L), (int) (BgL_arg1652z00_4174));
						}
						return
							BGl_openzd2stringzd2hashtablezd2putzf2hashz12z32zz__hashz00
							(BgL_tablez00_106, ((obj_t) BgL_keyz00_107), BgL_objz00_108,
							BINT(BgL_arg1651z00_4173));
					}
				else
					{	/* Llib/hash.scm 792 */
						bool_t BgL_test3027z00_7669;

						if (
							(0L ==
								((long) CINT(STRUCT_REF(BgL_tablez00_106, (int) (5L))) & 3L)))
							{	/* Llib/hash.scm 311 */
								BgL_test3027z00_7669 = ((bool_t) 0);
							}
						else
							{	/* Llib/hash.scm 311 */
								BgL_test3027z00_7669 = ((bool_t) 1);
							}
						if (BgL_test3027z00_7669)
							{	/* Llib/hash.scm 792 */
								BGL_TAIL return
									BGl_weakzd2hashtablezd2putz12z12zz__weakhashz00
									(BgL_tablez00_106, BgL_keyz00_107, BgL_objz00_108);
							}
						else
							{	/* Llib/hash.scm 792 */
								BGL_TAIL return
									BGl_plainzd2hashtablezd2putz12z12zz__hashz00(BgL_tablez00_106,
									BgL_keyz00_107, BgL_objz00_108);
							}
					}
			}
		}

	}



/* &hashtable-put! */
	obj_t BGl_z62hashtablezd2putz12za2zz__hashz00(obj_t BgL_envz00_5502,
		obj_t BgL_tablez00_5503, obj_t BgL_keyz00_5504, obj_t BgL_objz00_5505)
	{
		{	/* Llib/hash.scm 788 */
			{	/* Llib/hash.scm 790 */
				obj_t BgL_auxz00_7678;

				if (STRUCTP(BgL_tablez00_5503))
					{	/* Llib/hash.scm 790 */
						BgL_auxz00_7678 = BgL_tablez00_5503;
					}
				else
					{
						obj_t BgL_auxz00_7681;

						BgL_auxz00_7681 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(31816L), BGl_string2646z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5503);
						FAILURE(BgL_auxz00_7681, BFALSE, BFALSE);
					}
				return
					BGl_hashtablezd2putz12zc0zz__hashz00(BgL_auxz00_7678, BgL_keyz00_5504,
					BgL_objz00_5505);
			}
		}

	}



/* open-string-hashtable-put! */
	BGL_EXPORTED_DEF obj_t
		BGl_openzd2stringzd2hashtablezd2putz12zc0zz__hashz00(obj_t BgL_tablez00_109,
		obj_t BgL_keyz00_110, obj_t BgL_objz00_111)
	{
		{	/* Llib/hash.scm 800 */
			{	/* Llib/hash.scm 802 */
				long BgL_arg1651z00_4183;

				{	/* Llib/hash.scm 802 */
					long BgL_arg1652z00_4184;

					BgL_arg1652z00_4184 = STRING_LENGTH(BgL_keyz00_110);
					BgL_arg1651z00_4183 =
						bgl_string_hash(BSTRING_TO_STRING(BgL_keyz00_110),
						(int) (0L), (int) (BgL_arg1652z00_4184));
				}
				return
					BGl_openzd2stringzd2hashtablezd2putzf2hashz12z32zz__hashz00
					(BgL_tablez00_109, BgL_keyz00_110, BgL_objz00_111,
					BINT(BgL_arg1651z00_4183));
			}
		}

	}



/* &open-string-hashtable-put! */
	obj_t BGl_z62openzd2stringzd2hashtablezd2putz12za2zz__hashz00(obj_t
		BgL_envz00_5506, obj_t BgL_tablez00_5507, obj_t BgL_keyz00_5508,
		obj_t BgL_objz00_5509)
	{
		{	/* Llib/hash.scm 800 */
			{	/* Llib/hash.scm 802 */
				obj_t BgL_auxz00_7700;
				obj_t BgL_auxz00_7693;

				if (STRINGP(BgL_keyz00_5508))
					{	/* Llib/hash.scm 802 */
						BgL_auxz00_7700 = BgL_keyz00_5508;
					}
				else
					{
						obj_t BgL_auxz00_7703;

						BgL_auxz00_7703 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(32383L), BGl_string2647z00zz__hashz00,
							BGl_string2641z00zz__hashz00, BgL_keyz00_5508);
						FAILURE(BgL_auxz00_7703, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_5507))
					{	/* Llib/hash.scm 802 */
						BgL_auxz00_7693 = BgL_tablez00_5507;
					}
				else
					{
						obj_t BgL_auxz00_7696;

						BgL_auxz00_7696 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(32383L), BGl_string2647z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5507);
						FAILURE(BgL_auxz00_7696, BFALSE, BFALSE);
					}
				return
					BGl_openzd2stringzd2hashtablezd2putz12zc0zz__hashz00(BgL_auxz00_7693,
					BgL_auxz00_7700, BgL_objz00_5509);
			}
		}

	}



/* open-string-hashtable-put/hash! */
	obj_t BGl_openzd2stringzd2hashtablezd2putzf2hashz12z32zz__hashz00(obj_t
		BgL_tz00_112, obj_t BgL_keyz00_113, obj_t BgL_valz00_114,
		obj_t BgL_hashz00_115)
	{
		{	/* Llib/hash.scm 807 */
		BGl_openzd2stringzd2hashtablezd2putzf2hashz12z32zz__hashz00:
			{	/* Llib/hash.scm 808 */
				obj_t BgL_siza7eza7_2090;
				obj_t BgL_bucketsz00_2091;

				BgL_siza7eza7_2090 = STRUCT_REF(BgL_tz00_112, (int) (1L));
				BgL_bucketsz00_2091 = STRUCT_REF(BgL_tz00_112, (int) (2L));
				{	/* Llib/hash.scm 810 */
					long BgL_g1071z00_2092;

					{	/* Llib/hash.scm 810 */
						long BgL_n1z00_4188;
						long BgL_n2z00_4189;

						BgL_n1z00_4188 = (long) CINT(BgL_hashz00_115);
						BgL_n2z00_4189 = (long) CINT(BgL_siza7eza7_2090);
						{	/* Llib/hash.scm 810 */
							bool_t BgL_test3032z00_7714;

							{	/* Llib/hash.scm 810 */
								long BgL_arg2156z00_4191;

								BgL_arg2156z00_4191 =
									(((BgL_n1z00_4188) | (BgL_n2z00_4189)) & -2147483648);
								BgL_test3032z00_7714 = (BgL_arg2156z00_4191 == 0L);
							}
							if (BgL_test3032z00_7714)
								{	/* Llib/hash.scm 810 */
									int32_t BgL_arg2153z00_4192;

									{	/* Llib/hash.scm 810 */
										int32_t BgL_arg2154z00_4193;
										int32_t BgL_arg2155z00_4194;

										BgL_arg2154z00_4193 = (int32_t) (BgL_n1z00_4188);
										BgL_arg2155z00_4194 = (int32_t) (BgL_n2z00_4189);
										BgL_arg2153z00_4192 =
											(BgL_arg2154z00_4193 % BgL_arg2155z00_4194);
									}
									{	/* Llib/hash.scm 810 */
										long BgL_arg2257z00_4199;

										BgL_arg2257z00_4199 = (long) (BgL_arg2153z00_4192);
										BgL_g1071z00_2092 = (long) (BgL_arg2257z00_4199);
								}}
							else
								{	/* Llib/hash.scm 810 */
									BgL_g1071z00_2092 = (BgL_n1z00_4188 % BgL_n2z00_4189);
								}
						}
					}
					{
						long BgL_offz00_2094;
						long BgL_iz00_2095;

						BgL_offz00_2094 = BgL_g1071z00_2092;
						BgL_iz00_2095 = 1L;
					BgL_zc3z04anonymousza31653ze3z87_2096:
						{	/* Llib/hash.scm 812 */
							long BgL_off3z00_2097;

							BgL_off3z00_2097 = (BgL_offz00_2094 * 3L);
							if (CBOOL(VECTOR_REF(
										((obj_t) BgL_bucketsz00_2091), BgL_off3z00_2097)))
								{	/* Llib/hash.scm 820 */
									bool_t BgL_test3034z00_7728;

									{	/* Llib/hash.scm 820 */
										obj_t BgL_arg1681z00_2116;

										BgL_arg1681z00_2116 =
											VECTOR_REF(
											((obj_t) BgL_bucketsz00_2091), BgL_off3z00_2097);
										{	/* Llib/hash.scm 820 */
											long BgL_l1z00_4208;

											BgL_l1z00_4208 =
												STRING_LENGTH(((obj_t) BgL_arg1681z00_2116));
											if (
												(BgL_l1z00_4208 ==
													STRING_LENGTH(((obj_t) BgL_keyz00_113))))
												{	/* Llib/hash.scm 820 */
													int BgL_arg2055z00_4211;

													{	/* Llib/hash.scm 820 */
														char *BgL_auxz00_7740;
														char *BgL_tmpz00_7737;

														BgL_auxz00_7740 =
															BSTRING_TO_STRING(((obj_t) BgL_keyz00_113));
														BgL_tmpz00_7737 =
															BSTRING_TO_STRING(((obj_t) BgL_arg1681z00_2116));
														BgL_arg2055z00_4211 =
															memcmp(BgL_tmpz00_7737, BgL_auxz00_7740,
															BgL_l1z00_4208);
													}
													BgL_test3034z00_7728 =
														((long) (BgL_arg2055z00_4211) == 0L);
												}
											else
												{	/* Llib/hash.scm 820 */
													BgL_test3034z00_7728 = ((bool_t) 0);
												}
										}
									}
									if (BgL_test3034z00_7728)
										{	/* Llib/hash.scm 820 */
											{	/* Llib/hash.scm 822 */
												long BgL_arg1658z00_2101;

												BgL_arg1658z00_2101 = (BgL_off3z00_2097 + 1L);
												VECTOR_SET(
													((obj_t) BgL_bucketsz00_2091), BgL_arg1658z00_2101,
													BgL_valz00_114);
											}
											{	/* Llib/hash.scm 823 */
												long BgL_arg1659z00_2102;

												BgL_arg1659z00_2102 = (BgL_off3z00_2097 + 2L);
												return
													VECTOR_SET(
													((obj_t) BgL_bucketsz00_2091), BgL_arg1659z00_2102,
													BgL_hashz00_115);
											}
										}
									else
										{	/* Llib/hash.scm 824 */
											bool_t BgL_test3036z00_7752;

											if ((BgL_iz00_2095 >= 5L))
												{	/* Llib/hash.scm 824 */
													BgL_test3036z00_7752 =
														(
														(long) CINT(STRUCT_REF(BgL_tz00_112,
																(int) (1L))) < 8388608L);
												}
											else
												{	/* Llib/hash.scm 824 */
													BgL_test3036z00_7752 = ((bool_t) 0);
												}
											if (BgL_test3036z00_7752)
												{	/* Llib/hash.scm 824 */
													BGl_openzd2stringzd2hashtablezd2rehashz12zc0zz__hashz00
														(BgL_tz00_112);
													{

														goto
															BGl_openzd2stringzd2hashtablezd2putzf2hashz12z32zz__hashz00;
													}
												}
											else
												{	/* Llib/hash.scm 832 */
													long BgL_noffz00_2107;

													BgL_noffz00_2107 =
														(BgL_offz00_2094 + (BgL_iz00_2095 * BgL_iz00_2095));
													if (
														(BgL_noffz00_2107 >=
															(long) CINT(BgL_siza7eza7_2090)))
														{	/* Llib/hash.scm 834 */
															long BgL_arg1667z00_2109;
															long BgL_arg1671z00_2110;

															{	/* Llib/hash.scm 834 */
																long BgL_n1z00_4233;
																long BgL_n2z00_4234;

																BgL_n1z00_4233 = BgL_noffz00_2107;
																BgL_n2z00_4234 =
																	(long) CINT(BgL_siza7eza7_2090);
																{	/* Llib/hash.scm 834 */
																	bool_t BgL_test3039z00_7766;

																	{	/* Llib/hash.scm 834 */
																		long BgL_arg2156z00_4236;

																		BgL_arg2156z00_4236 =
																			(((BgL_n1z00_4233) | (BgL_n2z00_4234)) &
																			-2147483648);
																		BgL_test3039z00_7766 =
																			(BgL_arg2156z00_4236 == 0L);
																	}
																	if (BgL_test3039z00_7766)
																		{	/* Llib/hash.scm 834 */
																			int32_t BgL_arg2153z00_4237;

																			{	/* Llib/hash.scm 834 */
																				int32_t BgL_arg2154z00_4238;
																				int32_t BgL_arg2155z00_4239;

																				BgL_arg2154z00_4238 =
																					(int32_t) (BgL_n1z00_4233);
																				BgL_arg2155z00_4239 =
																					(int32_t) (BgL_n2z00_4234);
																				BgL_arg2153z00_4237 =
																					(BgL_arg2154z00_4238 %
																					BgL_arg2155z00_4239);
																			}
																			{	/* Llib/hash.scm 834 */
																				long BgL_arg2257z00_4244;

																				BgL_arg2257z00_4244 =
																					(long) (BgL_arg2153z00_4237);
																				BgL_arg1667z00_2109 =
																					(long) (BgL_arg2257z00_4244);
																		}}
																	else
																		{	/* Llib/hash.scm 834 */
																			BgL_arg1667z00_2109 =
																				(BgL_n1z00_4233 % BgL_n2z00_4234);
																		}
																}
															}
															BgL_arg1671z00_2110 = (BgL_iz00_2095 + 1L);
															{
																long BgL_iz00_7777;
																long BgL_offz00_7776;

																BgL_offz00_7776 = BgL_arg1667z00_2109;
																BgL_iz00_7777 = BgL_arg1671z00_2110;
																BgL_iz00_2095 = BgL_iz00_7777;
																BgL_offz00_2094 = BgL_offz00_7776;
																goto BgL_zc3z04anonymousza31653ze3z87_2096;
															}
														}
													else
														{
															long BgL_iz00_7779;
															long BgL_offz00_7778;

															BgL_offz00_7778 = BgL_noffz00_2107;
															BgL_iz00_7779 = (BgL_iz00_2095 + 1L);
															BgL_iz00_2095 = BgL_iz00_7779;
															BgL_offz00_2094 = BgL_offz00_7778;
															goto BgL_zc3z04anonymousza31653ze3z87_2096;
														}
												}
										}
								}
							else
								{	/* Llib/hash.scm 814 */
									VECTOR_SET(
										((obj_t) BgL_bucketsz00_2091), BgL_off3z00_2097,
										BgL_keyz00_113);
									{	/* Llib/hash.scm 817 */
										long BgL_arg1683z00_2117;

										BgL_arg1683z00_2117 = (BgL_off3z00_2097 + 1L);
										VECTOR_SET(
											((obj_t) BgL_bucketsz00_2091), BgL_arg1683z00_2117,
											BgL_valz00_114);
									}
									{	/* Llib/hash.scm 818 */
										long BgL_arg1687z00_2118;

										BgL_arg1687z00_2118 = (BgL_off3z00_2097 + 2L);
										VECTOR_SET(
											((obj_t) BgL_bucketsz00_2091), BgL_arg1687z00_2118,
											BgL_hashz00_115);
									}
									return
										BGl_openzd2stringzd2hashtablezd2siza7ezd2incz12zb5zz__hashz00
										(BgL_tz00_112);
								}
						}
					}
				}
			}
		}

	}



/* string-hashtable-put! */
	BGL_EXPORTED_DEF obj_t BGl_stringzd2hashtablezd2putz12z12zz__hashz00(obj_t
		BgL_tablez00_116, obj_t BgL_keyz00_117, obj_t BgL_objz00_118)
	{
		{	/* Llib/hash.scm 840 */
			{	/* Llib/hash.scm 841 */
				obj_t BgL_bucketsz00_2120;

				BgL_bucketsz00_2120 = STRUCT_REF(BgL_tablez00_116, (int) (2L));
				{	/* Llib/hash.scm 842 */
					long BgL_bucketzd2numzd2_2122;

					{	/* Llib/hash.scm 843 */
						long BgL_arg1711z00_2149;

						{	/* Llib/hash.scm 843 */
							long BgL_arg1712z00_2150;

							BgL_arg1712z00_2150 = STRING_LENGTH(BgL_keyz00_117);
							BgL_arg1711z00_2149 =
								bgl_string_hash(BSTRING_TO_STRING(BgL_keyz00_117),
								(int) (0L), (int) (BgL_arg1712z00_2150));
						}
						{	/* Llib/hash.scm 843 */
							long BgL_n1z00_4259;
							long BgL_n2z00_4260;

							BgL_n1z00_4259 = BgL_arg1711z00_2149;
							BgL_n2z00_4260 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_2120));
							{	/* Llib/hash.scm 843 */
								bool_t BgL_test3040z00_7799;

								{	/* Llib/hash.scm 843 */
									long BgL_arg2156z00_4262;

									BgL_arg2156z00_4262 =
										(((BgL_n1z00_4259) | (BgL_n2z00_4260)) & -2147483648);
									BgL_test3040z00_7799 = (BgL_arg2156z00_4262 == 0L);
								}
								if (BgL_test3040z00_7799)
									{	/* Llib/hash.scm 843 */
										int32_t BgL_arg2153z00_4263;

										{	/* Llib/hash.scm 843 */
											int32_t BgL_arg2154z00_4264;
											int32_t BgL_arg2155z00_4265;

											BgL_arg2154z00_4264 = (int32_t) (BgL_n1z00_4259);
											BgL_arg2155z00_4265 = (int32_t) (BgL_n2z00_4260);
											BgL_arg2153z00_4263 =
												(BgL_arg2154z00_4264 % BgL_arg2155z00_4265);
										}
										{	/* Llib/hash.scm 843 */
											long BgL_arg2257z00_4270;

											BgL_arg2257z00_4270 = (long) (BgL_arg2153z00_4263);
											BgL_bucketzd2numzd2_2122 = (long) (BgL_arg2257z00_4270);
									}}
								else
									{	/* Llib/hash.scm 843 */
										BgL_bucketzd2numzd2_2122 =
											(BgL_n1z00_4259 % BgL_n2z00_4260);
									}
							}
						}
					}
					{	/* Llib/hash.scm 843 */
						obj_t BgL_bucketz00_2123;

						BgL_bucketz00_2123 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_2120), BgL_bucketzd2numzd2_2122);
						{	/* Llib/hash.scm 844 */
							obj_t BgL_maxzd2bucketzd2lenz00_2124;

							BgL_maxzd2bucketzd2lenz00_2124 =
								STRUCT_REF(BgL_tablez00_116, (int) (1L));
							{	/* Llib/hash.scm 845 */

								if (NULLP(BgL_bucketz00_2123))
									{	/* Llib/hash.scm 852 */
										{	/* Llib/hash.scm 854 */
											long BgL_arg1689z00_2126;

											BgL_arg1689z00_2126 =
												(
												(long) CINT(STRUCT_REF(BgL_tablez00_116,
														(int) (0L))) + 1L);
											{	/* Llib/hash.scm 854 */
												obj_t BgL_auxz00_7820;
												int BgL_tmpz00_7818;

												BgL_auxz00_7820 = BINT(BgL_arg1689z00_2126);
												BgL_tmpz00_7818 = (int) (0L);
												STRUCT_SET(BgL_tablez00_116, BgL_tmpz00_7818,
													BgL_auxz00_7820);
										}}
										{	/* Llib/hash.scm 855 */
											obj_t BgL_arg1691z00_2128;

											{	/* Llib/hash.scm 855 */
												obj_t BgL_arg1692z00_2129;

												BgL_arg1692z00_2129 =
													MAKE_YOUNG_PAIR(BgL_keyz00_117, BgL_objz00_118);
												{	/* Llib/hash.scm 855 */
													obj_t BgL_list1693z00_2130;

													BgL_list1693z00_2130 =
														MAKE_YOUNG_PAIR(BgL_arg1692z00_2129, BNIL);
													BgL_arg1691z00_2128 = BgL_list1693z00_2130;
											}}
											VECTOR_SET(
												((obj_t) BgL_bucketsz00_2120), BgL_bucketzd2numzd2_2122,
												BgL_arg1691z00_2128);
										}
										return BgL_objz00_118;
									}
								else
									{
										obj_t BgL_buckz00_2132;
										long BgL_countz00_2133;

										BgL_buckz00_2132 = BgL_bucketz00_2123;
										BgL_countz00_2133 = 0L;
									BgL_zc3z04anonymousza31694ze3z87_2134:
										if (NULLP(BgL_buckz00_2132))
											{	/* Llib/hash.scm 860 */
												{	/* Llib/hash.scm 861 */
													long BgL_arg1697z00_2136;

													BgL_arg1697z00_2136 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_116,
																(int) (0L))) + 1L);
													{	/* Llib/hash.scm 861 */
														obj_t BgL_auxz00_7835;
														int BgL_tmpz00_7833;

														BgL_auxz00_7835 = BINT(BgL_arg1697z00_2136);
														BgL_tmpz00_7833 = (int) (0L);
														STRUCT_SET(BgL_tablez00_116, BgL_tmpz00_7833,
															BgL_auxz00_7835);
												}}
												{	/* Llib/hash.scm 862 */
													obj_t BgL_arg1702z00_2138;

													{	/* Llib/hash.scm 862 */
														obj_t BgL_arg1703z00_2139;

														BgL_arg1703z00_2139 =
															MAKE_YOUNG_PAIR(BgL_keyz00_117, BgL_objz00_118);
														BgL_arg1702z00_2138 =
															MAKE_YOUNG_PAIR(BgL_arg1703z00_2139,
															BgL_bucketz00_2123);
													}
													VECTOR_SET(
														((obj_t) BgL_bucketsz00_2120),
														BgL_bucketzd2numzd2_2122, BgL_arg1702z00_2138);
												}
												if (
													(BgL_countz00_2133 >
														(long) CINT(BgL_maxzd2bucketzd2lenz00_2124)))
													{	/* Llib/hash.scm 863 */
														BGl_plainzd2hashtablezd2expandz12z12zz__hashz00
															(BgL_tablez00_116);
													}
												else
													{	/* Llib/hash.scm 863 */
														BFALSE;
													}
												return BgL_objz00_118;
											}
										else
											{	/* Llib/hash.scm 866 */
												bool_t BgL_test3044z00_7846;

												{	/* Llib/hash.scm 866 */
													obj_t BgL_arg1710z00_2147;

													{	/* Llib/hash.scm 866 */
														obj_t BgL_pairz00_4291;

														BgL_pairz00_4291 = CAR(((obj_t) BgL_buckz00_2132));
														BgL_arg1710z00_2147 = CAR(BgL_pairz00_4291);
													}
													{	/* Llib/hash.scm 866 */
														long BgL_l1z00_4294;

														BgL_l1z00_4294 =
															STRING_LENGTH(((obj_t) BgL_arg1710z00_2147));
														if (
															(BgL_l1z00_4294 == STRING_LENGTH(BgL_keyz00_117)))
															{	/* Llib/hash.scm 866 */
																int BgL_arg2055z00_4297;

																{	/* Llib/hash.scm 866 */
																	char *BgL_auxz00_7858;
																	char *BgL_tmpz00_7855;

																	BgL_auxz00_7858 =
																		BSTRING_TO_STRING(BgL_keyz00_117);
																	BgL_tmpz00_7855 =
																		BSTRING_TO_STRING(
																		((obj_t) BgL_arg1710z00_2147));
																	BgL_arg2055z00_4297 =
																		memcmp(BgL_tmpz00_7855, BgL_auxz00_7858,
																		BgL_l1z00_4294);
																}
																BgL_test3044z00_7846 =
																	((long) (BgL_arg2055z00_4297) == 0L);
															}
														else
															{	/* Llib/hash.scm 866 */
																BgL_test3044z00_7846 = ((bool_t) 0);
															}
													}
												}
												if (BgL_test3044z00_7846)
													{	/* Llib/hash.scm 867 */
														obj_t BgL_oldzd2objzd2_2143;

														{	/* Llib/hash.scm 867 */
															obj_t BgL_pairz00_4306;

															BgL_pairz00_4306 =
																CAR(((obj_t) BgL_buckz00_2132));
															BgL_oldzd2objzd2_2143 = CDR(BgL_pairz00_4306);
														}
														{	/* Llib/hash.scm 868 */
															obj_t BgL_arg1707z00_2144;

															BgL_arg1707z00_2144 =
																CAR(((obj_t) BgL_buckz00_2132));
															{	/* Llib/hash.scm 868 */
																obj_t BgL_tmpz00_7868;

																BgL_tmpz00_7868 = ((obj_t) BgL_arg1707z00_2144);
																SET_CDR(BgL_tmpz00_7868, BgL_objz00_118);
															}
														}
														return BgL_oldzd2objzd2_2143;
													}
												else
													{	/* Llib/hash.scm 871 */
														obj_t BgL_arg1708z00_2145;
														long BgL_arg1709z00_2146;

														BgL_arg1708z00_2145 =
															CDR(((obj_t) BgL_buckz00_2132));
														BgL_arg1709z00_2146 = (BgL_countz00_2133 + 1L);
														{
															long BgL_countz00_7875;
															obj_t BgL_buckz00_7874;

															BgL_buckz00_7874 = BgL_arg1708z00_2145;
															BgL_countz00_7875 = BgL_arg1709z00_2146;
															BgL_countz00_2133 = BgL_countz00_7875;
															BgL_buckz00_2132 = BgL_buckz00_7874;
															goto BgL_zc3z04anonymousza31694ze3z87_2134;
														}
													}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* &string-hashtable-put! */
	obj_t BGl_z62stringzd2hashtablezd2putz12z70zz__hashz00(obj_t BgL_envz00_5510,
		obj_t BgL_tablez00_5511, obj_t BgL_keyz00_5512, obj_t BgL_objz00_5513)
	{
		{	/* Llib/hash.scm 840 */
			{	/* Llib/hash.scm 841 */
				obj_t BgL_auxz00_7883;
				obj_t BgL_auxz00_7876;

				if (STRINGP(BgL_keyz00_5512))
					{	/* Llib/hash.scm 841 */
						BgL_auxz00_7883 = BgL_keyz00_5512;
					}
				else
					{
						obj_t BgL_auxz00_7886;

						BgL_auxz00_7886 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(33899L), BGl_string2648z00zz__hashz00,
							BGl_string2641z00zz__hashz00, BgL_keyz00_5512);
						FAILURE(BgL_auxz00_7886, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_5511))
					{	/* Llib/hash.scm 841 */
						BgL_auxz00_7876 = BgL_tablez00_5511;
					}
				else
					{
						obj_t BgL_auxz00_7879;

						BgL_auxz00_7879 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(33899L), BGl_string2648z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5511);
						FAILURE(BgL_auxz00_7879, BFALSE, BFALSE);
					}
				return
					BGl_stringzd2hashtablezd2putz12z12zz__hashz00(BgL_auxz00_7876,
					BgL_auxz00_7883, BgL_objz00_5513);
			}
		}

	}



/* plain-hashtable-put! */
	obj_t BGl_plainzd2hashtablezd2putz12z12zz__hashz00(obj_t BgL_tablez00_119,
		obj_t BgL_keyz00_120, obj_t BgL_objz00_121)
	{
		{	/* Llib/hash.scm 876 */
			{	/* Llib/hash.scm 877 */
				obj_t BgL_bucketsz00_2151;

				BgL_bucketsz00_2151 = STRUCT_REF(BgL_tablez00_119, (int) (2L));
				{	/* Llib/hash.scm 878 */
					long BgL_bucketzd2numzd2_2153;

					{	/* Llib/hash.scm 879 */
						long BgL_arg1733z00_2180;

						{	/* Llib/hash.scm 879 */
							obj_t BgL_hashnz00_4313;

							BgL_hashnz00_4313 = STRUCT_REF(BgL_tablez00_119, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_4313))
								{	/* Llib/hash.scm 879 */
									obj_t BgL_arg1278z00_4315;

									BgL_arg1278z00_4315 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_4313, BgL_keyz00_120);
									{	/* Llib/hash.scm 879 */
										long BgL_nz00_4317;

										BgL_nz00_4317 = (long) CINT(BgL_arg1278z00_4315);
										if ((BgL_nz00_4317 < 0L))
											{	/* Llib/hash.scm 879 */
												BgL_arg1733z00_2180 = NEG(BgL_nz00_4317);
											}
										else
											{	/* Llib/hash.scm 879 */
												BgL_arg1733z00_2180 = BgL_nz00_4317;
											}
									}
								}
							else
								{	/* Llib/hash.scm 879 */
									if ((BgL_hashnz00_4313 == BGl_symbol2620z00zz__hashz00))
										{	/* Llib/hash.scm 879 */
											BgL_arg1733z00_2180 =
												BGl_objzd2hashze70z35zz__hashz00(BgL_keyz00_120);
										}
									else
										{	/* Llib/hash.scm 879 */
											BgL_arg1733z00_2180 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_120);
										}
								}
						}
						{	/* Llib/hash.scm 879 */
							long BgL_n1z00_4321;
							long BgL_n2z00_4322;

							BgL_n1z00_4321 = BgL_arg1733z00_2180;
							BgL_n2z00_4322 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_2151));
							{	/* Llib/hash.scm 879 */
								bool_t BgL_test3051z00_7911;

								{	/* Llib/hash.scm 879 */
									long BgL_arg2156z00_4324;

									BgL_arg2156z00_4324 =
										(((BgL_n1z00_4321) | (BgL_n2z00_4322)) & -2147483648);
									BgL_test3051z00_7911 = (BgL_arg2156z00_4324 == 0L);
								}
								if (BgL_test3051z00_7911)
									{	/* Llib/hash.scm 879 */
										int32_t BgL_arg2153z00_4325;

										{	/* Llib/hash.scm 879 */
											int32_t BgL_arg2154z00_4326;
											int32_t BgL_arg2155z00_4327;

											BgL_arg2154z00_4326 = (int32_t) (BgL_n1z00_4321);
											BgL_arg2155z00_4327 = (int32_t) (BgL_n2z00_4322);
											BgL_arg2153z00_4325 =
												(BgL_arg2154z00_4326 % BgL_arg2155z00_4327);
										}
										{	/* Llib/hash.scm 879 */
											long BgL_arg2257z00_4332;

											BgL_arg2257z00_4332 = (long) (BgL_arg2153z00_4325);
											BgL_bucketzd2numzd2_2153 = (long) (BgL_arg2257z00_4332);
									}}
								else
									{	/* Llib/hash.scm 879 */
										BgL_bucketzd2numzd2_2153 =
											(BgL_n1z00_4321 % BgL_n2z00_4322);
									}
							}
						}
					}
					{	/* Llib/hash.scm 879 */
						obj_t BgL_bucketz00_2154;

						BgL_bucketz00_2154 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_2151), BgL_bucketzd2numzd2_2153);
						{	/* Llib/hash.scm 880 */
							obj_t BgL_maxzd2bucketzd2lenz00_2155;

							BgL_maxzd2bucketzd2lenz00_2155 =
								STRUCT_REF(BgL_tablez00_119, (int) (1L));
							{	/* Llib/hash.scm 881 */

								if (NULLP(BgL_bucketz00_2154))
									{	/* Llib/hash.scm 882 */
										{	/* Llib/hash.scm 884 */
											long BgL_arg1714z00_2157;

											BgL_arg1714z00_2157 =
												(
												(long) CINT(STRUCT_REF(BgL_tablez00_119,
														(int) (0L))) + 1L);
											{	/* Llib/hash.scm 884 */
												obj_t BgL_auxz00_7932;
												int BgL_tmpz00_7930;

												BgL_auxz00_7932 = BINT(BgL_arg1714z00_2157);
												BgL_tmpz00_7930 = (int) (0L);
												STRUCT_SET(BgL_tablez00_119, BgL_tmpz00_7930,
													BgL_auxz00_7932);
										}}
										{	/* Llib/hash.scm 885 */
											obj_t BgL_arg1716z00_2159;

											{	/* Llib/hash.scm 885 */
												obj_t BgL_arg1718z00_2160;

												BgL_arg1718z00_2160 =
													MAKE_YOUNG_PAIR(BgL_keyz00_120, BgL_objz00_121);
												{	/* Llib/hash.scm 885 */
													obj_t BgL_list1719z00_2161;

													BgL_list1719z00_2161 =
														MAKE_YOUNG_PAIR(BgL_arg1718z00_2160, BNIL);
													BgL_arg1716z00_2159 = BgL_list1719z00_2161;
											}}
											VECTOR_SET(
												((obj_t) BgL_bucketsz00_2151), BgL_bucketzd2numzd2_2153,
												BgL_arg1716z00_2159);
										}
										return BgL_objz00_121;
									}
								else
									{
										obj_t BgL_buckz00_2163;
										long BgL_countz00_2164;

										BgL_buckz00_2163 = BgL_bucketz00_2154;
										BgL_countz00_2164 = 0L;
									BgL_zc3z04anonymousza31720ze3z87_2165:
										if (NULLP(BgL_buckz00_2163))
											{	/* Llib/hash.scm 890 */
												{	/* Llib/hash.scm 891 */
													long BgL_arg1722z00_2167;

													BgL_arg1722z00_2167 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_119,
																(int) (0L))) + 1L);
													{	/* Llib/hash.scm 891 */
														obj_t BgL_auxz00_7947;
														int BgL_tmpz00_7945;

														BgL_auxz00_7947 = BINT(BgL_arg1722z00_2167);
														BgL_tmpz00_7945 = (int) (0L);
														STRUCT_SET(BgL_tablez00_119, BgL_tmpz00_7945,
															BgL_auxz00_7947);
												}}
												{	/* Llib/hash.scm 892 */
													obj_t BgL_arg1724z00_2169;

													{	/* Llib/hash.scm 892 */
														obj_t BgL_arg1725z00_2170;

														BgL_arg1725z00_2170 =
															MAKE_YOUNG_PAIR(BgL_keyz00_120, BgL_objz00_121);
														BgL_arg1724z00_2169 =
															MAKE_YOUNG_PAIR(BgL_arg1725z00_2170,
															BgL_bucketz00_2154);
													}
													VECTOR_SET(
														((obj_t) BgL_bucketsz00_2151),
														BgL_bucketzd2numzd2_2153, BgL_arg1724z00_2169);
												}
												if (
													(BgL_countz00_2164 >
														(long) CINT(BgL_maxzd2bucketzd2lenz00_2155)))
													{	/* Llib/hash.scm 893 */
														BGl_plainzd2hashtablezd2expandz12z12zz__hashz00
															(BgL_tablez00_119);
													}
												else
													{	/* Llib/hash.scm 893 */
														BFALSE;
													}
												return BgL_objz00_121;
											}
										else
											{	/* Llib/hash.scm 896 */
												bool_t BgL_test3055z00_7958;

												{	/* Llib/hash.scm 896 */
													obj_t BgL_arg1732z00_2178;

													{	/* Llib/hash.scm 896 */
														obj_t BgL_pairz00_4353;

														BgL_pairz00_4353 = CAR(((obj_t) BgL_buckz00_2163));
														BgL_arg1732z00_2178 = CAR(BgL_pairz00_4353);
													}
													{	/* Llib/hash.scm 896 */
														obj_t BgL_eqtz00_4354;

														BgL_eqtz00_4354 =
															STRUCT_REF(BgL_tablez00_119, (int) (3L));
														if (PROCEDUREP(BgL_eqtz00_4354))
															{	/* Llib/hash.scm 896 */
																BgL_test3055z00_7958 =
																	CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_4354,
																		BgL_arg1732z00_2178, BgL_keyz00_120));
															}
														else
															{	/* Llib/hash.scm 896 */
																if ((BgL_arg1732z00_2178 == BgL_keyz00_120))
																	{	/* Llib/hash.scm 896 */
																		BgL_test3055z00_7958 = ((bool_t) 1);
																	}
																else
																	{	/* Llib/hash.scm 896 */
																		if (STRINGP(BgL_arg1732z00_2178))
																			{	/* Llib/hash.scm 896 */
																				if (STRINGP(BgL_keyz00_120))
																					{	/* Llib/hash.scm 896 */
																						long BgL_l1z00_4361;

																						BgL_l1z00_4361 =
																							STRING_LENGTH
																							(BgL_arg1732z00_2178);
																						if ((BgL_l1z00_4361 ==
																								STRING_LENGTH(BgL_keyz00_120)))
																							{	/* Llib/hash.scm 896 */
																								int BgL_arg2055z00_4364;

																								{	/* Llib/hash.scm 896 */
																									char *BgL_auxz00_7984;
																									char *BgL_tmpz00_7982;

																									BgL_auxz00_7984 =
																										BSTRING_TO_STRING
																										(BgL_keyz00_120);
																									BgL_tmpz00_7982 =
																										BSTRING_TO_STRING
																										(BgL_arg1732z00_2178);
																									BgL_arg2055z00_4364 =
																										memcmp(BgL_tmpz00_7982,
																										BgL_auxz00_7984,
																										BgL_l1z00_4361);
																								}
																								BgL_test3055z00_7958 =
																									(
																									(long) (BgL_arg2055z00_4364)
																									== 0L);
																							}
																						else
																							{	/* Llib/hash.scm 896 */
																								BgL_test3055z00_7958 =
																									((bool_t) 0);
																							}
																					}
																				else
																					{	/* Llib/hash.scm 896 */
																						BgL_test3055z00_7958 = ((bool_t) 0);
																					}
																			}
																		else
																			{	/* Llib/hash.scm 896 */
																				BgL_test3055z00_7958 = ((bool_t) 0);
																			}
																	}
															}
													}
												}
												if (BgL_test3055z00_7958)
													{	/* Llib/hash.scm 897 */
														obj_t BgL_oldzd2objzd2_2174;

														{	/* Llib/hash.scm 897 */
															obj_t BgL_pairz00_4373;

															BgL_pairz00_4373 =
																CAR(((obj_t) BgL_buckz00_2163));
															BgL_oldzd2objzd2_2174 = CDR(BgL_pairz00_4373);
														}
														{	/* Llib/hash.scm 898 */
															obj_t BgL_arg1729z00_2175;

															BgL_arg1729z00_2175 =
																CAR(((obj_t) BgL_buckz00_2163));
															{	/* Llib/hash.scm 898 */
																obj_t BgL_tmpz00_7994;

																BgL_tmpz00_7994 = ((obj_t) BgL_arg1729z00_2175);
																SET_CDR(BgL_tmpz00_7994, BgL_objz00_121);
															}
														}
														return BgL_oldzd2objzd2_2174;
													}
												else
													{	/* Llib/hash.scm 901 */
														obj_t BgL_arg1730z00_2176;
														long BgL_arg1731z00_2177;

														BgL_arg1730z00_2176 =
															CDR(((obj_t) BgL_buckz00_2163));
														BgL_arg1731z00_2177 = (BgL_countz00_2164 + 1L);
														{
															long BgL_countz00_8001;
															obj_t BgL_buckz00_8000;

															BgL_buckz00_8000 = BgL_arg1730z00_2176;
															BgL_countz00_8001 = BgL_arg1731z00_2177;
															BgL_countz00_2164 = BgL_countz00_8001;
															BgL_buckz00_2163 = BgL_buckz00_8000;
															goto BgL_zc3z04anonymousza31720ze3z87_2165;
														}
													}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* hashtable-update! */
	BGL_EXPORTED_DEF obj_t BGl_hashtablezd2updatez12zc0zz__hashz00(obj_t
		BgL_tablez00_122, obj_t BgL_keyz00_123, obj_t BgL_procz00_124,
		obj_t BgL_objz00_125)
	{
		{	/* Llib/hash.scm 906 */
			{	/* Llib/hash.scm 908 */
				bool_t BgL_test3061z00_8002;

				if (
					(0L == ((long) CINT(STRUCT_REF(BgL_tablez00_122, (int) (5L))) & 8L)))
					{	/* Llib/hash.scm 317 */
						BgL_test3061z00_8002 = ((bool_t) 0);
					}
				else
					{	/* Llib/hash.scm 317 */
						BgL_test3061z00_8002 = ((bool_t) 1);
					}
				if (BgL_test3061z00_8002)
					{	/* Llib/hash.scm 908 */
						return
							BGl_openzd2stringzd2hashtablezd2updatez12zc0zz__hashz00
							(BgL_tablez00_122, BgL_keyz00_123, BgL_procz00_124,
							BgL_objz00_125);
					}
				else
					{	/* Llib/hash.scm 910 */
						bool_t BgL_test3063z00_8010;

						if (
							(0L ==
								((long) CINT(STRUCT_REF(BgL_tablez00_122, (int) (5L))) & 3L)))
							{	/* Llib/hash.scm 311 */
								BgL_test3063z00_8010 = ((bool_t) 0);
							}
						else
							{	/* Llib/hash.scm 311 */
								BgL_test3063z00_8010 = ((bool_t) 1);
							}
						if (BgL_test3063z00_8010)
							{	/* Llib/hash.scm 910 */
								BGL_TAIL return
									BGl_weakzd2hashtablezd2updatez12z12zz__weakhashz00
									(BgL_tablez00_122, BgL_keyz00_123, BgL_procz00_124,
									BgL_objz00_125);
							}
						else
							{	/* Llib/hash.scm 910 */
								BGL_TAIL return
									BGl_plainzd2hashtablezd2updatez12z12zz__hashz00
									(BgL_tablez00_122, BgL_keyz00_123, BgL_procz00_124,
									BgL_objz00_125);
							}
					}
			}
		}

	}



/* &hashtable-update! */
	obj_t BGl_z62hashtablezd2updatez12za2zz__hashz00(obj_t BgL_envz00_5514,
		obj_t BgL_tablez00_5515, obj_t BgL_keyz00_5516, obj_t BgL_procz00_5517,
		obj_t BgL_objz00_5518)
	{
		{	/* Llib/hash.scm 906 */
			{	/* Llib/hash.scm 908 */
				obj_t BgL_auxz00_8026;
				obj_t BgL_auxz00_8019;

				if (PROCEDUREP(BgL_procz00_5517))
					{	/* Llib/hash.scm 908 */
						BgL_auxz00_8026 = BgL_procz00_5517;
					}
				else
					{
						obj_t BgL_auxz00_8029;

						BgL_auxz00_8029 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(36466L), BGl_string2649z00zz__hashz00,
							BGl_string2632z00zz__hashz00, BgL_procz00_5517);
						FAILURE(BgL_auxz00_8029, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_5515))
					{	/* Llib/hash.scm 908 */
						BgL_auxz00_8019 = BgL_tablez00_5515;
					}
				else
					{
						obj_t BgL_auxz00_8022;

						BgL_auxz00_8022 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(36466L), BGl_string2649z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5515);
						FAILURE(BgL_auxz00_8022, BFALSE, BFALSE);
					}
				return
					BGl_hashtablezd2updatez12zc0zz__hashz00(BgL_auxz00_8019,
					BgL_keyz00_5516, BgL_auxz00_8026, BgL_objz00_5518);
			}
		}

	}



/* open-string-hashtable-update! */
	BGL_EXPORTED_DEF obj_t
		BGl_openzd2stringzd2hashtablezd2updatez12zc0zz__hashz00(obj_t
		BgL_tablez00_126, obj_t BgL_keyz00_127, obj_t BgL_procz00_128,
		obj_t BgL_objz00_129)
	{
		{	/* Llib/hash.scm 918 */
			{	/* Llib/hash.scm 919 */
				obj_t BgL_siza7eza7_2183;

				BgL_siza7eza7_2183 = STRUCT_REF(BgL_tablez00_126, (int) (1L));
				{	/* Llib/hash.scm 919 */
					obj_t BgL_bucketsz00_2184;

					BgL_bucketsz00_2184 = STRUCT_REF(BgL_tablez00_126, (int) (2L));
					{	/* Llib/hash.scm 920 */
						long BgL_hashz00_2185;

						{	/* Llib/hash.scm 921 */
							long BgL_arg1758z00_2211;

							BgL_arg1758z00_2211 = STRING_LENGTH(BgL_keyz00_127);
							BgL_hashz00_2185 =
								bgl_string_hash(BSTRING_TO_STRING(BgL_keyz00_127),
								(int) (0L), (int) (BgL_arg1758z00_2211));
						}
						{	/* Llib/hash.scm 921 */

							{	/* Llib/hash.scm 923 */
								long BgL_g1072z00_2186;

								{	/* Llib/hash.scm 923 */
									long BgL_n1z00_4397;
									long BgL_n2z00_4398;

									BgL_n1z00_4397 = BgL_hashz00_2185;
									BgL_n2z00_4398 = (long) CINT(BgL_siza7eza7_2183);
									{	/* Llib/hash.scm 923 */
										bool_t BgL_test3067z00_8044;

										{	/* Llib/hash.scm 923 */
											long BgL_arg2156z00_4400;

											BgL_arg2156z00_4400 =
												(((BgL_n1z00_4397) | (BgL_n2z00_4398)) & -2147483648);
											BgL_test3067z00_8044 = (BgL_arg2156z00_4400 == 0L);
										}
										if (BgL_test3067z00_8044)
											{	/* Llib/hash.scm 923 */
												int32_t BgL_arg2153z00_4401;

												{	/* Llib/hash.scm 923 */
													int32_t BgL_arg2154z00_4402;
													int32_t BgL_arg2155z00_4403;

													BgL_arg2154z00_4402 = (int32_t) (BgL_n1z00_4397);
													BgL_arg2155z00_4403 = (int32_t) (BgL_n2z00_4398);
													BgL_arg2153z00_4401 =
														(BgL_arg2154z00_4402 % BgL_arg2155z00_4403);
												}
												{	/* Llib/hash.scm 923 */
													long BgL_arg2257z00_4408;

													BgL_arg2257z00_4408 = (long) (BgL_arg2153z00_4401);
													BgL_g1072z00_2186 = (long) (BgL_arg2257z00_4408);
											}}
										else
											{	/* Llib/hash.scm 923 */
												BgL_g1072z00_2186 = (BgL_n1z00_4397 % BgL_n2z00_4398);
											}
									}
								}
								{
									long BgL_offz00_2188;
									long BgL_iz00_2189;

									BgL_offz00_2188 = BgL_g1072z00_2186;
									BgL_iz00_2189 = 1L;
								BgL_zc3z04anonymousza31736ze3z87_2190:
									{	/* Llib/hash.scm 925 */
										long BgL_off3z00_2191;

										BgL_off3z00_2191 = (BgL_offz00_2188 * 3L);
										if (CBOOL(VECTOR_REF(
													((obj_t) BgL_bucketsz00_2184), BgL_off3z00_2191)))
											{	/* Llib/hash.scm 927 */
												bool_t BgL_test3069z00_8058;

												{	/* Llib/hash.scm 927 */
													obj_t BgL_arg1757z00_2209;

													BgL_arg1757z00_2209 =
														VECTOR_REF(
														((obj_t) BgL_bucketsz00_2184), BgL_off3z00_2191);
													{	/* Llib/hash.scm 927 */
														long BgL_l1z00_4417;

														BgL_l1z00_4417 =
															STRING_LENGTH(((obj_t) BgL_arg1757z00_2209));
														if (
															(BgL_l1z00_4417 == STRING_LENGTH(BgL_keyz00_127)))
															{	/* Llib/hash.scm 927 */
																int BgL_arg2055z00_4420;

																{	/* Llib/hash.scm 927 */
																	char *BgL_auxz00_8069;
																	char *BgL_tmpz00_8066;

																	BgL_auxz00_8069 =
																		BSTRING_TO_STRING(BgL_keyz00_127);
																	BgL_tmpz00_8066 =
																		BSTRING_TO_STRING(
																		((obj_t) BgL_arg1757z00_2209));
																	BgL_arg2055z00_4420 =
																		memcmp(BgL_tmpz00_8066, BgL_auxz00_8069,
																		BgL_l1z00_4417);
																}
																BgL_test3069z00_8058 =
																	((long) (BgL_arg2055z00_4420) == 0L);
															}
														else
															{	/* Llib/hash.scm 927 */
																BgL_test3069z00_8058 = ((bool_t) 0);
															}
													}
												}
												if (BgL_test3069z00_8058)
													{	/* Llib/hash.scm 928 */
														bool_t BgL_test3071z00_8074;

														{	/* Llib/hash.scm 928 */
															long BgL_arg1748z00_2202;

															BgL_arg1748z00_2202 = (BgL_off3z00_2191 + 2L);
															BgL_test3071z00_8074 =
																CBOOL(VECTOR_REF(
																	((obj_t) BgL_bucketsz00_2184),
																	BgL_arg1748z00_2202));
														}
														if (BgL_test3071z00_8074)
															{	/* Llib/hash.scm 929 */
																obj_t BgL_ovalz00_2197;

																{	/* Llib/hash.scm 929 */
																	long BgL_arg1745z00_2200;

																	BgL_arg1745z00_2200 = (BgL_off3z00_2191 + 1L);
																	BgL_ovalz00_2197 =
																		VECTOR_REF(
																		((obj_t) BgL_bucketsz00_2184),
																		BgL_arg1745z00_2200);
																}
																{	/* Llib/hash.scm 930 */
																	long BgL_arg1743z00_2198;
																	obj_t BgL_arg1744z00_2199;

																	BgL_arg1743z00_2198 = (BgL_off3z00_2191 + 1L);
																	BgL_arg1744z00_2199 =
																		BGL_PROCEDURE_CALL1(BgL_procz00_128,
																		BgL_ovalz00_2197);
																	return VECTOR_SET(((obj_t)
																			BgL_bucketsz00_2184), BgL_arg1743z00_2198,
																		BgL_arg1744z00_2199);
																}
															}
														else
															{	/* Llib/hash.scm 931 */
																long BgL_arg1747z00_2201;

																BgL_arg1747z00_2201 = (BgL_off3z00_2191 + 1L);
																return
																	VECTOR_SET(
																	((obj_t) BgL_bucketsz00_2184),
																	BgL_arg1747z00_2201, BgL_objz00_129);
															}
													}
												else
													{	/* Llib/hash.scm 932 */
														long BgL_noffz00_2203;

														BgL_noffz00_2203 =
															(BgL_offz00_2188 +
															(BgL_iz00_2189 * BgL_iz00_2189));
														if (
															(BgL_noffz00_2203 >=
																(long) CINT(BgL_siza7eza7_2183)))
															{	/* Llib/hash.scm 934 */
																long BgL_arg1750z00_2205;
																long BgL_arg1754z00_2206;

																{	/* Llib/hash.scm 934 */
																	long BgL_n1z00_4444;
																	long BgL_n2z00_4445;

																	BgL_n1z00_4444 = BgL_noffz00_2203;
																	BgL_n2z00_4445 =
																		(long) CINT(BgL_siza7eza7_2183);
																	{	/* Llib/hash.scm 934 */
																		bool_t BgL_test3073z00_8098;

																		{	/* Llib/hash.scm 934 */
																			long BgL_arg2156z00_4447;

																			BgL_arg2156z00_4447 =
																				(((BgL_n1z00_4444) | (BgL_n2z00_4445)) &
																				-2147483648);
																			BgL_test3073z00_8098 =
																				(BgL_arg2156z00_4447 == 0L);
																		}
																		if (BgL_test3073z00_8098)
																			{	/* Llib/hash.scm 934 */
																				int32_t BgL_arg2153z00_4448;

																				{	/* Llib/hash.scm 934 */
																					int32_t BgL_arg2154z00_4449;
																					int32_t BgL_arg2155z00_4450;

																					BgL_arg2154z00_4449 =
																						(int32_t) (BgL_n1z00_4444);
																					BgL_arg2155z00_4450 =
																						(int32_t) (BgL_n2z00_4445);
																					BgL_arg2153z00_4448 =
																						(BgL_arg2154z00_4449 %
																						BgL_arg2155z00_4450);
																				}
																				{	/* Llib/hash.scm 934 */
																					long BgL_arg2257z00_4455;

																					BgL_arg2257z00_4455 =
																						(long) (BgL_arg2153z00_4448);
																					BgL_arg1750z00_2205 =
																						(long) (BgL_arg2257z00_4455);
																			}}
																		else
																			{	/* Llib/hash.scm 934 */
																				BgL_arg1750z00_2205 =
																					(BgL_n1z00_4444 % BgL_n2z00_4445);
																			}
																	}
																}
																BgL_arg1754z00_2206 = (BgL_iz00_2189 + 1L);
																{
																	long BgL_iz00_8109;
																	long BgL_offz00_8108;

																	BgL_offz00_8108 = BgL_arg1750z00_2205;
																	BgL_iz00_8109 = BgL_arg1754z00_2206;
																	BgL_iz00_2189 = BgL_iz00_8109;
																	BgL_offz00_2188 = BgL_offz00_8108;
																	goto BgL_zc3z04anonymousza31736ze3z87_2190;
																}
															}
														else
															{
																long BgL_iz00_8111;
																long BgL_offz00_8110;

																BgL_offz00_8110 = BgL_noffz00_2203;
																BgL_iz00_8111 = (BgL_iz00_2189 + 1L);
																BgL_iz00_2189 = BgL_iz00_8111;
																BgL_offz00_2188 = BgL_offz00_8110;
																goto BgL_zc3z04anonymousza31736ze3z87_2190;
															}
													}
											}
										else
											{	/* Llib/hash.scm 926 */
												return
													BGl_openzd2stringzd2hashtablezd2putzf2hashz12z32zz__hashz00
													(BgL_tablez00_126, BgL_keyz00_127, BgL_objz00_129,
													BINT(BgL_hashz00_2185));
											}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* &open-string-hashtable-update! */
	obj_t BGl_z62openzd2stringzd2hashtablezd2updatez12za2zz__hashz00(obj_t
		BgL_envz00_5519, obj_t BgL_tablez00_5520, obj_t BgL_keyz00_5521,
		obj_t BgL_procz00_5522, obj_t BgL_objz00_5523)
	{
		{	/* Llib/hash.scm 918 */
			{	/* Llib/hash.scm 919 */
				obj_t BgL_auxz00_8129;
				obj_t BgL_auxz00_8122;
				obj_t BgL_auxz00_8115;

				if (PROCEDUREP(BgL_procz00_5522))
					{	/* Llib/hash.scm 919 */
						BgL_auxz00_8129 = BgL_procz00_5522;
					}
				else
					{
						obj_t BgL_auxz00_8132;

						BgL_auxz00_8132 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(37020L), BGl_string2650z00zz__hashz00,
							BGl_string2632z00zz__hashz00, BgL_procz00_5522);
						FAILURE(BgL_auxz00_8132, BFALSE, BFALSE);
					}
				if (STRINGP(BgL_keyz00_5521))
					{	/* Llib/hash.scm 919 */
						BgL_auxz00_8122 = BgL_keyz00_5521;
					}
				else
					{
						obj_t BgL_auxz00_8125;

						BgL_auxz00_8125 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(37020L), BGl_string2650z00zz__hashz00,
							BGl_string2641z00zz__hashz00, BgL_keyz00_5521);
						FAILURE(BgL_auxz00_8125, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_5520))
					{	/* Llib/hash.scm 919 */
						BgL_auxz00_8115 = BgL_tablez00_5520;
					}
				else
					{
						obj_t BgL_auxz00_8118;

						BgL_auxz00_8118 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(37020L), BGl_string2650z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5520);
						FAILURE(BgL_auxz00_8118, BFALSE, BFALSE);
					}
				return
					BGl_openzd2stringzd2hashtablezd2updatez12zc0zz__hashz00
					(BgL_auxz00_8115, BgL_auxz00_8122, BgL_auxz00_8129, BgL_objz00_5523);
			}
		}

	}



/* plain-hashtable-update! */
	obj_t BGl_plainzd2hashtablezd2updatez12z12zz__hashz00(obj_t BgL_tablez00_130,
		obj_t BgL_keyz00_131, obj_t BgL_procz00_132, obj_t BgL_objz00_133)
	{
		{	/* Llib/hash.scm 941 */
			{	/* Llib/hash.scm 942 */
				obj_t BgL_bucketsz00_2212;

				BgL_bucketsz00_2212 = STRUCT_REF(BgL_tablez00_130, (int) (2L));
				{	/* Llib/hash.scm 943 */
					long BgL_bucketzd2numzd2_2214;

					{	/* Llib/hash.scm 944 */
						long BgL_arg1781z00_2242;

						{	/* Llib/hash.scm 944 */
							obj_t BgL_hashnz00_4461;

							BgL_hashnz00_4461 = STRUCT_REF(BgL_tablez00_130, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_4461))
								{	/* Llib/hash.scm 944 */
									obj_t BgL_arg1278z00_4463;

									BgL_arg1278z00_4463 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_4461, BgL_keyz00_131);
									{	/* Llib/hash.scm 944 */
										long BgL_nz00_4465;

										BgL_nz00_4465 = (long) CINT(BgL_arg1278z00_4463);
										if ((BgL_nz00_4465 < 0L))
											{	/* Llib/hash.scm 944 */
												BgL_arg1781z00_2242 = NEG(BgL_nz00_4465);
											}
										else
											{	/* Llib/hash.scm 944 */
												BgL_arg1781z00_2242 = BgL_nz00_4465;
											}
									}
								}
							else
								{	/* Llib/hash.scm 944 */
									if ((BgL_hashnz00_4461 == BGl_symbol2620z00zz__hashz00))
										{	/* Llib/hash.scm 944 */
											BgL_arg1781z00_2242 =
												BGl_objzd2hashze70z35zz__hashz00(BgL_keyz00_131);
										}
									else
										{	/* Llib/hash.scm 944 */
											BgL_arg1781z00_2242 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_131);
										}
								}
						}
						{	/* Llib/hash.scm 944 */
							long BgL_n1z00_4469;
							long BgL_n2z00_4470;

							BgL_n1z00_4469 = BgL_arg1781z00_2242;
							BgL_n2z00_4470 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_2212));
							{	/* Llib/hash.scm 944 */
								bool_t BgL_test3080z00_8157;

								{	/* Llib/hash.scm 944 */
									long BgL_arg2156z00_4472;

									BgL_arg2156z00_4472 =
										(((BgL_n1z00_4469) | (BgL_n2z00_4470)) & -2147483648);
									BgL_test3080z00_8157 = (BgL_arg2156z00_4472 == 0L);
								}
								if (BgL_test3080z00_8157)
									{	/* Llib/hash.scm 944 */
										int32_t BgL_arg2153z00_4473;

										{	/* Llib/hash.scm 944 */
											int32_t BgL_arg2154z00_4474;
											int32_t BgL_arg2155z00_4475;

											BgL_arg2154z00_4474 = (int32_t) (BgL_n1z00_4469);
											BgL_arg2155z00_4475 = (int32_t) (BgL_n2z00_4470);
											BgL_arg2153z00_4473 =
												(BgL_arg2154z00_4474 % BgL_arg2155z00_4475);
										}
										{	/* Llib/hash.scm 944 */
											long BgL_arg2257z00_4480;

											BgL_arg2257z00_4480 = (long) (BgL_arg2153z00_4473);
											BgL_bucketzd2numzd2_2214 = (long) (BgL_arg2257z00_4480);
									}}
								else
									{	/* Llib/hash.scm 944 */
										BgL_bucketzd2numzd2_2214 =
											(BgL_n1z00_4469 % BgL_n2z00_4470);
									}
							}
						}
					}
					{	/* Llib/hash.scm 944 */
						obj_t BgL_bucketz00_2215;

						BgL_bucketz00_2215 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_2212), BgL_bucketzd2numzd2_2214);
						{	/* Llib/hash.scm 945 */
							obj_t BgL_maxzd2bucketzd2lenz00_2216;

							BgL_maxzd2bucketzd2lenz00_2216 =
								STRUCT_REF(BgL_tablez00_130, (int) (1L));
							{	/* Llib/hash.scm 946 */

								if (NULLP(BgL_bucketz00_2215))
									{	/* Llib/hash.scm 947 */
										{	/* Llib/hash.scm 949 */
											long BgL_arg1760z00_2218;

											BgL_arg1760z00_2218 =
												(
												(long) CINT(STRUCT_REF(BgL_tablez00_130,
														(int) (0L))) + 1L);
											{	/* Llib/hash.scm 949 */
												obj_t BgL_auxz00_8178;
												int BgL_tmpz00_8176;

												BgL_auxz00_8178 = BINT(BgL_arg1760z00_2218);
												BgL_tmpz00_8176 = (int) (0L);
												STRUCT_SET(BgL_tablez00_130, BgL_tmpz00_8176,
													BgL_auxz00_8178);
										}}
										{	/* Llib/hash.scm 950 */
											obj_t BgL_arg1762z00_2220;

											{	/* Llib/hash.scm 950 */
												obj_t BgL_arg1763z00_2221;

												BgL_arg1763z00_2221 =
													MAKE_YOUNG_PAIR(BgL_keyz00_131, BgL_objz00_133);
												{	/* Llib/hash.scm 950 */
													obj_t BgL_list1764z00_2222;

													BgL_list1764z00_2222 =
														MAKE_YOUNG_PAIR(BgL_arg1763z00_2221, BNIL);
													BgL_arg1762z00_2220 = BgL_list1764z00_2222;
											}}
											VECTOR_SET(
												((obj_t) BgL_bucketsz00_2212), BgL_bucketzd2numzd2_2214,
												BgL_arg1762z00_2220);
										}
										return BgL_objz00_133;
									}
								else
									{
										obj_t BgL_buckz00_2224;
										long BgL_countz00_2225;

										BgL_buckz00_2224 = BgL_bucketz00_2215;
										BgL_countz00_2225 = 0L;
									BgL_zc3z04anonymousza31765ze3z87_2226:
										if (NULLP(BgL_buckz00_2224))
											{	/* Llib/hash.scm 955 */
												{	/* Llib/hash.scm 956 */
													long BgL_arg1767z00_2228;

													BgL_arg1767z00_2228 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_130,
																(int) (0L))) + 1L);
													{	/* Llib/hash.scm 956 */
														obj_t BgL_auxz00_8193;
														int BgL_tmpz00_8191;

														BgL_auxz00_8193 = BINT(BgL_arg1767z00_2228);
														BgL_tmpz00_8191 = (int) (0L);
														STRUCT_SET(BgL_tablez00_130, BgL_tmpz00_8191,
															BgL_auxz00_8193);
												}}
												{	/* Llib/hash.scm 957 */
													obj_t BgL_arg1769z00_2230;

													{	/* Llib/hash.scm 957 */
														obj_t BgL_arg1770z00_2231;

														BgL_arg1770z00_2231 =
															MAKE_YOUNG_PAIR(BgL_keyz00_131, BgL_objz00_133);
														BgL_arg1769z00_2230 =
															MAKE_YOUNG_PAIR(BgL_arg1770z00_2231,
															BgL_bucketz00_2215);
													}
													VECTOR_SET(
														((obj_t) BgL_bucketsz00_2212),
														BgL_bucketzd2numzd2_2214, BgL_arg1769z00_2230);
												}
												if (
													(BgL_countz00_2225 >
														(long) CINT(BgL_maxzd2bucketzd2lenz00_2216)))
													{	/* Llib/hash.scm 958 */
														BGl_plainzd2hashtablezd2expandz12z12zz__hashz00
															(BgL_tablez00_130);
													}
												else
													{	/* Llib/hash.scm 958 */
														BFALSE;
													}
												return BgL_objz00_133;
											}
										else
											{	/* Llib/hash.scm 961 */
												bool_t BgL_test3084z00_8204;

												{	/* Llib/hash.scm 961 */
													obj_t BgL_arg1779z00_2240;

													{	/* Llib/hash.scm 961 */
														obj_t BgL_pairz00_4501;

														BgL_pairz00_4501 = CAR(((obj_t) BgL_buckz00_2224));
														BgL_arg1779z00_2240 = CAR(BgL_pairz00_4501);
													}
													{	/* Llib/hash.scm 961 */
														obj_t BgL_eqtz00_4502;

														BgL_eqtz00_4502 =
															STRUCT_REF(BgL_tablez00_130, (int) (3L));
														if (PROCEDUREP(BgL_eqtz00_4502))
															{	/* Llib/hash.scm 961 */
																BgL_test3084z00_8204 =
																	CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_4502,
																		BgL_arg1779z00_2240, BgL_keyz00_131));
															}
														else
															{	/* Llib/hash.scm 961 */
																if ((BgL_arg1779z00_2240 == BgL_keyz00_131))
																	{	/* Llib/hash.scm 961 */
																		BgL_test3084z00_8204 = ((bool_t) 1);
																	}
																else
																	{	/* Llib/hash.scm 961 */
																		if (STRINGP(BgL_arg1779z00_2240))
																			{	/* Llib/hash.scm 961 */
																				if (STRINGP(BgL_keyz00_131))
																					{	/* Llib/hash.scm 961 */
																						long BgL_l1z00_4509;

																						BgL_l1z00_4509 =
																							STRING_LENGTH
																							(BgL_arg1779z00_2240);
																						if ((BgL_l1z00_4509 ==
																								STRING_LENGTH(BgL_keyz00_131)))
																							{	/* Llib/hash.scm 961 */
																								int BgL_arg2055z00_4512;

																								{	/* Llib/hash.scm 961 */
																									char *BgL_auxz00_8230;
																									char *BgL_tmpz00_8228;

																									BgL_auxz00_8230 =
																										BSTRING_TO_STRING
																										(BgL_keyz00_131);
																									BgL_tmpz00_8228 =
																										BSTRING_TO_STRING
																										(BgL_arg1779z00_2240);
																									BgL_arg2055z00_4512 =
																										memcmp(BgL_tmpz00_8228,
																										BgL_auxz00_8230,
																										BgL_l1z00_4509);
																								}
																								BgL_test3084z00_8204 =
																									(
																									(long) (BgL_arg2055z00_4512)
																									== 0L);
																							}
																						else
																							{	/* Llib/hash.scm 961 */
																								BgL_test3084z00_8204 =
																									((bool_t) 0);
																							}
																					}
																				else
																					{	/* Llib/hash.scm 961 */
																						BgL_test3084z00_8204 = ((bool_t) 0);
																					}
																			}
																		else
																			{	/* Llib/hash.scm 961 */
																				BgL_test3084z00_8204 = ((bool_t) 0);
																			}
																	}
															}
													}
												}
												if (BgL_test3084z00_8204)
													{	/* Llib/hash.scm 962 */
														obj_t BgL_resz00_2235;

														{	/* Llib/hash.scm 962 */
															obj_t BgL_arg1776z00_2237;

															{	/* Llib/hash.scm 962 */
																obj_t BgL_pairz00_4521;

																BgL_pairz00_4521 =
																	CAR(((obj_t) BgL_buckz00_2224));
																BgL_arg1776z00_2237 = CDR(BgL_pairz00_4521);
															}
															BgL_resz00_2235 =
																BGL_PROCEDURE_CALL1(BgL_procz00_132,
																BgL_arg1776z00_2237);
														}
														{	/* Llib/hash.scm 963 */
															obj_t BgL_arg1775z00_2236;

															BgL_arg1775z00_2236 =
																CAR(((obj_t) BgL_buckz00_2224));
															{	/* Llib/hash.scm 963 */
																obj_t BgL_tmpz00_8244;

																BgL_tmpz00_8244 = ((obj_t) BgL_arg1775z00_2236);
																SET_CDR(BgL_tmpz00_8244, BgL_resz00_2235);
															}
														}
														return BgL_resz00_2235;
													}
												else
													{	/* Llib/hash.scm 966 */
														obj_t BgL_arg1777z00_2238;
														long BgL_arg1778z00_2239;

														BgL_arg1777z00_2238 =
															CDR(((obj_t) BgL_buckz00_2224));
														BgL_arg1778z00_2239 = (BgL_countz00_2225 + 1L);
														{
															long BgL_countz00_8251;
															obj_t BgL_buckz00_8250;

															BgL_buckz00_8250 = BgL_arg1777z00_2238;
															BgL_countz00_8251 = BgL_arg1778z00_2239;
															BgL_countz00_2225 = BgL_countz00_8251;
															BgL_buckz00_2224 = BgL_buckz00_8250;
															goto BgL_zc3z04anonymousza31765ze3z87_2226;
														}
													}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* hashtable-add! */
	BGL_EXPORTED_DEF obj_t BGl_hashtablezd2addz12zc0zz__hashz00(obj_t
		BgL_tablez00_134, obj_t BgL_keyz00_135, obj_t BgL_p2z00_136,
		obj_t BgL_objz00_137, obj_t BgL_initz00_138)
	{
		{	/* Llib/hash.scm 971 */
			{	/* Llib/hash.scm 973 */
				bool_t BgL_test3090z00_8252;

				if (
					(0L == ((long) CINT(STRUCT_REF(BgL_tablez00_134, (int) (5L))) & 8L)))
					{	/* Llib/hash.scm 317 */
						BgL_test3090z00_8252 = ((bool_t) 0);
					}
				else
					{	/* Llib/hash.scm 317 */
						BgL_test3090z00_8252 = ((bool_t) 1);
					}
				if (BgL_test3090z00_8252)
					{	/* Llib/hash.scm 973 */
						return
							BGl_openzd2stringzd2hashtablezd2addz12zc0zz__hashz00
							(BgL_tablez00_134, BgL_keyz00_135, BgL_p2z00_136, BgL_objz00_137,
							BgL_initz00_138);
					}
				else
					{	/* Llib/hash.scm 975 */
						bool_t BgL_test3092z00_8260;

						if (
							(0L ==
								((long) CINT(STRUCT_REF(BgL_tablez00_134, (int) (5L))) & 3L)))
							{	/* Llib/hash.scm 311 */
								BgL_test3092z00_8260 = ((bool_t) 0);
							}
						else
							{	/* Llib/hash.scm 311 */
								BgL_test3092z00_8260 = ((bool_t) 1);
							}
						if (BgL_test3092z00_8260)
							{	/* Llib/hash.scm 975 */
								BGL_TAIL return
									BGl_weakzd2hashtablezd2addz12z12zz__weakhashz00
									(BgL_tablez00_134, BgL_keyz00_135, BgL_p2z00_136,
									BgL_objz00_137, BgL_initz00_138);
							}
						else
							{	/* Llib/hash.scm 975 */
								BGL_TAIL return
									BGl_plainzd2hashtablezd2addz12z12zz__hashz00(BgL_tablez00_134,
									BgL_keyz00_135, BgL_p2z00_136, BgL_objz00_137,
									BgL_initz00_138);
							}
					}
			}
		}

	}



/* &hashtable-add! */
	obj_t BGl_z62hashtablezd2addz12za2zz__hashz00(obj_t BgL_envz00_5524,
		obj_t BgL_tablez00_5525, obj_t BgL_keyz00_5526, obj_t BgL_p2z00_5527,
		obj_t BgL_objz00_5528, obj_t BgL_initz00_5529)
	{
		{	/* Llib/hash.scm 971 */
			{	/* Llib/hash.scm 973 */
				obj_t BgL_auxz00_8276;
				obj_t BgL_auxz00_8269;

				if (PROCEDUREP(BgL_p2z00_5527))
					{	/* Llib/hash.scm 973 */
						BgL_auxz00_8276 = BgL_p2z00_5527;
					}
				else
					{
						obj_t BgL_auxz00_8279;

						BgL_auxz00_8279 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(39265L), BGl_string2651z00zz__hashz00,
							BGl_string2632z00zz__hashz00, BgL_p2z00_5527);
						FAILURE(BgL_auxz00_8279, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_5525))
					{	/* Llib/hash.scm 973 */
						BgL_auxz00_8269 = BgL_tablez00_5525;
					}
				else
					{
						obj_t BgL_auxz00_8272;

						BgL_auxz00_8272 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(39265L), BGl_string2651z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5525);
						FAILURE(BgL_auxz00_8272, BFALSE, BFALSE);
					}
				return
					BGl_hashtablezd2addz12zc0zz__hashz00(BgL_auxz00_8269, BgL_keyz00_5526,
					BgL_auxz00_8276, BgL_objz00_5528, BgL_initz00_5529);
			}
		}

	}



/* open-string-hashtable-add! */
	BGL_EXPORTED_DEF obj_t
		BGl_openzd2stringzd2hashtablezd2addz12zc0zz__hashz00(obj_t BgL_tablez00_139,
		obj_t BgL_keyz00_140, obj_t BgL_procz00_141, obj_t BgL_objz00_142,
		obj_t BgL_initz00_143)
	{
		{	/* Llib/hash.scm 983 */
			{	/* Llib/hash.scm 984 */
				obj_t BgL_siza7eza7_2245;

				BgL_siza7eza7_2245 = STRUCT_REF(BgL_tablez00_139, (int) (1L));
				{	/* Llib/hash.scm 984 */
					obj_t BgL_bucketsz00_2246;

					BgL_bucketsz00_2246 = STRUCT_REF(BgL_tablez00_139, (int) (2L));
					{	/* Llib/hash.scm 985 */
						long BgL_hashz00_2247;

						{	/* Llib/hash.scm 986 */
							long BgL_arg1805z00_2275;

							BgL_arg1805z00_2275 = STRING_LENGTH(BgL_keyz00_140);
							BgL_hashz00_2247 =
								bgl_string_hash(BSTRING_TO_STRING(BgL_keyz00_140),
								(int) (0L), (int) (BgL_arg1805z00_2275));
						}
						{	/* Llib/hash.scm 986 */

							{	/* Llib/hash.scm 988 */
								long BgL_g1073z00_2248;

								{	/* Llib/hash.scm 988 */
									long BgL_n1z00_4545;
									long BgL_n2z00_4546;

									BgL_n1z00_4545 = BgL_hashz00_2247;
									BgL_n2z00_4546 = (long) CINT(BgL_siza7eza7_2245);
									{	/* Llib/hash.scm 988 */
										bool_t BgL_test3096z00_8294;

										{	/* Llib/hash.scm 988 */
											long BgL_arg2156z00_4548;

											BgL_arg2156z00_4548 =
												(((BgL_n1z00_4545) | (BgL_n2z00_4546)) & -2147483648);
											BgL_test3096z00_8294 = (BgL_arg2156z00_4548 == 0L);
										}
										if (BgL_test3096z00_8294)
											{	/* Llib/hash.scm 988 */
												int32_t BgL_arg2153z00_4549;

												{	/* Llib/hash.scm 988 */
													int32_t BgL_arg2154z00_4550;
													int32_t BgL_arg2155z00_4551;

													BgL_arg2154z00_4550 = (int32_t) (BgL_n1z00_4545);
													BgL_arg2155z00_4551 = (int32_t) (BgL_n2z00_4546);
													BgL_arg2153z00_4549 =
														(BgL_arg2154z00_4550 % BgL_arg2155z00_4551);
												}
												{	/* Llib/hash.scm 988 */
													long BgL_arg2257z00_4556;

													BgL_arg2257z00_4556 = (long) (BgL_arg2153z00_4549);
													BgL_g1073z00_2248 = (long) (BgL_arg2257z00_4556);
											}}
										else
											{	/* Llib/hash.scm 988 */
												BgL_g1073z00_2248 = (BgL_n1z00_4545 % BgL_n2z00_4546);
											}
									}
								}
								{
									long BgL_offz00_2250;
									long BgL_iz00_2251;

									BgL_offz00_2250 = BgL_g1073z00_2248;
									BgL_iz00_2251 = 1L;
								BgL_zc3z04anonymousza31784ze3z87_2252:
									{	/* Llib/hash.scm 990 */
										long BgL_off3z00_2253;

										BgL_off3z00_2253 = (BgL_offz00_2250 * 3L);
										if (CBOOL(VECTOR_REF(
													((obj_t) BgL_bucketsz00_2246), BgL_off3z00_2253)))
											{	/* Llib/hash.scm 992 */
												bool_t BgL_test3098z00_8308;

												{	/* Llib/hash.scm 992 */
													obj_t BgL_arg1803z00_2272;

													BgL_arg1803z00_2272 =
														VECTOR_REF(
														((obj_t) BgL_bucketsz00_2246), BgL_off3z00_2253);
													{	/* Llib/hash.scm 992 */
														long BgL_l1z00_4565;

														BgL_l1z00_4565 =
															STRING_LENGTH(((obj_t) BgL_arg1803z00_2272));
														if (
															(BgL_l1z00_4565 == STRING_LENGTH(BgL_keyz00_140)))
															{	/* Llib/hash.scm 992 */
																int BgL_arg2055z00_4568;

																{	/* Llib/hash.scm 992 */
																	char *BgL_auxz00_8319;
																	char *BgL_tmpz00_8316;

																	BgL_auxz00_8319 =
																		BSTRING_TO_STRING(BgL_keyz00_140);
																	BgL_tmpz00_8316 =
																		BSTRING_TO_STRING(
																		((obj_t) BgL_arg1803z00_2272));
																	BgL_arg2055z00_4568 =
																		memcmp(BgL_tmpz00_8316, BgL_auxz00_8319,
																		BgL_l1z00_4565);
																}
																BgL_test3098z00_8308 =
																	((long) (BgL_arg2055z00_4568) == 0L);
															}
														else
															{	/* Llib/hash.scm 992 */
																BgL_test3098z00_8308 = ((bool_t) 0);
															}
													}
												}
												if (BgL_test3098z00_8308)
													{	/* Llib/hash.scm 993 */
														bool_t BgL_test3100z00_8324;

														{	/* Llib/hash.scm 993 */
															long BgL_arg1795z00_2265;

															BgL_arg1795z00_2265 = (BgL_off3z00_2253 + 2L);
															BgL_test3100z00_8324 =
																CBOOL(VECTOR_REF(
																	((obj_t) BgL_bucketsz00_2246),
																	BgL_arg1795z00_2265));
														}
														if (BgL_test3100z00_8324)
															{	/* Llib/hash.scm 994 */
																obj_t BgL_ovalz00_2259;

																{	/* Llib/hash.scm 994 */
																	long BgL_arg1792z00_2262;

																	BgL_arg1792z00_2262 = (BgL_off3z00_2253 + 1L);
																	BgL_ovalz00_2259 =
																		VECTOR_REF(
																		((obj_t) BgL_bucketsz00_2246),
																		BgL_arg1792z00_2262);
																}
																{	/* Llib/hash.scm 995 */
																	long BgL_arg1790z00_2260;
																	obj_t BgL_arg1791z00_2261;

																	BgL_arg1790z00_2260 = (BgL_off3z00_2253 + 1L);
																	BgL_arg1791z00_2261 =
																		BGL_PROCEDURE_CALL2(BgL_procz00_141,
																		BgL_ovalz00_2259, BgL_initz00_143);
																	return VECTOR_SET(((obj_t)
																			BgL_bucketsz00_2246), BgL_arg1790z00_2260,
																		BgL_arg1791z00_2261);
																}
															}
														else
															{	/* Llib/hash.scm 997 */
																long BgL_arg1793z00_2263;
																obj_t BgL_arg1794z00_2264;

																BgL_arg1793z00_2263 = (BgL_off3z00_2253 + 1L);
																BgL_arg1794z00_2264 =
																	BGL_PROCEDURE_CALL2(BgL_procz00_141,
																	BgL_objz00_142, BgL_initz00_143);
																return VECTOR_SET(((obj_t) BgL_bucketsz00_2246),
																	BgL_arg1793z00_2263, BgL_arg1794z00_2264);
															}
													}
												else
													{	/* Llib/hash.scm 999 */
														long BgL_noffz00_2266;

														BgL_noffz00_2266 =
															(BgL_offz00_2250 +
															(BgL_iz00_2251 * BgL_iz00_2251));
														if (
															(BgL_noffz00_2266 >=
																(long) CINT(BgL_siza7eza7_2245)))
															{	/* Llib/hash.scm 1001 */
																long BgL_arg1798z00_2268;
																long BgL_arg1799z00_2269;

																{	/* Llib/hash.scm 1001 */
																	long BgL_n1z00_4592;
																	long BgL_n2z00_4593;

																	BgL_n1z00_4592 = BgL_noffz00_2266;
																	BgL_n2z00_4593 =
																		(long) CINT(BgL_siza7eza7_2245);
																	{	/* Llib/hash.scm 1001 */
																		bool_t BgL_test3102z00_8354;

																		{	/* Llib/hash.scm 1001 */
																			long BgL_arg2156z00_4595;

																			BgL_arg2156z00_4595 =
																				(((BgL_n1z00_4592) | (BgL_n2z00_4593)) &
																				-2147483648);
																			BgL_test3102z00_8354 =
																				(BgL_arg2156z00_4595 == 0L);
																		}
																		if (BgL_test3102z00_8354)
																			{	/* Llib/hash.scm 1001 */
																				int32_t BgL_arg2153z00_4596;

																				{	/* Llib/hash.scm 1001 */
																					int32_t BgL_arg2154z00_4597;
																					int32_t BgL_arg2155z00_4598;

																					BgL_arg2154z00_4597 =
																						(int32_t) (BgL_n1z00_4592);
																					BgL_arg2155z00_4598 =
																						(int32_t) (BgL_n2z00_4593);
																					BgL_arg2153z00_4596 =
																						(BgL_arg2154z00_4597 %
																						BgL_arg2155z00_4598);
																				}
																				{	/* Llib/hash.scm 1001 */
																					long BgL_arg2257z00_4603;

																					BgL_arg2257z00_4603 =
																						(long) (BgL_arg2153z00_4596);
																					BgL_arg1798z00_2268 =
																						(long) (BgL_arg2257z00_4603);
																			}}
																		else
																			{	/* Llib/hash.scm 1001 */
																				BgL_arg1798z00_2268 =
																					(BgL_n1z00_4592 % BgL_n2z00_4593);
																			}
																	}
																}
																BgL_arg1799z00_2269 = (BgL_iz00_2251 + 1L);
																{
																	long BgL_iz00_8365;
																	long BgL_offz00_8364;

																	BgL_offz00_8364 = BgL_arg1798z00_2268;
																	BgL_iz00_8365 = BgL_arg1799z00_2269;
																	BgL_iz00_2251 = BgL_iz00_8365;
																	BgL_offz00_2250 = BgL_offz00_8364;
																	goto BgL_zc3z04anonymousza31784ze3z87_2252;
																}
															}
														else
															{
																long BgL_iz00_8367;
																long BgL_offz00_8366;

																BgL_offz00_8366 = BgL_noffz00_2266;
																BgL_iz00_8367 = (BgL_iz00_2251 + 1L);
																BgL_iz00_2251 = BgL_iz00_8367;
																BgL_offz00_2250 = BgL_offz00_8366;
																goto BgL_zc3z04anonymousza31784ze3z87_2252;
															}
													}
											}
										else
											{	/* Llib/hash.scm 1004 */
												obj_t BgL_arg1804z00_2273;

												BgL_arg1804z00_2273 =
													BGL_PROCEDURE_CALL2(BgL_procz00_141, BgL_objz00_142,
													BgL_initz00_143);
												return
													BGl_openzd2stringzd2hashtablezd2putzf2hashz12z32zz__hashz00
													(BgL_tablez00_139, BgL_keyz00_140,
													BgL_arg1804z00_2273, BINT(BgL_hashz00_2247));
											}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* &open-string-hashtable-add! */
	obj_t BGl_z62openzd2stringzd2hashtablezd2addz12za2zz__hashz00(obj_t
		BgL_envz00_5530, obj_t BgL_tablez00_5531, obj_t BgL_keyz00_5532,
		obj_t BgL_procz00_5533, obj_t BgL_objz00_5534, obj_t BgL_initz00_5535)
	{
		{	/* Llib/hash.scm 983 */
			{	/* Llib/hash.scm 984 */
				obj_t BgL_auxz00_8390;
				obj_t BgL_auxz00_8383;
				obj_t BgL_auxz00_8376;

				if (PROCEDUREP(BgL_procz00_5533))
					{	/* Llib/hash.scm 984 */
						BgL_auxz00_8390 = BgL_procz00_5533;
					}
				else
					{
						obj_t BgL_auxz00_8393;

						BgL_auxz00_8393 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(39821L), BGl_string2652z00zz__hashz00,
							BGl_string2632z00zz__hashz00, BgL_procz00_5533);
						FAILURE(BgL_auxz00_8393, BFALSE, BFALSE);
					}
				if (STRINGP(BgL_keyz00_5532))
					{	/* Llib/hash.scm 984 */
						BgL_auxz00_8383 = BgL_keyz00_5532;
					}
				else
					{
						obj_t BgL_auxz00_8386;

						BgL_auxz00_8386 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(39821L), BGl_string2652z00zz__hashz00,
							BGl_string2641z00zz__hashz00, BgL_keyz00_5532);
						FAILURE(BgL_auxz00_8386, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tablez00_5531))
					{	/* Llib/hash.scm 984 */
						BgL_auxz00_8376 = BgL_tablez00_5531;
					}
				else
					{
						obj_t BgL_auxz00_8379;

						BgL_auxz00_8379 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(39821L), BGl_string2652z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5531);
						FAILURE(BgL_auxz00_8379, BFALSE, BFALSE);
					}
				return
					BGl_openzd2stringzd2hashtablezd2addz12zc0zz__hashz00(BgL_auxz00_8376,
					BgL_auxz00_8383, BgL_auxz00_8390, BgL_objz00_5534, BgL_initz00_5535);
			}
		}

	}



/* plain-hashtable-add! */
	obj_t BGl_plainzd2hashtablezd2addz12z12zz__hashz00(obj_t BgL_tablez00_144,
		obj_t BgL_keyz00_145, obj_t BgL_procz00_146, obj_t BgL_objz00_147,
		obj_t BgL_initz00_148)
	{
		{	/* Llib/hash.scm 1009 */
			{	/* Llib/hash.scm 1010 */
				obj_t BgL_bucketsz00_2276;

				BgL_bucketsz00_2276 = STRUCT_REF(BgL_tablez00_144, (int) (2L));
				{	/* Llib/hash.scm 1011 */
					long BgL_bucketzd2numzd2_2278;

					{	/* Llib/hash.scm 1012 */
						long BgL_arg1829z00_2308;

						{	/* Llib/hash.scm 1012 */
							obj_t BgL_hashnz00_4609;

							BgL_hashnz00_4609 = STRUCT_REF(BgL_tablez00_144, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_4609))
								{	/* Llib/hash.scm 1012 */
									obj_t BgL_arg1278z00_4611;

									BgL_arg1278z00_4611 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_4609, BgL_keyz00_145);
									{	/* Llib/hash.scm 1012 */
										long BgL_nz00_4613;

										BgL_nz00_4613 = (long) CINT(BgL_arg1278z00_4611);
										if ((BgL_nz00_4613 < 0L))
											{	/* Llib/hash.scm 1012 */
												BgL_arg1829z00_2308 = NEG(BgL_nz00_4613);
											}
										else
											{	/* Llib/hash.scm 1012 */
												BgL_arg1829z00_2308 = BgL_nz00_4613;
											}
									}
								}
							else
								{	/* Llib/hash.scm 1012 */
									if ((BgL_hashnz00_4609 == BGl_symbol2620z00zz__hashz00))
										{	/* Llib/hash.scm 1012 */
											BgL_arg1829z00_2308 =
												BGl_objzd2hashze70z35zz__hashz00(BgL_keyz00_145);
										}
									else
										{	/* Llib/hash.scm 1012 */
											BgL_arg1829z00_2308 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_145);
										}
								}
						}
						{	/* Llib/hash.scm 1012 */
							long BgL_n1z00_4617;
							long BgL_n2z00_4618;

							BgL_n1z00_4617 = BgL_arg1829z00_2308;
							BgL_n2z00_4618 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_2276));
							{	/* Llib/hash.scm 1012 */
								bool_t BgL_test3109z00_8418;

								{	/* Llib/hash.scm 1012 */
									long BgL_arg2156z00_4620;

									BgL_arg2156z00_4620 =
										(((BgL_n1z00_4617) | (BgL_n2z00_4618)) & -2147483648);
									BgL_test3109z00_8418 = (BgL_arg2156z00_4620 == 0L);
								}
								if (BgL_test3109z00_8418)
									{	/* Llib/hash.scm 1012 */
										int32_t BgL_arg2153z00_4621;

										{	/* Llib/hash.scm 1012 */
											int32_t BgL_arg2154z00_4622;
											int32_t BgL_arg2155z00_4623;

											BgL_arg2154z00_4622 = (int32_t) (BgL_n1z00_4617);
											BgL_arg2155z00_4623 = (int32_t) (BgL_n2z00_4618);
											BgL_arg2153z00_4621 =
												(BgL_arg2154z00_4622 % BgL_arg2155z00_4623);
										}
										{	/* Llib/hash.scm 1012 */
											long BgL_arg2257z00_4628;

											BgL_arg2257z00_4628 = (long) (BgL_arg2153z00_4621);
											BgL_bucketzd2numzd2_2278 = (long) (BgL_arg2257z00_4628);
									}}
								else
									{	/* Llib/hash.scm 1012 */
										BgL_bucketzd2numzd2_2278 =
											(BgL_n1z00_4617 % BgL_n2z00_4618);
									}
							}
						}
					}
					{	/* Llib/hash.scm 1012 */
						obj_t BgL_bucketz00_2279;

						BgL_bucketz00_2279 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_2276), BgL_bucketzd2numzd2_2278);
						{	/* Llib/hash.scm 1013 */
							obj_t BgL_maxzd2bucketzd2lenz00_2280;

							BgL_maxzd2bucketzd2lenz00_2280 =
								STRUCT_REF(BgL_tablez00_144, (int) (1L));
							{	/* Llib/hash.scm 1014 */

								if (NULLP(BgL_bucketz00_2279))
									{	/* Llib/hash.scm 1016 */
										obj_t BgL_vz00_2282;

										BgL_vz00_2282 =
											BGL_PROCEDURE_CALL2(BgL_procz00_146, BgL_objz00_147,
											BgL_initz00_148);
										{	/* Llib/hash.scm 1017 */
											long BgL_arg1807z00_2283;

											BgL_arg1807z00_2283 =
												(
												(long) CINT(STRUCT_REF(BgL_tablez00_144,
														(int) (0L))) + 1L);
											{	/* Llib/hash.scm 1017 */
												obj_t BgL_auxz00_8444;
												int BgL_tmpz00_8442;

												BgL_auxz00_8444 = BINT(BgL_arg1807z00_2283);
												BgL_tmpz00_8442 = (int) (0L);
												STRUCT_SET(BgL_tablez00_144, BgL_tmpz00_8442,
													BgL_auxz00_8444);
										}}
										{	/* Llib/hash.scm 1018 */
											obj_t BgL_arg1809z00_2285;

											{	/* Llib/hash.scm 1018 */
												obj_t BgL_arg1811z00_2286;

												BgL_arg1811z00_2286 =
													MAKE_YOUNG_PAIR(BgL_keyz00_145, BgL_vz00_2282);
												{	/* Llib/hash.scm 1018 */
													obj_t BgL_list1812z00_2287;

													BgL_list1812z00_2287 =
														MAKE_YOUNG_PAIR(BgL_arg1811z00_2286, BNIL);
													BgL_arg1809z00_2285 = BgL_list1812z00_2287;
											}}
											VECTOR_SET(
												((obj_t) BgL_bucketsz00_2276), BgL_bucketzd2numzd2_2278,
												BgL_arg1809z00_2285);
										}
										return BgL_vz00_2282;
									}
								else
									{
										obj_t BgL_buckz00_2289;
										long BgL_countz00_2290;

										BgL_buckz00_2289 = BgL_bucketz00_2279;
										BgL_countz00_2290 = 0L;
									BgL_zc3z04anonymousza31813ze3z87_2291:
										if (NULLP(BgL_buckz00_2289))
											{	/* Llib/hash.scm 1024 */
												obj_t BgL_vz00_2293;

												BgL_vz00_2293 =
													BGL_PROCEDURE_CALL2(BgL_procz00_146, BgL_objz00_147,
													BgL_initz00_148);
												{	/* Llib/hash.scm 1025 */
													long BgL_arg1815z00_2294;

													BgL_arg1815z00_2294 =
														(
														(long) CINT(STRUCT_REF(BgL_tablez00_144,
																(int) (0L))) + 1L);
													{	/* Llib/hash.scm 1025 */
														obj_t BgL_auxz00_8464;
														int BgL_tmpz00_8462;

														BgL_auxz00_8464 = BINT(BgL_arg1815z00_2294);
														BgL_tmpz00_8462 = (int) (0L);
														STRUCT_SET(BgL_tablez00_144, BgL_tmpz00_8462,
															BgL_auxz00_8464);
												}}
												{	/* Llib/hash.scm 1026 */
													obj_t BgL_arg1817z00_2296;

													{	/* Llib/hash.scm 1026 */
														obj_t BgL_arg1818z00_2297;

														BgL_arg1818z00_2297 =
															MAKE_YOUNG_PAIR(BgL_keyz00_145, BgL_vz00_2293);
														BgL_arg1817z00_2296 =
															MAKE_YOUNG_PAIR(BgL_arg1818z00_2297,
															BgL_bucketz00_2279);
													}
													VECTOR_SET(
														((obj_t) BgL_bucketsz00_2276),
														BgL_bucketzd2numzd2_2278, BgL_arg1817z00_2296);
												}
												if (
													(BgL_countz00_2290 >
														(long) CINT(BgL_maxzd2bucketzd2lenz00_2280)))
													{	/* Llib/hash.scm 1027 */
														BGl_plainzd2hashtablezd2expandz12z12zz__hashz00
															(BgL_tablez00_144);
													}
												else
													{	/* Llib/hash.scm 1027 */
														BFALSE;
													}
												return BgL_vz00_2293;
											}
										else
											{	/* Llib/hash.scm 1030 */
												bool_t BgL_test3113z00_8475;

												{	/* Llib/hash.scm 1030 */
													obj_t BgL_arg1828z00_2306;

													{	/* Llib/hash.scm 1030 */
														obj_t BgL_pairz00_4649;

														BgL_pairz00_4649 = CAR(((obj_t) BgL_buckz00_2289));
														BgL_arg1828z00_2306 = CAR(BgL_pairz00_4649);
													}
													{	/* Llib/hash.scm 1030 */
														obj_t BgL_eqtz00_4650;

														BgL_eqtz00_4650 =
															STRUCT_REF(BgL_tablez00_144, (int) (3L));
														if (PROCEDUREP(BgL_eqtz00_4650))
															{	/* Llib/hash.scm 1030 */
																BgL_test3113z00_8475 =
																	CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_4650,
																		BgL_arg1828z00_2306, BgL_keyz00_145));
															}
														else
															{	/* Llib/hash.scm 1030 */
																if ((BgL_arg1828z00_2306 == BgL_keyz00_145))
																	{	/* Llib/hash.scm 1030 */
																		BgL_test3113z00_8475 = ((bool_t) 1);
																	}
																else
																	{	/* Llib/hash.scm 1030 */
																		if (STRINGP(BgL_arg1828z00_2306))
																			{	/* Llib/hash.scm 1030 */
																				if (STRINGP(BgL_keyz00_145))
																					{	/* Llib/hash.scm 1030 */
																						long BgL_l1z00_4657;

																						BgL_l1z00_4657 =
																							STRING_LENGTH
																							(BgL_arg1828z00_2306);
																						if ((BgL_l1z00_4657 ==
																								STRING_LENGTH(BgL_keyz00_145)))
																							{	/* Llib/hash.scm 1030 */
																								int BgL_arg2055z00_4660;

																								{	/* Llib/hash.scm 1030 */
																									char *BgL_auxz00_8501;
																									char *BgL_tmpz00_8499;

																									BgL_auxz00_8501 =
																										BSTRING_TO_STRING
																										(BgL_keyz00_145);
																									BgL_tmpz00_8499 =
																										BSTRING_TO_STRING
																										(BgL_arg1828z00_2306);
																									BgL_arg2055z00_4660 =
																										memcmp(BgL_tmpz00_8499,
																										BgL_auxz00_8501,
																										BgL_l1z00_4657);
																								}
																								BgL_test3113z00_8475 =
																									(
																									(long) (BgL_arg2055z00_4660)
																									== 0L);
																							}
																						else
																							{	/* Llib/hash.scm 1030 */
																								BgL_test3113z00_8475 =
																									((bool_t) 0);
																							}
																					}
																				else
																					{	/* Llib/hash.scm 1030 */
																						BgL_test3113z00_8475 = ((bool_t) 0);
																					}
																			}
																		else
																			{	/* Llib/hash.scm 1030 */
																				BgL_test3113z00_8475 = ((bool_t) 0);
																			}
																	}
															}
													}
												}
												if (BgL_test3113z00_8475)
													{	/* Llib/hash.scm 1031 */
														obj_t BgL_resz00_2301;

														{	/* Llib/hash.scm 1031 */
															obj_t BgL_arg1824z00_2303;

															{	/* Llib/hash.scm 1031 */
																obj_t BgL_pairz00_4669;

																BgL_pairz00_4669 =
																	CAR(((obj_t) BgL_buckz00_2289));
																BgL_arg1824z00_2303 = CDR(BgL_pairz00_4669);
															}
															BgL_resz00_2301 =
																BGL_PROCEDURE_CALL2(BgL_procz00_146,
																BgL_objz00_147, BgL_arg1824z00_2303);
														}
														{	/* Llib/hash.scm 1032 */
															obj_t BgL_arg1822z00_2302;

															BgL_arg1822z00_2302 =
																CAR(((obj_t) BgL_buckz00_2289));
															{	/* Llib/hash.scm 1032 */
																obj_t BgL_tmpz00_8516;

																BgL_tmpz00_8516 = ((obj_t) BgL_arg1822z00_2302);
																SET_CDR(BgL_tmpz00_8516, BgL_resz00_2301);
															}
														}
														return BgL_resz00_2301;
													}
												else
													{	/* Llib/hash.scm 1035 */
														obj_t BgL_arg1825z00_2304;
														long BgL_arg1827z00_2305;

														BgL_arg1825z00_2304 =
															CDR(((obj_t) BgL_buckz00_2289));
														BgL_arg1827z00_2305 = (BgL_countz00_2290 + 1L);
														{
															long BgL_countz00_8523;
															obj_t BgL_buckz00_8522;

															BgL_buckz00_8522 = BgL_arg1825z00_2304;
															BgL_countz00_8523 = BgL_arg1827z00_2305;
															BgL_countz00_2290 = BgL_countz00_8523;
															BgL_buckz00_2289 = BgL_buckz00_8522;
															goto BgL_zc3z04anonymousza31813ze3z87_2291;
														}
													}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* hashtable-remove! */
	BGL_EXPORTED_DEF bool_t BGl_hashtablezd2removez12zc0zz__hashz00(obj_t
		BgL_tablez00_149, obj_t BgL_keyz00_150)
	{
		{	/* Llib/hash.scm 1040 */
			{	/* Llib/hash.scm 1042 */
				bool_t BgL_test3119z00_8524;

				if (
					(0L == ((long) CINT(STRUCT_REF(BgL_tablez00_149, (int) (5L))) & 8L)))
					{	/* Llib/hash.scm 317 */
						BgL_test3119z00_8524 = ((bool_t) 0);
					}
				else
					{	/* Llib/hash.scm 317 */
						BgL_test3119z00_8524 = ((bool_t) 1);
					}
				if (BgL_test3119z00_8524)
					{	/* Llib/hash.scm 1042 */
						return
							CBOOL(BGl_openzd2stringzd2hashtablezd2removez12zc0zz__hashz00
							(BgL_tablez00_149, BgL_keyz00_150));
					}
				else
					{	/* Llib/hash.scm 1044 */
						bool_t BgL_test3121z00_8533;

						if (
							(0L ==
								((long) CINT(STRUCT_REF(BgL_tablez00_149, (int) (5L))) & 3L)))
							{	/* Llib/hash.scm 311 */
								BgL_test3121z00_8533 = ((bool_t) 0);
							}
						else
							{	/* Llib/hash.scm 311 */
								BgL_test3121z00_8533 = ((bool_t) 1);
							}
						if (BgL_test3121z00_8533)
							{	/* Llib/hash.scm 1044 */
								return
									CBOOL(BGl_weakzd2hashtablezd2removez12z12zz__weakhashz00
									(BgL_tablez00_149, BgL_keyz00_150));
							}
						else
							{	/* Llib/hash.scm 1044 */
								BGL_TAIL return
									BGl_plainzd2hashtablezd2removez12z12zz__hashz00
									(BgL_tablez00_149, BgL_keyz00_150);
							}
					}
			}
		}

	}



/* &hashtable-remove! */
	obj_t BGl_z62hashtablezd2removez12za2zz__hashz00(obj_t BgL_envz00_5536,
		obj_t BgL_tablez00_5537, obj_t BgL_keyz00_5538)
	{
		{	/* Llib/hash.scm 1040 */
			{	/* Llib/hash.scm 1042 */
				bool_t BgL_tmpz00_8543;

				{	/* Llib/hash.scm 1042 */
					obj_t BgL_auxz00_8544;

					if (STRUCTP(BgL_tablez00_5537))
						{	/* Llib/hash.scm 1042 */
							BgL_auxz00_8544 = BgL_tablez00_5537;
						}
					else
						{
							obj_t BgL_auxz00_8547;

							BgL_auxz00_8547 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
								BINT(42156L), BGl_string2653z00zz__hashz00,
								BGl_string2625z00zz__hashz00, BgL_tablez00_5537);
							FAILURE(BgL_auxz00_8547, BFALSE, BFALSE);
						}
					BgL_tmpz00_8543 =
						BGl_hashtablezd2removez12zc0zz__hashz00(BgL_auxz00_8544,
						BgL_keyz00_5538);
				}
				return BBOOL(BgL_tmpz00_8543);
			}
		}

	}



/* open-string-hashtable-remove! */
	BGL_EXPORTED_DEF obj_t
		BGl_openzd2stringzd2hashtablezd2removez12zc0zz__hashz00(obj_t BgL_tz00_151,
		obj_t BgL_keyz00_152)
	{
		{	/* Llib/hash.scm 1052 */
			{	/* Llib/hash.scm 1053 */
				obj_t BgL_siza7eza7_2311;

				BgL_siza7eza7_2311 = STRUCT_REF(BgL_tz00_151, (int) (1L));
				{	/* Llib/hash.scm 1053 */
					obj_t BgL_bucketsz00_2312;

					BgL_bucketsz00_2312 = STRUCT_REF(BgL_tz00_151, (int) (2L));
					{	/* Llib/hash.scm 1054 */
						long BgL_hashz00_2313;

						{	/* Llib/hash.scm 1055 */
							long BgL_arg1846z00_2333;

							BgL_arg1846z00_2333 = STRING_LENGTH(BgL_keyz00_152);
							BgL_hashz00_2313 =
								bgl_string_hash(BSTRING_TO_STRING(BgL_keyz00_152),
								(int) (0L), (int) (BgL_arg1846z00_2333));
						}
						{	/* Llib/hash.scm 1055 */

							{	/* Llib/hash.scm 1057 */
								long BgL_g1074z00_2314;

								{	/* Llib/hash.scm 1057 */
									long BgL_n1z00_4693;
									long BgL_n2z00_4694;

									BgL_n1z00_4693 = BgL_hashz00_2313;
									BgL_n2z00_4694 = (long) CINT(BgL_siza7eza7_2311);
									{	/* Llib/hash.scm 1057 */
										bool_t BgL_test3124z00_8563;

										{	/* Llib/hash.scm 1057 */
											long BgL_arg2156z00_4696;

											BgL_arg2156z00_4696 =
												(((BgL_n1z00_4693) | (BgL_n2z00_4694)) & -2147483648);
											BgL_test3124z00_8563 = (BgL_arg2156z00_4696 == 0L);
										}
										if (BgL_test3124z00_8563)
											{	/* Llib/hash.scm 1057 */
												int32_t BgL_arg2153z00_4697;

												{	/* Llib/hash.scm 1057 */
													int32_t BgL_arg2154z00_4698;
													int32_t BgL_arg2155z00_4699;

													BgL_arg2154z00_4698 = (int32_t) (BgL_n1z00_4693);
													BgL_arg2155z00_4699 = (int32_t) (BgL_n2z00_4694);
													BgL_arg2153z00_4697 =
														(BgL_arg2154z00_4698 % BgL_arg2155z00_4699);
												}
												{	/* Llib/hash.scm 1057 */
													long BgL_arg2257z00_4704;

													BgL_arg2257z00_4704 = (long) (BgL_arg2153z00_4697);
													BgL_g1074z00_2314 = (long) (BgL_arg2257z00_4704);
											}}
										else
											{	/* Llib/hash.scm 1057 */
												BgL_g1074z00_2314 = (BgL_n1z00_4693 % BgL_n2z00_4694);
											}
									}
								}
								{
									long BgL_offz00_2316;
									long BgL_iz00_2317;

									BgL_offz00_2316 = BgL_g1074z00_2314;
									BgL_iz00_2317 = 1L;
								BgL_zc3z04anonymousza31832ze3z87_2318:
									{	/* Llib/hash.scm 1059 */
										long BgL_off3z00_2319;

										BgL_off3z00_2319 = (BgL_offz00_2316 * 3L);
										if (CBOOL(VECTOR_REF(
													((obj_t) BgL_bucketsz00_2312), BgL_off3z00_2319)))
											{	/* Llib/hash.scm 1061 */
												bool_t BgL_test3126z00_8577;

												{	/* Llib/hash.scm 1061 */
													obj_t BgL_arg1845z00_2331;

													BgL_arg1845z00_2331 =
														VECTOR_REF(
														((obj_t) BgL_bucketsz00_2312), BgL_off3z00_2319);
													{	/* Llib/hash.scm 1061 */
														long BgL_l1z00_4713;

														BgL_l1z00_4713 =
															STRING_LENGTH(((obj_t) BgL_arg1845z00_2331));
														if (
															(BgL_l1z00_4713 == STRING_LENGTH(BgL_keyz00_152)))
															{	/* Llib/hash.scm 1061 */
																int BgL_arg2055z00_4716;

																{	/* Llib/hash.scm 1061 */
																	char *BgL_auxz00_8588;
																	char *BgL_tmpz00_8585;

																	BgL_auxz00_8588 =
																		BSTRING_TO_STRING(BgL_keyz00_152);
																	BgL_tmpz00_8585 =
																		BSTRING_TO_STRING(
																		((obj_t) BgL_arg1845z00_2331));
																	BgL_arg2055z00_4716 =
																		memcmp(BgL_tmpz00_8585, BgL_auxz00_8588,
																		BgL_l1z00_4713);
																}
																BgL_test3126z00_8577 =
																	((long) (BgL_arg2055z00_4716) == 0L);
															}
														else
															{	/* Llib/hash.scm 1061 */
																BgL_test3126z00_8577 = ((bool_t) 0);
															}
													}
												}
												if (BgL_test3126z00_8577)
													{	/* Llib/hash.scm 1061 */
														{	/* Llib/hash.scm 1063 */
															long BgL_arg1836z00_2323;

															BgL_arg1836z00_2323 = (BgL_off3z00_2319 + 1L);
															VECTOR_SET(
																((obj_t) BgL_bucketsz00_2312),
																BgL_arg1836z00_2323, BFALSE);
														}
														{	/* Llib/hash.scm 1064 */
															long BgL_arg1837z00_2324;

															BgL_arg1837z00_2324 = (BgL_off3z00_2319 + 2L);
															VECTOR_SET(
																((obj_t) BgL_bucketsz00_2312),
																BgL_arg1837z00_2324, BFALSE);
														}
														{	/* Llib/hash.scm 1326 */
															long BgL_arg1988z00_4728;

															BgL_arg1988z00_4728 =
																(
																(long) CINT(STRUCT_REF(BgL_tz00_151,
																		(int) (6L))) + 1L);
															{	/* Llib/hash.scm 1296 */
																obj_t BgL_auxz00_8605;
																int BgL_tmpz00_8603;

																BgL_auxz00_8605 = BINT(BgL_arg1988z00_4728);
																BgL_tmpz00_8603 = (int) (6L);
																return
																	STRUCT_SET(BgL_tz00_151, BgL_tmpz00_8603,
																	BgL_auxz00_8605);
															}
														}
													}
												else
													{	/* Llib/hash.scm 1066 */
														long BgL_noffz00_2325;

														BgL_noffz00_2325 =
															(BgL_offz00_2316 +
															(BgL_iz00_2317 * BgL_iz00_2317));
														if (
															(BgL_noffz00_2325 >=
																(long) CINT(BgL_siza7eza7_2311)))
															{	/* Llib/hash.scm 1068 */
																long BgL_arg1839z00_2327;
																long BgL_arg1840z00_2328;

																{	/* Llib/hash.scm 1068 */
																	long BgL_n1z00_4739;
																	long BgL_n2z00_4740;

																	BgL_n1z00_4739 = BgL_noffz00_2325;
																	BgL_n2z00_4740 =
																		(long) CINT(BgL_siza7eza7_2311);
																	{	/* Llib/hash.scm 1068 */
																		bool_t BgL_test3129z00_8614;

																		{	/* Llib/hash.scm 1068 */
																			long BgL_arg2156z00_4742;

																			BgL_arg2156z00_4742 =
																				(((BgL_n1z00_4739) | (BgL_n2z00_4740)) &
																				-2147483648);
																			BgL_test3129z00_8614 =
																				(BgL_arg2156z00_4742 == 0L);
																		}
																		if (BgL_test3129z00_8614)
																			{	/* Llib/hash.scm 1068 */
																				int32_t BgL_arg2153z00_4743;

																				{	/* Llib/hash.scm 1068 */
																					int32_t BgL_arg2154z00_4744;
																					int32_t BgL_arg2155z00_4745;

																					BgL_arg2154z00_4744 =
																						(int32_t) (BgL_n1z00_4739);
																					BgL_arg2155z00_4745 =
																						(int32_t) (BgL_n2z00_4740);
																					BgL_arg2153z00_4743 =
																						(BgL_arg2154z00_4744 %
																						BgL_arg2155z00_4745);
																				}
																				{	/* Llib/hash.scm 1068 */
																					long BgL_arg2257z00_4750;

																					BgL_arg2257z00_4750 =
																						(long) (BgL_arg2153z00_4743);
																					BgL_arg1839z00_2327 =
																						(long) (BgL_arg2257z00_4750);
																			}}
																		else
																			{	/* Llib/hash.scm 1068 */
																				BgL_arg1839z00_2327 =
																					(BgL_n1z00_4739 % BgL_n2z00_4740);
																			}
																	}
																}
																BgL_arg1840z00_2328 = (BgL_iz00_2317 + 1L);
																{
																	long BgL_iz00_8625;
																	long BgL_offz00_8624;

																	BgL_offz00_8624 = BgL_arg1839z00_2327;
																	BgL_iz00_8625 = BgL_arg1840z00_2328;
																	BgL_iz00_2317 = BgL_iz00_8625;
																	BgL_offz00_2316 = BgL_offz00_8624;
																	goto BgL_zc3z04anonymousza31832ze3z87_2318;
																}
															}
														else
															{
																long BgL_iz00_8627;
																long BgL_offz00_8626;

																BgL_offz00_8626 = BgL_noffz00_2325;
																BgL_iz00_8627 = (BgL_iz00_2317 + 1L);
																BgL_iz00_2317 = BgL_iz00_8627;
																BgL_offz00_2316 = BgL_offz00_8626;
																goto BgL_zc3z04anonymousza31832ze3z87_2318;
															}
													}
											}
										else
											{	/* Llib/hash.scm 1060 */
												return BFALSE;
											}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* &open-string-hashtable-remove! */
	obj_t BGl_z62openzd2stringzd2hashtablezd2removez12za2zz__hashz00(obj_t
		BgL_envz00_5539, obj_t BgL_tz00_5540, obj_t BgL_keyz00_5541)
	{
		{	/* Llib/hash.scm 1052 */
			{	/* Llib/hash.scm 1053 */
				obj_t BgL_auxz00_8636;
				obj_t BgL_auxz00_8629;

				if (STRINGP(BgL_keyz00_5541))
					{	/* Llib/hash.scm 1053 */
						BgL_auxz00_8636 = BgL_keyz00_5541;
					}
				else
					{
						obj_t BgL_auxz00_8639;

						BgL_auxz00_8639 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(42642L), BGl_string2654z00zz__hashz00,
							BGl_string2641z00zz__hashz00, BgL_keyz00_5541);
						FAILURE(BgL_auxz00_8639, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_tz00_5540))
					{	/* Llib/hash.scm 1053 */
						BgL_auxz00_8629 = BgL_tz00_5540;
					}
				else
					{
						obj_t BgL_auxz00_8632;

						BgL_auxz00_8632 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(42642L), BGl_string2654z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tz00_5540);
						FAILURE(BgL_auxz00_8632, BFALSE, BFALSE);
					}
				return
					BGl_openzd2stringzd2hashtablezd2removez12zc0zz__hashz00
					(BgL_auxz00_8629, BgL_auxz00_8636);
			}
		}

	}



/* plain-hashtable-remove! */
	bool_t BGl_plainzd2hashtablezd2removez12z12zz__hashz00(obj_t BgL_tablez00_153,
		obj_t BgL_keyz00_154)
	{
		{	/* Llib/hash.scm 1074 */
			{	/* Llib/hash.scm 1075 */
				obj_t BgL_bucketsz00_2334;

				BgL_bucketsz00_2334 = STRUCT_REF(BgL_tablez00_153, (int) (2L));
				{	/* Llib/hash.scm 1076 */
					long BgL_bucketzd2numzd2_2336;

					{	/* Llib/hash.scm 1077 */
						long BgL_arg1864z00_2359;

						{	/* Llib/hash.scm 1077 */
							obj_t BgL_hashnz00_4756;

							BgL_hashnz00_4756 = STRUCT_REF(BgL_tablez00_153, (int) (4L));
							if (PROCEDUREP(BgL_hashnz00_4756))
								{	/* Llib/hash.scm 1077 */
									obj_t BgL_arg1278z00_4758;

									BgL_arg1278z00_4758 =
										BGL_PROCEDURE_CALL1(BgL_hashnz00_4756, BgL_keyz00_154);
									{	/* Llib/hash.scm 1077 */
										long BgL_nz00_4760;

										BgL_nz00_4760 = (long) CINT(BgL_arg1278z00_4758);
										if ((BgL_nz00_4760 < 0L))
											{	/* Llib/hash.scm 1077 */
												BgL_arg1864z00_2359 = NEG(BgL_nz00_4760);
											}
										else
											{	/* Llib/hash.scm 1077 */
												BgL_arg1864z00_2359 = BgL_nz00_4760;
											}
									}
								}
							else
								{	/* Llib/hash.scm 1077 */
									if ((BgL_hashnz00_4756 == BGl_symbol2620z00zz__hashz00))
										{	/* Llib/hash.scm 1077 */
											BgL_arg1864z00_2359 =
												BGl_objzd2hashze70z35zz__hashz00(BgL_keyz00_154);
										}
									else
										{	/* Llib/hash.scm 1077 */
											BgL_arg1864z00_2359 =
												BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_154);
										}
								}
						}
						{	/* Llib/hash.scm 1077 */
							long BgL_n1z00_4764;
							long BgL_n2z00_4765;

							BgL_n1z00_4764 = BgL_arg1864z00_2359;
							BgL_n2z00_4765 = VECTOR_LENGTH(((obj_t) BgL_bucketsz00_2334));
							{	/* Llib/hash.scm 1077 */
								bool_t BgL_test3135z00_8664;

								{	/* Llib/hash.scm 1077 */
									long BgL_arg2156z00_4767;

									BgL_arg2156z00_4767 =
										(((BgL_n1z00_4764) | (BgL_n2z00_4765)) & -2147483648);
									BgL_test3135z00_8664 = (BgL_arg2156z00_4767 == 0L);
								}
								if (BgL_test3135z00_8664)
									{	/* Llib/hash.scm 1077 */
										int32_t BgL_arg2153z00_4768;

										{	/* Llib/hash.scm 1077 */
											int32_t BgL_arg2154z00_4769;
											int32_t BgL_arg2155z00_4770;

											BgL_arg2154z00_4769 = (int32_t) (BgL_n1z00_4764);
											BgL_arg2155z00_4770 = (int32_t) (BgL_n2z00_4765);
											BgL_arg2153z00_4768 =
												(BgL_arg2154z00_4769 % BgL_arg2155z00_4770);
										}
										{	/* Llib/hash.scm 1077 */
											long BgL_arg2257z00_4775;

											BgL_arg2257z00_4775 = (long) (BgL_arg2153z00_4768);
											BgL_bucketzd2numzd2_2336 = (long) (BgL_arg2257z00_4775);
									}}
								else
									{	/* Llib/hash.scm 1077 */
										BgL_bucketzd2numzd2_2336 =
											(BgL_n1z00_4764 % BgL_n2z00_4765);
									}
							}
						}
					}
					{	/* Llib/hash.scm 1077 */
						obj_t BgL_bucketz00_2337;

						BgL_bucketz00_2337 =
							VECTOR_REF(
							((obj_t) BgL_bucketsz00_2334), BgL_bucketzd2numzd2_2336);
						{	/* Llib/hash.scm 1078 */

							if (NULLP(BgL_bucketz00_2337))
								{	/* Llib/hash.scm 1080 */
									return ((bool_t) 0);
								}
							else
								{	/* Llib/hash.scm 1082 */
									bool_t BgL_test3137z00_8677;

									{	/* Llib/hash.scm 1082 */
										obj_t BgL_arg1863z00_2358;

										{	/* Llib/hash.scm 1082 */
											obj_t BgL_pairz00_4782;

											BgL_pairz00_4782 = CAR(((obj_t) BgL_bucketz00_2337));
											BgL_arg1863z00_2358 = CAR(BgL_pairz00_4782);
										}
										{	/* Llib/hash.scm 1082 */
											obj_t BgL_eqtz00_4783;

											BgL_eqtz00_4783 =
												STRUCT_REF(BgL_tablez00_153, (int) (3L));
											if (PROCEDUREP(BgL_eqtz00_4783))
												{	/* Llib/hash.scm 1082 */
													BgL_test3137z00_8677 =
														CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_4783,
															BgL_arg1863z00_2358, BgL_keyz00_154));
												}
											else
												{	/* Llib/hash.scm 1082 */
													if ((BgL_arg1863z00_2358 == BgL_keyz00_154))
														{	/* Llib/hash.scm 1082 */
															BgL_test3137z00_8677 = ((bool_t) 1);
														}
													else
														{	/* Llib/hash.scm 1082 */
															if (STRINGP(BgL_arg1863z00_2358))
																{	/* Llib/hash.scm 1082 */
																	if (STRINGP(BgL_keyz00_154))
																		{	/* Llib/hash.scm 1082 */
																			long BgL_l1z00_4790;

																			BgL_l1z00_4790 =
																				STRING_LENGTH(BgL_arg1863z00_2358);
																			if (
																				(BgL_l1z00_4790 ==
																					STRING_LENGTH(BgL_keyz00_154)))
																				{	/* Llib/hash.scm 1082 */
																					int BgL_arg2055z00_4793;

																					{	/* Llib/hash.scm 1082 */
																						char *BgL_auxz00_8703;
																						char *BgL_tmpz00_8701;

																						BgL_auxz00_8703 =
																							BSTRING_TO_STRING(BgL_keyz00_154);
																						BgL_tmpz00_8701 =
																							BSTRING_TO_STRING
																							(BgL_arg1863z00_2358);
																						BgL_arg2055z00_4793 =
																							memcmp(BgL_tmpz00_8701,
																							BgL_auxz00_8703, BgL_l1z00_4790);
																					}
																					BgL_test3137z00_8677 =
																						(
																						(long) (BgL_arg2055z00_4793) == 0L);
																				}
																			else
																				{	/* Llib/hash.scm 1082 */
																					BgL_test3137z00_8677 = ((bool_t) 0);
																				}
																		}
																	else
																		{	/* Llib/hash.scm 1082 */
																			BgL_test3137z00_8677 = ((bool_t) 0);
																		}
																}
															else
																{	/* Llib/hash.scm 1082 */
																	BgL_test3137z00_8677 = ((bool_t) 0);
																}
														}
												}
										}
									}
									if (BgL_test3137z00_8677)
										{	/* Llib/hash.scm 1082 */
											{	/* Llib/hash.scm 1083 */
												obj_t BgL_arg1851z00_2341;

												BgL_arg1851z00_2341 = CDR(((obj_t) BgL_bucketz00_2337));
												VECTOR_SET(
													((obj_t) BgL_bucketsz00_2334),
													BgL_bucketzd2numzd2_2336, BgL_arg1851z00_2341);
											}
											{	/* Llib/hash.scm 1084 */
												long BgL_arg1852z00_2342;

												BgL_arg1852z00_2342 =
													(
													(long) CINT(STRUCT_REF(BgL_tablez00_153,
															(int) (0L))) - 1L);
												{	/* Llib/hash.scm 1084 */
													obj_t BgL_auxz00_8718;
													int BgL_tmpz00_8716;

													BgL_auxz00_8718 = BINT(BgL_arg1852z00_2342);
													BgL_tmpz00_8716 = (int) (0L);
													STRUCT_SET(BgL_tablez00_153, BgL_tmpz00_8716,
														BgL_auxz00_8718);
											}}
											return ((bool_t) 1);
										}
									else
										{	/* Llib/hash.scm 1087 */
											obj_t BgL_g1075z00_2344;

											BgL_g1075z00_2344 = CDR(((obj_t) BgL_bucketz00_2337));
											{
												obj_t BgL_bucketz00_2346;
												obj_t BgL_prevz00_2347;

												BgL_bucketz00_2346 = BgL_g1075z00_2344;
												BgL_prevz00_2347 = BgL_bucketz00_2337;
											BgL_zc3z04anonymousza31854ze3z87_2348:
												if (PAIRP(BgL_bucketz00_2346))
													{	/* Llib/hash.scm 1090 */
														bool_t BgL_test3144z00_8725;

														{	/* Llib/hash.scm 1090 */
															obj_t BgL_arg1862z00_2356;

															BgL_arg1862z00_2356 =
																CAR(CAR(BgL_bucketz00_2346));
															{	/* Llib/hash.scm 1090 */
																obj_t BgL_eqtz00_4810;

																BgL_eqtz00_4810 =
																	STRUCT_REF(BgL_tablez00_153, (int) (3L));
																if (PROCEDUREP(BgL_eqtz00_4810))
																	{	/* Llib/hash.scm 1090 */
																		BgL_test3144z00_8725 =
																			CBOOL(BGL_PROCEDURE_CALL2(BgL_eqtz00_4810,
																				BgL_arg1862z00_2356, BgL_keyz00_154));
																	}
																else
																	{	/* Llib/hash.scm 1090 */
																		if ((BgL_arg1862z00_2356 == BgL_keyz00_154))
																			{	/* Llib/hash.scm 1090 */
																				BgL_test3144z00_8725 = ((bool_t) 1);
																			}
																		else
																			{	/* Llib/hash.scm 1090 */
																				if (STRINGP(BgL_arg1862z00_2356))
																					{	/* Llib/hash.scm 1090 */
																						if (STRINGP(BgL_keyz00_154))
																							{	/* Llib/hash.scm 1090 */
																								long BgL_l1z00_4817;

																								BgL_l1z00_4817 =
																									STRING_LENGTH
																									(BgL_arg1862z00_2356);
																								if ((BgL_l1z00_4817 ==
																										STRING_LENGTH
																										(BgL_keyz00_154)))
																									{	/* Llib/hash.scm 1090 */
																										int BgL_arg2055z00_4820;

																										{	/* Llib/hash.scm 1090 */
																											char *BgL_auxz00_8750;
																											char *BgL_tmpz00_8748;

																											BgL_auxz00_8750 =
																												BSTRING_TO_STRING
																												(BgL_keyz00_154);
																											BgL_tmpz00_8748 =
																												BSTRING_TO_STRING
																												(BgL_arg1862z00_2356);
																											BgL_arg2055z00_4820 =
																												memcmp(BgL_tmpz00_8748,
																												BgL_auxz00_8750,
																												BgL_l1z00_4817);
																										}
																										BgL_test3144z00_8725 =
																											(
																											(long)
																											(BgL_arg2055z00_4820) ==
																											0L);
																									}
																								else
																									{	/* Llib/hash.scm 1090 */
																										BgL_test3144z00_8725 =
																											((bool_t) 0);
																									}
																							}
																						else
																							{	/* Llib/hash.scm 1090 */
																								BgL_test3144z00_8725 =
																									((bool_t) 0);
																							}
																					}
																				else
																					{	/* Llib/hash.scm 1090 */
																						BgL_test3144z00_8725 = ((bool_t) 0);
																					}
																			}
																	}
															}
														}
														if (BgL_test3144z00_8725)
															{	/* Llib/hash.scm 1090 */
																{	/* Llib/hash.scm 1092 */
																	obj_t BgL_arg1858z00_2352;

																	BgL_arg1858z00_2352 = CDR(BgL_bucketz00_2346);
																	{	/* Llib/hash.scm 1092 */
																		obj_t BgL_tmpz00_8756;

																		BgL_tmpz00_8756 =
																			((obj_t) BgL_prevz00_2347);
																		SET_CDR(BgL_tmpz00_8756,
																			BgL_arg1858z00_2352);
																	}
																}
																{	/* Llib/hash.scm 1094 */
																	long BgL_arg1859z00_2353;

																	BgL_arg1859z00_2353 =
																		(
																		(long) CINT(STRUCT_REF(BgL_tablez00_153,
																				(int) (0L))) - 1L);
																	{	/* Llib/hash.scm 1093 */
																		obj_t BgL_auxz00_8765;
																		int BgL_tmpz00_8763;

																		BgL_auxz00_8765 = BINT(BgL_arg1859z00_2353);
																		BgL_tmpz00_8763 = (int) (0L);
																		STRUCT_SET(BgL_tablez00_153,
																			BgL_tmpz00_8763, BgL_auxz00_8765);
																}}
																return ((bool_t) 1);
															}
														else
															{
																obj_t BgL_prevz00_8770;
																obj_t BgL_bucketz00_8768;

																BgL_bucketz00_8768 = CDR(BgL_bucketz00_2346);
																BgL_prevz00_8770 = BgL_bucketz00_2346;
																BgL_prevz00_2347 = BgL_prevz00_8770;
																BgL_bucketz00_2346 = BgL_bucketz00_8768;
																goto BgL_zc3z04anonymousza31854ze3z87_2348;
															}
													}
												else
													{	/* Llib/hash.scm 1089 */
														return ((bool_t) 0);
													}
											}
										}
								}
						}
					}
				}
			}
		}

	}



/* plain-hashtable-expand! */
	obj_t BGl_plainzd2hashtablezd2expandz12z12zz__hashz00(obj_t BgL_tablez00_156)
	{
		{	/* Llib/hash.scm 1110 */
			{	/* Llib/hash.scm 1111 */
				obj_t BgL_oldzd2buckszd2_2361;

				BgL_oldzd2buckszd2_2361 = STRUCT_REF(BgL_tablez00_156, (int) (2L));
				{	/* Llib/hash.scm 1112 */
					long BgL_newzd2lenzd2_2363;

					BgL_newzd2lenzd2_2363 =
						(2L * VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_2361)));
					{	/* Llib/hash.scm 1113 */
						obj_t BgL_maxzd2lenzd2_2364;

						BgL_maxzd2lenzd2_2364 = STRUCT_REF(BgL_tablez00_156, (int) (6L));
						{	/* Llib/hash.scm 1114 */

							{	/* Llib/hash.scm 1116 */
								obj_t BgL_nmaxz00_2365;

								{	/* Llib/hash.scm 1116 */
									obj_t BgL_a1138z00_2368;

									BgL_a1138z00_2368 = STRUCT_REF(BgL_tablez00_156, (int) (1L));
									{	/* Llib/hash.scm 1117 */
										obj_t BgL_b1139z00_2369;

										BgL_b1139z00_2369 =
											STRUCT_REF(BgL_tablez00_156, (int) (7L));
										{	/* Llib/hash.scm 1116 */

											{	/* Llib/hash.scm 1116 */
												bool_t BgL_test3150z00_8782;

												if (INTEGERP(BgL_a1138z00_2368))
													{	/* Llib/hash.scm 1116 */
														BgL_test3150z00_8782 = INTEGERP(BgL_b1139z00_2369);
													}
												else
													{	/* Llib/hash.scm 1116 */
														BgL_test3150z00_8782 = ((bool_t) 0);
													}
												if (BgL_test3150z00_8782)
													{	/* Llib/hash.scm 1116 */
														obj_t BgL_tmpz00_4840;

														BgL_tmpz00_4840 = BINT(0L);
														if (BGL_MULFX_OV(BgL_a1138z00_2368,
																BgL_b1139z00_2369, BgL_tmpz00_4840))
															{	/* Llib/hash.scm 1116 */
																BgL_nmaxz00_2365 =
																	bgl_bignum_mul(bgl_long_to_bignum(
																		(long) CINT(BgL_a1138z00_2368)),
																	bgl_long_to_bignum(
																		(long) CINT(BgL_b1139z00_2369)));
															}
														else
															{	/* Llib/hash.scm 1116 */
																BgL_nmaxz00_2365 = BgL_tmpz00_4840;
															}
													}
												else
													{	/* Llib/hash.scm 1116 */
														BgL_nmaxz00_2365 =
															BGl_2za2za2zz__r4_numbers_6_5z00
															(BgL_a1138z00_2368, BgL_b1139z00_2369);
													}
											}
										}
									}
								}
								{	/* Llib/hash.scm 1119 */
									obj_t BgL_arg1866z00_2366;

									if (REALP(BgL_nmaxz00_2365))
										{	/* Llib/hash.scm 1119 */
											BgL_arg1866z00_2366 =
												BINT((long) (REAL_TO_DOUBLE(BgL_nmaxz00_2365)));
										}
									else
										{	/* Llib/hash.scm 1119 */
											BgL_arg1866z00_2366 = BgL_nmaxz00_2365;
										}
									{	/* Llib/hash.scm 1118 */
										int BgL_tmpz00_8800;

										BgL_tmpz00_8800 = (int) (1L);
										STRUCT_SET(BgL_tablez00_156, BgL_tmpz00_8800,
											BgL_arg1866z00_2366);
							}}}
							{	/* Llib/hash.scm 1121 */
								bool_t BgL_test3154z00_8803;

								if (((long) CINT(BgL_maxzd2lenzd2_2364) < 0L))
									{	/* Llib/hash.scm 1121 */
										BgL_test3154z00_8803 = ((bool_t) 1);
									}
								else
									{	/* Llib/hash.scm 1121 */
										BgL_test3154z00_8803 =
											(BgL_newzd2lenzd2_2363 <=
											(long) CINT(BgL_maxzd2lenzd2_2364));
									}
								if (BgL_test3154z00_8803)
									{	/* Llib/hash.scm 1122 */
										obj_t BgL_newzd2buckszd2_2373;

										BgL_newzd2buckszd2_2373 =
											make_vector(BgL_newzd2lenzd2_2363, BNIL);
										{	/* Llib/hash.scm 1123 */
											int BgL_tmpz00_8810;

											BgL_tmpz00_8810 = (int) (2L);
											STRUCT_SET(BgL_tablez00_156, BgL_tmpz00_8810,
												BgL_newzd2buckszd2_2373);
										}
										{
											long BgL_iz00_2375;

											{	/* Llib/hash.scm 1124 */
												bool_t BgL_tmpz00_8813;

												BgL_iz00_2375 = 0L;
											BgL_zc3z04anonymousza31871ze3z87_2376:
												if (
													(BgL_iz00_2375 <
														VECTOR_LENGTH(((obj_t) BgL_oldzd2buckszd2_2361))))
													{	/* Llib/hash.scm 1125 */
														{	/* Llib/hash.scm 1126 */
															obj_t BgL_g1142z00_2378;

															BgL_g1142z00_2378 =
																VECTOR_REF(
																((obj_t) BgL_oldzd2buckszd2_2361),
																BgL_iz00_2375);
															{
																obj_t BgL_l1140z00_2380;

																BgL_l1140z00_2380 = BgL_g1142z00_2378;
															BgL_zc3z04anonymousza31873ze3z87_2381:
																if (PAIRP(BgL_l1140z00_2380))
																	{	/* Llib/hash.scm 1132 */
																		{	/* Llib/hash.scm 1127 */
																			obj_t BgL_cellz00_2383;

																			BgL_cellz00_2383 = CAR(BgL_l1140z00_2380);
																			{	/* Llib/hash.scm 1127 */
																				obj_t BgL_keyz00_2384;

																				BgL_keyz00_2384 =
																					CAR(((obj_t) BgL_cellz00_2383));
																				{	/* Llib/hash.scm 1127 */
																					long BgL_nz00_2385;

																					{	/* Llib/hash.scm 1128 */
																						obj_t BgL_hashnz00_4860;

																						BgL_hashnz00_4860 =
																							STRUCT_REF(BgL_tablez00_156,
																							(int) (4L));
																						if (PROCEDUREP(BgL_hashnz00_4860))
																							{	/* Llib/hash.scm 1128 */
																								obj_t BgL_arg1278z00_4862;

																								BgL_arg1278z00_4862 =
																									BGL_PROCEDURE_CALL1
																									(BgL_hashnz00_4860,
																									BgL_keyz00_2384);
																								{	/* Llib/hash.scm 1128 */
																									long BgL_nz00_4864;

																									BgL_nz00_4864 =
																										(long)
																										CINT(BgL_arg1278z00_4862);
																									if ((BgL_nz00_4864 < 0L))
																										{	/* Llib/hash.scm 1128 */
																											BgL_nz00_2385 =
																												NEG(BgL_nz00_4864);
																										}
																									else
																										{	/* Llib/hash.scm 1128 */
																											BgL_nz00_2385 =
																												BgL_nz00_4864;
																										}
																								}
																							}
																						else
																							{	/* Llib/hash.scm 1128 */
																								if (
																									(BgL_hashnz00_4860 ==
																										BGl_symbol2620z00zz__hashz00))
																									{	/* Llib/hash.scm 1128 */
																										BgL_nz00_2385 =
																											BGl_objzd2hashze70z35zz__hashz00
																											(BgL_keyz00_2384);
																									}
																								else
																									{	/* Llib/hash.scm 1128 */
																										BgL_nz00_2385 =
																											BGl_getzd2hashnumberzd2zz__hashz00
																											(BgL_keyz00_2384);
																									}
																							}
																					}
																					{	/* Llib/hash.scm 1128 */
																						long BgL_hz00_2386;

																						{	/* Llib/hash.scm 1129 */
																							long BgL_n1z00_4868;
																							long BgL_n2z00_4869;

																							BgL_n1z00_4868 = BgL_nz00_2385;
																							BgL_n2z00_4869 =
																								BgL_newzd2lenzd2_2363;
																							{	/* Llib/hash.scm 1129 */
																								bool_t BgL_test3161z00_8841;

																								{	/* Llib/hash.scm 1129 */
																									long BgL_arg2156z00_4871;

																									BgL_arg2156z00_4871 =
																										(((BgL_n1z00_4868) |
																											(BgL_n2z00_4869)) &
																										-2147483648);
																									BgL_test3161z00_8841 =
																										(BgL_arg2156z00_4871 == 0L);
																								}
																								if (BgL_test3161z00_8841)
																									{	/* Llib/hash.scm 1129 */
																										int32_t BgL_arg2153z00_4872;

																										{	/* Llib/hash.scm 1129 */
																											int32_t
																												BgL_arg2154z00_4873;
																											int32_t
																												BgL_arg2155z00_4874;
																											BgL_arg2154z00_4873 =
																												(int32_t)
																												(BgL_n1z00_4868);
																											BgL_arg2155z00_4874 =
																												(int32_t)
																												(BgL_n2z00_4869);
																											BgL_arg2153z00_4872 =
																												(BgL_arg2154z00_4873 %
																												BgL_arg2155z00_4874);
																										}
																										{	/* Llib/hash.scm 1129 */
																											long BgL_arg2257z00_4879;

																											BgL_arg2257z00_4879 =
																												(long)
																												(BgL_arg2153z00_4872);
																											BgL_hz00_2386 =
																												(long)
																												(BgL_arg2257z00_4879);
																									}}
																								else
																									{	/* Llib/hash.scm 1129 */
																										BgL_hz00_2386 =
																											(BgL_n1z00_4868 %
																											BgL_n2z00_4869);
																									}
																							}
																						}
																						{	/* Llib/hash.scm 1129 */

																							{	/* Llib/hash.scm 1131 */
																								obj_t BgL_arg1876z00_2387;

																								BgL_arg1876z00_2387 =
																									MAKE_YOUNG_PAIR
																									(BgL_cellz00_2383,
																									VECTOR_REF
																									(BgL_newzd2buckszd2_2373,
																										BgL_hz00_2386));
																								VECTOR_SET
																									(BgL_newzd2buckszd2_2373,
																									BgL_hz00_2386,
																									BgL_arg1876z00_2387);
																							}
																						}
																					}
																				}
																			}
																		}
																		{
																			obj_t BgL_l1140z00_8853;

																			BgL_l1140z00_8853 =
																				CDR(BgL_l1140z00_2380);
																			BgL_l1140z00_2380 = BgL_l1140z00_8853;
																			goto
																				BgL_zc3z04anonymousza31873ze3z87_2381;
																		}
																	}
																else
																	{	/* Llib/hash.scm 1132 */
																		((bool_t) 1);
																	}
															}
														}
														{
															long BgL_iz00_8855;

															BgL_iz00_8855 = (BgL_iz00_2375 + 1L);
															BgL_iz00_2375 = BgL_iz00_8855;
															goto BgL_zc3z04anonymousza31871ze3z87_2376;
														}
													}
												else
													{	/* Llib/hash.scm 1125 */
														BgL_tmpz00_8813 = ((bool_t) 0);
													}
												return BBOOL(BgL_tmpz00_8813);
											}
										}
									}
								else
									{	/* Llib/hash.scm 1137 */
										obj_t BgL_arg1882z00_2393;

										{	/* Llib/hash.scm 1137 */
											long BgL_arg1883z00_2394;

											BgL_arg1883z00_2394 =
												(long) CINT(STRUCT_REF(BgL_tablez00_156, (int) (0L)));
											{	/* Llib/hash.scm 1135 */
												obj_t BgL_list1884z00_2395;

												{	/* Llib/hash.scm 1135 */
													obj_t BgL_arg1885z00_2396;

													{	/* Llib/hash.scm 1135 */
														obj_t BgL_arg1886z00_2397;

														BgL_arg1886z00_2397 =
															MAKE_YOUNG_PAIR(BINT(BgL_arg1883z00_2394), BNIL);
														BgL_arg1885z00_2396 =
															MAKE_YOUNG_PAIR(BgL_maxzd2lenzd2_2364,
															BgL_arg1886z00_2397);
													}
													BgL_list1884z00_2395 =
														MAKE_YOUNG_PAIR(BINT(BgL_newzd2lenzd2_2363),
														BgL_arg1885z00_2396);
												}
												BgL_arg1882z00_2393 =
													BGl_formatz00zz__r4_output_6_10_3z00
													(BGl_string2655z00zz__hashz00, BgL_list1884z00_2395);
										}}
										return
											BGl_errorz00zz__errorz00(BGl_string2656z00zz__hashz00,
											BgL_arg1882z00_2393, BgL_tablez00_156);
									}
							}
						}
					}
				}
			}
		}

	}



/* hashtable-collisions */
	BGL_EXPORTED_DEF obj_t BGl_hashtablezd2collisionszd2zz__hashz00(obj_t
		BgL_tablez00_157)
	{
		{	/* Llib/hash.scm 1143 */
			{	/* Llib/hash.scm 1144 */
				bool_t BgL_test3162z00_8868;

				if (
					(0L == ((long) CINT(STRUCT_REF(BgL_tablez00_157, (int) (5L))) & 3L)))
					{	/* Llib/hash.scm 311 */
						BgL_test3162z00_8868 = ((bool_t) 0);
					}
				else
					{	/* Llib/hash.scm 311 */
						BgL_test3162z00_8868 = ((bool_t) 1);
					}
				if (BgL_test3162z00_8868)
					{	/* Llib/hash.scm 1144 */
						return BNIL;
					}
				else
					{	/* Llib/hash.scm 1144 */
						BGL_TAIL return
							BGl_plainzd2hashtablezd2collisionsz00zz__hashz00
							(BgL_tablez00_157);
					}
			}
		}

	}



/* &hashtable-collisions */
	obj_t BGl_z62hashtablezd2collisionszb0zz__hashz00(obj_t BgL_envz00_5542,
		obj_t BgL_tablez00_5543)
	{
		{	/* Llib/hash.scm 1143 */
			{	/* Llib/hash.scm 1144 */
				obj_t BgL_auxz00_8876;

				if (STRUCTP(BgL_tablez00_5543))
					{	/* Llib/hash.scm 1144 */
						BgL_auxz00_8876 = BgL_tablez00_5543;
					}
				else
					{
						obj_t BgL_auxz00_8879;

						BgL_auxz00_8879 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
							BINT(46243L), BGl_string2657z00zz__hashz00,
							BGl_string2625z00zz__hashz00, BgL_tablez00_5543);
						FAILURE(BgL_auxz00_8879, BFALSE, BFALSE);
					}
				return BGl_hashtablezd2collisionszd2zz__hashz00(BgL_auxz00_8876);
			}
		}

	}



/* plain-hashtable-collisions */
	obj_t BGl_plainzd2hashtablezd2collisionsz00zz__hashz00(obj_t BgL_tablez00_158)
	{
		{	/* Llib/hash.scm 1151 */
			{	/* Llib/hash.scm 1152 */
				obj_t BgL_bucketsz00_2400;

				BgL_bucketsz00_2400 = STRUCT_REF(BgL_tablez00_158, (int) (2L));
				{	/* Llib/hash.scm 1153 */

					{
						long BgL_iz00_2404;
						obj_t BgL_resz00_2405;

						BgL_iz00_2404 = 0L;
						BgL_resz00_2405 = BNIL;
					BgL_zc3z04anonymousza31888ze3z87_2406:
						if ((BgL_iz00_2404 == VECTOR_LENGTH(((obj_t) BgL_bucketsz00_2400))))
							{	/* Llib/hash.scm 1156 */
								return BgL_resz00_2405;
							}
						else
							{	/* Llib/hash.scm 1158 */
								obj_t BgL_g1078z00_2408;

								BgL_g1078z00_2408 =
									VECTOR_REF(((obj_t) BgL_bucketsz00_2400), BgL_iz00_2404);
								{
									obj_t BgL_bucketz00_4910;
									obj_t BgL_resz00_4911;
									long BgL_collz00_4912;

									BgL_bucketz00_4910 = BgL_g1078z00_2408;
									BgL_resz00_4911 = BgL_resz00_2405;
									BgL_collz00_4912 = 0L;
								BgL_liipz00_4909:
									if (NULLP(BgL_bucketz00_4910))
										{
											obj_t BgL_resz00_8896;
											long BgL_iz00_8894;

											BgL_iz00_8894 = (BgL_iz00_2404 + 1L);
											BgL_resz00_8896 = BgL_resz00_4911;
											BgL_resz00_2405 = BgL_resz00_8896;
											BgL_iz00_2404 = BgL_iz00_8894;
											goto BgL_zc3z04anonymousza31888ze3z87_2406;
										}
									else
										{	/* Llib/hash.scm 1163 */
											obj_t BgL_arg1893z00_4916;
											obj_t BgL_arg1894z00_4917;
											long BgL_arg1896z00_4918;

											BgL_arg1893z00_4916 = CDR(((obj_t) BgL_bucketz00_4910));
											if ((BgL_collz00_4912 > 0L))
												{	/* Llib/hash.scm 1164 */
													BgL_arg1894z00_4917 =
														MAKE_YOUNG_PAIR(BINT(BgL_collz00_4912),
														BgL_resz00_4911);
												}
											else
												{	/* Llib/hash.scm 1164 */
													BgL_arg1894z00_4917 = BgL_resz00_4911;
												}
											BgL_arg1896z00_4918 = (BgL_collz00_4912 + 1L);
											{
												long BgL_collz00_8906;
												obj_t BgL_resz00_8905;
												obj_t BgL_bucketz00_8904;

												BgL_bucketz00_8904 = BgL_arg1893z00_4916;
												BgL_resz00_8905 = BgL_arg1894z00_4917;
												BgL_collz00_8906 = BgL_arg1896z00_4918;
												BgL_collz00_4912 = BgL_collz00_8906;
												BgL_resz00_4911 = BgL_resz00_8905;
												BgL_bucketz00_4910 = BgL_bucketz00_8904;
												goto BgL_liipz00_4909;
											}
										}
								}
							}
					}
				}
			}
		}

	}



/* get-hashnumber */
	BGL_EXPORTED_DEF long BGl_getzd2hashnumberzd2zz__hashz00(obj_t BgL_keyz00_160)
	{
		{	/* Llib/hash.scm 1176 */
		BGl_getzd2hashnumberzd2zz__hashz00:
			if (STRINGP(BgL_keyz00_160))
				{	/* Llib/hash.scm 1179 */
					long BgL_arg1899z00_2423;

					{	/* Llib/hash.scm 1290 */
						long BgL_arg1978z00_4924;

						BgL_arg1978z00_4924 = STRING_LENGTH(BgL_keyz00_160);
						BgL_arg1899z00_2423 =
							bgl_string_hash(BSTRING_TO_STRING(BgL_keyz00_160),
							(int) (0L), (int) (BgL_arg1978z00_4924));
					}
					if ((BgL_arg1899z00_2423 < 0L))
						{	/* Llib/hash.scm 1179 */
							return NEG(BgL_arg1899z00_2423);
						}
					else
						{	/* Llib/hash.scm 1179 */
							return BgL_arg1899z00_2423;
						}
				}
			else
				{	/* Llib/hash.scm 1178 */
					if (SYMBOLP(BgL_keyz00_160))
						{	/* Llib/hash.scm 1181 */
							long BgL_arg1901z00_2425;

							BgL_arg1901z00_2425 = bgl_symbol_hash_number(BgL_keyz00_160);
							if ((BgL_arg1901z00_2425 < 0L))
								{	/* Llib/hash.scm 1181 */
									return NEG(BgL_arg1901z00_2425);
								}
							else
								{	/* Llib/hash.scm 1181 */
									return BgL_arg1901z00_2425;
								}
						}
					else
						{	/* Llib/hash.scm 1180 */
							if (KEYWORDP(BgL_keyz00_160))
								{	/* Llib/hash.scm 1183 */
									long BgL_arg1903z00_2427;

									BgL_arg1903z00_2427 = bgl_keyword_hash_number(BgL_keyz00_160);
									if ((BgL_arg1903z00_2427 < 0L))
										{	/* Llib/hash.scm 1183 */
											return NEG(BgL_arg1903z00_2427);
										}
									else
										{	/* Llib/hash.scm 1183 */
											return BgL_arg1903z00_2427;
										}
								}
							else
								{	/* Llib/hash.scm 1182 */
									if (INTEGERP(BgL_keyz00_160))
										{	/* Llib/hash.scm 1185 */
											long BgL_nz00_4938;

											BgL_nz00_4938 = (long) CINT(BgL_keyz00_160);
											if ((BgL_nz00_4938 < 0L))
												{	/* Llib/hash.scm 1185 */
													return NEG(BgL_nz00_4938);
												}
											else
												{	/* Llib/hash.scm 1185 */
													return BgL_nz00_4938;
												}
										}
									else
										{	/* Llib/hash.scm 1184 */
											if (ELONGP(BgL_keyz00_160))
												{	/* Llib/hash.scm 1187 */
													long BgL_arg1906z00_2430;

													{	/* Llib/hash.scm 1187 */
														long BgL_tmpz00_8937;

														BgL_tmpz00_8937 = BELONG_TO_LONG(BgL_keyz00_160);
														BgL_arg1906z00_2430 = (long) (BgL_tmpz00_8937);
													}
													if ((BgL_arg1906z00_2430 < 0L))
														{	/* Llib/hash.scm 1187 */
															return NEG(BgL_arg1906z00_2430);
														}
													else
														{	/* Llib/hash.scm 1187 */
															return BgL_arg1906z00_2430;
														}
												}
											else
												{	/* Llib/hash.scm 1186 */
													if (LLONGP(BgL_keyz00_160))
														{	/* Llib/hash.scm 1189 */
															long BgL_arg1908z00_2432;

															{	/* Llib/hash.scm 1189 */
																BGL_LONGLONG_T BgL_tmpz00_8945;

																BgL_tmpz00_8945 =
																	BLLONG_TO_LLONG(BgL_keyz00_160);
																BgL_arg1908z00_2432 = (long) (BgL_tmpz00_8945);
															}
															if ((BgL_arg1908z00_2432 < 0L))
																{	/* Llib/hash.scm 1189 */
																	return NEG(BgL_arg1908z00_2432);
																}
															else
																{	/* Llib/hash.scm 1189 */
																	return BgL_arg1908z00_2432;
																}
														}
													else
														{	/* Llib/hash.scm 1188 */
															if (BGL_OBJECTP(BgL_keyz00_160))
																{	/* Llib/hash.scm 1191 */
																	long BgL_arg1911z00_2434;

																	BgL_arg1911z00_2434 =
																		BGl_objectzd2hashnumberzd2zz__objectz00(
																		((BgL_objectz00_bglt) BgL_keyz00_160));
																	if ((BgL_arg1911z00_2434 < 0L))
																		{	/* Llib/hash.scm 1191 */
																			return NEG(BgL_arg1911z00_2434);
																		}
																	else
																		{	/* Llib/hash.scm 1191 */
																			return BgL_arg1911z00_2434;
																		}
																}
															else
																{	/* Llib/hash.scm 1190 */
																	if (FOREIGNP(BgL_keyz00_160))
																		{	/* Llib/hash.scm 1193 */
																			long BgL_arg1914z00_2436;

																			BgL_arg1914z00_2436 =
																				bgl_foreign_hash_number(BgL_keyz00_160);
																			if ((BgL_arg1914z00_2436 < 0L))
																				{	/* Llib/hash.scm 1193 */
																					return NEG(BgL_arg1914z00_2436);
																				}
																			else
																				{	/* Llib/hash.scm 1193 */
																					return BgL_arg1914z00_2436;
																				}
																		}
																	else
																		{	/* Llib/hash.scm 1194 */
																			bool_t BgL_test3184z00_8964;

																			if (INTEGERP(BgL_keyz00_160))
																				{	/* Llib/hash.scm 1194 */
																					BgL_test3184z00_8964 = ((bool_t) 1);
																				}
																			else
																				{	/* Llib/hash.scm 1194 */
																					BgL_test3184z00_8964 =
																						REALP(BgL_keyz00_160);
																				}
																			if (BgL_test3184z00_8964)
																				{	/* Llib/hash.scm 1195 */
																					long BgL_arg1916z00_2438;

																					BgL_arg1916z00_2438 =
																						(long) (REAL_TO_DOUBLE
																						(BgL_keyz00_160));
																					{
																						obj_t BgL_keyz00_8970;

																						BgL_keyz00_8970 =
																							BINT(BgL_arg1916z00_2438);
																						BgL_keyz00_160 = BgL_keyz00_8970;
																						goto
																							BGl_getzd2hashnumberzd2zz__hashz00;
																					}
																				}
																			else
																				{	/* Llib/hash.scm 1197 */
																					long BgL_arg1917z00_2439;

																					BgL_arg1917z00_2439 =
																						bgl_obj_hash_number(BgL_keyz00_160);
																					if ((BgL_arg1917z00_2439 < 0L))
																						{	/* Llib/hash.scm 1197 */
																							return NEG(BgL_arg1917z00_2439);
																						}
																					else
																						{	/* Llib/hash.scm 1197 */
																							return BgL_arg1917z00_2439;
																						}
																				}
																		}
																}
														}
												}
										}
								}
						}
				}
		}

	}



/* &get-hashnumber */
	obj_t BGl_z62getzd2hashnumberzb0zz__hashz00(obj_t BgL_envz00_5544,
		obj_t BgL_keyz00_5545)
	{
		{	/* Llib/hash.scm 1176 */
			return BINT(BGl_getzd2hashnumberzd2zz__hashz00(BgL_keyz00_5545));
		}

	}



/* get-hashnumber-persistent */
	BGL_EXPORTED_DEF long BGl_getzd2hashnumberzd2persistentz00zz__hashz00(obj_t
		BgL_keyz00_161)
	{
		{	/* Llib/hash.scm 1204 */
			BGL_TAIL return BGl_objzd2hashze70z35zz__hashz00(BgL_keyz00_161);
		}

	}



/* obj-hash~0 */
	long BGl_objzd2hashze70z35zz__hashz00(obj_t BgL_keyz00_2488)
	{
		{	/* Llib/hash.scm 1270 */
		BGl_objzd2hashze70z35zz__hashz00:
			{
				obj_t BgL_keyz00_2446;
				obj_t BgL_keyz00_2471;

				if (CNSTP(BgL_keyz00_2488))
					{	/* Llib/hash.scm 1235 */
						if ((BgL_keyz00_2488 == BTRUE))
							{	/* Llib/hash.scm 1237 */
								return 12L;
							}
						else
							{	/* Llib/hash.scm 1237 */
								if ((BgL_keyz00_2488 == BFALSE))
									{	/* Llib/hash.scm 1238 */
										return 445L;
									}
								else
									{	/* Llib/hash.scm 1238 */
										if ((BgL_keyz00_2488 == BUNSPEC))
											{	/* Llib/hash.scm 1239 */
												return 3199L;
											}
										else
											{	/* Llib/hash.scm 1239 */
												if ((BgL_keyz00_2488 == BNIL))
													{	/* Llib/hash.scm 1240 */
														return 453343L;
													}
												else
													{	/* Llib/hash.scm 1240 */
														return 21354L;
													}
											}
									}
							}
					}
				else
					{	/* Llib/hash.scm 1235 */
						if (STRINGP(BgL_keyz00_2488))
							{	/* Llib/hash.scm 1243 */
								long BgL_arg1944z00_2492;

								{	/* Llib/hash.scm 1243 */
									long BgL_arg1945z00_2493;

									BgL_arg1945z00_2493 = STRING_LENGTH(BgL_keyz00_2488);
									BgL_arg1944z00_2492 =
										bgl_string_hash_persistent(BSTRING_TO_STRING
										(BgL_keyz00_2488), (int) (0L), (int) (BgL_arg1945z00_2493));
								}
								return (134217727L & BgL_arg1944z00_2492);
							}
						else
							{	/* Llib/hash.scm 1242 */
								if (SYMBOLP(BgL_keyz00_2488))
									{	/* Llib/hash.scm 1244 */
										return
											(134217727L &
											bgl_symbol_hash_number_persistent(BgL_keyz00_2488));
									}
								else
									{	/* Llib/hash.scm 1244 */
										if (KEYWORDP(BgL_keyz00_2488))
											{	/* Llib/hash.scm 1246 */
												return
													(134217727L &
													bgl_keyword_hash_number_persistent(BgL_keyz00_2488));
											}
										else
											{	/* Llib/hash.scm 1246 */
												if (CHARP(BgL_keyz00_2488))
													{	/* Llib/hash.scm 1248 */
														return (CCHAR(BgL_keyz00_2488));
													}
												else
													{	/* Llib/hash.scm 1248 */
														if (INTEGERP(BgL_keyz00_2488))
															{	/* Llib/hash.scm 1250 */
																return
																	(134217727L & (long) CINT(BgL_keyz00_2488));
															}
														else
															{	/* Llib/hash.scm 1250 */
																if (ELONGP(BgL_keyz00_2488))
																	{	/* Llib/hash.scm 1253 */
																		long BgL_arg1953z00_2501;

																		{	/* Llib/hash.scm 1253 */
																			long BgL_tmpz00_9015;

																			BgL_tmpz00_9015 =
																				BELONG_TO_LONG(BgL_keyz00_2488);
																			BgL_arg1953z00_2501 =
																				(long) (BgL_tmpz00_9015);
																		}
																		return (134217727L & BgL_arg1953z00_2501);
																	}
																else
																	{	/* Llib/hash.scm 1252 */
																		if (LLONGP(BgL_keyz00_2488))
																			{	/* Llib/hash.scm 1255 */
																				long BgL_arg1955z00_2503;

																				{	/* Llib/hash.scm 1255 */
																					BGL_LONGLONG_T BgL_tmpz00_9021;

																					BgL_tmpz00_9021 =
																						BLLONG_TO_LLONG(BgL_keyz00_2488);
																					BgL_arg1955z00_2503 =
																						(long) (BgL_tmpz00_9021);
																				}
																				return
																					(134217727L & BgL_arg1955z00_2503);
																			}
																		else
																			{	/* Llib/hash.scm 1254 */
																				if (UCS2P(BgL_keyz00_2488))
																					{	/* Llib/hash.scm 1257 */
																						long BgL_arg1957z00_2505;

																						{	/* Llib/hash.scm 1257 */
																							int BgL_arg1959z00_2506;

																							{	/* Llib/hash.scm 1257 */
																								ucs2_t BgL_ucs2z00_5112;

																								BgL_ucs2z00_5112 =
																									CUCS2(BgL_keyz00_2488);
																								{	/* Llib/hash.scm 1257 */
																									obj_t BgL_tmpz00_9028;

																									BgL_tmpz00_9028 =
																										BUCS2(BgL_ucs2z00_5112);
																									BgL_arg1959z00_2506 =
																										CUCS2(BgL_tmpz00_9028);
																							}}
																							BgL_arg1957z00_2505 =
																								(39434L ^
																								(long) (BgL_arg1959z00_2506));
																						}
																						return
																							(134217727L &
																							BgL_arg1957z00_2505);
																					}
																				else
																					{	/* Llib/hash.scm 1256 */
																						if (BGL_DATEP(BgL_keyz00_2488))
																							{	/* Llib/hash.scm 1259 */
																								long BgL_arg1961z00_2508;

																								{	/* Llib/hash.scm 1259 */
																									long BgL_arg1962z00_2509;

																									{	/* Llib/hash.scm 1259 */
																										long BgL_arg1963z00_2510;

																										BgL_arg1963z00_2510 =
																											bgl_date_to_seconds
																											(BgL_keyz00_2488);
																										BgL_arg1962z00_2509 =
																											BGl_objzd2hashze70z35zz__hashz00
																											(make_belong
																											(BgL_arg1963z00_2510));
																									}
																									BgL_arg1961z00_2508 =
																										(908L ^
																										BgL_arg1962z00_2509);
																								}
																								return
																									(134217727L &
																									BgL_arg1961z00_2508);
																							}
																						else
																							{	/* Llib/hash.scm 1260 */
																								bool_t BgL_test3201z00_9041;

																								if (INTEGERP(BgL_keyz00_2488))
																									{	/* Llib/hash.scm 1260 */
																										BgL_test3201z00_9041 =
																											((bool_t) 1);
																									}
																								else
																									{	/* Llib/hash.scm 1260 */
																										BgL_test3201z00_9041 =
																											REALP(BgL_keyz00_2488);
																									}
																								if (BgL_test3201z00_9041)
																									{	/* Llib/hash.scm 1263 */
																										long BgL_arg1965z00_2512;

																										{	/* Llib/hash.scm 1263 */
																											int64_t
																												BgL_arg1966z00_2513;
																											{	/* Llib/hash.scm 1263 */
																												int64_t
																													BgL_arg1967z00_2514;
																												int64_t
																													BgL_arg1968z00_2515;
																												{	/* Llib/hash.scm 1263 */
																													double
																														BgL_arg1969z00_2516;
																													BgL_arg1969z00_2516 =
																														(REAL_TO_DOUBLE
																														(BgL_keyz00_2488) *
																														1000.0);
																													BgL_arg1967z00_2514 =
																														(int64_t)
																														(BgL_arg1969z00_2516);
																												}
																												BgL_arg1968z00_2515 =
																													((int64_t) (1) <<
																													(int) (29L));
																												BgL_arg1966z00_2513 =
																													(BgL_arg1967z00_2514 &
																													BgL_arg1968z00_2515);
																											}
																											{	/* Llib/hash.scm 1262 */
																												long
																													BgL_arg2256z00_5125;
																												BgL_arg2256z00_5125 =
																													(long)
																													(BgL_arg1966z00_2513);
																												BgL_arg1965z00_2512 =
																													(long)
																													(BgL_arg2256z00_5125);
																										}}
																										{
																											obj_t BgL_keyz00_9053;

																											BgL_keyz00_9053 =
																												BINT
																												(BgL_arg1965z00_2512);
																											BgL_keyz00_2488 =
																												BgL_keyz00_9053;
																											goto
																												BGl_objzd2hashze70z35zz__hashz00;
																										}
																									}
																								else
																									{	/* Llib/hash.scm 1260 */
																										if (UCS2_STRINGP
																											(BgL_keyz00_2488))
																											{	/* Llib/hash.scm 1207 */
																												long BgL_tmpz00_9057;

																												BgL_keyz00_2471 =
																													BgL_keyz00_2488;
																												{	/* Llib/hash.scm 1223 */
																													int BgL_lenz00_2473;

																													BgL_lenz00_2473 =
																														UCS2_STRING_LENGTH
																														(BgL_keyz00_2471);
																													{	/* Llib/hash.scm 1224 */
																														long
																															BgL_g1081z00_2474;
																														long
																															BgL_g1082z00_2475;
																														BgL_g1081z00_2474 =
																															((long)
																															(BgL_lenz00_2473)
																															- 1L);
																														BgL_g1082z00_2475 =
																															(134217727L &
																															(235643L ^
																																(long)
																																(BgL_lenz00_2473)));
																														{
																															long
																																BgL_iz00_5071;
																															long
																																BgL_accz00_5072;
																															BgL_iz00_5071 =
																																BgL_g1081z00_2474;
																															BgL_accz00_5072 =
																																BgL_g1082z00_2475;
																														BgL_loopz00_5070:
																															if (
																																(BgL_iz00_5071
																																	== (-1L)))
																																{	/* Llib/hash.scm 1226 */
																																	BgL_tmpz00_9057
																																		=
																																		BgL_accz00_5072;
																																}
																															else
																																{	/* Llib/hash.scm 1228 */
																																	long
																																		BgL_arg1935z00_5080;
																																	long
																																		BgL_arg1936z00_5081;
																																	BgL_arg1935z00_5080
																																		=
																																		(BgL_iz00_5071
																																		- 1L);
																																	{	/* Llib/hash.scm 1231 */
																																		long
																																			BgL_arg1937z00_5082;
																																		{	/* Llib/hash.scm 1231 */
																																			long
																																				BgL_arg1938z00_5083;
																																			{	/* Llib/hash.scm 1231 */
																																				ucs2_t
																																					BgL_arg1939z00_5084;
																																				{	/* Llib/hash.scm 1231 */
																																					ucs2_t
																																						BgL_res2418z00_5100;
																																					{	/* Llib/hash.scm 1231 */
																																						int
																																							BgL_kz00_5088;
																																						BgL_kz00_5088
																																							=
																																							(int)
																																							(BgL_iz00_5071);
																																						{	/* Llib/hash.scm 1231 */
																																							bool_t
																																								BgL_test3205z00_9068;
																																							{	/* Llib/hash.scm 1231 */
																																								long
																																									BgL_auxz00_9071;
																																								long
																																									BgL_tmpz00_9069;
																																								BgL_auxz00_9071
																																									=
																																									(long)
																																									(UCS2_STRING_LENGTH
																																									(BgL_keyz00_2471));
																																								BgL_tmpz00_9069
																																									=
																																									(long)
																																									(BgL_kz00_5088);
																																								BgL_test3205z00_9068
																																									=
																																									BOUND_CHECK
																																									(BgL_tmpz00_9069,
																																									BgL_auxz00_9071);
																																							}
																																							if (BgL_test3205z00_9068)
																																								{	/* Llib/hash.scm 1231 */
																																									BgL_res2418z00_5100
																																										=
																																										UCS2_STRING_REF
																																										(BgL_keyz00_2471,
																																										BgL_kz00_5088);
																																								}
																																							else
																																								{	/* Llib/hash.scm 1231 */
																																									obj_t
																																										BgL_arg2311z00_5091;
																																									{	/* Llib/hash.scm 1231 */
																																										obj_t
																																											BgL_arg2313z00_5092;
																																										{	/* Llib/hash.scm 1231 */

																																											BgL_arg2313z00_5092
																																												=
																																												BGl_integerzd2ze3stringz31zz__r4_numbers_6_5_fixnumz00
																																												(
																																												((long) (UCS2_STRING_LENGTH(BgL_keyz00_2471)) - 1L), 10L);
																																										}
																																										BgL_arg2311z00_5091
																																											=
																																											string_append_3
																																											(BGl_string2658z00zz__hashz00,
																																											BgL_arg2313z00_5092,
																																											BGl_string2659z00zz__hashz00);
																																									}
																																									BgL_res2418z00_5100
																																										=
																																										CUCS2
																																										(BGl_errorz00zz__errorz00
																																										(BGl_symbol2660z00zz__hashz00,
																																											BgL_arg2311z00_5091,
																																											BINT
																																											(BgL_kz00_5088)));
																																					}}}
																																					BgL_arg1939z00_5084
																																						=
																																						BgL_res2418z00_5100;
																																				}
																																				BgL_arg1938z00_5083
																																					=
																																					BGl_objzd2hashze70z35zz__hashz00
																																					(BUCS2
																																					(BgL_arg1939z00_5084));
																																			}
																																			BgL_arg1937z00_5082
																																				=
																																				(BgL_arg1938z00_5083
																																				^
																																				BgL_accz00_5072);
																																		}
																																		BgL_arg1936z00_5081
																																			=
																																			(134217727L
																																			&
																																			BgL_arg1937z00_5082);
																																	}
																																	{
																																		long
																																			BgL_accz00_9089;
																																		long
																																			BgL_iz00_9088;
																																		BgL_iz00_9088
																																			=
																																			BgL_arg1935z00_5080;
																																		BgL_accz00_9089
																																			=
																																			BgL_arg1936z00_5081;
																																		BgL_accz00_5072
																																			=
																																			BgL_accz00_9089;
																																		BgL_iz00_5071
																																			=
																																			BgL_iz00_9088;
																																		goto
																																			BgL_loopz00_5070;
																																	}
																																}
																														}
																													}
																												}
																												return
																													(134217727L &
																													BgL_tmpz00_9057);
																											}
																										else
																											{	/* Llib/hash.scm 1265 */
																												if (BGL_HVECTORP
																													(BgL_keyz00_2488))
																													{	/* Llib/hash.scm 1267 */
																														BgL_keyz00_2446 =
																															BgL_keyz00_2488;
																														{	/* Llib/hash.scm 1210 */
																															long
																																BgL_lenz00_2448;
																															BgL_lenz00_2448 =
																																BGL_HVECTOR_LENGTH
																																(BgL_keyz00_2446);
																															{	/* Llib/hash.scm 1211 */
																																obj_t
																																	BgL_tagz00_2449;
																																BgL_tagz00_2449
																																	=
																																	BGl_homogeneouszd2vectorzd2infoz00zz__srfi4z00
																																	(BgL_keyz00_2446);
																																{	/* Llib/hash.scm 1212 */
																																	obj_t
																																		BgL__z00_2450;
																																	obj_t
																																		BgL_getz00_2451;
																																	obj_t
																																		BgL__z00_2452;
																																	obj_t
																																		BgL__z00_2453;
																																	{	/* Llib/hash.scm 1213 */
																																		obj_t
																																			BgL_tmpz00_4964;
																																		{	/* Llib/hash.scm 1213 */
																																			int
																																				BgL_tmpz00_9095;
																																			BgL_tmpz00_9095
																																				=
																																				(int)
																																				(1L);
																																			BgL_tmpz00_4964
																																				=
																																				BGL_MVALUES_VAL
																																				(BgL_tmpz00_9095);
																																		}
																																		{	/* Llib/hash.scm 1213 */
																																			int
																																				BgL_tmpz00_9098;
																																			BgL_tmpz00_9098
																																				=
																																				(int)
																																				(1L);
																																			BGL_MVALUES_VAL_SET
																																				(BgL_tmpz00_9098,
																																				BUNSPEC);
																																		}
																																		BgL__z00_2450
																																			=
																																			BgL_tmpz00_4964;
																																	}
																																	{	/* Llib/hash.scm 1213 */
																																		obj_t
																																			BgL_tmpz00_4965;
																																		{	/* Llib/hash.scm 1213 */
																																			int
																																				BgL_tmpz00_9101;
																																			BgL_tmpz00_9101
																																				=
																																				(int)
																																				(2L);
																																			BgL_tmpz00_4965
																																				=
																																				BGL_MVALUES_VAL
																																				(BgL_tmpz00_9101);
																																		}
																																		{	/* Llib/hash.scm 1213 */
																																			int
																																				BgL_tmpz00_9104;
																																			BgL_tmpz00_9104
																																				=
																																				(int)
																																				(2L);
																																			BGL_MVALUES_VAL_SET
																																				(BgL_tmpz00_9104,
																																				BUNSPEC);
																																		}
																																		BgL_getz00_2451
																																			=
																																			BgL_tmpz00_4965;
																																	}
																																	{	/* Llib/hash.scm 1213 */
																																		obj_t
																																			BgL_tmpz00_4966;
																																		{	/* Llib/hash.scm 1213 */
																																			int
																																				BgL_tmpz00_9107;
																																			BgL_tmpz00_9107
																																				=
																																				(int)
																																				(3L);
																																			BgL_tmpz00_4966
																																				=
																																				BGL_MVALUES_VAL
																																				(BgL_tmpz00_9107);
																																		}
																																		{	/* Llib/hash.scm 1213 */
																																			int
																																				BgL_tmpz00_9110;
																																			BgL_tmpz00_9110
																																				=
																																				(int)
																																				(3L);
																																			BGL_MVALUES_VAL_SET
																																				(BgL_tmpz00_9110,
																																				BUNSPEC);
																																		}
																																		BgL__z00_2452
																																			=
																																			BgL_tmpz00_4966;
																																	}
																																	{	/* Llib/hash.scm 1213 */
																																		obj_t
																																			BgL_tmpz00_4967;
																																		{	/* Llib/hash.scm 1213 */
																																			int
																																				BgL_tmpz00_9113;
																																			BgL_tmpz00_9113
																																				=
																																				(int)
																																				(4L);
																																			BgL_tmpz00_4967
																																				=
																																				BGL_MVALUES_VAL
																																				(BgL_tmpz00_9113);
																																		}
																																		{	/* Llib/hash.scm 1213 */
																																			int
																																				BgL_tmpz00_9116;
																																			BgL_tmpz00_9116
																																				=
																																				(int)
																																				(4L);
																																			BGL_MVALUES_VAL_SET
																																				(BgL_tmpz00_9116,
																																				BUNSPEC);
																																		}
																																		BgL__z00_2453
																																			=
																																			BgL_tmpz00_4967;
																																	}
																																	{	/* Llib/hash.scm 1213 */
																																		long
																																			BgL_g1079z00_2454;
																																		long
																																			BgL_g1080z00_2455;
																																		BgL_g1079z00_2454
																																			=
																																			(BgL_lenz00_2448
																																			- 1L);
																																		BgL_g1080z00_2455
																																			=
																																			(134217727L
																																			& (98723L
																																				^
																																				(134217727L
																																					&
																																					(BgL_lenz00_2448
																																						^
																																						BGl_objzd2hashze70z35zz__hashz00
																																						(BgL_tagz00_2449)))));
																																		{
																																			long
																																				BgL_iz00_4997;
																																			long
																																				BgL_accz00_4998;
																																			BgL_iz00_4997
																																				=
																																				BgL_g1079z00_2454;
																																			BgL_accz00_4998
																																				=
																																				BgL_g1080z00_2455;
																																		BgL_loopz00_4996:
																																			if (
																																				(BgL_iz00_4997
																																					==
																																					(-1L)))
																																				{	/* Llib/hash.scm 1216 */
																																					return
																																						BgL_accz00_4998;
																																				}
																																			else
																																				{	/* Llib/hash.scm 1218 */
																																					obj_t
																																						BgL_oz00_5006;
																																					BgL_oz00_5006
																																						=
																																						BGL_PROCEDURE_CALL2
																																						(BgL_getz00_2451,
																																						BgL_keyz00_2446,
																																						BINT
																																						(BgL_iz00_4997));
																																					{
																																						long
																																							BgL_accz00_9135;
																																						long
																																							BgL_iz00_9133;
																																						BgL_iz00_9133
																																							=
																																							(BgL_iz00_4997
																																							-
																																							1L);
																																						BgL_accz00_9135
																																							=
																																							(134217727L
																																							&
																																							(BgL_accz00_4998
																																								^
																																								BGl_objzd2hashze70z35zz__hashz00
																																								(BgL_oz00_5006)));
																																						BgL_accz00_4998
																																							=
																																							BgL_accz00_9135;
																																						BgL_iz00_4997
																																							=
																																							BgL_iz00_9133;
																																						goto
																																							BgL_loopz00_4996;
																																					}
																																				}
																																		}
																																	}
																																}
																															}
																														}
																													}
																												else
																													{	/* Llib/hash.scm 1270 */
																														obj_t
																															BgL_arg1975z00_2520;
																														{	/* Llib/hash.scm 1270 */

																															BgL_arg1975z00_2520
																																=
																																obj_to_string
																																(BgL_keyz00_2488,
																																BFALSE);
																														}
																														{
																															obj_t
																																BgL_keyz00_9140;
																															BgL_keyz00_9140 =
																																BgL_arg1975z00_2520;
																															BgL_keyz00_2488 =
																																BgL_keyz00_9140;
																															goto
																																BGl_objzd2hashze70z35zz__hashz00;
																														}
																													}
																											}
																									}
																							}
																					}
																			}
																	}
															}
													}
											}
									}
							}
					}
			}
		}

	}



/* &get-hashnumber-persistent */
	obj_t BGl_z62getzd2hashnumberzd2persistentz62zz__hashz00(obj_t
		BgL_envz00_5546, obj_t BgL_keyz00_5547)
	{
		{	/* Llib/hash.scm 1204 */
			return
				BINT(BGl_getzd2hashnumberzd2persistentz00zz__hashz00(BgL_keyz00_5547));
		}

	}



/* get-pointer-hashnumber */
	BGL_EXPORTED_DEF long BGl_getzd2pointerzd2hashnumberz00zz__hashz00(obj_t
		BgL_ptrz00_162, long BgL_powerz00_163)
	{
		{	/* Llib/hash.scm 1277 */
			BGL_TAIL return bgl_pointer_hashnumber(BgL_ptrz00_162, BgL_powerz00_163);
		}

	}



/* &get-pointer-hashnumber */
	obj_t BGl_z62getzd2pointerzd2hashnumberz62zz__hashz00(obj_t BgL_envz00_5548,
		obj_t BgL_ptrz00_5549, obj_t BgL_powerz00_5550)
	{
		{	/* Llib/hash.scm 1277 */
			{	/* Llib/hash.scm 1278 */
				long BgL_tmpz00_9144;

				{	/* Llib/hash.scm 1278 */
					long BgL_auxz00_9145;

					{	/* Llib/hash.scm 1278 */
						obj_t BgL_tmpz00_9146;

						if (INTEGERP(BgL_powerz00_5550))
							{	/* Llib/hash.scm 1278 */
								BgL_tmpz00_9146 = BgL_powerz00_5550;
							}
						else
							{
								obj_t BgL_auxz00_9149;

								BgL_auxz00_9149 =
									BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
									BINT(50659L), BGl_string2662z00zz__hashz00,
									BGl_string2607z00zz__hashz00, BgL_powerz00_5550);
								FAILURE(BgL_auxz00_9149, BFALSE, BFALSE);
							}
						BgL_auxz00_9145 = (long) CINT(BgL_tmpz00_9146);
					}
					BgL_tmpz00_9144 =
						BGl_getzd2pointerzd2hashnumberz00zz__hashz00(BgL_ptrz00_5549,
						BgL_auxz00_9145);
				}
				return BINT(BgL_tmpz00_9144);
			}
		}

	}



/* _string-hash */
	obj_t BGl__stringzd2hashzd2zz__hashz00(obj_t BgL_env1174z00_168,
		obj_t BgL_opt1173z00_167)
	{
		{	/* Llib/hash.scm 1283 */
			{	/* Llib/hash.scm 1283 */
				obj_t BgL_g1175z00_2527;

				{
					obj_t BgL_auxz00_9156;

					if (VECTORP(BgL_opt1173z00_167))
						{	/* Llib/hash.scm 1283 */
							BgL_auxz00_9156 = BgL_opt1173z00_167;
						}
					else
						{
							obj_t BgL_auxz00_9159;

							BgL_auxz00_9159 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
								BINT(50916L), BGl_string2663z00zz__hashz00,
								BGl_string2583z00zz__hashz00, BgL_opt1173z00_167);
							FAILURE(BgL_auxz00_9159, BFALSE, BFALSE);
						}
					BgL_g1175z00_2527 = VECTOR_REF(BgL_auxz00_9156, 0L);
				}
				{	/* Llib/hash.scm 1283 */
					long BgL_aux1177z00_2529;

					{
						obj_t BgL_auxz00_9164;

						if (VECTORP(BgL_opt1173z00_167))
							{	/* Llib/hash.scm 1283 */
								BgL_auxz00_9164 = BgL_opt1173z00_167;
							}
						else
							{
								obj_t BgL_auxz00_9167;

								BgL_auxz00_9167 =
									BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
									BINT(50916L), BGl_string2663z00zz__hashz00,
									BGl_string2583z00zz__hashz00, BgL_opt1173z00_167);
								FAILURE(BgL_auxz00_9167, BFALSE, BFALSE);
							}
						BgL_aux1177z00_2529 = VECTOR_LENGTH(BgL_auxz00_9164);
					}
					switch (BgL_aux1177z00_2529)
						{
						case 1L:

							{	/* Llib/hash.scm 1283 */

								{	/* Llib/hash.scm 1283 */
									obj_t BgL_stringz00_5128;

									if (STRINGP(BgL_g1175z00_2527))
										{	/* Llib/hash.scm 1283 */
											BgL_stringz00_5128 = BgL_g1175z00_2527;
										}
									else
										{
											obj_t BgL_auxz00_9174;

											BgL_auxz00_9174 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2581z00zz__hashz00, BINT(50916L),
												BGl_string2663z00zz__hashz00,
												BGl_string2641z00zz__hashz00, BgL_g1175z00_2527);
											FAILURE(BgL_auxz00_9174, BFALSE, BFALSE);
										}
									{	/* Llib/hash.scm 1284 */
										obj_t BgL_arg1977z00_5129;

										BgL_arg1977z00_5129 =
											BINT(STRING_LENGTH(BgL_stringz00_5128));
										{	/* Llib/hash.scm 1284 */
											long BgL_tmpz00_9180;

											{	/* Llib/hash.scm 1284 */
												int BgL_tmpz00_9181;

												{	/* Llib/hash.scm 1284 */
													obj_t BgL_tmpz00_9184;

													if (INTEGERP(BgL_arg1977z00_5129))
														{	/* Llib/hash.scm 1284 */
															BgL_tmpz00_9184 = BgL_arg1977z00_5129;
														}
													else
														{
															obj_t BgL_auxz00_9187;

															BgL_auxz00_9187 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2581z00zz__hashz00, BINT(51030L),
																BGl_string2663z00zz__hashz00,
																BGl_string2607z00zz__hashz00,
																BgL_arg1977z00_5129);
															FAILURE(BgL_auxz00_9187, BFALSE, BFALSE);
														}
													BgL_tmpz00_9181 = CINT(BgL_tmpz00_9184);
												}
												BgL_tmpz00_9180 =
													bgl_string_hash(BSTRING_TO_STRING(BgL_stringz00_5128),
													(int) (0L), BgL_tmpz00_9181);
											}
											return BINT(BgL_tmpz00_9180);
										}
									}
								}
							}
							break;
						case 2L:

							{	/* Llib/hash.scm 1283 */
								obj_t BgL_startz00_2532;

								{
									obj_t BgL_auxz00_9194;

									if (VECTORP(BgL_opt1173z00_167))
										{	/* Llib/hash.scm 1283 */
											BgL_auxz00_9194 = BgL_opt1173z00_167;
										}
									else
										{
											obj_t BgL_auxz00_9197;

											BgL_auxz00_9197 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2581z00zz__hashz00, BINT(50916L),
												BGl_string2663z00zz__hashz00,
												BGl_string2583z00zz__hashz00, BgL_opt1173z00_167);
											FAILURE(BgL_auxz00_9197, BFALSE, BFALSE);
										}
									BgL_startz00_2532 = VECTOR_REF(BgL_auxz00_9194, 1L);
								}
								{	/* Llib/hash.scm 1283 */

									{	/* Llib/hash.scm 1283 */
										obj_t BgL_stringz00_5132;

										if (STRINGP(BgL_g1175z00_2527))
											{	/* Llib/hash.scm 1283 */
												BgL_stringz00_5132 = BgL_g1175z00_2527;
											}
										else
											{
												obj_t BgL_auxz00_9204;

												BgL_auxz00_9204 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string2581z00zz__hashz00, BINT(50916L),
													BGl_string2663z00zz__hashz00,
													BGl_string2641z00zz__hashz00, BgL_g1175z00_2527);
												FAILURE(BgL_auxz00_9204, BFALSE, BFALSE);
											}
										{	/* Llib/hash.scm 1284 */
											obj_t BgL_arg1977z00_5133;

											BgL_arg1977z00_5133 =
												BINT(STRING_LENGTH(BgL_stringz00_5132));
											{	/* Llib/hash.scm 1284 */
												long BgL_tmpz00_9210;

												{	/* Llib/hash.scm 1284 */
													int BgL_auxz00_9221;
													int BgL_tmpz00_9211;

													{	/* Llib/hash.scm 1284 */
														obj_t BgL_tmpz00_9222;

														if (INTEGERP(BgL_arg1977z00_5133))
															{	/* Llib/hash.scm 1284 */
																BgL_tmpz00_9222 = BgL_arg1977z00_5133;
															}
														else
															{
																obj_t BgL_auxz00_9225;

																BgL_auxz00_9225 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2581z00zz__hashz00, BINT(51030L),
																	BGl_string2663z00zz__hashz00,
																	BGl_string2607z00zz__hashz00,
																	BgL_arg1977z00_5133);
																FAILURE(BgL_auxz00_9225, BFALSE, BFALSE);
															}
														BgL_auxz00_9221 = CINT(BgL_tmpz00_9222);
													}
													{	/* Llib/hash.scm 1284 */
														obj_t BgL_tmpz00_9213;

														if (INTEGERP(BgL_startz00_2532))
															{	/* Llib/hash.scm 1284 */
																BgL_tmpz00_9213 = BgL_startz00_2532;
															}
														else
															{
																obj_t BgL_auxz00_9216;

																BgL_auxz00_9216 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2581z00zz__hashz00, BINT(50994L),
																	BGl_string2663z00zz__hashz00,
																	BGl_string2607z00zz__hashz00,
																	BgL_startz00_2532);
																FAILURE(BgL_auxz00_9216, BFALSE, BFALSE);
															}
														BgL_tmpz00_9211 = CINT(BgL_tmpz00_9213);
													}
													BgL_tmpz00_9210 =
														bgl_string_hash(BSTRING_TO_STRING
														(BgL_stringz00_5132), BgL_tmpz00_9211,
														BgL_auxz00_9221);
												}
												return BINT(BgL_tmpz00_9210);
											}
										}
									}
								}
							}
							break;
						case 3L:

							{	/* Llib/hash.scm 1283 */
								obj_t BgL_startz00_2534;

								{
									obj_t BgL_auxz00_9232;

									if (VECTORP(BgL_opt1173z00_167))
										{	/* Llib/hash.scm 1283 */
											BgL_auxz00_9232 = BgL_opt1173z00_167;
										}
									else
										{
											obj_t BgL_auxz00_9235;

											BgL_auxz00_9235 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2581z00zz__hashz00, BINT(50916L),
												BGl_string2663z00zz__hashz00,
												BGl_string2583z00zz__hashz00, BgL_opt1173z00_167);
											FAILURE(BgL_auxz00_9235, BFALSE, BFALSE);
										}
									BgL_startz00_2534 = VECTOR_REF(BgL_auxz00_9232, 1L);
								}
								{	/* Llib/hash.scm 1283 */
									obj_t BgL_lenz00_2535;

									{
										obj_t BgL_auxz00_9240;

										if (VECTORP(BgL_opt1173z00_167))
											{	/* Llib/hash.scm 1283 */
												BgL_auxz00_9240 = BgL_opt1173z00_167;
											}
										else
											{
												obj_t BgL_auxz00_9243;

												BgL_auxz00_9243 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string2581z00zz__hashz00, BINT(50916L),
													BGl_string2663z00zz__hashz00,
													BGl_string2583z00zz__hashz00, BgL_opt1173z00_167);
												FAILURE(BgL_auxz00_9243, BFALSE, BFALSE);
											}
										BgL_lenz00_2535 = VECTOR_REF(BgL_auxz00_9240, 2L);
									}
									{	/* Llib/hash.scm 1283 */

										{	/* Llib/hash.scm 1283 */
											obj_t BgL_stringz00_5136;

											if (STRINGP(BgL_g1175z00_2527))
												{	/* Llib/hash.scm 1283 */
													BgL_stringz00_5136 = BgL_g1175z00_2527;
												}
											else
												{
													obj_t BgL_auxz00_9250;

													BgL_auxz00_9250 =
														BGl_typezd2errorzd2zz__errorz00
														(BGl_string2581z00zz__hashz00, BINT(50916L),
														BGl_string2663z00zz__hashz00,
														BGl_string2641z00zz__hashz00, BgL_g1175z00_2527);
													FAILURE(BgL_auxz00_9250, BFALSE, BFALSE);
												}
											{	/* Llib/hash.scm 1284 */
												obj_t BgL_arg1977z00_5137;

												if (CBOOL(BgL_lenz00_2535))
													{	/* Llib/hash.scm 1284 */
														BgL_arg1977z00_5137 = BgL_lenz00_2535;
													}
												else
													{	/* Llib/hash.scm 1284 */
														BgL_arg1977z00_5137 =
															BINT(STRING_LENGTH(BgL_stringz00_5136));
													}
												{	/* Llib/hash.scm 1284 */
													long BgL_tmpz00_9258;

													{	/* Llib/hash.scm 1284 */
														int BgL_auxz00_9269;
														int BgL_tmpz00_9259;

														{	/* Llib/hash.scm 1284 */
															obj_t BgL_tmpz00_9270;

															if (INTEGERP(BgL_arg1977z00_5137))
																{	/* Llib/hash.scm 1284 */
																	BgL_tmpz00_9270 = BgL_arg1977z00_5137;
																}
															else
																{
																	obj_t BgL_auxz00_9273;

																	BgL_auxz00_9273 =
																		BGl_typezd2errorzd2zz__errorz00
																		(BGl_string2581z00zz__hashz00, BINT(51030L),
																		BGl_string2663z00zz__hashz00,
																		BGl_string2607z00zz__hashz00,
																		BgL_arg1977z00_5137);
																	FAILURE(BgL_auxz00_9273, BFALSE, BFALSE);
																}
															BgL_auxz00_9269 = CINT(BgL_tmpz00_9270);
														}
														{	/* Llib/hash.scm 1284 */
															obj_t BgL_tmpz00_9261;

															if (INTEGERP(BgL_startz00_2534))
																{	/* Llib/hash.scm 1284 */
																	BgL_tmpz00_9261 = BgL_startz00_2534;
																}
															else
																{
																	obj_t BgL_auxz00_9264;

																	BgL_auxz00_9264 =
																		BGl_typezd2errorzd2zz__errorz00
																		(BGl_string2581z00zz__hashz00, BINT(50994L),
																		BGl_string2663z00zz__hashz00,
																		BGl_string2607z00zz__hashz00,
																		BgL_startz00_2534);
																	FAILURE(BgL_auxz00_9264, BFALSE, BFALSE);
																}
															BgL_tmpz00_9259 = CINT(BgL_tmpz00_9261);
														}
														BgL_tmpz00_9258 =
															bgl_string_hash(BSTRING_TO_STRING
															(BgL_stringz00_5136), BgL_tmpz00_9259,
															BgL_auxz00_9269);
													}
													return BINT(BgL_tmpz00_9258);
												}
											}
										}
									}
								}
							}
							break;
						default:
							return BUNSPEC;
						}
				}
			}
		}

	}



/* string-hash */
	BGL_EXPORTED_DEF long BGl_stringzd2hashzd2zz__hashz00(obj_t BgL_stringz00_164,
		obj_t BgL_startz00_165, obj_t BgL_lenz00_166)
	{
		{	/* Llib/hash.scm 1283 */
			{	/* Llib/hash.scm 1284 */
				obj_t BgL_arg1977z00_5140;

				if (CBOOL(BgL_lenz00_166))
					{	/* Llib/hash.scm 1284 */
						BgL_arg1977z00_5140 = BgL_lenz00_166;
					}
				else
					{	/* Llib/hash.scm 1284 */
						BgL_arg1977z00_5140 = BINT(STRING_LENGTH(BgL_stringz00_164));
					}
				return
					bgl_string_hash(BSTRING_TO_STRING(BgL_stringz00_164),
					CINT(BgL_startz00_165), CINT(BgL_arg1977z00_5140));
			}
		}

	}



/* string-hash-number */
	BGL_EXPORTED_DEF long BGl_stringzd2hashzd2numberz00zz__hashz00(obj_t
		BgL_stringz00_169)
	{
		{	/* Llib/hash.scm 1289 */
			{	/* Llib/hash.scm 1290 */
				long BgL_arg1978z00_5737;

				BgL_arg1978z00_5737 = STRING_LENGTH(BgL_stringz00_169);
				return
					bgl_string_hash(BSTRING_TO_STRING(BgL_stringz00_169),
					(int) (0L), (int) (BgL_arg1978z00_5737));
		}}

	}



/* &string-hash-number */
	obj_t BGl_z62stringzd2hashzd2numberz62zz__hashz00(obj_t BgL_envz00_5551,
		obj_t BgL_stringz00_5552)
	{
		{	/* Llib/hash.scm 1289 */
			{	/* Llib/hash.scm 1290 */
				long BgL_tmpz00_9294;

				{	/* Llib/hash.scm 1290 */
					obj_t BgL_auxz00_9295;

					if (STRINGP(BgL_stringz00_5552))
						{	/* Llib/hash.scm 1290 */
							BgL_auxz00_9295 = BgL_stringz00_5552;
						}
					else
						{
							obj_t BgL_auxz00_9298;

							BgL_auxz00_9298 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2581z00zz__hashz00,
								BINT(51326L), BGl_string2664z00zz__hashz00,
								BGl_string2641z00zz__hashz00, BgL_stringz00_5552);
							FAILURE(BgL_auxz00_9298, BFALSE, BFALSE);
						}
					BgL_tmpz00_9294 =
						BGl_stringzd2hashzd2numberz00zz__hashz00(BgL_auxz00_9295);
				}
				return BINT(BgL_tmpz00_9294);
			}
		}

	}



/* open-string-hashtable-rehash! */
	bool_t BGl_openzd2stringzd2hashtablezd2rehashz12zc0zz__hashz00(obj_t
		BgL_tz00_173)
	{
		{	/* Llib/hash.scm 1301 */
			{	/* Llib/hash.scm 1302 */
				obj_t BgL_osiza7eza7_2539;

				BgL_osiza7eza7_2539 = STRUCT_REF(BgL_tz00_173, (int) (1L));
				{	/* Llib/hash.scm 1302 */
					long BgL_osiza7e3za7_2540;

					BgL_osiza7e3za7_2540 = (3L * (long) CINT(BgL_osiza7eza7_2539));
					{	/* Llib/hash.scm 1303 */
						obj_t BgL_obucketsz00_2541;

						BgL_obucketsz00_2541 = STRUCT_REF(BgL_tz00_173, (int) (2L));
						{	/* Llib/hash.scm 1304 */
							long BgL_nsiza7eza7_2542;

							BgL_nsiza7eza7_2542 =
								(1L + ((long) CINT(BgL_osiza7eza7_2539) * 2L));
							{	/* Llib/hash.scm 1305 */
								obj_t BgL_nbucketsz00_2543;

								BgL_nbucketsz00_2543 =
									make_vector((BgL_nsiza7eza7_2542 * 3L), BFALSE);
								{	/* Llib/hash.scm 1306 */

									{	/* Llib/hash.scm 1307 */
										obj_t BgL_auxz00_9317;
										int BgL_tmpz00_9315;

										BgL_auxz00_9317 = BINT(BgL_nsiza7eza7_2542);
										BgL_tmpz00_9315 = (int) (1L);
										STRUCT_SET(BgL_tz00_173, BgL_tmpz00_9315, BgL_auxz00_9317);
									}
									{	/* Llib/hash.scm 1308 */
										int BgL_tmpz00_9320;

										BgL_tmpz00_9320 = (int) (2L);
										STRUCT_SET(BgL_tz00_173, BgL_tmpz00_9320,
											BgL_nbucketsz00_2543);
									}
									{	/* Llib/hash.scm 1296 */
										obj_t BgL_auxz00_9325;
										int BgL_tmpz00_9323;

										BgL_auxz00_9325 = BINT(0L);
										BgL_tmpz00_9323 = (int) (6L);
										STRUCT_SET(BgL_tz00_173, BgL_tmpz00_9323, BgL_auxz00_9325);
									}
									{	/* Llib/hash.scm 1310 */
										obj_t BgL_auxz00_9330;
										int BgL_tmpz00_9328;

										BgL_auxz00_9330 = BINT(0L);
										BgL_tmpz00_9328 = (int) (0L);
										STRUCT_SET(BgL_tz00_173, BgL_tmpz00_9328, BgL_auxz00_9330);
									}
									{
										long BgL_iz00_2545;

										BgL_iz00_2545 = 0L;
									BgL_zc3z04anonymousza31979ze3z87_2546:
										if ((BgL_iz00_2545 == BgL_osiza7e3za7_2540))
											{	/* Llib/hash.scm 1312 */
												return ((bool_t) 0);
											}
										else
											{	/* Llib/hash.scm 1313 */
												obj_t BgL_cz00_2548;

												BgL_cz00_2548 =
													VECTOR_REF(
													((obj_t) BgL_obucketsz00_2541), BgL_iz00_2545);
												if (CBOOL(BgL_cz00_2548))
													{	/* Llib/hash.scm 1315 */
														obj_t BgL_hz00_2549;

														{	/* Llib/hash.scm 1315 */
															long BgL_arg1983z00_2552;

															BgL_arg1983z00_2552 = (BgL_iz00_2545 + 2L);
															BgL_hz00_2549 =
																VECTOR_REF(
																((obj_t) BgL_obucketsz00_2541),
																BgL_arg1983z00_2552);
														}
														if (CBOOL(BgL_hz00_2549))
															{	/* Llib/hash.scm 1318 */
																obj_t BgL_arg1981z00_2550;

																{	/* Llib/hash.scm 1318 */
																	long BgL_arg1982z00_2551;

																	BgL_arg1982z00_2551 = (BgL_iz00_2545 + 1L);
																	BgL_arg1981z00_2550 =
																		VECTOR_REF(
																		((obj_t) BgL_obucketsz00_2541),
																		BgL_arg1982z00_2551);
																}
																BGl_openzd2stringzd2hashtablezd2putzf2hashz12z32zz__hashz00
																	(BgL_tz00_173, BgL_cz00_2548,
																	BgL_arg1981z00_2550, BgL_hz00_2549);
															}
														else
															{	/* Llib/hash.scm 1316 */
																BFALSE;
															}
													}
												else
													{	/* Llib/hash.scm 1314 */
														BFALSE;
													}
												{
													long BgL_iz00_9348;

													BgL_iz00_9348 = (BgL_iz00_2545 + 3L);
													BgL_iz00_2545 = BgL_iz00_9348;
													goto BgL_zc3z04anonymousza31979ze3z87_2546;
												}
											}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* open-string-hashtable-size-inc! */
	obj_t BGl_openzd2stringzd2hashtablezd2siza7ezd2incz12zb5zz__hashz00(obj_t
		BgL_tz00_175)
	{
		{	/* Llib/hash.scm 1331 */
			{	/* Llib/hash.scm 1332 */
				obj_t BgL_nz00_2559;

				BgL_nz00_2559 = STRUCT_REF(BgL_tz00_175, (int) (0L));
				if (
					(((long) CINT(BgL_nz00_2559) * 3L) >
						(2L * (long) CINT(STRUCT_REF(BgL_tz00_175, (int) (1L))))))
					{	/* Llib/hash.scm 1333 */
						return
							BBOOL(BGl_openzd2stringzd2hashtablezd2rehashz12zc0zz__hashz00
							(BgL_tz00_175));
					}
				else
					{	/* Llib/hash.scm 1335 */
						long BgL_arg1994z00_2564;

						BgL_arg1994z00_2564 = ((long) CINT(BgL_nz00_2559) + 1L);
						{	/* Llib/hash.scm 1335 */
							obj_t BgL_auxz00_9366;
							int BgL_tmpz00_9364;

							BgL_auxz00_9366 = BINT(BgL_arg1994z00_2564);
							BgL_tmpz00_9364 = (int) (0L);
							return STRUCT_SET(BgL_tz00_175, BgL_tmpz00_9364, BgL_auxz00_9366);
						}
					}
			}
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zz__hashz00(void)
	{
		{	/* Llib/hash.scm 18 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zz__hashz00(void)
	{
		{	/* Llib/hash.scm 18 */
			return BUNSPEC;
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zz__hashz00(void)
	{
		{	/* Llib/hash.scm 18 */
			return BUNSPEC;
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zz__hashz00(void)
	{
		{	/* Llib/hash.scm 18 */
			BGl_modulezd2initializa7ationz75zz__errorz00(88804785L,
				BSTRING_TO_STRING(BGl_string2665z00zz__hashz00));
			BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(115192690L,
				BSTRING_TO_STRING(BGl_string2665z00zz__hashz00));
			BGl_modulezd2initializa7ationz75zz__paramz00(453939141L,
				BSTRING_TO_STRING(BGl_string2665z00zz__hashz00));
			return
				BGl_modulezd2initializa7ationz75zz__weakhashz00(56552828L,
				BSTRING_TO_STRING(BGl_string2665z00zz__hashz00));
		}

	}

#ifdef __cplusplus
}
#endif
