/*===========================================================================*/
/*   (Object/tools.scm)                                                      */
/*   Bigloo (4.5b)                                                           */
/*   Inria -- Sophia Antipolis (c)       Fri Dec 22 05:17:06 PM CET 2023     */
/*===========================================================================*/
/* COMPILATION: (/home/serrano/prgm/project/bigloo/bigloo/bin/bigloo -ldopt -L/home/serrano/prgm/project/bigloo/bigloo/libbacktrace/home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b  -q -afile .afile -fsharing -fno-reflection -cc gcc -lib-dir /home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b -unsafev -gno-error-localization -no-hello -O2 -rm -unsafe -s -stdc -indent Object/tools.scm) */
/* 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_OBJECT_TOOLS_TYPE_DEFINITIONS
#define BGL_OBJECT_TOOLS_TYPE_DEFINITIONS

/* object type definitions */
	typedef struct BgL_typez00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_idz00;
		obj_t BgL_namez00;
		obj_t BgL_siza7eza7;
		obj_t BgL_classz00;
		obj_t BgL_coercezd2tozd2;
		obj_t BgL_parentsz00;
		bool_t BgL_initzf3zf3;
		bool_t BgL_magiczf3zf3;
		obj_t BgL_z42z42;
		obj_t BgL_aliasz00;
		obj_t BgL_pointedzd2tozd2byz00;
		obj_t BgL_tvectorz00;
		obj_t BgL_locationz00;
		obj_t BgL_importzd2locationzd2;
		int BgL_occurrencez00;
	}              *BgL_typez00_bglt;

	typedef struct BgL_valuez00_bgl
	{
		header_t header;
		obj_t widening;
	}               *BgL_valuez00_bglt;

	typedef struct BgL_globalz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_idz00;
		obj_t BgL_namez00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_valuez00_bgl *BgL_valuez00;
		obj_t BgL_accessz00;
		obj_t BgL_fastzd2alphazd2;
		obj_t BgL_removablez00;
		long BgL_occurrencez00;
		long BgL_occurrencewz00;
		bool_t BgL_userzf3zf3;
		obj_t BgL_modulez00;
		obj_t BgL_importz00;
		bool_t BgL_evaluablezf3zf3;
		bool_t BgL_evalzf3zf3;
		obj_t BgL_libraryz00;
		obj_t BgL_pragmaz00;
		obj_t BgL_srcz00;
		obj_t BgL_jvmzd2typezd2namez00;
		obj_t BgL_initz00;
		obj_t BgL_aliasz00;
	}                *BgL_globalz00_bglt;

	typedef struct BgL_tclassz00_bgl
	{
		obj_t BgL_itszd2superzd2;
		obj_t BgL_slotsz00;
		struct BgL_globalz00_bgl *BgL_holderz00;
		obj_t BgL_wideningz00;
		long BgL_depthz00;
		bool_t BgL_finalzf3zf3;
		obj_t BgL_constructorz00;
		obj_t BgL_virtualzd2slotszd2numberz00;
		bool_t BgL_abstractzf3zf3;
		obj_t BgL_widezd2typezd2;
		obj_t BgL_subclassesz00;
	}                *BgL_tclassz00_bglt;

	typedef struct BgL_slotz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_idz00;
		obj_t BgL_namez00;
		obj_t BgL_srcz00;
		obj_t BgL_classzd2ownerzd2;
		long BgL_indexz00;
		obj_t BgL_typez00;
		bool_t BgL_readzd2onlyzf3z21;
		obj_t BgL_defaultzd2valuezd2;
		obj_t BgL_virtualzd2numzd2;
		bool_t BgL_virtualzd2overridezd2;
		obj_t BgL_getterz00;
		obj_t BgL_setterz00;
		obj_t BgL_userzd2infozd2;
	}              *BgL_slotz00_bglt;


