/*===========================================================================*/
/*   (Ast/glo_def.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 Ast/glo_def.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_BgL_AST_GLOzd2DEFzd2_TYPE_DEFINITIONS
#define BGL_BgL_AST_GLOzd2DEFzd2_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_backendz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_languagez00;
		obj_t BgL_srfi0z00;
		obj_t BgL_namez00;
		obj_t BgL_externzd2variableszd2;
		obj_t BgL_externzd2functionszd2;
		obj_t BgL_externzd2typeszd2;
		obj_t BgL_variablesz00;
		obj_t BgL_functionsz00;
		obj_t BgL_typesz00;
		bool_t BgL_typedz00;
		obj_t BgL_heapzd2suffixzd2;
		obj_t BgL_heapzd2compatiblezd2;
		bool_t BgL_callccz00;
		bool_t BgL_qualifiedzd2typeszd2;
		bool_t BgL_effectzb2zb2;
		bool_t BgL_removezd2emptyzd2letz00;
		bool_t BgL_foreignzd2closurezd2;
		bool_t BgL_typedzd2eqzd2;
		bool_t BgL_tracezd2supportzd2;
		obj_t BgL_foreignzd2clausezd2supportz00;
		obj_t BgL_debugzd2supportzd2;
		bool_t BgL_pragmazd2supportzd2;
		bool_t BgL_tvectorzd2descrzd2supportz00;
		bool_t BgL_requirezd2tailczd2;
		obj_t BgL_registersz00;
		obj_t BgL_pregistersz00;
		bool_t BgL_boundzd2checkzd2;
		bool_t BgL_typezd2checkzd2;
		bool_t BgL_typedzd2funcallzd2;
	}                 *BgL_backendz00_bglt;

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

	typedef struct BgL_variablez00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_idz00;
		obj_t BgL_namez00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_valuez00_bgl *BgL_valuez00;
		obj_t BgL_accessz00;
		obj_t BgL_fastzd2alphazd2;
		obj_t BgL_removablez00;
		long BgL_occurrencez00;
		long BgL_occurrencewz00;
		bool_t BgL_userzf3zf3;
	}                  *BgL_variablez00_bglt;

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

	typedef struct BgL_localz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_idz00;
		obj_t BgL_namez00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_valuez00_bgl *BgL_valuez00;
		obj_t BgL_accessz00;
		obj_t BgL_fastzd2alphazd2;
		obj_t BgL_removablez00;
		long BgL_occurrencez00;
		long BgL_occurrencewz00;
		bool_t BgL_userzf3zf3;
		long BgL_keyz00;
		obj_t BgL_valzd2noescapezd2;
		bool_t BgL_volatilez00;
	}               *BgL_localz00_bglt;

	typedef struct BgL_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_sfunz00_bgl
	{
		header_t header;
		obj_t widening;
		long BgL_arityz00;
		obj_t BgL_sidezd2effectzd2;
		obj_t BgL_predicatezd2ofzd2;
		obj_t BgL_stackzd2allocatorzd2;
		bool_t BgL_topzf3zf3;
		obj_t BgL_thezd2closurezd2;
		obj_t BgL_effectz00;
		obj_t BgL_failsafez00;
		obj_t BgL_argszd2noescapezd2;
		obj_t BgL_argszd2retescapezd2;
		obj_t BgL_propertyz00;
		obj_t BgL_argsz00;
		obj_t BgL_argszd2namezd2;
		obj_t BgL_bodyz00;
		obj_t BgL_classz00;
		obj_t BgL_dssslzd2keywordszd2;
		obj_t BgL_locz00;
		obj_t BgL_optionalsz00;
		obj_t BgL_keysz00;
		obj_t BgL_thezd2closurezd2globalz00;
		obj_t BgL_strengthz00;
		obj_t BgL_stackablez00;
	}              *BgL_sfunz00_bglt;

	typedef struct BgL_svarz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
	}              *BgL_svarz00_bglt;


#endif													// BGL_BgL_AST_GLOzd2DEFzd2_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	BGL_EXPORTED_DECL BgL_globalz00_bglt
		BGl_defzd2globalzd2sfunzd2nozd2warningz12z12zzast_glozd2defzd2(obj_t, obj_t,
		obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL BgL_globalz00_bglt
		BGl_defzd2globalzd2svarz12z12zzast_glozd2defzd2(obj_t, obj_t, obj_t, obj_t);
	BGL_IMPORT int BGl_bigloozd2warningzd2zz__paramz00(void);
	static obj_t BGl_requirezd2initializa7ationz75zzast_glozd2defzd2 = BUNSPEC;
	extern obj_t BGl_dssslzd2keyszd2zztools_dssslz00(obj_t);
	BGL_IMPORT bool_t BGl_equalzf3zf3zz__r4_equivalence_6_2z00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_za2classesza2z00zz__objectz00;
	extern obj_t BGl_tclassz00zzobject_classz00;
	extern obj_t BGl_sfunz00zzast_varz00;
	extern obj_t BGl_dssslzd2formalszd2zztools_dssslz00(obj_t);
	BGL_IMPORT obj_t BGl_formatz00zz__r4_output_6_10_3z00(obj_t, obj_t);
	extern obj_t BGl_internalzd2errorzd2zztools_errorz00(obj_t, obj_t, obj_t);
	static obj_t BGl_genericzd2initzd2zzast_glozd2defzd2(void);
	extern obj_t BGl_leavezd2functionzd2zztools_errorz00(void);
	static obj_t BGl_objectzd2initzd2zzast_glozd2defzd2(void);
	static BgL_globalz00_bglt
		BGl_z62defzd2globalzd2svarz12z70zzast_glozd2defzd2(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	extern BgL_globalz00_bglt
		BGl_declarezd2globalzd2scnstz12z12zzast_glozd2declzd2(obj_t, obj_t, obj_t,
		obj_t, obj_t, obj_t, obj_t);
	BGL_IMPORT obj_t BGl_memqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
	extern obj_t BGl_shapez00zztools_shapez00(obj_t);
	BGL_IMPORT obj_t BGl_za2inheritancesza2z00zz__objectz00;
	BGL_IMPORT obj_t string_append_3(obj_t, obj_t, obj_t);
	extern obj_t BGl_typez00zztype_typez00;
	static BgL_globalz00_bglt
		BGl_z62defzd2globalzd2sfunzd2nozd2warningz12z70zzast_glozd2defzd2(obj_t,
		obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
	extern bool_t BGl_dssslzd2keyzd2onlyzd2prototypezf3z21zztools_dssslz00(obj_t);
	extern obj_t BGl_thezd2backendzd2zzbackend_backendz00(void);
	BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t, obj_t);
	static BgL_globalz00_bglt
		BGl_checkzd2sfunzd2definitionz00zzast_glozd2defzd2(obj_t, obj_t, obj_t,
		obj_t, obj_t, obj_t);
	BGL_IMPORT obj_t BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00(obj_t,
		obj_t, obj_t);
	extern BgL_globalz00_bglt
		BGl_declarezd2globalzd2sfunz12z12zzast_glozd2declzd2(obj_t, obj_t, obj_t,
		obj_t, obj_t, obj_t, obj_t, obj_t);
	static obj_t BGl_methodzd2initzd2zzast_glozd2defzd2(void);
	BGL_IMPORT obj_t BGl_bigloozd2warningzd2setz12z12zz__paramz00(int);
	extern obj_t BGl_findzd2globalzd2zzast_envz00(obj_t, obj_t);
	static obj_t BGl_z62checkzd2methodzd2definitionz62zzast_glozd2defzd2(obj_t,
		obj_t, obj_t, obj_t, obj_t);
	extern obj_t BGl_za2bdbzd2debugza2zd2zzengine_paramz00;
	extern obj_t BGl_removezd2varzd2fromz12z12zzast_removez00(obj_t,
		BgL_variablez00_bglt);
	extern obj_t BGl_idzd2ofzd2idz00zzast_identz00(obj_t, obj_t);
	static BgL_globalz00_bglt
		BGl_mismatchzd2errorzd2zzast_glozd2defzd2(BgL_globalz00_bglt, obj_t, obj_t);
	extern obj_t BGl_za2_za2z00zztype_cachez00;
	extern obj_t BGl_svarz00zzast_varz00;
	BGL_EXPORTED_DECL BgL_globalz00_bglt
		BGl_defzd2globalzd2scnstz12z12zzast_glozd2defzd2(obj_t, obj_t, obj_t, obj_t,
		obj_t);
	extern bool_t
		BGl_dssslzd2optionalzd2onlyzd2prototypezf3z21zztools_dssslz00(obj_t);
	extern obj_t BGl_za2objza2z00zztype_cachez00;
	BGL_EXPORTED_DECL obj_t
		BGl_modulezd2initializa7ationz75zzast_glozd2defzd2(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzobject_classz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_dssslz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_locationz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_errorz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_argsz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_envz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_removez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_glozd2declzd2(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_identz00(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_modulezd2initializa7ationz75zzbackend_backendz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_tracez00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(long,
		char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(long, char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_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 *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__paramz00(long, char *);
	extern obj_t BGl_findzd2locationzd2zztools_locationz00(obj_t);
	extern bool_t BGl_typezd2subclasszf3z21zzobject_classz00(BgL_typez00_bglt,
		BgL_typez00_bglt);
	extern obj_t BGl_enterzd2functionzd2zztools_errorz00(obj_t);
	extern BgL_typez00_bglt BGl_typezd2ofzd2idz00zzast_identz00(obj_t, obj_t);
	BGL_EXPORTED_DECL BgL_globalz00_bglt
		BGl_defzd2globalzd2sfunz12z12zzast_glozd2defzd2(obj_t, obj_t, obj_t, obj_t,
		obj_t, obj_t, obj_t, obj_t);
	extern obj_t BGl_localz00zzast_varz00;
	static obj_t BGl_cnstzd2initzd2zzast_glozd2defzd2(void);
	static obj_t BGl_libraryzd2moduleszd2initz00zzast_glozd2defzd2(void);
	static BgL_globalz00_bglt
		BGl_checkzd2svarzd2definitionz00zzast_glozd2defzd2(obj_t, obj_t, obj_t);
	BGL_IMPORT long bgl_list_length(obj_t);
	extern long BGl_globalzd2arityzd2zztools_argsz00(obj_t);
	static obj_t BGl_importedzd2moduleszd2initz00zzast_glozd2defzd2(void);
	extern obj_t BGl_dssslzd2optionalszd2zztools_dssslz00(obj_t);
	static obj_t BGl_gczd2rootszd2initz00zzast_glozd2defzd2(void);
	extern obj_t BGl_parsezd2idzd2zzast_identz00(obj_t, obj_t);
	extern BgL_globalz00_bglt
		BGl_declarezd2globalzd2svarz12z12zzast_glozd2declzd2(obj_t, obj_t, obj_t,
		obj_t, obj_t, obj_t);
	extern obj_t BGl_findzd2globalzf2modulez20zzast_envz00(obj_t, obj_t);
	static bool_t BGl_compatiblezd2typezf3z21zzast_glozd2defzd2(bool_t,
		BgL_typez00_bglt, BgL_typez00_bglt);
	static BgL_globalz00_bglt
		BGl_z62defzd2globalzd2sfunz12z70zzast_glozd2defzd2(obj_t, obj_t, obj_t,
		obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
	static BgL_globalz00_bglt
		BGl_z62defzd2globalzd2scnstz12z70zzast_glozd2defzd2(obj_t, obj_t, obj_t,
		obj_t, obj_t, obj_t);
	extern obj_t BGl_userzd2errorzd2zztools_errorz00(obj_t, obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL bool_t
		BGl_checkzd2methodzd2definitionz00zzast_glozd2defzd2(obj_t, obj_t, obj_t,
		obj_t);
	extern obj_t BGl_globalz00zzast_varz00;
	extern bool_t BGl_dssslzd2prototypezf3z21zztools_dssslz00(obj_t);
	static obj_t __cnst[6];


	   
		 
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_checkzd2methodzd2definitionzd2envzd2zzast_glozd2defzd2,
		BgL_bgl_za762checkza7d2metho1941z00,
		BGl_z62checkzd2methodzd2definitionz62zzast_glozd2defzd2, 0L, BUNSPEC, 4);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_defzd2globalzd2scnstz12zd2envzc0zzast_glozd2defzd2,
		BgL_bgl_za762defza7d2globalza71942za7,
		BGl_z62defzd2globalzd2scnstz12z70zzast_glozd2defzd2, 0L, BUNSPEC, 5);
	      DEFINE_STRING(BGl_string1921z00zzast_glozd2defzd2,
		BgL_bgl_string1921za700za7za7a1943za7, "check-method-definition", 23);
	      DEFINE_STRING(BGl_string1922z00zzast_glozd2defzd2,
		BgL_bgl_string1922za700za7za7a1944za7, "unexpected generic arg", 22);
	      DEFINE_STRING(BGl_string1923z00zzast_glozd2defzd2,
		BgL_bgl_string1923za700za7za7a1945za7,
		"(incompatible DSSSL #!optional prototype)", 41);
	      DEFINE_STRING(BGl_string1924z00zzast_glozd2defzd2,
		BgL_bgl_string1924za700za7za7a1946za7,
		"(incompatible DSSSL #!key prototype)", 36);
	      DEFINE_STRING(BGl_string1925z00zzast_glozd2defzd2,
		BgL_bgl_string1925za700za7za7a1947za7, "(incompatible Dsssl prototype)",
		30);
	      DEFINE_STRING(BGl_string1926z00zzast_glozd2defzd2,
		BgL_bgl_string1926za700za7za7a1948za7, "(arity differs)", 15);
	      DEFINE_STRING(BGl_string1927z00zzast_glozd2defzd2,
		BgL_bgl_string1927za700za7za7a1949za7, "(incompatible formal type)", 26);
	      DEFINE_STRING(BGl_string1928z00zzast_glozd2defzd2,
		BgL_bgl_string1928za700za7za7a1950za7,
		"(incompatible function type result)", 35);
	      DEFINE_STRING(BGl_string1929z00zzast_glozd2defzd2,
		BgL_bgl_string1929za700za7za7a1951za7,
		"(declared as function of another class (~a/~a))", 47);
	      DEFINE_STRING(BGl_string1930z00zzast_glozd2defzd2,
		BgL_bgl_string1930za700za7za7a1952za7, "(not declared as function)", 26);
	      DEFINE_STRING(BGl_string1931z00zzast_glozd2defzd2,
		BgL_bgl_string1931za700za7za7a1953za7, "Illegal type for global variable",
		32);
	      DEFINE_STRING(BGl_string1932z00zzast_glozd2defzd2,
		BgL_bgl_string1932za700za7za7a1954za7, "(incompatible variable type)", 28);
	      DEFINE_STRING(BGl_string1933z00zzast_glozd2defzd2,
		BgL_bgl_string1933za700za7za7a1955za7, "(not declared as a variable)", 28);
	      DEFINE_STRING(BGl_string1934z00zzast_glozd2defzd2,
		BgL_bgl_string1934za700za7za7a1956za7,
		"Prototype and definition don't match", 36);
	      DEFINE_STRING(BGl_string1935z00zzast_glozd2defzd2,
		BgL_bgl_string1935za700za7za7a1957za7, " ", 1);
	      DEFINE_STRING(BGl_string1936z00zzast_glozd2defzd2,
		BgL_bgl_string1936za700za7za7a1958za7, "argument missing", 16);
	      DEFINE_STRING(BGl_string1937z00zzast_glozd2defzd2,
		BgL_bgl_string1937za700za7za7a1959za7, "(generic not found for method)",
		30);
	      DEFINE_STRING(BGl_string1938z00zzast_glozd2defzd2,
		BgL_bgl_string1938za700za7za7a1960za7, "ast_glo-def", 11);
	      DEFINE_STRING(BGl_string1939z00zzast_glozd2defzd2,
		BgL_bgl_string1939za700za7za7a1961za7,
		"bigloo now sgfun static export bdb ", 35);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_defzd2globalzd2sfunzd2nozd2warningz12zd2envzc0zzast_glozd2defzd2,
		BgL_bgl_za762defza7d2globalza71962za7,
		BGl_z62defzd2globalzd2sfunzd2nozd2warningz12z70zzast_glozd2defzd2, 0L,
		BUNSPEC, 8);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_defzd2globalzd2sfunz12zd2envzc0zzast_glozd2defzd2,
		BgL_bgl_za762defza7d2globalza71963za7,
		BGl_z62defzd2globalzd2sfunz12z70zzast_glozd2defzd2, 0L, BUNSPEC, 8);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_defzd2globalzd2svarz12zd2envzc0zzast_glozd2defzd2,
		BgL_bgl_za762defza7d2globalza71964za7,
		BGl_z62defzd2globalzd2svarz12z70zzast_glozd2defzd2, 0L, BUNSPEC, 4);

/* GC roots registration */
	static obj_t bgl_gc_roots_register()
	{
#if defined( BGL_GC_ROOTS )
#define ADD_ROOT( addr ) (addr > roots_max ? roots_max = addr : (addr < roots_min ? roots_min = addr : 0))
		void *roots_min = (void *) ULONG_MAX, *roots_max = 0;
		   
			 ADD_ROOT((void
				*) (&BGl_requirezd2initializa7ationz75zzast_glozd2defzd2));
#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_modulezd2initializa7ationz75zzast_glozd2defzd2(long
		BgL_checksumz00_3011, char *BgL_fromz00_3012)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zzast_glozd2defzd2))
				{
					BGl_requirezd2initializa7ationz75zzast_glozd2defzd2 =
						BBOOL(((bool_t) 0));
					BGl_gczd2rootszd2initz00zzast_glozd2defzd2();
					BGl_libraryzd2moduleszd2initz00zzast_glozd2defzd2();
					BGl_cnstzd2initzd2zzast_glozd2defzd2();
					BGl_importedzd2moduleszd2initz00zzast_glozd2defzd2();
					return BGl_methodzd2initzd2zzast_glozd2defzd2();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* library-modules-init */
	obj_t BGl_libraryzd2moduleszd2initz00zzast_glozd2defzd2(void)
	{
		{	/* Ast/glo_def.scm 15 */
			BGl_modulezd2initializa7ationz75zz__paramz00(0L, "ast_glo-def");
			BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(0L,
				"ast_glo-def");
			BGl_modulezd2initializa7ationz75zz__objectz00(0L, "ast_glo-def");
			BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(0L,
				"ast_glo-def");
			BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(0L,
				"ast_glo-def");
			BGl_modulezd2initializa7ationz75zz__readerz00(0L, "ast_glo-def");
			BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(0L, "ast_glo-def");
			BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(0L, "ast_glo-def");
			BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(0L, "ast_glo-def");
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(0L,
				"ast_glo-def");
			return BUNSPEC;
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zzast_glozd2defzd2(void)
	{
		{	/* Ast/glo_def.scm 15 */
			{	/* Ast/glo_def.scm 15 */
				obj_t BgL_cportz00_3000;

				{	/* Ast/glo_def.scm 15 */
					obj_t BgL_stringz00_3007;

					BgL_stringz00_3007 = BGl_string1939z00zzast_glozd2defzd2;
					{	/* Ast/glo_def.scm 15 */
						obj_t BgL_startz00_3008;

						BgL_startz00_3008 = BINT(0L);
						{	/* Ast/glo_def.scm 15 */
							obj_t BgL_endz00_3009;

							BgL_endz00_3009 =
								BINT(STRING_LENGTH(((obj_t) BgL_stringz00_3007)));
							{	/* Ast/glo_def.scm 15 */

								BgL_cportz00_3000 =
									BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00
									(BgL_stringz00_3007, BgL_startz00_3008, BgL_endz00_3009);
				}}}}
				{
					long BgL_iz00_3001;

					BgL_iz00_3001 = 5L;
				BgL_loopz00_3002:
					if ((BgL_iz00_3001 == -1L))
						{	/* Ast/glo_def.scm 15 */
							return BUNSPEC;
						}
					else
						{	/* Ast/glo_def.scm 15 */
							{	/* Ast/glo_def.scm 15 */
								obj_t BgL_arg1940z00_3003;

								{	/* Ast/glo_def.scm 15 */

									{	/* Ast/glo_def.scm 15 */
										obj_t BgL_locationz00_3005;

										BgL_locationz00_3005 = BBOOL(((bool_t) 0));
										{	/* Ast/glo_def.scm 15 */

											BgL_arg1940z00_3003 =
												BGl_readz00zz__readerz00(BgL_cportz00_3000,
												BgL_locationz00_3005);
										}
									}
								}
								{	/* Ast/glo_def.scm 15 */
									int BgL_tmpz00_3040;

									BgL_tmpz00_3040 = (int) (BgL_iz00_3001);
									CNST_TABLE_SET(BgL_tmpz00_3040, BgL_arg1940z00_3003);
							}}
							{	/* Ast/glo_def.scm 15 */
								int BgL_auxz00_3006;

								BgL_auxz00_3006 = (int) ((BgL_iz00_3001 - 1L));
								{
									long BgL_iz00_3045;

									BgL_iz00_3045 = (long) (BgL_auxz00_3006);
									BgL_iz00_3001 = BgL_iz00_3045;
									goto BgL_loopz00_3002;
								}
							}
						}
				}
			}
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zzast_glozd2defzd2(void)
	{
		{	/* Ast/glo_def.scm 15 */
			return bgl_gc_roots_register();
		}

	}



/* def-global-sfun-no-warning! */
	BGL_EXPORTED_DEF BgL_globalz00_bglt
		BGl_defzd2globalzd2sfunzd2nozd2warningz12z12zzast_glozd2defzd2(obj_t
		BgL_idz00_3, obj_t BgL_argsz00_4, obj_t BgL_locz00_5, obj_t BgL_modz00_6,
		obj_t BgL_classz00_7, obj_t BgL_srczd2expzd2_8, obj_t BgL_remz00_9,
		obj_t BgL_nodez00_10)
	{
		{	/* Ast/glo_def.scm 67 */
			{	/* Ast/glo_def.scm 68 */
				int BgL_warningz00_2206;

				BgL_warningz00_2206 = BGl_bigloozd2warningzd2zz__paramz00();
				BGl_bigloozd2warningzd2setz12z12zz__paramz00((int) (0L));
				{	/* Ast/glo_def.scm 70 */
					BgL_globalz00_bglt BgL_funz00_2207;

					BgL_funz00_2207 =
						BGl_defzd2globalzd2sfunz12z12zzast_glozd2defzd2(BgL_idz00_3,
						BgL_argsz00_4, BgL_locz00_5, BgL_modz00_6, BgL_classz00_7,
						BgL_srczd2expzd2_8, BgL_remz00_9, BgL_nodez00_10);
					BGl_bigloozd2warningzd2setz12z12zz__paramz00(BgL_warningz00_2206);
					return BgL_funz00_2207;
				}
			}
		}

	}



/* &def-global-sfun-no-warning! */
	BgL_globalz00_bglt
		BGl_z62defzd2globalzd2sfunzd2nozd2warningz12z70zzast_glozd2defzd2(obj_t
		BgL_envz00_2966, obj_t BgL_idz00_2967, obj_t BgL_argsz00_2968,
		obj_t BgL_locz00_2969, obj_t BgL_modz00_2970, obj_t BgL_classz00_2971,
		obj_t BgL_srczd2expzd2_2972, obj_t BgL_remz00_2973, obj_t BgL_nodez00_2974)
	{
		{	/* Ast/glo_def.scm 67 */
			return
				BGl_defzd2globalzd2sfunzd2nozd2warningz12z12zzast_glozd2defzd2
				(BgL_idz00_2967, BgL_argsz00_2968, BgL_locz00_2969, BgL_modz00_2970,
				BgL_classz00_2971, BgL_srczd2expzd2_2972, BgL_remz00_2973,
				BgL_nodez00_2974);
		}

	}



/* def-global-sfun! */
	BGL_EXPORTED_DEF BgL_globalz00_bglt
		BGl_defzd2globalzd2sfunz12z12zzast_glozd2defzd2(obj_t BgL_idz00_11,
		obj_t BgL_argsz00_12, obj_t BgL_localsz00_13, obj_t BgL_modulez00_14,
		obj_t BgL_classz00_15, obj_t BgL_srczd2expzd2_16, obj_t BgL_remz00_17,
		obj_t BgL_nodez00_18)
	{
		{	/* Ast/glo_def.scm 80 */
			BGl_enterzd2functionzd2zztools_errorz00(BgL_idz00_11);
			{	/* Ast/glo_def.scm 86 */
				obj_t BgL_locz00_1713;

				BgL_locz00_1713 =
					BGl_findzd2locationzd2zztools_locationz00(BgL_srczd2expzd2_16);
				{	/* Ast/glo_def.scm 86 */
					obj_t BgL_idzd2typezd2_1714;

					BgL_idzd2typezd2_1714 =
						BGl_parsezd2idzd2zzast_identz00(BgL_idz00_11, BgL_locz00_1713);
					{	/* Ast/glo_def.scm 87 */
						obj_t BgL_typezd2reszd2_1715;

						BgL_typezd2reszd2_1715 = CDR(BgL_idzd2typezd2_1714);
						{	/* Ast/glo_def.scm 88 */
							obj_t BgL_idz00_1716;

							BgL_idz00_1716 = CAR(BgL_idzd2typezd2_1714);
							{	/* Ast/glo_def.scm 89 */
								obj_t BgL_importz00_1717;

								{	/* Ast/glo_def.scm 90 */
									bool_t BgL_test1967z00_3059;

									if (
										((long) CINT(BGl_za2bdbzd2debugza2zd2zzengine_paramz00) >=
											3L))
										{	/* Ast/glo_def.scm 91 */
											obj_t BgL_arg1494z00_1770;

											{	/* Ast/glo_def.scm 91 */
												obj_t BgL_arg1496z00_1771;

												BgL_arg1496z00_1771 =
													BGl_thezd2backendzd2zzbackend_backendz00();
												BgL_arg1494z00_1770 =
													(((BgL_backendz00_bglt) COBJECT(
															((BgL_backendz00_bglt) BgL_arg1496z00_1771)))->
													BgL_debugzd2supportzd2);
											}
											BgL_test1967z00_3059 =
												CBOOL(BGl_memqz00zz__r4_pairs_and_lists_6_3z00
												(CNST_TABLE_REF(0L), BgL_arg1494z00_1770));
										}
									else
										{	/* Ast/glo_def.scm 90 */
											BgL_test1967z00_3059 = ((bool_t) 0);
										}
									if (BgL_test1967z00_3059)
										{	/* Ast/glo_def.scm 90 */
											BgL_importz00_1717 = CNST_TABLE_REF(1L);
										}
									else
										{	/* Ast/glo_def.scm 90 */
											BgL_importz00_1717 = CNST_TABLE_REF(2L);
										}
								}
								{	/* Ast/glo_def.scm 90 */
									obj_t BgL_oldzd2globalzd2_1718;

									BgL_oldzd2globalzd2_1718 =
										BGl_findzd2globalzf2modulez20zzast_envz00(BgL_idz00_1716,
										BgL_modulez00_14);
									{	/* Ast/glo_def.scm 94 */
										BgL_globalz00_bglt BgL_globalz00_1719;

										{	/* Ast/glo_def.scm 96 */
											bool_t BgL_test1969z00_3072;

											{	/* Ast/glo_def.scm 96 */
												obj_t BgL_classz00_2213;

												BgL_classz00_2213 = BGl_globalz00zzast_varz00;
												if (BGL_OBJECTP(BgL_oldzd2globalzd2_1718))
													{	/* Ast/glo_def.scm 96 */
														BgL_objectz00_bglt BgL_arg1801z00_2215;

														BgL_arg1801z00_2215 =
															(BgL_objectz00_bglt) (BgL_oldzd2globalzd2_1718);
														if (BGL_CONDEXPAND_ISA_ARCH64())
															{	/* Ast/glo_def.scm 96 */
																long BgL_idxz00_2221;

																BgL_idxz00_2221 =
																	BGL_OBJECT_INHERITANCE_NUM
																	(BgL_arg1801z00_2215);
																BgL_test1969z00_3072 =
																	(VECTOR_REF
																	(BGl_za2inheritancesza2z00zz__objectz00,
																		(BgL_idxz00_2221 + 2L)) ==
																	BgL_classz00_2213);
															}
														else
															{	/* Ast/glo_def.scm 96 */
																bool_t BgL_res1900z00_2243;

																{	/* Ast/glo_def.scm 96 */
																	obj_t BgL_oclassz00_2229;

																	{	/* Ast/glo_def.scm 96 */
																		long BgL_arg1808z00_2235;

																		{	/* Ast/glo_def.scm 96 */
																			long BgL_arg1809z00_2236;

																			BgL_arg1809z00_2236 =
																				BGL_OBJECT_CLASS_NUM
																				(BgL_arg1801z00_2215);
																			BgL_arg1808z00_2235 =
																				(BgL_arg1809z00_2236 - OBJECT_TYPE);
																		}
																		BgL_oclassz00_2229 =
																			VECTOR_REF
																			(BGl_za2classesza2z00zz__objectz00,
																			BgL_arg1808z00_2235);
																	}
																	{	/* Ast/glo_def.scm 96 */
																		bool_t BgL__ortest_1115z00_2230;

																		BgL__ortest_1115z00_2230 =
																			(BgL_classz00_2213 == BgL_oclassz00_2229);
																		if (BgL__ortest_1115z00_2230)
																			{	/* Ast/glo_def.scm 96 */
																				BgL_res1900z00_2243 =
																					BgL__ortest_1115z00_2230;
																			}
																		else
																			{	/* Ast/glo_def.scm 96 */
																				long BgL_odepthz00_2231;

																				BgL_odepthz00_2231 =
																					BGL_CLASS_DEPTH(BgL_oclassz00_2229);
																				if ((2L < BgL_odepthz00_2231))
																					{	/* Ast/glo_def.scm 96 */
																						obj_t BgL_arg1797z00_2233;

																						BgL_arg1797z00_2233 =
																							BGL_CLASS_ANCESTORS_REF
																							(BgL_oclassz00_2229, 2L);
																						BgL_res1900z00_2243 =
																							(BgL_arg1797z00_2233 ==
																							BgL_classz00_2213);
																					}
																				else
																					{	/* Ast/glo_def.scm 96 */
																						BgL_res1900z00_2243 = ((bool_t) 0);
																					}
																			}
																	}
																}
																BgL_test1969z00_3072 = BgL_res1900z00_2243;
															}
													}
												else
													{	/* Ast/glo_def.scm 96 */
														BgL_test1969z00_3072 = ((bool_t) 0);
													}
											}
											if (BgL_test1969z00_3072)
												{	/* Ast/glo_def.scm 96 */
													BgL_globalz00_1719 =
														BGl_checkzd2sfunzd2definitionz00zzast_glozd2defzd2
														(BgL_oldzd2globalzd2_1718, BgL_typezd2reszd2_1715,
														BgL_argsz00_12, BgL_localsz00_13, BgL_classz00_15,
														BgL_srczd2expzd2_16);
												}
											else
												{	/* Ast/glo_def.scm 96 */
													BgL_globalz00_1719 =
														BGl_declarezd2globalzd2sfunz12z12zzast_glozd2declzd2
														(BgL_idz00_1716, BFALSE, BgL_argsz00_12,
														BgL_modulez00_14, BgL_importz00_1717,
														BgL_classz00_15, BgL_srczd2expzd2_16, BFALSE);
												}
										}
										{	/* Ast/glo_def.scm 95 */
											obj_t BgL_defzd2loczd2_1720;

											BgL_defzd2loczd2_1720 =
												BGl_findzd2locationzd2zztools_locationz00
												(BgL_srczd2expzd2_16);
											{	/* Ast/glo_def.scm 102 */

												{	/* Ast/glo_def.scm 103 */
													bool_t BgL_test1974z00_3095;

													{	/* Ast/glo_def.scm 103 */
														BgL_valuez00_bglt BgL_arg1452z00_1763;

														BgL_arg1452z00_1763 =
															(((BgL_variablez00_bglt) COBJECT(
																	((BgL_variablez00_bglt)
																		BgL_globalz00_1719)))->BgL_valuez00);
														{	/* Ast/glo_def.scm 103 */
															obj_t BgL_classz00_2245;

															BgL_classz00_2245 = BGl_sfunz00zzast_varz00;
															{	/* Ast/glo_def.scm 103 */
																BgL_objectz00_bglt BgL_arg1801z00_2247;

																{	/* Ast/glo_def.scm 103 */
																	obj_t BgL_tmpz00_3098;

																	BgL_tmpz00_3098 =
																		((obj_t)
																		((BgL_objectz00_bglt) BgL_arg1452z00_1763));
																	BgL_arg1801z00_2247 =
																		(BgL_objectz00_bglt) (BgL_tmpz00_3098);
																}
																if (BGL_CONDEXPAND_ISA_ARCH64())
																	{	/* Ast/glo_def.scm 103 */
																		long BgL_idxz00_2253;

																		BgL_idxz00_2253 =
																			BGL_OBJECT_INHERITANCE_NUM
																			(BgL_arg1801z00_2247);
																		BgL_test1974z00_3095 =
																			(VECTOR_REF
																			(BGl_za2inheritancesza2z00zz__objectz00,
																				(BgL_idxz00_2253 + 3L)) ==
																			BgL_classz00_2245);
																	}
																else
																	{	/* Ast/glo_def.scm 103 */
																		bool_t BgL_res1901z00_2275;

																		{	/* Ast/glo_def.scm 103 */
																			obj_t BgL_oclassz00_2261;

																			{	/* Ast/glo_def.scm 103 */
																				long BgL_arg1808z00_2267;

																				{	/* Ast/glo_def.scm 103 */
																					long BgL_arg1809z00_2268;

																					BgL_arg1809z00_2268 =
																						BGL_OBJECT_CLASS_NUM
																						(BgL_arg1801z00_2247);
																					BgL_arg1808z00_2267 =
																						(BgL_arg1809z00_2268 - OBJECT_TYPE);
																				}
																				BgL_oclassz00_2261 =
																					VECTOR_REF
																					(BGl_za2classesza2z00zz__objectz00,
																					BgL_arg1808z00_2267);
																			}
																			{	/* Ast/glo_def.scm 103 */
																				bool_t BgL__ortest_1115z00_2262;

																				BgL__ortest_1115z00_2262 =
																					(BgL_classz00_2245 ==
																					BgL_oclassz00_2261);
																				if (BgL__ortest_1115z00_2262)
																					{	/* Ast/glo_def.scm 103 */
																						BgL_res1901z00_2275 =
																							BgL__ortest_1115z00_2262;
																					}
																				else
																					{	/* Ast/glo_def.scm 103 */
																						long BgL_odepthz00_2263;

																						BgL_odepthz00_2263 =
																							BGL_CLASS_DEPTH
																							(BgL_oclassz00_2261);
																						if ((3L < BgL_odepthz00_2263))
																							{	/* Ast/glo_def.scm 103 */
																								obj_t BgL_arg1797z00_2265;

																								BgL_arg1797z00_2265 =
																									BGL_CLASS_ANCESTORS_REF
																									(BgL_oclassz00_2261, 3L);
																								BgL_res1901z00_2275 =
																									(BgL_arg1797z00_2265 ==
																									BgL_classz00_2245);
																							}
																						else
																							{	/* Ast/glo_def.scm 103 */
																								BgL_res1901z00_2275 =
																									((bool_t) 0);
																							}
																					}
																			}
																		}
																		BgL_test1974z00_3095 = BgL_res1901z00_2275;
																	}
															}
														}
													}
													if (BgL_test1974z00_3095)
														{	/* Ast/glo_def.scm 103 */
															{	/* Ast/glo_def.scm 300 */
																BgL_typez00_bglt BgL_oldzd2typezd2_2278;

																BgL_oldzd2typezd2_2278 =
																	(((BgL_variablez00_bglt) COBJECT(
																			((BgL_variablez00_bglt)
																				BgL_globalz00_1719)))->BgL_typez00);
																if ((((obj_t) BgL_oldzd2typezd2_2278) ==
																		BGl_za2_za2z00zztype_cachez00))
																	{	/* Ast/glo_def.scm 301 */
																		((((BgL_variablez00_bglt) COBJECT(
																						((BgL_variablez00_bglt)
																							BgL_globalz00_1719)))->
																				BgL_typez00) =
																			((BgL_typez00_bglt) ((BgL_typez00_bglt)
																					BgL_typezd2reszd2_1715)), BUNSPEC);
																	}
																else
																	{	/* Ast/glo_def.scm 301 */
																		BFALSE;
																	}
															}
															if (
																(bgl_list_length(BgL_localsz00_13) ==
																	bgl_list_length(
																		(((BgL_sfunz00_bglt) COBJECT(
																					((BgL_sfunz00_bglt)
																						(((BgL_variablez00_bglt) COBJECT(
																									((BgL_variablez00_bglt)
																										BgL_globalz00_1719)))->
																							BgL_valuez00))))->BgL_argsz00))))
																{	/* Ast/glo_def.scm 114 */
																	obj_t BgL_typesz00_1728;

																	{	/* Ast/glo_def.scm 114 */
																		obj_t BgL_l1304z00_1739;

																		BgL_l1304z00_1739 =
																			(((BgL_sfunz00_bglt) COBJECT(
																					((BgL_sfunz00_bglt)
																						(((BgL_variablez00_bglt) COBJECT(
																									((BgL_variablez00_bglt)
																										BgL_globalz00_1719)))->
																							BgL_valuez00))))->BgL_argsz00);
																		if (NULLP(BgL_l1304z00_1739))
																			{	/* Ast/glo_def.scm 114 */
																				BgL_typesz00_1728 = BNIL;
																			}
																		else
																			{	/* Ast/glo_def.scm 114 */
																				obj_t BgL_head1306z00_1741;

																				BgL_head1306z00_1741 =
																					MAKE_YOUNG_PAIR(BNIL, BNIL);
																				{
																					obj_t BgL_l1304z00_1743;
																					obj_t BgL_tail1307z00_1744;

																					BgL_l1304z00_1743 = BgL_l1304z00_1739;
																					BgL_tail1307z00_1744 =
																						BgL_head1306z00_1741;
																				BgL_zc3z04anonymousza31365ze3z87_1745:
																					if (NULLP(BgL_l1304z00_1743))
																						{	/* Ast/glo_def.scm 114 */
																							BgL_typesz00_1728 =
																								CDR(BgL_head1306z00_1741);
																						}
																					else
																						{	/* Ast/glo_def.scm 114 */
																							obj_t BgL_newtail1308z00_1747;

																							{	/* Ast/glo_def.scm 114 */
																								obj_t BgL_arg1372z00_1749;

																								{	/* Ast/glo_def.scm 114 */
																									obj_t BgL_az00_1750;

																									BgL_az00_1750 =
																										CAR(
																										((obj_t)
																											BgL_l1304z00_1743));
																									{	/* Ast/glo_def.scm 116 */
																										bool_t BgL_test1982z00_3146;

																										{	/* Ast/glo_def.scm 116 */
																											obj_t BgL_classz00_2290;

																											BgL_classz00_2290 =
																												BGl_localz00zzast_varz00;
																											if (BGL_OBJECTP
																												(BgL_az00_1750))
																												{	/* Ast/glo_def.scm 116 */
																													BgL_objectz00_bglt
																														BgL_arg1801z00_2292;
																													BgL_arg1801z00_2292 =
																														(BgL_objectz00_bglt)
																														(BgL_az00_1750);
																													if (BGL_CONDEXPAND_ISA_ARCH64())
																														{	/* Ast/glo_def.scm 116 */
																															long
																																BgL_idxz00_2298;
																															BgL_idxz00_2298 =
																																BGL_OBJECT_INHERITANCE_NUM
																																(BgL_arg1801z00_2292);
																															BgL_test1982z00_3146
																																=
																																(VECTOR_REF
																																(BGl_za2inheritancesza2z00zz__objectz00,
																																	(BgL_idxz00_2298
																																		+ 2L)) ==
																																BgL_classz00_2290);
																														}
																													else
																														{	/* Ast/glo_def.scm 116 */
																															bool_t
																																BgL_res1902z00_2320;
																															{	/* Ast/glo_def.scm 116 */
																																obj_t
																																	BgL_oclassz00_2306;
																																{	/* Ast/glo_def.scm 116 */
																																	long
																																		BgL_arg1808z00_2312;
																																	{	/* Ast/glo_def.scm 116 */
																																		long
																																			BgL_arg1809z00_2313;
																																		BgL_arg1809z00_2313
																																			=
																																			BGL_OBJECT_CLASS_NUM
																																			(BgL_arg1801z00_2292);
																																		BgL_arg1808z00_2312
																																			=
																																			(BgL_arg1809z00_2313
																																			-
																																			OBJECT_TYPE);
																																	}
																																	BgL_oclassz00_2306
																																		=
																																		VECTOR_REF
																																		(BGl_za2classesza2z00zz__objectz00,
																																		BgL_arg1808z00_2312);
																																}
																																{	/* Ast/glo_def.scm 116 */
																																	bool_t
																																		BgL__ortest_1115z00_2307;
																																	BgL__ortest_1115z00_2307
																																		=
																																		(BgL_classz00_2290
																																		==
																																		BgL_oclassz00_2306);
																																	if (BgL__ortest_1115z00_2307)
																																		{	/* Ast/glo_def.scm 116 */
																																			BgL_res1902z00_2320
																																				=
																																				BgL__ortest_1115z00_2307;
																																		}
																																	else
																																		{	/* Ast/glo_def.scm 116 */
																																			long
																																				BgL_odepthz00_2308;
																																			BgL_odepthz00_2308
																																				=
																																				BGL_CLASS_DEPTH
																																				(BgL_oclassz00_2306);
																																			if ((2L <
																																					BgL_odepthz00_2308))
																																				{	/* Ast/glo_def.scm 116 */
																																					obj_t
																																						BgL_arg1797z00_2310;
																																					BgL_arg1797z00_2310
																																						=
																																						BGL_CLASS_ANCESTORS_REF
																																						(BgL_oclassz00_2306,
																																						2L);
																																					BgL_res1902z00_2320
																																						=
																																						(BgL_arg1797z00_2310
																																						==
																																						BgL_classz00_2290);
																																				}
																																			else
																																				{	/* Ast/glo_def.scm 116 */
																																					BgL_res1902z00_2320
																																						=
																																						(
																																						(bool_t)
																																						0);
																																				}
																																		}
																																}
																															}
																															BgL_test1982z00_3146
																																=
																																BgL_res1902z00_2320;
																														}
																												}
																											else
																												{	/* Ast/glo_def.scm 116 */
																													BgL_test1982z00_3146 =
																														((bool_t) 0);
																												}
																										}
																										if (BgL_test1982z00_3146)
																											{	/* Ast/glo_def.scm 116 */
																												BgL_arg1372z00_1749 =
																													((obj_t)
																													(((BgL_variablez00_bglt) COBJECT(((BgL_variablez00_bglt) ((BgL_localz00_bglt) BgL_az00_1750))))->BgL_typez00));
																											}
																										else
																											{	/* Ast/glo_def.scm 118 */
																												bool_t
																													BgL_test1987z00_3170;
																												{	/* Ast/glo_def.scm 118 */
																													obj_t
																														BgL_classz00_2322;
																													BgL_classz00_2322 =
																														BGl_typez00zztype_typez00;
																													if (BGL_OBJECTP
																														(BgL_az00_1750))
																														{	/* Ast/glo_def.scm 118 */
																															BgL_objectz00_bglt
																																BgL_arg1801z00_2324;
																															BgL_arg1801z00_2324
																																=
																																(BgL_objectz00_bglt)
																																(BgL_az00_1750);
																															if (BGL_CONDEXPAND_ISA_ARCH64())
																																{	/* Ast/glo_def.scm 118 */
																																	long
																																		BgL_idxz00_2330;
																																	BgL_idxz00_2330
																																		=
																																		BGL_OBJECT_INHERITANCE_NUM
																																		(BgL_arg1801z00_2324);
																																	BgL_test1987z00_3170
																																		=
																																		(VECTOR_REF
																																		(BGl_za2inheritancesza2z00zz__objectz00,
																																			(BgL_idxz00_2330
																																				+
																																				1L)) ==
																																		BgL_classz00_2322);
																																}
																															else
																																{	/* Ast/glo_def.scm 118 */
																																	bool_t
																																		BgL_res1903z00_2352;
																																	{	/* Ast/glo_def.scm 118 */
																																		obj_t
																																			BgL_oclassz00_2338;
																																		{	/* Ast/glo_def.scm 118 */
																																			long
																																				BgL_arg1808z00_2344;
																																			{	/* Ast/glo_def.scm 118 */
																																				long
																																					BgL_arg1809z00_2345;
																																				BgL_arg1809z00_2345
																																					=
																																					BGL_OBJECT_CLASS_NUM
																																					(BgL_arg1801z00_2324);
																																				BgL_arg1808z00_2344
																																					=
																																					(BgL_arg1809z00_2345
																																					-
																																					OBJECT_TYPE);
																																			}
																																			BgL_oclassz00_2338
																																				=
																																				VECTOR_REF
																																				(BGl_za2classesza2z00zz__objectz00,
																																				BgL_arg1808z00_2344);
																																		}
																																		{	/* Ast/glo_def.scm 118 */
																																			bool_t
																																				BgL__ortest_1115z00_2339;
																																			BgL__ortest_1115z00_2339
																																				=
																																				(BgL_classz00_2322
																																				==
																																				BgL_oclassz00_2338);
																																			if (BgL__ortest_1115z00_2339)
																																				{	/* Ast/glo_def.scm 118 */
																																					BgL_res1903z00_2352
																																						=
																																						BgL__ortest_1115z00_2339;
																																				}
																																			else
																																				{	/* Ast/glo_def.scm 118 */
																																					long
																																						BgL_odepthz00_2340;
																																					BgL_odepthz00_2340
																																						=
																																						BGL_CLASS_DEPTH
																																						(BgL_oclassz00_2338);
																																					if (
																																						(1L
																																							<
																																							BgL_odepthz00_2340))
																																						{	/* Ast/glo_def.scm 118 */
																																							obj_t
																																								BgL_arg1797z00_2342;
																																							BgL_arg1797z00_2342
																																								=
																																								BGL_CLASS_ANCESTORS_REF
																																								(BgL_oclassz00_2338,
																																								1L);
																																							BgL_res1903z00_2352
																																								=
																																								(BgL_arg1797z00_2342
																																								==
																																								BgL_classz00_2322);
																																						}
																																					else
																																						{	/* Ast/glo_def.scm 118 */
																																							BgL_res1903z00_2352
																																								=
																																								(
																																								(bool_t)
																																								0);
																																						}
																																				}
																																		}
																																	}
																																	BgL_test1987z00_3170
																																		=
																																		BgL_res1903z00_2352;
																																}
																														}
																													else
																														{	/* Ast/glo_def.scm 118 */
																															BgL_test1987z00_3170
																																= ((bool_t) 0);
																														}
																												}
																												if (BgL_test1987z00_3170)
																													{	/* Ast/glo_def.scm 118 */
																														BgL_arg1372z00_1749
																															= BgL_az00_1750;
																													}
																												else
																													{	/* Ast/glo_def.scm 118 */
																														BgL_arg1372z00_1749
																															=
																															BGl_internalzd2errorzd2zztools_errorz00
																															(BGl_string1921z00zzast_glozd2defzd2,
																															BGl_string1922z00zzast_glozd2defzd2,
																															BGl_shapez00zztools_shapez00
																															(BgL_az00_1750));
																													}
																											}
																									}
																								}
																								BgL_newtail1308z00_1747 =
																									MAKE_YOUNG_PAIR
																									(BgL_arg1372z00_1749, BNIL);
																							}
																							SET_CDR(BgL_tail1307z00_1744,
																								BgL_newtail1308z00_1747);
																							{	/* Ast/glo_def.scm 114 */
																								obj_t BgL_arg1369z00_1748;

																								BgL_arg1369z00_1748 =
																									CDR(
																									((obj_t) BgL_l1304z00_1743));
																								{
																									obj_t BgL_tail1307z00_3197;
																									obj_t BgL_l1304z00_3196;

																									BgL_l1304z00_3196 =
																										BgL_arg1369z00_1748;
																									BgL_tail1307z00_3197 =
																										BgL_newtail1308z00_1747;
																									BgL_tail1307z00_1744 =
																										BgL_tail1307z00_3197;
																									BgL_l1304z00_1743 =
																										BgL_l1304z00_3196;
																									goto
																										BgL_zc3z04anonymousza31365ze3z87_1745;
																								}
																							}
																						}
																				}
																			}
																	}
																	{
																		obj_t BgL_ll1309z00_1730;
																		obj_t BgL_ll1310z00_1731;

																		BgL_ll1309z00_1730 = BgL_localsz00_13;
																		BgL_ll1310z00_1731 = BgL_typesz00_1728;
																	BgL_zc3z04anonymousza31346ze3z87_1732:
																		if (NULLP(BgL_ll1309z00_1730))
																			{	/* Ast/glo_def.scm 126 */
																				((bool_t) 1);
																			}
																		else
																			{	/* Ast/glo_def.scm 126 */
																				{	/* Ast/glo_def.scm 126 */
																					obj_t BgL_arg1352z00_1734;
																					obj_t BgL_arg1354z00_1735;

																					BgL_arg1352z00_1734 =
																						CAR(((obj_t) BgL_ll1309z00_1730));
																					BgL_arg1354z00_1735 =
																						CAR(((obj_t) BgL_ll1310z00_1731));
																					{	/* Ast/glo_def.scm 300 */
																						BgL_typez00_bglt
																							BgL_oldzd2typezd2_2359;
																						BgL_oldzd2typezd2_2359 =
																							(((BgL_variablez00_bglt)
																								COBJECT(((BgL_variablez00_bglt)
																										BgL_arg1352z00_1734)))->
																							BgL_typez00);
																						if ((((obj_t)
																									BgL_oldzd2typezd2_2359) ==
																								BGl_za2_za2z00zztype_cachez00))
																							{	/* Ast/glo_def.scm 301 */
																								((((BgL_variablez00_bglt)
																											COBJECT((
																													(BgL_variablez00_bglt)
																													BgL_arg1352z00_1734)))->
																										BgL_typez00) =
																									((BgL_typez00_bglt) (
																											(BgL_typez00_bglt)
																											BgL_arg1354z00_1735)),
																									BUNSPEC);
																							}
																						else
																							{	/* Ast/glo_def.scm 301 */
																								BFALSE;
																							}
																					}
																				}
																				{	/* Ast/glo_def.scm 126 */
																					obj_t BgL_arg1361z00_1736;
																					obj_t BgL_arg1363z00_1737;

																					BgL_arg1361z00_1736 =
																						CDR(((obj_t) BgL_ll1309z00_1730));
																					BgL_arg1363z00_1737 =
																						CDR(((obj_t) BgL_ll1310z00_1731));
																					{
																						obj_t BgL_ll1310z00_3217;
																						obj_t BgL_ll1309z00_3216;

																						BgL_ll1309z00_3216 =
																							BgL_arg1361z00_1736;
																						BgL_ll1310z00_3217 =
																							BgL_arg1363z00_1737;
																						BgL_ll1310z00_1731 =
																							BgL_ll1310z00_3217;
																						BgL_ll1309z00_1730 =
																							BgL_ll1309z00_3216;
																						goto
																							BgL_zc3z04anonymousza31346ze3z87_1732;
																					}
																				}
																			}
																	}
																}
															else
																{	/* Ast/glo_def.scm 112 */
																	((bool_t) 0);
																}
															BGl_removezd2varzd2fromz12z12zzast_removez00
																(BgL_remz00_17,
																((BgL_variablez00_bglt) BgL_globalz00_1719));
															{	/* Ast/glo_def.scm 130 */
																BgL_valuez00_bglt BgL_arg1437z00_1760;

																BgL_arg1437z00_1760 =
																	(((BgL_variablez00_bglt) COBJECT(
																			((BgL_variablez00_bglt)
																				BgL_globalz00_1719)))->BgL_valuez00);
																((((BgL_sfunz00_bglt)
																			COBJECT(((BgL_sfunz00_bglt)
																					BgL_arg1437z00_1760)))->BgL_bodyz00) =
																	((obj_t) BgL_nodez00_18), BUNSPEC);
															}
															{	/* Ast/glo_def.scm 132 */
																BgL_valuez00_bglt BgL_arg1450z00_1761;

																BgL_arg1450z00_1761 =
																	(((BgL_variablez00_bglt) COBJECT(
																			((BgL_variablez00_bglt)
																				BgL_globalz00_1719)))->BgL_valuez00);
																((((BgL_sfunz00_bglt)
																			COBJECT(((BgL_sfunz00_bglt)
																					BgL_arg1450z00_1761)))->BgL_argsz00) =
																	((obj_t) BgL_localsz00_13), BUNSPEC);
															}
															{	/* Ast/glo_def.scm 134 */
																BgL_valuez00_bglt BgL_arg1451z00_1762;

																BgL_arg1451z00_1762 =
																	(((BgL_variablez00_bglt) COBJECT(
																			((BgL_variablez00_bglt)
																				BgL_globalz00_1719)))->BgL_valuez00);
																((((BgL_sfunz00_bglt)
																			COBJECT(((BgL_sfunz00_bglt)
																					BgL_arg1451z00_1762)))->BgL_locz00) =
																	((obj_t) BgL_defzd2loczd2_1720), BUNSPEC);
															}
															BGl_leavezd2functionzd2zztools_errorz00();
														}
													else
														{	/* Ast/glo_def.scm 103 */
															BFALSE;
														}
												}
												return BgL_globalz00_1719;
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* &def-global-sfun! */
	BgL_globalz00_bglt BGl_z62defzd2globalzd2sfunz12z70zzast_glozd2defzd2(obj_t
		BgL_envz00_2975, obj_t BgL_idz00_2976, obj_t BgL_argsz00_2977,
		obj_t BgL_localsz00_2978, obj_t BgL_modulez00_2979, obj_t BgL_classz00_2980,
		obj_t BgL_srczd2expzd2_2981, obj_t BgL_remz00_2982, obj_t BgL_nodez00_2983)
	{
		{	/* Ast/glo_def.scm 80 */
			return
				BGl_defzd2globalzd2sfunz12z12zzast_glozd2defzd2(BgL_idz00_2976,
				BgL_argsz00_2977, BgL_localsz00_2978, BgL_modulez00_2979,
				BgL_classz00_2980, BgL_srczd2expzd2_2981, BgL_remz00_2982,
				BgL_nodez00_2983);
		}

	}



/* check-sfun-definition */
	BgL_globalz00_bglt BGl_checkzd2sfunzd2definitionz00zzast_glozd2defzd2(obj_t
		BgL_oldz00_19, obj_t BgL_typezd2reszd2_20, obj_t BgL_argsz00_21,
		obj_t BgL_localsz00_22, obj_t BgL_classz00_23, obj_t BgL_srczd2expzd2_24)
	{
		{	/* Ast/glo_def.scm 142 */
			{	/* Ast/glo_def.scm 145 */
				BgL_valuez00_bglt BgL_oldzd2valuezd2_1772;

				BgL_oldzd2valuezd2_1772 =
					(((BgL_variablez00_bglt) COBJECT(
							((BgL_variablez00_bglt)
								((BgL_globalz00_bglt) BgL_oldz00_19))))->BgL_valuez00);
				{	/* Ast/glo_def.scm 147 */
					bool_t BgL_test1994z00_3237;

					{	/* Ast/glo_def.scm 147 */
						obj_t BgL_classz00_2372;

						BgL_classz00_2372 = BGl_sfunz00zzast_varz00;
						{	/* Ast/glo_def.scm 147 */
							BgL_objectz00_bglt BgL_arg1801z00_2374;

							{	/* Ast/glo_def.scm 147 */
								obj_t BgL_tmpz00_3238;

								BgL_tmpz00_3238 =
									((obj_t) ((BgL_objectz00_bglt) BgL_oldzd2valuezd2_1772));
								BgL_arg1801z00_2374 = (BgL_objectz00_bglt) (BgL_tmpz00_3238);
							}
							if (BGL_CONDEXPAND_ISA_ARCH64())
								{	/* Ast/glo_def.scm 147 */
									long BgL_idxz00_2380;

									BgL_idxz00_2380 =
										BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_2374);
									BgL_test1994z00_3237 =
										(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
											(BgL_idxz00_2380 + 3L)) == BgL_classz00_2372);
								}
							else
								{	/* Ast/glo_def.scm 147 */
									bool_t BgL_res1904z00_2402;

									{	/* Ast/glo_def.scm 147 */
										obj_t BgL_oclassz00_2388;

										{	/* Ast/glo_def.scm 147 */
											long BgL_arg1808z00_2394;

											{	/* Ast/glo_def.scm 147 */
												long BgL_arg1809z00_2395;

												BgL_arg1809z00_2395 =
													BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_2374);
												BgL_arg1808z00_2394 =
													(BgL_arg1809z00_2395 - OBJECT_TYPE);
											}
											BgL_oclassz00_2388 =
												VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
												BgL_arg1808z00_2394);
										}
										{	/* Ast/glo_def.scm 147 */
											bool_t BgL__ortest_1115z00_2389;

											BgL__ortest_1115z00_2389 =
												(BgL_classz00_2372 == BgL_oclassz00_2388);
											if (BgL__ortest_1115z00_2389)
												{	/* Ast/glo_def.scm 147 */
													BgL_res1904z00_2402 = BgL__ortest_1115z00_2389;
												}
											else
												{	/* Ast/glo_def.scm 147 */
													long BgL_odepthz00_2390;

													BgL_odepthz00_2390 =
														BGL_CLASS_DEPTH(BgL_oclassz00_2388);
													if ((3L < BgL_odepthz00_2390))
														{	/* Ast/glo_def.scm 147 */
															obj_t BgL_arg1797z00_2392;

															BgL_arg1797z00_2392 =
																BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_2388, 3L);
															BgL_res1904z00_2402 =
																(BgL_arg1797z00_2392 == BgL_classz00_2372);
														}
													else
														{	/* Ast/glo_def.scm 147 */
															BgL_res1904z00_2402 = ((bool_t) 0);
														}
												}
										}
									}
									BgL_test1994z00_3237 = BgL_res1904z00_2402;
								}
						}
					}
					if (BgL_test1994z00_3237)
						{	/* Ast/glo_def.scm 147 */
							if (
								((((BgL_sfunz00_bglt) COBJECT(
												((BgL_sfunz00_bglt) BgL_oldzd2valuezd2_1772)))->
										BgL_classz00) == BgL_classz00_23))
								{	/* Ast/glo_def.scm 154 */
									bool_t BgL_test1999z00_3262;

									{	/* Ast/glo_def.scm 154 */
										long BgL_arg1673z00_1849;
										long BgL_arg1675z00_1850;

										BgL_arg1673z00_1849 =
											(((BgL_funz00_bglt) COBJECT(
													((BgL_funz00_bglt)
														((BgL_sfunz00_bglt) BgL_oldzd2valuezd2_1772))))->
											BgL_arityz00);
										BgL_arg1675z00_1850 =
											BGl_globalzd2arityzd2zztools_argsz00(BgL_argsz00_21);
										BgL_test1999z00_3262 =
											(BgL_arg1673z00_1849 == BgL_arg1675z00_1850);
									}
									if (BgL_test1999z00_3262)
										{	/* Ast/glo_def.scm 156 */
											bool_t BgL_test2000z00_3268;

											{	/* Ast/glo_def.scm 156 */
												bool_t BgL_arg1661z00_1846;
												BgL_typez00_bglt BgL_arg1669z00_1847;

												BgL_arg1661z00_1846 =
													(CNST_TABLE_REF(3L) == BgL_classz00_23);
												BgL_arg1669z00_1847 =
													(((BgL_variablez00_bglt) COBJECT(
															((BgL_variablez00_bglt)
																((BgL_globalz00_bglt) BgL_oldz00_19))))->
													BgL_typez00);
												BgL_test2000z00_3268 =
													BGl_compatiblezd2typezf3z21zzast_glozd2defzd2
													(BgL_arg1661z00_1846,
													((BgL_typez00_bglt) BgL_typezd2reszd2_20),
													BgL_arg1669z00_1847);
											}
											if (BgL_test2000z00_3268)
												{	/* Ast/glo_def.scm 156 */
													if (BGl_dssslzd2prototypezf3z21zztools_dssslz00
														(BgL_argsz00_21))
														{	/* Ast/glo_def.scm 162 */
															if (BGl_dssslzd2optionalzd2onlyzd2prototypezf3z21zztools_dssslz00(BgL_argsz00_21))
																{	/* Ast/glo_def.scm 165 */
																	bool_t BgL_test2003z00_3280;

																	{	/* Ast/glo_def.scm 165 */
																		obj_t BgL_arg1550z00_1788;
																		obj_t BgL_arg1554z00_1789;

																		BgL_arg1550z00_1788 =
																			BGl_dssslzd2optionalszd2zztools_dssslz00
																			(BgL_argsz00_21);
																		BgL_arg1554z00_1789 =
																			(((BgL_sfunz00_bglt)
																				COBJECT(((BgL_sfunz00_bglt)
																						BgL_oldzd2valuezd2_1772)))->
																			BgL_optionalsz00);
																		BgL_test2003z00_3280 =
																			BGl_equalzf3zf3zz__r4_equivalence_6_2z00
																			(BgL_arg1550z00_1788,
																			BgL_arg1554z00_1789);
																	}
																	if (BgL_test2003z00_3280)
																		{	/* Ast/glo_def.scm 165 */
																			BgL_oldz00_19;
																		}
																	else
																		{	/* Ast/glo_def.scm 167 */
																			obj_t BgL_list1548z00_1787;

																			BgL_list1548z00_1787 =
																				MAKE_YOUNG_PAIR
																				(BGl_string1923z00zzast_glozd2defzd2,
																				BNIL);
																			((obj_t)
																				BGl_mismatchzd2errorzd2zzast_glozd2defzd2
																				(((BgL_globalz00_bglt) BgL_oldz00_19),
																					BgL_srczd2expzd2_24,
																					BgL_list1548z00_1787));
																		}
																}
															else
																{	/* Ast/glo_def.scm 164 */
																	if (BGl_dssslzd2keyzd2onlyzd2prototypezf3z21zztools_dssslz00(BgL_argsz00_21))
																		{	/* Ast/glo_def.scm 171 */
																			bool_t BgL_test2005z00_3291;

																			{	/* Ast/glo_def.scm 171 */
																				obj_t BgL_arg1575z00_1795;
																				obj_t BgL_arg1576z00_1796;

																				BgL_arg1575z00_1795 =
																					BGl_dssslzd2keyszd2zztools_dssslz00
																					(BgL_argsz00_21);
																				BgL_arg1576z00_1796 =
																					(((BgL_sfunz00_bglt)
																						COBJECT(((BgL_sfunz00_bglt)
																								BgL_oldzd2valuezd2_1772)))->
																					BgL_keysz00);
																				BgL_test2005z00_3291 =
																					BGl_equalzf3zf3zz__r4_equivalence_6_2z00
																					(BgL_arg1575z00_1795,
																					BgL_arg1576z00_1796);
																			}
																			if (BgL_test2005z00_3291)
																				{	/* Ast/glo_def.scm 171 */
																					BgL_oldz00_19;
																				}
																			else
																				{	/* Ast/glo_def.scm 173 */
																					obj_t BgL_list1565z00_1794;

																					BgL_list1565z00_1794 =
																						MAKE_YOUNG_PAIR
																						(BGl_string1924z00zzast_glozd2defzd2,
																						BNIL);
																					((obj_t)
																						BGl_mismatchzd2errorzd2zzast_glozd2defzd2
																						(((BgL_globalz00_bglt)
																								BgL_oldz00_19),
																							BgL_srczd2expzd2_24,
																							BgL_list1565z00_1794));
																				}
																		}
																	else
																		{	/* Ast/glo_def.scm 176 */
																			bool_t BgL_test2006z00_3300;

																			{	/* Ast/glo_def.scm 176 */
																				obj_t BgL_arg1586z00_1801;
																				obj_t BgL_arg1590z00_1802;

																				BgL_arg1586z00_1801 =
																					(((BgL_sfunz00_bglt) COBJECT(
																							((BgL_sfunz00_bglt)
																								BgL_oldzd2valuezd2_1772)))->
																					BgL_dssslzd2keywordszd2);
																				BgL_arg1590z00_1802 =
																					BGl_dssslzd2formalszd2zztools_dssslz00
																					(BgL_argsz00_21);
																				BgL_test2006z00_3300 =
																					BGl_equalzf3zf3zz__r4_equivalence_6_2z00
																					(BgL_arg1586z00_1801,
																					BgL_arg1590z00_1802);
																			}
																			if (BgL_test2006z00_3300)
																				{	/* Ast/glo_def.scm 176 */
																					BFALSE;
																				}
																			else
																				{	/* Ast/glo_def.scm 178 */
																					obj_t BgL_list1581z00_1800;

																					BgL_list1581z00_1800 =
																						MAKE_YOUNG_PAIR
																						(BGl_string1925z00zzast_glozd2defzd2,
																						BNIL);
																					((obj_t)
																						BGl_mismatchzd2errorzd2zzast_glozd2defzd2
																						(((BgL_globalz00_bglt)
																								BgL_oldz00_19),
																							BgL_srczd2expzd2_24,
																							BgL_list1581z00_1800));
																				}
																		}
																}
														}
													else
														{	/* Ast/glo_def.scm 180 */
															obj_t BgL_g1110z00_1803;

															{	/* Ast/glo_def.scm 181 */
																obj_t BgL_l1312z00_1829;

																BgL_l1312z00_1829 =
																	(((BgL_sfunz00_bglt) COBJECT(
																			((BgL_sfunz00_bglt)
																				BgL_oldzd2valuezd2_1772)))->
																	BgL_argsz00);
																if (NULLP(BgL_l1312z00_1829))
																	{	/* Ast/glo_def.scm 181 */
																		BgL_g1110z00_1803 = BNIL;
																	}
																else
																	{	/* Ast/glo_def.scm 181 */
																		obj_t BgL_head1314z00_1831;

																		BgL_head1314z00_1831 =
																			MAKE_YOUNG_PAIR(BNIL, BNIL);
																		{
																			obj_t BgL_l1312z00_1833;
																			obj_t BgL_tail1315z00_1834;

																			BgL_l1312z00_1833 = BgL_l1312z00_1829;
																			BgL_tail1315z00_1834 =
																				BgL_head1314z00_1831;
																		BgL_zc3z04anonymousza31632ze3z87_1835:
																			if (NULLP(BgL_l1312z00_1833))
																				{	/* Ast/glo_def.scm 181 */
																					BgL_g1110z00_1803 =
																						CDR(BgL_head1314z00_1831);
																				}
																			else
																				{	/* Ast/glo_def.scm 181 */
																					obj_t BgL_newtail1316z00_1837;

																					{	/* Ast/glo_def.scm 181 */
																						obj_t BgL_arg1649z00_1839;

																						{	/* Ast/glo_def.scm 181 */
																							obj_t BgL_az00_1840;

																							BgL_az00_1840 =
																								CAR(
																								((obj_t) BgL_l1312z00_1833));
																							{	/* Ast/glo_def.scm 183 */
																								bool_t BgL_test2009z00_3319;

																								{	/* Ast/glo_def.scm 183 */
																									obj_t BgL_classz00_2414;

																									BgL_classz00_2414 =
																										BGl_localz00zzast_varz00;
																									if (BGL_OBJECTP
																										(BgL_az00_1840))
																										{	/* Ast/glo_def.scm 183 */
																											BgL_objectz00_bglt
																												BgL_arg1801z00_2416;
																											BgL_arg1801z00_2416 =
																												(BgL_objectz00_bglt)
																												(BgL_az00_1840);
																											if (BGL_CONDEXPAND_ISA_ARCH64())
																												{	/* Ast/glo_def.scm 183 */
																													long BgL_idxz00_2422;

																													BgL_idxz00_2422 =
																														BGL_OBJECT_INHERITANCE_NUM
																														(BgL_arg1801z00_2416);
																													BgL_test2009z00_3319 =
																														(VECTOR_REF
																														(BGl_za2inheritancesza2z00zz__objectz00,
																															(BgL_idxz00_2422 +
																																2L)) ==
																														BgL_classz00_2414);
																												}
																											else
																												{	/* Ast/glo_def.scm 183 */
																													bool_t
																														BgL_res1905z00_2444;
																													{	/* Ast/glo_def.scm 183 */
																														obj_t
																															BgL_oclassz00_2430;
																														{	/* Ast/glo_def.scm 183 */
																															long
																																BgL_arg1808z00_2436;
																															{	/* Ast/glo_def.scm 183 */
																																long
																																	BgL_arg1809z00_2437;
																																BgL_arg1809z00_2437
																																	=
																																	BGL_OBJECT_CLASS_NUM
																																	(BgL_arg1801z00_2416);
																																BgL_arg1808z00_2436
																																	=
																																	(BgL_arg1809z00_2437
																																	-
																																	OBJECT_TYPE);
																															}
																															BgL_oclassz00_2430
																																=
																																VECTOR_REF
																																(BGl_za2classesza2z00zz__objectz00,
																																BgL_arg1808z00_2436);
																														}
																														{	/* Ast/glo_def.scm 183 */
																															bool_t
																																BgL__ortest_1115z00_2431;
																															BgL__ortest_1115z00_2431
																																=
																																(BgL_classz00_2414
																																==
																																BgL_oclassz00_2430);
																															if (BgL__ortest_1115z00_2431)
																																{	/* Ast/glo_def.scm 183 */
																																	BgL_res1905z00_2444
																																		=
																																		BgL__ortest_1115z00_2431;
																																}
																															else
																																{	/* Ast/glo_def.scm 183 */
																																	long
																																		BgL_odepthz00_2432;
																																	BgL_odepthz00_2432
																																		=
																																		BGL_CLASS_DEPTH
																																		(BgL_oclassz00_2430);
																																	if ((2L <
																																			BgL_odepthz00_2432))
																																		{	/* Ast/glo_def.scm 183 */
																																			obj_t
																																				BgL_arg1797z00_2434;
																																			BgL_arg1797z00_2434
																																				=
																																				BGL_CLASS_ANCESTORS_REF
																																				(BgL_oclassz00_2430,
																																				2L);
																																			BgL_res1905z00_2444
																																				=
																																				(BgL_arg1797z00_2434
																																				==
																																				BgL_classz00_2414);
																																		}
																																	else
																																		{	/* Ast/glo_def.scm 183 */
																																			BgL_res1905z00_2444
																																				=
																																				(
																																				(bool_t)
																																				0);
																																		}
																																}
																														}
																													}
																													BgL_test2009z00_3319 =
																														BgL_res1905z00_2444;
																												}
																										}
																									else
																										{	/* Ast/glo_def.scm 183 */
																											BgL_test2009z00_3319 =
																												((bool_t) 0);
																										}
																								}
																								if (BgL_test2009z00_3319)
																									{	/* Ast/glo_def.scm 183 */
																										BgL_arg1649z00_1839 =
																											((obj_t)
																											(((BgL_variablez00_bglt)
																													COBJECT((
																															(BgL_variablez00_bglt)
																															((BgL_localz00_bglt) BgL_az00_1840))))->BgL_typez00));
																									}
																								else
																									{	/* Ast/glo_def.scm 185 */
																										bool_t BgL_test2014z00_3343;

																										{	/* Ast/glo_def.scm 185 */
																											obj_t BgL_classz00_2446;

																											BgL_classz00_2446 =
																												BGl_typez00zztype_typez00;
																											if (BGL_OBJECTP
																												(BgL_az00_1840))
																												{	/* Ast/glo_def.scm 185 */
																													BgL_objectz00_bglt
																														BgL_arg1801z00_2448;
																													BgL_arg1801z00_2448 =
																														(BgL_objectz00_bglt)
																														(BgL_az00_1840);
																													if (BGL_CONDEXPAND_ISA_ARCH64())
																														{	/* Ast/glo_def.scm 185 */
																															long
																																BgL_idxz00_2454;
																															BgL_idxz00_2454 =
																																BGL_OBJECT_INHERITANCE_NUM
																																(BgL_arg1801z00_2448);
																															BgL_test2014z00_3343
																																=
																																(VECTOR_REF
																																(BGl_za2inheritancesza2z00zz__objectz00,
																																	(BgL_idxz00_2454
																																		+ 1L)) ==
																																BgL_classz00_2446);
																														}
																													else
																														{	/* Ast/glo_def.scm 185 */
																															bool_t
																																BgL_res1906z00_2476;
																															{	/* Ast/glo_def.scm 185 */
																																obj_t
																																	BgL_oclassz00_2462;
																																{	/* Ast/glo_def.scm 185 */
																																	long
																																		BgL_arg1808z00_2468;
																																	{	/* Ast/glo_def.scm 185 */
																																		long
																																			BgL_arg1809z00_2469;
																																		BgL_arg1809z00_2469
																																			=
																																			BGL_OBJECT_CLASS_NUM
																																			(BgL_arg1801z00_2448);
																																		BgL_arg1808z00_2468
																																			=
																																			(BgL_arg1809z00_2469
																																			-
																																			OBJECT_TYPE);
																																	}
																																	BgL_oclassz00_2462
																																		=
																																		VECTOR_REF
																																		(BGl_za2classesza2z00zz__objectz00,
																																		BgL_arg1808z00_2468);
																																}
																																{	/* Ast/glo_def.scm 185 */
																																	bool_t
																																		BgL__ortest_1115z00_2463;
																																	BgL__ortest_1115z00_2463
																																		=
																																		(BgL_classz00_2446
																																		==
																																		BgL_oclassz00_2462);
																																	if (BgL__ortest_1115z00_2463)
																																		{	/* Ast/glo_def.scm 185 */
																																			BgL_res1906z00_2476
																																				=
																																				BgL__ortest_1115z00_2463;
																																		}
																																	else
																																		{	/* Ast/glo_def.scm 185 */
																																			long
																																				BgL_odepthz00_2464;
																																			BgL_odepthz00_2464
																																				=
																																				BGL_CLASS_DEPTH
																																				(BgL_oclassz00_2462);
																																			if ((1L <
																																					BgL_odepthz00_2464))
																																				{	/* Ast/glo_def.scm 185 */
																																					obj_t
																																						BgL_arg1797z00_2466;
																																					BgL_arg1797z00_2466
																																						=
																																						BGL_CLASS_ANCESTORS_REF
																																						(BgL_oclassz00_2462,
																																						1L);
																																					BgL_res1906z00_2476
																																						=
																																						(BgL_arg1797z00_2466
																																						==
																																						BgL_classz00_2446);
																																				}
																																			else
																																				{	/* Ast/glo_def.scm 185 */
																																					BgL_res1906z00_2476
																																						=
																																						(
																																						(bool_t)
																																						0);
																																				}
																																		}
																																}
																															}
																															BgL_test2014z00_3343
																																=
																																BgL_res1906z00_2476;
																														}
																												}
																											else
																												{	/* Ast/glo_def.scm 185 */
																													BgL_test2014z00_3343 =
																														((bool_t) 0);
																												}
																										}
																										if (BgL_test2014z00_3343)
																											{	/* Ast/glo_def.scm 185 */
																												BgL_arg1649z00_1839 =
																													BgL_az00_1840;
																											}
																										else
																											{	/* Ast/glo_def.scm 185 */
																												BgL_arg1649z00_1839 =
																													BGl_internalzd2errorzd2zztools_errorz00
																													(BGl_string1921z00zzast_glozd2defzd2,
																													BGl_string1922z00zzast_glozd2defzd2,
																													BGl_shapez00zztools_shapez00
																													(BgL_az00_1840));
																											}
																									}
																							}
																						}
																						BgL_newtail1316z00_1837 =
																							MAKE_YOUNG_PAIR
																							(BgL_arg1649z00_1839, BNIL);
																					}
																					SET_CDR(BgL_tail1315z00_1834,
																						BgL_newtail1316z00_1837);
																					{	/* Ast/glo_def.scm 181 */
																						obj_t BgL_arg1639z00_1838;

																						BgL_arg1639z00_1838 =
																							CDR(((obj_t) BgL_l1312z00_1833));
																						{
																							obj_t BgL_tail1315z00_3370;
																							obj_t BgL_l1312z00_3369;

																							BgL_l1312z00_3369 =
																								BgL_arg1639z00_1838;
																							BgL_tail1315z00_3370 =
																								BgL_newtail1316z00_1837;
																							BgL_tail1315z00_1834 =
																								BgL_tail1315z00_3370;
																							BgL_l1312z00_1833 =
																								BgL_l1312z00_3369;
																							goto
																								BgL_zc3z04anonymousza31632ze3z87_1835;
																						}
																					}
																				}
																		}
																	}
															}
															{
																obj_t BgL_localsz00_1805;
																obj_t BgL_typesz00_1806;

																BgL_localsz00_1805 = BgL_localsz00_22;
																BgL_typesz00_1806 = BgL_g1110z00_1803;
															BgL_zc3z04anonymousza31591ze3z87_1807:
																if (NULLP(BgL_localsz00_1805))
																	{	/* Ast/glo_def.scm 193 */
																		if (NULLP(BgL_typesz00_1806))
																			{	/* Ast/glo_def.scm 196 */
																				((((BgL_globalz00_bglt) COBJECT(
																								((BgL_globalz00_bglt)
																									BgL_oldz00_19)))->
																						BgL_srcz00) =
																					((obj_t) BgL_srczd2expzd2_24),
																					BUNSPEC);
																			}
																		else
																			{	/* Ast/glo_def.scm 198 */
																				obj_t BgL_list1596z00_1810;

																				BgL_list1596z00_1810 =
																					MAKE_YOUNG_PAIR
																					(BGl_string1926z00zzast_glozd2defzd2,
																					BNIL);
																				((obj_t)
																					BGl_mismatchzd2errorzd2zzast_glozd2defzd2
																					(((BgL_globalz00_bglt) BgL_oldz00_19),
																						BgL_srczd2expzd2_24,
																						BgL_list1596z00_1810));
																			}
																	}
																else
																	{	/* Ast/glo_def.scm 199 */
																		bool_t BgL_test2021z00_3381;

																		if (NULLP(BgL_typesz00_1806))
																			{	/* Ast/glo_def.scm 199 */
																				BgL_test2021z00_3381 = ((bool_t) 1);
																			}
																		else
																			{	/* Ast/glo_def.scm 200 */
																				bool_t BgL_test2023z00_3384;

																				{	/* Ast/glo_def.scm 201 */
																					BgL_typez00_bglt BgL_arg1628z00_1825;
																					obj_t BgL_arg1629z00_1826;

																					BgL_arg1628z00_1825 =
																						(((BgL_variablez00_bglt) COBJECT(
																								((BgL_variablez00_bglt)
																									((BgL_localz00_bglt)
																										CAR(
																											((obj_t)
																												BgL_localsz00_1805))))))->
																						BgL_typez00);
																					BgL_arg1629z00_1826 =
																						CAR(((obj_t) BgL_typesz00_1806));
																					BgL_test2023z00_3384 =
																						BGl_compatiblezd2typezf3z21zzast_glozd2defzd2
																						(((bool_t) 0), BgL_arg1628z00_1825,
																						((BgL_typez00_bglt)
																							BgL_arg1629z00_1826));
																				}
																				if (BgL_test2023z00_3384)
																					{	/* Ast/glo_def.scm 200 */
																						BgL_test2021z00_3381 = ((bool_t) 0);
																					}
																				else
																					{	/* Ast/glo_def.scm 200 */
																						BgL_test2021z00_3381 = ((bool_t) 1);
																					}
																			}
																		if (BgL_test2021z00_3381)
																			{	/* Ast/glo_def.scm 203 */
																				obj_t BgL_list1618z00_1820;

																				BgL_list1618z00_1820 =
																					MAKE_YOUNG_PAIR
																					(BGl_string1927z00zzast_glozd2defzd2,
																					BNIL);
																				((obj_t)
																					BGl_mismatchzd2errorzd2zzast_glozd2defzd2
																					(((BgL_globalz00_bglt) BgL_oldz00_19),
																						BgL_srczd2expzd2_24,
																						BgL_list1618z00_1820));
																			}
																		else
																			{	/* Ast/glo_def.scm 205 */
																				obj_t BgL_arg1620z00_1821;
																				obj_t BgL_arg1621z00_1822;

																				BgL_arg1620z00_1821 =
																					CDR(((obj_t) BgL_localsz00_1805));
																				BgL_arg1621z00_1822 =
																					CDR(((obj_t) BgL_typesz00_1806));
																				{
																					obj_t BgL_typesz00_3403;
																					obj_t BgL_localsz00_3402;

																					BgL_localsz00_3402 =
																						BgL_arg1620z00_1821;
																					BgL_typesz00_3403 =
																						BgL_arg1621z00_1822;
																					BgL_typesz00_1806 = BgL_typesz00_3403;
																					BgL_localsz00_1805 =
																						BgL_localsz00_3402;
																					goto
																						BgL_zc3z04anonymousza31591ze3z87_1807;
																				}
																			}
																	}
															}
														}
												}
											else
												{	/* Ast/glo_def.scm 159 */
													obj_t BgL_list1659z00_1845;

													BgL_list1659z00_1845 =
														MAKE_YOUNG_PAIR(BGl_string1928z00zzast_glozd2defzd2,
														BNIL);
													((obj_t)
														BGl_mismatchzd2errorzd2zzast_glozd2defzd2((
																(BgL_globalz00_bglt) BgL_oldz00_19),
															BgL_srczd2expzd2_24, BgL_list1659z00_1845));
												}
										}
									else
										{	/* Ast/glo_def.scm 155 */
											obj_t BgL_list1670z00_1848;

											BgL_list1670z00_1848 =
												MAKE_YOUNG_PAIR(BGl_string1926z00zzast_glozd2defzd2,
												BNIL);
											((obj_t)
												BGl_mismatchzd2errorzd2zzast_glozd2defzd2((
														(BgL_globalz00_bglt) BgL_oldz00_19),
													BgL_srczd2expzd2_24, BgL_list1670z00_1848));
										}
								}
							else
								{	/* Ast/glo_def.scm 153 */
									obj_t BgL_arg1678z00_1851;

									{	/* Ast/glo_def.scm 153 */
										obj_t BgL_arg1681z00_1853;

										BgL_arg1681z00_1853 =
											(((BgL_sfunz00_bglt) COBJECT(
													((BgL_sfunz00_bglt) BgL_oldzd2valuezd2_1772)))->
											BgL_classz00);
										{	/* Ast/glo_def.scm 152 */
											obj_t BgL_list1682z00_1854;

											{	/* Ast/glo_def.scm 152 */
												obj_t BgL_arg1684z00_1855;

												BgL_arg1684z00_1855 =
													MAKE_YOUNG_PAIR(BgL_classz00_23, BNIL);
												BgL_list1682z00_1854 =
													MAKE_YOUNG_PAIR(BgL_arg1681z00_1853,
													BgL_arg1684z00_1855);
											}
											BgL_arg1678z00_1851 =
												BGl_formatz00zz__r4_output_6_10_3z00
												(BGl_string1929z00zzast_glozd2defzd2,
												BgL_list1682z00_1854);
										}
									}
									{	/* Ast/glo_def.scm 151 */
										obj_t BgL_list1679z00_1852;

										BgL_list1679z00_1852 =
											MAKE_YOUNG_PAIR(BgL_arg1678z00_1851, BNIL);
										((obj_t)
											BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
												((BgL_globalz00_bglt) BgL_oldz00_19),
												BgL_srczd2expzd2_24, BgL_list1679z00_1852));
									}
								}
						}
					else
						{	/* Ast/glo_def.scm 148 */
							obj_t BgL_list1687z00_1857;

							BgL_list1687z00_1857 =
								MAKE_YOUNG_PAIR(BGl_string1930z00zzast_glozd2defzd2, BNIL);
							((obj_t)
								BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
									((BgL_globalz00_bglt) BgL_oldz00_19), BgL_srczd2expzd2_24,
									BgL_list1687z00_1857));
						}
				}
				return ((BgL_globalz00_bglt) BgL_oldz00_19);
			}
		}

	}



/* def-global-scnst! */
	BGL_EXPORTED_DEF BgL_globalz00_bglt
		BGl_defzd2globalzd2scnstz12z12zzast_glozd2defzd2(obj_t BgL_idz00_25,
		obj_t BgL_modulez00_26, obj_t BgL_nodez00_27, obj_t BgL_classz00_28,
		obj_t BgL_locz00_29)
	{
		{	/* Ast/glo_def.scm 211 */
			BGl_enterzd2functionzd2zztools_errorz00(BgL_idz00_25);
			{	/* Ast/glo_def.scm 213 */
				obj_t BgL_idzd2typezd2_2486;

				BgL_idzd2typezd2_2486 =
					BGl_parsezd2idzd2zzast_identz00(BgL_idz00_25, BgL_locz00_29);
				{	/* Ast/glo_def.scm 213 */
					obj_t BgL_idzd2idzd2_2487;

					BgL_idzd2idzd2_2487 = CAR(BgL_idzd2typezd2_2486);
					{	/* Ast/glo_def.scm 214 */
						obj_t BgL_oldzd2globalzd2_2488;

						BgL_oldzd2globalzd2_2488 =
							BGl_findzd2globalzf2modulez20zzast_envz00(BgL_idzd2idzd2_2487,
							BgL_modulez00_26);
						{	/* Ast/glo_def.scm 215 */
							BgL_globalz00_bglt BgL_globalz00_2489;

							BgL_globalz00_2489 =
								BGl_declarezd2globalzd2scnstz12z12zzast_glozd2declzd2
								(BgL_idz00_25, BFALSE, BgL_modulez00_26, CNST_TABLE_REF(2L),
								BgL_nodez00_27, BgL_classz00_28, BgL_locz00_29);
							{	/* Ast/glo_def.scm 216 */

								BGl_removezd2varzd2fromz12z12zzast_removez00(CNST_TABLE_REF(4L),
									((BgL_variablez00_bglt) BgL_globalz00_2489));
								BGl_leavezd2functionzd2zztools_errorz00();
								return BgL_globalz00_2489;
							}
						}
					}
				}
			}
		}

	}



/* &def-global-scnst! */
	BgL_globalz00_bglt BGl_z62defzd2globalzd2scnstz12z70zzast_glozd2defzd2(obj_t
		BgL_envz00_2984, obj_t BgL_idz00_2985, obj_t BgL_modulez00_2986,
		obj_t BgL_nodez00_2987, obj_t BgL_classz00_2988, obj_t BgL_locz00_2989)
	{
		{	/* Ast/glo_def.scm 211 */
			return
				BGl_defzd2globalzd2scnstz12z12zzast_glozd2defzd2(BgL_idz00_2985,
				BgL_modulez00_2986, BgL_nodez00_2987, BgL_classz00_2988,
				BgL_locz00_2989);
		}

	}



/* def-global-svar! */
	BGL_EXPORTED_DEF BgL_globalz00_bglt
		BGl_defzd2globalzd2svarz12z12zzast_glozd2defzd2(obj_t BgL_idz00_30,
		obj_t BgL_modulez00_31, obj_t BgL_srczd2expzd2_32, obj_t BgL_remz00_33)
	{
		{	/* Ast/glo_def.scm 227 */
			{	/* Ast/glo_def.scm 228 */
				obj_t BgL_locz00_1862;

				BgL_locz00_1862 =
					BGl_findzd2locationzd2zztools_locationz00(BgL_srczd2expzd2_32);
				{	/* Ast/glo_def.scm 228 */
					obj_t BgL_idzd2typezd2_1863;

					BgL_idzd2typezd2_1863 =
						BGl_parsezd2idzd2zzast_identz00(BgL_idz00_30, BgL_locz00_1862);
					{	/* Ast/glo_def.scm 229 */
						obj_t BgL_idzd2idzd2_1864;

						BgL_idzd2idzd2_1864 = CAR(BgL_idzd2typezd2_1863);
						{	/* Ast/glo_def.scm 230 */
							obj_t BgL_oldzd2globalzd2_1865;

							BgL_oldzd2globalzd2_1865 =
								BGl_findzd2globalzf2modulez20zzast_envz00(BgL_idzd2idzd2_1864,
								BgL_modulez00_31);
							{	/* Ast/glo_def.scm 231 */
								obj_t BgL_importz00_1866;

								{	/* Ast/glo_def.scm 232 */
									bool_t BgL_test2024z00_3441;

									if (
										((long) CINT(BGl_za2bdbzd2debugza2zd2zzengine_paramz00) >=
											3L))
										{	/* Ast/glo_def.scm 233 */
											obj_t BgL_arg1714z00_1886;

											{	/* Ast/glo_def.scm 233 */
												obj_t BgL_arg1715z00_1887;

												BgL_arg1715z00_1887 =
													BGl_thezd2backendzd2zzbackend_backendz00();
												BgL_arg1714z00_1886 =
													(((BgL_backendz00_bglt) COBJECT(
															((BgL_backendz00_bglt) BgL_arg1715z00_1887)))->
													BgL_debugzd2supportzd2);
											}
											BgL_test2024z00_3441 =
												CBOOL(BGl_memqz00zz__r4_pairs_and_lists_6_3z00
												(CNST_TABLE_REF(0L), BgL_arg1714z00_1886));
										}
									else
										{	/* Ast/glo_def.scm 232 */
											BgL_test2024z00_3441 = ((bool_t) 0);
										}
									if (BgL_test2024z00_3441)
										{	/* Ast/glo_def.scm 232 */
											BgL_importz00_1866 = CNST_TABLE_REF(1L);
										}
									else
										{	/* Ast/glo_def.scm 232 */
											BgL_importz00_1866 = CNST_TABLE_REF(2L);
										}
								}
								{	/* Ast/glo_def.scm 232 */
									obj_t BgL_typez00_1867;

									{	/* Ast/glo_def.scm 236 */
										obj_t BgL_typez00_1875;

										BgL_typez00_1875 = CDR(BgL_idzd2typezd2_1863);
										if (
											((((BgL_typez00_bglt) COBJECT(
															((BgL_typez00_bglt) BgL_typez00_1875)))->
													BgL_classz00) == CNST_TABLE_REF(5L)))
											{	/* Ast/glo_def.scm 239 */
												BgL_typez00_1867 = BgL_typez00_1875;
											}
										else
											{	/* Ast/glo_def.scm 239 */
												BgL_typez00_1867 =
													BGl_userzd2errorzd2zztools_errorz00
													(BgL_idzd2idzd2_1864,
													BGl_string1931z00zzast_glozd2defzd2,
													BGl_shapez00zztools_shapez00(BgL_typez00_1875), BNIL);
											}
									}
									{	/* Ast/glo_def.scm 236 */
										BgL_globalz00_bglt BgL_globalz00_1868;

										{	/* Ast/glo_def.scm 245 */
											bool_t BgL_test2027z00_3461;

											{	/* Ast/glo_def.scm 245 */
												obj_t BgL_classz00_2497;

												BgL_classz00_2497 = BGl_globalz00zzast_varz00;
												if (BGL_OBJECTP(BgL_oldzd2globalzd2_1865))
													{	/* Ast/glo_def.scm 245 */
														BgL_objectz00_bglt BgL_arg1801z00_2499;

														BgL_arg1801z00_2499 =
															(BgL_objectz00_bglt) (BgL_oldzd2globalzd2_1865);
														if (BGL_CONDEXPAND_ISA_ARCH64())
															{	/* Ast/glo_def.scm 245 */
																long BgL_idxz00_2505;

																BgL_idxz00_2505 =
																	BGL_OBJECT_INHERITANCE_NUM
																	(BgL_arg1801z00_2499);
																BgL_test2027z00_3461 =
																	(VECTOR_REF
																	(BGl_za2inheritancesza2z00zz__objectz00,
																		(BgL_idxz00_2505 + 2L)) ==
																	BgL_classz00_2497);
															}
														else
															{	/* Ast/glo_def.scm 245 */
																bool_t BgL_res1907z00_2527;

																{	/* Ast/glo_def.scm 245 */
																	obj_t BgL_oclassz00_2513;

																	{	/* Ast/glo_def.scm 245 */
																		long BgL_arg1808z00_2519;

																		{	/* Ast/glo_def.scm 245 */
																			long BgL_arg1809z00_2520;

																			BgL_arg1809z00_2520 =
																				BGL_OBJECT_CLASS_NUM
																				(BgL_arg1801z00_2499);
																			BgL_arg1808z00_2519 =
																				(BgL_arg1809z00_2520 - OBJECT_TYPE);
																		}
																		BgL_oclassz00_2513 =
																			VECTOR_REF
																			(BGl_za2classesza2z00zz__objectz00,
																			BgL_arg1808z00_2519);
																	}
																	{	/* Ast/glo_def.scm 245 */
																		bool_t BgL__ortest_1115z00_2514;

																		BgL__ortest_1115z00_2514 =
																			(BgL_classz00_2497 == BgL_oclassz00_2513);
																		if (BgL__ortest_1115z00_2514)
																			{	/* Ast/glo_def.scm 245 */
																				BgL_res1907z00_2527 =
																					BgL__ortest_1115z00_2514;
																			}
																		else
																			{	/* Ast/glo_def.scm 245 */
																				long BgL_odepthz00_2515;

																				BgL_odepthz00_2515 =
																					BGL_CLASS_DEPTH(BgL_oclassz00_2513);
																				if ((2L < BgL_odepthz00_2515))
																					{	/* Ast/glo_def.scm 245 */
																						obj_t BgL_arg1797z00_2517;

																						BgL_arg1797z00_2517 =
																							BGL_CLASS_ANCESTORS_REF
																							(BgL_oclassz00_2513, 2L);
																						BgL_res1907z00_2527 =
																							(BgL_arg1797z00_2517 ==
																							BgL_classz00_2497);
																					}
																				else
																					{	/* Ast/glo_def.scm 245 */
																						BgL_res1907z00_2527 = ((bool_t) 0);
																					}
																			}
																	}
																}
																BgL_test2027z00_3461 = BgL_res1907z00_2527;
															}
													}
												else
													{	/* Ast/glo_def.scm 245 */
														BgL_test2027z00_3461 = ((bool_t) 0);
													}
											}
											if (BgL_test2027z00_3461)
												{	/* Ast/glo_def.scm 245 */
													BgL_globalz00_1868 =
														BGl_checkzd2svarzd2definitionz00zzast_glozd2defzd2
														(BgL_oldzd2globalzd2_1865, BgL_typez00_1867,
														BgL_srczd2expzd2_32);
												}
											else
												{	/* Ast/glo_def.scm 245 */
													BgL_globalz00_1868 =
														BGl_declarezd2globalzd2svarz12z12zzast_glozd2declzd2
														(BgL_idz00_30, BFALSE, BgL_modulez00_31,
														BgL_importz00_1866, BgL_srczd2expzd2_32, BFALSE);
												}
										}
										{	/* Ast/glo_def.scm 244 */
											obj_t BgL_defzd2loczd2_1869;

											BgL_defzd2loczd2_1869 =
												BGl_findzd2locationzd2zztools_locationz00
												(BgL_srczd2expzd2_32);
											{	/* Ast/glo_def.scm 250 */

												{	/* Ast/glo_def.scm 300 */
													BgL_typez00_bglt BgL_oldzd2typezd2_2530;

													BgL_oldzd2typezd2_2530 =
														(((BgL_variablez00_bglt) COBJECT(
																((BgL_variablez00_bglt) BgL_globalz00_1868)))->
														BgL_typez00);
													if ((((obj_t) BgL_oldzd2typezd2_2530) ==
															BGl_za2_za2z00zztype_cachez00))
														{	/* Ast/glo_def.scm 301 */
															((((BgL_variablez00_bglt) COBJECT(
																			((BgL_variablez00_bglt)
																				BgL_globalz00_1868)))->BgL_typez00) =
																((BgL_typez00_bglt) ((BgL_typez00_bglt)
																		BgL_typez00_1867)), BUNSPEC);
														}
													else
														{	/* Ast/glo_def.scm 301 */
															BFALSE;
														}
												}
												{	/* Ast/glo_def.scm 254 */
													bool_t BgL_test2033z00_3492;

													{	/* Ast/glo_def.scm 254 */
														BgL_valuez00_bglt BgL_arg1695z00_1873;

														BgL_arg1695z00_1873 =
															(((BgL_variablez00_bglt) COBJECT(
																	((BgL_variablez00_bglt)
																		BgL_globalz00_1868)))->BgL_valuez00);
														{	/* Ast/glo_def.scm 254 */
															obj_t BgL_classz00_2535;

															BgL_classz00_2535 = BGl_svarz00zzast_varz00;
															{	/* Ast/glo_def.scm 254 */
																BgL_objectz00_bglt BgL_arg1801z00_2537;

																{	/* Ast/glo_def.scm 254 */
																	obj_t BgL_tmpz00_3495;

																	BgL_tmpz00_3495 =
																		((obj_t)
																		((BgL_objectz00_bglt) BgL_arg1695z00_1873));
																	BgL_arg1801z00_2537 =
																		(BgL_objectz00_bglt) (BgL_tmpz00_3495);
																}
																if (BGL_CONDEXPAND_ISA_ARCH64())
																	{	/* Ast/glo_def.scm 254 */
																		long BgL_idxz00_2543;

																		BgL_idxz00_2543 =
																			BGL_OBJECT_INHERITANCE_NUM
																			(BgL_arg1801z00_2537);
																		BgL_test2033z00_3492 =
																			(VECTOR_REF
																			(BGl_za2inheritancesza2z00zz__objectz00,
																				(BgL_idxz00_2543 + 2L)) ==
																			BgL_classz00_2535);
																	}
																else
																	{	/* Ast/glo_def.scm 254 */
																		bool_t BgL_res1908z00_2565;

																		{	/* Ast/glo_def.scm 254 */
																			obj_t BgL_oclassz00_2551;

																			{	/* Ast/glo_def.scm 254 */
																				long BgL_arg1808z00_2557;

																				{	/* Ast/glo_def.scm 254 */
																					long BgL_arg1809z00_2558;

																					BgL_arg1809z00_2558 =
																						BGL_OBJECT_CLASS_NUM
																						(BgL_arg1801z00_2537);
																					BgL_arg1808z00_2557 =
																						(BgL_arg1809z00_2558 - OBJECT_TYPE);
																				}
																				BgL_oclassz00_2551 =
																					VECTOR_REF
																					(BGl_za2classesza2z00zz__objectz00,
																					BgL_arg1808z00_2557);
																			}
																			{	/* Ast/glo_def.scm 254 */
																				bool_t BgL__ortest_1115z00_2552;

																				BgL__ortest_1115z00_2552 =
																					(BgL_classz00_2535 ==
																					BgL_oclassz00_2551);
																				if (BgL__ortest_1115z00_2552)
																					{	/* Ast/glo_def.scm 254 */
																						BgL_res1908z00_2565 =
																							BgL__ortest_1115z00_2552;
																					}
																				else
																					{	/* Ast/glo_def.scm 254 */
																						long BgL_odepthz00_2553;

																						BgL_odepthz00_2553 =
																							BGL_CLASS_DEPTH
																							(BgL_oclassz00_2551);
																						if ((2L < BgL_odepthz00_2553))
																							{	/* Ast/glo_def.scm 254 */
																								obj_t BgL_arg1797z00_2555;

																								BgL_arg1797z00_2555 =
																									BGL_CLASS_ANCESTORS_REF
																									(BgL_oclassz00_2551, 2L);
																								BgL_res1908z00_2565 =
																									(BgL_arg1797z00_2555 ==
																									BgL_classz00_2535);
																							}
																						else
																							{	/* Ast/glo_def.scm 254 */
																								BgL_res1908z00_2565 =
																									((bool_t) 0);
																							}
																					}
																			}
																		}
																		BgL_test2033z00_3492 = BgL_res1908z00_2565;
																	}
															}
														}
													}
													if (BgL_test2033z00_3492)
														{	/* Ast/glo_def.scm 256 */
															BgL_valuez00_bglt BgL_arg1693z00_1872;

															BgL_arg1693z00_1872 =
																(((BgL_variablez00_bglt) COBJECT(
																		((BgL_variablez00_bglt)
																			BgL_globalz00_1868)))->BgL_valuez00);
															((((BgL_svarz00_bglt) COBJECT(((BgL_svarz00_bglt)
																				BgL_arg1693z00_1872)))->BgL_locz00) =
																((obj_t) BgL_defzd2loczd2_1869), BUNSPEC);
														}
													else
														{	/* Ast/glo_def.scm 254 */
															BFALSE;
														}
												}
												BGl_removezd2varzd2fromz12z12zzast_removez00
													(BgL_remz00_33,
													((BgL_variablez00_bglt) BgL_globalz00_1868));
												return BgL_globalz00_1868;
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* &def-global-svar! */
	BgL_globalz00_bglt BGl_z62defzd2globalzd2svarz12z70zzast_glozd2defzd2(obj_t
		BgL_envz00_2990, obj_t BgL_idz00_2991, obj_t BgL_modulez00_2992,
		obj_t BgL_srczd2expzd2_2993, obj_t BgL_remz00_2994)
	{
		{	/* Ast/glo_def.scm 227 */
			return
				BGl_defzd2globalzd2svarz12z12zzast_glozd2defzd2(BgL_idz00_2991,
				BgL_modulez00_2992, BgL_srczd2expzd2_2993, BgL_remz00_2994);
		}

	}



/* check-svar-definition */
	BgL_globalz00_bglt BGl_checkzd2svarzd2definitionz00zzast_glozd2defzd2(obj_t
		BgL_oldz00_34, obj_t BgL_typez00_35, obj_t BgL_srczd2expzd2_36)
	{
		{	/* Ast/glo_def.scm 264 */
			{	/* Ast/glo_def.scm 265 */
				BgL_valuez00_bglt BgL_oldzd2valuezd2_1888;

				BgL_oldzd2valuezd2_1888 =
					(((BgL_variablez00_bglt) COBJECT(
							((BgL_variablez00_bglt)
								((BgL_globalz00_bglt) BgL_oldz00_34))))->BgL_valuez00);
				{	/* Ast/glo_def.scm 267 */
					bool_t BgL_test2037z00_3525;

					{	/* Ast/glo_def.scm 267 */
						obj_t BgL_classz00_2569;

						BgL_classz00_2569 = BGl_svarz00zzast_varz00;
						{	/* Ast/glo_def.scm 267 */
							BgL_objectz00_bglt BgL_arg1801z00_2571;

							{	/* Ast/glo_def.scm 267 */
								obj_t BgL_tmpz00_3526;

								BgL_tmpz00_3526 =
									((obj_t) ((BgL_objectz00_bglt) BgL_oldzd2valuezd2_1888));
								BgL_arg1801z00_2571 = (BgL_objectz00_bglt) (BgL_tmpz00_3526);
							}
							if (BGL_CONDEXPAND_ISA_ARCH64())
								{	/* Ast/glo_def.scm 267 */
									long BgL_idxz00_2577;

									BgL_idxz00_2577 =
										BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_2571);
									BgL_test2037z00_3525 =
										(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
											(BgL_idxz00_2577 + 2L)) == BgL_classz00_2569);
								}
							else
								{	/* Ast/glo_def.scm 267 */
									bool_t BgL_res1909z00_2599;

									{	/* Ast/glo_def.scm 267 */
										obj_t BgL_oclassz00_2585;

										{	/* Ast/glo_def.scm 267 */
											long BgL_arg1808z00_2591;

											{	/* Ast/glo_def.scm 267 */
												long BgL_arg1809z00_2592;

												BgL_arg1809z00_2592 =
													BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_2571);
												BgL_arg1808z00_2591 =
													(BgL_arg1809z00_2592 - OBJECT_TYPE);
											}
											BgL_oclassz00_2585 =
												VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
												BgL_arg1808z00_2591);
										}
										{	/* Ast/glo_def.scm 267 */
											bool_t BgL__ortest_1115z00_2586;

											BgL__ortest_1115z00_2586 =
												(BgL_classz00_2569 == BgL_oclassz00_2585);
											if (BgL__ortest_1115z00_2586)
												{	/* Ast/glo_def.scm 267 */
													BgL_res1909z00_2599 = BgL__ortest_1115z00_2586;
												}
											else
												{	/* Ast/glo_def.scm 267 */
													long BgL_odepthz00_2587;

													BgL_odepthz00_2587 =
														BGL_CLASS_DEPTH(BgL_oclassz00_2585);
													if ((2L < BgL_odepthz00_2587))
														{	/* Ast/glo_def.scm 267 */
															obj_t BgL_arg1797z00_2589;

															BgL_arg1797z00_2589 =
																BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_2585, 2L);
															BgL_res1909z00_2599 =
																(BgL_arg1797z00_2589 == BgL_classz00_2569);
														}
													else
														{	/* Ast/glo_def.scm 267 */
															BgL_res1909z00_2599 = ((bool_t) 0);
														}
												}
										}
									}
									BgL_test2037z00_3525 = BgL_res1909z00_2599;
								}
						}
					}
					if (BgL_test2037z00_3525)
						{	/* Ast/glo_def.scm 269 */
							bool_t BgL_test2041z00_3546;

							{	/* Ast/glo_def.scm 269 */
								BgL_typez00_bglt BgL_arg1729z00_1893;

								BgL_arg1729z00_1893 =
									(((BgL_variablez00_bglt) COBJECT(
											((BgL_variablez00_bglt)
												((BgL_globalz00_bglt) BgL_oldz00_34))))->BgL_typez00);
								BgL_test2041z00_3546 =
									BGl_compatiblezd2typezf3z21zzast_glozd2defzd2(((bool_t) 0),
									((BgL_typez00_bglt) BgL_typez00_35), BgL_arg1729z00_1893);
							}
							if (BgL_test2041z00_3546)
								{	/* Ast/glo_def.scm 269 */
									return ((BgL_globalz00_bglt) BgL_oldz00_34);
								}
							else
								{	/* Ast/glo_def.scm 270 */
									obj_t BgL_list1719z00_1892;

									BgL_list1719z00_1892 =
										MAKE_YOUNG_PAIR(BGl_string1932z00zzast_glozd2defzd2, BNIL);
									return
										BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
										((BgL_globalz00_bglt) BgL_oldz00_34), BgL_srczd2expzd2_36,
										BgL_list1719z00_1892);
								}
						}
					else
						{	/* Ast/glo_def.scm 268 */
							obj_t BgL_list1730z00_1894;

							BgL_list1730z00_1894 =
								MAKE_YOUNG_PAIR(BGl_string1933z00zzast_glozd2defzd2, BNIL);
							return
								BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
								((BgL_globalz00_bglt) BgL_oldz00_34), BgL_srczd2expzd2_36,
								BgL_list1730z00_1894);
						}
				}
			}
		}

	}



/* compatible-type? */
	bool_t BGl_compatiblezd2typezf3z21zzast_glozd2defzd2(bool_t BgL_subzf3zf3_37,
		BgL_typez00_bglt BgL_newz00_38, BgL_typez00_bglt BgL_oldz00_39)
	{
		{	/* Ast/glo_def.scm 277 */
			{	/* Ast/glo_def.scm 278 */
				bool_t BgL__ortest_1111z00_1895;

				BgL__ortest_1111z00_1895 =
					(((obj_t) BgL_newz00_38) == BGl_za2_za2z00zztype_cachez00);
				if (BgL__ortest_1111z00_1895)
					{	/* Ast/glo_def.scm 278 */
						return BgL__ortest_1111z00_1895;
					}
				else
					{	/* Ast/glo_def.scm 279 */
						bool_t BgL__ortest_1112z00_1896;

						BgL__ortest_1112z00_1896 =
							(((obj_t) BgL_oldz00_39) == ((obj_t) BgL_newz00_38));
						if (BgL__ortest_1112z00_1896)
							{	/* Ast/glo_def.scm 279 */
								return BgL__ortest_1112z00_1896;
							}
						else
							{	/* Ast/glo_def.scm 279 */
								if (BgL_subzf3zf3_37)
									{	/* Ast/glo_def.scm 281 */
										bool_t BgL__ortest_1114z00_1898;

										BgL__ortest_1114z00_1898 =
											BGl_typezd2subclasszf3z21zzobject_classz00(BgL_newz00_38,
											BgL_oldz00_39);
										if (BgL__ortest_1114z00_1898)
											{	/* Ast/glo_def.scm 281 */
												return BgL__ortest_1114z00_1898;
											}
										else
											{	/* Ast/glo_def.scm 282 */
												bool_t BgL_test2046z00_3569;

												{	/* Ast/glo_def.scm 282 */
													obj_t BgL_classz00_2601;

													BgL_classz00_2601 = BGl_tclassz00zzobject_classz00;
													{	/* Ast/glo_def.scm 282 */
														BgL_objectz00_bglt BgL_arg1801z00_2603;

														{	/* Ast/glo_def.scm 282 */
															obj_t BgL_tmpz00_3570;

															BgL_tmpz00_3570 = ((obj_t) BgL_newz00_38);
															BgL_arg1801z00_2603 =
																(BgL_objectz00_bglt) (BgL_tmpz00_3570);
														}
														if (BGL_CONDEXPAND_ISA_ARCH64())
															{	/* Ast/glo_def.scm 282 */
																long BgL_idxz00_2609;

																BgL_idxz00_2609 =
																	BGL_OBJECT_INHERITANCE_NUM
																	(BgL_arg1801z00_2603);
																BgL_test2046z00_3569 =
																	(VECTOR_REF
																	(BGl_za2inheritancesza2z00zz__objectz00,
																		(BgL_idxz00_2609 + 2L)) ==
																	BgL_classz00_2601);
															}
														else
															{	/* Ast/glo_def.scm 282 */
																bool_t BgL_res1910z00_2631;

																{	/* Ast/glo_def.scm 282 */
																	obj_t BgL_oclassz00_2617;

																	{	/* Ast/glo_def.scm 282 */
																		long BgL_arg1808z00_2623;

																		{	/* Ast/glo_def.scm 282 */
																			long BgL_arg1809z00_2624;

																			BgL_arg1809z00_2624 =
																				BGL_OBJECT_CLASS_NUM
																				(BgL_arg1801z00_2603);
																			BgL_arg1808z00_2623 =
																				(BgL_arg1809z00_2624 - OBJECT_TYPE);
																		}
																		BgL_oclassz00_2617 =
																			VECTOR_REF
																			(BGl_za2classesza2z00zz__objectz00,
																			BgL_arg1808z00_2623);
																	}
																	{	/* Ast/glo_def.scm 282 */
																		bool_t BgL__ortest_1115z00_2618;

																		BgL__ortest_1115z00_2618 =
																			(BgL_classz00_2601 == BgL_oclassz00_2617);
																		if (BgL__ortest_1115z00_2618)
																			{	/* Ast/glo_def.scm 282 */
																				BgL_res1910z00_2631 =
																					BgL__ortest_1115z00_2618;
																			}
																		else
																			{	/* Ast/glo_def.scm 282 */
																				long BgL_odepthz00_2619;

																				BgL_odepthz00_2619 =
																					BGL_CLASS_DEPTH(BgL_oclassz00_2617);
																				if ((2L < BgL_odepthz00_2619))
																					{	/* Ast/glo_def.scm 282 */
																						obj_t BgL_arg1797z00_2621;

																						BgL_arg1797z00_2621 =
																							BGL_CLASS_ANCESTORS_REF
																							(BgL_oclassz00_2617, 2L);
																						BgL_res1910z00_2631 =
																							(BgL_arg1797z00_2621 ==
																							BgL_classz00_2601);
																					}
																				else
																					{	/* Ast/glo_def.scm 282 */
																						BgL_res1910z00_2631 = ((bool_t) 0);
																					}
																			}
																	}
																}
																BgL_test2046z00_3569 = BgL_res1910z00_2631;
															}
													}
												}
												if (BgL_test2046z00_3569)
													{	/* Ast/glo_def.scm 282 */
														return
															(
															((obj_t) BgL_oldz00_39) ==
															BGl_za2objza2z00zztype_cachez00);
													}
												else
													{	/* Ast/glo_def.scm 282 */
														return ((bool_t) 0);
													}
											}
									}
								else
									{	/* Ast/glo_def.scm 280 */
										return ((bool_t) 0);
									}
							}
					}
			}
		}

	}



/* mismatch-error */
	BgL_globalz00_bglt
		BGl_mismatchzd2errorzd2zzast_glozd2defzd2(BgL_globalz00_bglt
		BgL_globalz00_40, obj_t BgL_srczd2expzd2_41, obj_t BgL_addzd2msgzd2_42)
	{
		{	/* Ast/glo_def.scm 287 */
			{	/* Ast/glo_def.scm 289 */
				obj_t BgL_arg1731z00_1901;
				obj_t BgL_arg1732z00_1902;

				if (PAIRP(BgL_addzd2msgzd2_42))
					{	/* Ast/glo_def.scm 289 */
						BgL_arg1731z00_1901 =
							string_append_3(BGl_string1934z00zzast_glozd2defzd2,
							BGl_string1935z00zzast_glozd2defzd2, CAR(BgL_addzd2msgzd2_42));
					}
				else
					{	/* Ast/glo_def.scm 289 */
						BgL_arg1731z00_1901 = BGl_string1934z00zzast_glozd2defzd2;
					}
				BgL_arg1732z00_1902 =
					BGl_shapez00zztools_shapez00(
					(((BgL_globalz00_bglt) COBJECT(BgL_globalz00_40))->BgL_srcz00));
				{	/* Ast/glo_def.scm 289 */
					obj_t BgL_list1733z00_1903;

					BgL_list1733z00_1903 =
						MAKE_YOUNG_PAIR(((obj_t) BgL_globalz00_40), BNIL);
					return
						((BgL_globalz00_bglt)
						BGl_userzd2errorzd2zztools_errorz00(BgL_arg1731z00_1901,
							BgL_arg1732z00_1902, BgL_srczd2expzd2_41, BgL_list1733z00_1903));
				}
			}
		}

	}



/* check-method-definition */
	BGL_EXPORTED_DEF bool_t
		BGl_checkzd2methodzd2definitionz00zzast_glozd2defzd2(obj_t BgL_idz00_45,
		obj_t BgL_argsz00_46, obj_t BgL_localsz00_47, obj_t BgL_srcz00_48)
	{
		{	/* Ast/glo_def.scm 307 */
			{	/* Ast/glo_def.scm 308 */
				obj_t BgL_locz00_1908;

				BgL_locz00_1908 =
					BGl_findzd2locationzd2zztools_locationz00(BgL_srcz00_48);
				{	/* Ast/glo_def.scm 308 */
					BgL_typez00_bglt BgL_typezd2reszd2_1909;

					BgL_typezd2reszd2_1909 =
						BGl_typezd2ofzd2idz00zzast_identz00(BgL_idz00_45, BgL_locz00_1908);
					{	/* Ast/glo_def.scm 309 */
						obj_t BgL_methodzd2idzd2_1910;

						BgL_methodzd2idzd2_1910 =
							BGl_idzd2ofzd2idz00zzast_identz00(BgL_idz00_45, BgL_locz00_1908);
						{	/* Ast/glo_def.scm 310 */
							obj_t BgL_genericz00_1911;

							BgL_genericz00_1911 =
								BGl_findzd2globalzd2zzast_envz00(BgL_idz00_45, BNIL);
							{	/* Ast/glo_def.scm 311 */

								if (NULLP(BgL_argsz00_46))
									{	/* Ast/glo_def.scm 313 */
										BGl_userzd2errorzd2zztools_errorz00(BgL_idz00_45,
											BGl_shapez00zztools_shapez00(BgL_srcz00_48),
											BGl_string1936z00zzast_glozd2defzd2, BNIL);
										return ((bool_t) 1);
									}
								else
									{	/* Ast/glo_def.scm 316 */
										bool_t BgL_test2052z00_3609;

										{	/* Ast/glo_def.scm 316 */
											obj_t BgL_classz00_2638;

											BgL_classz00_2638 = BGl_globalz00zzast_varz00;
											if (BGL_OBJECTP(BgL_genericz00_1911))
												{	/* Ast/glo_def.scm 316 */
													BgL_objectz00_bglt BgL_arg1801z00_2640;

													BgL_arg1801z00_2640 =
														(BgL_objectz00_bglt) (BgL_genericz00_1911);
													if (BGL_CONDEXPAND_ISA_ARCH64())
														{	/* Ast/glo_def.scm 316 */
															long BgL_idxz00_2646;

															BgL_idxz00_2646 =
																BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_2640);
															BgL_test2052z00_3609 =
																(VECTOR_REF
																(BGl_za2inheritancesza2z00zz__objectz00,
																	(BgL_idxz00_2646 + 2L)) == BgL_classz00_2638);
														}
													else
														{	/* Ast/glo_def.scm 316 */
															bool_t BgL_res1911z00_2668;

															{	/* Ast/glo_def.scm 316 */
																obj_t BgL_oclassz00_2654;

																{	/* Ast/glo_def.scm 316 */
																	long BgL_arg1808z00_2660;

																	{	/* Ast/glo_def.scm 316 */
																		long BgL_arg1809z00_2661;

																		BgL_arg1809z00_2661 =
																			BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_2640);
																		BgL_arg1808z00_2660 =
																			(BgL_arg1809z00_2661 - OBJECT_TYPE);
																	}
																	BgL_oclassz00_2654 =
																		VECTOR_REF
																		(BGl_za2classesza2z00zz__objectz00,
																		BgL_arg1808z00_2660);
																}
																{	/* Ast/glo_def.scm 316 */
																	bool_t BgL__ortest_1115z00_2655;

																	BgL__ortest_1115z00_2655 =
																		(BgL_classz00_2638 == BgL_oclassz00_2654);
																	if (BgL__ortest_1115z00_2655)
																		{	/* Ast/glo_def.scm 316 */
																			BgL_res1911z00_2668 =
																				BgL__ortest_1115z00_2655;
																		}
																	else
																		{	/* Ast/glo_def.scm 316 */
																			long BgL_odepthz00_2656;

																			BgL_odepthz00_2656 =
																				BGL_CLASS_DEPTH(BgL_oclassz00_2654);
																			if ((2L < BgL_odepthz00_2656))
																				{	/* Ast/glo_def.scm 316 */
																					obj_t BgL_arg1797z00_2658;

																					BgL_arg1797z00_2658 =
																						BGL_CLASS_ANCESTORS_REF
																						(BgL_oclassz00_2654, 2L);
																					BgL_res1911z00_2668 =
																						(BgL_arg1797z00_2658 ==
																						BgL_classz00_2638);
																				}
																			else
																				{	/* Ast/glo_def.scm 316 */
																					BgL_res1911z00_2668 = ((bool_t) 0);
																				}
																		}
																}
															}
															BgL_test2052z00_3609 = BgL_res1911z00_2668;
														}
												}
											else
												{	/* Ast/glo_def.scm 316 */
													BgL_test2052z00_3609 = ((bool_t) 0);
												}
										}
										if (BgL_test2052z00_3609)
											{	/* Ast/glo_def.scm 321 */
												BgL_valuez00_bglt BgL_genericzd2valuezd2_1916;

												BgL_genericzd2valuezd2_1916 =
													(((BgL_variablez00_bglt) COBJECT(
															((BgL_variablez00_bglt)
																((BgL_globalz00_bglt) BgL_genericz00_1911))))->
													BgL_valuez00);
												{	/* Ast/glo_def.scm 323 */
													bool_t BgL_test2057z00_3632;

													{	/* Ast/glo_def.scm 323 */
														obj_t BgL_classz00_2670;

														BgL_classz00_2670 = BGl_sfunz00zzast_varz00;
														{	/* Ast/glo_def.scm 323 */
															BgL_objectz00_bglt BgL_arg1801z00_2672;

															{	/* Ast/glo_def.scm 323 */
																obj_t BgL_tmpz00_3633;

																BgL_tmpz00_3633 =
																	((obj_t)
																	((BgL_objectz00_bglt)
																		BgL_genericzd2valuezd2_1916));
																BgL_arg1801z00_2672 =
																	(BgL_objectz00_bglt) (BgL_tmpz00_3633);
															}
															if (BGL_CONDEXPAND_ISA_ARCH64())
																{	/* Ast/glo_def.scm 323 */
																	long BgL_idxz00_2678;

																	BgL_idxz00_2678 =
																		BGL_OBJECT_INHERITANCE_NUM
																		(BgL_arg1801z00_2672);
																	BgL_test2057z00_3632 =
																		(VECTOR_REF
																		(BGl_za2inheritancesza2z00zz__objectz00,
																			(BgL_idxz00_2678 + 3L)) ==
																		BgL_classz00_2670);
																}
															else
																{	/* Ast/glo_def.scm 323 */
																	bool_t BgL_res1912z00_2700;

																	{	/* Ast/glo_def.scm 323 */
																		obj_t BgL_oclassz00_2686;

																		{	/* Ast/glo_def.scm 323 */
																			long BgL_arg1808z00_2692;

																			{	/* Ast/glo_def.scm 323 */
																				long BgL_arg1809z00_2693;

																				BgL_arg1809z00_2693 =
																					BGL_OBJECT_CLASS_NUM
																					(BgL_arg1801z00_2672);
																				BgL_arg1808z00_2692 =
																					(BgL_arg1809z00_2693 - OBJECT_TYPE);
																			}
																			BgL_oclassz00_2686 =
																				VECTOR_REF
																				(BGl_za2classesza2z00zz__objectz00,
																				BgL_arg1808z00_2692);
																		}
																		{	/* Ast/glo_def.scm 323 */
																			bool_t BgL__ortest_1115z00_2687;

																			BgL__ortest_1115z00_2687 =
																				(BgL_classz00_2670 ==
																				BgL_oclassz00_2686);
																			if (BgL__ortest_1115z00_2687)
																				{	/* Ast/glo_def.scm 323 */
																					BgL_res1912z00_2700 =
																						BgL__ortest_1115z00_2687;
																				}
																			else
																				{	/* Ast/glo_def.scm 323 */
																					long BgL_odepthz00_2688;

																					BgL_odepthz00_2688 =
																						BGL_CLASS_DEPTH(BgL_oclassz00_2686);
																					if ((3L < BgL_odepthz00_2688))
																						{	/* Ast/glo_def.scm 323 */
																							obj_t BgL_arg1797z00_2690;

																							BgL_arg1797z00_2690 =
																								BGL_CLASS_ANCESTORS_REF
																								(BgL_oclassz00_2686, 3L);
																							BgL_res1912z00_2700 =
																								(BgL_arg1797z00_2690 ==
																								BgL_classz00_2670);
																						}
																					else
																						{	/* Ast/glo_def.scm 323 */
																							BgL_res1912z00_2700 =
																								((bool_t) 0);
																						}
																				}
																		}
																	}
																	BgL_test2057z00_3632 = BgL_res1912z00_2700;
																}
														}
													}
													if (BgL_test2057z00_3632)
														{	/* Ast/glo_def.scm 323 */
															if (
																((((BgL_sfunz00_bglt) COBJECT(
																				((BgL_sfunz00_bglt)
																					BgL_genericzd2valuezd2_1916)))->
																		BgL_classz00) == CNST_TABLE_REF(3L)))
																{	/* Ast/glo_def.scm 329 */
																	bool_t BgL_test2062z00_3658;

																	{	/* Ast/glo_def.scm 329 */
																		long BgL_arg1822z00_1965;
																		long BgL_arg1823z00_1966;

																		BgL_arg1822z00_1965 =
																			(((BgL_funz00_bglt) COBJECT(
																					((BgL_funz00_bglt)
																						((BgL_sfunz00_bglt)
																							BgL_genericzd2valuezd2_1916))))->
																			BgL_arityz00);
																		BgL_arg1823z00_1966 =
																			BGl_globalzd2arityzd2zztools_argsz00
																			(BgL_argsz00_46);
																		BgL_test2062z00_3658 =
																			(BgL_arg1822z00_1965 ==
																			BgL_arg1823z00_1966);
																	}
																	if (BgL_test2062z00_3658)
																		{	/* Ast/glo_def.scm 332 */
																			bool_t BgL_test2063z00_3664;

																			{	/* Ast/glo_def.scm 332 */
																				BgL_typez00_bglt BgL_arg1816z00_1963;

																				BgL_arg1816z00_1963 =
																					(((BgL_variablez00_bglt) COBJECT(
																							((BgL_variablez00_bglt)
																								((BgL_globalz00_bglt)
																									BgL_genericz00_1911))))->
																					BgL_typez00);
																				BgL_test2063z00_3664 =
																					BGl_compatiblezd2typezf3z21zzast_glozd2defzd2
																					(((bool_t) 1), BgL_typezd2reszd2_1909,
																					BgL_arg1816z00_1963);
																			}
																			if (BgL_test2063z00_3664)
																				{	/* Ast/glo_def.scm 337 */
																					obj_t BgL__ortest_1116z00_1925;

																					{	/* Ast/glo_def.scm 337 */
																						obj_t BgL_g1117z00_1926;

																						{	/* Ast/glo_def.scm 338 */
																							obj_t BgL_l1317z00_1946;

																							BgL_l1317z00_1946 =
																								(((BgL_sfunz00_bglt) COBJECT(
																										((BgL_sfunz00_bglt)
																											BgL_genericzd2valuezd2_1916)))->
																								BgL_argsz00);
																							if (NULLP(BgL_l1317z00_1946))
																								{	/* Ast/glo_def.scm 338 */
																									BgL_g1117z00_1926 = BNIL;
																								}
																							else
																								{	/* Ast/glo_def.scm 338 */
																									obj_t BgL_head1319z00_1948;

																									BgL_head1319z00_1948 =
																										MAKE_YOUNG_PAIR(BNIL, BNIL);
																									{
																										obj_t BgL_l1317z00_1950;
																										obj_t BgL_tail1320z00_1951;

																										BgL_l1317z00_1950 =
																											BgL_l1317z00_1946;
																										BgL_tail1320z00_1951 =
																											BgL_head1319z00_1948;
																									BgL_zc3z04anonymousza31796ze3z87_1952:
																										if (NULLP
																											(BgL_l1317z00_1950))
																											{	/* Ast/glo_def.scm 338 */
																												BgL_g1117z00_1926 =
																													CDR
																													(BgL_head1319z00_1948);
																											}
																										else
																											{	/* Ast/glo_def.scm 338 */
																												obj_t
																													BgL_newtail1321z00_1954;
																												{	/* Ast/glo_def.scm 338 */
																													obj_t
																														BgL_arg1799z00_1956;
																													{	/* Ast/glo_def.scm 338 */
																														obj_t BgL_az00_1957;

																														BgL_az00_1957 =
																															CAR(
																															((obj_t)
																																BgL_l1317z00_1950));
																														{	/* Ast/glo_def.scm 340 */
																															bool_t
																																BgL_test2066z00_3679;
																															{	/* Ast/glo_def.scm 340 */
																																obj_t
																																	BgL_classz00_2709;
																																BgL_classz00_2709
																																	=
																																	BGl_localz00zzast_varz00;
																																if (BGL_OBJECTP
																																	(BgL_az00_1957))
																																	{	/* Ast/glo_def.scm 340 */
																																		BgL_objectz00_bglt
																																			BgL_arg1801z00_2711;
																																		BgL_arg1801z00_2711
																																			=
																																			(BgL_objectz00_bglt)
																																			(BgL_az00_1957);
																																		if (BGL_CONDEXPAND_ISA_ARCH64())
																																			{	/* Ast/glo_def.scm 340 */
																																				long
																																					BgL_idxz00_2717;
																																				BgL_idxz00_2717
																																					=
																																					BGL_OBJECT_INHERITANCE_NUM
																																					(BgL_arg1801z00_2711);
																																				BgL_test2066z00_3679
																																					=
																																					(VECTOR_REF
																																					(BGl_za2inheritancesza2z00zz__objectz00,
																																						(BgL_idxz00_2717
																																							+
																																							2L))
																																					==
																																					BgL_classz00_2709);
																																			}
																																		else
																																			{	/* Ast/glo_def.scm 340 */
																																				bool_t
																																					BgL_res1913z00_2739;
																																				{	/* Ast/glo_def.scm 340 */
																																					obj_t
																																						BgL_oclassz00_2725;
																																					{	/* Ast/glo_def.scm 340 */
																																						long
																																							BgL_arg1808z00_2731;
																																						{	/* Ast/glo_def.scm 340 */
																																							long
																																								BgL_arg1809z00_2732;
																																							BgL_arg1809z00_2732
																																								=
																																								BGL_OBJECT_CLASS_NUM
																																								(BgL_arg1801z00_2711);
																																							BgL_arg1808z00_2731
																																								=
																																								(BgL_arg1809z00_2732
																																								-
																																								OBJECT_TYPE);
																																						}
																																						BgL_oclassz00_2725
																																							=
																																							VECTOR_REF
																																							(BGl_za2classesza2z00zz__objectz00,
																																							BgL_arg1808z00_2731);
																																					}
																																					{	/* Ast/glo_def.scm 340 */
																																						bool_t
																																							BgL__ortest_1115z00_2726;
																																						BgL__ortest_1115z00_2726
																																							=
																																							(BgL_classz00_2709
																																							==
																																							BgL_oclassz00_2725);
																																						if (BgL__ortest_1115z00_2726)
																																							{	/* Ast/glo_def.scm 340 */
																																								BgL_res1913z00_2739
																																									=
																																									BgL__ortest_1115z00_2726;
																																							}
																																						else
																																							{	/* Ast/glo_def.scm 340 */
																																								long
																																									BgL_odepthz00_2727;
																																								BgL_odepthz00_2727
																																									=
																																									BGL_CLASS_DEPTH
																																									(BgL_oclassz00_2725);
																																								if ((2L < BgL_odepthz00_2727))
																																									{	/* Ast/glo_def.scm 340 */
																																										obj_t
																																											BgL_arg1797z00_2729;
																																										BgL_arg1797z00_2729
																																											=
																																											BGL_CLASS_ANCESTORS_REF
																																											(BgL_oclassz00_2725,
																																											2L);
																																										BgL_res1913z00_2739
																																											=
																																											(BgL_arg1797z00_2729
																																											==
																																											BgL_classz00_2709);
																																									}
																																								else
																																									{	/* Ast/glo_def.scm 340 */
																																										BgL_res1913z00_2739
																																											=
																																											(
																																											(bool_t)
																																											0);
																																									}
																																							}
																																					}
																																				}
																																				BgL_test2066z00_3679
																																					=
																																					BgL_res1913z00_2739;
																																			}
																																	}
																																else
																																	{	/* Ast/glo_def.scm 340 */
																																		BgL_test2066z00_3679
																																			=
																																			((bool_t)
																																			0);
																																	}
																															}
																															if (BgL_test2066z00_3679)
																																{	/* Ast/glo_def.scm 340 */
																																	BgL_arg1799z00_1956
																																		=
																																		((obj_t) ((
																																				(BgL_variablez00_bglt)
																																				COBJECT(
																																					((BgL_variablez00_bglt) ((BgL_localz00_bglt) BgL_az00_1957))))->BgL_typez00));
																																}
																															else
																																{	/* Ast/glo_def.scm 342 */
																																	bool_t
																																		BgL_test2071z00_3703;
																																	{	/* Ast/glo_def.scm 342 */
																																		obj_t
																																			BgL_classz00_2741;
																																		BgL_classz00_2741
																																			=
																																			BGl_typez00zztype_typez00;
																																		if (BGL_OBJECTP(BgL_az00_1957))
																																			{	/* Ast/glo_def.scm 342 */
																																				BgL_objectz00_bglt
																																					BgL_arg1801z00_2743;
																																				BgL_arg1801z00_2743
																																					=
																																					(BgL_objectz00_bglt)
																																					(BgL_az00_1957);
																																				if (BGL_CONDEXPAND_ISA_ARCH64())
																																					{	/* Ast/glo_def.scm 342 */
																																						long
																																							BgL_idxz00_2749;
																																						BgL_idxz00_2749
																																							=
																																							BGL_OBJECT_INHERITANCE_NUM
																																							(BgL_arg1801z00_2743);
																																						BgL_test2071z00_3703
																																							=
																																							(VECTOR_REF
																																							(BGl_za2inheritancesza2z00zz__objectz00,
																																								(BgL_idxz00_2749
																																									+
																																									1L))
																																							==
																																							BgL_classz00_2741);
																																					}
																																				else
																																					{	/* Ast/glo_def.scm 342 */
																																						bool_t
																																							BgL_res1914z00_2771;
																																						{	/* Ast/glo_def.scm 342 */
																																							obj_t
																																								BgL_oclassz00_2757;
																																							{	/* Ast/glo_def.scm 342 */
																																								long
																																									BgL_arg1808z00_2763;
																																								{	/* Ast/glo_def.scm 342 */
																																									long
																																										BgL_arg1809z00_2764;
																																									BgL_arg1809z00_2764
																																										=
																																										BGL_OBJECT_CLASS_NUM
																																										(BgL_arg1801z00_2743);
																																									BgL_arg1808z00_2763
																																										=
																																										(BgL_arg1809z00_2764
																																										-
																																										OBJECT_TYPE);
																																								}
																																								BgL_oclassz00_2757
																																									=
																																									VECTOR_REF
																																									(BGl_za2classesza2z00zz__objectz00,
																																									BgL_arg1808z00_2763);
																																							}
																																							{	/* Ast/glo_def.scm 342 */
																																								bool_t
																																									BgL__ortest_1115z00_2758;
																																								BgL__ortest_1115z00_2758
																																									=
																																									(BgL_classz00_2741
																																									==
																																									BgL_oclassz00_2757);
																																								if (BgL__ortest_1115z00_2758)
																																									{	/* Ast/glo_def.scm 342 */
																																										BgL_res1914z00_2771
																																											=
																																											BgL__ortest_1115z00_2758;
																																									}
																																								else
																																									{	/* Ast/glo_def.scm 342 */
																																										long
																																											BgL_odepthz00_2759;
																																										BgL_odepthz00_2759
																																											=
																																											BGL_CLASS_DEPTH
																																											(BgL_oclassz00_2757);
																																										if ((1L < BgL_odepthz00_2759))
																																											{	/* Ast/glo_def.scm 342 */
																																												obj_t
																																													BgL_arg1797z00_2761;
																																												BgL_arg1797z00_2761
																																													=
																																													BGL_CLASS_ANCESTORS_REF
																																													(BgL_oclassz00_2757,
																																													1L);
																																												BgL_res1914z00_2771
																																													=
																																													(BgL_arg1797z00_2761
																																													==
																																													BgL_classz00_2741);
																																											}
																																										else
																																											{	/* Ast/glo_def.scm 342 */
																																												BgL_res1914z00_2771
																																													=
																																													(
																																													(bool_t)
																																													0);
																																											}
																																									}
																																							}
																																						}
																																						BgL_test2071z00_3703
																																							=
																																							BgL_res1914z00_2771;
																																					}
																																			}
																																		else
																																			{	/* Ast/glo_def.scm 342 */
																																				BgL_test2071z00_3703
																																					=
																																					(
																																					(bool_t)
																																					0);
																																			}
																																	}
																																	if (BgL_test2071z00_3703)
																																		{	/* Ast/glo_def.scm 342 */
																																			BgL_arg1799z00_1956
																																				=
																																				BgL_az00_1957;
																																		}
																																	else
																																		{	/* Ast/glo_def.scm 342 */
																																			BgL_arg1799z00_1956
																																				=
																																				BGl_internalzd2errorzd2zztools_errorz00
																																				(BGl_string1921z00zzast_glozd2defzd2,
																																				BGl_string1922z00zzast_glozd2defzd2,
																																				BGl_shapez00zztools_shapez00
																																				(BgL_az00_1957));
																																		}
																																}
																														}
																													}
																													BgL_newtail1321z00_1954
																														=
																														MAKE_YOUNG_PAIR
																														(BgL_arg1799z00_1956,
																														BNIL);
																												}
																												SET_CDR
																													(BgL_tail1320z00_1951,
																													BgL_newtail1321z00_1954);
																												{	/* Ast/glo_def.scm 338 */
																													obj_t
																														BgL_arg1798z00_1955;
																													BgL_arg1798z00_1955 =
																														CDR(((obj_t)
																															BgL_l1317z00_1950));
																													{
																														obj_t
																															BgL_tail1320z00_3730;
																														obj_t
																															BgL_l1317z00_3729;
																														BgL_l1317z00_3729 =
																															BgL_arg1798z00_1955;
																														BgL_tail1320z00_3730
																															=
																															BgL_newtail1321z00_1954;
																														BgL_tail1320z00_1951
																															=
																															BgL_tail1320z00_3730;
																														BgL_l1317z00_1950 =
																															BgL_l1317z00_3729;
																														goto
																															BgL_zc3z04anonymousza31796ze3z87_1952;
																													}
																												}
																											}
																									}
																								}
																						}
																						{
																							obj_t BgL_localsz00_1928;
																							obj_t BgL_typesz00_1929;
																							bool_t BgL_subzf3zf3_1930;

																							BgL_localsz00_1928 =
																								BgL_localsz00_47;
																							BgL_typesz00_1929 =
																								BgL_g1117z00_1926;
																							BgL_subzf3zf3_1930 = ((bool_t) 1);
																						BgL_zc3z04anonymousza31752ze3z87_1931:
																							if (NULLP
																								(BgL_localsz00_1928))
																								{	/* Ast/glo_def.scm 352 */
																									BgL__ortest_1116z00_1925 =
																										BTRUE;
																								}
																							else
																								{	/* Ast/glo_def.scm 352 */
																									if (NULLP(BgL_typesz00_1929))
																										{	/* Ast/glo_def.scm 355 */
																											obj_t
																												BgL_list1756z00_1934;
																											BgL_list1756z00_1934 =
																												MAKE_YOUNG_PAIR
																												(BGl_string1927z00zzast_glozd2defzd2,
																												BNIL);
																											BgL__ortest_1116z00_1925 =
																												((obj_t)
																												BGl_mismatchzd2errorzd2zzast_glozd2defzd2
																												(((BgL_globalz00_bglt)
																														BgL_genericz00_1911),
																													BgL_srcz00_48,
																													BgL_list1756z00_1934));
																										}
																									else
																										{	/* Ast/glo_def.scm 358 */
																											bool_t
																												BgL_test2078z00_3739;
																											{	/* Ast/glo_def.scm 359 */
																												BgL_typez00_bglt
																													BgL_arg1773z00_1942;
																												obj_t
																													BgL_arg1776z00_1943;
																												BgL_arg1773z00_1942 =
																													(((BgL_variablez00_bglt) COBJECT(((BgL_variablez00_bglt) ((BgL_localz00_bglt) CAR(((obj_t) BgL_localsz00_1928))))))->BgL_typez00);
																												BgL_arg1776z00_1943 =
																													CAR(((obj_t)
																														BgL_typesz00_1929));
																												BgL_test2078z00_3739 =
																													BGl_compatiblezd2typezf3z21zzast_glozd2defzd2
																													(BgL_subzf3zf3_1930,
																													BgL_arg1773z00_1942,
																													((BgL_typez00_bglt)
																														BgL_arg1776z00_1943));
																											}
																											if (BgL_test2078z00_3739)
																												{	/* Ast/glo_def.scm 366 */
																													obj_t
																														BgL_arg1768z00_1939;
																													obj_t
																														BgL_arg1771z00_1940;
																													BgL_arg1768z00_1939 =
																														CDR(((obj_t)
																															BgL_localsz00_1928));
																													BgL_arg1771z00_1940 =
																														CDR(((obj_t)
																															BgL_typesz00_1929));
																													{
																														bool_t
																															BgL_subzf3zf3_3755;
																														obj_t
																															BgL_typesz00_3754;
																														obj_t
																															BgL_localsz00_3753;
																														BgL_localsz00_3753 =
																															BgL_arg1768z00_1939;
																														BgL_typesz00_3754 =
																															BgL_arg1771z00_1940;
																														BgL_subzf3zf3_3755 =
																															((bool_t) 0);
																														BgL_subzf3zf3_1930 =
																															BgL_subzf3zf3_3755;
																														BgL_typesz00_1929 =
																															BgL_typesz00_3754;
																														BgL_localsz00_1928 =
																															BgL_localsz00_3753;
																														goto
																															BgL_zc3z04anonymousza31752ze3z87_1931;
																													}
																												}
																											else
																												{	/* Ast/glo_def.scm 358 */
																													{	/* Ast/glo_def.scm 361 */
																														obj_t
																															BgL_list1772z00_1941;
																														BgL_list1772z00_1941
																															=
																															MAKE_YOUNG_PAIR
																															(BGl_string1927z00zzast_glozd2defzd2,
																															BNIL);
																														BGl_mismatchzd2errorzd2zzast_glozd2defzd2
																															(((BgL_globalz00_bglt) BgL_genericz00_1911), BgL_srcz00_48, BgL_list1772z00_1941);
																													}
																													BgL__ortest_1116z00_1925
																														= BFALSE;
																												}
																										}
																								}
																						}
																					}
																					if (CBOOL(BgL__ortest_1116z00_1925))
																						{	/* Ast/glo_def.scm 337 */
																							return
																								CBOOL(BgL__ortest_1116z00_1925);
																						}
																					else
																						{	/* Ast/glo_def.scm 337 */
																							return ((bool_t) 1);
																						}
																				}
																			else
																				{	/* Ast/glo_def.scm 332 */
																					{	/* Ast/glo_def.scm 333 */
																						obj_t BgL_list1803z00_1962;

																						BgL_list1803z00_1962 =
																							MAKE_YOUNG_PAIR
																							(BGl_string1928z00zzast_glozd2defzd2,
																							BNIL);
																						BGl_mismatchzd2errorzd2zzast_glozd2defzd2
																							(((BgL_globalz00_bglt)
																								BgL_genericz00_1911),
																							BgL_srcz00_48,
																							BgL_list1803z00_1962);
																					}
																					return ((bool_t) 0);
																				}
																		}
																	else
																		{	/* Ast/glo_def.scm 329 */
																			{	/* Ast/glo_def.scm 330 */
																				obj_t BgL_list1817z00_1964;

																				BgL_list1817z00_1964 =
																					MAKE_YOUNG_PAIR
																					(BGl_string1926z00zzast_glozd2defzd2,
																					BNIL);
																				BGl_mismatchzd2errorzd2zzast_glozd2defzd2
																					(((BgL_globalz00_bglt)
																						BgL_genericz00_1911), BgL_srcz00_48,
																					BgL_list1817z00_1964);
																			}
																			return ((bool_t) 0);
																		}
																}
															else
																{	/* Ast/glo_def.scm 326 */
																	{	/* Ast/glo_def.scm 327 */
																		obj_t BgL_list1824z00_1967;

																		BgL_list1824z00_1967 =
																			MAKE_YOUNG_PAIR
																			(BGl_string1937z00zzast_glozd2defzd2,
																			BNIL);
																		BGl_mismatchzd2errorzd2zzast_glozd2defzd2((
																				(BgL_globalz00_bglt)
																				BgL_genericz00_1911), BgL_srcz00_48,
																			BgL_list1824z00_1967);
																	}
																	return ((bool_t) 0);
																}
														}
													else
														{	/* Ast/glo_def.scm 323 */
															{	/* Ast/glo_def.scm 324 */
																obj_t BgL_list1826z00_1969;

																BgL_list1826z00_1969 =
																	MAKE_YOUNG_PAIR
																	(BGl_string1937z00zzast_glozd2defzd2, BNIL);
																BGl_mismatchzd2errorzd2zzast_glozd2defzd2((
																		(BgL_globalz00_bglt) BgL_genericz00_1911),
																	BgL_srcz00_48, BgL_list1826z00_1969);
															}
															return ((bool_t) 0);
														}
												}
											}
										else
											{	/* Ast/glo_def.scm 316 */
												return ((bool_t) 1);
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* &check-method-definition */
	obj_t BGl_z62checkzd2methodzd2definitionz62zzast_glozd2defzd2(obj_t
		BgL_envz00_2995, obj_t BgL_idz00_2996, obj_t BgL_argsz00_2997,
		obj_t BgL_localsz00_2998, obj_t BgL_srcz00_2999)
	{
		{	/* Ast/glo_def.scm 307 */
			return
				BBOOL(BGl_checkzd2methodzd2definitionz00zzast_glozd2defzd2
				(BgL_idz00_2996, BgL_argsz00_2997, BgL_localsz00_2998,
					BgL_srcz00_2999));
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zzast_glozd2defzd2(void)
	{
		{	/* Ast/glo_def.scm 15 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zzast_glozd2defzd2(void)
	{
		{	/* Ast/glo_def.scm 15 */
			return BUNSPEC;
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zzast_glozd2defzd2(void)
	{
		{	/* Ast/glo_def.scm 15 */
			return BUNSPEC;
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zzast_glozd2defzd2(void)
	{
		{	/* Ast/glo_def.scm 15 */
			BGl_modulezd2initializa7ationz75zztools_tracez00(54713316L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
			BGl_modulezd2initializa7ationz75zztype_typez00(515343395L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
			BGl_modulezd2initializa7ationz75zzbackend_backendz00(216206620L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
			BGl_modulezd2initializa7ationz75zzast_varz00(90839984L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
			BGl_modulezd2initializa7ationz75zzast_nodez00(469732712L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
			BGl_modulezd2initializa7ationz75zzast_envz00(146730773L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
			BGl_modulezd2initializa7ationz75zzast_identz00(174885617L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
			BGl_modulezd2initializa7ationz75zzast_glozd2declzd2(374700232L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
			BGl_modulezd2initializa7ationz75zzast_removez00(383247627L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
			BGl_modulezd2initializa7ationz75zztype_envz00(296457443L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
			BGl_modulezd2initializa7ationz75zztype_cachez00(346491734L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
			BGl_modulezd2initializa7ationz75zztools_argsz00(47102372L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
			BGl_modulezd2initializa7ationz75zztools_errorz00(300504031L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
			BGl_modulezd2initializa7ationz75zztools_shapez00(365925558L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
			BGl_modulezd2initializa7ationz75zztools_locationz00(462333240L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
			BGl_modulezd2initializa7ationz75zztools_dssslz00(275867955L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
			BGl_modulezd2initializa7ationz75zzobject_classz00(502007119L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
			return
				BGl_modulezd2initializa7ationz75zzengine_paramz00(517137079L,
				BSTRING_TO_STRING(BGl_string1938z00zzast_glozd2defzd2));
		}

	}

#ifdef __cplusplus
}
#endif
