/*===========================================================================*/
/*   (Object/generic.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/generic.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_GENERIC_TYPE_DEFINITIONS
#define BGL_OBJECT_GENERIC_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_variablez00_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;
	}                  *BgL_variablez00_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_localz00_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;
		long BgL_keyz00;
		obj_t BgL_valzd2noescapezd2;
		bool_t BgL_volatilez00;
	}               *BgL_localz00_bglt;

	typedef struct BgL_sfunz00_bgl
	{
		header_t header;
		obj_t widening;
		long BgL_arityz00;
		obj_t BgL_sidezd2effectzd2;
		obj_t BgL_predicatezd2ofzd2;
		obj_t BgL_stackzd2allocatorzd2;
		bool_t BgL_topzf3zf3;
		obj_t BgL_thezd2closurezd2;
		obj_t BgL_effectz00;
		obj_t BgL_failsafez00;
		obj_t BgL_argszd2noescapezd2;
		obj_t BgL_argszd2retescapezd2;
		obj_t BgL_propertyz00;
		obj_t BgL_argsz00;
		obj_t BgL_argszd2namezd2;
		obj_t BgL_bodyz00;
		obj_t BgL_classz00;
		obj_t BgL_dssslzd2keywordszd2;
		obj_t BgL_locz00;
		obj_t BgL_optionalsz00;
		obj_t BgL_keysz00;
		obj_t BgL_thezd2closurezd2globalz00;
		obj_t BgL_strengthz00;
		obj_t BgL_stackablez00;
	}              *BgL_sfunz00_bglt;


#endif													// BGL_OBJECT_GENERIC_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	BGL_IMPORT obj_t BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(obj_t,
		obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zzobject_genericz00 = BUNSPEC;
	extern obj_t BGl_makezd2typedzd2identz00zzast_identz00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_za2classesza2z00zz__objectz00;
	extern obj_t BGl_tclassz00zzobject_classz00;
	extern obj_t BGl_sfunz00zzast_varz00;
	static obj_t BGl_genericzd2initzd2zzobject_genericz00(void);
	extern BgL_typez00_bglt BGl_getzd2defaultzd2typez00zztype_cachez00(void);
	static obj_t BGl_objectzd2initzd2zzobject_genericz00(void);
	BGL_IMPORT obj_t BGl_za2inheritancesza2z00zz__objectz00;
	extern obj_t BGl_typez00zztype_typez00;
	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_genericz00(void);
	BGL_EXPORTED_DECL obj_t BGl_makezd2genericzd2bodyz00zzobject_genericz00(obj_t,
		obj_t, obj_t, obj_t);
	extern obj_t BGl_za2objza2z00zztype_cachez00;
	extern obj_t BGl_za2moduleza2z00zzmodule_modulez00;
	BGL_EXPORTED_DECL obj_t
		BGl_modulezd2initializa7ationz75zzobject_genericz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_envz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_locationz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzmodule_modulez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzobject_classz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_privatez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_identz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_errorz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_argsz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(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 *);
	extern obj_t BGl_findzd2locationzd2zztools_locationz00(obj_t);
	extern obj_t BGl_makezd2privatezd2sexpz00zzast_privatez00(obj_t, obj_t,
		obj_t);
	static obj_t BGl_makezd2objectzd2genericzd2bodyzd2zzobject_genericz00(obj_t,
		obj_t, obj_t, obj_t);
	static obj_t BGl_cnstzd2initzd2zzobject_genericz00(void);
	static obj_t BGl_libraryzd2moduleszd2initz00zzobject_genericz00(void);
	extern long BGl_globalzd2arityzd2zztools_argsz00(obj_t);
	static obj_t BGl_importedzd2moduleszd2initz00zzobject_genericz00(void);
	static obj_t BGl_gczd2rootszd2initz00zzobject_genericz00(void);
	extern obj_t BGl_parsezd2idzd2zzast_identz00(obj_t, obj_t);
	static obj_t BGl_z62makezd2genericzd2bodyz62zzobject_genericz00(obj_t, obj_t,
		obj_t, obj_t, obj_t);
	extern obj_t BGl_findzd2globalzf2modulez20zzast_envz00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_gensymz00zz__r4_symbols_6_4z00(obj_t);
	extern obj_t BGl_userzd2errorzd2zztools_errorz00(obj_t, obj_t, obj_t, obj_t);
	extern obj_t BGl_globalz00zzast_varz00;
	static obj_t
		BGl_makezd2nonzd2objectzd2genericzd2bodyz00zzobject_genericz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t __cnst[14];


	   
		 
		DEFINE_STRING(BGl_string1504z00zzobject_genericz00,
		BgL_bgl_string1504za700za7za7o1520za7,
		"Illegal generic definition (no formal arguments provided)", 57);
	      DEFINE_STRING(BGl_string1505z00zzobject_genericz00,
		BgL_bgl_string1505za700za7za7o1521za7,
		"Illegal global definition (internal error)", 42);
	      DEFINE_STRING(BGl_string1506z00zzobject_genericz00,
		BgL_bgl_string1506za700za7za7o1522za7,
		"generic function has a non-class dispatching type arg", 53);
	      DEFINE_STRING(BGl_string1507z00zzobject_genericz00,
		BgL_bgl_string1507za700za7za7o1523za7, "object_generic", 14);
	      DEFINE_STRING(BGl_string1508z00zzobject_genericz00,
		BgL_bgl_string1508za700za7za7o1524za7,
		"if object? __r4_pairs_and_lists_6_3 generic-default let apply cons* _ unsafe find-method @ procedure method sgfun ",
		114);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_makezd2genericzd2bodyzd2envzd2zzobject_genericz00,
		BgL_bgl_za762makeza7d2generi1525z00,
		BGl_z62makezd2genericzd2bodyz62zzobject_genericz00, 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_genericz00));
#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_genericz00(long
		BgL_checksumz00_1318, char *BgL_fromz00_1319)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zzobject_genericz00))
				{
					BGl_requirezd2initializa7ationz75zzobject_genericz00 =
						BBOOL(((bool_t) 0));
					BGl_gczd2rootszd2initz00zzobject_genericz00();
					BGl_libraryzd2moduleszd2initz00zzobject_genericz00();
					BGl_cnstzd2initzd2zzobject_genericz00();
					BGl_importedzd2moduleszd2initz00zzobject_genericz00();
					return BGl_methodzd2initzd2zzobject_genericz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



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

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zzobject_genericz00(void)
	{
		{	/* Object/generic.scm 15 */
			{	/* Object/generic.scm 15 */
				obj_t BgL_cportz00_1307;

				{	/* Object/generic.scm 15 */
					obj_t BgL_stringz00_1314;

					BgL_stringz00_1314 = BGl_string1508z00zzobject_genericz00;
					{	/* Object/generic.scm 15 */
						obj_t BgL_startz00_1315;

						BgL_startz00_1315 = BINT(0L);
						{	/* Object/generic.scm 15 */
							obj_t BgL_endz00_1316;

							BgL_endz00_1316 =
								BINT(STRING_LENGTH(((obj_t) BgL_stringz00_1314)));
							{	/* Object/generic.scm 15 */

								BgL_cportz00_1307 =
									BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00
									(BgL_stringz00_1314, BgL_startz00_1315, BgL_endz00_1316);
				}}}}
				{
					long BgL_iz00_1308;

					BgL_iz00_1308 = 13L;
				BgL_loopz00_1309:
					if ((BgL_iz00_1308 == -1L))
						{	/* Object/generic.scm 15 */
							return BUNSPEC;
						}
					else
						{	/* Object/generic.scm 15 */
							{	/* Object/generic.scm 15 */
								obj_t BgL_arg1519z00_1310;

								{	/* Object/generic.scm 15 */

									{	/* Object/generic.scm 15 */
										obj_t BgL_locationz00_1312;

										BgL_locationz00_1312 = BBOOL(((bool_t) 0));
										{	/* Object/generic.scm 15 */

											BgL_arg1519z00_1310 =
												BGl_readz00zz__readerz00(BgL_cportz00_1307,
												BgL_locationz00_1312);
										}
									}
								}
								{	/* Object/generic.scm 15 */
									int BgL_tmpz00_1346;

									BgL_tmpz00_1346 = (int) (BgL_iz00_1308);
									CNST_TABLE_SET(BgL_tmpz00_1346, BgL_arg1519z00_1310);
							}}
							{	/* Object/generic.scm 15 */
								int BgL_auxz00_1313;

								BgL_auxz00_1313 = (int) ((BgL_iz00_1308 - 1L));
								{
									long BgL_iz00_1351;

									BgL_iz00_1351 = (long) (BgL_auxz00_1313);
									BgL_iz00_1308 = BgL_iz00_1351;
									goto BgL_loopz00_1309;
								}
							}
						}
				}
			}
		}

	}



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

	}