#endif													// BGL_OBJECT_TOOLS_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	static obj_t BGl_z62objzd2ze3classzd2idz81zzobject_toolsz00(obj_t, obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zzobject_toolsz00 = BUNSPEC;
	BGL_IMPORT obj_t BGl_za2classesza2z00zz__objectz00;
	extern obj_t BGl_tclassz00zzobject_classz00;
	BGL_IMPORT obj_t BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(obj_t);
	static obj_t BGl_z62makezd2directzd2setz12z70zzobject_toolsz00(obj_t, obj_t,
		obj_t, obj_t, obj_t);
	BGL_IMPORT obj_t BGl_formatz00zz__r4_output_6_10_3z00(obj_t, obj_t);
	static obj_t BGl_genericzd2initzd2zzobject_toolsz00(void);
	BGL_IMPORT obj_t BGl_stringzd2copyzd2zz__r4_strings_6_7z00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_classzd2ze3superzd2idze3zzobject_toolsz00(obj_t,
		obj_t);
	static obj_t BGl_z62classzd2ze3superzd2idz81zzobject_toolsz00(obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t BGl_classzd2ze3objzd2idze3zzobject_toolsz00(obj_t);
	static obj_t BGl_objectzd2initzd2zzobject_toolsz00(void);
	BGL_IMPORT obj_t BGl_za2inheritancesza2z00zz__objectz00;
	BGL_EXPORTED_DECL obj_t
		BGl_findzd2classzd2slotz00zzobject_toolsz00(BgL_typez00_bglt, obj_t);
	static obj_t BGl_z62findzd2classzd2slotz62zzobject_toolsz00(obj_t, obj_t,
		obj_t);
	static obj_t BGl_z62classzf3zd2idz43zzobject_toolsz00(obj_t, obj_t);
	BGL_IMPORT obj_t bstring_to_symbol(obj_t);
	BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_methodzd2initzd2zzobject_toolsz00(void);
	BGL_EXPORTED_DECL obj_t BGl_objzd2ze3classzd2idze3zzobject_toolsz00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_classzf3zd2idz21zzobject_toolsz00(obj_t);
	BGL_IMPORT obj_t string_append(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_modulezd2initializa7ationz75zzobject_toolsz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_errorz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzobject_slotsz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzobject_classz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_identz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_privatez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_toolsz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_envz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzbackend_backendz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_miscz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(long,
		char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(long,
		char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(long, char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
	static obj_t BGl_z62makezd2classzd2refz62zzobject_toolsz00(obj_t, obj_t,
		obj_t, obj_t);
	extern obj_t BGl_makezd2privatezd2sexpz00zzast_privatez00(obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t BGl_superzd2ze3classzd2idze3zzobject_toolsz00(obj_t,
		obj_t);
	static obj_t BGl_z62superzd2ze3classzd2idz81zzobject_toolsz00(obj_t, obj_t,
		obj_t);
	static obj_t BGl_cnstzd2initzd2zzobject_toolsz00(void);
	static obj_t BGl_libraryzd2moduleszd2initz00zzobject_toolsz00(void);
	static obj_t BGl_importedzd2moduleszd2initz00zzobject_toolsz00(void);
	static obj_t BGl_gczd2rootszd2initz00zzobject_toolsz00(void);
	static obj_t BGl_makezd2directzd2refz00zzobject_toolsz00(obj_t,
		BgL_slotz00_bglt, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_makezd2classzd2refz00zzobject_toolsz00(BgL_typez00_bglt,
		BgL_slotz00_bglt, obj_t);
	static obj_t BGl_z62classzd2ze3objzd2idz81zzobject_toolsz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_makezd2classzd2setz12z12zzobject_toolsz00(BgL_typez00_bglt,
		BgL_slotz00_bglt, obj_t, obj_t);
	static obj_t BGl_z62makezd2classzd2setz12z70zzobject_toolsz00(obj_t, obj_t,
		obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_makezd2directzd2setz12z12zzobject_toolsz00(BgL_typez00_bglt,
		BgL_slotz00_bglt, obj_t, obj_t);
	static obj_t __cnst[7];


	   
		 
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_objzd2ze3classzd2idzd2envz31zzobject_toolsz00,
		BgL_bgl_za762objza7d2za7e3clas1740za7,
		BGl_z62objzd2ze3classzd2idz81zzobject_toolsz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_makezd2classzd2refzd2envzd2zzobject_toolsz00,
		BgL_bgl_za762makeza7d2classza71741za7,
		BGl_z62makezd2classzd2refz62zzobject_toolsz00, 0L, BUNSPEC, 3);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_classzf3zd2idzd2envzf3zzobject_toolsz00,
		BgL_bgl_za762classza7f3za7d2id1742za7,
		BGl_z62classzf3zd2idz43zzobject_toolsz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_makezd2classzd2setz12zd2envzc0zzobject_toolsz00,
		BgL_bgl_za762makeza7d2classza71743za7,
		BGl_z62makezd2classzd2setz12z70zzobject_toolsz00, 0L, BUNSPEC, 4);
	      DEFINE_STRING(BGl_string1734z00zzobject_toolsz00,
		BgL_bgl_string1734za700za7za7o1744za7, "(((~a)COBJECT($1))->~a)", 23);
	      DEFINE_STRING(BGl_string1735z00zzobject_toolsz00,
		BgL_bgl_string1735za700za7za7o1745za7,
		"((((~a)COBJECT($1))->~a)=((~a)$2),BUNSPEC)", 42);
	      DEFINE_STRING(BGl_string1736z00zzobject_toolsz00,
		BgL_bgl_string1736za700za7za7o1746za7, "object_tools", 12);
	      DEFINE_STRING(BGl_string1737z00zzobject_toolsz00,
		BgL_bgl_string1737za700za7za7o1747za7,
		"setfield getfield object-widening -> ? obj-> ->obj ", 51);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_classzd2ze3superzd2idzd2envz31zzobject_toolsz00,
		BgL_bgl_za762classza7d2za7e3su1748za7,
		BGl_z62classzd2ze3superzd2idz81zzobject_toolsz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_findzd2classzd2slotzd2envzd2zzobject_toolsz00,
		BgL_bgl_za762findza7d2classza71749za7,
		BGl_z62findzd2classzd2slotz62zzobject_toolsz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_superzd2ze3classzd2idzd2envz31zzobject_toolsz00,
		BgL_bgl_za762superza7d2za7e3cl1750za7,
		BGl_z62superzd2ze3classzd2idz81zzobject_toolsz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_classzd2ze3objzd2idzd2envz31zzobject_toolsz00,
		BgL_bgl_za762classza7d2za7e3ob1751za7,
		BGl_z62classzd2ze3objzd2idz81zzobject_toolsz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_makezd2directzd2setz12zd2envzc0zzobject_toolsz00,
		BgL_bgl_za762makeza7d2direct1752z00,
		BGl_z62makezd2directzd2setz12z70zzobject_toolsz00, 0L, BUNSPEC, 4);

/* 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_requirezd2initializa7ationz75zzobject_toolsz00));
#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_modulezd2initializa7ationz75zzobject_toolsz00(long
		BgL_checksumz00_2220, char *BgL_fromz00_2221)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zzobject_toolsz00))
				{
					BGl_requirezd2initializa7ationz75zzobject_toolsz00 =
						BBOOL(((bool_t) 0));
					BGl_gczd2rootszd2initz00zzobject_toolsz00();
					BGl_libraryzd2moduleszd2initz00zzobject_toolsz00();
					BGl_cnstzd2initzd2zzobject_toolsz00();
					BGl_importedzd2moduleszd2initz00zzobject_toolsz00();
					return BGl_methodzd2initzd2zzobject_toolsz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* library-modules-init */
	obj_t BGl_libraryzd2moduleszd2initz00zzobject_toolsz00(void)
	{
		{	/* Object/tools.scm 15 */
			BGl_modulezd2initializa7ationz75zz__objectz00(0L, "object_tools");
			BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(0L, "object_tools");
			BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(0L,
				"object_tools");
			BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(0L, "object_tools");
			BGl_modulezd2initializa7ationz75zz__readerz00(0L, "object_tools");
			BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(0L,
				"object_tools");
			BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(0L,
				"object_tools");
			BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(0L,
				"object_tools");
			BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(0L, "object_tools");
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(0L,
				"object_tools");
			return BUNSPEC;
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zzobject_toolsz00(void)
	{
		{	/* Object/tools.scm 15 */
			{	/* Object/tools.scm 15 */
				obj_t BgL_cportz00_2209;

				{	/* Object/tools.scm 15 */
					obj_t BgL_stringz00_2216;

					BgL_stringz00_2216 = BGl_string1737z00zzobject_toolsz00;
					{	/* Object/tools.scm 15 */
						obj_t BgL_startz00_2217;

						BgL_startz00_2217 = BINT(0L);
						{	/* Object/tools.scm 15 */
							obj_t BgL_endz00_2218;

							BgL_endz00_2218 =
								BINT(STRING_LENGTH(((obj_t) BgL_stringz00_2216)));
							{	/* Object/tools.scm 15 */

								BgL_cportz00_2209 =
									BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00
									(BgL_stringz00_2216, BgL_startz00_2217, BgL_endz00_2218);
				}}}}
				{
					long BgL_iz00_2210;

					BgL_iz00_2210 = 6L;
				BgL_loopz00_2211:
					if ((BgL_iz00_2210 == -1L))
						{	/* Object/tools.scm 15 */
							return BUNSPEC;
						}
					else
						{	/* Object/tools.scm 15 */
							{	/* Object/tools.scm 15 */
								obj_t BgL_arg1739z00_2212;

								{	/* Object/tools.scm 15 */

									{	/* Object/tools.scm 15 */
										obj_t BgL_locationz00_2214;

										BgL_locationz00_2214 = BBOOL(((bool_t) 0));
										{	/* Object/tools.scm 15 */

											BgL_arg1739z00_2212 =
												BGl_readz00zz__readerz00(BgL_cportz00_2209,
												BgL_locationz00_2214);
										}
									}
								}
								{	/* Object/tools.scm 15 */
									int BgL_tmpz00_2249;

									BgL_tmpz00_2249 = (int) (BgL_iz00_2210);
									CNST_TABLE_SET(BgL_tmpz00_2249, BgL_arg1739z00_2212);
							}}
							{	/* Object/tools.scm 15 */
								int BgL_auxz00_2215;

								BgL_auxz00_2215 = (int) ((BgL_iz00_2210 - 1L));
								{
									long BgL_iz00_2254;

									BgL_iz00_2254 = (long) (BgL_auxz00_2215);
									BgL_iz00_2210 = BgL_iz00_2254;
									goto BgL_loopz00_2211;
								}
							}
						}
				}
			}
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zzobject_toolsz00(void)
	{
		{	/* Object/tools.scm 15 */
			return bgl_gc_roots_register();
		}

	}



/* class->obj-id */
	BGL_EXPORTED_DEF obj_t BGl_classzd2ze3objzd2idze3zzobject_toolsz00(obj_t
		BgL_idz00_3)
	{
		{	/* Object/tools.scm 43 */
			{	/* Object/tools.scm 44 */
				obj_t BgL_arg1324z00_1721;

				{	/* Object/tools.scm 44 */
					obj_t BgL_arg1325z00_1722;
					obj_t BgL_arg1330z00_1723;

					{	/* Object/tools.scm 44 */
						obj_t BgL_arg1454z00_2030;

						BgL_arg1454z00_2030 = SYMBOL_TO_STRING(BgL_idz00_3);
						BgL_arg1325z00_1722 =
							BGl_stringzd2copyzd2zz__r4_strings_6_7z00(BgL_arg1454z00_2030);
					}
					{	/* Object/tools.scm 44 */
						obj_t BgL_symbolz00_2031;

						BgL_symbolz00_2031 = CNST_TABLE_REF(0L);
						{	/* Object/tools.scm 44 */
							obj_t BgL_arg1454z00_2032;

							BgL_arg1454z00_2032 = SYMBOL_TO_STRING(BgL_symbolz00_2031);
							BgL_arg1330z00_1723 =
								BGl_stringzd2copyzd2zz__r4_strings_6_7z00(BgL_arg1454z00_2032);
						}
					}
					BgL_arg1324z00_1721 =
						string_append(BgL_arg1325z00_1722, BgL_arg1330z00_1723);
				}
				return bstring_to_symbol(BgL_arg1324z00_1721);
			}
		}

	}



/* &class->obj-id */
	obj_t BGl_z62classzd2ze3objzd2idz81zzobject_toolsz00(obj_t BgL_envz00_2180,
		obj_t BgL_idz00_2181)
	{
		{	/* Object/tools.scm 43 */
			return BGl_classzd2ze3objzd2idze3zzobject_toolsz00(BgL_idz00_2181);
		}

	}



/* obj->class-id */
	BGL_EXPORTED_DEF obj_t BGl_objzd2ze3classzd2idze3zzobject_toolsz00(obj_t
		BgL_idz00_4)
	{
		{	/* Object/tools.scm 49 */
			{	/* Object/tools.scm 50 */
				obj_t BgL_arg1331z00_1724;

				{	/* Object/tools.scm 50 */
					obj_t BgL_arg1332z00_1725;
					obj_t BgL_arg1337z00_1726;

					{	/* Object/tools.scm 50 */
						obj_t BgL_symbolz00_2034;

						BgL_symbolz00_2034 = CNST_TABLE_REF(1L);
						{	/* Object/tools.scm 50 */
							obj_t BgL_arg1454z00_2035;

							BgL_arg1454z00_2035 = SYMBOL_TO_STRING(BgL_symbolz00_2034);
							BgL_arg1332z00_1725 =
								BGl_stringzd2copyzd2zz__r4_strings_6_7z00(BgL_arg1454z00_2035);
						}
					}
					{	/* Object/tools.scm 50 */
						obj_t BgL_arg1454z00_2037;

						BgL_arg1454z00_2037 = SYMBOL_TO_STRING(BgL_idz00_4);
						BgL_arg1337z00_1726 =
							BGl_stringzd2copyzd2zz__r4_strings_6_7z00(BgL_arg1454z00_2037);
					}
					BgL_arg1331z00_1724 =
						string_append(BgL_arg1332z00_1725, BgL_arg1337z00_1726);
				}
				return bstring_to_symbol(BgL_arg1331z00_1724);
			}
		}

	}



/* &obj->class-id */
	obj_t BGl_z62objzd2ze3classzd2idz81zzobject_toolsz00(obj_t BgL_envz00_2182,
		obj_t BgL_idz00_2183)
	{
		{	/* Object/tools.scm 49 */
			return BGl_objzd2ze3classzd2idze3zzobject_toolsz00(BgL_idz00_2183);
		}

	}



/* class?-id */
	BGL_EXPORTED_DEF obj_t BGl_classzf3zd2idz21zzobject_toolsz00(obj_t
		BgL_idz00_5)
	{
		{	/* Object/tools.scm 55 */
			{	/* Object/tools.scm 56 */
				obj_t BgL_arg1338z00_1727;

				{	/* Object/tools.scm 56 */
					obj_t BgL_arg1341z00_1728;
					obj_t BgL_arg1343z00_1729;

					{	/* Object/tools.scm 56 */
						obj_t BgL_arg1454z00_2040;

						BgL_arg1454z00_2040 = SYMBOL_TO_STRING(BgL_idz00_5);
						BgL_arg1341z00_1728 =
							BGl_stringzd2copyzd2zz__r4_strings_6_7z00(BgL_arg1454z00_2040);
					}
					{	/* Object/tools.scm 56 */
						obj_t BgL_symbolz00_2041;

						BgL_symbolz00_2041 = CNST_TABLE_REF(2L);
						{	/* Object/tools.scm 56 */
							obj_t BgL_arg1454z00_2042;

							BgL_arg1454z00_2042 = SYMBOL_TO_STRING(BgL_symbolz00_2041);
							BgL_arg1343z00_1729 =
								BGl_stringzd2copyzd2zz__r4_strings_6_7z00(BgL_arg1454z00_2042);
						}
					}
					BgL_arg1338z00_1727 =
						string_append(BgL_arg1341z00_1728, BgL_arg1343z00_1729);
				}
				return bstring_to_symbol(BgL_arg1338z00_1727);
			}
		}

	}



/* &class?-id */
	obj_t BGl_z62classzf3zd2idz43zzobject_toolsz00(obj_t BgL_envz00_2184,
		obj_t BgL_idz00_2185)
	{
		{	/* Object/tools.scm 55 */
			return BGl_classzf3zd2idz21zzobject_toolsz00(BgL_idz00_2185);
		}

	}



/* class->super-id */
	BGL_EXPORTED_DEF obj_t BGl_classzd2ze3superzd2idze3zzobject_toolsz00(obj_t
		BgL_classz00_6, obj_t BgL_superz00_7)
	{
		{	/* Object/tools.scm 61 */
			{	/* Object/tools.scm 62 */
				obj_t BgL_list1344z00_2044;

				{	/* Object/tools.scm 62 */
					obj_t BgL_arg1346z00_2045;

					{	/* Object/tools.scm 62 */
						obj_t BgL_arg1347z00_2046;

						BgL_arg1347z00_2046 = MAKE_YOUNG_PAIR(BgL_superz00_7, BNIL);
						BgL_arg1346z00_2045 =
							MAKE_YOUNG_PAIR(CNST_TABLE_REF(3L), BgL_arg1347z00_2046);
					}
					BgL_list1344z00_2044 =
						MAKE_YOUNG_PAIR(BgL_classz00_6, BgL_arg1346z00_2045);
				}
				return
					BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list1344z00_2044);
			}
		}

	}



/* &class->super-id */
	obj_t BGl_z62classzd2ze3superzd2idz81zzobject_toolsz00(obj_t BgL_envz00_2186,
		obj_t BgL_classz00_2187, obj_t BgL_superz00_2188)
	{
		{	/* Object/tools.scm 61 */
			return
				BGl_classzd2ze3superzd2idze3zzobject_toolsz00(BgL_classz00_2187,
				BgL_superz00_2188);
		}

	}



/* super->class-id */
	BGL_EXPORTED_DEF obj_t BGl_superzd2ze3classzd2idze3zzobject_toolsz00(obj_t
		BgL_superz00_8, obj_t BgL_classz00_9)
	{
		{	/* Object/tools.scm 67 */
			{	/* Object/tools.scm 68 */
				obj_t BgL_list1348z00_2047;

				{	/* Object/tools.scm 68 */
					obj_t BgL_arg1352z00_2048;

					{	/* Object/tools.scm 68 */
						obj_t BgL_arg1354z00_2049;

						BgL_arg1354z00_2049 = MAKE_YOUNG_PAIR(BgL_classz00_9, BNIL);
						BgL_arg1352z00_2048 =
							MAKE_YOUNG_PAIR(CNST_TABLE_REF(3L), BgL_arg1354z00_2049);
					}
					BgL_list1348z00_2047 =
						MAKE_YOUNG_PAIR(BgL_superz00_8, BgL_arg1352z00_2048);
				}
				return
					BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list1348z00_2047);
			}
		}

	}



/* &super->class-id */
	obj_t BGl_z62superzd2ze3classzd2idz81zzobject_toolsz00(obj_t BgL_envz00_2189,
		obj_t BgL_superz00_2190, obj_t BgL_classz00_2191)
	{
		{	/* Object/tools.scm 67 */
			return
				BGl_superzd2ze3classzd2idze3zzobject_toolsz00(BgL_superz00_2190,
				BgL_classz00_2191);
		}

	}



/* make-class-ref */
	BGL_EXPORTED_DEF obj_t
		BGl_makezd2classzd2refz00zzobject_toolsz00(BgL_typez00_bglt BgL_typez00_10,
		BgL_slotz00_bglt BgL_slotz00_11, obj_t BgL_objz00_12)
	{
		{	/* Object/tools.scm 73 */
			{	/* Object/tools.scm 74 */
				obj_t BgL_klassz00_1736;

				BgL_klassz00_1736 =
					(((BgL_slotz00_bglt) COBJECT(BgL_slotz00_11))->BgL_classzd2ownerzd2);
				{	/* Object/tools.scm 74 */
					obj_t BgL_wideningz00_1737;

					{	/* Object/tools.scm 75 */
						bool_t BgL_test1756z00_2294;

						{	/* Object/tools.scm 75 */
							obj_t BgL_classz00_2051;

							BgL_classz00_2051 = BGl_tclassz00zzobject_classz00;
							if (BGL_OBJECTP(BgL_klassz00_1736))
								{	/* Object/tools.scm 75 */
									BgL_objectz00_bglt BgL_arg1801z00_2053;

									BgL_arg1801z00_2053 =
										(BgL_objectz00_bglt) (BgL_klassz00_1736);
									if (BGL_CONDEXPAND_ISA_ARCH64())
										{	/* Object/tools.scm 75 */
											long BgL_idxz00_2059;

											BgL_idxz00_2059 =
												BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_2053);
											BgL_test1756z00_2294 =
												(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
													(BgL_idxz00_2059 + 2L)) == BgL_classz00_2051);
										}
									else
										{	/* Object/tools.scm 75 */
											bool_t BgL_res1731z00_2081;

											{	/* Object/tools.scm 75 */
												obj_t BgL_oclassz00_2067;

												{	/* Object/tools.scm 75 */
													long BgL_arg1808z00_2073;

													{	/* Object/tools.scm 75 */
														long BgL_arg1809z00_2074;

														BgL_arg1809z00_2074 =
															BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_2053);
														BgL_arg1808z00_2073 =
															(BgL_arg1809z00_2074 - OBJECT_TYPE);
													}
													BgL_oclassz00_2067 =
														VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
														BgL_arg1808z00_2073);
												}
												{	/* Object/tools.scm 75 */
													bool_t BgL__ortest_1115z00_2068;

													BgL__ortest_1115z00_2068 =
														(BgL_classz00_2051 == BgL_oclassz00_2067);
													if (BgL__ortest_1115z00_2068)
														{	/* Object/tools.scm 75 */
															BgL_res1731z00_2081 = BgL__ortest_1115z00_2068;
														}
													else
														{	/* Object/tools.scm 75 */
															long BgL_odepthz00_2069;

															BgL_odepthz00_2069 =
																BGL_CLASS_DEPTH(BgL_oclassz00_2067);
															if ((2L < BgL_odepthz00_2069))
																{	/* Object/tools.scm 75 */
																	obj_t BgL_arg1797z00_2071;

																	BgL_arg1797z00_2071 =
																		BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_2067,
																		2L);
																	BgL_res1731z00_2081 =
																		(BgL_arg1797z00_2071 == BgL_classz00_2051);
																}
															else
																{	/* Object/tools.scm 75 */
																	BgL_res1731z00_2081 = ((bool_t) 0);
																}
														}
												}
											}
											BgL_test1756z00_2294 = BgL_res1731z00_2081;
										}
								}
							else
								{	/* Object/tools.scm 75 */
									BgL_test1756z00_2294 = ((bool_t) 0);
								}
						}
						if (BgL_test1756z00_2294)
							{
								BgL_tclassz00_bglt BgL_auxz00_2314;

								{
									obj_t BgL_auxz00_2315;

									{	/* Object/tools.scm 75 */
										BgL_objectz00_bglt BgL_tmpz00_2316;

										BgL_tmpz00_2316 =
											((BgL_objectz00_bglt)
											((BgL_typez00_bglt) BgL_klassz00_1736));
										BgL_auxz00_2315 = BGL_OBJECT_WIDENING(BgL_tmpz00_2316);
									}
									BgL_auxz00_2314 = ((BgL_tclassz00_bglt) BgL_auxz00_2315);
								}
								BgL_wideningz00_1737 =
									(((BgL_tclassz00_bglt) COBJECT(BgL_auxz00_2314))->
									BgL_wideningz00);
							}
						else
							{	/* Object/tools.scm 75 */
								BgL_wideningz00_1737 = BFALSE;
							}
					}
					{	/* Object/tools.scm 75 */

						if (CBOOL(BgL_wideningz00_1737))
							{	/* Object/tools.scm 78 */
								obj_t BgL_arg1361z00_1738;
								obj_t BgL_arg1363z00_1739;

								{
									BgL_tclassz00_bglt BgL_auxz00_2324;

									{
										obj_t BgL_auxz00_2325;

										{	/* Object/tools.scm 78 */
											BgL_objectz00_bglt BgL_tmpz00_2326;

											BgL_tmpz00_2326 =
												((BgL_objectz00_bglt)
												((BgL_typez00_bglt) BgL_typez00_10));
											BgL_auxz00_2325 = BGL_OBJECT_WIDENING(BgL_tmpz00_2326);
										}
										BgL_auxz00_2324 = ((BgL_tclassz00_bglt) BgL_auxz00_2325);
									}
									BgL_arg1361z00_1738 =
										(((BgL_tclassz00_bglt) COBJECT(BgL_auxz00_2324))->
										BgL_widezd2typezd2);
								}
								{	/* Object/tools.scm 78 */
									obj_t BgL_arg1366z00_1740;

									BgL_arg1366z00_1740 = MAKE_YOUNG_PAIR(BgL_objz00_12, BNIL);
									BgL_arg1363z00_1739 =
										MAKE_YOUNG_PAIR(CNST_TABLE_REF(4L), BgL_arg1366z00_1740);
								}
								return
									BGl_makezd2directzd2refz00zzobject_toolsz00
									(BgL_arg1361z00_1738, BgL_slotz00_11, BgL_arg1363z00_1739);
							}
						else
							{	/* Object/tools.scm 76 */
								return
									BGl_makezd2directzd2refz00zzobject_toolsz00(
									((obj_t) BgL_typez00_10), BgL_slotz00_11, BgL_objz00_12);
							}
					}
				}
			}
		}

	}



/* &make-class-ref */
	obj_t BGl_z62makezd2classzd2refz62zzobject_toolsz00(obj_t BgL_envz00_2192,
		obj_t BgL_typez00_2193, obj_t BgL_slotz00_2194, obj_t BgL_objz00_2195)
	{
		{	/* Object/tools.scm 73 */
			return
				BGl_makezd2classzd2refz00zzobject_toolsz00(
				((BgL_typez00_bglt) BgL_typez00_2193),
				((BgL_slotz00_bglt) BgL_slotz00_2194), BgL_objz00_2195);
		}

	}



/* make-class-set! */
	BGL_EXPORTED_DEF obj_t
		BGl_makezd2classzd2setz12z12zzobject_toolsz00(BgL_typez00_bglt
		BgL_typez00_13, BgL_slotz00_bglt BgL_slotz00_14, obj_t BgL_objz00_15,
		obj_t BgL_valz00_16)
	{
		{	/* Object/tools.scm 83 */
			{	/* Object/tools.scm 84 */
				obj_t BgL_klassz00_1742;

				BgL_klassz00_1742 =
					(((BgL_slotz00_bglt) COBJECT(BgL_slotz00_14))->BgL_classzd2ownerzd2);
				{	/* Object/tools.scm 84 */
					obj_t BgL_wideningz00_1743;

					{	/* Object/tools.scm 85 */
						bool_t BgL_test1763z00_2342;

						{	/* Object/tools.scm 85 */
							obj_t BgL_classz00_2087;

							BgL_classz00_2087 = BGl_tclassz00zzobject_classz00;
							if (BGL_OBJECTP(BgL_klassz00_1742))
								{	/* Object/tools.scm 85 */
									BgL_objectz00_bglt BgL_arg1801z00_2089;

									BgL_arg1801z00_2089 =
										(BgL_objectz00_bglt) (BgL_klassz00_1742);
									if (BGL_CONDEXPAND_ISA_ARCH64())
										{	/* Object/tools.scm 85 */
											long BgL_idxz00_2095;

											BgL_idxz00_2095 =
												BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_2089);
											BgL_test1763z00_2342 =
												(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
													(BgL_idxz00_2095 + 2L)) == BgL_classz00_2087);
										}
									else
										{	/* Object/tools.scm 85 */
											bool_t BgL_res1732z00_2117;

											{	/* Object/tools.scm 85 */
												obj_t BgL_oclassz00_2103;

												{	/* Object/tools.scm 85 */
													long BgL_arg1808z00_2109;

													{	/* Object/tools.scm 85 */
														long BgL_arg1809z00_2110;

														BgL_arg1809z00_2110 =
															BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_2089);
														BgL_arg1808z00_2109 =
															(BgL_arg1809z00_2110 - OBJECT_TYPE);
													}
													BgL_oclassz00_2103 =
														VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
														BgL_arg1808z00_2109);
												}
												{	/* Object/tools.scm 85 */
													bool_t BgL__ortest_1115z00_2104;

													BgL__ortest_1115z00_2104 =
														(BgL_classz00_2087 == BgL_oclassz00_2103);
													if (BgL__ortest_1115z00_2104)
														{	/* Object/tools.scm 85 */
															BgL_res1732z00_2117 = BgL__ortest_1115z00_2104;
														}
													else
														{	/* Object/tools.scm 85 */
															long BgL_odepthz00_2105;

															BgL_odepthz00_2105 =
																BGL_CLASS_DEPTH(BgL_oclassz00_2103);
															if ((2L < BgL_odepthz00_2105))
																{	/* Object/tools.scm 85 */
																	obj_t BgL_arg1797z00_2107;

																	BgL_arg1797z00_2107 =
																		BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_2103,
																		2L);
																	BgL_res1732z00_2117 =
																		(BgL_arg1797z00_2107 == BgL_classz00_2087);
																}
															else
																{	/* Object/tools.scm 85 */
																	BgL_res1732z00_2117 = ((bool_t) 0);
																}
														}
												}
											}
											BgL_test1763z00_2342 = BgL_res1732z00_2117;
										}
								}
							else
								{	/* Object/tools.scm 85 */
									BgL_test1763z00_2342 = ((bool_t) 0);
								}
						}
						if (BgL_test1763z00_2342)
							{
								BgL_tclassz00_bglt BgL_auxz00_2362;

								{
									obj_t BgL_auxz00_2363;

									{	/* Object/tools.scm 85 */
										BgL_objectz00_bglt BgL_tmpz00_2364;

										BgL_tmpz00_2364 =
											((BgL_objectz00_bglt)
											((BgL_typez00_bglt) BgL_klassz00_1742));
										BgL_auxz00_2363 = BGL_OBJECT_WIDENING(BgL_tmpz00_2364);
									}
									BgL_auxz00_2362 = ((BgL_tclassz00_bglt) BgL_auxz00_2363);
								}
								BgL_wideningz00_1743 =
									(((BgL_tclassz00_bglt) COBJECT(BgL_auxz00_2362))->
									BgL_wideningz00);
							}
						else
							{	/* Object/tools.scm 85 */
								BgL_wideningz00_1743 = BFALSE;
							}
					}
					{	/* Object/tools.scm 85 */

						if (CBOOL(BgL_wideningz00_1743))
							{	/* Object/tools.scm 88 */
								obj_t BgL_arg1369z00_1744;
								obj_t BgL_arg1372z00_1745;

								{
									BgL_tclassz00_bglt BgL_auxz00_2372;

									{
										obj_t BgL_auxz00_2373;

										{	/* Object/tools.scm 88 */
											BgL_objectz00_bglt BgL_tmpz00_2374;

											BgL_tmpz00_2374 =
												((BgL_objectz00_bglt)
												((BgL_typez00_bglt) BgL_typez00_13));
											BgL_auxz00_2373 = BGL_OBJECT_WIDENING(BgL_tmpz00_2374);
										}
										BgL_auxz00_2372 = ((BgL_tclassz00_bglt) BgL_auxz00_2373);
									}
									BgL_arg1369z00_1744 =
										(((BgL_tclassz00_bglt) COBJECT(BgL_auxz00_2372))->
										BgL_widezd2typezd2);
								}
								{	/* Object/tools.scm 88 */
									obj_t BgL_arg1373z00_1746;

									BgL_arg1373z00_1746 = MAKE_YOUNG_PAIR(BgL_objz00_15, BNIL);
									BgL_arg1372z00_1745 =
										MAKE_YOUNG_PAIR(CNST_TABLE_REF(4L), BgL_arg1373z00_1746);
								}
								BGL_TAIL return
									BGl_makezd2directzd2setz12z12zzobject_toolsz00(
									((BgL_typez00_bglt) BgL_arg1369z00_1744), BgL_slotz00_14,
									BgL_arg1372z00_1745, BgL_valz00_16);
							}
						else
							{	/* Object/tools.scm 86 */
								BGL_TAIL return
									BGl_makezd2directzd2setz12z12zzobject_toolsz00(BgL_typez00_13,
									BgL_slotz00_14, BgL_objz00_15, BgL_valz00_16);
							}
					}
				}
			}
		}

	}



