/*===========================================================================*/
/*   (Type/misc.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 Type/misc.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_TYPE_MISC_TYPE_DEFINITIONS
#define BGL_TYPE_MISC_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_funz00_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;
	}             *BgL_funz00_bglt;

	typedef struct BgL_nodez00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
	}              *BgL_nodez00_bglt;

	typedef struct BgL_varz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_variablez00_bgl *BgL_variablez00;
	}             *BgL_varz00_bglt;

	typedef struct BgL_appz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		obj_t BgL_sidezd2effectzd2;
		obj_t BgL_keyz00;
		struct BgL_varz00_bgl *BgL_funz00;
		obj_t BgL_argsz00;
		obj_t BgL_stackablez00;
	}             *BgL_appz00_bglt;


#endif													// BGL_TYPE_MISC_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	static long BGl_czd2weightze70z35zztype_miscz00(BgL_typez00_bglt);
	static obj_t BGl_requirezd2initializa7ationz75zztype_miscz00 = BUNSPEC;
	extern obj_t BGl_za2pairzd2nilza2zd2zztype_cachez00;
	BGL_IMPORT obj_t BGl_za2classesza2z00zz__objectz00;
	static obj_t BGl_toplevelzd2initzd2zztype_miscz00(void);
	static obj_t BGl_z62typezd2disjointzf3z43zztype_miscz00(obj_t, obj_t, obj_t);
	static obj_t BGl_genericzd2initzd2zztype_miscz00(void);
	static obj_t BGl_objectzd2initzd2zztype_miscz00(void);
	static obj_t BGl_z62isazd2ofzb0zztype_miscz00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_za2inheritancesza2z00zz__objectz00;
	static obj_t BGl_z62typezd2lesszd2specificzf3z91zztype_miscz00(obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL bool_t BGl_czd2subtypezf3z21zztype_miscz00(BgL_typez00_bglt,
		BgL_typez00_bglt);
	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_z62czd2subtypezf3z43zztype_miscz00(obj_t, obj_t, obj_t);
	static obj_t BGl_methodzd2initzd2zztype_miscz00(void);
	BGL_EXPORTED_DECL bool_t
		BGl_typezd2disjointzf3z21zztype_miscz00(BgL_typez00_bglt, BgL_typez00_bglt);
	extern BgL_typez00_bglt
		BGl_getzd2bigloozd2typez00zztype_cachez00(BgL_typez00_bglt);
	extern obj_t BGl_varz00zzast_nodez00;
	extern obj_t BGl_za2pairza2z00zztype_cachez00;
	extern obj_t BGl_za2_za2z00zztype_cachez00;
	BGL_EXPORTED_DECL bool_t
		BGl_typezd2lesszd2specificzf3zf3zztype_miscz00(BgL_typez00_bglt,
		BgL_typez00_bglt);
	extern obj_t BGl_za2objza2z00zztype_cachez00;
	extern obj_t BGl_findzd2coercerzd2zztype_coercionz00(BgL_typez00_bglt,
		BgL_typez00_bglt);
	BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zztype_miscz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_envz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzobject_classz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_envz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_coercionz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(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_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_appz00zzast_nodez00;
	BGL_EXPORTED_DECL obj_t
		BGl_appzd2predicatezd2ofz00zztype_miscz00(BgL_appz00_bglt);
	extern bool_t BGl_typezd2subclasszf3z21zzobject_classz00(BgL_typez00_bglt,
		BgL_typez00_bglt);
	static obj_t BGl_cnstzd2initzd2zztype_miscz00(void);
	static obj_t BGl_libraryzd2moduleszd2initz00zztype_miscz00(void);
	static obj_t BGl_importedzd2moduleszd2initz00zztype_miscz00(void);
	static obj_t BGl_gczd2rootszd2initz00zztype_miscz00(void);
	static obj_t BGl_za2isaza2z00zztype_miscz00 = BUNSPEC;
	extern obj_t BGl_findzd2globalzf2modulez20zzast_envz00(obj_t, obj_t);
	extern obj_t BGl_za2bnilza2z00zztype_cachez00;
	static obj_t BGl_z62appzd2predicatezd2ofz62zztype_miscz00(obj_t, obj_t);
	extern obj_t BGl_za2epairza2z00zztype_cachez00;
	extern BgL_typez00_bglt BGl_findzd2typezd2zztype_envz00(obj_t);
	extern bool_t BGl_bigloozd2typezf3z21zztype_typez00(BgL_typez00_bglt);
	BGL_EXPORTED_DECL obj_t BGl_isazd2ofzd2zztype_miscz00(BgL_nodez00_bglt);
	extern obj_t BGl_globalz00zzast_varz00;
	static obj_t __cnst[18];


	   
		 
		DEFINE_STRING(BGl_string1681z00zztype_miscz00,
		BgL_bgl_string1681za700za7za7t1685za7, "type_misc", 9);
	      DEFINE_STRING(BGl_string1682z00zztype_miscz00,
		BgL_bgl_string1682za700za7za7t1686za7,
		"__object isa? real double uint64 int64 uint32 int32 uint16 int16 uint8 int8 llong elong long int short char ",
		108);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_typezd2lesszd2specificzf3zd2envz21zztype_miscz00,
		BgL_bgl_za762typeza7d2lessza7d1687za7,
		BGl_z62typezd2lesszd2specificzf3z91zztype_miscz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_typezd2disjointzf3zd2envzf3zztype_miscz00,
		BgL_bgl_za762typeza7d2disjoi1688z00,
		BGl_z62typezd2disjointzf3z43zztype_miscz00, 0L, BUNSPEC, 2);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_czd2subtypezf3zd2envzf3zztype_miscz00,
		BgL_bgl_za762cza7d2subtypeza7f1689za7,
		BGl_z62czd2subtypezf3z43zztype_miscz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_appzd2predicatezd2ofzd2envzd2zztype_miscz00,
		BgL_bgl_za762appza7d2predica1690z00,
		BGl_z62appzd2predicatezd2ofz62zztype_miscz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_isazd2ofzd2envz00zztype_miscz00,
		BgL_bgl_za762isaza7d2ofza7b0za7za71691za7, BGl_z62isazd2ofzb0zztype_miscz00,
		0L, BUNSPEC, 1);

/* GC roots registration */
	static obj_t bgl_gc_roots_register()
	{
#if defined( BGL_GC_ROOTS )
#define ADD_ROOT( addr ) (addr > roots_max ? roots_max = addr : (addr < roots_min ? roots_min = addr : 0))
		void *roots_min = (void *) ULONG_MAX, *roots_max = 0;
		     ADD_ROOT((void *) (&BGl_requirezd2initializa7ationz75zztype_miscz00));
		     ADD_ROOT((void *) (&BGl_za2isaza2z00zztype_miscz00));
#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_modulezd2initializa7ationz75zztype_miscz00(long
		BgL_checksumz00_2150, char *BgL_fromz00_2151)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zztype_miscz00))
				{
					BGl_requirezd2initializa7ationz75zztype_miscz00 = BBOOL(((bool_t) 0));
					BGl_gczd2rootszd2initz00zztype_miscz00();
					BGl_libraryzd2moduleszd2initz00zztype_miscz00();
					BGl_cnstzd2initzd2zztype_miscz00();
					BGl_importedzd2moduleszd2initz00zztype_miscz00();
					return BGl_toplevelzd2initzd2zztype_miscz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* library-modules-init */
	obj_t BGl_libraryzd2moduleszd2initz00zztype_miscz00(void)
	{
		{	/* Type/misc.scm 15 */
			BGl_modulezd2initializa7ationz75zz__objectz00(0L, "type_misc");
			BGl_modulezd2initializa7ationz75zz__readerz00(0L, "type_misc");
			BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(0L, "type_misc");
			BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(0L, "type_misc");
			BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(0L,
				"type_misc");
			BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(0L, "type_misc");
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(0L,
				"type_misc");
			BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(0L,
				"type_misc");
			return BUNSPEC;
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zztype_miscz00(void)
	{
		{	/* Type/misc.scm 15 */
			{	/* Type/misc.scm 15 */
				obj_t BgL_cportz00_2139;

				{	/* Type/misc.scm 15 */
					obj_t BgL_stringz00_2146;

					BgL_stringz00_2146 = BGl_string1682z00zztype_miscz00;
					{	/* Type/misc.scm 15 */
						obj_t BgL_startz00_2147;

						BgL_startz00_2147 = BINT(0L);
						{	/* Type/misc.scm 15 */
							obj_t BgL_endz00_2148;

							BgL_endz00_2148 =
								BINT(STRING_LENGTH(((obj_t) BgL_stringz00_2146)));
							{	/* Type/misc.scm 15 */

								BgL_cportz00_2139 =
									BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00
									(BgL_stringz00_2146, BgL_startz00_2147, BgL_endz00_2148);
				}}}}
				{
					long BgL_iz00_2140;

					BgL_iz00_2140 = 17L;
				BgL_loopz00_2141:
					if ((BgL_iz00_2140 == -1L))
						{	/* Type/misc.scm 15 */
							return BUNSPEC;
						}
					else
						{	/* Type/misc.scm 15 */
							{	/* Type/misc.scm 15 */
								obj_t BgL_arg1684z00_2142;

								{	/* Type/misc.scm 15 */

									{	/* Type/misc.scm 15 */
										obj_t BgL_locationz00_2144;

										BgL_locationz00_2144 = BBOOL(((bool_t) 0));
										{	/* Type/misc.scm 15 */

											BgL_arg1684z00_2142 =
												BGl_readz00zz__readerz00(BgL_cportz00_2139,
												BgL_locationz00_2144);
										}
									}
								}
								{	/* Type/misc.scm 15 */
									int BgL_tmpz00_2177;

									BgL_tmpz00_2177 = (int) (BgL_iz00_2140);
									CNST_TABLE_SET(BgL_tmpz00_2177, BgL_arg1684z00_2142);
							}}
							{	/* Type/misc.scm 15 */
								int BgL_auxz00_2145;

								BgL_auxz00_2145 = (int) ((BgL_iz00_2140 - 1L));
								{
									long BgL_iz00_2182;

									BgL_iz00_2182 = (long) (BgL_auxz00_2145);
									BgL_iz00_2140 = BgL_iz00_2182;
									goto BgL_loopz00_2141;
								}
							}
						}
				}
			}
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zztype_miscz00(void)
	{
		{	/* Type/misc.scm 15 */
			return bgl_gc_roots_register();
		}

	}



/* toplevel-init */
	obj_t BGl_toplevelzd2initzd2zztype_miscz00(void)
	{
		{	/* Type/misc.scm 15 */
			return (BGl_za2isaza2z00zztype_miscz00 = BFALSE, BUNSPEC);
		}

	}



/* type-less-specific? */
	BGL_EXPORTED_DEF bool_t
		BGl_typezd2lesszd2specificzf3zf3zztype_miscz00(BgL_typez00_bglt BgL_t1z00_3,
		BgL_typez00_bglt BgL_t2z00_4)
	{
		{	/* Type/misc.scm 38 */
			if ((((obj_t) BgL_t1z00_3) == ((obj_t) BgL_t2z00_4)))
				{	/* Type/misc.scm 40 */
					return ((bool_t) 1);
				}
			else
				{	/* Type/misc.scm 40 */
					if ((((obj_t) BgL_t2z00_4) == BGl_za2_za2z00zztype_cachez00))
						{	/* Type/misc.scm 42 */
							return ((bool_t) 0);
						}
					else
						{	/* Type/misc.scm 44 */
							bool_t BgL_test1696z00_2192;

							if (BGl_bigloozd2typezf3z21zztype_typez00(BgL_t1z00_3))
								{	/* Type/misc.scm 44 */
									if (BGl_bigloozd2typezf3z21zztype_typez00(BgL_t2z00_4))
										{	/* Type/misc.scm 44 */
											BgL_test1696z00_2192 = ((bool_t) 0);
										}
									else
										{	/* Type/misc.scm 44 */
											BgL_test1696z00_2192 = ((bool_t) 1);
										}
								}
							else
								{	/* Type/misc.scm 44 */
									BgL_test1696z00_2192 = ((bool_t) 0);
								}
							if (BgL_test1696z00_2192)
								{	/* Type/misc.scm 45 */
									BgL_typez00_bglt BgL_arg1250z00_1588;

									BgL_arg1250z00_1588 =
										BGl_getzd2bigloozd2typez00zztype_cachez00(BgL_t2z00_4);
									return
										(((obj_t) BgL_t1z00_3) == ((obj_t) BgL_arg1250z00_1588));
								}
							else
								{	/* Type/misc.scm 46 */
									bool_t BgL_test1699z00_2201;

									if (BGl_bigloozd2typezf3z21zztype_typez00(BgL_t1z00_3))
										{	/* Type/misc.scm 46 */
											if (BGl_bigloozd2typezf3z21zztype_typez00(BgL_t2z00_4))
												{	/* Type/misc.scm 46 */
													BgL_test1699z00_2201 = ((bool_t) 0);
												}
											else
												{	/* Type/misc.scm 46 */
													BgL_test1699z00_2201 = ((bool_t) 1);
												}
										}
									else
										{	/* Type/misc.scm 46 */
											BgL_test1699z00_2201 = ((bool_t) 1);
										}
									if (BgL_test1699z00_2201)
										{	/* Type/misc.scm 46 */
											return ((bool_t) 0);
										}
									else
										{	/* Type/misc.scm 46 */
											if (BGl_typezd2subclasszf3z21zzobject_classz00
												(BgL_t2z00_4, BgL_t1z00_3))
												{	/* Type/misc.scm 48 */
													return ((bool_t) 1);
												}
											else
												{	/* Type/misc.scm 48 */
													if (
														(((obj_t) BgL_t1z00_3) ==
															BGl_za2objza2z00zztype_cachez00))
														{	/* Type/misc.scm 50 */
															return ((bool_t) 1);
														}
													else
														{	/* Type/misc.scm 50 */
															if (
																(((obj_t) BgL_t1z00_3) ==
																	BGl_za2pairzd2nilza2zd2zztype_cachez00))
																{	/* Type/misc.scm 53 */
																	bool_t BgL__ortest_1105z00_1596;

																	BgL__ortest_1105z00_1596 =
																		(
																		((obj_t) BgL_t2z00_4) ==
																		BGl_za2pairza2z00zztype_cachez00);
																	if (BgL__ortest_1105z00_1596)
																		{	/* Type/misc.scm 53 */
																			return BgL__ortest_1105z00_1596;
																		}
																	else
																		{	/* Type/misc.scm 53 */
																			bool_t BgL__ortest_1106z00_1597;

																			BgL__ortest_1106z00_1597 =
																				(
																				((obj_t) BgL_t2z00_4) ==
																				BGl_za2epairza2z00zztype_cachez00);
																			if (BgL__ortest_1106z00_1597)
																				{	/* Type/misc.scm 53 */
																					return BgL__ortest_1106z00_1597;
																				}
																			else
																				{	/* Type/misc.scm 53 */
																					return
																						(
																						((obj_t) BgL_t2z00_4) ==
																						BGl_za2bnilza2z00zztype_cachez00);
																				}
																		}
																}
															else
																{	/* Type/misc.scm 52 */
																	return ((bool_t) 0);
																}
														}
												}
										}
								}
						}
				}
		}

	}



/* &type-less-specific? */
	obj_t BGl_z62typezd2lesszd2specificzf3z91zztype_miscz00(obj_t BgL_envz00_2126,
		obj_t BgL_t1z00_2127, obj_t BgL_t2z00_2128)
	{
		{	/* Type/misc.scm 38 */
			return
				BBOOL(BGl_typezd2lesszd2specificzf3zf3zztype_miscz00(
					((BgL_typez00_bglt) BgL_t1z00_2127),
					((BgL_typez00_bglt) BgL_t2z00_2128)));
		}

	}



/* type-disjoint? */
	BGL_EXPORTED_DEF bool_t
		BGl_typezd2disjointzf3z21zztype_miscz00(BgL_typez00_bglt BgL_t1z00_5,
		BgL_typez00_bglt BgL_t2z00_6)
	{
		{	/* Type/misc.scm 63 */
			if ((((obj_t) BgL_t1z00_5) == ((obj_t) BgL_t2z00_6)))
				{	/* Type/misc.scm 65 */
					return ((bool_t) 0);
				}
			else
				{	/* Type/misc.scm 65 */
					if ((((obj_t) BgL_t2z00_6) == BGl_za2_za2z00zztype_cachez00))
						{	/* Type/misc.scm 67 */
							return ((bool_t) 0);
						}
					else
						{	/* Type/misc.scm 69 */
							bool_t BgL_test1714z00_2233;

							{	/* Type/misc.scm 69 */
								bool_t BgL_test1716z00_2234;

								if (BGl_bigloozd2typezf3z21zztype_typez00(BgL_t1z00_5))
									{	/* Type/misc.scm 69 */
										if (BGl_bigloozd2typezf3z21zztype_typez00(BgL_t2z00_6))
											{	/* Type/misc.scm 69 */
												BgL_test1716z00_2234 = ((bool_t) 0);
											}
										else
											{	/* Type/misc.scm 69 */
												BgL_test1716z00_2234 = ((bool_t) 1);
											}
									}
								else
									{	/* Type/misc.scm 69 */
										BgL_test1716z00_2234 = ((bool_t) 0);
									}
								if (BgL_test1716z00_2234)
									{	/* Type/misc.scm 69 */
										BgL_test1714z00_2233 = ((bool_t) 1);
									}
								else
									{	/* Type/misc.scm 69 */
										if (BGl_bigloozd2typezf3z21zztype_typez00(BgL_t1z00_5))
											{	/* Type/misc.scm 70 */
												BgL_test1714z00_2233 = ((bool_t) 0);
											}
										else
											{	/* Type/misc.scm 70 */
												BgL_test1714z00_2233 =
													BGl_bigloozd2typezf3z21zztype_typez00(BgL_t2z00_6);
											}
									}
							}
							if (BgL_test1714z00_2233)
								{	/* Type/misc.scm 73 */
									bool_t BgL_test1721z00_2242;

									if (CBOOL(BGl_findzd2coercerzd2zztype_coercionz00(BgL_t1z00_5,
												BgL_t2z00_6)))
										{	/* Type/misc.scm 73 */
											BgL_test1721z00_2242 = ((bool_t) 1);
										}
									else
										{	/* Type/misc.scm 73 */
											BgL_test1721z00_2242 =
												CBOOL(BGl_findzd2coercerzd2zztype_coercionz00
												(BgL_t2z00_6, BgL_t1z00_5));
										}
									if (BgL_test1721z00_2242)
										{	/* Type/misc.scm 73 */
											return ((bool_t) 0);
										}
									else
										{	/* Type/misc.scm 73 */
											return ((bool_t) 1);
										}
								}
							else
								{	/* Type/misc.scm 74 */
									bool_t BgL_test1723z00_2248;

									if (BGl_typezd2lesszd2specificzf3zf3zztype_miscz00
										(BgL_t1z00_5, BgL_t2z00_6))
										{	/* Type/misc.scm 74 */
											BgL_test1723z00_2248 = ((bool_t) 1);
										}
									else
										{	/* Type/misc.scm 74 */
											BgL_test1723z00_2248 =
												BGl_typezd2lesszd2specificzf3zf3zztype_miscz00
												(BgL_t2z00_6, BgL_t1z00_5);
										}
									if (BgL_test1723z00_2248)
										{	/* Type/misc.scm 74 */
											return ((bool_t) 0);
										}
									else
										{	/* Type/misc.scm 77 */
											bool_t BgL_test1725z00_2252;

											if (CBOOL(BGl_findzd2coercerzd2zztype_coercionz00
													(BgL_t1z00_5, BgL_t2z00_6)))
												{	/* Type/misc.scm 77 */
													BgL_test1725z00_2252 = ((bool_t) 1);
												}
											else
												{	/* Type/misc.scm 77 */
													BgL_test1725z00_2252 =
														CBOOL(BGl_findzd2coercerzd2zztype_coercionz00
														(BgL_t2z00_6, BgL_t1z00_5));
												}
											if (BgL_test1725z00_2252)
												{	/* Type/misc.scm 77 */
													return ((bool_t) 0);
												}
											else
												{	/* Type/misc.scm 77 */
													return ((bool_t) 1);
												}
										}
								}
						}
				}
		}

	}



/* &type-disjoint? */
	obj_t BGl_z62typezd2disjointzf3z43zztype_miscz00(obj_t BgL_envz00_2129,
		obj_t BgL_t1z00_2130, obj_t BgL_t2z00_2131)
	{
		{	/* Type/misc.scm 63 */
			return
				BBOOL(BGl_typezd2disjointzf3z21zztype_miscz00(
					((BgL_typez00_bglt) BgL_t1z00_2130),
					((BgL_typez00_bglt) BgL_t2z00_2131)));
		}

	}



/* c-subtype? */
	BGL_EXPORTED_DEF bool_t BGl_czd2subtypezf3z21zztype_miscz00(BgL_typez00_bglt
		BgL_t1z00_7, BgL_typez00_bglt BgL_t2z00_8)
	{
		{	/* Type/misc.scm 87 */
			{	/* Type/misc.scm 109 */
				bool_t BgL_test1727z00_2262;

				if (BGl_bigloozd2typezf3z21zztype_typez00(BgL_t1z00_7))
					{	/* Type/misc.scm 109 */
						BgL_test1727z00_2262 = ((bool_t) 0);
					}
				else
					{	/* Type/misc.scm 109 */
						if (BGl_bigloozd2typezf3z21zztype_typez00(BgL_t2z00_8))
							{	/* Type/misc.scm 109 */
								BgL_test1727z00_2262 = ((bool_t) 0);
							}
						else
							{	/* Type/misc.scm 109 */
								BgL_test1727z00_2262 = ((bool_t) 1);
							}
					}
				if (BgL_test1727z00_2262)
					{	/* Type/misc.scm 110 */
						long BgL_w1z00_1626;
						long BgL_w2z00_1627;

						BgL_w1z00_1626 = BGl_czd2weightze70z35zztype_miscz00(BgL_t1z00_7);
						BgL_w2z00_1627 = BGl_czd2weightze70z35zztype_miscz00(BgL_t2z00_8);
						if (((BgL_w1z00_1626 * BgL_w2z00_1627) > 0L))
							{	/* Type/misc.scm 112 */
								return (BgL_w1z00_1626 < BgL_w2z00_1627);
							}
						else
							{	/* Type/misc.scm 112 */
								return ((bool_t) 0);
							}
					}
				else
					{	/* Type/misc.scm 109 */
						return ((bool_t) 0);
					}
			}
		}

	}



/* c-weight~0 */
	long BGl_czd2weightze70z35zztype_miscz00(BgL_typez00_bglt BgL_tz00_1632)
	{
		{	/* Type/misc.scm 107 */
			{	/* Type/misc.scm 90 */
				obj_t BgL_casezd2valuezd2_1634;

				BgL_casezd2valuezd2_1634 =
					(((BgL_typez00_bglt) COBJECT(BgL_tz00_1632))->BgL_idz00);
				if ((BgL_casezd2valuezd2_1634 == CNST_TABLE_REF(0L)))
					{	/* Type/misc.scm 90 */
						return 1L;
					}
				else
					{	/* Type/misc.scm 90 */
						if ((BgL_casezd2valuezd2_1634 == CNST_TABLE_REF(1L)))
							{	/* Type/misc.scm 90 */
								return 2L;
							}
						else
							{	/* Type/misc.scm 90 */
								if ((BgL_casezd2valuezd2_1634 == CNST_TABLE_REF(2L)))
									{	/* Type/misc.scm 90 */
										return 3L;
									}
								else
									{	/* Type/misc.scm 90 */
										if ((BgL_casezd2valuezd2_1634 == CNST_TABLE_REF(3L)))
											{	/* Type/misc.scm 90 */
												return 4L;
											}
										else
											{	/* Type/misc.scm 90 */
												if ((BgL_casezd2valuezd2_1634 == CNST_TABLE_REF(4L)))
													{	/* Type/misc.scm 90 */
														return 4L;
													}
												else
													{	/* Type/misc.scm 90 */
														if (
															(BgL_casezd2valuezd2_1634 == CNST_TABLE_REF(5L)))
															{	/* Type/misc.scm 90 */
																return 5L;
															}
														else
															{	/* Type/misc.scm 90 */
																if (
																	(BgL_casezd2valuezd2_1634 ==
																		CNST_TABLE_REF(6L)))
																	{	/* Type/misc.scm 90 */
																		return 6L;
																	}
																else
																	{	/* Type/misc.scm 90 */
																		if (
																			(BgL_casezd2valuezd2_1634 ==
																				CNST_TABLE_REF(7L)))
																			{	/* Type/misc.scm 90 */
																				return 7L;
																			}
																		else
																			{	/* Type/misc.scm 90 */
																				if (
																					(BgL_casezd2valuezd2_1634 ==
																						CNST_TABLE_REF(8L)))
																					{	/* Type/misc.scm 90 */
																						return 8L;
																					}
																				else
																					{	/* Type/misc.scm 90 */
																						if (
																							(BgL_casezd2valuezd2_1634 ==
																								CNST_TABLE_REF(9L)))
																							{	/* Type/misc.scm 90 */
																								return 9L;
																							}
																						else
																							{	/* Type/misc.scm 90 */
																								if (
																									(BgL_casezd2valuezd2_1634 ==
																										CNST_TABLE_REF(10L)))
																									{	/* Type/misc.scm 90 */
																										return 10L;
																									}
																								else
																									{	/* Type/misc.scm 90 */
																										if (
																											(BgL_casezd2valuezd2_1634
																												== CNST_TABLE_REF(11L)))
																											{	/* Type/misc.scm 90 */
																												return 11L;
																											}
																										else
																											{	/* Type/misc.scm 90 */
																												if (
																													(BgL_casezd2valuezd2_1634
																														==
																														CNST_TABLE_REF
																														(12L)))
																													{	/* Type/misc.scm 90 */
																														return 12L;
																													}
																												else
																													{	/* Type/misc.scm 90 */
																														if (
																															(BgL_casezd2valuezd2_1634
																																==
																																CNST_TABLE_REF
																																(13L)))
																															{	/* Type/misc.scm 90 */
																																return 13L;
																															}
																														else
																															{	/* Type/misc.scm 90 */
																																if (
																																	(BgL_casezd2valuezd2_1634
																																		==
																																		CNST_TABLE_REF
																																		(14L)))
																																	{	/* Type/misc.scm 90 */
																																		return -1L;
																																	}
																																else
																																	{	/* Type/misc.scm 90 */
																																		if (
																																			(BgL_casezd2valuezd2_1634
																																				==
																																				CNST_TABLE_REF
																																				(15L)))
																																			{	/* Type/misc.scm 90 */
																																				return
																																					-2L;
																																			}
																																		else
																																			{	/* Type/misc.scm 90 */
																																				return
																																					-1L;
																																			}
																																	}
																															}
																													}
																											}
																									}
																							}
																					}
																			}
																	}
															}
													}
											}
									}
							}
					}
			}
		}

	}



/* &c-subtype? */
	obj_t BGl_z62czd2subtypezf3z43zztype_miscz00(obj_t BgL_envz00_2132,
		obj_t BgL_t1z00_2133, obj_t BgL_t2z00_2134)
	{
		{	/* Type/misc.scm 87 */
			return
				BBOOL(BGl_czd2subtypezf3z21zztype_miscz00(
					((BgL_typez00_bglt) BgL_t1z00_2133),
					((BgL_typez00_bglt) BgL_t2z00_2134)));
		}

	}



/* isa-of */
	BGL_EXPORTED_DEF obj_t BGl_isazd2ofzd2zztype_miscz00(BgL_nodez00_bglt
		BgL_nodez00_9)
	{
		{	/* Type/misc.scm 122 */
			{	/* Type/misc.scm 123 */
				bool_t BgL_test1752z00_2326;

				{	/* Type/misc.scm 123 */
					obj_t BgL_classz00_1889;

					BgL_classz00_1889 = BGl_appz00zzast_nodez00;
					{	/* Type/misc.scm 123 */
						BgL_objectz00_bglt BgL_arg1801z00_1891;

						{	/* Type/misc.scm 123 */
							obj_t BgL_tmpz00_2327;

							BgL_tmpz00_2327 = ((obj_t) BgL_nodez00_9);
							BgL_arg1801z00_1891 = (BgL_objectz00_bglt) (BgL_tmpz00_2327);
						}
						if (BGL_CONDEXPAND_ISA_ARCH64())
							{	/* Type/misc.scm 123 */
								long BgL_idxz00_1897;

								BgL_idxz00_1897 =
									BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_1891);
								BgL_test1752z00_2326 =
									(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
										(BgL_idxz00_1897 + 3L)) == BgL_classz00_1889);
							}
						else
							{	/* Type/misc.scm 123 */
								bool_t BgL_res1674z00_1919;

								{	/* Type/misc.scm 123 */
									obj_t BgL_oclassz00_1905;

									{	/* Type/misc.scm 123 */
										long BgL_arg1808z00_1911;

										{	/* Type/misc.scm 123 */
											long BgL_arg1809z00_1912;

											BgL_arg1809z00_1912 =
												BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_1891);
											BgL_arg1808z00_1911 = (BgL_arg1809z00_1912 - OBJECT_TYPE);
										}
										BgL_oclassz00_1905 =
											VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
											BgL_arg1808z00_1911);
									}
									{	/* Type/misc.scm 123 */
										bool_t BgL__ortest_1115z00_1906;

										BgL__ortest_1115z00_1906 =
											(BgL_classz00_1889 == BgL_oclassz00_1905);
										if (BgL__ortest_1115z00_1906)
											{	/* Type/misc.scm 123 */
												BgL_res1674z00_1919 = BgL__ortest_1115z00_1906;
											}
										else
											{	/* Type/misc.scm 123 */
												long BgL_odepthz00_1907;

												BgL_odepthz00_1907 =
													BGL_CLASS_DEPTH(BgL_oclassz00_1905);
												if ((3L < BgL_odepthz00_1907))
													{	/* Type/misc.scm 123 */
														obj_t BgL_arg1797z00_1909;

														BgL_arg1797z00_1909 =
															BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_1905, 3L);
														BgL_res1674z00_1919 =
															(BgL_arg1797z00_1909 == BgL_classz00_1889);
													}
												else
													{	/* Type/misc.scm 123 */
														BgL_res1674z00_1919 = ((bool_t) 0);
													}
											}
									}
								}
								BgL_test1752z00_2326 = BgL_res1674z00_1919;
							}
					}
				}
				if (BgL_test1752z00_2326)
					{	/* Type/misc.scm 123 */
						{	/* Type/misc.scm 124 */
							bool_t BgL_test1757z00_2346;

							{	/* Type/misc.scm 124 */
								obj_t BgL_objz00_1920;

								BgL_objz00_1920 = BGl_za2isaza2z00zztype_miscz00;
								{	/* Type/misc.scm 124 */
									obj_t BgL_classz00_1921;

									BgL_classz00_1921 = BGl_globalz00zzast_varz00;
									if (BGL_OBJECTP(BgL_objz00_1920))
										{	/* Type/misc.scm 124 */
											BgL_objectz00_bglt BgL_arg1801z00_1923;

											BgL_arg1801z00_1923 =
												(BgL_objectz00_bglt) (BgL_objz00_1920);
											if (BGL_CONDEXPAND_ISA_ARCH64())
												{	/* Type/misc.scm 124 */
													long BgL_idxz00_1929;

													BgL_idxz00_1929 =
														BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_1923);
													BgL_test1757z00_2346 =
														(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
															(BgL_idxz00_1929 + 2L)) == BgL_classz00_1921);
												}
											else
												{	/* Type/misc.scm 124 */
													bool_t BgL_res1675z00_1951;

													{	/* Type/misc.scm 124 */
														obj_t BgL_oclassz00_1937;

														{	/* Type/misc.scm 124 */
															long BgL_arg1808z00_1943;

															{	/* Type/misc.scm 124 */
																long BgL_arg1809z00_1944;

																BgL_arg1809z00_1944 =
																	BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_1923);
																BgL_arg1808z00_1943 =
																	(BgL_arg1809z00_1944 - OBJECT_TYPE);
															}
															BgL_oclassz00_1937 =
																VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
																BgL_arg1808z00_1943);
														}
														{	/* Type/misc.scm 124 */
															bool_t BgL__ortest_1115z00_1938;

															BgL__ortest_1115z00_1938 =
																(BgL_classz00_1921 == BgL_oclassz00_1937);
															if (BgL__ortest_1115z00_1938)
																{	/* Type/misc.scm 124 */
																	BgL_res1675z00_1951 =
																		BgL__ortest_1115z00_1938;
																}
															else
																{	/* Type/misc.scm 124 */
																	long BgL_odepthz00_1939;

																	BgL_odepthz00_1939 =
																		BGL_CLASS_DEPTH(BgL_oclassz00_1937);
																	if ((2L < BgL_odepthz00_1939))
																		{	/* Type/misc.scm 124 */
																			obj_t BgL_arg1797z00_1941;

																			BgL_arg1797z00_1941 =
																				BGL_CLASS_ANCESTORS_REF
																				(BgL_oclassz00_1937, 2L);
																			BgL_res1675z00_1951 =
																				(BgL_arg1797z00_1941 ==
																				BgL_classz00_1921);
																		}
																	else
																		{	/* Type/misc.scm 124 */
																			BgL_res1675z00_1951 = ((bool_t) 0);
																		}
																}
														}
													}
													BgL_test1757z00_2346 = BgL_res1675z00_1951;
												}
										}
									else
										{	/* Type/misc.scm 124 */
											BgL_test1757z00_2346 = ((bool_t) 0);
										}
								}
							}
							if (BgL_test1757z00_2346)
								{	/* Type/misc.scm 124 */
									BFALSE;
								}
							else
								{	/* Type/misc.scm 124 */
									BGl_za2isaza2z00zztype_miscz00 =
										BGl_findzd2globalzf2modulez20zzast_envz00(CNST_TABLE_REF
										(16L), CNST_TABLE_REF(17L));
								}
						}
						{	/* Type/misc.scm 127 */
							bool_t BgL_test1763z00_2369;

							{	/* Type/misc.scm 127 */
								obj_t BgL_tmpz00_2370;

								BgL_tmpz00_2370 =
									(((BgL_appz00_bglt) COBJECT(
											((BgL_appz00_bglt) BgL_nodez00_9)))->BgL_argsz00);
								BgL_test1763z00_2369 = PAIRP(BgL_tmpz00_2370);
							}
							if (BgL_test1763z00_2369)
								{	/* Type/misc.scm 128 */
									bool_t BgL_test1764z00_2374;

									{	/* Type/misc.scm 128 */
										bool_t BgL_test1765z00_2375;

										{	/* Type/misc.scm 128 */
											BgL_variablez00_bglt BgL_arg1376z00_1682;

											BgL_arg1376z00_1682 =
												(((BgL_varz00_bglt) COBJECT(
														(((BgL_appz00_bglt) COBJECT(
																	((BgL_appz00_bglt) BgL_nodez00_9)))->
															BgL_funz00)))->BgL_variablez00);
											BgL_test1765z00_2375 =
												(((obj_t) BgL_arg1376z00_1682) ==
												BGl_za2isaza2z00zztype_miscz00);
										}
										if (BgL_test1765z00_2375)
											{	/* Type/misc.scm 129 */
												bool_t BgL_test1766z00_2381;

												{	/* Type/misc.scm 129 */
													obj_t BgL_arg1374z00_1680;

													{	/* Type/misc.scm 129 */
														obj_t BgL_pairz00_1953;

														BgL_pairz00_1953 =
															(((BgL_appz00_bglt) COBJECT(
																	((BgL_appz00_bglt) BgL_nodez00_9)))->
															BgL_argsz00);
														BgL_arg1374z00_1680 = CAR(CDR(BgL_pairz00_1953));
													}
													{	/* Type/misc.scm 129 */
														obj_t BgL_classz00_1957;

														BgL_classz00_1957 = BGl_varz00zzast_nodez00;
														if (BGL_OBJECTP(BgL_arg1374z00_1680))
															{	/* Type/misc.scm 129 */
																BgL_objectz00_bglt BgL_arg1801z00_1959;

																BgL_arg1801z00_1959 =
																	(BgL_objectz00_bglt) (BgL_arg1374z00_1680);
																if (BGL_CONDEXPAND_ISA_ARCH64())
																	{	/* Type/misc.scm 129 */
																		long BgL_idxz00_1965;

																		BgL_idxz00_1965 =
																			BGL_OBJECT_INHERITANCE_NUM
																			(BgL_arg1801z00_1959);
																		BgL_test1766z00_2381 =
																			(VECTOR_REF
																			(BGl_za2inheritancesza2z00zz__objectz00,
																				(BgL_idxz00_1965 + 2L)) ==
																			BgL_classz00_1957);
																	}
																else
																	{	/* Type/misc.scm 129 */
																		bool_t BgL_res1676z00_1987;

																		{	/* Type/misc.scm 129 */
																			obj_t BgL_oclassz00_1973;

																			{	/* Type/misc.scm 129 */
																				long BgL_arg1808z00_1979;

																				{	/* Type/misc.scm 129 */
																					long BgL_arg1809z00_1980;

																					BgL_arg1809z00_1980 =
																						BGL_OBJECT_CLASS_NUM
																						(BgL_arg1801z00_1959);
																					BgL_arg1808z00_1979 =
																						(BgL_arg1809z00_1980 - OBJECT_TYPE);
																				}
																				BgL_oclassz00_1973 =
																					VECTOR_REF
																					(BGl_za2classesza2z00zz__objectz00,
																					BgL_arg1808z00_1979);
																			}
																			{	/* Type/misc.scm 129 */
																				bool_t BgL__ortest_1115z00_1974;

																				BgL__ortest_1115z00_1974 =
																					(BgL_classz00_1957 ==
																					BgL_oclassz00_1973);
																				if (BgL__ortest_1115z00_1974)
																					{	/* Type/misc.scm 129 */
																						BgL_res1676z00_1987 =
																							BgL__ortest_1115z00_1974;
																					}
																				else
																					{	/* Type/misc.scm 129 */
																						long BgL_odepthz00_1975;

																						BgL_odepthz00_1975 =
																							BGL_CLASS_DEPTH
																							(BgL_oclassz00_1973);
																						if ((2L < BgL_odepthz00_1975))
																							{	/* Type/misc.scm 129 */
																								obj_t BgL_arg1797z00_1977;

																								BgL_arg1797z00_1977 =
																									BGL_CLASS_ANCESTORS_REF
																									(BgL_oclassz00_1973, 2L);
																								BgL_res1676z00_1987 =
																									(BgL_arg1797z00_1977 ==
																									BgL_classz00_1957);
																							}
																						else
																							{	/* Type/misc.scm 129 */
																								BgL_res1676z00_1987 =
																									((bool_t) 0);
																							}
																					}
																			}
																		}
																		BgL_test1766z00_2381 = BgL_res1676z00_1987;
																	}
															}
														else
															{	/* Type/misc.scm 129 */
																BgL_test1766z00_2381 = ((bool_t) 0);
															}
													}
												}
												if (BgL_test1766z00_2381)
													{	/* Type/misc.scm 130 */
														BgL_variablez00_bglt BgL_arg1369z00_1677;

														{
															BgL_varz00_bglt BgL_auxz00_2405;

															{
																obj_t BgL_auxz00_2406;

																{	/* Type/misc.scm 130 */
																	obj_t BgL_pairz00_1988;

																	BgL_pairz00_1988 =
																		(((BgL_appz00_bglt) COBJECT(
																				((BgL_appz00_bglt) BgL_nodez00_9)))->
																		BgL_argsz00);
																	{	/* Type/misc.scm 130 */
																		obj_t BgL_pairz00_1991;

																		BgL_pairz00_1991 = CDR(BgL_pairz00_1988);
																		BgL_auxz00_2406 = CAR(BgL_pairz00_1991);
																	}
																}
																BgL_auxz00_2405 =
																	((BgL_varz00_bglt) BgL_auxz00_2406);
															}
															BgL_arg1369z00_1677 =
																(((BgL_varz00_bglt) COBJECT(BgL_auxz00_2405))->
																BgL_variablez00);
														}
														{	/* Type/misc.scm 130 */
															obj_t BgL_classz00_1993;

															BgL_classz00_1993 = BGl_globalz00zzast_varz00;
															{	/* Type/misc.scm 130 */
																BgL_objectz00_bglt BgL_arg1801z00_1995;

																{	/* Type/misc.scm 130 */
																	obj_t BgL_tmpz00_2413;

																	BgL_tmpz00_2413 =
																		((obj_t)
																		((BgL_objectz00_bglt) BgL_arg1369z00_1677));
																	BgL_arg1801z00_1995 =
																		(BgL_objectz00_bglt) (BgL_tmpz00_2413);
																}
																if (BGL_CONDEXPAND_ISA_ARCH64())
																	{	/* Type/misc.scm 130 */
																		long BgL_idxz00_2001;

																		BgL_idxz00_2001 =
																			BGL_OBJECT_INHERITANCE_NUM
																			(BgL_arg1801z00_1995);
																		BgL_test1764z00_2374 =
																			(VECTOR_REF
																			(BGl_za2inheritancesza2z00zz__objectz00,
																				(BgL_idxz00_2001 + 2L)) ==
																			BgL_classz00_1993);
																	}
																else
																	{	/* Type/misc.scm 130 */
																		bool_t BgL_res1677z00_2023;

																		{	/* Type/misc.scm 130 */
																			obj_t BgL_oclassz00_2009;

																			{	/* Type/misc.scm 130 */
																				long BgL_arg1808z00_2015;

																				{	/* Type/misc.scm 130 */
																					long BgL_arg1809z00_2016;

																					BgL_arg1809z00_2016 =
																						BGL_OBJECT_CLASS_NUM
																						(BgL_arg1801z00_1995);
																					BgL_arg1808z00_2015 =
																						(BgL_arg1809z00_2016 - OBJECT_TYPE);
																				}
																				BgL_oclassz00_2009 =
																					VECTOR_REF
																					(BGl_za2classesza2z00zz__objectz00,
																					BgL_arg1808z00_2015);
																			}
																			{	/* Type/misc.scm 130 */
																				bool_t BgL__ortest_1115z00_2010;

																				BgL__ortest_1115z00_2010 =
																					(BgL_classz00_1993 ==
																					BgL_oclassz00_2009);
																				if (BgL__ortest_1115z00_2010)
																					{	/* Type/misc.scm 130 */
																						BgL_res1677z00_2023 =
																							BgL__ortest_1115z00_2010;
																					}
																				else
																					{	/* Type/misc.scm 130 */
																						long BgL_odepthz00_2011;

																						BgL_odepthz00_2011 =
																							BGL_CLASS_DEPTH
																							(BgL_oclassz00_2009);
																						if ((2L < BgL_odepthz00_2011))
																							{	/* Type/misc.scm 130 */
																								obj_t BgL_arg1797z00_2013;

																								BgL_arg1797z00_2013 =
																									BGL_CLASS_ANCESTORS_REF
																									(BgL_oclassz00_2009, 2L);
																								BgL_res1677z00_2023 =
																									(BgL_arg1797z00_2013 ==
																									BgL_classz00_1993);
																							}
																						else
																							{	/* Type/misc.scm 130 */
																								BgL_res1677z00_2023 =
																									((bool_t) 0);
																							}
																					}
																			}
																		}
																		BgL_test1764z00_2374 = BgL_res1677z00_2023;
																	}
															}
														}
													}
												else
													{	/* Type/misc.scm 129 */
														BgL_test1764z00_2374 = ((bool_t) 0);
													}
											}
										else
											{	/* Type/misc.scm 128 */
												BgL_test1764z00_2374 = ((bool_t) 0);
											}
									}
									if (BgL_test1764z00_2374)
										{	/* Type/misc.scm 131 */
											obj_t BgL_arg1354z00_1671;

											{
												BgL_variablez00_bglt BgL_auxz00_2433;

												{
													BgL_globalz00_bglt BgL_auxz00_2434;

													{
														BgL_variablez00_bglt BgL_auxz00_2435;

														{
															BgL_varz00_bglt BgL_auxz00_2436;

															{
																obj_t BgL_auxz00_2437;

																{	/* Type/misc.scm 131 */
																	obj_t BgL_pairz00_2024;

																	BgL_pairz00_2024 =
																		(((BgL_appz00_bglt) COBJECT(
																				((BgL_appz00_bglt) BgL_nodez00_9)))->
																		BgL_argsz00);
																	{	/* Type/misc.scm 131 */
																		obj_t BgL_pairz00_2027;

																		BgL_pairz00_2027 = CDR(BgL_pairz00_2024);
																		BgL_auxz00_2437 = CAR(BgL_pairz00_2027);
																	}
																}
																BgL_auxz00_2436 =
																	((BgL_varz00_bglt) BgL_auxz00_2437);
															}
															BgL_auxz00_2435 =
																(((BgL_varz00_bglt) COBJECT(BgL_auxz00_2436))->
																BgL_variablez00);
														}
														BgL_auxz00_2434 =
															((BgL_globalz00_bglt) BgL_auxz00_2435);
													}
													BgL_auxz00_2433 =
														((BgL_variablez00_bglt) BgL_auxz00_2434);
												}
												BgL_arg1354z00_1671 =
													(((BgL_variablez00_bglt) COBJECT(BgL_auxz00_2433))->
													BgL_idz00);
											}
											return
												((obj_t)
												BGl_findzd2typezd2zztype_envz00(BgL_arg1354z00_1671));
										}
									else
										{	/* Type/misc.scm 128 */
											return BFALSE;
										}
								}
							else
								{	/* Type/misc.scm 127 */
									return BFALSE;
								}
						}
					}
				else
					{	/* Type/misc.scm 123 */
						return BFALSE;
					}
			}
		}

	}