/* make-generic-body */
	BGL_EXPORTED_DEF obj_t BGl_makezd2genericzd2bodyz00zzobject_genericz00(obj_t
		BgL_idz00_3, obj_t BgL_localsz00_4, obj_t BgL_argsz00_5, obj_t BgL_srcz00_6)
	{
		{	/* Object/generic.scm 34 */
			{	/* Object/generic.scm 37 */
				obj_t BgL_gz00_689;

				BgL_gz00_689 =
					BGl_findzd2globalzf2modulez20zzast_envz00(BgL_idz00_3,
					BGl_za2moduleza2z00zzmodule_modulez00);
				if (NULLP(BgL_argsz00_5))
					{	/* Object/generic.scm 36 */
						obj_t BgL_list1198z00_922;

						BgL_list1198z00_922 = MAKE_YOUNG_PAIR(BNIL, BNIL);
						return
							BGl_userzd2errorzd2zztools_errorz00(BgL_idz00_3,
							BGl_string1504z00zzobject_genericz00, BgL_srcz00_6,
							BgL_list1198z00_922);
					}
				else
					{	/* Object/generic.scm 41 */
						bool_t BgL_test1529z00_1359;

						{	/* Object/generic.scm 41 */
							bool_t BgL_test1530z00_1360;

							{	/* Object/generic.scm 41 */
								obj_t BgL_classz00_923;

								BgL_classz00_923 = BGl_globalz00zzast_varz00;
								if (BGL_OBJECTP(BgL_gz00_689))
									{	/* Object/generic.scm 41 */
										BgL_objectz00_bglt BgL_arg1801z00_925;

										BgL_arg1801z00_925 = (BgL_objectz00_bglt) (BgL_gz00_689);
										if (BGL_CONDEXPAND_ISA_ARCH64())
											{	/* Object/generic.scm 41 */
												long BgL_idxz00_931;

												BgL_idxz00_931 =
													BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_925);
												BgL_test1530z00_1360 =
													(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
														(BgL_idxz00_931 + 2L)) == BgL_classz00_923);
											}
										else
											{	/* Object/generic.scm 41 */
												bool_t BgL_res1493z00_953;

												{	/* Object/generic.scm 41 */
													obj_t BgL_oclassz00_939;

													{	/* Object/generic.scm 41 */
														long BgL_arg1808z00_945;

														{	/* Object/generic.scm 41 */
															long BgL_arg1809z00_946;

															BgL_arg1809z00_946 =
																BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_925);
															BgL_arg1808z00_945 =
																(BgL_arg1809z00_946 - OBJECT_TYPE);
														}
														BgL_oclassz00_939 =
															VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
															BgL_arg1808z00_945);
													}
													{	/* Object/generic.scm 41 */
														bool_t BgL__ortest_1115z00_940;

														BgL__ortest_1115z00_940 =
															(BgL_classz00_923 == BgL_oclassz00_939);
														if (BgL__ortest_1115z00_940)
															{	/* Object/generic.scm 41 */
																BgL_res1493z00_953 = BgL__ortest_1115z00_940;
															}
														else
															{	/* Object/generic.scm 41 */
																long BgL_odepthz00_941;

																BgL_odepthz00_941 =
																	BGL_CLASS_DEPTH(BgL_oclassz00_939);
																if ((2L < BgL_odepthz00_941))
																	{	/* Object/generic.scm 41 */
																		obj_t BgL_arg1797z00_943;

																		BgL_arg1797z00_943 =
																			BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_939,
																			2L);
																		BgL_res1493z00_953 =
																			(BgL_arg1797z00_943 == BgL_classz00_923);
																	}
																else
																	{	/* Object/generic.scm 41 */
																		BgL_res1493z00_953 = ((bool_t) 0);
																	}
															}
													}
												}
												BgL_test1530z00_1360 = BgL_res1493z00_953;
											}
									}
								else
									{	/* Object/generic.scm 41 */
										BgL_test1530z00_1360 = ((bool_t) 0);
									}
							}
							if (BgL_test1530z00_1360)
								{	/* Object/generic.scm 42 */
									bool_t BgL__ortest_1064z00_731;

									{	/* Object/generic.scm 42 */
										bool_t BgL_test1536z00_1380;

										{	/* Object/generic.scm 42 */
											BgL_valuez00_bglt BgL_arg1196z00_739;

											BgL_arg1196z00_739 =
												(((BgL_variablez00_bglt) COBJECT(
														((BgL_variablez00_bglt)
															((BgL_globalz00_bglt) BgL_gz00_689))))->
												BgL_valuez00);
											{	/* Object/generic.scm 42 */
												obj_t BgL_classz00_955;

												BgL_classz00_955 = BGl_sfunz00zzast_varz00;
												{	/* Object/generic.scm 42 */
													BgL_objectz00_bglt BgL_arg1801z00_957;

													{	/* Object/generic.scm 42 */
														obj_t BgL_tmpz00_1384;

														BgL_tmpz00_1384 =
															((obj_t)
															((BgL_objectz00_bglt) BgL_arg1196z00_739));
														BgL_arg1801z00_957 =
															(BgL_objectz00_bglt) (BgL_tmpz00_1384);
													}
													if (BGL_CONDEXPAND_ISA_ARCH64())
														{	/* Object/generic.scm 42 */
															long BgL_idxz00_963;

															BgL_idxz00_963 =
																BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_957);
															BgL_test1536z00_1380 =
																(VECTOR_REF
																(BGl_za2inheritancesza2z00zz__objectz00,
																	(BgL_idxz00_963 + 3L)) == BgL_classz00_955);
														}
													else
														{	/* Object/generic.scm 42 */
															bool_t BgL_res1494z00_985;

															{	/* Object/generic.scm 42 */
																obj_t BgL_oclassz00_971;

																{	/* Object/generic.scm 42 */
																	long BgL_arg1808z00_977;

																	{	/* Object/generic.scm 42 */
																		long BgL_arg1809z00_978;

																		BgL_arg1809z00_978 =
																			BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_957);
																		BgL_arg1808z00_977 =
																			(BgL_arg1809z00_978 - OBJECT_TYPE);
																	}
																	BgL_oclassz00_971 =
																		VECTOR_REF
																		(BGl_za2classesza2z00zz__objectz00,
																		BgL_arg1808z00_977);
																}
																{	/* Object/generic.scm 42 */
																	bool_t BgL__ortest_1115z00_972;

																	BgL__ortest_1115z00_972 =
																		(BgL_classz00_955 == BgL_oclassz00_971);
																	if (BgL__ortest_1115z00_972)
																		{	/* Object/generic.scm 42 */
																			BgL_res1494z00_985 =
																				BgL__ortest_1115z00_972;
																		}
																	else
																		{	/* Object/generic.scm 42 */
																			long BgL_odepthz00_973;

																			BgL_odepthz00_973 =
																				BGL_CLASS_DEPTH(BgL_oclassz00_971);
																			if ((3L < BgL_odepthz00_973))
																				{	/* Object/generic.scm 42 */
																					obj_t BgL_arg1797z00_975;

																					BgL_arg1797z00_975 =
																						BGL_CLASS_ANCESTORS_REF
																						(BgL_oclassz00_971, 3L);
																					BgL_res1494z00_985 =
																						(BgL_arg1797z00_975 ==
																						BgL_classz00_955);
																				}
																			else
																				{	/* Object/generic.scm 42 */
																					BgL_res1494z00_985 = ((bool_t) 0);
																				}
																		}
																}
															}
															BgL_test1536z00_1380 = BgL_res1494z00_985;
														}
												}
											}
										}
										if (BgL_test1536z00_1380)
											{	/* Object/generic.scm 42 */
												BgL__ortest_1064z00_731 = ((bool_t) 0);
											}
										else
											{	/* Object/generic.scm 42 */
												BgL__ortest_1064z00_731 = ((bool_t) 1);
											}
									}
									if (BgL__ortest_1064z00_731)
										{	/* Object/generic.scm 42 */
											BgL_test1529z00_1359 = BgL__ortest_1064z00_731;
										}
									else
										{	/* Object/generic.scm 43 */
											bool_t BgL__ortest_1065z00_732;

											if (
												((((BgL_sfunz00_bglt) COBJECT(
																((BgL_sfunz00_bglt)
																	(((BgL_variablez00_bglt) COBJECT(
																				((BgL_variablez00_bglt)
																					((BgL_globalz00_bglt)
																						BgL_gz00_689))))->BgL_valuez00))))->
														BgL_classz00) == CNST_TABLE_REF(0L)))
												{	/* Object/generic.scm 43 */
													BgL__ortest_1065z00_732 = ((bool_t) 0);
												}
											else
												{	/* Object/generic.scm 43 */
													BgL__ortest_1065z00_732 = ((bool_t) 1);
												}
											if (BgL__ortest_1065z00_732)
												{	/* Object/generic.scm 43 */
													BgL_test1529z00_1359 = BgL__ortest_1065z00_732;
												}
											else
												{	/* Object/generic.scm 43 */
													BgL_test1529z00_1359 =
														NULLP(
														(((BgL_sfunz00_bglt) COBJECT(
																	((BgL_sfunz00_bglt)
																		(((BgL_variablez00_bglt) COBJECT(
																					((BgL_variablez00_bglt)
																						((BgL_globalz00_bglt)
																							BgL_gz00_689))))->
																			BgL_valuez00))))->BgL_argsz00));
												}
										}
								}
							else
								{	/* Object/generic.scm 41 */
									BgL_test1529z00_1359 = ((bool_t) 0);
								}
						}
						if (BgL_test1529z00_1359)
							{	/* Object/generic.scm 36 */
								obj_t BgL_list1198z00_990;

								BgL_list1198z00_990 = MAKE_YOUNG_PAIR(BNIL, BNIL);
								return
									BGl_userzd2errorzd2zztools_errorz00(BgL_idz00_3,
									BGl_string1505z00zzobject_genericz00, BgL_srcz00_6,
									BgL_list1198z00_990);
							}
						else
							{	/* Object/generic.scm 47 */
								obj_t BgL_methodzd2argzd2_705;

								BgL_methodzd2argzd2_705 = CAR(((obj_t) BgL_localsz00_4));
								{	/* Object/generic.scm 47 */
									BgL_typez00_bglt BgL_methodzd2argzd2typez00_706;

									BgL_methodzd2argzd2typez00_706 =
										(((BgL_variablez00_bglt) COBJECT(
												((BgL_variablez00_bglt)
													((BgL_localz00_bglt) BgL_methodzd2argzd2_705))))->
										BgL_typez00);
									{	/* Object/generic.scm 48 */
										obj_t BgL_ptypez00_707;

										{	/* Object/generic.scm 49 */
											bool_t BgL_test1544z00_1427;

											{	/* Object/generic.scm 49 */
												obj_t BgL_classz00_993;

												BgL_classz00_993 = BGl_globalz00zzast_varz00;
												if (BGL_OBJECTP(BgL_gz00_689))
													{	/* Object/generic.scm 49 */
														BgL_objectz00_bglt BgL_arg1801z00_995;

														BgL_arg1801z00_995 =
															(BgL_objectz00_bglt) (BgL_gz00_689);
														if (BGL_CONDEXPAND_ISA_ARCH64())
															{	/* Object/generic.scm 49 */
																long BgL_idxz00_1001;

																BgL_idxz00_1001 =
																	BGL_OBJECT_INHERITANCE_NUM
																	(BgL_arg1801z00_995);
																BgL_test1544z00_1427 =
																	(VECTOR_REF
																	(BGl_za2inheritancesza2z00zz__objectz00,
																		(BgL_idxz00_1001 + 2L)) ==
																	BgL_classz00_993);
															}
														else
															{	/* Object/generic.scm 49 */
																bool_t BgL_res1495z00_1023;

																{	/* Object/generic.scm 49 */
																	obj_t BgL_oclassz00_1009;

																	{	/* Object/generic.scm 49 */
																		long BgL_arg1808z00_1015;

																		{	/* Object/generic.scm 49 */
																			long BgL_arg1809z00_1016;

																			BgL_arg1809z00_1016 =
																				BGL_OBJECT_CLASS_NUM
																				(BgL_arg1801z00_995);
																			BgL_arg1808z00_1015 =
																				(BgL_arg1809z00_1016 - OBJECT_TYPE);
																		}
																		BgL_oclassz00_1009 =
																			VECTOR_REF
																			(BGl_za2classesza2z00zz__objectz00,
																			BgL_arg1808z00_1015);
																	}
																	{	/* Object/generic.scm 49 */
																		bool_t BgL__ortest_1115z00_1010;

																		BgL__ortest_1115z00_1010 =
																			(BgL_classz00_993 == BgL_oclassz00_1009);
																		if (BgL__ortest_1115z00_1010)
																			{	/* Object/generic.scm 49 */
																				BgL_res1495z00_1023 =
																					BgL__ortest_1115z00_1010;
																			}
																		else
																			{	/* Object/generic.scm 49 */
																				long BgL_odepthz00_1011;

																				BgL_odepthz00_1011 =
																					BGL_CLASS_DEPTH(BgL_oclassz00_1009);
																				if ((2L < BgL_odepthz00_1011))
																					{	/* Object/generic.scm 49 */
																						obj_t BgL_arg1797z00_1013;

																						BgL_arg1797z00_1013 =
																							BGL_CLASS_ANCESTORS_REF
																							(BgL_oclassz00_1009, 2L);
																						BgL_res1495z00_1023 =
																							(BgL_arg1797z00_1013 ==
																							BgL_classz00_993);
																					}
																				else
																					{	/* Object/generic.scm 49 */
																						BgL_res1495z00_1023 = ((bool_t) 0);
																					}
																			}
																	}
																}
																BgL_test1544z00_1427 = BgL_res1495z00_1023;
															}
													}
												else
													{	/* Object/generic.scm 49 */
														BgL_test1544z00_1427 = ((bool_t) 0);
													}
											}
											if (BgL_test1544z00_1427)
												{	/* Object/generic.scm 49 */
													obj_t BgL_pairz00_1026;

													BgL_pairz00_1026 =
														(((BgL_sfunz00_bglt) COBJECT(
																((BgL_sfunz00_bglt)
																	(((BgL_variablez00_bglt) COBJECT(
																				((BgL_variablez00_bglt)
																					((BgL_globalz00_bglt)
																						BgL_gz00_689))))->BgL_valuez00))))->
														BgL_argsz00);
													BgL_ptypez00_707 = CAR(BgL_pairz00_1026);
												}
											else
												{	/* Object/generic.scm 49 */
													BgL_ptypez00_707 = BFALSE;
												}
										}
										{	/* Object/generic.scm 49 */

											{	/* Object/generic.scm 51 */
												bool_t BgL_test1550z00_1453;

												{	/* Object/generic.scm 51 */
													bool_t BgL_test1551z00_1454;

													{	/* Object/generic.scm 51 */
														obj_t BgL_classz00_1027;

														BgL_classz00_1027 = BGl_tclassz00zzobject_classz00;
														{	/* Object/generic.scm 51 */
															BgL_objectz00_bglt BgL_arg1801z00_1029;

															{	/* Object/generic.scm 51 */
																obj_t BgL_tmpz00_1455;

																BgL_tmpz00_1455 =
																	((obj_t)
																	((BgL_objectz00_bglt)
																		BgL_methodzd2argzd2typez00_706));
																BgL_arg1801z00_1029 =
																	(BgL_objectz00_bglt) (BgL_tmpz00_1455);
															}
															if (BGL_CONDEXPAND_ISA_ARCH64())
																{	/* Object/generic.scm 51 */
																	long BgL_idxz00_1035;

																	BgL_idxz00_1035 =
																		BGL_OBJECT_INHERITANCE_NUM
																		(BgL_arg1801z00_1029);
																	BgL_test1551z00_1454 =
																		(VECTOR_REF
																		(BGl_za2inheritancesza2z00zz__objectz00,
																			(BgL_idxz00_1035 + 2L)) ==
																		BgL_classz00_1027);
																}
															else
																{	/* Object/generic.scm 51 */
																	bool_t BgL_res1496z00_1057;

																	{	/* Object/generic.scm 51 */
																		obj_t BgL_oclassz00_1043;

																		{	/* Object/generic.scm 51 */
																			long BgL_arg1808z00_1049;

																			{	/* Object/generic.scm 51 */
																				long BgL_arg1809z00_1050;

																				BgL_arg1809z00_1050 =
																					BGL_OBJECT_CLASS_NUM
																					(BgL_arg1801z00_1029);
																				BgL_arg1808z00_1049 =
																					(BgL_arg1809z00_1050 - OBJECT_TYPE);
																			}
																			BgL_oclassz00_1043 =
																				VECTOR_REF
																				(BGl_za2classesza2z00zz__objectz00,
																				BgL_arg1808z00_1049);
																		}
																		{	/* Object/generic.scm 51 */
																			bool_t BgL__ortest_1115z00_1044;

																			BgL__ortest_1115z00_1044 =
																				(BgL_classz00_1027 ==
																				BgL_oclassz00_1043);
																			if (BgL__ortest_1115z00_1044)
																				{	/* Object/generic.scm 51 */
																					BgL_res1496z00_1057 =
																						BgL__ortest_1115z00_1044;
																				}
																			else
																				{	/* Object/generic.scm 51 */
																					long BgL_odepthz00_1045;

																					BgL_odepthz00_1045 =
																						BGL_CLASS_DEPTH(BgL_oclassz00_1043);
																					if ((2L < BgL_odepthz00_1045))
																						{	/* Object/generic.scm 51 */
																							obj_t BgL_arg1797z00_1047;

																							BgL_arg1797z00_1047 =
																								BGL_CLASS_ANCESTORS_REF
																								(BgL_oclassz00_1043, 2L);
																							BgL_res1496z00_1057 =
																								(BgL_arg1797z00_1047 ==
																								BgL_classz00_1027);
																						}
																					else
																						{	/* Object/generic.scm 51 */
																							BgL_res1496z00_1057 =
																								((bool_t) 0);
																						}
																				}
																		}
																	}
																	BgL_test1551z00_1454 = BgL_res1496z00_1057;
																}
														}
													}
													if (BgL_test1551z00_1454)
														{	/* Object/generic.scm 51 */
															BgL_test1550z00_1453 = ((bool_t) 1);
														}
													else
														{	/* Object/generic.scm 51 */
															obj_t BgL_classz00_1058;

															BgL_classz00_1058 =
																BGl_tclassz00zzobject_classz00;
															if (BGL_OBJECTP(BgL_ptypez00_707))
																{	/* Object/generic.scm 51 */
																	BgL_objectz00_bglt BgL_arg1801z00_1060;

																	BgL_arg1801z00_1060 =
																		(BgL_objectz00_bglt) (BgL_ptypez00_707);
																	if (BGL_CONDEXPAND_ISA_ARCH64())
																		{	/* Object/generic.scm 51 */
																			long BgL_idxz00_1066;

																			BgL_idxz00_1066 =
																				BGL_OBJECT_INHERITANCE_NUM
																				(BgL_arg1801z00_1060);
																			BgL_test1550z00_1453 =
																				(VECTOR_REF
																				(BGl_za2inheritancesza2z00zz__objectz00,
																					(BgL_idxz00_1066 + 2L)) ==
																				BgL_classz00_1058);
																		}
																	else
																		{	/* Object/generic.scm 51 */
																			bool_t BgL_res1497z00_1088;

																			{	/* Object/generic.scm 51 */
																				obj_t BgL_oclassz00_1074;

																				{	/* Object/generic.scm 51 */
																					long BgL_arg1808z00_1080;

																					{	/* Object/generic.scm 51 */
																						long BgL_arg1809z00_1081;

																						BgL_arg1809z00_1081 =
																							BGL_OBJECT_CLASS_NUM
																							(BgL_arg1801z00_1060);
																						BgL_arg1808z00_1080 =
																							(BgL_arg1809z00_1081 -
																							OBJECT_TYPE);
																					}
																					BgL_oclassz00_1074 =
																						VECTOR_REF
																						(BGl_za2classesza2z00zz__objectz00,
																						BgL_arg1808z00_1080);
																				}
																				{	/* Object/generic.scm 51 */
																					bool_t BgL__ortest_1115z00_1075;

																					BgL__ortest_1115z00_1075 =
																						(BgL_classz00_1058 ==
																						BgL_oclassz00_1074);
																					if (BgL__ortest_1115z00_1075)
																						{	/* Object/generic.scm 51 */
																							BgL_res1497z00_1088 =
																								BgL__ortest_1115z00_1075;
																						}
																					else
																						{	/* Object/generic.scm 51 */
																							long BgL_odepthz00_1076;

																							BgL_odepthz00_1076 =
																								BGL_CLASS_DEPTH
																								(BgL_oclassz00_1074);
																							if ((2L < BgL_odepthz00_1076))
																								{	/* Object/generic.scm 51 */
																									obj_t BgL_arg1797z00_1078;

																									BgL_arg1797z00_1078 =
																										BGL_CLASS_ANCESTORS_REF
																										(BgL_oclassz00_1074, 2L);
																									BgL_res1497z00_1088 =
																										(BgL_arg1797z00_1078 ==
																										BgL_classz00_1058);
																								}
																							else
																								{	/* Object/generic.scm 51 */
																									BgL_res1497z00_1088 =
																										((bool_t) 0);
																								}
																						}
																				}
																			}
																			BgL_test1550z00_1453 =
																				BgL_res1497z00_1088;
																		}
																}
															else
																{	/* Object/generic.scm 51 */
																	BgL_test1550z00_1453 = ((bool_t) 0);
																}
														}
												}
												if (BgL_test1550z00_1453)
													{	/* Object/generic.scm 51 */
														BGL_TAIL return
															BGl_makezd2objectzd2genericzd2bodyzd2zzobject_genericz00
															(BgL_idz00_3, BgL_localsz00_4, BgL_argsz00_5,
															BgL_srcz00_6);
													}
												else
													{	/* Object/generic.scm 53 */
														bool_t BgL_test1560z00_1495;

														{	/* Object/generic.scm 53 */
															bool_t BgL_test1561z00_1496;

															{	/* Object/generic.scm 53 */
																obj_t BgL_classz00_1089;

																BgL_classz00_1089 = BGl_typez00zztype_typez00;
																{	/* Object/generic.scm 53 */
																	BgL_objectz00_bglt BgL_arg1801z00_1091;

																	{	/* Object/generic.scm 53 */
																		obj_t BgL_tmpz00_1497;

																		BgL_tmpz00_1497 =
																			((obj_t)
																			((BgL_objectz00_bglt)
																				BgL_methodzd2argzd2typez00_706));
																		BgL_arg1801z00_1091 =
																			(BgL_objectz00_bglt) (BgL_tmpz00_1497);
																	}
																	if (BGL_CONDEXPAND_ISA_ARCH64())
																		{	/* Object/generic.scm 53 */
																			long BgL_idxz00_1097;

																			BgL_idxz00_1097 =
																				BGL_OBJECT_INHERITANCE_NUM
																				(BgL_arg1801z00_1091);
																			BgL_test1561z00_1496 =
																				(VECTOR_REF
																				(BGl_za2inheritancesza2z00zz__objectz00,
																					(BgL_idxz00_1097 + 1L)) ==
																				BgL_classz00_1089);
																		}
																	else
																		{	/* Object/generic.scm 53 */
																			bool_t BgL_res1498z00_1119;

																			{	/* Object/generic.scm 53 */
																				obj_t BgL_oclassz00_1105;

																				{	/* Object/generic.scm 53 */
																					long BgL_arg1808z00_1111;

																					{	/* Object/generic.scm 53 */
																						long BgL_arg1809z00_1112;

																						BgL_arg1809z00_1112 =
																							BGL_OBJECT_CLASS_NUM
																							(BgL_arg1801z00_1091);
																						BgL_arg1808z00_1111 =
																							(BgL_arg1809z00_1112 -
																							OBJECT_TYPE);
																					}
																					BgL_oclassz00_1105 =
																						VECTOR_REF
																						(BGl_za2classesza2z00zz__objectz00,
																						BgL_arg1808z00_1111);
																				}
																				{	/* Object/generic.scm 53 */
																					bool_t BgL__ortest_1115z00_1106;

																					BgL__ortest_1115z00_1106 =
																						(BgL_classz00_1089 ==
																						BgL_oclassz00_1105);
																					if (BgL__ortest_1115z00_1106)
																						{	/* Object/generic.scm 53 */
																							BgL_res1498z00_1119 =
																								BgL__ortest_1115z00_1106;
																						}
																					else
																						{	/* Object/generic.scm 53 */
																							long BgL_odepthz00_1107;

																							BgL_odepthz00_1107 =
																								BGL_CLASS_DEPTH
																								(BgL_oclassz00_1105);
																							if ((1L < BgL_odepthz00_1107))
																								{	/* Object/generic.scm 53 */
																									obj_t BgL_arg1797z00_1109;

																									BgL_arg1797z00_1109 =
																										BGL_CLASS_ANCESTORS_REF
																										(BgL_oclassz00_1105, 1L);
																									BgL_res1498z00_1119 =
																										(BgL_arg1797z00_1109 ==
																										BgL_classz00_1089);
																								}
																							else
																								{	/* Object/generic.scm 53 */
																									BgL_res1498z00_1119 =
																										((bool_t) 0);
																								}
																						}
																				}
																			}
																			BgL_test1561z00_1496 =
																				BgL_res1498z00_1119;
																		}
																}
															}
															if (BgL_test1561z00_1496)
																{	/* Object/generic.scm 53 */
																	if (
																		(((obj_t) BgL_methodzd2argzd2typez00_706) ==
																			BGl_za2objza2z00zztype_cachez00))
																		{	/* Object/generic.scm 54 */
																			BgL_test1560z00_1495 = ((bool_t) 0);
																		}
																	else
																		{	/* Object/generic.scm 55 */
																			bool_t BgL_test1567z00_1520;

																			{	/* Object/generic.scm 55 */
																				BgL_typez00_bglt BgL_arg1160z00_725;

																				BgL_arg1160z00_725 =
																					BGl_getzd2defaultzd2typez00zztype_cachez00
																					();
																				BgL_test1567z00_1520 =
																					(((obj_t)
																						BgL_methodzd2argzd2typez00_706) ==
																					((obj_t) BgL_arg1160z00_725));
																			}
																			if (BgL_test1567z00_1520)
																				{	/* Object/generic.scm 55 */
																					BgL_test1560z00_1495 = ((bool_t) 0);
																				}
																			else
																				{	/* Object/generic.scm 55 */
																					BgL_test1560z00_1495 = ((bool_t) 1);
																				}
																		}
																}
															else
																{	/* Object/generic.scm 53 */
																	BgL_test1560z00_1495 = ((bool_t) 0);
																}
														}
														if (BgL_test1560z00_1495)
															{	/* Object/generic.scm 36 */
																obj_t BgL_list1198z00_1120;

																BgL_list1198z00_1120 =
																	MAKE_YOUNG_PAIR(BNIL, BNIL);
																return
																	BGl_userzd2errorzd2zztools_errorz00
																	(BgL_idz00_3,
																	BGl_string1506z00zzobject_genericz00,
																	BgL_srcz00_6, BgL_list1198z00_1120);
															}
														else
															{	/* Object/generic.scm 57 */
																bool_t BgL_test1568z00_1527;

																{	/* Object/generic.scm 57 */
																	bool_t BgL_test1569z00_1528;

																	{	/* Object/generic.scm 57 */
																		obj_t BgL_classz00_1121;

																		BgL_classz00_1121 =
																			BGl_typez00zztype_typez00;
																		if (BGL_OBJECTP(BgL_ptypez00_707))
																			{	/* Object/generic.scm 57 */
																				BgL_objectz00_bglt BgL_arg1801z00_1123;

																				BgL_arg1801z00_1123 =
																					(BgL_objectz00_bglt)
																					(BgL_ptypez00_707);
																				if (BGL_CONDEXPAND_ISA_ARCH64())
																					{	/* Object/generic.scm 57 */
																						long BgL_idxz00_1129;

																						BgL_idxz00_1129 =
																							BGL_OBJECT_INHERITANCE_NUM
																							(BgL_arg1801z00_1123);
																						BgL_test1569z00_1528 =
																							(VECTOR_REF
																							(BGl_za2inheritancesza2z00zz__objectz00,
																								(BgL_idxz00_1129 + 1L)) ==
																							BgL_classz00_1121);
																					}
																				else
																					{	/* Object/generic.scm 57 */
																						bool_t BgL_res1499z00_1151;

																						{	/* Object/generic.scm 57 */
																							obj_t BgL_oclassz00_1137;

																							{	/* Object/generic.scm 57 */
																								long BgL_arg1808z00_1143;

																								{	/* Object/generic.scm 57 */
																									long BgL_arg1809z00_1144;

																									BgL_arg1809z00_1144 =
																										BGL_OBJECT_CLASS_NUM
																										(BgL_arg1801z00_1123);
																									BgL_arg1808z00_1143 =
																										(BgL_arg1809z00_1144 -
																										OBJECT_TYPE);
																								}
																								BgL_oclassz00_1137 =
																									VECTOR_REF
																									(BGl_za2classesza2z00zz__objectz00,
																									BgL_arg1808z00_1143);
																							}
																							{	/* Object/generic.scm 57 */
																								bool_t BgL__ortest_1115z00_1138;

																								BgL__ortest_1115z00_1138 =
																									(BgL_classz00_1121 ==
																									BgL_oclassz00_1137);
																								if (BgL__ortest_1115z00_1138)
																									{	/* Object/generic.scm 57 */
																										BgL_res1499z00_1151 =
																											BgL__ortest_1115z00_1138;
																									}
																								else
																									{	/* Object/generic.scm 57 */
																										long BgL_odepthz00_1139;

																										BgL_odepthz00_1139 =
																											BGL_CLASS_DEPTH
																											(BgL_oclassz00_1137);
																										if ((1L <
																												BgL_odepthz00_1139))
																											{	/* Object/generic.scm 57 */
																												obj_t
																													BgL_arg1797z00_1141;
																												BgL_arg1797z00_1141 =
																													BGL_CLASS_ANCESTORS_REF
																													(BgL_oclassz00_1137,
																													1L);
																												BgL_res1499z00_1151 =
																													(BgL_arg1797z00_1141
																													== BgL_classz00_1121);
																											}
																										else
																											{	/* Object/generic.scm 57 */
																												BgL_res1499z00_1151 =
																													((bool_t) 0);
																											}
																									}
																							}
																						}
																						BgL_test1569z00_1528 =
																							BgL_res1499z00_1151;
																					}
																			}
																		else
																			{	/* Object/generic.scm 57 */
																				BgL_test1569z00_1528 = ((bool_t) 0);
																			}
																	}
																	if (BgL_test1569z00_1528)
																		{	/* Object/generic.scm 57 */
																			if (
																				(BgL_ptypez00_707 ==
																					BGl_za2objza2z00zztype_cachez00))
																				{	/* Object/generic.scm 58 */
																					BgL_test1568z00_1527 = ((bool_t) 0);
																				}
																			else
																				{	/* Object/generic.scm 59 */
																					bool_t BgL_test1578z00_1550;

																					{	/* Object/generic.scm 59 */
																						BgL_typez00_bglt BgL_arg1159z00_722;

																						BgL_arg1159z00_722 =
																							BGl_getzd2defaultzd2typez00zztype_cachez00
																							();
																						BgL_test1578z00_1550 =
																							(BgL_ptypez00_707 ==
																							((obj_t) BgL_arg1159z00_722));
																					}
																					if (BgL_test1578z00_1550)
																						{	/* Object/generic.scm 59 */
																							BgL_test1568z00_1527 =
																								((bool_t) 0);
																						}
																					else
																						{	/* Object/generic.scm 59 */
																							BgL_test1568z00_1527 =
																								((bool_t) 1);
																						}
																				}
																		}
																	else
																		{	/* Object/generic.scm 57 */
																			BgL_test1568z00_1527 = ((bool_t) 0);
																		}
																}
																if (BgL_test1568z00_1527)
																	{	/* Object/generic.scm 36 */
																		obj_t BgL_list1198z00_1152;

																		BgL_list1198z00_1152 =
																			MAKE_YOUNG_PAIR(BNIL, BNIL);
																		return
																			BGl_userzd2errorzd2zztools_errorz00
																			(BgL_idz00_3,
																			BGl_string1506z00zzobject_genericz00,
																			BgL_srcz00_6, BgL_list1198z00_1152);
																	}
																else
																	{	/* Object/generic.scm 57 */
																		BGL_TAIL return
																			BGl_makezd2nonzd2objectzd2genericzd2bodyz00zzobject_genericz00
																			(BgL_idz00_3, BgL_localsz00_4,
																			BgL_argsz00_5, BgL_srcz00_6);
																	}
															}
													}
											}
										}
									}
								}
							}
					}
			}
		}

	}