/* &make-class-set! */
	obj_t BGl_z62makezd2classzd2setz12z70zzobject_toolsz00(obj_t BgL_envz00_2196,
		obj_t BgL_typez00_2197, obj_t BgL_slotz00_2198, obj_t BgL_objz00_2199,
		obj_t BgL_valz00_2200)
	{
		{	/* Object/tools.scm 83 */
			return
				BGl_makezd2classzd2setz12z12zzobject_toolsz00(
				((BgL_typez00_bglt) BgL_typez00_2197),
				((BgL_slotz00_bglt) BgL_slotz00_2198), BgL_objz00_2199,
				BgL_valz00_2200);
		}

	}



/* make-direct-ref */
	obj_t BGl_makezd2directzd2refz00zzobject_toolsz00(obj_t BgL_typez00_17,
		BgL_slotz00_bglt BgL_slotz00_18, obj_t BgL_objz00_19)
	{
		{	/* Object/tools.scm 93 */
			{	/* Object/tools.scm 94 */
				obj_t BgL_fnamez00_1748;

				BgL_fnamez00_1748 =
					(((BgL_slotz00_bglt) COBJECT(BgL_slotz00_18))->BgL_namez00);
				{	/* Object/tools.scm 94 */
					obj_t BgL_tnamez00_1749;

					BgL_tnamez00_1749 =
						(((BgL_typez00_bglt) COBJECT(
								((BgL_typez00_bglt) BgL_typez00_17)))->BgL_namez00);
					{	/* Object/tools.scm 95 */
						obj_t BgL_fmtz00_1750;

						{	/* Object/tools.scm 96 */
							obj_t BgL_list1408z00_1758;

							{	/* Object/tools.scm 96 */
								obj_t BgL_arg1420z00_1759;

								BgL_arg1420z00_1759 = MAKE_YOUNG_PAIR(BgL_fnamez00_1748, BNIL);
								BgL_list1408z00_1758 =
									MAKE_YOUNG_PAIR(BgL_tnamez00_1749, BgL_arg1420z00_1759);
							}
							BgL_fmtz00_1750 =
								BGl_formatz00zz__r4_output_6_10_3z00
								(BGl_string1734z00zzobject_toolsz00, BgL_list1408z00_1758);
						}
						{	/* Object/tools.scm 96 */

							{	/* Object/tools.scm 98 */
								obj_t BgL_arg1374z00_1751;
								obj_t BgL_arg1375z00_1752;

								BgL_arg1374z00_1751 =
									(((BgL_typez00_bglt) COBJECT(
											((BgL_typez00_bglt)
												(((BgL_slotz00_bglt) COBJECT(BgL_slotz00_18))->
													BgL_typez00))))->BgL_idz00);
								BgL_arg1375z00_1752 =
									(((BgL_typez00_bglt) COBJECT(((BgL_typez00_bglt)
												BgL_typez00_17)))->BgL_idz00);
								{	/* Object/tools.scm 97 */
									obj_t BgL_list1376z00_1753;

									{	/* Object/tools.scm 97 */
										obj_t BgL_arg1377z00_1754;

										{	/* Object/tools.scm 97 */
											obj_t BgL_arg1379z00_1755;

											{	/* Object/tools.scm 97 */
												obj_t BgL_arg1397z00_1756;

												BgL_arg1397z00_1756 =
													MAKE_YOUNG_PAIR(BgL_objz00_19, BNIL);
												BgL_arg1379z00_1755 =
													MAKE_YOUNG_PAIR(BgL_fmtz00_1750, BgL_arg1397z00_1756);
											}
											BgL_arg1377z00_1754 =
												MAKE_YOUNG_PAIR(BgL_fnamez00_1748, BgL_arg1379z00_1755);
										}
										BgL_list1376z00_1753 =
											MAKE_YOUNG_PAIR(BgL_arg1375z00_1752, BgL_arg1377z00_1754);
									}
									return
										BGl_makezd2privatezd2sexpz00zzast_privatez00(CNST_TABLE_REF
										(5L), BgL_arg1374z00_1751, BgL_list1376z00_1753);
								}
							}
						}
					}
				}
			}
		}

	}