/* &isa-of */
	obj_t BGl_z62isazd2ofzb0zztype_miscz00(obj_t BgL_envz00_2135,
		obj_t BgL_nodez00_2136)
	{
		{	/* Type/misc.scm 122 */
			return
				BGl_isazd2ofzd2zztype_miscz00(((BgL_nodez00_bglt) BgL_nodez00_2136));
		}

	}



/* app-predicate-of */
	BGL_EXPORTED_DEF obj_t
		BGl_appzd2predicatezd2ofz00zztype_miscz00(BgL_appz00_bglt BgL_nodez00_10)
	{
		{	/* Type/misc.scm 136 */
			{	/* Type/misc.scm 138 */
				BgL_valuez00_bglt BgL_valz00_1686;

				BgL_valz00_1686 =
					(((BgL_variablez00_bglt) COBJECT(
							(((BgL_varz00_bglt) COBJECT(
										(((BgL_appz00_bglt) COBJECT(BgL_nodez00_10))->
											BgL_funz00)))->BgL_variablez00)))->BgL_valuez00);
				{	/* Type/misc.scm 139 */
					obj_t BgL__ortest_1111z00_1687;

					BgL__ortest_1111z00_1687 =
						(((BgL_funz00_bglt) COBJECT(
								((BgL_funz00_bglt) BgL_valz00_1686)))->BgL_predicatezd2ofzd2);
					if (CBOOL(BgL__ortest_1111z00_1687))
						{	/* Type/misc.scm 139 */
							return BgL__ortest_1111z00_1687;
						}
					else
						{	/* Type/misc.scm 139 */
							return
								BGl_isazd2ofzd2zztype_miscz00(
								((BgL_nodez00_bglt) BgL_nodez00_10));
						}
				}
			}
		}

	}