/* &make-generic-body */
	obj_t BGl_z62makezd2genericzd2bodyz62zzobject_genericz00(obj_t
		BgL_envz00_1302, obj_t BgL_idz00_1303, obj_t BgL_localsz00_1304,
		obj_t BgL_argsz00_1305, obj_t BgL_srcz00_1306)
	{
		{	/* Object/generic.scm 34 */
			return
				BGl_makezd2genericzd2bodyz00zzobject_genericz00(BgL_idz00_1303,
				BgL_localsz00_1304, BgL_argsz00_1305, BgL_srcz00_1306);
		}

	}



/* make-object-generic-body */
	obj_t BGl_makezd2objectzd2genericzd2bodyzd2zzobject_genericz00(obj_t
		BgL_idz00_7, obj_t BgL_localsz00_8, obj_t BgL_argsz00_9,
		obj_t BgL_srcz00_10)
	{
		{	/* Object/generic.scm 67 */
			{	/* Object/generic.scm 68 */
				obj_t BgL_pidz00_744;

				BgL_pidz00_744 =
					BGl_parsezd2idzd2zzast_identz00(BgL_idz00_7,
					BGl_findzd2locationzd2zztools_locationz00(BgL_srcz00_10));
				{	/* Object/generic.scm 68 */
					obj_t BgL_idz00_745;

					BgL_idz00_745 = CAR(BgL_pidz00_744);
					{	/* Object/generic.scm 69 */
						long BgL_arityz00_746;

						BgL_arityz00_746 =
							BGl_globalzd2arityzd2zztools_argsz00(BgL_argsz00_9);
						{	/* Object/generic.scm 70 */
							obj_t BgL_argszd2idzd2_747;

							if (NULLP(BgL_localsz00_8))
								{	/* Object/generic.scm 71 */
									BgL_argszd2idzd2_747 = BNIL;
								}
							else
								{	/* Object/generic.scm 71 */
									obj_t BgL_head1112z00_775;

									{	/* Object/generic.scm 71 */
										obj_t BgL_arg1237z00_787;

										BgL_arg1237z00_787 =
											(((BgL_variablez00_bglt) COBJECT(
													((BgL_variablez00_bglt)
														((BgL_localz00_bglt)
															CAR(((obj_t) BgL_localsz00_8))))))->BgL_idz00);
										BgL_head1112z00_775 =
											MAKE_YOUNG_PAIR(BgL_arg1237z00_787, BNIL);
									}
									{	/* Object/generic.scm 71 */
										obj_t BgL_g1115z00_776;

										BgL_g1115z00_776 = CDR(((obj_t) BgL_localsz00_8));
										{
											obj_t BgL_l1110z00_778;
											obj_t BgL_tail1113z00_779;

											BgL_l1110z00_778 = BgL_g1115z00_776;
											BgL_tail1113z00_779 = BgL_head1112z00_775;
										BgL_zc3z04anonymousza31227ze3z87_780:
											if (NULLP(BgL_l1110z00_778))
												{	/* Object/generic.scm 71 */
													BgL_argszd2idzd2_747 = BgL_head1112z00_775;
												}
											else
												{	/* Object/generic.scm 71 */
													obj_t BgL_newtail1114z00_782;

													{	/* Object/generic.scm 71 */
														obj_t BgL_arg1233z00_784;

														BgL_arg1233z00_784 =
															(((BgL_variablez00_bglt) COBJECT(
																	((BgL_variablez00_bglt)
																		((BgL_localz00_bglt)
																			CAR(
																				((obj_t) BgL_l1110z00_778))))))->
															BgL_idz00);
														BgL_newtail1114z00_782 =
															MAKE_YOUNG_PAIR(BgL_arg1233z00_784, BNIL);
													}
													SET_CDR(BgL_tail1113z00_779, BgL_newtail1114z00_782);
													{	/* Object/generic.scm 71 */
														obj_t BgL_arg1232z00_783;

														BgL_arg1232z00_783 =
															CDR(((obj_t) BgL_l1110z00_778));
														{
															obj_t BgL_tail1113z00_1584;
															obj_t BgL_l1110z00_1583;

															BgL_l1110z00_1583 = BgL_arg1232z00_783;
															BgL_tail1113z00_1584 = BgL_newtail1114z00_782;
															BgL_tail1113z00_779 = BgL_tail1113z00_1584;
															BgL_l1110z00_778 = BgL_l1110z00_1583;
															goto BgL_zc3z04anonymousza31227ze3z87_780;
														}
													}
												}
										}
									}
								}
							{	/* Object/generic.scm 71 */
								obj_t BgL_methodzd2argzd2_748;

								BgL_methodzd2argzd2_748 = CAR(((obj_t) BgL_localsz00_8));
								{	/* Object/generic.scm 72 */
									obj_t BgL_methodzd2argzd2idz00_749;

									BgL_methodzd2argzd2idz00_749 =
										(((BgL_variablez00_bglt) COBJECT(
												((BgL_variablez00_bglt)
													((BgL_localz00_bglt) BgL_methodzd2argzd2_748))))->
										BgL_idz00);
									{	/* Object/generic.scm 74 */
										obj_t BgL_methodz00_751;

										BgL_methodz00_751 =
											BGl_gensymz00zz__r4_symbols_6_4z00(CNST_TABLE_REF(1L));
										{	/* Object/generic.scm 75 */
											obj_t BgL_tmethodz00_752;

											BgL_tmethodz00_752 =
												BGl_makezd2typedzd2identz00zzast_identz00
												(BgL_methodz00_751, CNST_TABLE_REF(2L));
											{	/* Object/generic.scm 76 */

												{	/* Object/generic.scm 78 */
													obj_t BgL_arg1199z00_753;

													{	/* Object/generic.scm 78 */
														obj_t BgL_arg1201z00_754;
														obj_t BgL_arg1204z00_755;

														{	/* Object/generic.scm 78 */
															obj_t BgL_arg1205z00_756;

															{	/* Object/generic.scm 78 */
																obj_t BgL_arg1206z00_757;

																{	/* Object/generic.scm 78 */
																	obj_t BgL_arg1207z00_758;

																	{	/* Object/generic.scm 78 */
																		obj_t BgL_arg1208z00_759;

																		{	/* Object/generic.scm 78 */
																			obj_t BgL_arg1211z00_761;

																			{	/* Object/generic.scm 78 */
																				obj_t BgL_arg1213z00_762;

																				{	/* Object/generic.scm 78 */
																					obj_t BgL_arg1214z00_763;

																					{	/* Object/generic.scm 78 */
																						obj_t BgL_arg1217z00_764;

																						{	/* Object/generic.scm 78 */
																							obj_t BgL_arg1218z00_765;

																							BgL_arg1218z00_765 =
																								MAKE_YOUNG_PAIR
																								(BGl_za2moduleza2z00zzmodule_modulez00,
																								BNIL);
																							BgL_arg1217z00_764 =
																								MAKE_YOUNG_PAIR(BgL_idz00_745,
																								BgL_arg1218z00_765);
																						}
																						BgL_arg1214z00_763 =
																							MAKE_YOUNG_PAIR(CNST_TABLE_REF
																							(3L), BgL_arg1217z00_764);
																					}
																					BgL_arg1213z00_762 =
																						MAKE_YOUNG_PAIR(BgL_arg1214z00_763,
																						BNIL);
																				}
																				BgL_arg1211z00_761 =
																					MAKE_YOUNG_PAIR
																					(BgL_methodzd2argzd2idz00_749,
																					BgL_arg1213z00_762);
																			}
																			BgL_arg1208z00_759 =
																				MAKE_YOUNG_PAIR(CNST_TABLE_REF(4L),
																				BgL_arg1211z00_761);
																		}
																		{	/* Object/generic.scm 77 */
																			obj_t BgL_list1209z00_760;

																			BgL_list1209z00_760 =
																				MAKE_YOUNG_PAIR(BgL_arg1208z00_759,
																				BNIL);
																			BgL_arg1207z00_758 =
																				BGl_makezd2privatezd2sexpz00zzast_privatez00
																				(CNST_TABLE_REF(5L), CNST_TABLE_REF(6L),
																				BgL_list1209z00_760);
																		}
																	}
																	BgL_arg1206z00_757 =
																		MAKE_YOUNG_PAIR(BgL_arg1207z00_758, BNIL);
																}
																BgL_arg1205z00_756 =
																	MAKE_YOUNG_PAIR(BgL_tmethodz00_752,
																	BgL_arg1206z00_757);
															}
															BgL_arg1201z00_754 =
																MAKE_YOUNG_PAIR(BgL_arg1205z00_756, BNIL);
														}
														{	/* Object/generic.scm 79 */
															obj_t BgL_arg1219z00_766;

															if ((BgL_arityz00_746 >= 0L))
																{	/* Object/generic.scm 79 */
																	BgL_arg1219z00_766 =
																		MAKE_YOUNG_PAIR(BgL_methodz00_751,
																		BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00
																		(BgL_argszd2idzd2_747, BNIL));
																}
															else
																{	/* Object/generic.scm 81 */
																	obj_t BgL_arg1222z00_769;

																	{	/* Object/generic.scm 81 */
																		obj_t BgL_arg1223z00_770;

																		{	/* Object/generic.scm 81 */
																			obj_t BgL_arg1224z00_771;

																			{	/* Object/generic.scm 81 */
																				obj_t BgL_arg1225z00_772;

																				BgL_arg1225z00_772 =
																					BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00
																					(BgL_argszd2idzd2_747, BNIL);
																				BgL_arg1224z00_771 =
																					MAKE_YOUNG_PAIR(CNST_TABLE_REF(7L),
																					BgL_arg1225z00_772);
																			}
																			BgL_arg1223z00_770 =
																				MAKE_YOUNG_PAIR(BgL_arg1224z00_771,
																				BNIL);
																		}
																		BgL_arg1222z00_769 =
																			MAKE_YOUNG_PAIR(BgL_methodz00_751,
																			BgL_arg1223z00_770);
																	}
																	BgL_arg1219z00_766 =
																		MAKE_YOUNG_PAIR(CNST_TABLE_REF(8L),
																		BgL_arg1222z00_769);
																}
															BgL_arg1204z00_755 =
																MAKE_YOUNG_PAIR(BgL_arg1219z00_766, BNIL);
														}
														BgL_arg1199z00_753 =
															MAKE_YOUNG_PAIR(BgL_arg1201z00_754,
															BgL_arg1204z00_755);
													}
													return
														MAKE_YOUNG_PAIR(CNST_TABLE_REF(9L),
														BgL_arg1199z00_753);
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* make-non-object-generic-body */
	obj_t BGl_makezd2nonzd2objectzd2genericzd2bodyz00zzobject_genericz00(obj_t
		BgL_idz00_11, obj_t BgL_localsz00_12, obj_t BgL_argsz00_13,
		obj_t BgL_srcz00_14)
	{
		{	/* Object/generic.scm 86 */
			{	/* Object/generic.scm 87 */
				obj_t BgL_pidz00_790;

				BgL_pidz00_790 =
					BGl_parsezd2idzd2zzast_identz00(BgL_idz00_11,
					BGl_findzd2locationzd2zztools_locationz00(BgL_srcz00_14));
				{	/* Object/generic.scm 87 */
					obj_t BgL_idz00_791;

					BgL_idz00_791 = CAR(BgL_pidz00_790);
					{	/* Object/generic.scm 88 */
						long BgL_arityz00_792;

						BgL_arityz00_792 =
							BGl_globalzd2arityzd2zztools_argsz00(BgL_argsz00_13);
						{	/* Object/generic.scm 89 */
							obj_t BgL_argszd2idzd2_793;

							if (NULLP(BgL_localsz00_12))
								{	/* Object/generic.scm 90 */
									BgL_argszd2idzd2_793 = BNIL;
								}
							else
								{	/* Object/generic.scm 90 */
									obj_t BgL_head1118z00_847;

									{	/* Object/generic.scm 90 */
										obj_t BgL_arg1366z00_859;

										BgL_arg1366z00_859 =
											(((BgL_variablez00_bglt) COBJECT(
													((BgL_variablez00_bglt)
														((BgL_localz00_bglt)
															CAR(((obj_t) BgL_localsz00_12))))))->BgL_idz00);
										BgL_head1118z00_847 =
											MAKE_YOUNG_PAIR(BgL_arg1366z00_859, BNIL);
									}
									{	/* Object/generic.scm 90 */
										obj_t BgL_g1121z00_848;

										BgL_g1121z00_848 = CDR(((obj_t) BgL_localsz00_12));
										{
											obj_t BgL_l1116z00_850;
											obj_t BgL_tail1119z00_851;

											BgL_l1116z00_850 = BgL_g1121z00_848;
											BgL_tail1119z00_851 = BgL_head1118z00_847;
										BgL_zc3z04anonymousza31349ze3z87_852:
											if (NULLP(BgL_l1116z00_850))
												{	/* Object/generic.scm 90 */
													BgL_argszd2idzd2_793 = BgL_head1118z00_847;
												}
											else
												{	/* Object/generic.scm 90 */
													obj_t BgL_newtail1120z00_854;

													{	/* Object/generic.scm 90 */
														obj_t BgL_arg1361z00_856;

														BgL_arg1361z00_856 =
															(((BgL_variablez00_bglt) COBJECT(
																	((BgL_variablez00_bglt)
																		((BgL_localz00_bglt)
																			CAR(
																				((obj_t) BgL_l1116z00_850))))))->
															BgL_idz00);
														BgL_newtail1120z00_854 =
															MAKE_YOUNG_PAIR(BgL_arg1361z00_856, BNIL);
													}
													SET_CDR(BgL_tail1119z00_851, BgL_newtail1120z00_854);
													{	/* Object/generic.scm 90 */
														obj_t BgL_arg1354z00_855;

														BgL_arg1354z00_855 =
															CDR(((obj_t) BgL_l1116z00_850));
														{
															obj_t BgL_tail1119z00_1650;
															obj_t BgL_l1116z00_1649;

															BgL_l1116z00_1649 = BgL_arg1354z00_855;
															BgL_tail1119z00_1650 = BgL_newtail1120z00_854;
															BgL_tail1119z00_851 = BgL_tail1119z00_1650;
															BgL_l1116z00_850 = BgL_l1116z00_1649;
															goto BgL_zc3z04anonymousza31349ze3z87_852;
														}
													}
												}
										}
									}
								}
							{	/* Object/generic.scm 90 */
								obj_t BgL_defaultzd2bodyzd2_794;

								if ((BgL_arityz00_792 >= 0L))
									{	/* Object/generic.scm 93 */
										obj_t BgL_arg1287z00_827;
										obj_t BgL_arg1289z00_828;

										{	/* Object/generic.scm 93 */
											obj_t BgL_arg1291z00_829;

											{	/* Object/generic.scm 93 */
												obj_t BgL_arg1292z00_830;

												{	/* Object/generic.scm 93 */
													obj_t BgL_arg1294z00_831;

													{	/* Object/generic.scm 93 */
														obj_t BgL_arg1322z00_832;

														BgL_arg1322z00_832 =
															MAKE_YOUNG_PAIR
															(BGl_za2moduleza2z00zzmodule_modulez00, BNIL);
														BgL_arg1294z00_831 =
															MAKE_YOUNG_PAIR(BgL_idz00_791,
															BgL_arg1322z00_832);
													}
													BgL_arg1292z00_830 =
														MAKE_YOUNG_PAIR(CNST_TABLE_REF(3L),
														BgL_arg1294z00_831);
												}
												BgL_arg1291z00_829 =
													MAKE_YOUNG_PAIR(BgL_arg1292z00_830, BNIL);
											}
											BgL_arg1287z00_827 =
												MAKE_YOUNG_PAIR(CNST_TABLE_REF(10L),
												BgL_arg1291z00_829);
										}
										BgL_arg1289z00_828 =
											BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00
											(BgL_argszd2idzd2_793, BNIL);
										BgL_defaultzd2bodyzd2_794 =
											MAKE_YOUNG_PAIR(BgL_arg1287z00_827, BgL_arg1289z00_828);
									}
								else
									{	/* Object/generic.scm 96 */
										obj_t BgL_arg1323z00_833;

										{	/* Object/generic.scm 96 */
											obj_t BgL_arg1324z00_834;
											obj_t BgL_arg1325z00_835;

											{	/* Object/generic.scm 96 */
												obj_t BgL_arg1330z00_836;

												{	/* Object/generic.scm 96 */
													obj_t BgL_arg1331z00_837;

													{	/* Object/generic.scm 96 */
														obj_t BgL_arg1332z00_838;

														{	/* Object/generic.scm 96 */
															obj_t BgL_arg1337z00_839;

															BgL_arg1337z00_839 =
																MAKE_YOUNG_PAIR
																(BGl_za2moduleza2z00zzmodule_modulez00, BNIL);
															BgL_arg1332z00_838 =
																MAKE_YOUNG_PAIR(BgL_idz00_791,
																BgL_arg1337z00_839);
														}
														BgL_arg1331z00_837 =
															MAKE_YOUNG_PAIR(CNST_TABLE_REF(3L),
															BgL_arg1332z00_838);
													}
													BgL_arg1330z00_836 =
														MAKE_YOUNG_PAIR(BgL_arg1331z00_837, BNIL);
												}
												BgL_arg1324z00_834 =
													MAKE_YOUNG_PAIR(CNST_TABLE_REF(10L),
													BgL_arg1330z00_836);
											}
											{	/* Object/generic.scm 97 */
												obj_t BgL_arg1338z00_840;

												{	/* Object/generic.scm 97 */
													obj_t BgL_arg1341z00_841;
													obj_t BgL_arg1343z00_842;

													{	/* Object/generic.scm 97 */
														obj_t BgL_arg1344z00_843;

														{	/* Object/generic.scm 97 */
															obj_t BgL_arg1346z00_844;

															BgL_arg1346z00_844 =
																MAKE_YOUNG_PAIR(CNST_TABLE_REF(11L), BNIL);
															BgL_arg1344z00_843 =
																MAKE_YOUNG_PAIR(CNST_TABLE_REF(7L),
																BgL_arg1346z00_844);
														}
														BgL_arg1341z00_841 =
															MAKE_YOUNG_PAIR(CNST_TABLE_REF(3L),
															BgL_arg1344z00_843);
													}
													BgL_arg1343z00_842 =
														BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00
														(BgL_argszd2idzd2_793, BNIL);
													BgL_arg1338z00_840 =
														MAKE_YOUNG_PAIR(BgL_arg1341z00_841,
														BgL_arg1343z00_842);
												}
												BgL_arg1325z00_835 =
													MAKE_YOUNG_PAIR(BgL_arg1338z00_840, BNIL);
											}
											BgL_arg1323z00_833 =
												MAKE_YOUNG_PAIR(BgL_arg1324z00_834, BgL_arg1325z00_835);
										}
										BgL_defaultzd2bodyzd2_794 =
											MAKE_YOUNG_PAIR(CNST_TABLE_REF(8L), BgL_arg1323z00_833);
									}
								{	/* Object/generic.scm 91 */
									obj_t BgL_methodzd2argzd2_795;

									BgL_methodzd2argzd2_795 = CAR(((obj_t) BgL_localsz00_12));
									{	/* Object/generic.scm 100 */
										obj_t BgL_methodzd2argzd2idz00_796;

										BgL_methodzd2argzd2idz00_796 =
											(((BgL_variablez00_bglt) COBJECT(
													((BgL_variablez00_bglt)
														((BgL_localz00_bglt) BgL_methodzd2argzd2_795))))->
											BgL_idz00);
										{	/* Object/generic.scm 102 */
											obj_t BgL_methodz00_798;

											BgL_methodz00_798 =
												BGl_gensymz00zz__r4_symbols_6_4z00(CNST_TABLE_REF(1L));
											{	/* Object/generic.scm 103 */
												obj_t BgL_tmethodz00_799;

												BgL_tmethodz00_799 =
													BGl_makezd2typedzd2identz00zzast_identz00
													(BgL_methodz00_798, CNST_TABLE_REF(2L));
												{	/* Object/generic.scm 104 */
													obj_t BgL_appzd2lyzd2methodz00_800;

													{	/* Object/generic.scm 109 */
														obj_t BgL_arg1249z00_806;

														{	/* Object/generic.scm 109 */
															obj_t BgL_arg1250z00_807;
															obj_t BgL_arg1252z00_808;

															{	/* Object/generic.scm 109 */
																obj_t BgL_arg1253z00_809;

																{	/* Object/generic.scm 109 */
																	obj_t BgL_arg1254z00_810;

																	{	/* Object/generic.scm 109 */
																		obj_t BgL_arg1256z00_811;

																		{	/* Object/generic.scm 109 */
																			obj_t BgL_arg1257z00_812;

																			{	/* Object/generic.scm 109 */
																				obj_t BgL_arg1259z00_814;

																				{	/* Object/generic.scm 109 */
																					obj_t BgL_arg1260z00_815;

																					{	/* Object/generic.scm 109 */
																						obj_t BgL_arg1265z00_816;

																						{	/* Object/generic.scm 109 */
																							obj_t BgL_arg1275z00_817;

																							{	/* Object/generic.scm 109 */
																								obj_t BgL_arg1276z00_818;

																								BgL_arg1276z00_818 =
																									MAKE_YOUNG_PAIR
																									(BGl_za2moduleza2z00zzmodule_modulez00,
																									BNIL);
																								BgL_arg1275z00_817 =
																									MAKE_YOUNG_PAIR(BgL_idz00_791,
																									BgL_arg1276z00_818);
																							}
																							BgL_arg1265z00_816 =
																								MAKE_YOUNG_PAIR(CNST_TABLE_REF
																								(3L), BgL_arg1275z00_817);
																						}
																						BgL_arg1260z00_815 =
																							MAKE_YOUNG_PAIR
																							(BgL_arg1265z00_816, BNIL);
																					}
																					BgL_arg1259z00_814 =
																						MAKE_YOUNG_PAIR
																						(BgL_methodzd2argzd2idz00_796,
																						BgL_arg1260z00_815);
																				}
																				BgL_arg1257z00_812 =
																					MAKE_YOUNG_PAIR(CNST_TABLE_REF(4L),
																					BgL_arg1259z00_814);
																			}
																			{	/* Object/generic.scm 106 */
																				obj_t BgL_list1258z00_813;

																				BgL_list1258z00_813 =
																					MAKE_YOUNG_PAIR(BgL_arg1257z00_812,
																					BNIL);
																				BgL_arg1256z00_811 =
																					BGl_makezd2privatezd2sexpz00zzast_privatez00
																					(CNST_TABLE_REF(5L),
																					CNST_TABLE_REF(6L),
																					BgL_list1258z00_813);
																			}
																		}
																		BgL_arg1254z00_810 =
																			MAKE_YOUNG_PAIR(BgL_arg1256z00_811, BNIL);
																	}
																	BgL_arg1253z00_809 =
																		MAKE_YOUNG_PAIR(BgL_tmethodz00_799,
																		BgL_arg1254z00_810);
																}
																BgL_arg1250z00_807 =
																	MAKE_YOUNG_PAIR(BgL_arg1253z00_809, BNIL);
															}
															{	/* Object/generic.scm 110 */
																obj_t BgL_arg1277z00_819;

																if ((BgL_arityz00_792 >= 0L))
																	{	/* Object/generic.scm 110 */
																		BgL_arg1277z00_819 =
																			MAKE_YOUNG_PAIR(BgL_methodz00_798,
																			BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00
																			(BgL_argszd2idzd2_793, BNIL));
																	}
																else
																	{	/* Object/generic.scm 112 */
																		obj_t BgL_arg1282z00_822;

																		{	/* Object/generic.scm 112 */
																			obj_t BgL_arg1283z00_823;

																			{	/* Object/generic.scm 112 */
																				obj_t BgL_arg1284z00_824;

																				{	/* Object/generic.scm 112 */
																					obj_t BgL_arg1285z00_825;

																					BgL_arg1285z00_825 =
																						BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00
																						(BgL_argszd2idzd2_793, BNIL);
																					BgL_arg1284z00_824 =
																						MAKE_YOUNG_PAIR(CNST_TABLE_REF(7L),
																						BgL_arg1285z00_825);
																				}
																				BgL_arg1283z00_823 =
																					MAKE_YOUNG_PAIR(BgL_arg1284z00_824,
																					BNIL);
																			}
																			BgL_arg1282z00_822 =
																				MAKE_YOUNG_PAIR(BgL_methodz00_798,
																				BgL_arg1283z00_823);
																		}
																		BgL_arg1277z00_819 =
																			MAKE_YOUNG_PAIR(CNST_TABLE_REF(8L),
																			BgL_arg1282z00_822);
																	}
																BgL_arg1252z00_808 =
																	MAKE_YOUNG_PAIR(BgL_arg1277z00_819, BNIL);
															}
															BgL_arg1249z00_806 =
																MAKE_YOUNG_PAIR(BgL_arg1250z00_807,
																BgL_arg1252z00_808);
														}
														BgL_appzd2lyzd2methodz00_800 =
															MAKE_YOUNG_PAIR(CNST_TABLE_REF(9L),
															BgL_arg1249z00_806);
													}
													{	/* Object/generic.scm 105 */

														{	/* Object/generic.scm 114 */
															obj_t BgL_arg1242z00_801;

															{	/* Object/generic.scm 114 */
																obj_t BgL_arg1244z00_802;
																obj_t BgL_arg1246z00_803;

																{	/* Object/generic.scm 114 */
																	obj_t BgL_arg1247z00_804;

																	BgL_arg1247z00_804 =
																		MAKE_YOUNG_PAIR
																		(BgL_methodzd2argzd2idz00_796, BNIL);
																	BgL_arg1244z00_802 =
																		MAKE_YOUNG_PAIR(CNST_TABLE_REF(12L),
																		BgL_arg1247z00_804);
																}
																{	/* Object/generic.scm 114 */
																	obj_t BgL_arg1248z00_805;

																	BgL_arg1248z00_805 =
																		MAKE_YOUNG_PAIR(BgL_defaultzd2bodyzd2_794,
																		BNIL);
																	BgL_arg1246z00_803 =
																		MAKE_YOUNG_PAIR
																		(BgL_appzd2lyzd2methodz00_800,
																		BgL_arg1248z00_805);
																}
																BgL_arg1242z00_801 =
																	MAKE_YOUNG_PAIR(BgL_arg1244z00_802,
																	BgL_arg1246z00_803);
															}
															return
																MAKE_YOUNG_PAIR(CNST_TABLE_REF(13L),
																BgL_arg1242z00_801);
														}
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}

	}



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

	}



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

	}



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

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zzobject_genericz00(void)
	{
		{	/* Object/generic.scm 15 */
			BGl_modulezd2initializa7ationz75zzengine_paramz00(517137079L,
				BSTRING_TO_STRING(BGl_string1507z00zzobject_genericz00));
			BGl_modulezd2initializa7ationz75zztools_argsz00(47102372L,
				BSTRING_TO_STRING(BGl_string1507z00zzobject_genericz00));
			BGl_modulezd2initializa7ationz75zztools_errorz00(300504031L,
				BSTRING_TO_STRING(BGl_string1507z00zzobject_genericz00));
			BGl_modulezd2initializa7ationz75zztype_typez00(515343395L,
				BSTRING_TO_STRING(BGl_string1507z00zzobject_genericz00));
			BGl_modulezd2initializa7ationz75zztype_cachez00(346491734L,
				BSTRING_TO_STRING(BGl_string1507z00zzobject_genericz00));
			BGl_modulezd2initializa7ationz75zzast_varz00(90839984L,
				BSTRING_TO_STRING(BGl_string1507z00zzobject_genericz00));
			BGl_modulezd2initializa7ationz75zzast_identz00(174885617L,
				BSTRING_TO_STRING(BGl_string1507z00zzobject_genericz00));
			BGl_modulezd2initializa7ationz75zzast_privatez00(135263837L,
				BSTRING_TO_STRING(BGl_string1507z00zzobject_genericz00));
			BGl_modulezd2initializa7ationz75zzobject_classz00(502007119L,
				BSTRING_TO_STRING(BGl_string1507z00zzobject_genericz00));
			BGl_modulezd2initializa7ationz75zzmodule_modulez00(158397907L,
				BSTRING_TO_STRING(BGl_string1507z00zzobject_genericz00));
			BGl_modulezd2initializa7ationz75zztools_locationz00(462333240L,
				BSTRING_TO_STRING(BGl_string1507z00zzobject_genericz00));
			BGl_modulezd2initializa7ationz75zzast_envz00(146730773L,
				BSTRING_TO_STRING(BGl_string1507z00zzobject_genericz00));
			return
				BGl_modulezd2initializa7ationz75zztools_shapez00(365925558L,
				BSTRING_TO_STRING(BGl_string1507z00zzobject_genericz00));
		}

	}

#ifdef __cplusplus
}
#endif