/* make-direct-set! */
	BGL_EXPORTED_DEF obj_t
		BGl_makezd2directzd2setz12z12zzobject_toolsz00(BgL_typez00_bglt
		BgL_typez00_20, BgL_slotz00_bglt BgL_slotz00_21, obj_t BgL_objz00_22,
		obj_t BgL_valz00_23)
	{
		{	/* Object/tools.scm 107 */
			{	/* Object/tools.scm 108 */
				obj_t BgL_fnamez00_1760;

				BgL_fnamez00_1760 =
					(((BgL_slotz00_bglt) COBJECT(BgL_slotz00_21))->BgL_namez00);
				{	/* Object/tools.scm 108 */
					obj_t BgL_tnamez00_1761;

					BgL_tnamez00_1761 =
						(((BgL_typez00_bglt) COBJECT(BgL_typez00_20))->BgL_namez00);
					{	/* Object/tools.scm 109 */
						obj_t BgL_fmtz00_1762;

						{	/* Object/tools.scm 111 */
							obj_t BgL_arg1491z00_1772;

							BgL_arg1491z00_1772 =
								(((BgL_typez00_bglt) COBJECT(
										((BgL_typez00_bglt)
											(((BgL_slotz00_bglt) COBJECT(BgL_slotz00_21))->
												BgL_typez00))))->BgL_namez00);
							{	/* Object/tools.scm 110 */
								obj_t BgL_list1492z00_1773;

								{	/* Object/tools.scm 110 */
									obj_t BgL_arg1494z00_1774;

									{	/* Object/tools.scm 110 */
										obj_t BgL_arg1496z00_1775;

										BgL_arg1496z00_1775 =
											MAKE_YOUNG_PAIR(BgL_arg1491z00_1772, BNIL);
										BgL_arg1494z00_1774 =
											MAKE_YOUNG_PAIR(BgL_fnamez00_1760, BgL_arg1496z00_1775);
									}
									BgL_list1492z00_1773 =
										MAKE_YOUNG_PAIR(BgL_tnamez00_1761, BgL_arg1494z00_1774);
								}
								BgL_fmtz00_1762 =
									BGl_formatz00zz__r4_output_6_10_3z00
									(BGl_string1735z00zzobject_toolsz00, BgL_list1492z00_1773);
							}
						}
						{	/* Object/tools.scm 110 */

							{	/* Object/tools.scm 113 */
								obj_t BgL_arg1431z00_1763;
								obj_t BgL_arg1436z00_1764;
								obj_t BgL_arg1437z00_1765;

								BgL_arg1431z00_1763 =
									(((BgL_typez00_bglt) COBJECT(
											((BgL_typez00_bglt)
												(((BgL_slotz00_bglt) COBJECT(BgL_slotz00_21))->
													BgL_typez00))))->BgL_idz00);
								BgL_arg1436z00_1764 =
									(((BgL_typez00_bglt) COBJECT(BgL_typez00_20))->BgL_idz00);
								BgL_arg1437z00_1765 =
									(((BgL_slotz00_bglt) COBJECT(BgL_slotz00_21))->BgL_namez00);
								{	/* Object/tools.scm 112 */
									obj_t BgL_list1438z00_1766;

									{	/* Object/tools.scm 112 */
										obj_t BgL_arg1450z00_1767;

										{	/* Object/tools.scm 112 */
											obj_t BgL_arg1451z00_1768;

											{	/* Object/tools.scm 112 */
												obj_t BgL_arg1452z00_1769;

												{	/* Object/tools.scm 112 */
													obj_t BgL_arg1453z00_1770;

													BgL_arg1453z00_1770 =
														MAKE_YOUNG_PAIR(BgL_valz00_23, BNIL);
													BgL_arg1452z00_1769 =
														MAKE_YOUNG_PAIR(BgL_objz00_22, BgL_arg1453z00_1770);
												}
												BgL_arg1451z00_1768 =
													MAKE_YOUNG_PAIR(BgL_fmtz00_1762, BgL_arg1452z00_1769);
											}
											BgL_arg1450z00_1767 =
												MAKE_YOUNG_PAIR(BgL_arg1437z00_1765,
												BgL_arg1451z00_1768);
										}
										BgL_list1438z00_1766 =
											MAKE_YOUNG_PAIR(BgL_arg1436z00_1764, BgL_arg1450z00_1767);
									}
									return
										BGl_makezd2privatezd2sexpz00zzast_privatez00(CNST_TABLE_REF
										(6L), BgL_arg1431z00_1763, BgL_list1438z00_1766);
								}
							}
						}
					}
				}
			}
		}

	}