/* &app-predicate-of */
	obj_t BGl_z62appzd2predicatezd2ofz62zztype_miscz00(obj_t BgL_envz00_2137,
		obj_t BgL_nodez00_2138)
	{
		{	/* Type/misc.scm 136 */
			return
				BGl_appzd2predicatezd2ofz00zztype_miscz00(
				((BgL_appz00_bglt) BgL_nodez00_2138));
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zztype_miscz00(void)
	{
		{	/* Type/misc.scm 15 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zztype_miscz00(void)
	{
		{	/* Type/misc.scm 15 */
			return BUNSPEC;
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zztype_miscz00(void)
	{
		{	/* Type/misc.scm 15 */
			return BUNSPEC;
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zztype_miscz00(void)
	{
		{	/* Type/misc.scm 15 */
			BGl_modulezd2initializa7ationz75zztype_typez00(515343395L,
				BSTRING_TO_STRING(BGl_string1681z00zztype_miscz00));
			BGl_modulezd2initializa7ationz75zztype_cachez00(346491734L,
				BSTRING_TO_STRING(BGl_string1681z00zztype_miscz00));
			BGl_modulezd2initializa7ationz75zztype_coercionz00(116865673L,
				BSTRING_TO_STRING(BGl_string1681z00zztype_miscz00));
			BGl_modulezd2initializa7ationz75zztype_envz00(296457443L,
				BSTRING_TO_STRING(BGl_string1681z00zztype_miscz00));
			BGl_modulezd2initializa7ationz75zzobject_classz00(502007119L,
				BSTRING_TO_STRING(BGl_string1681z00zztype_miscz00));
			BGl_modulezd2initializa7ationz75zztools_shapez00(365925558L,
				BSTRING_TO_STRING(BGl_string1681z00zztype_miscz00));
			BGl_modulezd2initializa7ationz75zzast_varz00(90839984L,
				BSTRING_TO_STRING(BGl_string1681z00zztype_miscz00));
			BGl_modulezd2initializa7ationz75zzast_nodez00(469732712L,
				BSTRING_TO_STRING(BGl_string1681z00zztype_miscz00));
			return
				BGl_modulezd2initializa7ationz75zzast_envz00(146730773L,
				BSTRING_TO_STRING(BGl_string1681z00zztype_miscz00));
		}

	}

#ifdef __cplusplus
}
#endif
