/*===========================================================================*/
/*   (Type/typeof.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/typeof.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_TYPEOF_TYPE_DEFINITIONS
#define BGL_TYPE_TYPEOF_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_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_sequencez00_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;
		obj_t BgL_nodesz00;
		bool_t BgL_unsafez00;
		obj_t BgL_metaz00;
	}                  *BgL_sequencez00_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;

	typedef struct BgL_conditionalz00_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_nodez00_bgl *BgL_testz00;
		struct BgL_nodez00_bgl *BgL_truez00;
		struct BgL_nodez00_bgl *BgL_falsez00;
	}                     *BgL_conditionalz00_bglt;

	typedef struct BgL_switchz00_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_nodez00_bgl *BgL_testz00;
		obj_t BgL_clausesz00;
		struct BgL_typez00_bgl *BgL_itemzd2typezd2;
	}                *BgL_switchz00_bglt;

	typedef struct BgL_letzd2funzd2_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;
		obj_t BgL_localsz00;
		struct BgL_nodez00_bgl *BgL_bodyz00;
	}                   *BgL_letzd2funzd2_bglt;

	typedef struct BgL_letzd2varzd2_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;
		obj_t BgL_bindingsz00;
		struct BgL_nodez00_bgl *BgL_bodyz00;
		bool_t BgL_removablezf3zf3;
	}                   *BgL_letzd2varzd2_bglt;

	typedef struct BgL_syncz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_nodez00_bgl *BgL_mutexz00;
		struct BgL_nodez00_bgl *BgL_prelockz00;
		struct BgL_nodez00_bgl *BgL_bodyz00;
	}              *BgL_syncz00_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;


#endif													// BGL_TYPE_TYPEOF_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	static BgL_typez00_bglt BGl_z62getzd2typezd2var1268z62zztype_typeofz00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_z62getzd2type1265zb0zztype_typeofz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_za2symbolza2z00zztype_cachez00;
	extern obj_t BGl_za2uint32za2z00zztype_cachez00;
	extern obj_t BGl_za2uint16za2z00zztype_cachez00;
	extern obj_t BGl_za2intza2z00zztype_cachez00;
	static BgL_typez00_bglt
		BGl_z62getzd2typezd2sequence1270z62zztype_typeofz00(obj_t, obj_t, obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zztype_typeofz00 = BUNSPEC;
	extern obj_t BGl_za2vectorza2z00zztype_cachez00;
	extern obj_t BGl_za2pairzd2nilza2zd2zztype_cachez00;
	extern obj_t BGl_za2bignumza2z00zztype_cachez00;
	static bool_t BGl_pairzd2nilzf3z21zztype_typeofz00(obj_t);
	extern obj_t BGl_syncz00zzast_nodez00;
	BGL_IMPORT obj_t BGl_za2classesza2z00zz__objectz00;
	extern obj_t BGl_tclassz00zzobject_classz00;
	BGL_IMPORT obj_t BGl_registerzd2genericz12zc0zz__objectz00(obj_t, obj_t,
		obj_t, obj_t);
	static BgL_typez00_bglt BGl_z62getzd2typezd2atomz62zztype_typeofz00(obj_t,
		obj_t);
	static obj_t BGl_z62iszd2subtypezf3z43zztype_typeofz00(obj_t, obj_t, obj_t);
	static obj_t BGl_toplevelzd2initzd2zztype_typeofz00(void);
	static BgL_typez00_bglt BGl_z62getzd2typezb0zztype_typeofz00(obj_t, obj_t,
		obj_t);
	extern obj_t BGl_sequencez00zzast_nodez00;
	extern obj_t BGl_letzd2varzd2zzast_nodez00;
	static obj_t BGl_genericzd2initzd2zztype_typeofz00(void);
	static BgL_typez00_bglt BGl_z62getzd2typezd2app1283z62zztype_typeofz00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_objectzd2initzd2zztype_typeofz00(void);
	extern obj_t BGl_za2boolza2z00zztype_cachez00;
	static BgL_typez00_bglt BGl_z62getzd2typezd2sync1272z62zztype_typeofz00(obj_t,
		obj_t, obj_t);
	BGL_IMPORT obj_t BGl_za2inheritancesza2z00zz__objectz00;
	extern obj_t BGl_typez00zztype_typez00;
	extern obj_t BGl_za2longza2z00zztype_cachez00;
	extern obj_t BGl_za2magicza2z00zztype_cachez00;
	extern bool_t BGl_czd2subtypezf3z21zztype_miscz00(BgL_typez00_bglt,
		BgL_typez00_bglt);
	extern obj_t BGl_za2uint64za2z00zztype_cachez00;
	static BgL_typez00_bglt
		BGl_z62getzd2typezd2letzd2var1281zb0zztype_typeofz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_za2bstringza2z00zztype_cachez00;
	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_methodzd2initzd2zztype_typeofz00(void);
	static BgL_typez00_bglt
		BGl_z62getzd2typezd2conditional1275z62zztype_typeofz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_za2realza2z00zztype_cachez00;
	extern obj_t BGl_varz00zzast_nodez00;
	BGL_EXPORTED_DECL BgL_typez00_bglt
		BGl_getzd2typezd2zztype_typeofz00(BgL_nodez00_bglt, bool_t);
	extern obj_t BGl_za2pairza2z00zztype_cachez00;
	BGL_EXPORTED_DECL BgL_typez00_bglt
		BGl_getzd2typezd2atomz00zztype_typeofz00(obj_t);
	extern obj_t BGl_za2_za2z00zztype_cachez00;
	extern obj_t BGl_za2int32za2z00zztype_cachez00;
	extern obj_t BGl_za2int16za2z00zztype_cachez00;
	extern obj_t BGl_za2uint8za2z00zztype_cachez00;
	extern obj_t BGl_za2objza2z00zztype_cachez00;
	BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zztype_typeofz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzobject_classz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_speekz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_miscz00(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_characters_6_6z00(long, char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_flonumz00(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__r4_booleans_6_1z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__evalz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__bitz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__structurez00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__biglooz00(long, char *);
	extern obj_t BGl_appz00zzast_nodez00;
	extern obj_t BGl_za2elongza2z00zztype_cachez00;
	extern bool_t BGl_typezd2subclasszf3z21zzobject_classz00(BgL_typez00_bglt,
		BgL_typez00_bglt);
	extern obj_t BGl_za2int8za2z00zztype_cachez00;
	extern obj_t BGl_nodez00zzast_nodez00;
	static obj_t BGl_cnstzd2initzd2zztype_typeofz00(void);
	static obj_t BGl_libraryzd2moduleszd2initz00zztype_typeofz00(void);
	static obj_t BGl_importedzd2moduleszd2initz00zztype_typeofz00(void);
	static obj_t BGl_gczd2rootszd2initz00zztype_typeofz00(void);
	extern obj_t BGl_za2llongza2z00zztype_cachez00;
	static bool_t
		BGl_iszd2strictzd2subtypezf3zf3zztype_typeofz00(BgL_typez00_bglt,
		BgL_typez00_bglt, obj_t);
	static BgL_typez00_bglt BGl_z62getzd2typezd2kwotez62zztype_typeofz00(obj_t,
		obj_t);
	extern obj_t BGl_za2bnilza2z00zztype_cachez00;
	static BgL_typez00_bglt
		BGl_z62getzd2typezd2switch1277z62zztype_typeofz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_za2int64za2z00zztype_cachez00;
	extern obj_t BGl_za2keywordza2z00zztype_cachez00;
	extern obj_t BGl_letzd2funzd2zzast_nodez00;
	extern obj_t BGl_za2unspecza2z00zztype_cachez00;
	extern obj_t BGl_za2epairza2z00zztype_cachez00;
	extern obj_t BGl_za2bintza2z00zztype_cachez00;
	BGL_IMPORT obj_t BGl_genericzd2addzd2methodz12z12zz__objectz00(obj_t, obj_t,
		obj_t, obj_t);
	extern obj_t BGl_switchz00zzast_nodez00;
	BGL_EXPORTED_DECL obj_t BGl_iszd2subtypezf3z21zztype_typeofz00(obj_t, obj_t);
	extern bool_t BGl_bigloozd2typezf3z21zztype_typez00(BgL_typez00_bglt);
	static BgL_typez00_bglt
		BGl_z62getzd2typezd2letzd2fun1279zb0zztype_typeofz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_conditionalz00zzast_nodez00;
	BGL_EXPORTED_DECL BgL_typez00_bglt
		BGl_getzd2typezd2kwotez00zztype_typeofz00(obj_t);
	BGL_IMPORT obj_t BGl_lastzd2pairzd2zz__r4_pairs_and_lists_6_3z00(obj_t);
	BGL_IMPORT obj_t BGl_za2nilza2z00zz__evalz00;
	extern obj_t BGl_za2charza2z00zztype_cachez00;
	static obj_t __cnst[1];


	   
		 
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_getzd2typezd2atomzd2envzd2zztype_typeofz00,
		BgL_bgl_za762getza7d2typeza7d21851za7,
		BGl_z62getzd2typezd2atomz62zztype_typeofz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_GENERIC(BGl_getzd2typezd2envz00zztype_typeofz00,
		BgL_bgl_za762getza7d2typeza7b01852za7, BGl_z62getzd2typezb0zztype_typeofz00,
		0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_iszd2subtypezf3zd2envzf3zztype_typeofz00,
		BgL_bgl_za762isza7d2subtypeza71853za7,
		BGl_z62iszd2subtypezf3z43zztype_typeofz00, 0L, BUNSPEC, 2);
	      DEFINE_STRING(BGl_string1838z00zztype_typeofz00,
		BgL_bgl_string1838za700za7za7t1854za7, "get-type1265", 12);
	      DEFINE_STRING(BGl_string1840z00zztype_typeofz00,
		BgL_bgl_string1840za700za7za7t1855za7, "get-type", 8);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1837z00zztype_typeofz00,
		BgL_bgl_za762getza7d2type1261856z00,
		BGl_z62getzd2type1265zb0zztype_typeofz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1839z00zztype_typeofz00,
		BgL_bgl_za762getza7d2typeza7d21857za7,
		BGl_z62getzd2typezd2var1268z62zztype_typeofz00, 0L, BUNSPEC, 2);
	      DEFINE_STRING(BGl_string1848z00zztype_typeofz00,
		BgL_bgl_string1848za700za7za7t1858za7, "type_typeof", 11);
	      DEFINE_STRING(BGl_string1849z00zztype_typeofz00,
		BgL_bgl_string1849za700za7za7t1859za7, "a-tvector ", 10);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1841z00zztype_typeofz00,
		BgL_bgl_za762getza7d2typeza7d21860za7,
		BGl_z62getzd2typezd2sequence1270z62zztype_typeofz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1842z00zztype_typeofz00,
		BgL_bgl_za762getza7d2typeza7d21861za7,
		BGl_z62getzd2typezd2sync1272z62zztype_typeofz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1843z00zztype_typeofz00,
		BgL_bgl_za762getza7d2typeza7d21862za7,
		BGl_z62getzd2typezd2conditional1275z62zztype_typeofz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1844z00zztype_typeofz00,
		BgL_bgl_za762getza7d2typeza7d21863za7,
		BGl_z62getzd2typezd2switch1277z62zztype_typeofz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1845z00zztype_typeofz00,
		BgL_bgl_za762getza7d2typeza7d21864za7,
		BGl_z62getzd2typezd2letzd2fun1279zb0zztype_typeofz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1846z00zztype_typeofz00,
		BgL_bgl_za762getza7d2typeza7d21865za7,
		BGl_z62getzd2typezd2letzd2var1281zb0zztype_typeofz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1847z00zztype_typeofz00,
		BgL_bgl_za762getza7d2typeza7d21866za7,
		BGl_z62getzd2typezd2app1283z62zztype_typeofz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_getzd2typezd2kwotezd2envzd2zztype_typeofz00,
		BgL_bgl_za762getza7d2typeza7d21867za7,
		BGl_z62getzd2typezd2kwotez62zztype_typeofz00, 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_typeofz00));
#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_typeofz00(long
		BgL_checksumz00_2293, char *BgL_fromz00_2294)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zztype_typeofz00))
				{
					BGl_requirezd2initializa7ationz75zztype_typeofz00 =
						BBOOL(((bool_t) 0));
					BGl_gczd2rootszd2initz00zztype_typeofz00();
					BGl_libraryzd2moduleszd2initz00zztype_typeofz00();
					BGl_cnstzd2initzd2zztype_typeofz00();
					BGl_importedzd2moduleszd2initz00zztype_typeofz00();
					BGl_genericzd2initzd2zztype_typeofz00();
					BGl_methodzd2initzd2zztype_typeofz00();
					return BGl_toplevelzd2initzd2zztype_typeofz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* library-modules-init */
	obj_t BGl_libraryzd2moduleszd2initz00zztype_typeofz00(void)
	{
		{	/* Type/typeof.scm 15 */
			BGl_modulezd2initializa7ationz75zz__objectz00(0L, "type_typeof");
			BGl_modulezd2initializa7ationz75zz__readerz00(0L, "type_typeof");
			BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(0L, "type_typeof");
			BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(0L,
				"type_typeof");
			BGl_modulezd2initializa7ationz75zz__evalz00(0L, "type_typeof");
			BGl_modulezd2initializa7ationz75zz__bitz00(0L, "type_typeof");
			BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(0L,
				"type_typeof");
			BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(0L, "type_typeof");
			BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(0L, "type_typeof");
			BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(0L, "type_typeof");
			BGl_modulezd2initializa7ationz75zz__r4_characters_6_6z00(0L,
				"type_typeof");
			BGl_modulezd2initializa7ationz75zz__r4_booleans_6_1z00(0L, "type_typeof");
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_flonumz00(0L,
				"type_typeof");
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(0L,
				"type_typeof");
			BGl_modulezd2initializa7ationz75zz__structurez00(0L, "type_typeof");
			BGl_modulezd2initializa7ationz75zz__biglooz00(0L, "type_typeof");
			return BUNSPEC;
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zztype_typeofz00(void)
	{
		{	/* Type/typeof.scm 15 */
			{	/* Type/typeof.scm 15 */
				obj_t BgL_cportz00_2232;

				{	/* Type/typeof.scm 15 */
					obj_t BgL_stringz00_2239;

					BgL_stringz00_2239 = BGl_string1849z00zztype_typeofz00;
					{	/* Type/typeof.scm 15 */
						obj_t BgL_startz00_2240;

						BgL_startz00_2240 = BINT(0L);
						{	/* Type/typeof.scm 15 */
							obj_t BgL_endz00_2241;

							BgL_endz00_2241 =
								BINT(STRING_LENGTH(((obj_t) BgL_stringz00_2239)));
							{	/* Type/typeof.scm 15 */

								BgL_cportz00_2232 =
									BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00
									(BgL_stringz00_2239, BgL_startz00_2240, BgL_endz00_2241);
				}}}}
				{
					long BgL_iz00_2233;

					BgL_iz00_2233 = 0L;
				BgL_loopz00_2234:
					if ((BgL_iz00_2233 == -1L))
						{	/* Type/typeof.scm 15 */
							return BUNSPEC;
						}
					else
						{	/* Type/typeof.scm 15 */
							{	/* Type/typeof.scm 15 */
								obj_t BgL_arg1850z00_2235;

								{	/* Type/typeof.scm 15 */

									{	/* Type/typeof.scm 15 */
										obj_t BgL_locationz00_2237;

										BgL_locationz00_2237 = BBOOL(((bool_t) 0));
										{	/* Type/typeof.scm 15 */

											BgL_arg1850z00_2235 =
												BGl_readz00zz__readerz00(BgL_cportz00_2232,
												BgL_locationz00_2237);
										}
									}
								}
								{	/* Type/typeof.scm 15 */
									int BgL_tmpz00_2330;

									BgL_tmpz00_2330 = (int) (BgL_iz00_2233);
									CNST_TABLE_SET(BgL_tmpz00_2330, BgL_arg1850z00_2235);
							}}
							{	/* Type/typeof.scm 15 */
								int BgL_auxz00_2238;

								BgL_auxz00_2238 = (int) ((BgL_iz00_2233 - 1L));
								{
									long BgL_iz00_2335;

									BgL_iz00_2335 = (long) (BgL_auxz00_2238);
									BgL_iz00_2233 = BgL_iz00_2335;
									goto BgL_loopz00_2234;
								}
							}
						}
				}
			}
		}

	}



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

	}



/* toplevel-init */
	obj_t BGl_toplevelzd2initzd2zztype_typeofz00(void)
	{
		{	/* Type/typeof.scm 15 */
			return BUNSPEC;
		}

	}



/* get-type-atom */
	BGL_EXPORTED_DEF BgL_typez00_bglt
		BGl_getzd2typezd2atomz00zztype_typeofz00(obj_t BgL_atomz00_13)
	{
		{	/* Type/typeof.scm 35 */
			if (NULLP(BgL_atomz00_13))
				{	/* Type/typeof.scm 37 */
					return ((BgL_typez00_bglt) BGl_za2bnilza2z00zztype_cachez00);
				}
			else
				{	/* Type/typeof.scm 37 */
					if (INTEGERP(BgL_atomz00_13))
						{	/* Type/typeof.scm 38 */
							return ((BgL_typez00_bglt) BGl_za2longza2z00zztype_cachez00);
						}
					else
						{	/* Type/typeof.scm 38 */
							if (BIGNUMP(BgL_atomz00_13))
								{	/* Type/typeof.scm 39 */
									return
										((BgL_typez00_bglt) BGl_za2bignumza2z00zztype_cachez00);
								}
							else
								{	/* Type/typeof.scm 40 */
									bool_t BgL_test1873z00_2347;

									if (INTEGERP(BgL_atomz00_13))
										{	/* Type/typeof.scm 40 */
											BgL_test1873z00_2347 = ((bool_t) 1);
										}
									else
										{	/* Type/typeof.scm 40 */
											BgL_test1873z00_2347 = REALP(BgL_atomz00_13);
										}
									if (BgL_test1873z00_2347)
										{	/* Type/typeof.scm 40 */
											return
												((BgL_typez00_bglt) BGl_za2realza2z00zztype_cachez00);
										}
									else
										{	/* Type/typeof.scm 40 */
											if (BOOLEANP(BgL_atomz00_13))
												{	/* Type/typeof.scm 41 */
													return
														((BgL_typez00_bglt)
														BGl_za2boolza2z00zztype_cachez00);
												}
											else
												{	/* Type/typeof.scm 41 */
													if (CHARP(BgL_atomz00_13))
														{	/* Type/typeof.scm 42 */
															return
																((BgL_typez00_bglt)
																BGl_za2charza2z00zztype_cachez00);
														}
													else
														{	/* Type/typeof.scm 42 */
															if (STRINGP(BgL_atomz00_13))
																{	/* Type/typeof.scm 43 */
																	return
																		((BgL_typez00_bglt)
																		BGl_za2bstringza2z00zztype_cachez00);
																}
															else
																{	/* Type/typeof.scm 43 */
																	if ((BgL_atomz00_13 == BUNSPEC))
																		{	/* Type/typeof.scm 44 */
																			return
																				((BgL_typez00_bglt)
																				BGl_za2unspecza2z00zztype_cachez00);
																		}
																	else
																		{	/* Type/typeof.scm 44 */
																			if (ELONGP(BgL_atomz00_13))
																				{	/* Type/typeof.scm 45 */
																					return
																						((BgL_typez00_bglt)
																						BGl_za2elongza2z00zztype_cachez00);
																				}
																			else
																				{	/* Type/typeof.scm 45 */
																					if (LLONGP(BgL_atomz00_13))
																						{	/* Type/typeof.scm 46 */
																							return
																								((BgL_typez00_bglt)
																								BGl_za2llongza2z00zztype_cachez00);
																						}
																					else
																						{	/* Type/typeof.scm 46 */
																							if (BGL_INT8P(BgL_atomz00_13))
																								{	/* Type/typeof.scm 47 */
																									return
																										((BgL_typez00_bglt)
																										BGl_za2int8za2z00zztype_cachez00);
																								}
																							else
																								{	/* Type/typeof.scm 47 */
																									if (BGL_UINT8P
																										(BgL_atomz00_13))
																										{	/* Type/typeof.scm 48 */
																											return
																												((BgL_typez00_bglt)
																												BGl_za2uint8za2z00zztype_cachez00);
																										}
																									else
																										{	/* Type/typeof.scm 48 */
																											if (BGL_INT16P
																												(BgL_atomz00_13))
																												{	/* Type/typeof.scm 49 */
																													return
																														((BgL_typez00_bglt)
																														BGl_za2int16za2z00zztype_cachez00);
																												}
																											else
																												{	/* Type/typeof.scm 49 */
																													if (BGL_UINT16P
																														(BgL_atomz00_13))
																														{	/* Type/typeof.scm 50 */
																															return
																																(
																																(BgL_typez00_bglt)
																																BGl_za2uint16za2z00zztype_cachez00);
																														}
																													else
																														{	/* Type/typeof.scm 50 */
																															if (BGL_INT32P
																																(BgL_atomz00_13))
																																{	/* Type/typeof.scm 51 */
																																	return
																																		(
																																		(BgL_typez00_bglt)
																																		BGl_za2int32za2z00zztype_cachez00);
																																}
																															else
																																{	/* Type/typeof.scm 51 */
																																	if (BGL_UINT32P(BgL_atomz00_13))
																																		{	/* Type/typeof.scm 52 */
																																			return
																																				(
																																				(BgL_typez00_bglt)
																																				BGl_za2uint32za2z00zztype_cachez00);
																																		}
																																	else
																																		{	/* Type/typeof.scm 52 */
																																			if (BGL_INT64P(BgL_atomz00_13))
																																				{	/* Type/typeof.scm 53 */
																																					return
																																						(
																																						(BgL_typez00_bglt)
																																						BGl_za2int64za2z00zztype_cachez00);
																																				}
																																			else
																																				{	/* Type/typeof.scm 53 */
																																					if (BGL_UINT64P(BgL_atomz00_13))
																																						{	/* Type/typeof.scm 54 */
																																							return
																																								(
																																								(BgL_typez00_bglt)
																																								BGl_za2uint64za2z00zztype_cachez00);
																																						}
																																					else
																																						{	/* Type/typeof.scm 54 */
																																							if (KEYWORDP(BgL_atomz00_13))
																																								{	/* Type/typeof.scm 55 */
																																									return
																																										(
																																										(BgL_typez00_bglt)
																																										BGl_za2keywordza2z00zztype_cachez00);
																																								}
																																							else
																																								{	/* Type/typeof.scm 55 */
																																									return
																																										(
																																										(BgL_typez00_bglt)
																																										BGl_za2objza2z00zztype_cachez00);
																																								}
																																						}
																																				}
																																		}
																																}
																														}
																												}
																										}
																								}
																						}
																				}
																		}
																}
														}
												}
										}
								}
						}
				}
		}

	}



/* &get-type-atom */
	BgL_typez00_bglt BGl_z62getzd2typezd2atomz62zztype_typeofz00(obj_t
		BgL_envz00_2185, obj_t BgL_atomz00_2186)
	{
		{	/* Type/typeof.scm 35 */
			return BGl_getzd2typezd2atomz00zztype_typeofz00(BgL_atomz00_2186);
		}

	}



/* get-type-kwote */
	BGL_EXPORTED_DEF BgL_typez00_bglt
		BGl_getzd2typezd2kwotez00zztype_typeofz00(obj_t BgL_kwotez00_14)
	{
		{	/* Type/typeof.scm 61 */
			if (SYMBOLP(BgL_kwotez00_14))
				{	/* Type/typeof.scm 63 */
					return ((BgL_typez00_bglt) BGl_za2symbolza2z00zztype_cachez00);
				}
			else
				{	/* Type/typeof.scm 63 */
					if (KEYWORDP(BgL_kwotez00_14))
						{	/* Type/typeof.scm 64 */
							return ((BgL_typez00_bglt) BGl_za2keywordza2z00zztype_cachez00);
						}
					else
						{	/* Type/typeof.scm 64 */
							if (PAIRP(BgL_kwotez00_14))
								{	/* Type/typeof.scm 65 */
									return ((BgL_typez00_bglt) BGl_za2pairza2z00zztype_cachez00);
								}
							else
								{	/* Type/typeof.scm 65 */
									if (NULLP(BgL_kwotez00_14))
										{	/* Type/typeof.scm 66 */
											return
												((BgL_typez00_bglt) BGl_za2bnilza2z00zztype_cachez00);
										}
									else
										{	/* Type/typeof.scm 66 */
											if (VECTORP(BgL_kwotez00_14))
												{	/* Type/typeof.scm 67 */
													return
														((BgL_typez00_bglt)
														BGl_za2vectorza2z00zztype_cachez00);
												}
											else
												{	/* Type/typeof.scm 68 */
													bool_t BgL_test1895z00_2414;

													if (STRUCTP(BgL_kwotez00_14))
														{	/* Type/typeof.scm 68 */
															BgL_test1895z00_2414 =
																(STRUCT_KEY(BgL_kwotez00_14) ==
																CNST_TABLE_REF(0L));
														}
													else
														{	/* Type/typeof.scm 68 */
															BgL_test1895z00_2414 = ((bool_t) 0);
														}
													if (BgL_test1895z00_2414)
														{	/* Type/typeof.scm 68 */
															return
																((BgL_typez00_bglt)
																STRUCT_REF(BgL_kwotez00_14, (int) (0L)));
														}
													else
														{	/* Type/typeof.scm 68 */
															return
																((BgL_typez00_bglt)
																BGl_za2objza2z00zztype_cachez00);
														}
												}
										}
								}
						}
				}
		}

	}



/* &get-type-kwote */
	BgL_typez00_bglt BGl_z62getzd2typezd2kwotez62zztype_typeofz00(obj_t
		BgL_envz00_2187, obj_t BgL_kwotez00_2188)
	{
		{	/* Type/typeof.scm 61 */
			return BGl_getzd2typezd2kwotez00zztype_typeofz00(BgL_kwotez00_2188);
		}

	}



/* pair-nil? */
	bool_t BGl_pairzd2nilzf3z21zztype_typeofz00(obj_t BgL_tz00_15)
	{
		{	/* Type/typeof.scm 74 */
			{	/* Type/typeof.scm 75 */
				bool_t BgL__ortest_1105z00_1648;

				BgL__ortest_1105z00_1648 =
					(BgL_tz00_15 == BGl_za2pairza2z00zztype_cachez00);
				if (BgL__ortest_1105z00_1648)
					{	/* Type/typeof.scm 75 */
						return BgL__ortest_1105z00_1648;
					}
				else
					{	/* Type/typeof.scm 75 */
						bool_t BgL__ortest_1106z00_1649;

						BgL__ortest_1106z00_1649 =
							(BgL_tz00_15 == BGl_za2epairza2z00zztype_cachez00);
						if (BgL__ortest_1106z00_1649)
							{	/* Type/typeof.scm 75 */
								return BgL__ortest_1106z00_1649;
							}
						else
							{	/* Type/typeof.scm 75 */
								bool_t BgL__ortest_1108z00_1650;

								BgL__ortest_1108z00_1650 =
									(BgL_tz00_15 == BGl_za2bnilza2z00zztype_cachez00);
								if (BgL__ortest_1108z00_1650)
									{	/* Type/typeof.scm 75 */
										return BgL__ortest_1108z00_1650;
									}
								else
									{	/* Type/typeof.scm 75 */
										return
											(BgL_tz00_15 == BGl_za2pairzd2nilza2zd2zztype_cachez00);
									}
							}
					}
			}
		}

	}



/* is-strict-subtype? */
	bool_t BGl_iszd2strictzd2subtypezf3zf3zztype_typeofz00(BgL_typez00_bglt
		BgL_t1z00_26, BgL_typez00_bglt BgL_t2z00_27, obj_t BgL_strictz00_28)
	{
		{	/* Type/typeof.scm 170 */
			if (CBOOL(BGl_iszd2subtypezf3z21zztype_typeofz00(
						((obj_t) BgL_t1z00_26), ((obj_t) BgL_t2z00_27))))
				{	/* Type/typeof.scm 172 */
					bool_t BgL__ortest_1127z00_1652;

					if (CBOOL(BgL_strictz00_28))
						{	/* Type/typeof.scm 172 */
							BgL__ortest_1127z00_1652 = ((bool_t) 0);
						}
					else
						{	/* Type/typeof.scm 172 */
							BgL__ortest_1127z00_1652 = ((bool_t) 1);
						}
					if (BgL__ortest_1127z00_1652)
						{	/* Type/typeof.scm 172 */
							return BgL__ortest_1127z00_1652;
						}
					else
						{	/* Type/typeof.scm 172 */
							if ((((obj_t) BgL_t1z00_26) == BGl_za2_za2z00zztype_cachez00))
								{	/* Type/typeof.scm 172 */
									return ((bool_t) 0);
								}
							else
								{	/* Type/typeof.scm 172 */
									if ((((obj_t) BgL_t2z00_27) == BGl_za2_za2z00zztype_cachez00))
										{	/* Type/typeof.scm 172 */
											return ((bool_t) 0);
										}
									else
										{	/* Type/typeof.scm 172 */
											return ((bool_t) 1);
										}
								}
						}
				}
			else
				{	/* Type/typeof.scm 171 */
					return ((bool_t) 0);
				}
		}

	}



/* is-subtype? */
	BGL_EXPORTED_DEF obj_t BGl_iszd2subtypezf3z21zztype_typeofz00(obj_t
		BgL_t1z00_29, obj_t BgL_t2z00_30)
	{
		{	/* Type/typeof.scm 179 */
			if ((BgL_t1z00_29 == BgL_t2z00_30))
				{	/* Type/typeof.scm 181 */
					return BTRUE;
				}
			else
				{	/* Type/typeof.scm 183 */
					bool_t BgL_test1906z00_2448;

					if ((BgL_t1z00_29 == BGl_za2magicza2z00zztype_cachez00))
						{	/* Type/typeof.scm 183 */
							BgL_test1906z00_2448 = ((bool_t) 1);
						}
					else
						{	/* Type/typeof.scm 183 */
							BgL_test1906z00_2448 =
								(BgL_t2z00_30 == BGl_za2magicza2z00zztype_cachez00);
						}
					if (BgL_test1906z00_2448)
						{	/* Type/typeof.scm 183 */
							return BTRUE;
						}
					else
						{	/* Type/typeof.scm 185 */
							bool_t BgL_test1908z00_2452;

							if ((BgL_t2z00_30 == BGl_za2_za2z00zztype_cachez00))
								{	/* Type/typeof.scm 185 */
									BgL_test1908z00_2452 = ((bool_t) 1);
								}
							else
								{	/* Type/typeof.scm 185 */
									BgL_test1908z00_2452 =
										(BgL_t1z00_29 == BGl_za2_za2z00zztype_cachez00);
								}
							if (BgL_test1908z00_2452)
								{	/* Type/typeof.scm 185 */
									return BTRUE;
								}
							else
								{	/* Type/typeof.scm 185 */
									if ((BgL_t2z00_30 == BGl_za2pairzd2nilza2zd2zztype_cachez00))
										{	/* Type/typeof.scm 188 */
											bool_t BgL__ortest_1129z00_1656;

											BgL__ortest_1129z00_1656 =
												(BgL_t1z00_29 == BGl_za2pairza2z00zztype_cachez00);
											if (BgL__ortest_1129z00_1656)
												{	/* Type/typeof.scm 188 */
													return BBOOL(BgL__ortest_1129z00_1656);
												}
											else
												{	/* Type/typeof.scm 188 */
													bool_t BgL__ortest_1130z00_1657;

													BgL__ortest_1130z00_1657 =
														(BgL_t1z00_29 == BGl_za2epairza2z00zztype_cachez00);
													if (BgL__ortest_1130z00_1657)
														{	/* Type/typeof.scm 188 */
															return BBOOL(BgL__ortest_1130z00_1657);
														}
													else
														{	/* Type/typeof.scm 188 */
															return
																BBOOL(
																(BgL_t1z00_29 == BGl_za2nilza2z00zz__evalz00));
														}
												}
										}
									else
										{	/* Type/typeof.scm 189 */
											bool_t BgL_test1913z00_2466;

											{	/* Type/typeof.scm 189 */
												bool_t BgL_test1914z00_2467;

												{	/* Type/typeof.scm 189 */
													obj_t BgL_classz00_2017;

													BgL_classz00_2017 = BGl_tclassz00zzobject_classz00;
													if (BGL_OBJECTP(BgL_t1z00_29))
														{	/* Type/typeof.scm 189 */
															BgL_objectz00_bglt BgL_arg1801z00_2019;

															BgL_arg1801z00_2019 =
																(BgL_objectz00_bglt) (BgL_t1z00_29);
															if (BGL_CONDEXPAND_ISA_ARCH64())
																{	/* Type/typeof.scm 189 */
																	long BgL_idxz00_2025;

																	BgL_idxz00_2025 =
																		BGL_OBJECT_INHERITANCE_NUM
																		(BgL_arg1801z00_2019);
																	BgL_test1914z00_2467 =
																		(VECTOR_REF
																		(BGl_za2inheritancesza2z00zz__objectz00,
																			(BgL_idxz00_2025 + 2L)) ==
																		BgL_classz00_2017);
																}
															else
																{	/* Type/typeof.scm 189 */
																	bool_t BgL_res1828z00_2047;

																	{	/* Type/typeof.scm 189 */
																		obj_t BgL_oclassz00_2033;

																		{	/* Type/typeof.scm 189 */
																			long BgL_arg1808z00_2039;

																			{	/* Type/typeof.scm 189 */
																				long BgL_arg1809z00_2040;

																				BgL_arg1809z00_2040 =
																					BGL_OBJECT_CLASS_NUM
																					(BgL_arg1801z00_2019);
																				BgL_arg1808z00_2039 =
																					(BgL_arg1809z00_2040 - OBJECT_TYPE);
																			}
																			BgL_oclassz00_2033 =
																				VECTOR_REF
																				(BGl_za2classesza2z00zz__objectz00,
																				BgL_arg1808z00_2039);
																		}
																		{	/* Type/typeof.scm 189 */
																			bool_t BgL__ortest_1115z00_2034;

																			BgL__ortest_1115z00_2034 =
																				(BgL_classz00_2017 ==
																				BgL_oclassz00_2033);
																			if (BgL__ortest_1115z00_2034)
																				{	/* Type/typeof.scm 189 */
																					BgL_res1828z00_2047 =
																						BgL__ortest_1115z00_2034;
																				}
																			else
																				{	/* Type/typeof.scm 189 */
																					long BgL_odepthz00_2035;

																					BgL_odepthz00_2035 =
																						BGL_CLASS_DEPTH(BgL_oclassz00_2033);
																					if ((2L < BgL_odepthz00_2035))
																						{	/* Type/typeof.scm 189 */
																							obj_t BgL_arg1797z00_2037;

																							BgL_arg1797z00_2037 =
																								BGL_CLASS_ANCESTORS_REF
																								(BgL_oclassz00_2033, 2L);
																							BgL_res1828z00_2047 =
																								(BgL_arg1797z00_2037 ==
																								BgL_classz00_2017);
																						}
																					else
																						{	/* Type/typeof.scm 189 */
																							BgL_res1828z00_2047 =
																								((bool_t) 0);
																						}
																				}
																		}
																	}
																	BgL_test1914z00_2467 = BgL_res1828z00_2047;
																}
														}
													else
														{	/* Type/typeof.scm 189 */
															BgL_test1914z00_2467 = ((bool_t) 0);
														}
												}
												if (BgL_test1914z00_2467)
													{	/* Type/typeof.scm 189 */
														BgL_test1913z00_2466 = ((bool_t) 1);
													}
												else
													{	/* Type/typeof.scm 189 */
														obj_t BgL_classz00_2048;

														BgL_classz00_2048 = BGl_tclassz00zzobject_classz00;
														if (BGL_OBJECTP(BgL_t2z00_30))
															{	/* Type/typeof.scm 189 */
																BgL_objectz00_bglt BgL_arg1801z00_2050;

																BgL_arg1801z00_2050 =
																	(BgL_objectz00_bglt) (BgL_t2z00_30);
																if (BGL_CONDEXPAND_ISA_ARCH64())
																	{	/* Type/typeof.scm 189 */
																		long BgL_idxz00_2056;

																		BgL_idxz00_2056 =
																			BGL_OBJECT_INHERITANCE_NUM
																			(BgL_arg1801z00_2050);
																		BgL_test1913z00_2466 =
																			(VECTOR_REF
																			(BGl_za2inheritancesza2z00zz__objectz00,
																				(BgL_idxz00_2056 + 2L)) ==
																			BgL_classz00_2048);
																	}
																else
																	{	/* Type/typeof.scm 189 */
																		bool_t BgL_res1829z00_2078;

																		{	/* Type/typeof.scm 189 */
																			obj_t BgL_oclassz00_2064;

																			{	/* Type/typeof.scm 189 */
																				long BgL_arg1808z00_2070;

																				{	/* Type/typeof.scm 189 */
																					long BgL_arg1809z00_2071;

																					BgL_arg1809z00_2071 =
																						BGL_OBJECT_CLASS_NUM
																						(BgL_arg1801z00_2050);
																					BgL_arg1808z00_2070 =
																						(BgL_arg1809z00_2071 - OBJECT_TYPE);
																				}
																				BgL_oclassz00_2064 =
																					VECTOR_REF
																					(BGl_za2classesza2z00zz__objectz00,
																					BgL_arg1808z00_2070);
																			}
																			{	/* Type/typeof.scm 189 */
																				bool_t BgL__ortest_1115z00_2065;

																				BgL__ortest_1115z00_2065 =
																					(BgL_classz00_2048 ==
																					BgL_oclassz00_2064);
																				if (BgL__ortest_1115z00_2065)
																					{	/* Type/typeof.scm 189 */
																						BgL_res1829z00_2078 =
																							BgL__ortest_1115z00_2065;
																					}
																				else
																					{	/* Type/typeof.scm 189 */
																						long BgL_odepthz00_2066;

																						BgL_odepthz00_2066 =
																							BGL_CLASS_DEPTH
																							(BgL_oclassz00_2064);
																						if ((2L < BgL_odepthz00_2066))
																							{	/* Type/typeof.scm 189 */
																								obj_t BgL_arg1797z00_2068;

																								BgL_arg1797z00_2068 =
																									BGL_CLASS_ANCESTORS_REF
																									(BgL_oclassz00_2064, 2L);
																								BgL_res1829z00_2078 =
																									(BgL_arg1797z00_2068 ==
																									BgL_classz00_2048);
																							}
																						else
																							{	/* Type/typeof.scm 189 */
																								BgL_res1829z00_2078 =
																									((bool_t) 0);
																							}
																					}
																			}
																		}
																		BgL_test1913z00_2466 = BgL_res1829z00_2078;
																	}
															}
														else
															{	/* Type/typeof.scm 189 */
																BgL_test1913z00_2466 = ((bool_t) 0);
															}
													}
											}
											if (BgL_test1913z00_2466)
												{	/* Type/typeof.scm 189 */
													return
														BBOOL(BGl_typezd2subclasszf3z21zzobject_classz00(
															((BgL_typez00_bglt) BgL_t1z00_29),
															((BgL_typez00_bglt) BgL_t2z00_30)));
												}
											else
												{	/* Type/typeof.scm 191 */
													bool_t BgL_test1923z00_2510;

													if (BGl_bigloozd2typezf3z21zztype_typez00(
															((BgL_typez00_bglt) BgL_t1z00_29)))
														{	/* Type/typeof.scm 191 */
															BgL_test1923z00_2510 = ((bool_t) 0);
														}
													else
														{	/* Type/typeof.scm 191 */
															if (BGl_bigloozd2typezf3z21zztype_typez00(
																	((BgL_typez00_bglt) BgL_t2z00_30)))
																{	/* Type/typeof.scm 191 */
																	BgL_test1923z00_2510 = ((bool_t) 0);
																}
															else
																{	/* Type/typeof.scm 191 */
																	BgL_test1923z00_2510 = ((bool_t) 1);
																}
														}
													if (BgL_test1923z00_2510)
														{	/* Type/typeof.scm 191 */
															return
																BBOOL(BGl_czd2subtypezf3z21zztype_miscz00(
																	((BgL_typez00_bglt) BgL_t1z00_29),
																	((BgL_typez00_bglt) BgL_t2z00_30)));
														}
													else
														{	/* Type/typeof.scm 193 */
															bool_t BgL_test1926z00_2521;

															if (
																(BgL_t2z00_30 ==
																	BGl_za2bintza2z00zztype_cachez00))
																{	/* Type/typeof.scm 193 */
																	bool_t BgL__ortest_1131z00_1665;

																	BgL__ortest_1131z00_1665 =
																		(BGl_typez00zztype_typez00 ==
																		BGl_za2intza2z00zztype_cachez00);
																	if (BgL__ortest_1131z00_1665)
																		{	/* Type/typeof.scm 193 */
																			BgL_test1926z00_2521 =
																				BgL__ortest_1131z00_1665;
																		}
																	else
																		{	/* Type/typeof.scm 193 */
																			BgL_test1926z00_2521 =
																				(BGl_typez00zztype_typez00 ==
																				BGl_za2longza2z00zztype_cachez00);
																		}
																}
															else
																{	/* Type/typeof.scm 193 */
																	BgL_test1926z00_2521 = ((bool_t) 0);
																}
															if (BgL_test1926z00_2521)
																{	/* Type/typeof.scm 193 */
																	return BTRUE;
																}
															else
																{	/* Type/typeof.scm 193 */
																	return
																		BBOOL(
																		(BgL_t2z00_30 ==
																			BGl_za2objza2z00zztype_cachez00));
																}
														}
												}
										}
								}
						}
				}
		}

	}



/* &is-subtype? */
	obj_t BGl_z62iszd2subtypezf3z43zztype_typeofz00(obj_t BgL_envz00_2189,
		obj_t BgL_t1z00_2190, obj_t BgL_t2z00_2191)
	{
		{	/* Type/typeof.scm 179 */
			return
				BGl_iszd2subtypezf3z21zztype_typeofz00(BgL_t1z00_2190, BgL_t2z00_2191);
		}

	}



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

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zztype_typeofz00(void)
	{
		{	/* Type/typeof.scm 15 */
			return
				BGl_registerzd2genericz12zc0zz__objectz00
				(BGl_getzd2typezd2envz00zztype_typeofz00,
				BGl_proc1837z00zztype_typeofz00, BGl_nodez00zzast_nodez00,
				BGl_string1838z00zztype_typeofz00);
		}

	}



/* &get-type1265 */
	obj_t BGl_z62getzd2type1265zb0zztype_typeofz00(obj_t BgL_envz00_2193,
		obj_t BgL_nodez00_2194, obj_t BgL_strictz00_2195)
	{
		{	/* Type/typeof.scm 86 */
			return
				((obj_t)
				(((BgL_nodez00_bglt) COBJECT(
							((BgL_nodez00_bglt) BgL_nodez00_2194)))->BgL_typez00));
		}

	}



/* get-type */
	BGL_EXPORTED_DEF BgL_typez00_bglt
		BGl_getzd2typezd2zztype_typeofz00(BgL_nodez00_bglt BgL_nodez00_16,
		bool_t BgL_strictz00_17)
	{
		{	/* Type/typeof.scm 86 */
			{	/* Type/typeof.scm 86 */
				obj_t BgL_method1266z00_1674;

				{	/* Type/typeof.scm 86 */
					obj_t BgL_res1834z00_2110;

					{	/* Type/typeof.scm 86 */
						long BgL_objzd2classzd2numz00_2081;

						BgL_objzd2classzd2numz00_2081 =
							BGL_OBJECT_CLASS_NUM(((BgL_objectz00_bglt) BgL_nodez00_16));
						{	/* Type/typeof.scm 86 */
							obj_t BgL_arg1805z00_2082;

							BgL_arg1805z00_2082 =
								PROCEDURE_REF(BGl_getzd2typezd2envz00zztype_typeofz00,
								(int) (1L));
							{	/* Type/typeof.scm 86 */
								int BgL_offsetz00_2085;

								BgL_offsetz00_2085 = (int) (BgL_objzd2classzd2numz00_2081);
								{	/* Type/typeof.scm 86 */
									long BgL_offsetz00_2086;

									BgL_offsetz00_2086 =
										((long) (BgL_offsetz00_2085) - OBJECT_TYPE);
									{	/* Type/typeof.scm 86 */
										long BgL_modz00_2087;

										BgL_modz00_2087 =
											(BgL_offsetz00_2086 >> (int) ((long) ((int) (4L))));
										{	/* Type/typeof.scm 86 */
											long BgL_restz00_2089;

											BgL_restz00_2089 =
												(BgL_offsetz00_2086 &
												(long) (
													(int) (
														((long) (
																(int) (
																	(1L <<
																		(int) ((long) ((int) (4L)))))) - 1L))));
											{	/* Type/typeof.scm 86 */

												{	/* Type/typeof.scm 86 */
													obj_t BgL_bucketz00_2091;

													BgL_bucketz00_2091 =
														VECTOR_REF(
														((obj_t) BgL_arg1805z00_2082), BgL_modz00_2087);
													BgL_res1834z00_2110 =
														VECTOR_REF(
														((obj_t) BgL_bucketz00_2091), BgL_restz00_2089);
					}}}}}}}}
					BgL_method1266z00_1674 = BgL_res1834z00_2110;
				}
				return
					((BgL_typez00_bglt)
					(VA_PROCEDUREP(BgL_method1266z00_1674) ? ((obj_t(*)(obj_t,
									...))
							PROCEDURE_ENTRY(BgL_method1266z00_1674)) (BgL_method1266z00_1674,
							((obj_t) BgL_nodez00_16), BBOOL(BgL_strictz00_17),
							BEOA) : ((obj_t(*)(obj_t, obj_t,
									obj_t))
							PROCEDURE_ENTRY(BgL_method1266z00_1674)) (BgL_method1266z00_1674,
							((obj_t) BgL_nodez00_16), BBOOL(BgL_strictz00_17))));
			}
		}

	}



/* &get-type */
	BgL_typez00_bglt BGl_z62getzd2typezb0zztype_typeofz00(obj_t BgL_envz00_2196,
		obj_t BgL_nodez00_2197, obj_t BgL_strictz00_2198)
	{
		{	/* Type/typeof.scm 86 */
			return
				BGl_getzd2typezd2zztype_typeofz00(
				((BgL_nodez00_bglt) BgL_nodez00_2197), CBOOL(BgL_strictz00_2198));
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zztype_typeofz00(void)
	{
		{	/* Type/typeof.scm 15 */
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_getzd2typezd2envz00zztype_typeofz00, BGl_varz00zzast_nodez00,
				BGl_proc1839z00zztype_typeofz00, BGl_string1840z00zztype_typeofz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_getzd2typezd2envz00zztype_typeofz00, BGl_sequencez00zzast_nodez00,
				BGl_proc1841z00zztype_typeofz00, BGl_string1840z00zztype_typeofz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_getzd2typezd2envz00zztype_typeofz00, BGl_syncz00zzast_nodez00,
				BGl_proc1842z00zztype_typeofz00, BGl_string1840z00zztype_typeofz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_getzd2typezd2envz00zztype_typeofz00,
				BGl_conditionalz00zzast_nodez00, BGl_proc1843z00zztype_typeofz00,
				BGl_string1840z00zztype_typeofz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_getzd2typezd2envz00zztype_typeofz00, BGl_switchz00zzast_nodez00,
				BGl_proc1844z00zztype_typeofz00, BGl_string1840z00zztype_typeofz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_getzd2typezd2envz00zztype_typeofz00, BGl_letzd2funzd2zzast_nodez00,
				BGl_proc1845z00zztype_typeofz00, BGl_string1840z00zztype_typeofz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_getzd2typezd2envz00zztype_typeofz00, BGl_letzd2varzd2zzast_nodez00,
				BGl_proc1846z00zztype_typeofz00, BGl_string1840z00zztype_typeofz00);
			return
				BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_getzd2typezd2envz00zztype_typeofz00, BGl_appz00zzast_nodez00,
				BGl_proc1847z00zztype_typeofz00, BGl_string1840z00zztype_typeofz00);
		}

	}



/* &get-type-app1283 */
	BgL_typez00_bglt BGl_z62getzd2typezd2app1283z62zztype_typeofz00(obj_t
		BgL_envz00_2207, obj_t BgL_nodez00_2208, obj_t BgL_strictz00_2209)
	{
		{	/* Type/typeof.scm 242 */
			{	/* Type/typeof.scm 244 */
				bool_t BgL_test1929z00_2578;

				{	/* Type/typeof.scm 244 */
					BgL_typez00_bglt BgL_arg1658z00_2246;

					BgL_arg1658z00_2246 =
						(((BgL_nodez00_bglt) COBJECT(
								((BgL_nodez00_bglt)
									((BgL_appz00_bglt) BgL_nodez00_2208))))->BgL_typez00);
					BgL_test1929z00_2578 =
						(((obj_t) BgL_arg1658z00_2246) == BGl_za2_za2z00zztype_cachez00);
				}
				if (BgL_test1929z00_2578)
					{	/* Type/typeof.scm 244 */
						return
							(((BgL_variablez00_bglt) COBJECT(
									(((BgL_varz00_bglt) COBJECT(
												(((BgL_appz00_bglt) COBJECT(
															((BgL_appz00_bglt) BgL_nodez00_2208)))->
													BgL_funz00)))->BgL_variablez00)))->BgL_typez00);
					}
				else
					{	/* Type/typeof.scm 244 */
						return
							(((BgL_nodez00_bglt) COBJECT(
									((BgL_nodez00_bglt)
										((BgL_appz00_bglt) BgL_nodez00_2208))))->BgL_typez00);
					}
			}
		}

	}



/* &get-type-let-var1281 */
	BgL_typez00_bglt BGl_z62getzd2typezd2letzd2var1281zb0zztype_typeofz00(obj_t
		BgL_envz00_2210, obj_t BgL_nodez00_2211, obj_t BgL_strictz00_2212)
	{
		{	/* Type/typeof.scm 233 */
			{	/* Type/typeof.scm 235 */
				bool_t BgL_test1930z00_2591;

				{	/* Type/typeof.scm 235 */
					BgL_typez00_bglt BgL_arg1629z00_2248;

					BgL_arg1629z00_2248 =
						(((BgL_nodez00_bglt) COBJECT(
								((BgL_nodez00_bglt)
									((BgL_letzd2varzd2_bglt) BgL_nodez00_2211))))->BgL_typez00);
					BgL_test1930z00_2591 =
						(((obj_t) BgL_arg1629z00_2248) == BGl_za2_za2z00zztype_cachez00);
				}
				if (BgL_test1930z00_2591)
					{	/* Type/typeof.scm 235 */
						return
							BGl_getzd2typezd2zztype_typeofz00(
							(((BgL_letzd2varzd2_bglt) COBJECT(
										((BgL_letzd2varzd2_bglt) BgL_nodez00_2211)))->BgL_bodyz00),
							CBOOL(BgL_strictz00_2212));
					}
				else
					{	/* Type/typeof.scm 235 */
						return
							(((BgL_nodez00_bglt) COBJECT(
									((BgL_nodez00_bglt)
										((BgL_letzd2varzd2_bglt) BgL_nodez00_2211))))->BgL_typez00);
					}
			}
		}

	}



/* &get-type-let-fun1279 */
	BgL_typez00_bglt BGl_z62getzd2typezd2letzd2fun1279zb0zztype_typeofz00(obj_t
		BgL_envz00_2213, obj_t BgL_nodez00_2214, obj_t BgL_strictz00_2215)
	{
		{	/* Type/typeof.scm 224 */
			{	/* Type/typeof.scm 226 */
				bool_t BgL_test1931z00_2604;

				{	/* Type/typeof.scm 226 */
					BgL_typez00_bglt BgL_arg1616z00_2250;

					BgL_arg1616z00_2250 =
						(((BgL_nodez00_bglt) COBJECT(
								((BgL_nodez00_bglt)
									((BgL_letzd2funzd2_bglt) BgL_nodez00_2214))))->BgL_typez00);
					BgL_test1931z00_2604 =
						(((obj_t) BgL_arg1616z00_2250) == BGl_za2_za2z00zztype_cachez00);
				}
				if (BgL_test1931z00_2604)
					{	/* Type/typeof.scm 226 */
						return
							BGl_getzd2typezd2zztype_typeofz00(
							(((BgL_letzd2funzd2_bglt) COBJECT(
										((BgL_letzd2funzd2_bglt) BgL_nodez00_2214)))->BgL_bodyz00),
							CBOOL(BgL_strictz00_2215));
					}
				else
					{	/* Type/typeof.scm 226 */
						return
							(((BgL_nodez00_bglt) COBJECT(
									((BgL_nodez00_bglt)
										((BgL_letzd2funzd2_bglt) BgL_nodez00_2214))))->BgL_typez00);
					}
			}
		}

	}



/* &get-type-switch1277 */
	BgL_typez00_bglt BGl_z62getzd2typezd2switch1277z62zztype_typeofz00(obj_t
		BgL_envz00_2216, obj_t BgL_nodez00_2217, obj_t BgL_strictz00_2218)
	{
		{	/* Type/typeof.scm 201 */
			{	/* Type/typeof.scm 203 */
				bool_t BgL_test1932z00_2617;

				{	/* Type/typeof.scm 203 */
					BgL_typez00_bglt BgL_arg1609z00_2252;

					BgL_arg1609z00_2252 =
						(((BgL_nodez00_bglt) COBJECT(
								((BgL_nodez00_bglt)
									((BgL_switchz00_bglt) BgL_nodez00_2217))))->BgL_typez00);
					BgL_test1932z00_2617 =
						(((obj_t) BgL_arg1609z00_2252) == BGl_za2_za2z00zztype_cachez00);
				}
				if (BgL_test1932z00_2617)
					{	/* Type/typeof.scm 204 */
						obj_t BgL_g1133z00_2253;
						BgL_typez00_bglt BgL_g1134z00_2254;

						BgL_g1133z00_2253 =
							CDR(
							(((BgL_switchz00_bglt) COBJECT(
										((BgL_switchz00_bglt) BgL_nodez00_2217)))->BgL_clausesz00));
						{	/* Type/typeof.scm 205 */
							obj_t BgL_arg1598z00_2255;

							BgL_arg1598z00_2255 =
								CDR(CAR(
									(((BgL_switchz00_bglt) COBJECT(
												((BgL_switchz00_bglt) BgL_nodez00_2217)))->
										BgL_clausesz00)));
							BgL_g1134z00_2254 =
								BGl_getzd2typezd2zztype_typeofz00(((BgL_nodez00_bglt)
									BgL_arg1598z00_2255), CBOOL(BgL_strictz00_2218));
						}
						{
							obj_t BgL_clausesz00_2257;
							obj_t BgL_typez00_2258;

							{
								obj_t BgL_auxz00_2633;

								BgL_clausesz00_2257 = BgL_g1133z00_2253;
								BgL_typez00_2258 = ((obj_t) BgL_g1134z00_2254);
							BgL_loopz00_2256:
								if (NULLP(BgL_clausesz00_2257))
									{	/* Type/typeof.scm 206 */
										BgL_auxz00_2633 = BgL_typez00_2258;
									}
								else
									{	/* Type/typeof.scm 208 */
										BgL_typez00_bglt BgL_ntypez00_2259;

										{	/* Type/typeof.scm 208 */
											obj_t BgL_arg1592z00_2260;

											{	/* Type/typeof.scm 208 */
												obj_t BgL_pairz00_2261;

												BgL_pairz00_2261 = CAR(((obj_t) BgL_clausesz00_2257));
												BgL_arg1592z00_2260 = CDR(BgL_pairz00_2261);
											}
											BgL_ntypez00_2259 =
												BGl_getzd2typezd2zztype_typeofz00(
												((BgL_nodez00_bglt) BgL_arg1592z00_2260),
												CBOOL(BgL_strictz00_2218));
										}
										if ((((obj_t) BgL_ntypez00_2259) == BgL_typez00_2258))
											{	/* Type/typeof.scm 211 */
												obj_t BgL_arg1579z00_2262;

												BgL_arg1579z00_2262 =
													CDR(((obj_t) BgL_clausesz00_2257));
												{
													obj_t BgL_clausesz00_2647;

													BgL_clausesz00_2647 = BgL_arg1579z00_2262;
													BgL_clausesz00_2257 = BgL_clausesz00_2647;
													goto BgL_loopz00_2256;
												}
											}
										else
											{	/* Type/typeof.scm 210 */
												if (
													(BgL_typez00_2258 ==
														BGl_za2magicza2z00zztype_cachez00))
													{	/* Type/typeof.scm 213 */
														obj_t BgL_arg1581z00_2263;

														BgL_arg1581z00_2263 =
															CDR(((obj_t) BgL_clausesz00_2257));
														{
															obj_t BgL_typez00_2653;
															obj_t BgL_clausesz00_2652;

															BgL_clausesz00_2652 = BgL_arg1581z00_2263;
															BgL_typez00_2653 = ((obj_t) BgL_ntypez00_2259);
															BgL_typez00_2258 = BgL_typez00_2653;
															BgL_clausesz00_2257 = BgL_clausesz00_2652;
															goto BgL_loopz00_2256;
														}
													}
												else
													{	/* Type/typeof.scm 214 */
														bool_t BgL_test1936z00_2655;

														if (
															(((obj_t) BgL_ntypez00_2259) == BgL_typez00_2258))
															{	/* Type/typeof.scm 214 */
																BgL_test1936z00_2655 = ((bool_t) 1);
															}
														else
															{	/* Type/typeof.scm 214 */
																BgL_test1936z00_2655 =
																	(
																	((obj_t) BgL_ntypez00_2259) ==
																	BGl_za2magicza2z00zztype_cachez00);
															}
														if (BgL_test1936z00_2655)
															{	/* Type/typeof.scm 215 */
																obj_t BgL_arg1586z00_2264;

																BgL_arg1586z00_2264 =
																	CDR(((obj_t) BgL_clausesz00_2257));
																{
																	obj_t BgL_clausesz00_2663;

																	BgL_clausesz00_2663 = BgL_arg1586z00_2264;
																	BgL_clausesz00_2257 = BgL_clausesz00_2663;
																	goto BgL_loopz00_2256;
																}
															}
														else
															{	/* Type/typeof.scm 216 */
																bool_t BgL_test1938z00_2664;

																if (BGl_pairzd2nilzf3z21zztype_typeofz00
																	(BgL_typez00_2258))
																	{	/* Type/typeof.scm 216 */
																		BgL_test1938z00_2664 =
																			BGl_pairzd2nilzf3z21zztype_typeofz00(
																			((obj_t) BgL_ntypez00_2259));
																	}
																else
																	{	/* Type/typeof.scm 216 */
																		BgL_test1938z00_2664 = ((bool_t) 0);
																	}
																if (BgL_test1938z00_2664)
																	{	/* Type/typeof.scm 217 */
																		obj_t BgL_arg1590z00_2265;

																		BgL_arg1590z00_2265 =
																			CDR(((obj_t) BgL_clausesz00_2257));
																		{
																			obj_t BgL_typez00_2672;
																			obj_t BgL_clausesz00_2671;

																			BgL_clausesz00_2671 = BgL_arg1590z00_2265;
																			BgL_typez00_2672 =
																				BGl_za2pairzd2nilza2zd2zztype_cachez00;
																			BgL_typez00_2258 = BgL_typez00_2672;
																			BgL_clausesz00_2257 = BgL_clausesz00_2671;
																			goto BgL_loopz00_2256;
																		}
																	}
																else
																	{	/* Type/typeof.scm 216 */
																		BgL_auxz00_2633 =
																			BGl_za2objza2z00zztype_cachez00;
																	}
															}
													}
											}
									}
								return ((BgL_typez00_bglt) BgL_auxz00_2633);
							}
						}
					}
				else
					{	/* Type/typeof.scm 203 */
						return
							(((BgL_nodez00_bglt) COBJECT(
									((BgL_nodez00_bglt)
										((BgL_switchz00_bglt) BgL_nodez00_2217))))->BgL_typez00);
					}
			}
		}

	}



/* &get-type-conditional1275 */
	BgL_typez00_bglt BGl_z62getzd2typezd2conditional1275z62zztype_typeofz00(obj_t
		BgL_envz00_2219, obj_t BgL_nodez00_2220, obj_t BgL_strictz00_2221)
	{
		{	/* Type/typeof.scm 152 */
			{	/* Type/typeof.scm 154 */
				bool_t BgL_test1940z00_2678;

				{	/* Type/typeof.scm 154 */
					BgL_typez00_bglt BgL_arg1565z00_2267;

					BgL_arg1565z00_2267 =
						(((BgL_nodez00_bglt) COBJECT(
								((BgL_nodez00_bglt)
									((BgL_conditionalz00_bglt) BgL_nodez00_2220))))->BgL_typez00);
					BgL_test1940z00_2678 =
						(((obj_t) BgL_arg1565z00_2267) == BGl_za2_za2z00zztype_cachez00);
				}
				if (BgL_test1940z00_2678)
					{	/* Type/typeof.scm 156 */
						BgL_typez00_bglt BgL_ttruez00_2268;
						BgL_typez00_bglt BgL_tfalsez00_2269;

						BgL_ttruez00_2268 =
							BGl_getzd2typezd2zztype_typeofz00(
							(((BgL_conditionalz00_bglt) COBJECT(
										((BgL_conditionalz00_bglt) BgL_nodez00_2220)))->
								BgL_truez00), CBOOL(BgL_strictz00_2221));
						BgL_tfalsez00_2269 =
							BGl_getzd2typezd2zztype_typeofz00((((BgL_conditionalz00_bglt)
									COBJECT(((BgL_conditionalz00_bglt) BgL_nodez00_2220)))->
								BgL_falsez00), CBOOL(BgL_strictz00_2221));
						{	/* Type/typeof.scm 159 */
							bool_t BgL_test1941z00_2692;

							if ((((obj_t) BgL_ttruez00_2268) == ((obj_t) BgL_tfalsez00_2269)))
								{	/* Type/typeof.scm 159 */
									BgL_test1941z00_2692 = ((bool_t) 1);
								}
							else
								{	/* Type/typeof.scm 159 */
									BgL_test1941z00_2692 =
										(
										((obj_t) BgL_tfalsez00_2269) ==
										BGl_za2magicza2z00zztype_cachez00);
								}
							if (BgL_test1941z00_2692)
								{	/* Type/typeof.scm 159 */
									return BgL_ttruez00_2268;
								}
							else
								{	/* Type/typeof.scm 159 */
									if (
										(((obj_t) BgL_ttruez00_2268) ==
											BGl_za2magicza2z00zztype_cachez00))
										{	/* Type/typeof.scm 160 */
											return BgL_tfalsez00_2269;
										}
									else
										{	/* Type/typeof.scm 161 */
											bool_t BgL_test1944z00_2702;

											if (BGl_pairzd2nilzf3z21zztype_typeofz00(
													((obj_t) BgL_ttruez00_2268)))
												{	/* Type/typeof.scm 161 */
													BgL_test1944z00_2702 =
														BGl_pairzd2nilzf3z21zztype_typeofz00(
														((obj_t) BgL_tfalsez00_2269));
												}
											else
												{	/* Type/typeof.scm 161 */
													BgL_test1944z00_2702 = ((bool_t) 0);
												}
											if (BgL_test1944z00_2702)
												{	/* Type/typeof.scm 161 */
													return
														((BgL_typez00_bglt)
														BGl_za2pairzd2nilza2zd2zztype_cachez00);
												}
											else
												{	/* Type/typeof.scm 161 */
													if (BGl_iszd2strictzd2subtypezf3zf3zztype_typeofz00
														(BgL_ttruez00_2268, BgL_tfalsez00_2269,
															BgL_strictz00_2221))
														{	/* Type/typeof.scm 162 */
															return BgL_tfalsez00_2269;
														}
													else
														{	/* Type/typeof.scm 162 */
															if (BGl_iszd2strictzd2subtypezf3zf3zztype_typeofz00(BgL_tfalsez00_2269, BgL_ttruez00_2268, BgL_strictz00_2221))
																{	/* Type/typeof.scm 163 */
																	return BgL_ttruez00_2268;
																}
															else
																{	/* Type/typeof.scm 163 */
																	return
																		((BgL_typez00_bglt)
																		BGl_za2objza2z00zztype_cachez00);
																}
														}
												}
										}
								}
						}
					}
				else
					{	/* Type/typeof.scm 154 */
						return
							(((BgL_nodez00_bglt) COBJECT(
									((BgL_nodez00_bglt)
										((BgL_conditionalz00_bglt) BgL_nodez00_2220))))->
							BgL_typez00);
					}
			}
		}

	}



/* &get-type-sync1272 */
	BgL_typez00_bglt BGl_z62getzd2typezd2sync1272z62zztype_typeofz00(obj_t
		BgL_envz00_2222, obj_t BgL_nodez00_2223, obj_t BgL_strictz00_2224)
	{
		{	/* Type/typeof.scm 142 */
			{	/* Type/typeof.scm 144 */
				bool_t BgL_test1948z00_2717;

				{	/* Type/typeof.scm 144 */
					BgL_typez00_bglt BgL_arg1554z00_2271;

					BgL_arg1554z00_2271 =
						(((BgL_nodez00_bglt) COBJECT(
								((BgL_nodez00_bglt)
									((BgL_syncz00_bglt) BgL_nodez00_2223))))->BgL_typez00);
					BgL_test1948z00_2717 =
						(((obj_t) BgL_arg1554z00_2271) == BGl_za2_za2z00zztype_cachez00);
				}
				if (BgL_test1948z00_2717)
					{	/* Type/typeof.scm 144 */
						return
							BGl_getzd2typezd2zztype_typeofz00(
							(((BgL_syncz00_bglt) COBJECT(
										((BgL_syncz00_bglt) BgL_nodez00_2223)))->BgL_bodyz00),
							CBOOL(BgL_strictz00_2224));
					}
				else
					{	/* Type/typeof.scm 144 */
						return
							(((BgL_nodez00_bglt) COBJECT(
									((BgL_nodez00_bglt)
										((BgL_syncz00_bglt) BgL_nodez00_2223))))->BgL_typez00);
					}
			}
		}

	}



/* &get-type-sequence1270 */
	BgL_typez00_bglt BGl_z62getzd2typezd2sequence1270z62zztype_typeofz00(obj_t
		BgL_envz00_2225, obj_t BgL_nodez00_2226, obj_t BgL_strictz00_2227)
	{
		{	/* Type/typeof.scm 132 */
			{	/* Type/typeof.scm 134 */
				bool_t BgL_test1949z00_2730;

				{	/* Type/typeof.scm 134 */
					BgL_typez00_bglt BgL_arg1546z00_2273;

					BgL_arg1546z00_2273 =
						(((BgL_nodez00_bglt) COBJECT(
								((BgL_nodez00_bglt)
									((BgL_sequencez00_bglt) BgL_nodez00_2226))))->BgL_typez00);
					BgL_test1949z00_2730 =
						(((obj_t) BgL_arg1546z00_2273) == BGl_za2_za2z00zztype_cachez00);
				}
				if (BgL_test1949z00_2730)
					{	/* Type/typeof.scm 136 */
						obj_t BgL_arg1534z00_2274;

						BgL_arg1534z00_2274 =
							CAR(BGl_lastzd2pairzd2zz__r4_pairs_and_lists_6_3z00(
								(((BgL_sequencez00_bglt) COBJECT(
											((BgL_sequencez00_bglt) BgL_nodez00_2226)))->
									BgL_nodesz00)));
						return BGl_getzd2typezd2zztype_typeofz00(((BgL_nodez00_bglt)
								BgL_arg1534z00_2274), CBOOL(BgL_strictz00_2227));
					}
				else
					{	/* Type/typeof.scm 134 */
						return
							(((BgL_nodez00_bglt) COBJECT(
									((BgL_nodez00_bglt)
										((BgL_sequencez00_bglt) BgL_nodez00_2226))))->BgL_typez00);
					}
			}
		}

	}



/* &get-type-var1268 */
	BgL_typez00_bglt BGl_z62getzd2typezd2var1268z62zztype_typeofz00(obj_t
		BgL_envz00_2228, obj_t BgL_nodez00_2229, obj_t BgL_strictz00_2230)
	{
		{	/* Type/typeof.scm 108 */
			{	/* Type/typeof.scm 123 */
				BgL_variablez00_bglt BgL_i1120z00_2276;

				BgL_i1120z00_2276 =
					(((BgL_varz00_bglt) COBJECT(
							((BgL_varz00_bglt) BgL_nodez00_2229)))->BgL_variablez00);
				{	/* Type/typeof.scm 125 */
					bool_t BgL_test1950z00_2748;

					{	/* Type/typeof.scm 125 */
						BgL_typez00_bglt BgL_arg1453z00_2277;

						BgL_arg1453z00_2277 =
							(((BgL_nodez00_bglt) COBJECT(
									((BgL_nodez00_bglt)
										((BgL_varz00_bglt) BgL_nodez00_2229))))->BgL_typez00);
						BgL_test1950z00_2748 =
							(((obj_t) BgL_arg1453z00_2277) == BGl_za2_za2z00zztype_cachez00);
					}
					if (BgL_test1950z00_2748)
						{	/* Type/typeof.scm 125 */
							return
								(((BgL_variablez00_bglt) COBJECT(BgL_i1120z00_2276))->
								BgL_typez00);
						}
					else
						{	/* Type/typeof.scm 126 */
							bool_t BgL_test1951z00_2755;

							{	/* Type/typeof.scm 126 */
								bool_t BgL_test1952z00_2756;

								{	/* Type/typeof.scm 126 */
									BgL_typez00_bglt BgL_arg1452z00_2278;

									BgL_arg1452z00_2278 =
										(((BgL_variablez00_bglt) COBJECT(BgL_i1120z00_2276))->
										BgL_typez00);
									{	/* Type/typeof.scm 126 */
										obj_t BgL_classz00_2279;

										BgL_classz00_2279 = BGl_tclassz00zzobject_classz00;
										{	/* Type/typeof.scm 126 */
											BgL_objectz00_bglt BgL_arg1801z00_2280;

											{	/* Type/typeof.scm 126 */
												obj_t BgL_tmpz00_2758;

												BgL_tmpz00_2758 =
													((obj_t) ((BgL_objectz00_bglt) BgL_arg1452z00_2278));
												BgL_arg1801z00_2280 =
													(BgL_objectz00_bglt) (BgL_tmpz00_2758);
											}
											if (BGL_CONDEXPAND_ISA_ARCH64())
												{	/* Type/typeof.scm 126 */
													long BgL_idxz00_2281;

													BgL_idxz00_2281 =
														BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_2280);
													BgL_test1952z00_2756 =
														(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
															(BgL_idxz00_2281 + 2L)) == BgL_classz00_2279);
												}
											else
												{	/* Type/typeof.scm 126 */
													bool_t BgL_res1835z00_2284;

													{	/* Type/typeof.scm 126 */
														obj_t BgL_oclassz00_2285;

														{	/* Type/typeof.scm 126 */
															long BgL_arg1808z00_2286;

															{	/* Type/typeof.scm 126 */
																long BgL_arg1809z00_2287;

																BgL_arg1809z00_2287 =
																	BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_2280);
																BgL_arg1808z00_2286 =
																	(BgL_arg1809z00_2287 - OBJECT_TYPE);
															}
															BgL_oclassz00_2285 =
																VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
																BgL_arg1808z00_2286);
														}
														{	/* Type/typeof.scm 126 */
															bool_t BgL__ortest_1115z00_2288;

															BgL__ortest_1115z00_2288 =
																(BgL_classz00_2279 == BgL_oclassz00_2285);
															if (BgL__ortest_1115z00_2288)
																{	/* Type/typeof.scm 126 */
																	BgL_res1835z00_2284 =
																		BgL__ortest_1115z00_2288;
																}
															else
																{	/* Type/typeof.scm 126 */
																	long BgL_odepthz00_2289;

																	BgL_odepthz00_2289 =
																		BGL_CLASS_DEPTH(BgL_oclassz00_2285);
																	if ((2L < BgL_odepthz00_2289))
																		{	/* Type/typeof.scm 126 */
																			obj_t BgL_arg1797z00_2290;

																			BgL_arg1797z00_2290 =
																				BGL_CLASS_ANCESTORS_REF
																				(BgL_oclassz00_2285, 2L);
																			BgL_res1835z00_2284 =
																				(BgL_arg1797z00_2290 ==
																				BgL_classz00_2279);
																		}
																	else
																		{	/* Type/typeof.scm 126 */
																			BgL_res1835z00_2284 = ((bool_t) 0);
																		}
																}
														}
													}
													BgL_test1952z00_2756 = BgL_res1835z00_2284;
												}
										}
									}
								}
								if (BgL_test1952z00_2756)
									{	/* Type/typeof.scm 126 */
										BgL_typez00_bglt BgL_arg1450z00_2291;
										BgL_typez00_bglt BgL_arg1451z00_2292;

										BgL_arg1450z00_2291 =
											(((BgL_nodez00_bglt) COBJECT(
													((BgL_nodez00_bglt)
														((BgL_varz00_bglt) BgL_nodez00_2229))))->
											BgL_typez00);
										BgL_arg1451z00_2292 =
											(((BgL_variablez00_bglt) COBJECT(BgL_i1120z00_2276))->
											BgL_typez00);
										BgL_test1951z00_2755 =
											BGl_typezd2subclasszf3z21zzobject_classz00
											(BgL_arg1450z00_2291, BgL_arg1451z00_2292);
									}
								else
									{	/* Type/typeof.scm 126 */
										BgL_test1951z00_2755 = ((bool_t) 0);
									}
							}
							if (BgL_test1951z00_2755)
								{	/* Type/typeof.scm 126 */
									return
										(((BgL_variablez00_bglt) COBJECT(BgL_i1120z00_2276))->
										BgL_typez00);
								}
							else
								{	/* Type/typeof.scm 126 */
									return
										(((BgL_nodez00_bglt) COBJECT(
												((BgL_nodez00_bglt)
													((BgL_varz00_bglt) BgL_nodez00_2229))))->BgL_typez00);
								}
						}
				}
			}
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zztype_typeofz00(void)
	{
		{	/* Type/typeof.scm 15 */
			BGl_modulezd2initializa7ationz75zztype_typez00(515343395L,
				BSTRING_TO_STRING(BGl_string1848z00zztype_typeofz00));
			BGl_modulezd2initializa7ationz75zztype_cachez00(346491734L,
				BSTRING_TO_STRING(BGl_string1848z00zztype_typeofz00));
			BGl_modulezd2initializa7ationz75zztype_coercionz00(116865673L,
				BSTRING_TO_STRING(BGl_string1848z00zztype_typeofz00));
			BGl_modulezd2initializa7ationz75zztype_miscz00(49975086L,
				BSTRING_TO_STRING(BGl_string1848z00zztype_typeofz00));
			BGl_modulezd2initializa7ationz75zzengine_paramz00(517137079L,
				BSTRING_TO_STRING(BGl_string1848z00zztype_typeofz00));
			BGl_modulezd2initializa7ationz75zzast_nodez00(469732712L,
				BSTRING_TO_STRING(BGl_string1848z00zztype_typeofz00));
			BGl_modulezd2initializa7ationz75zzast_varz00(90839984L,
				BSTRING_TO_STRING(BGl_string1848z00zztype_typeofz00));
			BGl_modulezd2initializa7ationz75zztools_shapez00(365925558L,
				BSTRING_TO_STRING(BGl_string1848z00zztype_typeofz00));
			BGl_modulezd2initializa7ationz75zztools_speekz00(61247943L,
				BSTRING_TO_STRING(BGl_string1848z00zztype_typeofz00));
			return
				BGl_modulezd2initializa7ationz75zzobject_classz00(502007119L,
				BSTRING_TO_STRING(BGl_string1848z00zztype_typeofz00));
		}

	}

#ifdef __cplusplus
}
#endif