/* &make-direct-set! */
	obj_t BGl_z62makezd2directzd2setz12z70zzobject_toolsz00(obj_t BgL_envz00_2201,
		obj_t BgL_typez00_2202, obj_t BgL_slotz00_2203, obj_t BgL_objz00_2204,
		obj_t BgL_valz00_2205)
	{
		{	/* Object/tools.scm 107 */
			return
				BGl_makezd2directzd2setz12z12zzobject_toolsz00(
				((BgL_typez00_bglt) BgL_typez00_2202),
				((BgL_slotz00_bglt) BgL_slotz00_2203), BgL_objz00_2204,
				BgL_valz00_2205);
		}

	}



/* find-class-slot */
	BGL_EXPORTED_DEF obj_t
		BGl_findzd2classzd2slotz00zzobject_toolsz00(BgL_typez00_bglt
		BgL_klassz00_24, obj_t BgL_idz00_25)
	{
		{	/* Object/tools.scm 122 */
		BGl_findzd2classzd2slotz00zzobject_toolsz00:
			{	/* Object/tools.scm 123 */
				obj_t BgL_g1109z00_1777;

				{
					BgL_tclassz00_bglt BgL_auxz00_2430;

					{
						obj_t BgL_auxz00_2431;

						{	/* Object/tools.scm 123 */
							BgL_objectz00_bglt BgL_tmpz00_2432;

							BgL_tmpz00_2432 =
								((BgL_objectz00_bglt) ((BgL_typez00_bglt) BgL_klassz00_24));
							BgL_auxz00_2431 = BGL_OBJECT_WIDENING(BgL_tmpz00_2432);
						}
						BgL_auxz00_2430 = ((BgL_tclassz00_bglt) BgL_auxz00_2431);
					}
					BgL_g1109z00_1777 =
						(((BgL_tclassz00_bglt) COBJECT(BgL_auxz00_2430))->BgL_slotsz00);
				}
				{
					obj_t BgL_slotsz00_1779;

					BgL_slotsz00_1779 = BgL_g1109z00_1777;
				BgL_zc3z04anonymousza31498ze3z87_1780:
					if (NULLP(BgL_slotsz00_1779))
						{	/* Object/tools.scm 126 */
							bool_t BgL_test1770z00_2440;

							{	/* Object/tools.scm 126 */
								obj_t BgL_tmpz00_2441;

								{
									BgL_tclassz00_bglt BgL_auxz00_2442;

									{
										obj_t BgL_auxz00_2443;

										{	/* Object/tools.scm 126 */
											BgL_objectz00_bglt BgL_tmpz00_2444;

											BgL_tmpz00_2444 =
												((BgL_objectz00_bglt)
												((BgL_typez00_bglt) BgL_klassz00_24));
											BgL_auxz00_2443 = BGL_OBJECT_WIDENING(BgL_tmpz00_2444);
										}
										BgL_auxz00_2442 = ((BgL_tclassz00_bglt) BgL_auxz00_2443);
									}
									BgL_tmpz00_2441 =
										(((BgL_tclassz00_bglt) COBJECT(BgL_auxz00_2442))->
										BgL_wideningz00);
								}
								BgL_test1770z00_2440 = CBOOL(BgL_tmpz00_2441);
							}
							if (BgL_test1770z00_2440)
								{	/* Object/tools.scm 127 */
									obj_t BgL_arg1519z00_1783;

									{
										BgL_tclassz00_bglt BgL_auxz00_2451;

										{
											obj_t BgL_auxz00_2452;

											{	/* Object/tools.scm 127 */
												BgL_objectz00_bglt BgL_tmpz00_2453;

												BgL_tmpz00_2453 =
													((BgL_objectz00_bglt)
													((BgL_typez00_bglt) BgL_klassz00_24));
												BgL_auxz00_2452 = BGL_OBJECT_WIDENING(BgL_tmpz00_2453);
											}
											BgL_auxz00_2451 = ((BgL_tclassz00_bglt) BgL_auxz00_2452);
										}
										BgL_arg1519z00_1783 =
											(((BgL_tclassz00_bglt) COBJECT(BgL_auxz00_2451))->
											BgL_itszd2superzd2);
									}
									{
										BgL_typez00_bglt BgL_klassz00_2459;

										BgL_klassz00_2459 =
											((BgL_typez00_bglt) BgL_arg1519z00_1783);
										BgL_klassz00_24 = BgL_klassz00_2459;
										goto BGl_findzd2classzd2slotz00zzobject_toolsz00;
									}
								}
							else
								{	/* Object/tools.scm 126 */
									return BFALSE;
								}
						}
					else
						{	/* Object/tools.scm 125 */
							if (
								((((BgL_slotz00_bglt) COBJECT(
												((BgL_slotz00_bglt)
													CAR(
														((obj_t) BgL_slotsz00_1779)))))->BgL_idz00) ==
									BgL_idz00_25))
								{	/* Object/tools.scm 128 */
									return CAR(((obj_t) BgL_slotsz00_1779));
								}
							else
								{	/* Object/tools.scm 131 */
									obj_t BgL_arg1534z00_1787;

									BgL_arg1534z00_1787 = CDR(((obj_t) BgL_slotsz00_1779));
									{
										obj_t BgL_slotsz00_2471;

										BgL_slotsz00_2471 = BgL_arg1534z00_1787;
										BgL_slotsz00_1779 = BgL_slotsz00_2471;
										goto BgL_zc3z04anonymousza31498ze3z87_1780;
									}
								}
						}
				}
			}
		}

	}



/* &find-class-slot */
	obj_t BGl_z62findzd2classzd2slotz62zzobject_toolsz00(obj_t BgL_envz00_2206,
		obj_t BgL_klassz00_2207, obj_t BgL_idz00_2208)
	{
		{	/* Object/tools.scm 122 */
			return
				BGl_findzd2classzd2slotz00zzobject_toolsz00(
				((BgL_typez00_bglt) BgL_klassz00_2207), BgL_idz00_2208);
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zzobject_toolsz00(void)
	{
		{	/* Object/tools.scm 15 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zzobject_toolsz00(void)
	{
		{	/* Object/tools.scm 15 */
			return BUNSPEC;
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zzobject_toolsz00(void)
	{
		{	/* Object/tools.scm 15 */
			return BUNSPEC;
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zzobject_toolsz00(void)
	{
		{	/* Object/tools.scm 15 */
			BGl_modulezd2initializa7ationz75zztools_miscz00(9470071L,
				BSTRING_TO_STRING(BGl_string1736z00zzobject_toolsz00));
			BGl_modulezd2initializa7ationz75zzbackend_backendz00(216206620L,
				BSTRING_TO_STRING(BGl_string1736z00zzobject_toolsz00));
			BGl_modulezd2initializa7ationz75zztype_typez00(515343395L,
				BSTRING_TO_STRING(BGl_string1736z00zzobject_toolsz00));
			BGl_modulezd2initializa7ationz75zztype_envz00(296457443L,
				BSTRING_TO_STRING(BGl_string1736z00zzobject_toolsz00));
			BGl_modulezd2initializa7ationz75zztype_cachez00(346491734L,
				BSTRING_TO_STRING(BGl_string1736z00zzobject_toolsz00));
			BGl_modulezd2initializa7ationz75zztype_toolsz00(453414928L,
				BSTRING_TO_STRING(BGl_string1736z00zzobject_toolsz00));
			BGl_modulezd2initializa7ationz75zzast_varz00(90839984L,
				BSTRING_TO_STRING(BGl_string1736z00zzobject_toolsz00));
			BGl_modulezd2initializa7ationz75zzast_nodez00(469732712L,
				BSTRING_TO_STRING(BGl_string1736z00zzobject_toolsz00));
			BGl_modulezd2initializa7ationz75zzast_privatez00(135263837L,
				BSTRING_TO_STRING(BGl_string1736z00zzobject_toolsz00));
			BGl_modulezd2initializa7ationz75zzast_identz00(174885617L,
				BSTRING_TO_STRING(BGl_string1736z00zzobject_toolsz00));
			BGl_modulezd2initializa7ationz75zzobject_classz00(502007119L,
				BSTRING_TO_STRING(BGl_string1736z00zzobject_toolsz00));
			BGl_modulezd2initializa7ationz75zzobject_slotsz00(151271251L,
				BSTRING_TO_STRING(BGl_string1736z00zzobject_toolsz00));
			BGl_modulezd2initializa7ationz75zzengine_paramz00(517137079L,
				BSTRING_TO_STRING(BGl_string1736z00zzobject_toolsz00));
			return
				BGl_modulezd2initializa7ationz75zztools_errorz00(300504031L,
				BSTRING_TO_STRING(BGl_string1736z00zzobject_toolsz00));
		}

	}

#ifdef __cplusplus
}
#endif
