/*===========================================================================*/
/*   (Cfa/specialize.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 Cfa/specialize.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_CFA_SPECIALIZE_TYPE_DEFINITIONS
#define BGL_CFA_SPECIALIZE_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_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_cfunz00_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_argszd2typezd2;
		bool_t BgL_macrozf3zf3;
		bool_t BgL_infixzf3zf3;
		obj_t BgL_methodz00;
	}              *BgL_cfunz00_bglt;

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

	typedef struct BgL_atomz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		obj_t BgL_valuez00;
	}              *BgL_atomz00_bglt;

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

	typedef struct BgL_closurez00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_variablez00_bgl *BgL_variablez00;
	}                 *BgL_closurez00_bglt;

	typedef struct BgL_kwotez00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		obj_t BgL_valuez00;
	}               *BgL_kwotez00_bglt;

	typedef struct BgL_sequencez00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		obj_t BgL_sidezd2effectzd2;
		obj_t BgL_keyz00;
		obj_t BgL_nodesz00;
		bool_t BgL_unsafez00;
		obj_t BgL_metaz00;
	}                  *BgL_sequencez00_bglt;

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

	typedef struct BgL_appzd2lyzd2_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_nodez00_bgl *BgL_funz00;
		struct BgL_nodez00_bgl *BgL_argz00;
	}                  *BgL_appzd2lyzd2_bglt;

	typedef struct BgL_funcallz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_nodez00_bgl *BgL_funz00;
		obj_t BgL_argsz00;
		obj_t BgL_strengthz00;
		obj_t BgL_functionsz00;
	}                 *BgL_funcallz00_bglt;

	typedef struct BgL_externz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		obj_t BgL_sidezd2effectzd2;
		obj_t BgL_keyz00;
		obj_t BgL_exprza2za2;
		obj_t BgL_effectz00;
	}                *BgL_externz00_bglt;

	typedef struct BgL_castz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_nodez00_bgl *BgL_argz00;
	}              *BgL_castz00_bglt;

	typedef struct BgL_setqz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_varz00_bgl *BgL_varz00;
		struct BgL_nodez00_bgl *BgL_valuez00;
	}              *BgL_setqz00_bglt;

	typedef struct BgL_conditionalz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		obj_t BgL_sidezd2effectzd2;
		obj_t BgL_keyz00;
		struct BgL_nodez00_bgl *BgL_testz00;
		struct BgL_nodez00_bgl *BgL_truez00;
		struct BgL_nodez00_bgl *BgL_falsez00;
	}                     *BgL_conditionalz00_bglt;

	typedef struct BgL_failz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_nodez00_bgl *BgL_procz00;
		struct BgL_nodez00_bgl *BgL_msgz00;
		struct BgL_nodez00_bgl *BgL_objz00;
	}              *BgL_failz00_bglt;

	typedef struct BgL_switchz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		obj_t BgL_sidezd2effectzd2;
		obj_t BgL_keyz00;
		struct BgL_nodez00_bgl *BgL_testz00;
		obj_t BgL_clausesz00;
		struct BgL_typez00_bgl *BgL_itemzd2typezd2;
	}                *BgL_switchz00_bglt;

	typedef struct BgL_letzd2funzd2_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		obj_t BgL_sidezd2effectzd2;
		obj_t BgL_keyz00;
		obj_t BgL_localsz00;
		struct BgL_nodez00_bgl *BgL_bodyz00;
	}                   *BgL_letzd2funzd2_bglt;

	typedef struct BgL_letzd2varzd2_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		obj_t BgL_sidezd2effectzd2;
		obj_t BgL_keyz00;
		obj_t BgL_bindingsz00;
		struct BgL_nodez00_bgl *BgL_bodyz00;
		bool_t BgL_removablezf3zf3;
	}                   *BgL_letzd2varzd2_bglt;

	typedef struct BgL_setzd2exzd2itz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_varz00_bgl *BgL_varz00;
		struct BgL_nodez00_bgl *BgL_bodyz00;
		struct BgL_nodez00_bgl *BgL_onexitz00;
	}                       *BgL_setzd2exzd2itz00_bglt;

	typedef struct BgL_jumpzd2exzd2itz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_nodez00_bgl *BgL_exitz00;
		struct BgL_nodez00_bgl *BgL_valuez00;
	}                        *BgL_jumpzd2exzd2itz00_bglt;

	typedef struct BgL_makezd2boxzd2_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		obj_t BgL_sidezd2effectzd2;
		obj_t BgL_keyz00;
		struct BgL_nodez00_bgl *BgL_valuez00;
		struct BgL_typez00_bgl *BgL_vtypez00;
		obj_t BgL_stackablez00;
	}                    *BgL_makezd2boxzd2_bglt;

	typedef struct BgL_boxzd2refzd2_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		obj_t BgL_sidezd2effectzd2;
		obj_t BgL_keyz00;
		struct BgL_varz00_bgl *BgL_varz00;
		struct BgL_typez00_bgl *BgL_vtypez00;
	}                   *BgL_boxzd2refzd2_bglt;

	typedef struct BgL_boxzd2setz12zc0_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_varz00_bgl *BgL_varz00;
		struct BgL_nodez00_bgl *BgL_valuez00;
		struct BgL_typez00_bgl *BgL_vtypez00;
	}                      *BgL_boxzd2setz12zc0_bglt;

	typedef struct BgL_syncz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_nodez00_bgl *BgL_mutexz00;
		struct BgL_nodez00_bgl *BgL_prelockz00;
		struct BgL_nodez00_bgl *BgL_bodyz00;
	}              *BgL_syncz00_bglt;

	typedef struct BgL_specializa7edzd2globalz75_bgl
	{
		obj_t BgL_fixz00;
	}                                *BgL_specializa7edzd2globalz75_bglt;


#endif													// BGL_CFA_SPECIALIZE_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	static obj_t BGl_za2specializa7eza2za7zzcfa_specializa7eza7 = BUNSPEC;
	static obj_t BGl_z62patchz12zd2funcall1398za2zzcfa_specializa7eza7(obj_t,
		obj_t);
	static BgL_appz00_bglt
		BGl_specializa7ezd2eqzf3z86zzcfa_specializa7eza7(BgL_appz00_bglt);
	extern obj_t BGl_setqz00zzast_nodez00;
	extern obj_t BGl_za2optimza2z00zzengine_paramz00;
	extern obj_t BGl_za2intza2z00zztype_cachez00;
	BGL_EXPORTED_DECL obj_t
		BGl_arithmeticzd2operatorzf3z21zzcfa_specializa7eza7(BgL_globalz00_bglt);
	BGL_IMPORT obj_t BGl_classzd2nilzd2initz12z12zz__objectz00(obj_t);
	static obj_t BGl_installzd2specializa7ez12z67zzcfa_specializa7eza7(obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zzcfa_specializa7eza7 = BUNSPEC;
	extern obj_t BGl_closurez00zzast_nodez00;
	static obj_t BGl_z62patchz12zd2kwote1385za2zzcfa_specializa7eza7(obj_t,
		obj_t);
	static BgL_globalz00_bglt BGl_z62lambda1871z62zzcfa_specializa7eza7(obj_t,
		obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t,
		obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
	static obj_t BGl_normaliza7ezd2getzd2typeze70z40zzcfa_specializa7eza7(obj_t);
	static BgL_globalz00_bglt BGl_z62lambda1874z62zzcfa_specializa7eza7(obj_t,
		obj_t);
	extern obj_t BGl_syncz00zzast_nodez00;
	static BgL_globalz00_bglt BGl_z62lambda1877z62zzcfa_specializa7eza7(obj_t,
		obj_t);
	extern obj_t BGl_setzd2exzd2itz00zzast_nodez00;
	BGL_IMPORT obj_t BGl_za2classesza2z00zz__objectz00;
	static obj_t BGl_z62patchz12zd2conditional1406za2zzcfa_specializa7eza7(obj_t,
		obj_t);
	static obj_t BGl_z62patchz12zd2closure1390za2zzcfa_specializa7eza7(obj_t,
		obj_t);
	static bool_t BGl_patchzd2treez12zc0zzcfa_specializa7eza7(obj_t);
	BGL_IMPORT obj_t BGl_registerzd2genericz12zc0zz__objectz00(obj_t, obj_t,
		obj_t, obj_t);
	extern obj_t BGl_atomz00zzast_nodez00;
	BGL_IMPORT obj_t BGl_warningz00zz__errorz00(obj_t);
	extern obj_t BGl_sfunz00zzast_varz00;
	static obj_t BGl_z62lambda1885z62zzcfa_specializa7eza7(obj_t, obj_t);
	static obj_t BGl_z62lambda1886z62zzcfa_specializa7eza7(obj_t, obj_t, obj_t);
	static obj_t BGl_toplevelzd2initzd2zzcfa_specializa7eza7(void);
	extern obj_t BGl_sequencez00zzast_nodez00;
	extern obj_t
		BGl_za2optimzd2cfazd2fixnumzd2arithmeticzf3za2z21zzengine_paramz00;
	extern obj_t BGl_internalzd2errorzd2zztools_errorz00(obj_t, obj_t, obj_t);
	BGL_IMPORT obj_t BGl_assqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
	extern obj_t BGl_letzd2varzd2zzast_nodez00;
	extern obj_t BGl_failz00zzast_nodez00;
	static obj_t BGl_genericzd2initzd2zzcfa_specializa7eza7(void);
	static obj_t BGl_z62patchz12zd2extern1400za2zzcfa_specializa7eza7(obj_t,
		obj_t);
	static obj_t BGl_z62patchz121378z70zzcfa_specializa7eza7(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_makezd2classzd2fieldz00zz__objectz00(obj_t, obj_t, obj_t,
		bool_t, bool_t, obj_t, obj_t, obj_t);
	static obj_t BGl_objectzd2initzd2zzcfa_specializa7eza7(void);
	static obj_t BGl_z62zc3z04anonymousza31876ze3ze5zzcfa_specializa7eza7(obj_t,
		obj_t);
	static obj_t BGl_z62patchz12zd2switch1410za2zzcfa_specializa7eza7(obj_t,
		obj_t);
	extern obj_t BGl_castz00zzast_nodez00;
	extern obj_t BGl_shapez00zztools_shapez00(obj_t);
	BGL_IMPORT obj_t BGl_za2inheritancesza2z00zz__objectz00;
	extern obj_t BGl_boxzd2refzd2zzast_nodez00;
	extern obj_t BGl_typez00zztype_typez00;
	static obj_t BGl_z62patchz12zd2atom1383za2zzcfa_specializa7eza7(obj_t, obj_t);
	extern obj_t BGl_za2longza2z00zztype_cachez00;
	static obj_t BGl_za2boxedzd2eqzf3za2z21zzcfa_specializa7eza7 = BUNSPEC;
	extern obj_t
		BGl_za2optimzd2cfazd2flonumzd2arithmeticzf3za2z21zzengine_paramz00;
	extern obj_t BGl_za2brealza2z00zztype_cachez00;
	extern obj_t BGl_za2libzd2modeza2zd2zzengine_paramz00;
	static obj_t BGl_z62patchz12zd2appzd2ly1396z70zzcfa_specializa7eza7(obj_t,
		obj_t);
	extern obj_t BGl_thezd2backendzd2zzbackend_backendz00(void);
	static bool_t BGl_showzd2specializa7ez75zzcfa_specializa7eza7(void);
	static obj_t BGl_za2czd2eqzf3za2z21zzcfa_specializa7eza7 = BUNSPEC;
	static obj_t
		BGl_z62patchz12zd2jumpzd2exzd2it1420za2zzcfa_specializa7eza7(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t, obj_t);
	static obj_t BGl_z62patchz12zd2boxzd2setz121424z62zzcfa_specializa7eza7(obj_t,
		obj_t);
	BGL_IMPORT obj_t BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_appendzd221011zd2zzcfa_specializa7eza7(obj_t, obj_t);
	static obj_t BGl_z62patchz12zd2makezd2box1422z70zzcfa_specializa7eza7(obj_t,
		obj_t);
	static obj_t BGl_methodzd2initzd2zzcfa_specializa7eza7(void);
	static obj_t BGl_za2specializa7ationszd2overflowza2z75zzcfa_specializa7eza7 =
		BUNSPEC;
	BGL_EXPORTED_DECL obj_t BGl_specializa7ez12zb5zzcfa_specializa7eza7(obj_t);
	extern obj_t BGl_externz00zzast_nodez00;
	static obj_t BGl_getzd2specializa7ationsz75zzcfa_specializa7eza7(void);
	static obj_t BGl_uninstallzd2specializa7esz12z67zzcfa_specializa7eza7(void);
	extern obj_t BGl_za2realza2z00zztype_cachez00;
	extern obj_t BGl_findzd2globalzd2zzast_envz00(obj_t, obj_t);
	static obj_t BGl_za2specializa7edzd2eqzd2typesza2za7zzcfa_specializa7eza7 =
		BUNSPEC;
	static obj_t BGl_z62patchz12zd2letzd2fun1412z70zzcfa_specializa7eza7(obj_t,
		obj_t);
	static obj_t BGl_z62patchz12zd2cast1402za2zzcfa_specializa7eza7(obj_t, obj_t);
	extern obj_t BGl_varz00zzast_nodez00;
	extern BgL_typez00_bglt BGl_getzd2typezd2zztype_typeofz00(BgL_nodez00_bglt,
		bool_t);
	static obj_t BGl_addzd2specializa7edzd2typez12zb5zzcfa_specializa7eza7(obj_t);
	extern obj_t BGl_makezd2boxzd2zzast_nodez00;
	static obj_t BGl_z62patchz12zd2var1388za2zzcfa_specializa7eza7(obj_t, obj_t);
	static obj_t BGl_z62patchz12zd2setq1404za2zzcfa_specializa7eza7(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_errorz00zz__errorz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_za2_za2z00zztype_cachez00;
	static obj_t BGl_z62patchz12zd2app1428za2zzcfa_specializa7eza7(obj_t, obj_t);
	extern BgL_typez00_bglt
		BGl_strictzd2nodezd2typez00zzast_nodez00(BgL_typez00_bglt,
		BgL_typez00_bglt);
	static obj_t
		BGl_za2specializa7ationszd2sanszd2overflowza2za7zzcfa_specializa7eza7 =
		BUNSPEC;
	static obj_t BGl_z62patchz12zd2fail1408za2zzcfa_specializa7eza7(obj_t, obj_t);
	extern obj_t BGl_za2objza2z00zztype_cachez00;
	BGL_EXPORTED_DECL obj_t
		BGl_arithmeticzd2speczd2typesz00zzcfa_specializa7eza7(BgL_globalz00_bglt);
	static bool_t
		BGl_specializa7ezd2optimiza7ationzf3z21zzcfa_specializa7eza7(void);
	extern obj_t BGl_boxzd2setz12zc0zzast_nodez00;
	static obj_t
		BGl_z62patchz12zd2setzd2exzd2it1418za2zzcfa_specializa7eza7(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_modulezd2initializa7ationz75zzcfa_specializa7eza7(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzinline_walkz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzinline_inlinez00(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_modulezd2initializa7ationz75zztools_errorz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_speekz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_typeofz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_tracez00(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_numbers_6_5z00(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__bitz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
	extern obj_t BGl_appz00zzast_nodez00;
	static obj_t BGl_patchzd2funz12zc0zzcfa_specializa7eza7(obj_t);
	static obj_t BGl_specializa7edzd2globalz75zzcfa_specializa7eza7 = BUNSPEC;
	extern obj_t BGl_cfunz00zzast_varz00;
	static obj_t BGl_z62specializa7ez12zd7zzcfa_specializa7eza7(obj_t, obj_t);
	extern obj_t BGl_appzd2lyzd2zzast_nodez00;
	static obj_t BGl_za2specializa7ationsza2za7zzcfa_specializa7eza7 = BUNSPEC;
	extern obj_t BGl_nodez00zzast_nodez00;
	static obj_t BGl_z62arithmeticzd2speczd2typesz62zzcfa_specializa7eza7(obj_t,
		obj_t);
	extern obj_t BGl_kwotez00zzast_nodez00;
	extern obj_t BGl_localz00zzast_varz00;
	extern obj_t BGl_jumpzd2exzd2itz00zzast_nodez00;
	static obj_t BGl_patchz12z12zzcfa_specializa7eza7(BgL_nodez00_bglt);
	static BgL_appz00_bglt
		BGl_specializa7ezd2appz12z67zzcfa_specializa7eza7(BgL_appz00_bglt);
	static obj_t BGl_cnstzd2initzd2zzcfa_specializa7eza7(void);
	static obj_t BGl_patchza2z12zb0zzcfa_specializa7eza7(obj_t);
	static obj_t BGl_libraryzd2moduleszd2initz00zzcfa_specializa7eza7(void);
	BGL_IMPORT obj_t BGl_registerzd2classz12zc0zz__objectz00(obj_t, obj_t, obj_t,
		long, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
	static obj_t BGl_importedzd2moduleszd2initz00zzcfa_specializa7eza7(void);
	static obj_t BGl_gczd2rootszd2initz00zzcfa_specializa7eza7(void);
	extern obj_t BGl_findzd2globalzf2modulez20zzast_envz00(obj_t, obj_t);
	static obj_t BGl_z62patchz12zd2sync1394za2zzcfa_specializa7eza7(obj_t, obj_t);
	static obj_t
		BGl_installzd2specializa7edzd2typez12zb5zzcfa_specializa7eza7(obj_t);
	static obj_t BGl_z62patchz12zd2letzd2var1416z70zzcfa_specializa7eza7(obj_t,
		obj_t);
	extern obj_t BGl_letzd2funzd2zzast_nodez00;
	extern obj_t BGl_valuez00zzast_varz00;
	extern obj_t BGl_za2arithmeticzd2overflowza2zd2zzengine_paramz00;
	static obj_t BGl_z62patchz12zd2sequence1392za2zzcfa_specializa7eza7(obj_t,
		obj_t);
	extern obj_t BGl_za2bintza2z00zztype_cachez00;
	BGL_IMPORT obj_t BGl_genericzd2addzd2methodz12z12zz__objectz00(obj_t, obj_t,
		obj_t, obj_t);
	extern obj_t BGl_switchz00zzast_nodez00;
	extern obj_t BGl_za2bcharza2z00zztype_cachez00;
	static obj_t BGl_z62patchz12zd2boxzd2ref1426z70zzcfa_specializa7eza7(obj_t,
		obj_t);
	extern bool_t BGl_bigloozd2typezf3z21zztype_typez00(BgL_typez00_bglt);
	BGL_IMPORT obj_t BGl_classzd2superzd2zz__objectz00(obj_t);
	extern obj_t BGl_conditionalz00zzast_nodez00;
	static obj_t BGl_za2specializa7edzd2typesza2z75zzcfa_specializa7eza7 =
		BUNSPEC;
	extern obj_t BGl_funcallz00zzast_nodez00;
	extern obj_t BGl_globalz00zzast_varz00;
	extern obj_t BGl_verbosez00zztools_speekz00(obj_t, obj_t);
	static obj_t BGl_z62arithmeticzd2operatorzf3z43zzcfa_specializa7eza7(obj_t,
		obj_t);
	static obj_t
		BGl_addzd2specializa7edzd2eqzd2typez12z67zzcfa_specializa7eza7(obj_t);
	static obj_t BGl_z62patchz12z70zzcfa_specializa7eza7(obj_t, obj_t);
	static obj_t __cnst[14];


	   
		 
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_arithmeticzd2speczd2typeszd2envzd2zzcfa_specializa7eza7,
		BgL_bgl_za762arithmeticza7d22089z00,
		BGl_z62arithmeticzd2speczd2typesz62zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string2040z00zzcfa_specializa7eza7,
		BgL_bgl_string2040za700za7za7c2090za7, "   . Specializing", 17);
	      DEFINE_STRING(BGl_string2041z00zzcfa_specializa7eza7,
		BgL_bgl_string2041za700za7za7c2091za7, ")\n", 2);
	      DEFINE_STRING(BGl_string2042z00zzcfa_specializa7eza7,
		BgL_bgl_string2042za700za7za7c2092za7, ": ", 2);
	      DEFINE_STRING(BGl_string2043z00zzcfa_specializa7eza7,
		BgL_bgl_string2043za700za7za7c2093za7, "        (-> ", 12);
	      DEFINE_STRING(BGl_string2044z00zzcfa_specializa7eza7,
		BgL_bgl_string2044za700za7za7c2094za7, "        (eq? ", 13);
	      DEFINE_STRING(BGl_string2045z00zzcfa_specializa7eza7,
		BgL_bgl_string2045za700za7za7c2095za7, "add-specialized-type!", 21);
	      DEFINE_STRING(BGl_string2046z00zzcfa_specializa7eza7,
		BgL_bgl_string2046za700za7za7c2096za7, "Unspecialized type", 18);
	      DEFINE_STRING(BGl_string2047z00zzcfa_specializa7eza7,
		BgL_bgl_string2047za700za7za7c2097za7, "install-specialize", 18);
	      DEFINE_STRING(BGl_string2048z00zzcfa_specializa7eza7,
		BgL_bgl_string2048za700za7za7c2098za7, "Illegal argument", 16);
	      DEFINE_STRING(BGl_string2049z00zzcfa_specializa7eza7,
		BgL_bgl_string2049za700za7za7c2099za7, " -- ", 4);
	      DEFINE_STRING(BGl_string2050z00zzcfa_specializa7eza7,
		BgL_bgl_string2050za700za7za7c2100za7, "Can't find global", 17);
	      DEFINE_STRING(BGl_string2051z00zzcfa_specializa7eza7,
		BgL_bgl_string2051za700za7za7c2101za7, "install-specialize!", 19);
	      DEFINE_STRING(BGl_string2058z00zzcfa_specializa7eza7,
		BgL_bgl_string2058za700za7za7c2102za7, "", 0);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2052z00zzcfa_specializa7eza7,
		BgL_bgl_za762lambda1886za7622103z00,
		BGl_z62lambda1886z62zzcfa_specializa7eza7, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2053z00zzcfa_specializa7eza7,
		BgL_bgl_za762lambda1885za7622104z00,
		BGl_z62lambda1885z62zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string2060z00zzcfa_specializa7eza7,
		BgL_bgl_string2060za700za7za7c2105za7, "patch!1378", 10);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2054z00zzcfa_specializa7eza7,
		BgL_bgl_za762lambda1877za7622106z00,
		BGl_z62lambda1877z62zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string2061z00zzcfa_specializa7eza7,
		BgL_bgl_string2061za700za7za7c2107za7, "No method for this object", 25);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2055z00zzcfa_specializa7eza7,
		BgL_bgl_za762za7c3za704anonymo2108za7,
		BGl_z62zc3z04anonymousza31876ze3ze5zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2056z00zzcfa_specializa7eza7,
		BgL_bgl_za762lambda1874za7622109z00,
		BGl_z62lambda1874z62zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string2063z00zzcfa_specializa7eza7,
		BgL_bgl_string2063za700za7za7c2110za7, "patch!", 6);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2057z00zzcfa_specializa7eza7,
		BgL_bgl_za762lambda1871za7622111z00,
		BGl_z62lambda1871z62zzcfa_specializa7eza7, 0L, BUNSPEC, 21);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2059z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza7121378za72112za7,
		BGl_z62patchz121378z70zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2062z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2at2113za7,
		BGl_z62patchz12zd2atom1383za2zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2064z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2kw2114za7,
		BGl_z62patchz12zd2kwote1385za2zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2065z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2va2115za7,
		BGl_z62patchz12zd2var1388za2zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2066z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2cl2116za7,
		BGl_z62patchz12zd2closure1390za2zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2067z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2se2117za7,
		BGl_z62patchz12zd2sequence1392za2zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2068z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2sy2118za7,
		BGl_z62patchz12zd2sync1394za2zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2069z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2ap2119za7,
		BGl_z62patchz12zd2appzd2ly1396z70zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2070z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2fu2120za7,
		BGl_z62patchz12zd2funcall1398za2zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2071z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2ex2121za7,
		BGl_z62patchz12zd2extern1400za2zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2072z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2ca2122za7,
		BGl_z62patchz12zd2cast1402za2zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2073z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2se2123za7,
		BGl_z62patchz12zd2setq1404za2zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2074z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2co2124za7,
		BGl_z62patchz12zd2conditional1406za2zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2075z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2fa2125za7,
		BGl_z62patchz12zd2fail1408za2zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2076z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2sw2126za7,
		BGl_z62patchz12zd2switch1410za2zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2077z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2le2127za7,
		BGl_z62patchz12zd2letzd2fun1412z70zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2078z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2le2128za7,
		BGl_z62patchz12zd2letzd2var1416z70zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string2085z00zzcfa_specializa7eza7,
		BgL_bgl_string2085za700za7za7c2129za7, "Unexpected closure", 18);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2079z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2se2130za7,
		BGl_z62patchz12zd2setzd2exzd2it1418za2zzcfa_specializa7eza7, 0L, BUNSPEC,
		1);
	      DEFINE_STRING(BGl_string2086z00zzcfa_specializa7eza7,
		BgL_bgl_string2086za700za7za7c2131za7, "cfa_specialize", 14);
	      DEFINE_STRING(BGl_string2087z00zzcfa_specializa7eza7,
		BgL_bgl_string2087za700za7za7c2132za7,
		"patch!1378 _ cfa_specialize specialized-global obj fix done c-eq? c-boxed-eq? foreign __r4_numbers_6_5_flonum __r4_numbers_6_5_fixnum ((|2+| (|2+| __r4_numbers_6_5) (+fl __r4_numbers_6_5_flonum) (+fx __r4_numbers_6_5_fixnum)) (|2-| (|2-| __r4_numbers_6_5) (-fl __r4_numbers_6_5_flonum) (-fx __r4_numbers_6_5_fixnum)) (2* (2* __r4_numbers_6_5) (*fl __r4_numbers_6_5_flonum) (*fx __r4_numbers_6_5_fixnum)) (abs (abs __r4_numbers_6_5) (absfl __r4_numbers_6_5_flonum) (absfx __r4_numbers_6_5_fixnum))) ((|2+| (|2+| __r4_numbers_6_5) (+fl __r4_numbers_6_5_flonum)) (|2-| (|2-| __r4_numbers_6_5) (-fl __r4_numbers_6_5_flonum)) (2* (2* __r4_numbers_6_5) (*fl __r4_numbers_6_5_flonum)) (2/ (2/ __r4_numbers_6_5) (/fl __r4_numbers_6_5_flonum)) (abs (abs __r4_numbers_6_5) (absfl __r4_numbers_6_5_flonum)) (c-eq? (c-eq? foreign) (=fx __r4_numbers_6_5_fixnum) (=fl __r4_numbers_6_5_flonum)) (2= (2= __r4_numbers_6_5) (=fx __r4_numbers_6_5_fixnum) (=fl __r4_numbers_6_5_flonum)) (2< (2< __r4_numbers_6_5) (<fx __r4_numbers_6_5_fixnum) ("
		"<fl __r4_numbers_6_5_flonum)) (2> (2> __r4_numbers_6_5) (>fx __r4_numbers_6_5_fixnum) (>fl __r4_numbers_6_5_flonum)) (2<= (2<= __r4_numbers_6_5) (<=fx __r4_numbers_6_5_fixnum) (<=fl __r4_numbers_6_5_flonum)) (2>= (2>= __r4_numbers_6_5) (>=fx __r4_numbers_6_5_fixnum) (>=fl __r4_numbers_6_5_flonum)) (zero? (zero? __r4_numbers_6_5) (zerofx? __r4_numbers_6_5_fixnum) (zerofl? __r4_numbers_6_5_flonum)) (positive? (positive? __r4_numbers_6_5) (positivefx? __r4_numbers_6_5_fixnum) (positivefl? __r4_numbers_6_5_flonum)) (negative? (negative? __r4_numbers_6_5) (negativefx? __r4_numbers_6_5_fixnum) (negativefl? __r4_numbers_6_5_flonum)) (log (log __r4_numbers_6_5) (logfl __r4_numbers_6_5_flonum)) (exp (exp __r4_numbers_6_5) (expfl __r4_numbers_6_5_flonum)) (sin (sin __r4_numbers_6_5) (sinfl __r4_numbers_6_5_flonum)) (cos (cos __r4_numbers_6_5) (cosfl __r4_numbers_6_5_flonum)) (tan (tan __r4_numbers_6_5) (tanfl __r4_numbers_6_5_flonum)) (atan (atan __r4_numbers_6_5) (atanfl __r4_numbers_6_5_flonum)) (asin (asin __r4_numb"
		"ers_6_5) (asinfl __r4_numbers_6_5_flonum)) (acos (acos __r4_numbers_6_5) (acosfl __r4_numbers_6_5_flonum)) (sqrt (sqrt __r4_numbers_6_5) (sqrtfl __r4_numbers_6_5_flonum))) ",
		2220);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2080z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2ju2133za7,
		BGl_z62patchz12zd2jumpzd2exzd2it1420za2zzcfa_specializa7eza7, 0L, BUNSPEC,
		1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2081z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2ma2134za7,
		BGl_z62patchz12zd2makezd2box1422z70zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2082z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2bo2135za7,
		BGl_z62patchz12zd2boxzd2setz121424z62zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2083z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2bo2136za7,
		BGl_z62patchz12zd2boxzd2ref1426z70zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2084z00zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za7d2ap2137za7,
		BGl_z62patchz12zd2app1428za2zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_arithmeticzd2operatorzf3zd2envzf3zzcfa_specializa7eza7,
		BgL_bgl_za762arithmeticza7d22138z00,
		BGl_z62arithmeticzd2operatorzf3z43zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_specializa7ez12zd2envz67zzcfa_specializa7eza7,
		BgL_bgl_za762specializa7a7eza72139za7,
		BGl_z62specializa7ez12zd7zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_GENERIC(BGl_patchz12zd2envzc0zzcfa_specializa7eza7,
		BgL_bgl_za762patchza712za770za7za72140za7,
		BGl_z62patchz12z70zzcfa_specializa7eza7, 0L, BUNSPEC, 1);
	BGL_IMPORT obj_t BGl_zc3zd2envz11zz__r4_numbers_6_5z00;

/* 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_za2specializa7eza2za7zzcfa_specializa7eza7));
		   
			 ADD_ROOT((void
				*) (&BGl_requirezd2initializa7ationz75zzcfa_specializa7eza7));
		     ADD_ROOT((void *) (&BGl_za2boxedzd2eqzf3za2z21zzcfa_specializa7eza7));
		     ADD_ROOT((void *) (&BGl_za2czd2eqzf3za2z21zzcfa_specializa7eza7));
		   
			 ADD_ROOT((void
				*) (&BGl_za2specializa7ationszd2overflowza2z75zzcfa_specializa7eza7));
		     ADD_ROOT((void
				*) (&BGl_za2specializa7edzd2eqzd2typesza2za7zzcfa_specializa7eza7));
		     ADD_ROOT((void
				*)
			(&BGl_za2specializa7ationszd2sanszd2overflowza2za7zzcfa_specializa7eza7));
		     ADD_ROOT((void
				*) (&BGl_specializa7edzd2globalz75zzcfa_specializa7eza7));
		     ADD_ROOT((void
				*) (&BGl_za2specializa7ationsza2za7zzcfa_specializa7eza7));
		     ADD_ROOT((void
				*) (&BGl_za2specializa7edzd2typesza2z75zzcfa_specializa7eza7));
#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_modulezd2initializa7ationz75zzcfa_specializa7eza7(long
		BgL_checksumz00_3245, char *BgL_fromz00_3246)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zzcfa_specializa7eza7))
				{
					BGl_requirezd2initializa7ationz75zzcfa_specializa7eza7 =
						BBOOL(((bool_t) 0));
					BGl_gczd2rootszd2initz00zzcfa_specializa7eza7();
					BGl_libraryzd2moduleszd2initz00zzcfa_specializa7eza7();
					BGl_cnstzd2initzd2zzcfa_specializa7eza7();
					BGl_importedzd2moduleszd2initz00zzcfa_specializa7eza7();
					BGl_objectzd2initzd2zzcfa_specializa7eza7();
					BGl_genericzd2initzd2zzcfa_specializa7eza7();
					BGl_methodzd2initzd2zzcfa_specializa7eza7();
					return BGl_toplevelzd2initzd2zzcfa_specializa7eza7();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* library-modules-init */
	obj_t BGl_libraryzd2moduleszd2initz00zzcfa_specializa7eza7(void)
	{
		{	/* Cfa/specialize.scm 19 */
			BGl_modulezd2initializa7ationz75zz__objectz00(0L, "cfa_specialize");
			BGl_modulezd2initializa7ationz75zz__errorz00(0L, "cfa_specialize");
			BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(0L,
				"cfa_specialize");
			BGl_modulezd2initializa7ationz75zz__readerz00(0L, "cfa_specialize");
			BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(0L,
				"cfa_specialize");
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5z00(0L,
				"cfa_specialize");
			BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(0L,
				"cfa_specialize");
			BGl_modulezd2initializa7ationz75zz__bitz00(0L, "cfa_specialize");
			BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(0L,
				"cfa_specialize");
			BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(0L,
				"cfa_specialize");
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(0L,
				"cfa_specialize");
			return BUNSPEC;
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zzcfa_specializa7eza7(void)
	{
		{	/* Cfa/specialize.scm 19 */
			{	/* Cfa/specialize.scm 19 */
				obj_t BgL_cportz00_3126;

				{	/* Cfa/specialize.scm 19 */
					obj_t BgL_stringz00_3133;

					BgL_stringz00_3133 = BGl_string2087z00zzcfa_specializa7eza7;
					{	/* Cfa/specialize.scm 19 */
						obj_t BgL_startz00_3134;

						BgL_startz00_3134 = BINT(0L);
						{	/* Cfa/specialize.scm 19 */
							obj_t BgL_endz00_3135;

							BgL_endz00_3135 =
								BINT(STRING_LENGTH(((obj_t) BgL_stringz00_3133)));
							{	/* Cfa/specialize.scm 19 */

								BgL_cportz00_3126 =
									BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00
									(BgL_stringz00_3133, BgL_startz00_3134, BgL_endz00_3135);
				}}}}
				{
					long BgL_iz00_3127;

					BgL_iz00_3127 = 13L;
				BgL_loopz00_3128:
					if ((BgL_iz00_3127 == -1L))
						{	/* Cfa/specialize.scm 19 */
							return BUNSPEC;
						}
					else
						{	/* Cfa/specialize.scm 19 */
							{	/* Cfa/specialize.scm 19 */
								obj_t BgL_arg2088z00_3129;

								{	/* Cfa/specialize.scm 19 */

									{	/* Cfa/specialize.scm 19 */
										obj_t BgL_locationz00_3131;

										BgL_locationz00_3131 = BBOOL(((bool_t) 0));
										{	/* Cfa/specialize.scm 19 */

											BgL_arg2088z00_3129 =
												BGl_readz00zz__readerz00(BgL_cportz00_3126,
												BgL_locationz00_3131);
										}
									}
								}
								{	/* Cfa/specialize.scm 19 */
									int BgL_tmpz00_3278;

									BgL_tmpz00_3278 = (int) (BgL_iz00_3127);
									CNST_TABLE_SET(BgL_tmpz00_3278, BgL_arg2088z00_3129);
							}}
							{	/* Cfa/specialize.scm 19 */
								int BgL_auxz00_3132;

								BgL_auxz00_3132 = (int) ((BgL_iz00_3127 - 1L));
								{
									long BgL_iz00_3283;

									BgL_iz00_3283 = (long) (BgL_auxz00_3132);
									BgL_iz00_3127 = BgL_iz00_3283;
									goto BgL_loopz00_3128;
								}
							}
						}
				}
			}
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zzcfa_specializa7eza7(void)
	{
		{	/* Cfa/specialize.scm 19 */
			return bgl_gc_roots_register();
		}

	}



/* toplevel-init */
	obj_t BGl_toplevelzd2initzd2zzcfa_specializa7eza7(void)
	{
		{	/* Cfa/specialize.scm 19 */
			BGl_za2specializa7ationsza2za7zzcfa_specializa7eza7 = BFALSE;
			BGl_za2specializa7ationszd2sanszd2overflowza2za7zzcfa_specializa7eza7 =
				CNST_TABLE_REF(0L);
			BGl_za2specializa7ationszd2overflowza2z75zzcfa_specializa7eza7 =
				CNST_TABLE_REF(1L);
			BGl_za2czd2eqzf3za2z21zzcfa_specializa7eza7 = BUNSPEC;
			BGl_za2specializa7eza2za7zzcfa_specializa7eza7 = BNIL;
			BGl_za2specializa7edzd2typesza2z75zzcfa_specializa7eza7 = BNIL;
			BGl_za2specializa7edzd2eqzd2typesza2za7zzcfa_specializa7eza7 = BNIL;
			BGl_za2boxedzd2eqzf3za2z21zzcfa_specializa7eza7 = BUNSPEC;
			return BGl_zc3zd2envz11zz__r4_numbers_6_5z00;
		}

	}



/* append-21011 */
	obj_t BGl_appendzd221011zd2zzcfa_specializa7eza7(obj_t BgL_l1z00_1,
		obj_t BgL_l2z00_2)
	{
		{
			{
				obj_t BgL_headz00_1631;

				BgL_headz00_1631 = MAKE_YOUNG_PAIR(BNIL, BgL_l2z00_2);
				{
					obj_t BgL_prevz00_1632;
					obj_t BgL_tailz00_1633;

					BgL_prevz00_1632 = BgL_headz00_1631;
					BgL_tailz00_1633 = BgL_l1z00_1;
				BgL_loopz00_1634:
					if (PAIRP(BgL_tailz00_1633))
						{
							obj_t BgL_newzd2prevzd2_1636;

							BgL_newzd2prevzd2_1636 =
								MAKE_YOUNG_PAIR(CAR(BgL_tailz00_1633), BgL_l2z00_2);
							SET_CDR(BgL_prevz00_1632, BgL_newzd2prevzd2_1636);
							{
								obj_t BgL_tailz00_3295;
								obj_t BgL_prevz00_3294;

								BgL_prevz00_3294 = BgL_newzd2prevzd2_1636;
								BgL_tailz00_3295 = CDR(BgL_tailz00_1633);
								BgL_tailz00_1633 = BgL_tailz00_3295;
								BgL_prevz00_1632 = BgL_prevz00_3294;
								goto BgL_loopz00_1634;
							}
						}
					else
						{
							BNIL;
						}
					return CDR(BgL_headz00_1631);
				}
			}
		}

	}



/* specialize! */
	BGL_EXPORTED_DEF obj_t BGl_specializa7ez12zb5zzcfa_specializa7eza7(obj_t
		BgL_globalsz00_88)
	{
		{	/* Cfa/specialize.scm 44 */
			if (BGl_specializa7ezd2optimiza7ationzf3z21zzcfa_specializa7eza7())
				{	/* Cfa/specialize.scm 45 */
					{	/* Cfa/specialize.scm 47 */
						obj_t BgL_g1358z00_1646;

						BgL_g1358z00_1646 =
							BGl_getzd2specializa7ationsz75zzcfa_specializa7eza7();
						{
							obj_t BgL_l1356z00_1648;

							BgL_l1356z00_1648 = BgL_g1358z00_1646;
						BgL_zc3z04anonymousza31453ze3z87_1649:
							if (PAIRP(BgL_l1356z00_1648))
								{	/* Cfa/specialize.scm 47 */
									BGl_installzd2specializa7ez12z67zzcfa_specializa7eza7(CAR
										(BgL_l1356z00_1648));
									{
										obj_t BgL_l1356z00_3305;

										BgL_l1356z00_3305 = CDR(BgL_l1356z00_1648);
										BgL_l1356z00_1648 = BgL_l1356z00_3305;
										goto BgL_zc3z04anonymousza31453ze3z87_1649;
									}
								}
							else
								{	/* Cfa/specialize.scm 47 */
									((bool_t) 1);
								}
						}
					}
					BGl_patchzd2treez12zc0zzcfa_specializa7eza7(BgL_globalsz00_88);
					BGl_showzd2specializa7ez75zzcfa_specializa7eza7();
					BGl_uninstallzd2specializa7esz12z67zzcfa_specializa7eza7();
				}
			else
				{	/* Cfa/specialize.scm 45 */
					BFALSE;
				}
			return BgL_globalsz00_88;
		}

	}



/* &specialize! */
	obj_t BGl_z62specializa7ez12zd7zzcfa_specializa7eza7(obj_t BgL_envz00_3010,
		obj_t BgL_globalsz00_3011)
	{
		{	/* Cfa/specialize.scm 44 */
			return BGl_specializa7ez12zb5zzcfa_specializa7eza7(BgL_globalsz00_3011);
		}

	}



/* arithmetic-operator? */
	BGL_EXPORTED_DEF obj_t
		BGl_arithmeticzd2operatorzf3z21zzcfa_specializa7eza7(BgL_globalz00_bglt
		BgL_globalz00_89)
	{
		{	/* Cfa/specialize.scm 56 */
			{	/* Cfa/specialize.scm 58 */
				obj_t BgL_cellz00_1655;

				{	/* Cfa/specialize.scm 58 */
					obj_t BgL_arg1497z00_1660;
					obj_t BgL_arg1519z00_1661;

					BgL_arg1497z00_1660 =
						(((BgL_variablez00_bglt) COBJECT(
								((BgL_variablez00_bglt) BgL_globalz00_89)))->BgL_idz00);
					BgL_arg1519z00_1661 =
						BGl_getzd2specializa7ationsz75zzcfa_specializa7eza7();
					BgL_cellz00_1655 =
						BGl_assqz00zz__r4_pairs_and_lists_6_3z00(BgL_arg1497z00_1660,
						BgL_arg1519z00_1661);
				}
				if (PAIRP(BgL_cellz00_1655))
					{	/* Cfa/specialize.scm 59 */
						bool_t BgL_tmpz00_3317;

						{	/* Cfa/specialize.scm 59 */
							obj_t BgL_tmpz00_3318;

							{	/* Cfa/specialize.scm 59 */
								obj_t BgL_pairz00_2400;

								BgL_pairz00_2400 = CAR(CDR(BgL_cellz00_1655));
								BgL_tmpz00_3318 = CAR(CDR(BgL_pairz00_2400));
							}
							BgL_tmpz00_3317 =
								(BgL_tmpz00_3318 ==
								(((BgL_globalz00_bglt) COBJECT(BgL_globalz00_89))->
									BgL_modulez00));
						}
						return BBOOL(BgL_tmpz00_3317);
					}
				else
					{	/* Cfa/specialize.scm 59 */
						return BFALSE;
					}
			}
		}

	}



/* &arithmetic-operator? */
	obj_t BGl_z62arithmeticzd2operatorzf3z43zzcfa_specializa7eza7(obj_t
		BgL_envz00_3012, obj_t BgL_globalz00_3013)
	{
		{	/* Cfa/specialize.scm 56 */
			return
				BGl_arithmeticzd2operatorzf3z21zzcfa_specializa7eza7(
				((BgL_globalz00_bglt) BgL_globalz00_3013));
		}

	}



/* arithmetic-spec-types */
	BGL_EXPORTED_DEF obj_t
		BGl_arithmeticzd2speczd2typesz00zzcfa_specializa7eza7(BgL_globalz00_bglt
		BgL_globalz00_90)
	{
		{	/* Cfa/specialize.scm 67 */
			{	/* Cfa/specialize.scm 69 */
				obj_t BgL_cellz00_1663;

				{	/* Cfa/specialize.scm 69 */
					obj_t BgL_arg1575z00_1688;
					obj_t BgL_arg1576z00_1689;

					BgL_arg1575z00_1688 =
						(((BgL_variablez00_bglt) COBJECT(
								((BgL_variablez00_bglt) BgL_globalz00_90)))->BgL_idz00);
					BgL_arg1576z00_1689 =
						BGl_getzd2specializa7ationsz75zzcfa_specializa7eza7();
					BgL_cellz00_1663 =
						BGl_assqz00zz__r4_pairs_and_lists_6_3z00(BgL_arg1575z00_1688,
						BgL_arg1576z00_1689);
				}
				if (PAIRP(BgL_cellz00_1663))
					{	/* Cfa/specialize.scm 72 */
						obj_t BgL_g1142z00_1665;

						BgL_g1142z00_1665 = CDR(CDR(BgL_cellz00_1663));
						{
							obj_t BgL_specz00_1668;
							obj_t BgL_typesz00_1669;

							BgL_specz00_1668 = BgL_g1142z00_1665;
							BgL_typesz00_1669 = BNIL;
						BgL_zc3z04anonymousza31521ze3z87_1670:
							if (NULLP(BgL_specz00_1668))
								{	/* Cfa/specialize.scm 75 */
									return BgL_typesz00_1669;
								}
							else
								{	/* Cfa/specialize.scm 77 */
									bool_t BgL_test2149z00_3338;

									if (CBOOL
										(BGl_za2optimzd2cfazd2fixnumzd2arithmeticzf3za2z21zzengine_paramz00))
										{	/* Cfa/specialize.scm 78 */
											obj_t BgL_tmpz00_3341;

											{	/* Cfa/specialize.scm 78 */
												obj_t BgL_pairz00_2409;

												BgL_pairz00_2409 = CAR(((obj_t) BgL_specz00_1668));
												BgL_tmpz00_3341 = CAR(CDR(BgL_pairz00_2409));
											}
											BgL_test2149z00_3338 =
												(BgL_tmpz00_3341 == CNST_TABLE_REF(2L));
										}
									else
										{	/* Cfa/specialize.scm 77 */
											BgL_test2149z00_3338 = ((bool_t) 0);
										}
									if (BgL_test2149z00_3338)
										{	/* Cfa/specialize.scm 79 */
											obj_t BgL_arg1534z00_1675;
											obj_t BgL_arg1541z00_1676;

											BgL_arg1534z00_1675 = CDR(((obj_t) BgL_specz00_1668));
											BgL_arg1541z00_1676 =
												MAKE_YOUNG_PAIR(BGl_za2longza2z00zztype_cachez00,
												BgL_typesz00_1669);
											{
												obj_t BgL_typesz00_3352;
												obj_t BgL_specz00_3351;

												BgL_specz00_3351 = BgL_arg1534z00_1675;
												BgL_typesz00_3352 = BgL_arg1541z00_1676;
												BgL_typesz00_1669 = BgL_typesz00_3352;
												BgL_specz00_1668 = BgL_specz00_3351;
												goto BgL_zc3z04anonymousza31521ze3z87_1670;
											}
										}
									else
										{	/* Cfa/specialize.scm 80 */
											bool_t BgL_test2151z00_3353;

											if (CBOOL
												(BGl_za2optimzd2cfazd2flonumzd2arithmeticzf3za2z21zzengine_paramz00))
												{	/* Cfa/specialize.scm 81 */
													obj_t BgL_tmpz00_3356;

													{	/* Cfa/specialize.scm 81 */
														obj_t BgL_pairz00_2415;

														BgL_pairz00_2415 = CAR(((obj_t) BgL_specz00_1668));
														BgL_tmpz00_3356 = CAR(CDR(BgL_pairz00_2415));
													}
													BgL_test2151z00_3353 =
														(BgL_tmpz00_3356 == CNST_TABLE_REF(3L));
												}
											else
												{	/* Cfa/specialize.scm 80 */
													BgL_test2151z00_3353 = ((bool_t) 0);
												}
											if (BgL_test2151z00_3353)
												{	/* Cfa/specialize.scm 82 */
													obj_t BgL_arg1550z00_1680;
													obj_t BgL_arg1554z00_1681;

													BgL_arg1550z00_1680 = CDR(((obj_t) BgL_specz00_1668));
													BgL_arg1554z00_1681 =
														MAKE_YOUNG_PAIR(BGl_za2realza2z00zztype_cachez00,
														BgL_typesz00_1669);
													{
														obj_t BgL_typesz00_3367;
														obj_t BgL_specz00_3366;

														BgL_specz00_3366 = BgL_arg1550z00_1680;
														BgL_typesz00_3367 = BgL_arg1554z00_1681;
														BgL_typesz00_1669 = BgL_typesz00_3367;
														BgL_specz00_1668 = BgL_specz00_3366;
														goto BgL_zc3z04anonymousza31521ze3z87_1670;
													}
												}
											else
												{	/* Cfa/specialize.scm 84 */
													obj_t BgL_arg1555z00_1682;

													BgL_arg1555z00_1682 = CDR(((obj_t) BgL_specz00_1668));
													{
														obj_t BgL_specz00_3370;

														BgL_specz00_3370 = BgL_arg1555z00_1682;
														BgL_specz00_1668 = BgL_specz00_3370;
														goto BgL_zc3z04anonymousza31521ze3z87_1670;
													}
												}
										}
								}
						}
					}
				else
					{	/* Cfa/specialize.scm 70 */
						return BNIL;
					}
			}
		}

	}



/* &arithmetic-spec-types */
	obj_t BGl_z62arithmeticzd2speczd2typesz62zzcfa_specializa7eza7(obj_t
		BgL_envz00_3014, obj_t BgL_globalz00_3015)
	{
		{	/* Cfa/specialize.scm 67 */
			return
				BGl_arithmeticzd2speczd2typesz00zzcfa_specializa7eza7(
				((BgL_globalz00_bglt) BgL_globalz00_3015));
		}

	}



/* get-specializations */
	obj_t BGl_getzd2specializa7ationsz75zzcfa_specializa7eza7(void)
	{
		{	/* Cfa/specialize.scm 89 */
			if (CBOOL(BGl_za2specializa7ationsza2za7zzcfa_specializa7eza7))
				{	/* Cfa/specialize.scm 91 */
					return BGl_za2specializa7ationsza2za7zzcfa_specializa7eza7;
				}
			else
				{	/* Cfa/specialize.scm 91 */
					if (CBOOL(BGl_za2arithmeticzd2overflowza2zd2zzengine_paramz00))
						{	/* Cfa/specialize.scm 94 */
							BGl_za2specializa7ationsza2za7zzcfa_specializa7eza7 =
								CNST_TABLE_REF(0L);
							return BGl_za2specializa7ationsza2za7zzcfa_specializa7eza7;
						}
					else
						{	/* Cfa/specialize.scm 94 */
							BGl_za2specializa7ationsza2za7zzcfa_specializa7eza7 =
								BGl_appendzd221011zd2zzcfa_specializa7eza7(CNST_TABLE_REF(1L),
								CNST_TABLE_REF(0L));
							return BGl_za2specializa7ationsza2za7zzcfa_specializa7eza7;
						}
				}
		}

	}



/* specialize-optimization? */
	bool_t BGl_specializa7ezd2optimiza7ationzf3z21zzcfa_specializa7eza7(void)
	{
		{	/* Cfa/specialize.scm 188 */
			if (((long) CINT(BGl_za2optimza2z00zzengine_paramz00) >= 1L))
				{	/* Cfa/specialize.scm 189 */
					if (CBOOL(BGl_za2libzd2modeza2zd2zzengine_paramz00))
						{	/* Cfa/specialize.scm 189 */
							return ((bool_t) 0);
						}
					else
						{	/* Cfa/specialize.scm 189 */
							return ((bool_t) 1);
						}
				}
			else
				{	/* Cfa/specialize.scm 189 */
					return ((bool_t) 0);
				}
		}

	}



/* show-specialize */
	bool_t BGl_showzd2specializa7ez75zzcfa_specializa7eza7(void)
	{
		{	/* Cfa/specialize.scm 194 */
			{	/* Cfa/specialize.scm 195 */
				obj_t BgL_list1577z00_1691;

				{	/* Cfa/specialize.scm 195 */
					obj_t BgL_arg1578z00_1692;

					BgL_arg1578z00_1692 =
						MAKE_YOUNG_PAIR(BCHAR(((unsigned char) 10)), BNIL);
					BgL_list1577z00_1691 =
						MAKE_YOUNG_PAIR(BGl_string2040z00zzcfa_specializa7eza7,
						BgL_arg1578z00_1692);
				}
				BGl_verbosez00zztools_speekz00(BINT(1L), BgL_list1577z00_1691);
			}
			{
				obj_t BgL_l1359z00_1694;

				BgL_l1359z00_1694 =
					BGl_za2specializa7edzd2typesza2z75zzcfa_specializa7eza7;
			BgL_zc3z04anonymousza31579ze3z87_1695:
				if (PAIRP(BgL_l1359z00_1694))
					{	/* Cfa/specialize.scm 196 */
						{	/* Cfa/specialize.scm 197 */
							obj_t BgL_typezd2numzd2_1697;

							BgL_typezd2numzd2_1697 = CAR(BgL_l1359z00_1694);
							if (((long) CINT(CDR(((obj_t) BgL_typezd2numzd2_1697))) > 0L))
								{	/* Cfa/specialize.scm 198 */
									obj_t BgL_arg1586z00_1700;
									obj_t BgL_arg1590z00_1701;

									{	/* Cfa/specialize.scm 198 */
										obj_t BgL_arg1606z00_1707;

										BgL_arg1606z00_1707 = CAR(((obj_t) BgL_typezd2numzd2_1697));
										BgL_arg1586z00_1700 =
											BGl_shapez00zztools_shapez00(BgL_arg1606z00_1707);
									}
									BgL_arg1590z00_1701 = CDR(((obj_t) BgL_typezd2numzd2_1697));
									{	/* Cfa/specialize.scm 198 */
										obj_t BgL_list1591z00_1702;

										{	/* Cfa/specialize.scm 198 */
											obj_t BgL_arg1592z00_1703;

											{	/* Cfa/specialize.scm 198 */
												obj_t BgL_arg1595z00_1704;

												{	/* Cfa/specialize.scm 198 */
													obj_t BgL_arg1597z00_1705;

													{	/* Cfa/specialize.scm 198 */
														obj_t BgL_arg1598z00_1706;

														BgL_arg1598z00_1706 =
															MAKE_YOUNG_PAIR
															(BGl_string2041z00zzcfa_specializa7eza7, BNIL);
														BgL_arg1597z00_1705 =
															MAKE_YOUNG_PAIR(BgL_arg1590z00_1701,
															BgL_arg1598z00_1706);
													}
													BgL_arg1595z00_1704 =
														MAKE_YOUNG_PAIR
														(BGl_string2042z00zzcfa_specializa7eza7,
														BgL_arg1597z00_1705);
												}
												BgL_arg1592z00_1703 =
													MAKE_YOUNG_PAIR(BgL_arg1586z00_1700,
													BgL_arg1595z00_1704);
											}
											BgL_list1591z00_1702 =
												MAKE_YOUNG_PAIR(BGl_string2043z00zzcfa_specializa7eza7,
												BgL_arg1592z00_1703);
										}
										BGl_verbosez00zztools_speekz00(BINT(2L),
											BgL_list1591z00_1702);
								}}
							else
								{	/* Cfa/specialize.scm 197 */
									BFALSE;
								}
						}
						{
							obj_t BgL_l1359z00_3411;

							BgL_l1359z00_3411 = CDR(BgL_l1359z00_1694);
							BgL_l1359z00_1694 = BgL_l1359z00_3411;
							goto BgL_zc3z04anonymousza31579ze3z87_1695;
						}
					}
				else
					{	/* Cfa/specialize.scm 196 */
						((bool_t) 1);
					}
			}
			{
				obj_t BgL_l1361z00_1712;

				BgL_l1361z00_1712 =
					BGl_za2specializa7edzd2eqzd2typesza2za7zzcfa_specializa7eza7;
			BgL_zc3z04anonymousza31610ze3z87_1713:
				if (PAIRP(BgL_l1361z00_1712))
					{	/* Cfa/specialize.scm 201 */
						{	/* Cfa/specialize.scm 202 */
							obj_t BgL_typezd2numzd2_1715;

							BgL_typezd2numzd2_1715 = CAR(BgL_l1361z00_1712);
							if (((long) CINT(CDR(((obj_t) BgL_typezd2numzd2_1715))) > 0L))
								{	/* Cfa/specialize.scm 203 */
									obj_t BgL_arg1615z00_1718;
									obj_t BgL_arg1616z00_1719;

									{	/* Cfa/specialize.scm 203 */
										obj_t BgL_arg1630z00_1725;

										BgL_arg1630z00_1725 = CAR(((obj_t) BgL_typezd2numzd2_1715));
										BgL_arg1615z00_1718 =
											BGl_shapez00zztools_shapez00(BgL_arg1630z00_1725);
									}
									BgL_arg1616z00_1719 = CDR(((obj_t) BgL_typezd2numzd2_1715));
									{	/* Cfa/specialize.scm 203 */
										obj_t BgL_list1617z00_1720;

										{	/* Cfa/specialize.scm 203 */
											obj_t BgL_arg1620z00_1721;

											{	/* Cfa/specialize.scm 203 */
												obj_t BgL_arg1621z00_1722;

												{	/* Cfa/specialize.scm 203 */
													obj_t BgL_arg1628z00_1723;

													{	/* Cfa/specialize.scm 203 */
														obj_t BgL_arg1629z00_1724;

														BgL_arg1629z00_1724 =
															MAKE_YOUNG_PAIR
															(BGl_string2041z00zzcfa_specializa7eza7, BNIL);
														BgL_arg1628z00_1723 =
															MAKE_YOUNG_PAIR(BgL_arg1616z00_1719,
															BgL_arg1629z00_1724);
													}
													BgL_arg1621z00_1722 =
														MAKE_YOUNG_PAIR
														(BGl_string2042z00zzcfa_specializa7eza7,
														BgL_arg1628z00_1723);
												}
												BgL_arg1620z00_1721 =
													MAKE_YOUNG_PAIR(BgL_arg1615z00_1718,
													BgL_arg1621z00_1722);
											}
											BgL_list1617z00_1720 =
												MAKE_YOUNG_PAIR(BGl_string2044z00zzcfa_specializa7eza7,
												BgL_arg1620z00_1721);
										}
										BGl_verbosez00zztools_speekz00(BINT(2L),
											BgL_list1617z00_1720);
								}}
							else
								{	/* Cfa/specialize.scm 202 */
									BFALSE;
								}
						}
						{
							obj_t BgL_l1361z00_3433;

							BgL_l1361z00_3433 = CDR(BgL_l1361z00_1712);
							BgL_l1361z00_1712 = BgL_l1361z00_3433;
							goto BgL_zc3z04anonymousza31610ze3z87_1713;
						}
					}
				else
					{	/* Cfa/specialize.scm 201 */
						return ((bool_t) 1);
					}
			}
		}

	}



/* install-specialized-type! */
	obj_t BGl_installzd2specializa7edzd2typez12zb5zzcfa_specializa7eza7(obj_t
		BgL_typez00_91)
	{
		{	/* Cfa/specialize.scm 218 */
			{	/* Cfa/specialize.scm 219 */
				bool_t BgL_test2161z00_3435;

				{	/* Cfa/specialize.scm 219 */
					obj_t BgL_tmpz00_3436;

					BgL_tmpz00_3436 =
						BGl_assqz00zz__r4_pairs_and_lists_6_3z00(BgL_typez00_91,
						BGl_za2specializa7edzd2typesza2z75zzcfa_specializa7eza7);
					BgL_test2161z00_3435 = PAIRP(BgL_tmpz00_3436);
				}
				if (BgL_test2161z00_3435)
					{	/* Cfa/specialize.scm 219 */
						return BFALSE;
					}
				else
					{	/* Cfa/specialize.scm 219 */
						{	/* Cfa/specialize.scm 220 */
							obj_t BgL_arg1661z00_1731;

							BgL_arg1661z00_1731 = MAKE_YOUNG_PAIR(BgL_typez00_91, BINT(0L));
							BGl_za2specializa7edzd2typesza2z75zzcfa_specializa7eza7 =
								MAKE_YOUNG_PAIR(BgL_arg1661z00_1731,
								BGl_za2specializa7edzd2typesza2z75zzcfa_specializa7eza7);
						}
						{	/* Cfa/specialize.scm 221 */
							obj_t BgL_list1662z00_1732;

							BgL_list1662z00_1732 = MAKE_YOUNG_PAIR(CNST_TABLE_REF(4L), BNIL);
							BGl_za2boxedzd2eqzf3za2z21zzcfa_specializa7eza7 =
								BGl_findzd2globalzd2zzast_envz00(CNST_TABLE_REF(5L),
								BgL_list1662z00_1732);
						}
						{	/* Cfa/specialize.scm 222 */
							obj_t BgL_list1663z00_1733;

							BgL_list1663z00_1733 = MAKE_YOUNG_PAIR(CNST_TABLE_REF(4L), BNIL);
							return (BGl_za2czd2eqzf3za2z21zzcfa_specializa7eza7 =
								BGl_findzd2globalzd2zzast_envz00(CNST_TABLE_REF(6L),
									BgL_list1663z00_1733), BUNSPEC);
						}
					}
			}
		}

	}



/* add-specialized-type! */
	obj_t BGl_addzd2specializa7edzd2typez12zb5zzcfa_specializa7eza7(obj_t
		BgL_typez00_92)
	{
		{	/* Cfa/specialize.scm 227 */
			{	/* Cfa/specialize.scm 228 */
				obj_t BgL_cellz00_1735;

				BgL_cellz00_1735 =
					BGl_assqz00zz__r4_pairs_and_lists_6_3z00(BgL_typez00_92,
					BGl_za2specializa7edzd2typesza2z75zzcfa_specializa7eza7);
				if (PAIRP(BgL_cellz00_1735))
					{	/* Cfa/specialize.scm 232 */
						long BgL_arg1673z00_1737;

						BgL_arg1673z00_1737 = (1L + (long) CINT(CDR(BgL_cellz00_1735)));
						{	/* Cfa/specialize.scm 232 */
							obj_t BgL_tmpz00_3456;

							BgL_tmpz00_3456 = BINT(BgL_arg1673z00_1737);
							return SET_CDR(BgL_cellz00_1735, BgL_tmpz00_3456);
						}
					}
				else
					{	/* Cfa/specialize.scm 229 */
						return
							BGl_internalzd2errorzd2zztools_errorz00
							(BGl_string2045z00zzcfa_specializa7eza7,
							BGl_string2046z00zzcfa_specializa7eza7,
							BGl_shapez00zztools_shapez00(BgL_typez00_92));
					}
			}
		}

	}



/* add-specialized-eq-type! */
	obj_t BGl_addzd2specializa7edzd2eqzd2typez12z67zzcfa_specializa7eza7(obj_t
		BgL_typez00_93)
	{
		{	/* Cfa/specialize.scm 237 */
			{	/* Cfa/specialize.scm 238 */
				obj_t BgL_cellz00_1740;

				BgL_cellz00_1740 =
					BGl_assqz00zz__r4_pairs_and_lists_6_3z00(BgL_typez00_93,
					BGl_za2specializa7edzd2eqzd2typesza2za7zzcfa_specializa7eza7);
				if (PAIRP(BgL_cellz00_1740))
					{	/* Cfa/specialize.scm 242 */
						long BgL_arg1681z00_1742;

						BgL_arg1681z00_1742 = (1L + (long) CINT(CDR(BgL_cellz00_1740)));
						{	/* Cfa/specialize.scm 242 */
							obj_t BgL_tmpz00_3467;

							BgL_tmpz00_3467 = BINT(BgL_arg1681z00_1742);
							return SET_CDR(BgL_cellz00_1740, BgL_tmpz00_3467);
						}
					}
				else
					{	/* Cfa/specialize.scm 241 */
						obj_t BgL_arg1686z00_1744;

						BgL_arg1686z00_1744 = MAKE_YOUNG_PAIR(BgL_typez00_93, BINT(1L));
						return (BGl_za2specializa7edzd2eqzd2typesza2za7zzcfa_specializa7eza7
							=
							MAKE_YOUNG_PAIR(BgL_arg1686z00_1744,
								BGl_za2specializa7edzd2eqzd2typesza2za7zzcfa_specializa7eza7),
							BUNSPEC);
					}
			}
		}

	}



/* install-specialize! */
	obj_t BGl_installzd2specializa7ez12z67zzcfa_specializa7eza7(obj_t
		BgL_specz00_94)
	{
		{	/* Cfa/specialize.scm 247 */
			{	/* Cfa/specialize.scm 248 */
				obj_t BgL_genz00_1745;

				{	/* Cfa/specialize.scm 248 */
					obj_t BgL_pairz00_2443;

					BgL_pairz00_2443 = CDR(((obj_t) BgL_specz00_94));
					BgL_genz00_1745 = CAR(BgL_pairz00_2443);
				}
				{	/* Cfa/specialize.scm 248 */
					obj_t BgL_fixesz00_1746;

					{	/* Cfa/specialize.scm 249 */
						obj_t BgL_pairz00_2447;

						BgL_pairz00_2447 = CDR(((obj_t) BgL_specz00_94));
						BgL_fixesz00_1746 = CDR(BgL_pairz00_2447);
					}
					{	/* Cfa/specialize.scm 249 */
						obj_t BgL_genzd2idzd2_1747;

						BgL_genzd2idzd2_1747 = CAR(((obj_t) BgL_genz00_1745));
						{	/* Cfa/specialize.scm 250 */
							obj_t BgL_genzd2modzd2_1748;

							{	/* Cfa/specialize.scm 251 */
								obj_t BgL_pairz00_2452;

								BgL_pairz00_2452 = CDR(((obj_t) BgL_genz00_1745));
								BgL_genzd2modzd2_1748 = CAR(BgL_pairz00_2452);
							}
							{	/* Cfa/specialize.scm 251 */
								obj_t BgL_genericz00_1749;

								BgL_genericz00_1749 =
									BGl_findzd2globalzf2modulez20zzast_envz00
									(BgL_genzd2idzd2_1747, BgL_genzd2modzd2_1748);
								{	/* Cfa/specialize.scm 252 */

									{	/* Cfa/specialize.scm 253 */
										bool_t BgL_test2164z00_3485;

										{	/* Cfa/specialize.scm 253 */
											obj_t BgL_classz00_2453;

											BgL_classz00_2453 = BGl_globalz00zzast_varz00;
											if (BGL_OBJECTP(BgL_genericz00_1749))
												{	/* Cfa/specialize.scm 253 */
													BgL_objectz00_bglt BgL_arg1801z00_2455;

													BgL_arg1801z00_2455 =
														(BgL_objectz00_bglt) (BgL_genericz00_1749);
													if (BGL_CONDEXPAND_ISA_ARCH64())
														{	/* Cfa/specialize.scm 253 */
															long BgL_idxz00_2461;

															BgL_idxz00_2461 =
																BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_2455);
															BgL_test2164z00_3485 =
																(VECTOR_REF
																(BGl_za2inheritancesza2z00zz__objectz00,
																	(BgL_idxz00_2461 + 2L)) == BgL_classz00_2453);
														}
													else
														{	/* Cfa/specialize.scm 253 */
															bool_t BgL_res2020z00_2483;

															{	/* Cfa/specialize.scm 253 */
																obj_t BgL_oclassz00_2469;

																{	/* Cfa/specialize.scm 253 */
																	long BgL_arg1808z00_2475;

																	{	/* Cfa/specialize.scm 253 */
																		long BgL_arg1809z00_2476;

																		BgL_arg1809z00_2476 =
																			BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_2455);
																		BgL_arg1808z00_2475 =
																			(BgL_arg1809z00_2476 - OBJECT_TYPE);
																	}
																	BgL_oclassz00_2469 =
																		VECTOR_REF
																		(BGl_za2classesza2z00zz__objectz00,
																		BgL_arg1808z00_2475);
																}
																{	/* Cfa/specialize.scm 253 */
																	bool_t BgL__ortest_1115z00_2470;

																	BgL__ortest_1115z00_2470 =
																		(BgL_classz00_2453 == BgL_oclassz00_2469);
																	if (BgL__ortest_1115z00_2470)
																		{	/* Cfa/specialize.scm 253 */
																			BgL_res2020z00_2483 =
																				BgL__ortest_1115z00_2470;
																		}
																	else
																		{	/* Cfa/specialize.scm 253 */
																			long BgL_odepthz00_2471;

																			BgL_odepthz00_2471 =
																				BGL_CLASS_DEPTH(BgL_oclassz00_2469);
																			if ((2L < BgL_odepthz00_2471))
																				{	/* Cfa/specialize.scm 253 */
																					obj_t BgL_arg1797z00_2473;

																					BgL_arg1797z00_2473 =
																						BGL_CLASS_ANCESTORS_REF
																						(BgL_oclassz00_2469, 2L);
																					BgL_res2020z00_2483 =
																						(BgL_arg1797z00_2473 ==
																						BgL_classz00_2453);
																				}
																			else
																				{	/* Cfa/specialize.scm 253 */
																					BgL_res2020z00_2483 = ((bool_t) 0);
																				}
																		}
																}
															}
															BgL_test2164z00_3485 = BgL_res2020z00_2483;
														}
												}
											else
												{	/* Cfa/specialize.scm 253 */
													BgL_test2164z00_3485 = ((bool_t) 0);
												}
										}
										if (BgL_test2164z00_3485)
											{
												obj_t BgL_fixesz00_1753;
												obj_t BgL_resz00_1754;

												BgL_fixesz00_1753 = BgL_fixesz00_1746;
												BgL_resz00_1754 = BNIL;
											BgL_zc3z04anonymousza31688ze3z87_1755:
												if (NULLP(BgL_fixesz00_1753))
													{	/* Cfa/specialize.scm 257 */
														bool_t BgL_test2170z00_3507;

														{	/* Cfa/specialize.scm 257 */
															obj_t BgL_classz00_2484;

															BgL_classz00_2484 =
																BGl_specializa7edzd2globalz75zzcfa_specializa7eza7;
															if (BGL_OBJECTP(BgL_genericz00_1749))
																{	/* Cfa/specialize.scm 257 */
																	obj_t BgL_oclassz00_2486;

																	{	/* Cfa/specialize.scm 257 */
																		long BgL_arg1808z00_2488;

																		{	/* Cfa/specialize.scm 257 */
																			long BgL_arg1809z00_2489;

																			BgL_arg1809z00_2489 =
																				BGL_OBJECT_CLASS_NUM(
																				((BgL_objectz00_bglt)
																					BgL_genericz00_1749));
																			BgL_arg1808z00_2488 =
																				(BgL_arg1809z00_2489 - OBJECT_TYPE);
																		}
																		BgL_oclassz00_2486 =
																			VECTOR_REF
																			(BGl_za2classesza2z00zz__objectz00,
																			BgL_arg1808z00_2488);
																	}
																	BgL_test2170z00_3507 =
																		(BgL_oclassz00_2486 == BgL_classz00_2484);
																}
															else
																{	/* Cfa/specialize.scm 257 */
																	BgL_test2170z00_3507 = ((bool_t) 0);
																}
														}
														if (BgL_test2170z00_3507)
															{
																obj_t BgL_auxz00_3522;
																BgL_specializa7edzd2globalz75_bglt
																	BgL_auxz00_3515;
																{	/* Cfa/specialize.scm 259 */
																	obj_t BgL_arg1693z00_1759;

																	{
																		BgL_specializa7edzd2globalz75_bglt
																			BgL_auxz00_3523;
																		{
																			obj_t BgL_auxz00_3524;

																			{	/* Cfa/specialize.scm 259 */
																				BgL_objectz00_bglt BgL_tmpz00_3525;

																				BgL_tmpz00_3525 =
																					((BgL_objectz00_bglt)
																					((BgL_globalz00_bglt)
																						BgL_genericz00_1749));
																				BgL_auxz00_3524 =
																					BGL_OBJECT_WIDENING(BgL_tmpz00_3525);
																			}
																			BgL_auxz00_3523 =
																				((BgL_specializa7edzd2globalz75_bglt)
																				BgL_auxz00_3524);
																		}
																		BgL_arg1693z00_1759 =
																			(((BgL_specializa7edzd2globalz75_bglt)
																				COBJECT(BgL_auxz00_3523))->BgL_fixz00);
																	}
																	BgL_auxz00_3522 =
																		BGl_appendzd221011zd2zzcfa_specializa7eza7
																		(BgL_arg1693z00_1759, BgL_resz00_1754);
																}
																{
																	obj_t BgL_auxz00_3516;

																	{	/* Cfa/specialize.scm 259 */
																		BgL_objectz00_bglt BgL_tmpz00_3517;

																		BgL_tmpz00_3517 =
																			((BgL_objectz00_bglt)
																			((BgL_globalz00_bglt)
																				BgL_genericz00_1749));
																		BgL_auxz00_3516 =
																			BGL_OBJECT_WIDENING(BgL_tmpz00_3517);
																	}
																	BgL_auxz00_3515 =
																		((BgL_specializa7edzd2globalz75_bglt)
																		BgL_auxz00_3516);
																}
																return
																	((((BgL_specializa7edzd2globalz75_bglt)
																			COBJECT(BgL_auxz00_3515))->BgL_fixz00) =
																	((obj_t) BgL_auxz00_3522), BUNSPEC);
															}
														else
															{	/* Cfa/specialize.scm 257 */
																{	/* Cfa/specialize.scm 261 */
																	BgL_specializa7edzd2globalz75_bglt
																		BgL_wide1149z00_1762;
																	BgL_wide1149z00_1762 =
																		((BgL_specializa7edzd2globalz75_bglt)
																		BOBJECT(GC_MALLOC(sizeof(struct
																					BgL_specializa7edzd2globalz75_bgl))));
																	{	/* Cfa/specialize.scm 261 */
																		obj_t BgL_auxz00_3538;
																		BgL_objectz00_bglt BgL_tmpz00_3534;

																		BgL_auxz00_3538 =
																			((obj_t) BgL_wide1149z00_1762);
																		BgL_tmpz00_3534 =
																			((BgL_objectz00_bglt)
																			((BgL_globalz00_bglt)
																				((BgL_globalz00_bglt)
																					BgL_genericz00_1749)));
																		BGL_OBJECT_WIDENING_SET(BgL_tmpz00_3534,
																			BgL_auxz00_3538);
																	}
																	((BgL_objectz00_bglt)
																		((BgL_globalz00_bglt)
																			((BgL_globalz00_bglt)
																				BgL_genericz00_1749)));
																	{	/* Cfa/specialize.scm 261 */
																		long BgL_arg1695z00_1763;

																		BgL_arg1695z00_1763 =
																			BGL_CLASS_NUM
																			(BGl_specializa7edzd2globalz75zzcfa_specializa7eza7);
																		BGL_OBJECT_CLASS_NUM_SET((
																				(BgL_objectz00_bglt) (
																					(BgL_globalz00_bglt) (
																						(BgL_globalz00_bglt)
																						BgL_genericz00_1749))),
																			BgL_arg1695z00_1763);
																	}
																	((BgL_globalz00_bglt)
																		((BgL_globalz00_bglt)
																			((BgL_globalz00_bglt)
																				BgL_genericz00_1749)));
																}
																{
																	BgL_specializa7edzd2globalz75_bglt
																		BgL_auxz00_3552;
																	{
																		obj_t BgL_auxz00_3553;

																		{	/* Cfa/specialize.scm 262 */
																			BgL_objectz00_bglt BgL_tmpz00_3554;

																			BgL_tmpz00_3554 =
																				((BgL_objectz00_bglt)
																				((BgL_globalz00_bglt)
																					((BgL_globalz00_bglt)
																						BgL_genericz00_1749)));
																			BgL_auxz00_3553 =
																				BGL_OBJECT_WIDENING(BgL_tmpz00_3554);
																		}
																		BgL_auxz00_3552 =
																			((BgL_specializa7edzd2globalz75_bglt)
																			BgL_auxz00_3553);
																	}
																	((((BgL_specializa7edzd2globalz75_bglt)
																				COBJECT(BgL_auxz00_3552))->BgL_fixz00) =
																		((obj_t) BgL_resz00_1754), BUNSPEC);
																}
																((BgL_globalz00_bglt)
																	((BgL_globalz00_bglt) BgL_genericz00_1749));
																return
																	(BGl_za2specializa7eza2za7zzcfa_specializa7eza7
																	=
																	MAKE_YOUNG_PAIR(BgL_genericz00_1749,
																		BGl_za2specializa7eza2za7zzcfa_specializa7eza7),
																	BUNSPEC);
															}
													}
												else
													{	/* Cfa/specialize.scm 264 */
														obj_t BgL_fixz00_1765;

														BgL_fixz00_1765 = CAR(((obj_t) BgL_fixesz00_1753));
														{	/* Cfa/specialize.scm 264 */
															obj_t BgL_idz00_1766;

															BgL_idz00_1766 = CAR(((obj_t) BgL_fixz00_1765));
															{	/* Cfa/specialize.scm 265 */
																obj_t BgL_modz00_1767;

																{	/* Cfa/specialize.scm 266 */
																	obj_t BgL_pairz00_2507;

																	BgL_pairz00_2507 =
																		CDR(((obj_t) BgL_fixz00_1765));
																	BgL_modz00_1767 = CAR(BgL_pairz00_2507);
																}
																{	/* Cfa/specialize.scm 266 */
																	obj_t BgL_globalz00_1768;

																	BgL_globalz00_1768 =
																		BGl_findzd2globalzf2modulez20zzast_envz00
																		(BgL_idz00_1766, BgL_modz00_1767);
																	{	/* Cfa/specialize.scm 267 */

																		{	/* Cfa/specialize.scm 268 */
																			bool_t BgL_test2172z00_3572;

																			{	/* Cfa/specialize.scm 268 */
																				obj_t BgL_classz00_2508;

																				BgL_classz00_2508 =
																					BGl_globalz00zzast_varz00;
																				if (BGL_OBJECTP(BgL_globalz00_1768))
																					{	/* Cfa/specialize.scm 268 */
																						BgL_objectz00_bglt
																							BgL_arg1801z00_2510;
																						BgL_arg1801z00_2510 =
																							(BgL_objectz00_bglt)
																							(BgL_globalz00_1768);
																						if (BGL_CONDEXPAND_ISA_ARCH64())
																							{	/* Cfa/specialize.scm 268 */
																								long BgL_idxz00_2516;

																								BgL_idxz00_2516 =
																									BGL_OBJECT_INHERITANCE_NUM
																									(BgL_arg1801z00_2510);
																								BgL_test2172z00_3572 =
																									(VECTOR_REF
																									(BGl_za2inheritancesza2z00zz__objectz00,
																										(BgL_idxz00_2516 + 2L)) ==
																									BgL_classz00_2508);
																							}
																						else
																							{	/* Cfa/specialize.scm 268 */
																								bool_t BgL_res2021z00_2538;

																								{	/* Cfa/specialize.scm 268 */
																									obj_t BgL_oclassz00_2524;

																									{	/* Cfa/specialize.scm 268 */
																										long BgL_arg1808z00_2530;

																										{	/* Cfa/specialize.scm 268 */
																											long BgL_arg1809z00_2531;

																											BgL_arg1809z00_2531 =
																												BGL_OBJECT_CLASS_NUM
																												(BgL_arg1801z00_2510);
																											BgL_arg1808z00_2530 =
																												(BgL_arg1809z00_2531 -
																												OBJECT_TYPE);
																										}
																										BgL_oclassz00_2524 =
																											VECTOR_REF
																											(BGl_za2classesza2z00zz__objectz00,
																											BgL_arg1808z00_2530);
																									}
																									{	/* Cfa/specialize.scm 268 */
																										bool_t
																											BgL__ortest_1115z00_2525;
																										BgL__ortest_1115z00_2525 =
																											(BgL_classz00_2508 ==
																											BgL_oclassz00_2524);
																										if (BgL__ortest_1115z00_2525)
																											{	/* Cfa/specialize.scm 268 */
																												BgL_res2021z00_2538 =
																													BgL__ortest_1115z00_2525;
																											}
																										else
																											{	/* Cfa/specialize.scm 268 */
																												long BgL_odepthz00_2526;

																												BgL_odepthz00_2526 =
																													BGL_CLASS_DEPTH
																													(BgL_oclassz00_2524);
																												if ((2L <
																														BgL_odepthz00_2526))
																													{	/* Cfa/specialize.scm 268 */
																														obj_t
																															BgL_arg1797z00_2528;
																														BgL_arg1797z00_2528
																															=
																															BGL_CLASS_ANCESTORS_REF
																															(BgL_oclassz00_2524,
																															2L);
																														BgL_res2021z00_2538
																															=
																															(BgL_arg1797z00_2528
																															==
																															BgL_classz00_2508);
																													}
																												else
																													{	/* Cfa/specialize.scm 268 */
																														BgL_res2021z00_2538
																															= ((bool_t) 0);
																													}
																											}
																									}
																								}
																								BgL_test2172z00_3572 =
																									BgL_res2021z00_2538;
																							}
																					}
																				else
																					{	/* Cfa/specialize.scm 268 */
																						BgL_test2172z00_3572 = ((bool_t) 0);
																					}
																			}
																			if (BgL_test2172z00_3572)
																				{	/* Cfa/specialize.scm 269 */
																					BgL_valuez00_bglt BgL_valz00_1770;

																					BgL_valz00_1770 =
																						(((BgL_variablez00_bglt) COBJECT(
																								((BgL_variablez00_bglt)
																									((BgL_globalz00_bglt)
																										BgL_globalz00_1768))))->
																						BgL_valuez00);
																					{	/* Cfa/specialize.scm 271 */
																						bool_t BgL_test2177z00_3595;

																						{	/* Cfa/specialize.scm 271 */
																							bool_t BgL_test2178z00_3596;

																							{	/* Cfa/specialize.scm 271 */
																								obj_t BgL_classz00_2540;

																								BgL_classz00_2540 =
																									BGl_sfunz00zzast_varz00;
																								{	/* Cfa/specialize.scm 271 */
																									BgL_objectz00_bglt
																										BgL_arg1801z00_2542;
																									{	/* Cfa/specialize.scm 271 */
																										obj_t BgL_tmpz00_3597;

																										BgL_tmpz00_3597 =
																											((obj_t)
																											((BgL_objectz00_bglt)
																												BgL_valz00_1770));
																										BgL_arg1801z00_2542 =
																											(BgL_objectz00_bglt)
																											(BgL_tmpz00_3597);
																									}
																									if (BGL_CONDEXPAND_ISA_ARCH64
																										())
																										{	/* Cfa/specialize.scm 271 */
																											long BgL_idxz00_2548;

																											BgL_idxz00_2548 =
																												BGL_OBJECT_INHERITANCE_NUM
																												(BgL_arg1801z00_2542);
																											BgL_test2178z00_3596 =
																												(VECTOR_REF
																												(BGl_za2inheritancesza2z00zz__objectz00,
																													(BgL_idxz00_2548 +
																														3L)) ==
																												BgL_classz00_2540);
																										}
																									else
																										{	/* Cfa/specialize.scm 271 */
																											bool_t
																												BgL_res2022z00_2570;
																											{	/* Cfa/specialize.scm 271 */
																												obj_t
																													BgL_oclassz00_2556;
																												{	/* Cfa/specialize.scm 271 */
																													long
																														BgL_arg1808z00_2562;
																													{	/* Cfa/specialize.scm 271 */
																														long
																															BgL_arg1809z00_2563;
																														BgL_arg1809z00_2563
																															=
																															BGL_OBJECT_CLASS_NUM
																															(BgL_arg1801z00_2542);
																														BgL_arg1808z00_2562
																															=
																															(BgL_arg1809z00_2563
																															- OBJECT_TYPE);
																													}
																													BgL_oclassz00_2556 =
																														VECTOR_REF
																														(BGl_za2classesza2z00zz__objectz00,
																														BgL_arg1808z00_2562);
																												}
																												{	/* Cfa/specialize.scm 271 */
																													bool_t
																														BgL__ortest_1115z00_2557;
																													BgL__ortest_1115z00_2557
																														=
																														(BgL_classz00_2540
																														==
																														BgL_oclassz00_2556);
																													if (BgL__ortest_1115z00_2557)
																														{	/* Cfa/specialize.scm 271 */
																															BgL_res2022z00_2570
																																=
																																BgL__ortest_1115z00_2557;
																														}
																													else
																														{	/* Cfa/specialize.scm 271 */
																															long
																																BgL_odepthz00_2558;
																															BgL_odepthz00_2558
																																=
																																BGL_CLASS_DEPTH
																																(BgL_oclassz00_2556);
																															if ((3L <
																																	BgL_odepthz00_2558))
																																{	/* Cfa/specialize.scm 271 */
																																	obj_t
																																		BgL_arg1797z00_2560;
																																	BgL_arg1797z00_2560
																																		=
																																		BGL_CLASS_ANCESTORS_REF
																																		(BgL_oclassz00_2556,
																																		3L);
																																	BgL_res2022z00_2570
																																		=
																																		(BgL_arg1797z00_2560
																																		==
																																		BgL_classz00_2540);
																																}
																															else
																																{	/* Cfa/specialize.scm 271 */
																																	BgL_res2022z00_2570
																																		=
																																		((bool_t)
																																		0);
																																}
																														}
																												}
																											}
																											BgL_test2178z00_3596 =
																												BgL_res2022z00_2570;
																										}
																								}
																							}
																							if (BgL_test2178z00_3596)
																								{	/* Cfa/specialize.scm 271 */
																									obj_t BgL_tmpz00_3617;

																									BgL_tmpz00_3617 =
																										(((BgL_sfunz00_bglt)
																											COBJECT((
																													(BgL_sfunz00_bglt)
																													BgL_valz00_1770)))->
																										BgL_argsz00);
																									BgL_test2177z00_3595 =
																										PAIRP(BgL_tmpz00_3617);
																								}
																							else
																								{	/* Cfa/specialize.scm 271 */
																									BgL_test2177z00_3595 =
																										((bool_t) 0);
																								}
																						}
																						if (BgL_test2177z00_3595)
																							{	/* Cfa/specialize.scm 272 */
																								obj_t BgL_typez00_1774;

																								{	/* Cfa/specialize.scm 272 */
																									obj_t BgL_vz00_1778;

																									{	/* Cfa/specialize.scm 272 */
																										obj_t BgL_pairz00_2573;

																										BgL_pairz00_2573 =
																											(((BgL_sfunz00_bglt)
																												COBJECT((
																														(BgL_sfunz00_bglt)
																														BgL_valz00_1770)))->
																											BgL_argsz00);
																										BgL_vz00_1778 =
																											CAR(BgL_pairz00_2573);
																									}
																									{	/* Cfa/specialize.scm 274 */
																										bool_t BgL_test2182z00_3624;

																										{	/* Cfa/specialize.scm 274 */
																											obj_t BgL_classz00_2574;

																											BgL_classz00_2574 =
																												BGl_typez00zztype_typez00;
																											if (BGL_OBJECTP
																												(BgL_vz00_1778))
																												{	/* Cfa/specialize.scm 274 */
																													BgL_objectz00_bglt
																														BgL_arg1801z00_2576;
																													BgL_arg1801z00_2576 =
																														(BgL_objectz00_bglt)
																														(BgL_vz00_1778);
																													if (BGL_CONDEXPAND_ISA_ARCH64())
																														{	/* Cfa/specialize.scm 274 */
																															long
																																BgL_idxz00_2582;
																															BgL_idxz00_2582 =
																																BGL_OBJECT_INHERITANCE_NUM
																																(BgL_arg1801z00_2576);
																															BgL_test2182z00_3624
																																=
																																(VECTOR_REF
																																(BGl_za2inheritancesza2z00zz__objectz00,
																																	(BgL_idxz00_2582
																																		+ 1L)) ==
																																BgL_classz00_2574);
																														}
																													else
																														{	/* Cfa/specialize.scm 274 */
																															bool_t
																																BgL_res2023z00_2604;
																															{	/* Cfa/specialize.scm 274 */
																																obj_t
																																	BgL_oclassz00_2590;
																																{	/* Cfa/specialize.scm 274 */
																																	long
																																		BgL_arg1808z00_2596;
																																	{	/* Cfa/specialize.scm 274 */
																																		long
																																			BgL_arg1809z00_2597;
																																		BgL_arg1809z00_2597
																																			=
																																			BGL_OBJECT_CLASS_NUM
																																			(BgL_arg1801z00_2576);
																																		BgL_arg1808z00_2596
																																			=
																																			(BgL_arg1809z00_2597
																																			-
																																			OBJECT_TYPE);
																																	}
																																	BgL_oclassz00_2590
																																		=
																																		VECTOR_REF
																																		(BGl_za2classesza2z00zz__objectz00,
																																		BgL_arg1808z00_2596);
																																}
																																{	/* Cfa/specialize.scm 274 */
																																	bool_t
																																		BgL__ortest_1115z00_2591;
																																	BgL__ortest_1115z00_2591
																																		=
																																		(BgL_classz00_2574
																																		==
																																		BgL_oclassz00_2590);
																																	if (BgL__ortest_1115z00_2591)
																																		{	/* Cfa/specialize.scm 274 */
																																			BgL_res2023z00_2604
																																				=
																																				BgL__ortest_1115z00_2591;
																																		}
																																	else
																																		{	/* Cfa/specialize.scm 274 */
																																			long
																																				BgL_odepthz00_2592;
																																			BgL_odepthz00_2592
																																				=
																																				BGL_CLASS_DEPTH
																																				(BgL_oclassz00_2590);
																																			if ((1L <
																																					BgL_odepthz00_2592))
																																				{	/* Cfa/specialize.scm 274 */
																																					obj_t
																																						BgL_arg1797z00_2594;
																																					BgL_arg1797z00_2594
																																						=
																																						BGL_CLASS_ANCESTORS_REF
																																						(BgL_oclassz00_2590,
																																						1L);
																																					BgL_res2023z00_2604
																																						=
																																						(BgL_arg1797z00_2594
																																						==
																																						BgL_classz00_2574);
																																				}
																																			else
																																				{	/* Cfa/specialize.scm 274 */
																																					BgL_res2023z00_2604
																																						=
																																						(
																																						(bool_t)
																																						0);
																																				}
																																		}
																																}
																															}
																															BgL_test2182z00_3624
																																=
																																BgL_res2023z00_2604;
																														}
																												}
																											else
																												{	/* Cfa/specialize.scm 274 */
																													BgL_test2182z00_3624 =
																														((bool_t) 0);
																												}
																										}
																										if (BgL_test2182z00_3624)
																											{	/* Cfa/specialize.scm 274 */
																												BgL_typez00_1774 =
																													BgL_vz00_1778;
																											}
																										else
																											{	/* Cfa/specialize.scm 276 */
																												bool_t
																													BgL_test2187z00_3644;
																												{	/* Cfa/specialize.scm 276 */
																													obj_t
																														BgL_classz00_2605;
																													BgL_classz00_2605 =
																														BGl_localz00zzast_varz00;
																													if (BGL_OBJECTP
																														(BgL_vz00_1778))
																														{	/* Cfa/specialize.scm 276 */
																															BgL_objectz00_bglt
																																BgL_arg1801z00_2607;
																															BgL_arg1801z00_2607
																																=
																																(BgL_objectz00_bglt)
																																(BgL_vz00_1778);
																															if (BGL_CONDEXPAND_ISA_ARCH64())
																																{	/* Cfa/specialize.scm 276 */
																																	long
																																		BgL_idxz00_2613;
																																	BgL_idxz00_2613
																																		=
																																		BGL_OBJECT_INHERITANCE_NUM
																																		(BgL_arg1801z00_2607);
																																	BgL_test2187z00_3644
																																		=
																																		(VECTOR_REF
																																		(BGl_za2inheritancesza2z00zz__objectz00,
																																			(BgL_idxz00_2613
																																				+
																																				2L)) ==
																																		BgL_classz00_2605);
																																}
																															else
																																{	/* Cfa/specialize.scm 276 */
																																	bool_t
																																		BgL_res2024z00_2635;
																																	{	/* Cfa/specialize.scm 276 */
																																		obj_t
																																			BgL_oclassz00_2621;
																																		{	/* Cfa/specialize.scm 276 */
																																			long
																																				BgL_arg1808z00_2627;
																																			{	/* Cfa/specialize.scm 276 */
																																				long
																																					BgL_arg1809z00_2628;
																																				BgL_arg1809z00_2628
																																					=
																																					BGL_OBJECT_CLASS_NUM
																																					(BgL_arg1801z00_2607);
																																				BgL_arg1808z00_2627
																																					=
																																					(BgL_arg1809z00_2628
																																					-
																																					OBJECT_TYPE);
																																			}
																																			BgL_oclassz00_2621
																																				=
																																				VECTOR_REF
																																				(BGl_za2classesza2z00zz__objectz00,
																																				BgL_arg1808z00_2627);
																																		}
																																		{	/* Cfa/specialize.scm 276 */
																																			bool_t
																																				BgL__ortest_1115z00_2622;
																																			BgL__ortest_1115z00_2622
																																				=
																																				(BgL_classz00_2605
																																				==
																																				BgL_oclassz00_2621);
																																			if (BgL__ortest_1115z00_2622)
																																				{	/* Cfa/specialize.scm 276 */
																																					BgL_res2024z00_2635
																																						=
																																						BgL__ortest_1115z00_2622;
																																				}
																																			else
																																				{	/* Cfa/specialize.scm 276 */
																																					long
																																						BgL_odepthz00_2623;
																																					BgL_odepthz00_2623
																																						=
																																						BGL_CLASS_DEPTH
																																						(BgL_oclassz00_2621);
																																					if (
																																						(2L
																																							<
																																							BgL_odepthz00_2623))
																																						{	/* Cfa/specialize.scm 276 */
																																							obj_t
																																								BgL_arg1797z00_2625;
																																							BgL_arg1797z00_2625
																																								=
																																								BGL_CLASS_ANCESTORS_REF
																																								(BgL_oclassz00_2621,
																																								2L);
																																							BgL_res2024z00_2635
																																								=
																																								(BgL_arg1797z00_2625
																																								==
																																								BgL_classz00_2605);
																																						}
																																					else
																																						{	/* Cfa/specialize.scm 276 */
																																							BgL_res2024z00_2635
																																								=
																																								(
																																								(bool_t)
																																								0);
																																						}
																																				}
																																		}
																																	}
																																	BgL_test2187z00_3644
																																		=
																																		BgL_res2024z00_2635;
																																}
																														}
																													else
																														{	/* Cfa/specialize.scm 276 */
																															BgL_test2187z00_3644
																																= ((bool_t) 0);
																														}
																												}
																												if (BgL_test2187z00_3644)
																													{	/* Cfa/specialize.scm 276 */
																														BgL_typez00_1774 =
																															((obj_t)
																															(((BgL_variablez00_bglt) COBJECT(((BgL_variablez00_bglt) ((BgL_localz00_bglt) BgL_vz00_1778))))->BgL_typez00));
																													}
																												else
																													{	/* Cfa/specialize.scm 282 */
																														obj_t
																															BgL_arg1712z00_1781;
																														BgL_arg1712z00_1781
																															=
																															(((BgL_variablez00_bglt) COBJECT(((BgL_variablez00_bglt) ((BgL_globalz00_bglt) BgL_globalz00_1768))))->BgL_idz00);
																														BgL_typez00_1774 =
																															BGl_internalzd2errorzd2zztools_errorz00
																															(BGl_string2047z00zzcfa_specializa7eza7,
																															BGl_string2048z00zzcfa_specializa7eza7,
																															BgL_arg1712z00_1781);
																													}
																											}
																									}
																								}
																								BGl_installzd2specializa7edzd2typez12zb5zzcfa_specializa7eza7
																									(BgL_typez00_1774);
																								{	/* Cfa/specialize.scm 284 */
																									obj_t BgL_arg1706z00_1775;
																									obj_t BgL_arg1707z00_1776;

																									BgL_arg1706z00_1775 =
																										CDR(
																										((obj_t)
																											BgL_fixesz00_1753));
																									{	/* Cfa/specialize.scm 285 */
																										obj_t BgL_arg1708z00_1777;

																										BgL_arg1708z00_1777 =
																											MAKE_YOUNG_PAIR
																											(BgL_typez00_1774,
																											BgL_globalz00_1768);
																										BgL_arg1707z00_1776 =
																											MAKE_YOUNG_PAIR
																											(BgL_arg1708z00_1777,
																											BgL_resz00_1754);
																									}
																									{
																										obj_t BgL_resz00_3678;
																										obj_t BgL_fixesz00_3677;

																										BgL_fixesz00_3677 =
																											BgL_arg1706z00_1775;
																										BgL_resz00_3678 =
																											BgL_arg1707z00_1776;
																										BgL_resz00_1754 =
																											BgL_resz00_3678;
																										BgL_fixesz00_1753 =
																											BgL_fixesz00_3677;
																										goto
																											BgL_zc3z04anonymousza31688ze3z87_1755;
																									}
																								}
																							}
																						else
																							{	/* Cfa/specialize.scm 286 */
																								bool_t BgL_test2192z00_3679;

																								{	/* Cfa/specialize.scm 286 */
																									bool_t BgL_test2193z00_3680;

																									{	/* Cfa/specialize.scm 286 */
																										obj_t BgL_classz00_2639;

																										BgL_classz00_2639 =
																											BGl_cfunz00zzast_varz00;
																										{	/* Cfa/specialize.scm 286 */
																											BgL_objectz00_bglt
																												BgL_arg1801z00_2641;
																											{	/* Cfa/specialize.scm 286 */
																												obj_t BgL_tmpz00_3681;

																												BgL_tmpz00_3681 =
																													((obj_t)
																													((BgL_objectz00_bglt)
																														BgL_valz00_1770));
																												BgL_arg1801z00_2641 =
																													(BgL_objectz00_bglt)
																													(BgL_tmpz00_3681);
																											}
																											if (BGL_CONDEXPAND_ISA_ARCH64())
																												{	/* Cfa/specialize.scm 286 */
																													long BgL_idxz00_2647;

																													BgL_idxz00_2647 =
																														BGL_OBJECT_INHERITANCE_NUM
																														(BgL_arg1801z00_2641);
																													BgL_test2193z00_3680 =
																														(VECTOR_REF
																														(BGl_za2inheritancesza2z00zz__objectz00,
																															(BgL_idxz00_2647 +
																																3L)) ==
																														BgL_classz00_2639);
																												}
																											else
																												{	/* Cfa/specialize.scm 286 */
																													bool_t
																														BgL_res2025z00_2669;
																													{	/* Cfa/specialize.scm 286 */
																														obj_t
																															BgL_oclassz00_2655;
																														{	/* Cfa/specialize.scm 286 */
																															long
																																BgL_arg1808z00_2661;
																															{	/* Cfa/specialize.scm 286 */
																																long
																																	BgL_arg1809z00_2662;
																																BgL_arg1809z00_2662
																																	=
																																	BGL_OBJECT_CLASS_NUM
																																	(BgL_arg1801z00_2641);
																																BgL_arg1808z00_2661
																																	=
																																	(BgL_arg1809z00_2662
																																	-
																																	OBJECT_TYPE);
																															}
																															BgL_oclassz00_2655
																																=
																																VECTOR_REF
																																(BGl_za2classesza2z00zz__objectz00,
																																BgL_arg1808z00_2661);
																														}
																														{	/* Cfa/specialize.scm 286 */
																															bool_t
																																BgL__ortest_1115z00_2656;
																															BgL__ortest_1115z00_2656
																																=
																																(BgL_classz00_2639
																																==
																																BgL_oclassz00_2655);
																															if (BgL__ortest_1115z00_2656)
																																{	/* Cfa/specialize.scm 286 */
																																	BgL_res2025z00_2669
																																		=
																																		BgL__ortest_1115z00_2656;
																																}
																															else
																																{	/* Cfa/specialize.scm 286 */
																																	long
																																		BgL_odepthz00_2657;
																																	BgL_odepthz00_2657
																																		=
																																		BGL_CLASS_DEPTH
																																		(BgL_oclassz00_2655);
																																	if ((3L <
																																			BgL_odepthz00_2657))
																																		{	/* Cfa/specialize.scm 286 */
																																			obj_t
																																				BgL_arg1797z00_2659;
																																			BgL_arg1797z00_2659
																																				=
																																				BGL_CLASS_ANCESTORS_REF
																																				(BgL_oclassz00_2655,
																																				3L);
																																			BgL_res2025z00_2669
																																				=
																																				(BgL_arg1797z00_2659
																																				==
																																				BgL_classz00_2639);
																																		}
																																	else
																																		{	/* Cfa/specialize.scm 286 */
																																			BgL_res2025z00_2669
																																				=
																																				(
																																				(bool_t)
																																				0);
																																		}
																																}
																														}
																													}
																													BgL_test2193z00_3680 =
																														BgL_res2025z00_2669;
																												}
																										}
																									}
																									if (BgL_test2193z00_3680)
																										{	/* Cfa/specialize.scm 286 */
																											obj_t BgL_tmpz00_3701;

																											BgL_tmpz00_3701 =
																												(((BgL_cfunz00_bglt)
																													COBJECT((
																															(BgL_cfunz00_bglt)
																															BgL_valz00_1770)))->
																												BgL_argszd2typezd2);
																											BgL_test2192z00_3679 =
																												PAIRP(BgL_tmpz00_3701);
																										}
																									else
																										{	/* Cfa/specialize.scm 286 */
																											BgL_test2192z00_3679 =
																												((bool_t) 0);
																										}
																								}
																								if (BgL_test2192z00_3679)
																									{	/* Cfa/specialize.scm 287 */
																										obj_t BgL_typez00_1786;

																										{	/* Cfa/specialize.scm 287 */
																											obj_t BgL_pairz00_2672;

																											BgL_pairz00_2672 =
																												(((BgL_cfunz00_bglt)
																													COBJECT((
																															(BgL_cfunz00_bglt)
																															BgL_valz00_1770)))->
																												BgL_argszd2typezd2);
																											BgL_typez00_1786 =
																												CAR(BgL_pairz00_2672);
																										}
																										BGl_installzd2specializa7edzd2typez12zb5zzcfa_specializa7eza7
																											(BgL_typez00_1786);
																										{	/* Cfa/specialize.scm 289 */
																											obj_t BgL_arg1729z00_1787;
																											obj_t BgL_arg1730z00_1788;

																											BgL_arg1729z00_1787 =
																												CDR(
																												((obj_t)
																													BgL_fixesz00_1753));
																											{	/* Cfa/specialize.scm 290 */
																												obj_t
																													BgL_arg1731z00_1789;
																												BgL_arg1731z00_1789 =
																													MAKE_YOUNG_PAIR
																													(BgL_typez00_1786,
																													BgL_globalz00_1768);
																												BgL_arg1730z00_1788 =
																													MAKE_YOUNG_PAIR
																													(BgL_arg1731z00_1789,
																													BgL_resz00_1754);
																											}
																											{
																												obj_t BgL_resz00_3714;
																												obj_t BgL_fixesz00_3713;

																												BgL_fixesz00_3713 =
																													BgL_arg1729z00_1787;
																												BgL_resz00_3714 =
																													BgL_arg1730z00_1788;
																												BgL_resz00_1754 =
																													BgL_resz00_3714;
																												BgL_fixesz00_1753 =
																													BgL_fixesz00_3713;
																												goto
																													BgL_zc3z04anonymousza31688ze3z87_1755;
																											}
																										}
																									}
																								else
																									{	/* Cfa/specialize.scm 286 */
																										return BFALSE;
																									}
																							}
																					}
																				}
																			else
																				{	/* Cfa/specialize.scm 268 */
																					{	/* Cfa/specialize.scm 295 */
																						obj_t BgL_arg1735z00_1795;

																						BgL_arg1735z00_1795 =
																							MAKE_YOUNG_PAIR(BgL_idz00_1766,
																							BgL_modz00_1767);
																						{	/* Cfa/specialize.scm 292 */
																							obj_t BgL_list1736z00_1796;

																							{	/* Cfa/specialize.scm 292 */
																								obj_t BgL_arg1739z00_1797;

																								{	/* Cfa/specialize.scm 292 */
																									obj_t BgL_arg1741z00_1798;

																									{	/* Cfa/specialize.scm 292 */
																										obj_t BgL_arg1745z00_1799;

																										BgL_arg1745z00_1799 =
																											MAKE_YOUNG_PAIR
																											(BgL_arg1735z00_1795,
																											BNIL);
																										BgL_arg1741z00_1798 =
																											MAKE_YOUNG_PAIR
																											(BGl_string2049z00zzcfa_specializa7eza7,
																											BgL_arg1745z00_1799);
																									}
																									BgL_arg1739z00_1797 =
																										MAKE_YOUNG_PAIR
																										(BGl_string2050z00zzcfa_specializa7eza7,
																										BgL_arg1741z00_1798);
																								}
																								BgL_list1736z00_1796 =
																									MAKE_YOUNG_PAIR
																									(BGl_string2051z00zzcfa_specializa7eza7,
																									BgL_arg1739z00_1797);
																							}
																							BGl_warningz00zz__errorz00
																								(BgL_list1736z00_1796);
																						}
																					}
																					{	/* Cfa/specialize.scm 296 */
																						obj_t BgL_arg1746z00_1800;

																						BgL_arg1746z00_1800 =
																							CDR(((obj_t) BgL_fixesz00_1753));
																						{
																							obj_t BgL_fixesz00_3723;

																							BgL_fixesz00_3723 =
																								BgL_arg1746z00_1800;
																							BgL_fixesz00_1753 =
																								BgL_fixesz00_3723;
																							goto
																								BgL_zc3z04anonymousza31688ze3z87_1755;
																						}
																					}
																				}
																		}
																	}
																}
															}
														}
													}
											}
										else
											{	/* Cfa/specialize.scm 300 */
												obj_t BgL_arg1747z00_1802;

												BgL_arg1747z00_1802 =
													MAKE_YOUNG_PAIR(BgL_genzd2idzd2_1747,
													BgL_genzd2modzd2_1748);
												{	/* Cfa/specialize.scm 297 */
													obj_t BgL_list1748z00_1803;

													{	/* Cfa/specialize.scm 297 */
														obj_t BgL_arg1749z00_1804;

														{	/* Cfa/specialize.scm 297 */
															obj_t BgL_arg1750z00_1805;

															{	/* Cfa/specialize.scm 297 */
																obj_t BgL_arg1751z00_1806;

																BgL_arg1751z00_1806 =
																	MAKE_YOUNG_PAIR(BgL_arg1747z00_1802, BNIL);
																BgL_arg1750z00_1805 =
																	MAKE_YOUNG_PAIR
																	(BGl_string2049z00zzcfa_specializa7eza7,
																	BgL_arg1751z00_1806);
															}
															BgL_arg1749z00_1804 =
																MAKE_YOUNG_PAIR
																(BGl_string2050z00zzcfa_specializa7eza7,
																BgL_arg1750z00_1805);
														}
														BgL_list1748z00_1803 =
															MAKE_YOUNG_PAIR
															(BGl_string2051z00zzcfa_specializa7eza7,
															BgL_arg1749z00_1804);
													}
													BGL_TAIL return
														BGl_warningz00zz__errorz00(BgL_list1748z00_1803);
												}
											}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* uninstall-specializes! */
	obj_t BGl_uninstallzd2specializa7esz12z67zzcfa_specializa7eza7(void)
	{
		{	/* Cfa/specialize.scm 305 */
			BGl_za2specializa7edzd2typesza2z75zzcfa_specializa7eza7 = BNIL;
			{
				obj_t BgL_l1363z00_1808;

				BgL_l1363z00_1808 = BGl_za2specializa7eza2za7zzcfa_specializa7eza7;
			BgL_zc3z04anonymousza31752ze3z87_1809:
				if (PAIRP(BgL_l1363z00_1808))
					{	/* Cfa/specialize.scm 307 */
						{	/* Cfa/specialize.scm 307 */
							obj_t BgL_oz00_1811;

							BgL_oz00_1811 = CAR(BgL_l1363z00_1808);
							{	/* Cfa/specialize.scm 307 */
								long BgL_arg1759z00_1813;

								{	/* Cfa/specialize.scm 307 */
									obj_t BgL_arg1760z00_1814;

									{	/* Cfa/specialize.scm 307 */
										obj_t BgL_arg1763z00_1815;

										{	/* Cfa/specialize.scm 307 */
											long BgL_arg1808z00_2677;

											{	/* Cfa/specialize.scm 307 */
												long BgL_arg1809z00_2678;

												BgL_arg1809z00_2678 =
													BGL_OBJECT_CLASS_NUM(
													((BgL_objectz00_bglt) BgL_oz00_1811));
												BgL_arg1808z00_2677 =
													(BgL_arg1809z00_2678 - OBJECT_TYPE);
											}
											BgL_arg1763z00_1815 =
												VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
												BgL_arg1808z00_2677);
										}
										BgL_arg1760z00_1814 =
											BGl_classzd2superzd2zz__objectz00(BgL_arg1763z00_1815);
									}
									{	/* Cfa/specialize.scm 307 */
										obj_t BgL_tmpz00_3738;

										BgL_tmpz00_3738 = ((obj_t) BgL_arg1760z00_1814);
										BgL_arg1759z00_1813 = BGL_CLASS_NUM(BgL_tmpz00_3738);
								}}
								BGL_OBJECT_CLASS_NUM_SET(
									((BgL_objectz00_bglt) BgL_oz00_1811), BgL_arg1759z00_1813);
							}
							{	/* Cfa/specialize.scm 307 */
								BgL_objectz00_bglt BgL_tmpz00_3743;

								BgL_tmpz00_3743 = ((BgL_objectz00_bglt) BgL_oz00_1811);
								BGL_OBJECT_WIDENING_SET(BgL_tmpz00_3743, BFALSE);
							}
							((BgL_objectz00_bglt) BgL_oz00_1811);
							BgL_oz00_1811;
						}
						{
							obj_t BgL_l1363z00_3747;

							BgL_l1363z00_3747 = CDR(BgL_l1363z00_1808);
							BgL_l1363z00_1808 = BgL_l1363z00_3747;
							goto BgL_zc3z04anonymousza31752ze3z87_1809;
						}
					}
				else
					{	/* Cfa/specialize.scm 307 */
						((bool_t) 1);
					}
			}
			return (BGl_za2specializa7eza2za7zzcfa_specializa7eza7 = BNIL, BUNSPEC);
		}

	}



/* patch-tree! */
	bool_t BGl_patchzd2treez12zc0zzcfa_specializa7eza7(obj_t BgL_globalsz00_95)
	{
		{	/* Cfa/specialize.scm 313 */
			{
				obj_t BgL_l1365z00_1819;

				BgL_l1365z00_1819 = BgL_globalsz00_95;
			BgL_zc3z04anonymousza31769ze3z87_1820:
				if (PAIRP(BgL_l1365z00_1819))
					{	/* Cfa/specialize.scm 314 */
						BGl_patchzd2funz12zc0zzcfa_specializa7eza7(CAR(BgL_l1365z00_1819));
						{
							obj_t BgL_l1365z00_3753;

							BgL_l1365z00_3753 = CDR(BgL_l1365z00_1819);
							BgL_l1365z00_1819 = BgL_l1365z00_3753;
							goto BgL_zc3z04anonymousza31769ze3z87_1820;
						}
					}
				else
					{	/* Cfa/specialize.scm 314 */
						return ((bool_t) 1);
					}
			}
		}

	}



/* patch-fun! */
	obj_t BGl_patchzd2funz12zc0zzcfa_specializa7eza7(obj_t BgL_variablez00_96)
	{
		{	/* Cfa/specialize.scm 319 */
			{	/* Cfa/specialize.scm 320 */
				BgL_valuez00_bglt BgL_funz00_1825;

				BgL_funz00_1825 =
					(((BgL_variablez00_bglt) COBJECT(
							((BgL_variablez00_bglt) BgL_variablez00_96)))->BgL_valuez00);
				{	/* Cfa/specialize.scm 321 */
					obj_t BgL_arg1776z00_1826;

					{	/* Cfa/specialize.scm 321 */
						obj_t BgL_arg1793z00_1827;

						BgL_arg1793z00_1827 =
							(((BgL_sfunz00_bglt) COBJECT(
									((BgL_sfunz00_bglt) BgL_funz00_1825)))->BgL_bodyz00);
						BgL_arg1776z00_1826 =
							BGl_patchz12z12zzcfa_specializa7eza7(
							((BgL_nodez00_bglt) BgL_arg1793z00_1827));
					}
					return
						((((BgL_sfunz00_bglt) COBJECT(
									((BgL_sfunz00_bglt) BgL_funz00_1825)))->BgL_bodyz00) =
						((obj_t) BgL_arg1776z00_1826), BUNSPEC);
				}
			}
		}

	}



/* patch*! */
	obj_t BGl_patchza2z12zb0zzcfa_specializa7eza7(obj_t BgL_nodeza2za2_119)
	{
		{	/* Cfa/specialize.scm 527 */
			{
				obj_t BgL_nodeza2za2_1829;

				BgL_nodeza2za2_1829 = BgL_nodeza2za2_119;
			BgL_zc3z04anonymousza31794ze3z87_1830:
				if (NULLP(BgL_nodeza2za2_1829))
					{	/* Cfa/specialize.scm 529 */
						return CNST_TABLE_REF(7L);
					}
				else
					{	/* Cfa/specialize.scm 529 */
						{	/* Cfa/specialize.scm 532 */
							obj_t BgL_arg1798z00_1832;

							{	/* Cfa/specialize.scm 532 */
								obj_t BgL_arg1799z00_1833;

								BgL_arg1799z00_1833 = CAR(((obj_t) BgL_nodeza2za2_1829));
								BgL_arg1798z00_1832 =
									BGl_patchz12z12zzcfa_specializa7eza7(
									((BgL_nodez00_bglt) BgL_arg1799z00_1833));
							}
							{	/* Cfa/specialize.scm 532 */
								obj_t BgL_tmpz00_3770;

								BgL_tmpz00_3770 = ((obj_t) BgL_nodeza2za2_1829);
								SET_CAR(BgL_tmpz00_3770, BgL_arg1798z00_1832);
							}
						}
						{	/* Cfa/specialize.scm 533 */
							obj_t BgL_arg1800z00_1834;

							BgL_arg1800z00_1834 = CDR(((obj_t) BgL_nodeza2za2_1829));
							{
								obj_t BgL_nodeza2za2_3775;

								BgL_nodeza2za2_3775 = BgL_arg1800z00_1834;
								BgL_nodeza2za2_1829 = BgL_nodeza2za2_3775;
								goto BgL_zc3z04anonymousza31794ze3z87_1830;
							}
						}
					}
			}
		}

	}



/* specialize-app! */
	BgL_appz00_bglt
		BGl_specializa7ezd2appz12z67zzcfa_specializa7eza7(BgL_appz00_bglt
		BgL_nodez00_121)
	{
		{	/* Cfa/specialize.scm 552 */
			if (NULLP((((BgL_appz00_bglt) COBJECT(BgL_nodez00_121))->BgL_argsz00)))
				{	/* Cfa/specialize.scm 561 */
					return BgL_nodez00_121;
				}
			else
				{	/* Cfa/specialize.scm 565 */
					obj_t BgL_typez00_1840;

					BgL_typez00_1840 =
						BGl_normaliza7ezd2getzd2typeze70z40zzcfa_specializa7eza7(CAR(
							(((BgL_appz00_bglt) COBJECT(BgL_nodez00_121))->BgL_argsz00)));
					{	/* Cfa/specialize.scm 565 */
						BgL_variablez00_bglt BgL_gloz00_1841;

						BgL_gloz00_1841 =
							(((BgL_varz00_bglt) COBJECT(
									(((BgL_appz00_bglt) COBJECT(BgL_nodez00_121))->BgL_funz00)))->
							BgL_variablez00);
						{	/* Cfa/specialize.scm 566 */
							obj_t BgL_specz00_1842;

							{	/* Cfa/specialize.scm 567 */
								obj_t BgL_arg1833z00_1863;

								{
									BgL_specializa7edzd2globalz75_bglt BgL_auxz00_3784;

									{
										obj_t BgL_auxz00_3785;

										{	/* Cfa/specialize.scm 567 */
											BgL_objectz00_bglt BgL_tmpz00_3786;

											BgL_tmpz00_3786 =
												((BgL_objectz00_bglt)
												((BgL_globalz00_bglt) BgL_gloz00_1841));
											BgL_auxz00_3785 = BGL_OBJECT_WIDENING(BgL_tmpz00_3786);
										}
										BgL_auxz00_3784 =
											((BgL_specializa7edzd2globalz75_bglt) BgL_auxz00_3785);
									}
									BgL_arg1833z00_1863 =
										(((BgL_specializa7edzd2globalz75_bglt)
											COBJECT(BgL_auxz00_3784))->BgL_fixz00);
								}
								BgL_specz00_1842 =
									BGl_assqz00zz__r4_pairs_and_lists_6_3z00(BgL_typez00_1840,
									BgL_arg1833z00_1863);
							}
							{	/* Cfa/specialize.scm 567 */

								if (PAIRP(BgL_specz00_1842))
									{	/* Cfa/specialize.scm 569 */
										obj_t BgL_g1171z00_1844;

										BgL_g1171z00_1844 =
											CDR(
											(((BgL_appz00_bglt) COBJECT(BgL_nodez00_121))->
												BgL_argsz00));
										{
											obj_t BgL_argsz00_1846;

											BgL_argsz00_1846 = BgL_g1171z00_1844;
										BgL_zc3z04anonymousza31805ze3z87_1847:
											if (NULLP(BgL_argsz00_1846))
												{	/* Cfa/specialize.scm 571 */
													BGl_addzd2specializa7edzd2typez12zb5zzcfa_specializa7eza7
														(BgL_typez00_1840);
													{	/* Cfa/specialize.scm 573 */
														BgL_varz00_bglt BgL_arg1816z00_1849;
														obj_t BgL_arg1822z00_1850;

														BgL_arg1816z00_1849 =
															(((BgL_appz00_bglt) COBJECT(BgL_nodez00_121))->
															BgL_funz00);
														BgL_arg1822z00_1850 =
															CDR(((obj_t) BgL_specz00_1842));
														((((BgL_varz00_bglt) COBJECT(BgL_arg1816z00_1849))->
																BgL_variablez00) =
															((BgL_variablez00_bglt) ((BgL_variablez00_bglt)
																	BgL_arg1822z00_1850)), BUNSPEC);
													}
													{	/* Cfa/specialize.scm 574 */
														BgL_typez00_bglt BgL_ntz00_1851;

														BgL_ntz00_1851 =
															(((BgL_variablez00_bglt) COBJECT(
																	(((BgL_varz00_bglt) COBJECT(
																				(((BgL_appz00_bglt)
																						COBJECT(BgL_nodez00_121))->
																					BgL_funz00)))->BgL_variablez00)))->
															BgL_typez00);
														{	/* Cfa/specialize.scm 575 */
															BgL_typez00_bglt BgL_arg1823z00_1852;

															BgL_arg1823z00_1852 =
																BGl_strictzd2nodezd2typez00zzast_nodez00
																(BgL_ntz00_1851,
																((BgL_typez00_bglt) BgL_typez00_1840));
															((((BgL_nodez00_bglt) COBJECT(((BgL_nodez00_bglt)
																				BgL_nodez00_121)))->BgL_typez00) =
																((BgL_typez00_bglt) BgL_arg1823z00_1852),
																BUNSPEC);
														}
													}
													return BgL_nodez00_121;
												}
											else
												{	/* Cfa/specialize.scm 577 */
													bool_t BgL_test2203z00_3812;

													{	/* Cfa/specialize.scm 577 */
														obj_t BgL_arg1830z00_1859;

														{	/* Cfa/specialize.scm 577 */
															obj_t BgL_arg1831z00_1860;

															BgL_arg1831z00_1860 =
																CAR(((obj_t) BgL_argsz00_1846));
															BgL_arg1830z00_1859 =
																BGl_normaliza7ezd2getzd2typeze70z40zzcfa_specializa7eza7
																(BgL_arg1831z00_1860);
														}
														BgL_test2203z00_3812 =
															(BgL_arg1830z00_1859 == BgL_typez00_1840);
													}
													if (BgL_test2203z00_3812)
														{	/* Cfa/specialize.scm 578 */
															obj_t BgL_arg1829z00_1858;

															BgL_arg1829z00_1858 =
																CDR(((obj_t) BgL_argsz00_1846));
															{
																obj_t BgL_argsz00_3819;

																BgL_argsz00_3819 = BgL_arg1829z00_1858;
																BgL_argsz00_1846 = BgL_argsz00_3819;
																goto BgL_zc3z04anonymousza31805ze3z87_1847;
															}
														}
													else
														{	/* Cfa/specialize.scm 577 */
															BGL_TAIL return
																BGl_specializa7ezd2eqzf3z86zzcfa_specializa7eza7
																(BgL_nodez00_121);
														}
												}
										}
									}
								else
									{	/* Cfa/specialize.scm 568 */
										BGL_TAIL return
											BGl_specializa7ezd2eqzf3z86zzcfa_specializa7eza7
											(BgL_nodez00_121);
									}
							}
						}
					}
				}
		}

	}



/* normalize-get-type~0 */
	obj_t BGl_normaliza7ezd2getzd2typeze70z40zzcfa_specializa7eza7(obj_t
		BgL_valz00_1868)
	{
		{	/* Cfa/specialize.scm 558 */
			{	/* Cfa/specialize.scm 555 */
				BgL_typez00_bglt BgL_tyz00_1870;

				BgL_tyz00_1870 =
					BGl_getzd2typezd2zztype_typeofz00(
					((BgL_nodez00_bglt) BgL_valz00_1868), ((bool_t) 0));
				if ((((obj_t) BgL_tyz00_1870) == BGl_za2intza2z00zztype_cachez00))
					{	/* Cfa/specialize.scm 556 */
						return BGl_za2longza2z00zztype_cachez00;
					}
				else
					{	/* Cfa/specialize.scm 556 */
						return ((obj_t) BgL_tyz00_1870);
					}
			}
		}

	}



/* specialize-eq? */
	BgL_appz00_bglt
		BGl_specializa7ezd2eqzf3z86zzcfa_specializa7eza7(BgL_appz00_bglt
		BgL_nodez00_122)
	{
		{	/* Cfa/specialize.scm 591 */
			{
				BgL_appz00_bglt BgL_nodez00_1896;
				obj_t BgL_typez00_1897;

				{	/* Cfa/specialize.scm 598 */
					bool_t BgL_test2205z00_3828;

					{	/* Cfa/specialize.scm 598 */
						bool_t BgL_test2206z00_3829;

						{	/* Cfa/specialize.scm 598 */
							BgL_variablez00_bglt BgL_arg1856z00_1894;

							BgL_arg1856z00_1894 =
								(((BgL_varz00_bglt) COBJECT(
										(((BgL_appz00_bglt) COBJECT(BgL_nodez00_122))->
											BgL_funz00)))->BgL_variablez00);
							BgL_test2206z00_3829 =
								(((obj_t) BgL_arg1856z00_1894) ==
								BGl_za2czd2eqzf3za2z21zzcfa_specializa7eza7);
						}
						if (BgL_test2206z00_3829)
							{	/* Cfa/specialize.scm 599 */
								obj_t BgL_arg1855z00_1893;

								BgL_arg1855z00_1893 =
									BGl_thezd2backendzd2zzbackend_backendz00();
								BgL_test2205z00_3828 =
									(((BgL_backendz00_bglt) COBJECT(
											((BgL_backendz00_bglt) BgL_arg1855z00_1893)))->
									BgL_typedzd2eqzd2);
							}
						else
							{	/* Cfa/specialize.scm 598 */
								BgL_test2205z00_3828 = ((bool_t) 0);
							}
					}
					if (BgL_test2205z00_3828)
						{	/* Cfa/specialize.scm 601 */
							BgL_typez00_bglt BgL_t1z00_1881;
							BgL_typez00_bglt BgL_t2z00_1882;

							{	/* Cfa/specialize.scm 601 */
								obj_t BgL_arg1851z00_1888;

								BgL_arg1851z00_1888 =
									CAR(
									(((BgL_appz00_bglt) COBJECT(BgL_nodez00_122))->BgL_argsz00));
								BgL_t1z00_1881 =
									BGl_getzd2typezd2zztype_typeofz00(
									((BgL_nodez00_bglt) BgL_arg1851z00_1888), ((bool_t) 0));
							}
							{	/* Cfa/specialize.scm 602 */
								obj_t BgL_arg1853z00_1890;

								{	/* Cfa/specialize.scm 602 */
									obj_t BgL_pairz00_2749;

									BgL_pairz00_2749 =
										(((BgL_appz00_bglt) COBJECT(BgL_nodez00_122))->BgL_argsz00);
									BgL_arg1853z00_1890 = CAR(CDR(BgL_pairz00_2749));
								}
								BgL_t2z00_1882 =
									BGl_getzd2typezd2zztype_typeofz00(
									((BgL_nodez00_bglt) BgL_arg1853z00_1890), ((bool_t) 0));
							}
							{	/* Cfa/specialize.scm 604 */
								bool_t BgL_test2207z00_3846;

								if (
									(((obj_t) BgL_t1z00_1881) == BGl_za2objza2z00zztype_cachez00))
									{	/* Cfa/specialize.scm 604 */
										BgL_test2207z00_3846 =
											(
											((obj_t) BgL_t2z00_1882) ==
											BGl_za2objza2z00zztype_cachez00);
									}
								else
									{	/* Cfa/specialize.scm 604 */
										BgL_test2207z00_3846 = ((bool_t) 0);
									}
								if (BgL_test2207z00_3846)
									{	/* Cfa/specialize.scm 604 */
										BUNSPEC;
									}
								else
									{	/* Cfa/specialize.scm 604 */
										if (
											(((obj_t) BgL_t1z00_1881) ==
												BGl_za2bintza2z00zztype_cachez00))
											{	/* Cfa/specialize.scm 606 */
												if (
													(((obj_t) BgL_t2z00_1882) ==
														BGl_za2bintza2z00zztype_cachez00))
													{	/* Cfa/specialize.scm 607 */
														BgL_nodez00_1896 = BgL_nodez00_122;
														BgL_typez00_1897 = BGl_za2bintza2z00zztype_cachez00;
													BgL_zc3z04anonymousza31858ze3z87_1898:
														{	/* Cfa/specialize.scm 594 */
															bool_t BgL_test2211z00_3858;

															{	/* Cfa/specialize.scm 594 */
																obj_t BgL_objz00_2711;

																BgL_objz00_2711 =
																	BGl_za2boxedzd2eqzf3za2z21zzcfa_specializa7eza7;
																{	/* Cfa/specialize.scm 594 */
																	obj_t BgL_classz00_2712;

																	BgL_classz00_2712 = BGl_globalz00zzast_varz00;
																	if (BGL_OBJECTP(BgL_objz00_2711))
																		{	/* Cfa/specialize.scm 594 */
																			BgL_objectz00_bglt BgL_arg1801z00_2714;

																			BgL_arg1801z00_2714 =
																				(BgL_objectz00_bglt) (BgL_objz00_2711);
																			if (BGL_CONDEXPAND_ISA_ARCH64())
																				{	/* Cfa/specialize.scm 594 */
																					long BgL_idxz00_2720;

																					BgL_idxz00_2720 =
																						BGL_OBJECT_INHERITANCE_NUM
																						(BgL_arg1801z00_2714);
																					BgL_test2211z00_3858 =
																						(VECTOR_REF
																						(BGl_za2inheritancesza2z00zz__objectz00,
																							(BgL_idxz00_2720 + 2L)) ==
																						BgL_classz00_2712);
																				}
																			else
																				{	/* Cfa/specialize.scm 594 */
																					bool_t BgL_res2026z00_2742;

																					{	/* Cfa/specialize.scm 594 */
																						obj_t BgL_oclassz00_2728;

																						{	/* Cfa/specialize.scm 594 */
																							long BgL_arg1808z00_2734;

																							{	/* Cfa/specialize.scm 594 */
																								long BgL_arg1809z00_2735;

																								BgL_arg1809z00_2735 =
																									BGL_OBJECT_CLASS_NUM
																									(BgL_arg1801z00_2714);
																								BgL_arg1808z00_2734 =
																									(BgL_arg1809z00_2735 -
																									OBJECT_TYPE);
																							}
																							BgL_oclassz00_2728 =
																								VECTOR_REF
																								(BGl_za2classesza2z00zz__objectz00,
																								BgL_arg1808z00_2734);
																						}
																						{	/* Cfa/specialize.scm 594 */
																							bool_t BgL__ortest_1115z00_2729;

																							BgL__ortest_1115z00_2729 =
																								(BgL_classz00_2712 ==
																								BgL_oclassz00_2728);
																							if (BgL__ortest_1115z00_2729)
																								{	/* Cfa/specialize.scm 594 */
																									BgL_res2026z00_2742 =
																										BgL__ortest_1115z00_2729;
																								}
																							else
																								{	/* Cfa/specialize.scm 594 */
																									long BgL_odepthz00_2730;

																									BgL_odepthz00_2730 =
																										BGL_CLASS_DEPTH
																										(BgL_oclassz00_2728);
																									if ((2L < BgL_odepthz00_2730))
																										{	/* Cfa/specialize.scm 594 */
																											obj_t BgL_arg1797z00_2732;

																											BgL_arg1797z00_2732 =
																												BGL_CLASS_ANCESTORS_REF
																												(BgL_oclassz00_2728,
																												2L);
																											BgL_res2026z00_2742 =
																												(BgL_arg1797z00_2732 ==
																												BgL_classz00_2712);
																										}
																									else
																										{	/* Cfa/specialize.scm 594 */
																											BgL_res2026z00_2742 =
																												((bool_t) 0);
																										}
																								}
																						}
																					}
																					BgL_test2211z00_3858 =
																						BgL_res2026z00_2742;
																				}
																		}
																	else
																		{	/* Cfa/specialize.scm 594 */
																			BgL_test2211z00_3858 = ((bool_t) 0);
																		}
																}
															}
															if (BgL_test2211z00_3858)
																{	/* Cfa/specialize.scm 594 */
																	{	/* Cfa/specialize.scm 595 */
																		BgL_varz00_bglt BgL_arg1860z00_1900;

																		BgL_arg1860z00_1900 =
																			(((BgL_appz00_bglt)
																				COBJECT(BgL_nodez00_122))->BgL_funz00);
																		{	/* Cfa/specialize.scm 595 */
																			BgL_variablez00_bglt BgL_vz00_2744;

																			BgL_vz00_2744 =
																				((BgL_variablez00_bglt)
																				BGl_za2boxedzd2eqzf3za2z21zzcfa_specializa7eza7);
																			((((BgL_varz00_bglt)
																						COBJECT(BgL_arg1860z00_1900))->
																					BgL_variablez00) =
																				((BgL_variablez00_bglt) BgL_vz00_2744),
																				BUNSPEC);
																		}
																	}
																	BGl_addzd2specializa7edzd2eqzd2typez12z67zzcfa_specializa7eza7
																		(BgL_typez00_1897);
																}
															else
																{	/* Cfa/specialize.scm 594 */
																	BFALSE;
																}
														}
													}
												else
													{	/* Cfa/specialize.scm 607 */
														BFALSE;
													}
											}
										else
											{	/* Cfa/specialize.scm 606 */
												if (
													(((obj_t) BgL_t2z00_1882) ==
														BGl_za2bintza2z00zztype_cachez00))
													{	/* Cfa/specialize.scm 610 */
														BUNSPEC;
													}
												else
													{	/* Cfa/specialize.scm 610 */
														if (
															(((obj_t) BgL_t1z00_1881) ==
																BGl_za2brealza2z00zztype_cachez00))
															{	/* Cfa/specialize.scm 612 */
																if (
																	(((obj_t) BgL_t2z00_1882) ==
																		BGl_za2brealza2z00zztype_cachez00))
																	{
																		obj_t BgL_typez00_3892;
																		BgL_appz00_bglt BgL_nodez00_3891;

																		BgL_nodez00_3891 = BgL_nodez00_122;
																		BgL_typez00_3892 =
																			BGl_za2brealza2z00zztype_cachez00;
																		BgL_typez00_1897 = BgL_typez00_3892;
																		BgL_nodez00_1896 = BgL_nodez00_3891;
																		goto BgL_zc3z04anonymousza31858ze3z87_1898;
																	}
																else
																	{	/* Cfa/specialize.scm 613 */
																		BFALSE;
																	}
															}
														else
															{	/* Cfa/specialize.scm 612 */
																if (
																	(((obj_t) BgL_t2z00_1882) ==
																		BGl_za2brealza2z00zztype_cachez00))
																	{	/* Cfa/specialize.scm 616 */
																		BUNSPEC;
																	}
																else
																	{	/* Cfa/specialize.scm 616 */
																		if (
																			(((obj_t) BgL_t2z00_1882) ==
																				BGl_za2bintza2z00zztype_cachez00))
																			{	/* Cfa/specialize.scm 618 */
																				BUNSPEC;
																			}
																		else
																			{	/* Cfa/specialize.scm 618 */
																				if (
																					(((obj_t) BgL_t1z00_1881) ==
																						BGl_za2bcharza2z00zztype_cachez00))
																					{	/* Cfa/specialize.scm 620 */
																						if (
																							(((obj_t) BgL_t2z00_1882) ==
																								BGl_za2bcharza2z00zztype_cachez00))
																							{
																								obj_t BgL_typez00_3906;
																								BgL_appz00_bglt
																									BgL_nodez00_3905;
																								BgL_nodez00_3905 =
																									BgL_nodez00_122;
																								BgL_typez00_3906 =
																									BGl_za2bcharza2z00zztype_cachez00;
																								BgL_typez00_1897 =
																									BgL_typez00_3906;
																								BgL_nodez00_1896 =
																									BgL_nodez00_3905;
																								goto
																									BgL_zc3z04anonymousza31858ze3z87_1898;
																							}
																						else
																							{	/* Cfa/specialize.scm 621 */
																								BFALSE;
																							}
																					}
																				else
																					{	/* Cfa/specialize.scm 620 */
																						if (
																							(((obj_t) BgL_t2z00_1882) ==
																								BGl_za2bcharza2z00zztype_cachez00))
																							{	/* Cfa/specialize.scm 624 */
																								BUNSPEC;
																							}
																						else
																							{	/* Cfa/specialize.scm 626 */
																								bool_t BgL_test2224z00_3910;

																								if (BGl_bigloozd2typezf3z21zztype_typez00(BgL_t1z00_1881))
																									{	/* Cfa/specialize.scm 626 */
																										BgL_test2224z00_3910 =
																											BGl_bigloozd2typezf3z21zztype_typez00
																											(BgL_t2z00_1882);
																									}
																								else
																									{	/* Cfa/specialize.scm 626 */
																										BgL_test2224z00_3910 =
																											((bool_t) 0);
																									}
																								if (BgL_test2224z00_3910)
																									{	/* Cfa/specialize.scm 628 */
																										BgL_typez00_bglt
																											BgL_arg1850z00_1886;
																										if ((((obj_t)
																													BgL_t1z00_1881) ==
																												BGl_za2objza2z00zztype_cachez00))
																											{	/* Cfa/specialize.scm 628 */
																												BgL_arg1850z00_1886 =
																													BgL_t2z00_1882;
																											}
																										else
																											{	/* Cfa/specialize.scm 628 */
																												BgL_arg1850z00_1886 =
																													BgL_t1z00_1881;
																											}
																										{
																											obj_t BgL_typez00_3918;
																											BgL_appz00_bglt
																												BgL_nodez00_3917;
																											BgL_nodez00_3917 =
																												BgL_nodez00_122;
																											BgL_typez00_3918 =
																												((obj_t)
																												BgL_arg1850z00_1886);
																											BgL_typez00_1897 =
																												BgL_typez00_3918;
																											BgL_nodez00_1896 =
																												BgL_nodez00_3917;
																											goto
																												BgL_zc3z04anonymousza31858ze3z87_1898;
																										}
																									}
																								else
																									{	/* Cfa/specialize.scm 626 */
																										BUNSPEC;
																									}
																							}
																					}
																			}
																	}
															}
													}
											}
									}
							}
							return BgL_nodez00_122;
						}
					else
						{	/* Cfa/specialize.scm 598 */
							return BgL_nodez00_122;
						}
				}
			}
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zzcfa_specializa7eza7(void)
	{
		{	/* Cfa/specialize.scm 19 */
			{	/* Cfa/specialize.scm 35 */
				obj_t BgL_arg1868z00_1906;
				obj_t BgL_arg1870z00_1907;

				{	/* Cfa/specialize.scm 35 */
					obj_t BgL_v1376z00_1949;

					BgL_v1376z00_1949 = create_vector(1L);
					{	/* Cfa/specialize.scm 35 */
						obj_t BgL_arg1882z00_1950;

						BgL_arg1882z00_1950 =
							BGl_makezd2classzd2fieldz00zz__objectz00(CNST_TABLE_REF(8L),
							BGl_proc2053z00zzcfa_specializa7eza7,
							BGl_proc2052z00zzcfa_specializa7eza7, ((bool_t) 0), ((bool_t) 0),
							BFALSE, BFALSE, CNST_TABLE_REF(9L));
						VECTOR_SET(BgL_v1376z00_1949, 0L, BgL_arg1882z00_1950);
					}
					BgL_arg1868z00_1906 = BgL_v1376z00_1949;
				}
				{	/* Cfa/specialize.scm 35 */
					obj_t BgL_v1377z00_1960;

					BgL_v1377z00_1960 = create_vector(0L);
					BgL_arg1870z00_1907 = BgL_v1377z00_1960;
				}
				return (BGl_specializa7edzd2globalz75zzcfa_specializa7eza7 =
					BGl_registerzd2classz12zc0zz__objectz00(CNST_TABLE_REF(10L),
						CNST_TABLE_REF(11L), BGl_globalz00zzast_varz00, 16878L,
						BGl_proc2057z00zzcfa_specializa7eza7,
						BGl_proc2056z00zzcfa_specializa7eza7, BFALSE,
						BGl_proc2055z00zzcfa_specializa7eza7,
						BGl_proc2054z00zzcfa_specializa7eza7, BgL_arg1868z00_1906,
						BgL_arg1870z00_1907), BUNSPEC);
			}
		}

	}



/* &lambda1877 */
	BgL_globalz00_bglt BGl_z62lambda1877z62zzcfa_specializa7eza7(obj_t
		BgL_envz00_3022, obj_t BgL_o1130z00_3023)
	{
		{	/* Cfa/specialize.scm 35 */
			{	/* Cfa/specialize.scm 35 */
				long BgL_arg1879z00_3138;

				{	/* Cfa/specialize.scm 35 */
					obj_t BgL_arg1880z00_3139;

					{	/* Cfa/specialize.scm 35 */
						obj_t BgL_arg1881z00_3140;

						{	/* Cfa/specialize.scm 35 */
							long BgL_arg1808z00_3141;

							{	/* Cfa/specialize.scm 35 */
								long BgL_arg1809z00_3142;

								BgL_arg1809z00_3142 =
									BGL_OBJECT_CLASS_NUM(
									((BgL_objectz00_bglt)
										((BgL_globalz00_bglt) BgL_o1130z00_3023)));
								BgL_arg1808z00_3141 = (BgL_arg1809z00_3142 - OBJECT_TYPE);
							}
							BgL_arg1881z00_3140 =
								VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
								BgL_arg1808z00_3141);
						}
						BgL_arg1880z00_3139 =
							BGl_classzd2superzd2zz__objectz00(BgL_arg1881z00_3140);
					}
					{	/* Cfa/specialize.scm 35 */
						obj_t BgL_tmpz00_3935;

						BgL_tmpz00_3935 = ((obj_t) BgL_arg1880z00_3139);
						BgL_arg1879z00_3138 = BGL_CLASS_NUM(BgL_tmpz00_3935);
				}}
				BGL_OBJECT_CLASS_NUM_SET(
					((BgL_objectz00_bglt)
						((BgL_globalz00_bglt) BgL_o1130z00_3023)), BgL_arg1879z00_3138);
			}
			{	/* Cfa/specialize.scm 35 */
				BgL_objectz00_bglt BgL_tmpz00_3941;

				BgL_tmpz00_3941 =
					((BgL_objectz00_bglt) ((BgL_globalz00_bglt) BgL_o1130z00_3023));
				BGL_OBJECT_WIDENING_SET(BgL_tmpz00_3941, BFALSE);
			}
			((BgL_objectz00_bglt) ((BgL_globalz00_bglt) BgL_o1130z00_3023));
			return ((BgL_globalz00_bglt) ((BgL_globalz00_bglt) BgL_o1130z00_3023));
		}

	}



/* &<@anonymous:1876> */
	obj_t BGl_z62zc3z04anonymousza31876ze3ze5zzcfa_specializa7eza7(obj_t
		BgL_envz00_3024, obj_t BgL_new1129z00_3025)
	{
		{	/* Cfa/specialize.scm 35 */
			{
				BgL_globalz00_bglt BgL_auxz00_3949;

				((((BgL_variablez00_bglt) COBJECT(
								((BgL_variablez00_bglt)
									((BgL_globalz00_bglt) BgL_new1129z00_3025))))->BgL_idz00) =
					((obj_t) CNST_TABLE_REF(12L)), BUNSPEC);
				((((BgL_variablez00_bglt)
							COBJECT(((BgL_variablez00_bglt) ((BgL_globalz00_bglt)
										BgL_new1129z00_3025))))->BgL_namez00) =
					((obj_t) BUNSPEC), BUNSPEC);
				{
					BgL_typez00_bglt BgL_auxz00_3957;

					{	/* Cfa/specialize.scm 35 */
						obj_t BgL_classz00_3144;

						BgL_classz00_3144 = BGl_typez00zztype_typez00;
						{	/* Cfa/specialize.scm 35 */
							obj_t BgL__ortest_1117z00_3145;

							BgL__ortest_1117z00_3145 = BGL_CLASS_NIL(BgL_classz00_3144);
							if (CBOOL(BgL__ortest_1117z00_3145))
								{	/* Cfa/specialize.scm 35 */
									BgL_auxz00_3957 =
										((BgL_typez00_bglt) BgL__ortest_1117z00_3145);
								}
							else
								{	/* Cfa/specialize.scm 35 */
									BgL_auxz00_3957 =
										((BgL_typez00_bglt)
										BGl_classzd2nilzd2initz12z12zz__objectz00
										(BgL_classz00_3144));
								}
						}
					}
					((((BgL_variablez00_bglt) COBJECT(
									((BgL_variablez00_bglt)
										((BgL_globalz00_bglt) BgL_new1129z00_3025))))->
							BgL_typez00) = ((BgL_typez00_bglt) BgL_auxz00_3957), BUNSPEC);
				}
				{
					BgL_valuez00_bglt BgL_auxz00_3967;

					{	/* Cfa/specialize.scm 35 */
						obj_t BgL_classz00_3146;

						BgL_classz00_3146 = BGl_valuez00zzast_varz00;
						{	/* Cfa/specialize.scm 35 */
							obj_t BgL__ortest_1117z00_3147;

							BgL__ortest_1117z00_3147 = BGL_CLASS_NIL(BgL_classz00_3146);
							if (CBOOL(BgL__ortest_1117z00_3147))
								{	/* Cfa/specialize.scm 35 */
									BgL_auxz00_3967 =
										((BgL_valuez00_bglt) BgL__ortest_1117z00_3147);
								}
							else
								{	/* Cfa/specialize.scm 35 */
									BgL_auxz00_3967 =
										((BgL_valuez00_bglt)
										BGl_classzd2nilzd2initz12z12zz__objectz00
										(BgL_classz00_3146));
								}
						}
					}
					((((BgL_variablez00_bglt) COBJECT(
									((BgL_variablez00_bglt)
										((BgL_globalz00_bglt) BgL_new1129z00_3025))))->
							BgL_valuez00) = ((BgL_valuez00_bglt) BgL_auxz00_3967), BUNSPEC);
				}
				((((BgL_variablez00_bglt) COBJECT(
								((BgL_variablez00_bglt)
									((BgL_globalz00_bglt) BgL_new1129z00_3025))))->
						BgL_accessz00) = ((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_variablez00_bglt)
							COBJECT(((BgL_variablez00_bglt) ((BgL_globalz00_bglt)
										BgL_new1129z00_3025))))->BgL_fastzd2alphazd2) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_variablez00_bglt)
							COBJECT(((BgL_variablez00_bglt) ((BgL_globalz00_bglt)
										BgL_new1129z00_3025))))->BgL_removablez00) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_variablez00_bglt)
							COBJECT(((BgL_variablez00_bglt) ((BgL_globalz00_bglt)
										BgL_new1129z00_3025))))->BgL_occurrencez00) =
					((long) 0L), BUNSPEC);
				((((BgL_variablez00_bglt)
							COBJECT(((BgL_variablez00_bglt) ((BgL_globalz00_bglt)
										BgL_new1129z00_3025))))->BgL_occurrencewz00) =
					((long) 0L), BUNSPEC);
				((((BgL_variablez00_bglt)
							COBJECT(((BgL_variablez00_bglt) ((BgL_globalz00_bglt)
										BgL_new1129z00_3025))))->BgL_userzf3zf3) =
					((bool_t) ((bool_t) 0)), BUNSPEC);
				((((BgL_globalz00_bglt)
							COBJECT(((BgL_globalz00_bglt) ((BgL_globalz00_bglt)
										BgL_new1129z00_3025))))->BgL_modulez00) =
					((obj_t) CNST_TABLE_REF(12L)), BUNSPEC);
				((((BgL_globalz00_bglt)
							COBJECT(((BgL_globalz00_bglt) ((BgL_globalz00_bglt)
										BgL_new1129z00_3025))))->BgL_importz00) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_globalz00_bglt)
							COBJECT(((BgL_globalz00_bglt) ((BgL_globalz00_bglt)
										BgL_new1129z00_3025))))->BgL_evaluablezf3zf3) =
					((bool_t) ((bool_t) 0)), BUNSPEC);
				((((BgL_globalz00_bglt)
							COBJECT(((BgL_globalz00_bglt) ((BgL_globalz00_bglt)
										BgL_new1129z00_3025))))->BgL_evalzf3zf3) =
					((bool_t) ((bool_t) 0)), BUNSPEC);
				((((BgL_globalz00_bglt)
							COBJECT(((BgL_globalz00_bglt) ((BgL_globalz00_bglt)
										BgL_new1129z00_3025))))->BgL_libraryz00) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_globalz00_bglt)
							COBJECT(((BgL_globalz00_bglt) ((BgL_globalz00_bglt)
										BgL_new1129z00_3025))))->BgL_pragmaz00) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_globalz00_bglt)
							COBJECT(((BgL_globalz00_bglt) ((BgL_globalz00_bglt)
										BgL_new1129z00_3025))))->BgL_srcz00) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_globalz00_bglt)
							COBJECT(((BgL_globalz00_bglt) ((BgL_globalz00_bglt)
										BgL_new1129z00_3025))))->BgL_jvmzd2typezd2namez00) =
					((obj_t) BGl_string2058z00zzcfa_specializa7eza7), BUNSPEC);
				((((BgL_globalz00_bglt)
							COBJECT(((BgL_globalz00_bglt) ((BgL_globalz00_bglt)
										BgL_new1129z00_3025))))->BgL_initz00) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_globalz00_bglt)
							COBJECT(((BgL_globalz00_bglt) ((BgL_globalz00_bglt)
										BgL_new1129z00_3025))))->BgL_aliasz00) =
					((obj_t) BUNSPEC), BUNSPEC);
				{
					BgL_specializa7edzd2globalz75_bglt BgL_auxz00_4026;

					{
						obj_t BgL_auxz00_4027;

						{	/* Cfa/specialize.scm 35 */
							BgL_objectz00_bglt BgL_tmpz00_4028;

							BgL_tmpz00_4028 =
								((BgL_objectz00_bglt)
								((BgL_globalz00_bglt) BgL_new1129z00_3025));
							BgL_auxz00_4027 = BGL_OBJECT_WIDENING(BgL_tmpz00_4028);
						}
						BgL_auxz00_4026 =
							((BgL_specializa7edzd2globalz75_bglt) BgL_auxz00_4027);
					}
					((((BgL_specializa7edzd2globalz75_bglt) COBJECT(BgL_auxz00_4026))->
							BgL_fixz00) = ((obj_t) BUNSPEC), BUNSPEC);
				}
				BgL_auxz00_3949 = ((BgL_globalz00_bglt) BgL_new1129z00_3025);
				return ((obj_t) BgL_auxz00_3949);
			}
		}

	}



/* &lambda1874 */
	BgL_globalz00_bglt BGl_z62lambda1874z62zzcfa_specializa7eza7(obj_t
		BgL_envz00_3026, obj_t BgL_o1126z00_3027)
	{
		{	/* Cfa/specialize.scm 35 */
			{	/* Cfa/specialize.scm 35 */
				BgL_specializa7edzd2globalz75_bglt BgL_wide1128z00_3149;

				BgL_wide1128z00_3149 =
					((BgL_specializa7edzd2globalz75_bglt) BOBJECT(GC_MALLOC(sizeof(struct
								BgL_specializa7edzd2globalz75_bgl))));
				{	/* Cfa/specialize.scm 35 */
					obj_t BgL_auxz00_4041;
					BgL_objectz00_bglt BgL_tmpz00_4037;

					BgL_auxz00_4041 = ((obj_t) BgL_wide1128z00_3149);
					BgL_tmpz00_4037 =
						((BgL_objectz00_bglt)
						((BgL_globalz00_bglt) ((BgL_globalz00_bglt) BgL_o1126z00_3027)));
					BGL_OBJECT_WIDENING_SET(BgL_tmpz00_4037, BgL_auxz00_4041);
				}
				((BgL_objectz00_bglt)
					((BgL_globalz00_bglt) ((BgL_globalz00_bglt) BgL_o1126z00_3027)));
				{	/* Cfa/specialize.scm 35 */
					long BgL_arg1875z00_3150;

					BgL_arg1875z00_3150 =
						BGL_CLASS_NUM(BGl_specializa7edzd2globalz75zzcfa_specializa7eza7);
					BGL_OBJECT_CLASS_NUM_SET(
						((BgL_objectz00_bglt)
							((BgL_globalz00_bglt)
								((BgL_globalz00_bglt) BgL_o1126z00_3027))),
						BgL_arg1875z00_3150);
				}
				return
					((BgL_globalz00_bglt)
					((BgL_globalz00_bglt) ((BgL_globalz00_bglt) BgL_o1126z00_3027)));
			}
		}

	}



/* &lambda1871 */
	BgL_globalz00_bglt BGl_z62lambda1871z62zzcfa_specializa7eza7(obj_t
		BgL_envz00_3028, obj_t BgL_id1105z00_3029, obj_t BgL_name1106z00_3030,
		obj_t BgL_type1107z00_3031, obj_t BgL_value1108z00_3032,
		obj_t BgL_access1109z00_3033, obj_t BgL_fastzd2alpha1110zd2_3034,
		obj_t BgL_removable1111z00_3035, obj_t BgL_occurrence1112z00_3036,
		obj_t BgL_occurrencew1113z00_3037, obj_t BgL_userzf31114zf3_3038,
		obj_t BgL_module1115z00_3039, obj_t BgL_import1116z00_3040,
		obj_t BgL_evaluablezf31117zf3_3041, obj_t BgL_evalzf31118zf3_3042,
		obj_t BgL_library1119z00_3043, obj_t BgL_pragma1120z00_3044,
		obj_t BgL_src1121z00_3045, obj_t BgL_jvmzd2typezd2name1122z00_3046,
		obj_t BgL_init1123z00_3047, obj_t BgL_alias1124z00_3048,
		obj_t BgL_fix1125z00_3049)
	{
		{	/* Cfa/specialize.scm 35 */
			{	/* Cfa/specialize.scm 35 */
				long BgL_occurrence1112z00_3154;
				long BgL_occurrencew1113z00_3155;
				bool_t BgL_userzf31114zf3_3156;
				bool_t BgL_evaluablezf31117zf3_3158;
				bool_t BgL_evalzf31118zf3_3159;

				BgL_occurrence1112z00_3154 = (long) CINT(BgL_occurrence1112z00_3036);
				BgL_occurrencew1113z00_3155 = (long) CINT(BgL_occurrencew1113z00_3037);
				BgL_userzf31114zf3_3156 = CBOOL(BgL_userzf31114zf3_3038);
				BgL_evaluablezf31117zf3_3158 = CBOOL(BgL_evaluablezf31117zf3_3041);
				BgL_evalzf31118zf3_3159 = CBOOL(BgL_evalzf31118zf3_3042);
				{	/* Cfa/specialize.scm 35 */
					BgL_globalz00_bglt BgL_new1176z00_3161;

					{	/* Cfa/specialize.scm 35 */
						BgL_globalz00_bglt BgL_tmp1174z00_3162;
						BgL_specializa7edzd2globalz75_bglt BgL_wide1175z00_3163;

						{
							BgL_globalz00_bglt BgL_auxz00_4060;

							{	/* Cfa/specialize.scm 35 */
								BgL_globalz00_bglt BgL_new1173z00_3164;

								BgL_new1173z00_3164 =
									((BgL_globalz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
												BgL_globalz00_bgl))));
								{	/* Cfa/specialize.scm 35 */
									long BgL_arg1873z00_3165;

									BgL_arg1873z00_3165 =
										BGL_CLASS_NUM(BGl_globalz00zzast_varz00);
									BGL_OBJECT_CLASS_NUM_SET(
										((BgL_objectz00_bglt) BgL_new1173z00_3164),
										BgL_arg1873z00_3165);
								}
								{	/* Cfa/specialize.scm 35 */
									BgL_objectz00_bglt BgL_tmpz00_4065;

									BgL_tmpz00_4065 = ((BgL_objectz00_bglt) BgL_new1173z00_3164);
									BGL_OBJECT_WIDENING_SET(BgL_tmpz00_4065, BFALSE);
								}
								((BgL_objectz00_bglt) BgL_new1173z00_3164);
								BgL_auxz00_4060 = BgL_new1173z00_3164;
							}
							BgL_tmp1174z00_3162 = ((BgL_globalz00_bglt) BgL_auxz00_4060);
						}
						BgL_wide1175z00_3163 =
							((BgL_specializa7edzd2globalz75_bglt)
							BOBJECT(GC_MALLOC(sizeof(struct
										BgL_specializa7edzd2globalz75_bgl))));
						{	/* Cfa/specialize.scm 35 */
							obj_t BgL_auxz00_4073;
							BgL_objectz00_bglt BgL_tmpz00_4071;

							BgL_auxz00_4073 = ((obj_t) BgL_wide1175z00_3163);
							BgL_tmpz00_4071 = ((BgL_objectz00_bglt) BgL_tmp1174z00_3162);
							BGL_OBJECT_WIDENING_SET(BgL_tmpz00_4071, BgL_auxz00_4073);
						}
						((BgL_objectz00_bglt) BgL_tmp1174z00_3162);
						{	/* Cfa/specialize.scm 35 */
							long BgL_arg1872z00_3166;

							BgL_arg1872z00_3166 =
								BGL_CLASS_NUM
								(BGl_specializa7edzd2globalz75zzcfa_specializa7eza7);
							BGL_OBJECT_CLASS_NUM_SET(((BgL_objectz00_bglt)
									BgL_tmp1174z00_3162), BgL_arg1872z00_3166);
						}
						BgL_new1176z00_3161 = ((BgL_globalz00_bglt) BgL_tmp1174z00_3162);
					}
					((((BgL_variablez00_bglt) COBJECT(
									((BgL_variablez00_bglt) BgL_new1176z00_3161)))->BgL_idz00) =
						((obj_t) ((obj_t) BgL_id1105z00_3029)), BUNSPEC);
					((((BgL_variablez00_bglt) COBJECT(((BgL_variablez00_bglt)
										BgL_new1176z00_3161)))->BgL_namez00) =
						((obj_t) BgL_name1106z00_3030), BUNSPEC);
					((((BgL_variablez00_bglt) COBJECT(((BgL_variablez00_bglt)
										BgL_new1176z00_3161)))->BgL_typez00) =
						((BgL_typez00_bglt) ((BgL_typez00_bglt) BgL_type1107z00_3031)),
						BUNSPEC);
					((((BgL_variablez00_bglt) COBJECT(((BgL_variablez00_bglt)
										BgL_new1176z00_3161)))->BgL_valuez00) =
						((BgL_valuez00_bglt) ((BgL_valuez00_bglt) BgL_value1108z00_3032)),
						BUNSPEC);
					((((BgL_variablez00_bglt) COBJECT(((BgL_variablez00_bglt)
										BgL_new1176z00_3161)))->BgL_accessz00) =
						((obj_t) BgL_access1109z00_3033), BUNSPEC);
					((((BgL_variablez00_bglt) COBJECT(((BgL_variablez00_bglt)
										BgL_new1176z00_3161)))->BgL_fastzd2alphazd2) =
						((obj_t) BgL_fastzd2alpha1110zd2_3034), BUNSPEC);
					((((BgL_variablez00_bglt) COBJECT(((BgL_variablez00_bglt)
										BgL_new1176z00_3161)))->BgL_removablez00) =
						((obj_t) BgL_removable1111z00_3035), BUNSPEC);
					((((BgL_variablez00_bglt) COBJECT(((BgL_variablez00_bglt)
										BgL_new1176z00_3161)))->BgL_occurrencez00) =
						((long) BgL_occurrence1112z00_3154), BUNSPEC);
					((((BgL_variablez00_bglt) COBJECT(((BgL_variablez00_bglt)
										BgL_new1176z00_3161)))->BgL_occurrencewz00) =
						((long) BgL_occurrencew1113z00_3155), BUNSPEC);
					((((BgL_variablez00_bglt) COBJECT(((BgL_variablez00_bglt)
										BgL_new1176z00_3161)))->BgL_userzf3zf3) =
						((bool_t) BgL_userzf31114zf3_3156), BUNSPEC);
					((((BgL_globalz00_bglt) COBJECT(((BgL_globalz00_bglt)
										BgL_new1176z00_3161)))->BgL_modulez00) =
						((obj_t) ((obj_t) BgL_module1115z00_3039)), BUNSPEC);
					((((BgL_globalz00_bglt) COBJECT(((BgL_globalz00_bglt)
										BgL_new1176z00_3161)))->BgL_importz00) =
						((obj_t) BgL_import1116z00_3040), BUNSPEC);
					((((BgL_globalz00_bglt) COBJECT(((BgL_globalz00_bglt)
										BgL_new1176z00_3161)))->BgL_evaluablezf3zf3) =
						((bool_t) BgL_evaluablezf31117zf3_3158), BUNSPEC);
					((((BgL_globalz00_bglt) COBJECT(((BgL_globalz00_bglt)
										BgL_new1176z00_3161)))->BgL_evalzf3zf3) =
						((bool_t) BgL_evalzf31118zf3_3159), BUNSPEC);
					((((BgL_globalz00_bglt) COBJECT(((BgL_globalz00_bglt)
										BgL_new1176z00_3161)))->BgL_libraryz00) =
						((obj_t) BgL_library1119z00_3043), BUNSPEC);
					((((BgL_globalz00_bglt) COBJECT(((BgL_globalz00_bglt)
										BgL_new1176z00_3161)))->BgL_pragmaz00) =
						((obj_t) BgL_pragma1120z00_3044), BUNSPEC);
					((((BgL_globalz00_bglt) COBJECT(((BgL_globalz00_bglt)
										BgL_new1176z00_3161)))->BgL_srcz00) =
						((obj_t) BgL_src1121z00_3045), BUNSPEC);
					((((BgL_globalz00_bglt) COBJECT(((BgL_globalz00_bglt)
										BgL_new1176z00_3161)))->BgL_jvmzd2typezd2namez00) =
						((obj_t) ((obj_t) BgL_jvmzd2typezd2name1122z00_3046)), BUNSPEC);
					((((BgL_globalz00_bglt) COBJECT(((BgL_globalz00_bglt)
										BgL_new1176z00_3161)))->BgL_initz00) =
						((obj_t) BgL_init1123z00_3047), BUNSPEC);
					((((BgL_globalz00_bglt) COBJECT(((BgL_globalz00_bglt)
										BgL_new1176z00_3161)))->BgL_aliasz00) =
						((obj_t) BgL_alias1124z00_3048), BUNSPEC);
					{
						BgL_specializa7edzd2globalz75_bglt BgL_auxz00_4126;

						{
							obj_t BgL_auxz00_4127;

							{	/* Cfa/specialize.scm 35 */
								BgL_objectz00_bglt BgL_tmpz00_4128;

								BgL_tmpz00_4128 = ((BgL_objectz00_bglt) BgL_new1176z00_3161);
								BgL_auxz00_4127 = BGL_OBJECT_WIDENING(BgL_tmpz00_4128);
							}
							BgL_auxz00_4126 =
								((BgL_specializa7edzd2globalz75_bglt) BgL_auxz00_4127);
						}
						((((BgL_specializa7edzd2globalz75_bglt) COBJECT(BgL_auxz00_4126))->
								BgL_fixz00) = ((obj_t) BgL_fix1125z00_3049), BUNSPEC);
					}
					return BgL_new1176z00_3161;
				}
			}
		}

	}



/* &lambda1886 */
	obj_t BGl_z62lambda1886z62zzcfa_specializa7eza7(obj_t BgL_envz00_3050,
		obj_t BgL_oz00_3051, obj_t BgL_vz00_3052)
	{
		{	/* Cfa/specialize.scm 35 */
			{
				BgL_specializa7edzd2globalz75_bglt BgL_auxz00_4133;

				{
					obj_t BgL_auxz00_4134;

					{	/* Cfa/specialize.scm 35 */
						BgL_objectz00_bglt BgL_tmpz00_4135;

						BgL_tmpz00_4135 =
							((BgL_objectz00_bglt) ((BgL_globalz00_bglt) BgL_oz00_3051));
						BgL_auxz00_4134 = BGL_OBJECT_WIDENING(BgL_tmpz00_4135);
					}
					BgL_auxz00_4133 =
						((BgL_specializa7edzd2globalz75_bglt) BgL_auxz00_4134);
				}
				return
					((((BgL_specializa7edzd2globalz75_bglt) COBJECT(BgL_auxz00_4133))->
						BgL_fixz00) = ((obj_t) BgL_vz00_3052), BUNSPEC);
			}
		}

	}



/* &lambda1885 */
	obj_t BGl_z62lambda1885z62zzcfa_specializa7eza7(obj_t BgL_envz00_3053,
		obj_t BgL_oz00_3054)
	{
		{	/* Cfa/specialize.scm 35 */
			{
				BgL_specializa7edzd2globalz75_bglt BgL_auxz00_4141;

				{
					obj_t BgL_auxz00_4142;

					{	/* Cfa/specialize.scm 35 */
						BgL_objectz00_bglt BgL_tmpz00_4143;

						BgL_tmpz00_4143 =
							((BgL_objectz00_bglt) ((BgL_globalz00_bglt) BgL_oz00_3054));
						BgL_auxz00_4142 = BGL_OBJECT_WIDENING(BgL_tmpz00_4143);
					}
					BgL_auxz00_4141 =
						((BgL_specializa7edzd2globalz75_bglt) BgL_auxz00_4142);
				}
				return
					(((BgL_specializa7edzd2globalz75_bglt) COBJECT(BgL_auxz00_4141))->
					BgL_fixz00);
			}
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zzcfa_specializa7eza7(void)
	{
		{	/* Cfa/specialize.scm 19 */
			return
				BGl_registerzd2genericz12zc0zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7,
				BGl_proc2059z00zzcfa_specializa7eza7, BGl_nodez00zzast_nodez00,
				BGl_string2060z00zzcfa_specializa7eza7);
		}

	}



/* &patch!1378 */
	obj_t BGl_z62patchz121378z70zzcfa_specializa7eza7(obj_t BgL_envz00_3056,
		obj_t BgL_nodez00_3057)
	{
		{	/* Cfa/specialize.scm 326 */
			return
				BGl_errorz00zz__errorz00(CNST_TABLE_REF(13L),
				BGl_string2061z00zzcfa_specializa7eza7,
				((obj_t) ((BgL_nodez00_bglt) BgL_nodez00_3057)));
		}

	}



/* patch! */
	obj_t BGl_patchz12z12zzcfa_specializa7eza7(BgL_nodez00_bglt BgL_nodez00_97)
	{
		{	/* Cfa/specialize.scm 326 */
			{	/* Cfa/specialize.scm 326 */
				obj_t BgL_method1381z00_1969;

				{	/* Cfa/specialize.scm 326 */
					obj_t BgL_res2031z00_2822;

					{	/* Cfa/specialize.scm 326 */
						long BgL_objzd2classzd2numz00_2793;

						BgL_objzd2classzd2numz00_2793 =
							BGL_OBJECT_CLASS_NUM(((BgL_objectz00_bglt) BgL_nodez00_97));
						{	/* Cfa/specialize.scm 326 */
							obj_t BgL_arg1805z00_2794;

							BgL_arg1805z00_2794 =
								PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7,
								(int) (1L));
							{	/* Cfa/specialize.scm 326 */
								int BgL_offsetz00_2797;

								BgL_offsetz00_2797 = (int) (BgL_objzd2classzd2numz00_2793);
								{	/* Cfa/specialize.scm 326 */
									long BgL_offsetz00_2798;

									BgL_offsetz00_2798 =
										((long) (BgL_offsetz00_2797) - OBJECT_TYPE);
									{	/* Cfa/specialize.scm 326 */
										long BgL_modz00_2799;

										BgL_modz00_2799 =
											(BgL_offsetz00_2798 >> (int) ((long) ((int) (4L))));
										{	/* Cfa/specialize.scm 326 */
											long BgL_restz00_2801;

											BgL_restz00_2801 =
												(BgL_offsetz00_2798 &
												(long) (
													(int) (
														((long) (
																(int) (
																	(1L <<
																		(int) ((long) ((int) (4L)))))) - 1L))));
											{	/* Cfa/specialize.scm 326 */

												{	/* Cfa/specialize.scm 326 */
													obj_t BgL_bucketz00_2803;

													BgL_bucketz00_2803 =
														VECTOR_REF(
														((obj_t) BgL_arg1805z00_2794), BgL_modz00_2799);
													BgL_res2031z00_2822 =
														VECTOR_REF(
														((obj_t) BgL_bucketz00_2803), BgL_restz00_2801);
					}}}}}}}}
					BgL_method1381z00_1969 = BgL_res2031z00_2822;
				}
				return
					(VA_PROCEDUREP(BgL_method1381z00_1969) ? ((obj_t(*)(obj_t,
								...))
						PROCEDURE_ENTRY(BgL_method1381z00_1969)) (BgL_method1381z00_1969,
						((obj_t) BgL_nodez00_97), BEOA) : ((obj_t(*)(obj_t,
								obj_t))
						PROCEDURE_ENTRY(BgL_method1381z00_1969)) (BgL_method1381z00_1969,
						((obj_t) BgL_nodez00_97)));
			}
		}

	}



/* &patch! */
	obj_t BGl_z62patchz12z70zzcfa_specializa7eza7(obj_t BgL_envz00_3058,
		obj_t BgL_nodez00_3059)
	{
		{	/* Cfa/specialize.scm 326 */
			return
				BGl_patchz12z12zzcfa_specializa7eza7(
				((BgL_nodez00_bglt) BgL_nodez00_3059));
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zzcfa_specializa7eza7(void)
	{
		{	/* Cfa/specialize.scm 19 */
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_atomz00zzast_nodez00,
				BGl_proc2062z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_kwotez00zzast_nodez00,
				BGl_proc2064z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_varz00zzast_nodez00,
				BGl_proc2065z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7,
				BGl_closurez00zzast_nodez00, BGl_proc2066z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7,
				BGl_sequencez00zzast_nodez00, BGl_proc2067z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_syncz00zzast_nodez00,
				BGl_proc2068z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7,
				BGl_appzd2lyzd2zzast_nodez00, BGl_proc2069z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7,
				BGl_funcallz00zzast_nodez00, BGl_proc2070z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_externz00zzast_nodez00,
				BGl_proc2071z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_castz00zzast_nodez00,
				BGl_proc2072z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_setqz00zzast_nodez00,
				BGl_proc2073z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7,
				BGl_conditionalz00zzast_nodez00, BGl_proc2074z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_failz00zzast_nodez00,
				BGl_proc2075z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_switchz00zzast_nodez00,
				BGl_proc2076z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7,
				BGl_letzd2funzd2zzast_nodez00, BGl_proc2077z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7,
				BGl_letzd2varzd2zzast_nodez00, BGl_proc2078z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7,
				BGl_setzd2exzd2itz00zzast_nodez00, BGl_proc2079z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7,
				BGl_jumpzd2exzd2itz00zzast_nodez00,
				BGl_proc2080z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7,
				BGl_makezd2boxzd2zzast_nodez00, BGl_proc2081z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7,
				BGl_boxzd2setz12zc0zzast_nodez00, BGl_proc2082z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7,
				BGl_boxzd2refzd2zzast_nodez00, BGl_proc2083z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
			return
				BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_appz00zzast_nodez00,
				BGl_proc2084z00zzcfa_specializa7eza7,
				BGl_string2063z00zzcfa_specializa7eza7);
		}

	}



/* &patch!-app1428 */
	obj_t BGl_z62patchz12zd2app1428za2zzcfa_specializa7eza7(obj_t BgL_envz00_3082,
		obj_t BgL_nodez00_3083)
	{
		{	/* Cfa/specialize.scm 538 */
			{
				BgL_appz00_bglt BgL_auxz00_4208;

				BGl_patchza2z12zb0zzcfa_specializa7eza7(
					(((BgL_appz00_bglt) COBJECT(
								((BgL_appz00_bglt) BgL_nodez00_3083)))->BgL_argsz00));
				{
					BgL_varz00_bglt BgL_auxz00_4212;

					{	/* Cfa/specialize.scm 541 */
						BgL_varz00_bglt BgL_arg1960z00_3171;

						BgL_arg1960z00_3171 =
							(((BgL_appz00_bglt) COBJECT(
									((BgL_appz00_bglt) BgL_nodez00_3083)))->BgL_funz00);
						BgL_auxz00_4212 =
							((BgL_varz00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(
								((BgL_nodez00_bglt) BgL_arg1960z00_3171)));
					}
					((((BgL_appz00_bglt) COBJECT(
									((BgL_appz00_bglt) BgL_nodez00_3083)))->BgL_funz00) =
						((BgL_varz00_bglt) BgL_auxz00_4212), BUNSPEC);
				}
				{	/* Cfa/specialize.scm 542 */
					BgL_variablez00_bglt BgL_vz00_3172;

					BgL_vz00_3172 =
						(((BgL_varz00_bglt) COBJECT(
								(((BgL_appz00_bglt) COBJECT(
											((BgL_appz00_bglt) BgL_nodez00_3083)))->BgL_funz00)))->
						BgL_variablez00);
					{	/* Cfa/specialize.scm 544 */
						bool_t BgL_test2229z00_4223;

						{	/* Cfa/specialize.scm 544 */
							obj_t BgL_classz00_3173;

							BgL_classz00_3173 =
								BGl_specializa7edzd2globalz75zzcfa_specializa7eza7;
							{	/* Cfa/specialize.scm 544 */
								obj_t BgL_oclassz00_3174;

								{	/* Cfa/specialize.scm 544 */
									long BgL_arg1808z00_3175;

									{	/* Cfa/specialize.scm 544 */
										long BgL_arg1809z00_3176;

										BgL_arg1809z00_3176 =
											BGL_OBJECT_CLASS_NUM(
											((BgL_objectz00_bglt) BgL_vz00_3172));
										BgL_arg1808z00_3175 = (BgL_arg1809z00_3176 - OBJECT_TYPE);
									}
									BgL_oclassz00_3174 =
										VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
										BgL_arg1808z00_3175);
								}
								BgL_test2229z00_4223 =
									(BgL_oclassz00_3174 == BgL_classz00_3173);
						}}
						if (BgL_test2229z00_4223)
							{	/* Cfa/specialize.scm 544 */
								BgL_auxz00_4208 =
									BGl_specializa7ezd2appz12z67zzcfa_specializa7eza7(
									((BgL_appz00_bglt) BgL_nodez00_3083));
							}
						else
							{	/* Cfa/specialize.scm 544 */
								BgL_auxz00_4208 = ((BgL_appz00_bglt) BgL_nodez00_3083);
							}
					}
				}
				return ((obj_t) BgL_auxz00_4208);
			}
		}

	}



/* &patch!-box-ref1426 */
	obj_t BGl_z62patchz12zd2boxzd2ref1426z70zzcfa_specializa7eza7(obj_t
		BgL_envz00_3084, obj_t BgL_nodez00_3085)
	{
		{	/* Cfa/specialize.scm 519 */
			{
				BgL_boxzd2refzd2_bglt BgL_auxz00_4233;

				{
					BgL_varz00_bglt BgL_auxz00_4234;

					{	/* Cfa/specialize.scm 521 */
						BgL_varz00_bglt BgL_arg1958z00_3178;

						BgL_arg1958z00_3178 =
							(((BgL_boxzd2refzd2_bglt) COBJECT(
									((BgL_boxzd2refzd2_bglt) BgL_nodez00_3085)))->BgL_varz00);
						BgL_auxz00_4234 =
							((BgL_varz00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(
								((BgL_nodez00_bglt) BgL_arg1958z00_3178)));
					}
					((((BgL_boxzd2refzd2_bglt) COBJECT(
									((BgL_boxzd2refzd2_bglt) BgL_nodez00_3085)))->BgL_varz00) =
						((BgL_varz00_bglt) BgL_auxz00_4234), BUNSPEC);
				}
				BgL_auxz00_4233 = ((BgL_boxzd2refzd2_bglt) BgL_nodez00_3085);
				return ((obj_t) BgL_auxz00_4233);
			}
		}

	}



/* &patch!-box-set!1424 */
	obj_t BGl_z62patchz12zd2boxzd2setz121424z62zzcfa_specializa7eza7(obj_t
		BgL_envz00_3086, obj_t BgL_nodez00_3087)
	{
		{	/* Cfa/specialize.scm 510 */
			{
				BgL_boxzd2setz12zc0_bglt BgL_auxz00_4244;

				{
					BgL_varz00_bglt BgL_auxz00_4245;

					{	/* Cfa/specialize.scm 512 */
						BgL_varz00_bglt BgL_arg1956z00_3180;

						BgL_arg1956z00_3180 =
							(((BgL_boxzd2setz12zc0_bglt) COBJECT(
									((BgL_boxzd2setz12zc0_bglt) BgL_nodez00_3087)))->BgL_varz00);
						BgL_auxz00_4245 =
							((BgL_varz00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(
								((BgL_nodez00_bglt) BgL_arg1956z00_3180)));
					}
					((((BgL_boxzd2setz12zc0_bglt) COBJECT(
									((BgL_boxzd2setz12zc0_bglt) BgL_nodez00_3087)))->BgL_varz00) =
						((BgL_varz00_bglt) BgL_auxz00_4245), BUNSPEC);
				}
				{
					BgL_nodez00_bglt BgL_auxz00_4253;

					{	/* Cfa/specialize.scm 513 */
						BgL_nodez00_bglt BgL_arg1957z00_3181;

						BgL_arg1957z00_3181 =
							(((BgL_boxzd2setz12zc0_bglt) COBJECT(
									((BgL_boxzd2setz12zc0_bglt) BgL_nodez00_3087)))->
							BgL_valuez00);
						BgL_auxz00_4253 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1957z00_3181));
					}
					((((BgL_boxzd2setz12zc0_bglt) COBJECT(
									((BgL_boxzd2setz12zc0_bglt) BgL_nodez00_3087)))->
							BgL_valuez00) = ((BgL_nodez00_bglt) BgL_auxz00_4253), BUNSPEC);
				}
				BgL_auxz00_4244 = ((BgL_boxzd2setz12zc0_bglt) BgL_nodez00_3087);
				return ((obj_t) BgL_auxz00_4244);
			}
		}

	}



/* &patch!-make-box1422 */
	obj_t BGl_z62patchz12zd2makezd2box1422z70zzcfa_specializa7eza7(obj_t
		BgL_envz00_3088, obj_t BgL_nodez00_3089)
	{
		{	/* Cfa/specialize.scm 502 */
			{
				BgL_makezd2boxzd2_bglt BgL_auxz00_4262;

				{
					BgL_nodez00_bglt BgL_auxz00_4263;

					{	/* Cfa/specialize.scm 504 */
						BgL_nodez00_bglt BgL_arg1955z00_3183;

						BgL_arg1955z00_3183 =
							(((BgL_makezd2boxzd2_bglt) COBJECT(
									((BgL_makezd2boxzd2_bglt) BgL_nodez00_3089)))->BgL_valuez00);
						BgL_auxz00_4263 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1955z00_3183));
					}
					((((BgL_makezd2boxzd2_bglt) COBJECT(
									((BgL_makezd2boxzd2_bglt) BgL_nodez00_3089)))->BgL_valuez00) =
						((BgL_nodez00_bglt) BgL_auxz00_4263), BUNSPEC);
				}
				BgL_auxz00_4262 = ((BgL_makezd2boxzd2_bglt) BgL_nodez00_3089);
				return ((obj_t) BgL_auxz00_4262);
			}
		}

	}



/* &patch!-jump-ex-it1420 */
	obj_t BGl_z62patchz12zd2jumpzd2exzd2it1420za2zzcfa_specializa7eza7(obj_t
		BgL_envz00_3090, obj_t BgL_nodez00_3091)
	{
		{	/* Cfa/specialize.scm 493 */
			{
				BgL_jumpzd2exzd2itz00_bglt BgL_auxz00_4272;

				{
					BgL_nodez00_bglt BgL_auxz00_4273;

					{	/* Cfa/specialize.scm 495 */
						BgL_nodez00_bglt BgL_arg1953z00_3185;

						BgL_arg1953z00_3185 =
							(((BgL_jumpzd2exzd2itz00_bglt) COBJECT(
									((BgL_jumpzd2exzd2itz00_bglt) BgL_nodez00_3091)))->
							BgL_exitz00);
						BgL_auxz00_4273 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1953z00_3185));
					}
					((((BgL_jumpzd2exzd2itz00_bglt) COBJECT(
									((BgL_jumpzd2exzd2itz00_bglt) BgL_nodez00_3091)))->
							BgL_exitz00) = ((BgL_nodez00_bglt) BgL_auxz00_4273), BUNSPEC);
				}
				{
					BgL_nodez00_bglt BgL_auxz00_4280;

					{	/* Cfa/specialize.scm 496 */
						BgL_nodez00_bglt BgL_arg1954z00_3186;

						BgL_arg1954z00_3186 =
							(((BgL_jumpzd2exzd2itz00_bglt) COBJECT(
									((BgL_jumpzd2exzd2itz00_bglt) BgL_nodez00_3091)))->
							BgL_valuez00);
						BgL_auxz00_4280 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1954z00_3186));
					}
					((((BgL_jumpzd2exzd2itz00_bglt) COBJECT(
									((BgL_jumpzd2exzd2itz00_bglt) BgL_nodez00_3091)))->
							BgL_valuez00) = ((BgL_nodez00_bglt) BgL_auxz00_4280), BUNSPEC);
				}
				BgL_auxz00_4272 = ((BgL_jumpzd2exzd2itz00_bglt) BgL_nodez00_3091);
				return ((obj_t) BgL_auxz00_4272);
			}
		}

	}



/* &patch!-set-ex-it1418 */
	obj_t BGl_z62patchz12zd2setzd2exzd2it1418za2zzcfa_specializa7eza7(obj_t
		BgL_envz00_3092, obj_t BgL_nodez00_3093)
	{
		{	/* Cfa/specialize.scm 483 */
			{
				BgL_setzd2exzd2itz00_bglt BgL_auxz00_4289;

				{
					BgL_nodez00_bglt BgL_auxz00_4290;

					{	/* Cfa/specialize.scm 485 */
						BgL_nodez00_bglt BgL_arg1950z00_3188;

						BgL_arg1950z00_3188 =
							(((BgL_setzd2exzd2itz00_bglt) COBJECT(
									((BgL_setzd2exzd2itz00_bglt) BgL_nodez00_3093)))->
							BgL_bodyz00);
						BgL_auxz00_4290 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1950z00_3188));
					}
					((((BgL_setzd2exzd2itz00_bglt) COBJECT(
									((BgL_setzd2exzd2itz00_bglt) BgL_nodez00_3093)))->
							BgL_bodyz00) = ((BgL_nodez00_bglt) BgL_auxz00_4290), BUNSPEC);
				}
				{
					BgL_nodez00_bglt BgL_auxz00_4297;

					{	/* Cfa/specialize.scm 486 */
						BgL_nodez00_bglt BgL_arg1951z00_3189;

						BgL_arg1951z00_3189 =
							(((BgL_setzd2exzd2itz00_bglt) COBJECT(
									((BgL_setzd2exzd2itz00_bglt) BgL_nodez00_3093)))->
							BgL_onexitz00);
						BgL_auxz00_4297 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1951z00_3189));
					}
					((((BgL_setzd2exzd2itz00_bglt) COBJECT(
									((BgL_setzd2exzd2itz00_bglt) BgL_nodez00_3093)))->
							BgL_onexitz00) = ((BgL_nodez00_bglt) BgL_auxz00_4297), BUNSPEC);
				}
				{	/* Cfa/specialize.scm 487 */
					BgL_varz00_bglt BgL_arg1952z00_3190;

					BgL_arg1952z00_3190 =
						(((BgL_setzd2exzd2itz00_bglt) COBJECT(
								((BgL_setzd2exzd2itz00_bglt) BgL_nodez00_3093)))->BgL_varz00);
					BGl_patchz12z12zzcfa_specializa7eza7(
						((BgL_nodez00_bglt) BgL_arg1952z00_3190));
				}
				BgL_auxz00_4289 = ((BgL_setzd2exzd2itz00_bglt) BgL_nodez00_3093);
				return ((obj_t) BgL_auxz00_4289);
			}
		}

	}



/* &patch!-let-var1416 */
	obj_t BGl_z62patchz12zd2letzd2var1416z70zzcfa_specializa7eza7(obj_t
		BgL_envz00_3094, obj_t BgL_nodez00_3095)
	{
		{	/* Cfa/specialize.scm 468 */
			{
				BgL_letzd2varzd2_bglt BgL_auxz00_4310;

				{	/* Cfa/specialize.scm 470 */
					obj_t BgL_g1375z00_3192;

					BgL_g1375z00_3192 =
						(((BgL_letzd2varzd2_bglt) COBJECT(
								((BgL_letzd2varzd2_bglt) BgL_nodez00_3095)))->BgL_bindingsz00);
					{
						obj_t BgL_l1373z00_3194;

						BgL_l1373z00_3194 = BgL_g1375z00_3192;
					BgL_zc3z04anonymousza31942ze3z87_3193:
						if (PAIRP(BgL_l1373z00_3194))
							{	/* Cfa/specialize.scm 470 */
								{	/* Cfa/specialize.scm 471 */
									obj_t BgL_bindingz00_3195;

									BgL_bindingz00_3195 = CAR(BgL_l1373z00_3194);
									{	/* Cfa/specialize.scm 471 */
										obj_t BgL_valz00_3196;

										BgL_valz00_3196 = CDR(((obj_t) BgL_bindingz00_3195));
										{	/* Cfa/specialize.scm 472 */
											obj_t BgL_arg1944z00_3197;

											BgL_arg1944z00_3197 =
												BGl_patchz12z12zzcfa_specializa7eza7(
												((BgL_nodez00_bglt) BgL_valz00_3196));
											{	/* Cfa/specialize.scm 472 */
												obj_t BgL_tmpz00_4320;

												BgL_tmpz00_4320 = ((obj_t) BgL_bindingz00_3195);
												SET_CDR(BgL_tmpz00_4320, BgL_arg1944z00_3197);
											}
										}
									}
								}
								{
									obj_t BgL_l1373z00_4323;

									BgL_l1373z00_4323 = CDR(BgL_l1373z00_3194);
									BgL_l1373z00_3194 = BgL_l1373z00_4323;
									goto BgL_zc3z04anonymousza31942ze3z87_3193;
								}
							}
						else
							{	/* Cfa/specialize.scm 470 */
								((bool_t) 1);
							}
					}
				}
				{
					BgL_nodez00_bglt BgL_auxz00_4325;

					{	/* Cfa/specialize.scm 474 */
						BgL_nodez00_bglt BgL_arg1946z00_3198;

						BgL_arg1946z00_3198 =
							(((BgL_letzd2varzd2_bglt) COBJECT(
									((BgL_letzd2varzd2_bglt) BgL_nodez00_3095)))->BgL_bodyz00);
						BgL_auxz00_4325 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1946z00_3198));
					}
					((((BgL_letzd2varzd2_bglt) COBJECT(
									((BgL_letzd2varzd2_bglt) BgL_nodez00_3095)))->BgL_bodyz00) =
						((BgL_nodez00_bglt) BgL_auxz00_4325), BUNSPEC);
				}
				{	/* Cfa/specialize.scm 475 */
					bool_t BgL_test2231z00_4332;

					{	/* Cfa/specialize.scm 475 */
						BgL_typez00_bglt BgL_arg1949z00_3199;

						BgL_arg1949z00_3199 =
							(((BgL_nodez00_bglt) COBJECT(
									((BgL_nodez00_bglt)
										((BgL_letzd2varzd2_bglt) BgL_nodez00_3095))))->BgL_typez00);
						BgL_test2231z00_4332 =
							(
							((obj_t) BgL_arg1949z00_3199) == BGl_za2objza2z00zztype_cachez00);
					}
					if (BgL_test2231z00_4332)
						{	/* Cfa/specialize.scm 475 */
							((((BgL_nodez00_bglt) COBJECT(
											((BgL_nodez00_bglt)
												((BgL_letzd2varzd2_bglt) BgL_nodez00_3095))))->
									BgL_typez00) =
								((BgL_typez00_bglt) ((BgL_typez00_bglt)
										BGl_za2_za2z00zztype_cachez00)), BUNSPEC);
							((((BgL_nodez00_bglt)
										COBJECT(((BgL_nodez00_bglt) ((BgL_letzd2varzd2_bglt)
													BgL_nodez00_3095))))->BgL_typez00) =
								((BgL_typez00_bglt)
									BGl_getzd2typezd2zztype_typeofz00(((BgL_nodez00_bglt) (
												(BgL_letzd2varzd2_bglt) BgL_nodez00_3095)),
										((bool_t) 0))), BUNSPEC);
						}
					else
						{	/* Cfa/specialize.scm 475 */
							BFALSE;
						}
				}
				BgL_auxz00_4310 = ((BgL_letzd2varzd2_bglt) BgL_nodez00_3095);
				return ((obj_t) BgL_auxz00_4310);
			}
		}

	}



/* &patch!-let-fun1412 */
	obj_t BGl_z62patchz12zd2letzd2fun1412z70zzcfa_specializa7eza7(obj_t
		BgL_envz00_3096, obj_t BgL_nodez00_3097)
	{
		{	/* Cfa/specialize.scm 456 */
			{
				BgL_letzd2funzd2_bglt BgL_auxz00_4350;

				{	/* Cfa/specialize.scm 458 */
					obj_t BgL_g1372z00_3201;

					BgL_g1372z00_3201 =
						(((BgL_letzd2funzd2_bglt) COBJECT(
								((BgL_letzd2funzd2_bglt) BgL_nodez00_3097)))->BgL_localsz00);
					{
						obj_t BgL_l1370z00_3203;

						BgL_l1370z00_3203 = BgL_g1372z00_3201;
					BgL_zc3z04anonymousza31934ze3z87_3202:
						if (PAIRP(BgL_l1370z00_3203))
							{	/* Cfa/specialize.scm 458 */
								BGl_patchzd2funz12zc0zzcfa_specializa7eza7(CAR
									(BgL_l1370z00_3203));
								{
									obj_t BgL_l1370z00_4357;

									BgL_l1370z00_4357 = CDR(BgL_l1370z00_3203);
									BgL_l1370z00_3203 = BgL_l1370z00_4357;
									goto BgL_zc3z04anonymousza31934ze3z87_3202;
								}
							}
						else
							{	/* Cfa/specialize.scm 458 */
								((bool_t) 1);
							}
					}
				}
				{
					BgL_nodez00_bglt BgL_auxz00_4359;

					{	/* Cfa/specialize.scm 459 */
						BgL_nodez00_bglt BgL_arg1938z00_3204;

						BgL_arg1938z00_3204 =
							(((BgL_letzd2funzd2_bglt) COBJECT(
									((BgL_letzd2funzd2_bglt) BgL_nodez00_3097)))->BgL_bodyz00);
						BgL_auxz00_4359 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1938z00_3204));
					}
					((((BgL_letzd2funzd2_bglt) COBJECT(
									((BgL_letzd2funzd2_bglt) BgL_nodez00_3097)))->BgL_bodyz00) =
						((BgL_nodez00_bglt) BgL_auxz00_4359), BUNSPEC);
				}
				{	/* Cfa/specialize.scm 460 */
					bool_t BgL_test2233z00_4366;

					{	/* Cfa/specialize.scm 460 */
						BgL_typez00_bglt BgL_arg1941z00_3205;

						BgL_arg1941z00_3205 =
							(((BgL_nodez00_bglt) COBJECT(
									((BgL_nodez00_bglt)
										((BgL_letzd2funzd2_bglt) BgL_nodez00_3097))))->BgL_typez00);
						BgL_test2233z00_4366 =
							(
							((obj_t) BgL_arg1941z00_3205) == BGl_za2objza2z00zztype_cachez00);
					}
					if (BgL_test2233z00_4366)
						{	/* Cfa/specialize.scm 460 */
							((((BgL_nodez00_bglt) COBJECT(
											((BgL_nodez00_bglt)
												((BgL_letzd2funzd2_bglt) BgL_nodez00_3097))))->
									BgL_typez00) =
								((BgL_typez00_bglt) ((BgL_typez00_bglt)
										BGl_za2_za2z00zztype_cachez00)), BUNSPEC);
							((((BgL_nodez00_bglt)
										COBJECT(((BgL_nodez00_bglt) ((BgL_letzd2funzd2_bglt)
													BgL_nodez00_3097))))->BgL_typez00) =
								((BgL_typez00_bglt)
									BGl_getzd2typezd2zztype_typeofz00(((BgL_nodez00_bglt) (
												(BgL_letzd2funzd2_bglt) BgL_nodez00_3097)),
										((bool_t) 0))), BUNSPEC);
						}
					else
						{	/* Cfa/specialize.scm 460 */
							BFALSE;
						}
				}
				BgL_auxz00_4350 = ((BgL_letzd2funzd2_bglt) BgL_nodez00_3097);
				return ((obj_t) BgL_auxz00_4350);
			}
		}

	}



/* &patch!-switch1410 */
	obj_t BGl_z62patchz12zd2switch1410za2zzcfa_specializa7eza7(obj_t
		BgL_envz00_3098, obj_t BgL_nodez00_3099)
	{
		{	/* Cfa/specialize.scm 445 */
			{
				BgL_switchz00_bglt BgL_auxz00_4384;

				{
					BgL_nodez00_bglt BgL_auxz00_4385;

					{	/* Cfa/specialize.scm 447 */
						BgL_nodez00_bglt BgL_arg1927z00_3207;

						BgL_arg1927z00_3207 =
							(((BgL_switchz00_bglt) COBJECT(
									((BgL_switchz00_bglt) BgL_nodez00_3099)))->BgL_testz00);
						BgL_auxz00_4385 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1927z00_3207));
					}
					((((BgL_switchz00_bglt) COBJECT(
									((BgL_switchz00_bglt) BgL_nodez00_3099)))->BgL_testz00) =
						((BgL_nodez00_bglt) BgL_auxz00_4385), BUNSPEC);
				}
				{	/* Cfa/specialize.scm 448 */
					obj_t BgL_g1369z00_3208;

					BgL_g1369z00_3208 =
						(((BgL_switchz00_bglt) COBJECT(
								((BgL_switchz00_bglt) BgL_nodez00_3099)))->BgL_clausesz00);
					{
						obj_t BgL_l1367z00_3210;

						BgL_l1367z00_3210 = BgL_g1369z00_3208;
					BgL_zc3z04anonymousza31928ze3z87_3209:
						if (PAIRP(BgL_l1367z00_3210))
							{	/* Cfa/specialize.scm 448 */
								{	/* Cfa/specialize.scm 449 */
									obj_t BgL_clausez00_3211;

									BgL_clausez00_3211 = CAR(BgL_l1367z00_3210);
									{	/* Cfa/specialize.scm 449 */
										obj_t BgL_arg1930z00_3212;

										{	/* Cfa/specialize.scm 449 */
											obj_t BgL_arg1931z00_3213;

											BgL_arg1931z00_3213 = CDR(((obj_t) BgL_clausez00_3211));
											BgL_arg1930z00_3212 =
												BGl_patchz12z12zzcfa_specializa7eza7(
												((BgL_nodez00_bglt) BgL_arg1931z00_3213));
										}
										{	/* Cfa/specialize.scm 449 */
											obj_t BgL_tmpz00_4401;

											BgL_tmpz00_4401 = ((obj_t) BgL_clausez00_3211);
											SET_CDR(BgL_tmpz00_4401, BgL_arg1930z00_3212);
										}
									}
								}
								{
									obj_t BgL_l1367z00_4404;

									BgL_l1367z00_4404 = CDR(BgL_l1367z00_3210);
									BgL_l1367z00_3210 = BgL_l1367z00_4404;
									goto BgL_zc3z04anonymousza31928ze3z87_3209;
								}
							}
						else
							{	/* Cfa/specialize.scm 448 */
								((bool_t) 1);
							}
					}
				}
				BgL_auxz00_4384 = ((BgL_switchz00_bglt) BgL_nodez00_3099);
				return ((obj_t) BgL_auxz00_4384);
			}
		}

	}



/* &patch!-fail1408 */
	obj_t BGl_z62patchz12zd2fail1408za2zzcfa_specializa7eza7(obj_t
		BgL_envz00_3100, obj_t BgL_nodez00_3101)
	{
		{	/* Cfa/specialize.scm 435 */
			{
				BgL_failz00_bglt BgL_auxz00_4408;

				{
					BgL_nodez00_bglt BgL_auxz00_4409;

					{	/* Cfa/specialize.scm 437 */
						BgL_nodez00_bglt BgL_arg1924z00_3215;

						BgL_arg1924z00_3215 =
							(((BgL_failz00_bglt) COBJECT(
									((BgL_failz00_bglt) BgL_nodez00_3101)))->BgL_procz00);
						BgL_auxz00_4409 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1924z00_3215));
					}
					((((BgL_failz00_bglt) COBJECT(
									((BgL_failz00_bglt) BgL_nodez00_3101)))->BgL_procz00) =
						((BgL_nodez00_bglt) BgL_auxz00_4409), BUNSPEC);
				}
				{
					BgL_nodez00_bglt BgL_auxz00_4416;

					{	/* Cfa/specialize.scm 438 */
						BgL_nodez00_bglt BgL_arg1925z00_3216;

						BgL_arg1925z00_3216 =
							(((BgL_failz00_bglt) COBJECT(
									((BgL_failz00_bglt) BgL_nodez00_3101)))->BgL_msgz00);
						BgL_auxz00_4416 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1925z00_3216));
					}
					((((BgL_failz00_bglt) COBJECT(
									((BgL_failz00_bglt) BgL_nodez00_3101)))->BgL_msgz00) =
						((BgL_nodez00_bglt) BgL_auxz00_4416), BUNSPEC);
				}
				{
					BgL_nodez00_bglt BgL_auxz00_4423;

					{	/* Cfa/specialize.scm 439 */
						BgL_nodez00_bglt BgL_arg1926z00_3217;

						BgL_arg1926z00_3217 =
							(((BgL_failz00_bglt) COBJECT(
									((BgL_failz00_bglt) BgL_nodez00_3101)))->BgL_objz00);
						BgL_auxz00_4423 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1926z00_3217));
					}
					((((BgL_failz00_bglt) COBJECT(
									((BgL_failz00_bglt) BgL_nodez00_3101)))->BgL_objz00) =
						((BgL_nodez00_bglt) BgL_auxz00_4423), BUNSPEC);
				}
				BgL_auxz00_4408 = ((BgL_failz00_bglt) BgL_nodez00_3101);
				return ((obj_t) BgL_auxz00_4408);
			}
		}

	}



/* &patch!-conditional1406 */
	obj_t BGl_z62patchz12zd2conditional1406za2zzcfa_specializa7eza7(obj_t
		BgL_envz00_3102, obj_t BgL_nodez00_3103)
	{
		{	/* Cfa/specialize.scm 422 */
			{
				BgL_conditionalz00_bglt BgL_auxz00_4432;

				{
					BgL_nodez00_bglt BgL_auxz00_4433;

					{	/* Cfa/specialize.scm 424 */
						BgL_nodez00_bglt BgL_arg1917z00_3219;

						BgL_arg1917z00_3219 =
							(((BgL_conditionalz00_bglt) COBJECT(
									((BgL_conditionalz00_bglt) BgL_nodez00_3103)))->BgL_testz00);
						BgL_auxz00_4433 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1917z00_3219));
					}
					((((BgL_conditionalz00_bglt) COBJECT(
									((BgL_conditionalz00_bglt) BgL_nodez00_3103)))->BgL_testz00) =
						((BgL_nodez00_bglt) BgL_auxz00_4433), BUNSPEC);
				}
				{
					BgL_nodez00_bglt BgL_auxz00_4440;

					{	/* Cfa/specialize.scm 425 */
						BgL_nodez00_bglt BgL_arg1918z00_3220;

						BgL_arg1918z00_3220 =
							(((BgL_conditionalz00_bglt) COBJECT(
									((BgL_conditionalz00_bglt) BgL_nodez00_3103)))->BgL_truez00);
						BgL_auxz00_4440 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1918z00_3220));
					}
					((((BgL_conditionalz00_bglt) COBJECT(
									((BgL_conditionalz00_bglt) BgL_nodez00_3103)))->BgL_truez00) =
						((BgL_nodez00_bglt) BgL_auxz00_4440), BUNSPEC);
				}
				{
					BgL_nodez00_bglt BgL_auxz00_4447;

					{	/* Cfa/specialize.scm 426 */
						BgL_nodez00_bglt BgL_arg1920z00_3221;

						BgL_arg1920z00_3221 =
							(((BgL_conditionalz00_bglt) COBJECT(
									((BgL_conditionalz00_bglt) BgL_nodez00_3103)))->BgL_falsez00);
						BgL_auxz00_4447 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1920z00_3221));
					}
					((((BgL_conditionalz00_bglt) COBJECT(
									((BgL_conditionalz00_bglt) BgL_nodez00_3103)))->
							BgL_falsez00) = ((BgL_nodez00_bglt) BgL_auxz00_4447), BUNSPEC);
				}
				{	/* Cfa/specialize.scm 427 */
					bool_t BgL_test2235z00_4454;

					{	/* Cfa/specialize.scm 427 */
						BgL_typez00_bglt BgL_arg1923z00_3222;

						BgL_arg1923z00_3222 =
							(((BgL_nodez00_bglt) COBJECT(
									((BgL_nodez00_bglt)
										((BgL_conditionalz00_bglt) BgL_nodez00_3103))))->
							BgL_typez00);
						BgL_test2235z00_4454 =
							(((obj_t) BgL_arg1923z00_3222) ==
							BGl_za2objza2z00zztype_cachez00);
					}
					if (BgL_test2235z00_4454)
						{	/* Cfa/specialize.scm 427 */
							((((BgL_nodez00_bglt) COBJECT(
											((BgL_nodez00_bglt)
												((BgL_conditionalz00_bglt) BgL_nodez00_3103))))->
									BgL_typez00) =
								((BgL_typez00_bglt) ((BgL_typez00_bglt)
										BGl_za2_za2z00zztype_cachez00)), BUNSPEC);
							((((BgL_nodez00_bglt)
										COBJECT(((BgL_nodez00_bglt) ((BgL_conditionalz00_bglt)
													BgL_nodez00_3103))))->BgL_typez00) =
								((BgL_typez00_bglt)
									BGl_getzd2typezd2zztype_typeofz00(((BgL_nodez00_bglt) (
												(BgL_conditionalz00_bglt) BgL_nodez00_3103)),
										((bool_t) 0))), BUNSPEC);
						}
					else
						{	/* Cfa/specialize.scm 427 */
							BFALSE;
						}
				}
				BgL_auxz00_4432 = ((BgL_conditionalz00_bglt) BgL_nodez00_3103);
				return ((obj_t) BgL_auxz00_4432);
			}
		}

	}



/* &patch!-setq1404 */
	obj_t BGl_z62patchz12zd2setq1404za2zzcfa_specializa7eza7(obj_t
		BgL_envz00_3104, obj_t BgL_nodez00_3105)
	{
		{	/* Cfa/specialize.scm 413 */
			{
				BgL_setqz00_bglt BgL_auxz00_4472;

				{
					BgL_nodez00_bglt BgL_auxz00_4473;

					{	/* Cfa/specialize.scm 415 */
						BgL_nodez00_bglt BgL_arg1915z00_3224;

						BgL_arg1915z00_3224 =
							(((BgL_setqz00_bglt) COBJECT(
									((BgL_setqz00_bglt) BgL_nodez00_3105)))->BgL_valuez00);
						BgL_auxz00_4473 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1915z00_3224));
					}
					((((BgL_setqz00_bglt) COBJECT(
									((BgL_setqz00_bglt) BgL_nodez00_3105)))->BgL_valuez00) =
						((BgL_nodez00_bglt) BgL_auxz00_4473), BUNSPEC);
				}
				{
					BgL_varz00_bglt BgL_auxz00_4480;

					{	/* Cfa/specialize.scm 416 */
						BgL_varz00_bglt BgL_arg1916z00_3225;

						BgL_arg1916z00_3225 =
							(((BgL_setqz00_bglt) COBJECT(
									((BgL_setqz00_bglt) BgL_nodez00_3105)))->BgL_varz00);
						BgL_auxz00_4480 =
							((BgL_varz00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(
								((BgL_nodez00_bglt) BgL_arg1916z00_3225)));
					}
					((((BgL_setqz00_bglt) COBJECT(
									((BgL_setqz00_bglt) BgL_nodez00_3105)))->BgL_varz00) =
						((BgL_varz00_bglt) BgL_auxz00_4480), BUNSPEC);
				}
				BgL_auxz00_4472 = ((BgL_setqz00_bglt) BgL_nodez00_3105);
				return ((obj_t) BgL_auxz00_4472);
			}
		}

	}



/* &patch!-cast1402 */
	obj_t BGl_z62patchz12zd2cast1402za2zzcfa_specializa7eza7(obj_t
		BgL_envz00_3106, obj_t BgL_nodez00_3107)
	{
		{	/* Cfa/specialize.scm 405 */
			{
				BgL_castz00_bglt BgL_auxz00_4490;

				BGl_patchz12z12zzcfa_specializa7eza7(
					(((BgL_castz00_bglt) COBJECT(
								((BgL_castz00_bglt) BgL_nodez00_3107)))->BgL_argz00));
				BgL_auxz00_4490 = ((BgL_castz00_bglt) BgL_nodez00_3107);
				return ((obj_t) BgL_auxz00_4490);
			}
		}

	}



/* &patch!-extern1400 */
	obj_t BGl_z62patchz12zd2extern1400za2zzcfa_specializa7eza7(obj_t
		BgL_envz00_3108, obj_t BgL_nodez00_3109)
	{
		{	/* Cfa/specialize.scm 397 */
			{
				BgL_externz00_bglt BgL_auxz00_4496;

				BGl_patchza2z12zb0zzcfa_specializa7eza7(
					(((BgL_externz00_bglt) COBJECT(
								((BgL_externz00_bglt) BgL_nodez00_3109)))->BgL_exprza2za2));
				BgL_auxz00_4496 = ((BgL_externz00_bglt) BgL_nodez00_3109);
				return ((obj_t) BgL_auxz00_4496);
			}
		}

	}



/* &patch!-funcall1398 */
	obj_t BGl_z62patchz12zd2funcall1398za2zzcfa_specializa7eza7(obj_t
		BgL_envz00_3110, obj_t BgL_nodez00_3111)
	{
		{	/* Cfa/specialize.scm 388 */
			{
				BgL_funcallz00_bglt BgL_auxz00_4502;

				{
					BgL_nodez00_bglt BgL_auxz00_4503;

					{	/* Cfa/specialize.scm 390 */
						BgL_nodez00_bglt BgL_arg1908z00_3229;

						BgL_arg1908z00_3229 =
							(((BgL_funcallz00_bglt) COBJECT(
									((BgL_funcallz00_bglt) BgL_nodez00_3111)))->BgL_funz00);
						BgL_auxz00_4503 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1908z00_3229));
					}
					((((BgL_funcallz00_bglt) COBJECT(
									((BgL_funcallz00_bglt) BgL_nodez00_3111)))->BgL_funz00) =
						((BgL_nodez00_bglt) BgL_auxz00_4503), BUNSPEC);
				}
				BGl_patchza2z12zb0zzcfa_specializa7eza7(
					(((BgL_funcallz00_bglt) COBJECT(
								((BgL_funcallz00_bglt) BgL_nodez00_3111)))->BgL_argsz00));
				BgL_auxz00_4502 = ((BgL_funcallz00_bglt) BgL_nodez00_3111);
				return ((obj_t) BgL_auxz00_4502);
			}
		}

	}



/* &patch!-app-ly1396 */
	obj_t BGl_z62patchz12zd2appzd2ly1396z70zzcfa_specializa7eza7(obj_t
		BgL_envz00_3112, obj_t BgL_nodez00_3113)
	{
		{	/* Cfa/specialize.scm 379 */
			{
				BgL_appzd2lyzd2_bglt BgL_auxz00_4515;

				{
					BgL_nodez00_bglt BgL_auxz00_4516;

					{	/* Cfa/specialize.scm 381 */
						BgL_nodez00_bglt BgL_arg1901z00_3231;

						BgL_arg1901z00_3231 =
							(((BgL_appzd2lyzd2_bglt) COBJECT(
									((BgL_appzd2lyzd2_bglt) BgL_nodez00_3113)))->BgL_funz00);
						BgL_auxz00_4516 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1901z00_3231));
					}
					((((BgL_appzd2lyzd2_bglt) COBJECT(
									((BgL_appzd2lyzd2_bglt) BgL_nodez00_3113)))->BgL_funz00) =
						((BgL_nodez00_bglt) BgL_auxz00_4516), BUNSPEC);
				}
				{
					BgL_nodez00_bglt BgL_auxz00_4523;

					{	/* Cfa/specialize.scm 382 */
						BgL_nodez00_bglt BgL_arg1905z00_3232;

						BgL_arg1905z00_3232 =
							(((BgL_appzd2lyzd2_bglt) COBJECT(
									((BgL_appzd2lyzd2_bglt) BgL_nodez00_3113)))->BgL_argz00);
						BgL_auxz00_4523 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1905z00_3232));
					}
					((((BgL_appzd2lyzd2_bglt) COBJECT(
									((BgL_appzd2lyzd2_bglt) BgL_nodez00_3113)))->BgL_argz00) =
						((BgL_nodez00_bglt) BgL_auxz00_4523), BUNSPEC);
				}
				BgL_auxz00_4515 = ((BgL_appzd2lyzd2_bglt) BgL_nodez00_3113);
				return ((obj_t) BgL_auxz00_4515);
			}
		}

	}



/* &patch!-sync1394 */
	obj_t BGl_z62patchz12zd2sync1394za2zzcfa_specializa7eza7(obj_t
		BgL_envz00_3114, obj_t BgL_nodez00_3115)
	{
		{	/* Cfa/specialize.scm 366 */
			{
				BgL_syncz00_bglt BgL_auxz00_4532;

				{
					BgL_nodez00_bglt BgL_auxz00_4533;

					{	/* Cfa/specialize.scm 368 */
						BgL_nodez00_bglt BgL_arg1895z00_3234;

						BgL_arg1895z00_3234 =
							(((BgL_syncz00_bglt) COBJECT(
									((BgL_syncz00_bglt) BgL_nodez00_3115)))->BgL_mutexz00);
						BgL_auxz00_4533 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1895z00_3234));
					}
					((((BgL_syncz00_bglt) COBJECT(
									((BgL_syncz00_bglt) BgL_nodez00_3115)))->BgL_mutexz00) =
						((BgL_nodez00_bglt) BgL_auxz00_4533), BUNSPEC);
				}
				{
					BgL_nodez00_bglt BgL_auxz00_4540;

					{	/* Cfa/specialize.scm 369 */
						BgL_nodez00_bglt BgL_arg1896z00_3235;

						BgL_arg1896z00_3235 =
							(((BgL_syncz00_bglt) COBJECT(
									((BgL_syncz00_bglt) BgL_nodez00_3115)))->BgL_prelockz00);
						BgL_auxz00_4540 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1896z00_3235));
					}
					((((BgL_syncz00_bglt) COBJECT(
									((BgL_syncz00_bglt) BgL_nodez00_3115)))->BgL_prelockz00) =
						((BgL_nodez00_bglt) BgL_auxz00_4540), BUNSPEC);
				}
				{
					BgL_nodez00_bglt BgL_auxz00_4547;

					{	/* Cfa/specialize.scm 370 */
						BgL_nodez00_bglt BgL_arg1897z00_3236;

						BgL_arg1897z00_3236 =
							(((BgL_syncz00_bglt) COBJECT(
									((BgL_syncz00_bglt) BgL_nodez00_3115)))->BgL_bodyz00);
						BgL_auxz00_4547 =
							((BgL_nodez00_bglt)
							BGl_patchz12z12zzcfa_specializa7eza7(BgL_arg1897z00_3236));
					}
					((((BgL_syncz00_bglt) COBJECT(
									((BgL_syncz00_bglt) BgL_nodez00_3115)))->BgL_bodyz00) =
						((BgL_nodez00_bglt) BgL_auxz00_4547), BUNSPEC);
				}
				{	/* Cfa/specialize.scm 371 */
					bool_t BgL_test2236z00_4554;

					{	/* Cfa/specialize.scm 371 */
						BgL_typez00_bglt BgL_arg1900z00_3237;

						BgL_arg1900z00_3237 =
							(((BgL_nodez00_bglt) COBJECT(
									((BgL_nodez00_bglt)
										((BgL_syncz00_bglt) BgL_nodez00_3115))))->BgL_typez00);
						BgL_test2236z00_4554 =
							(
							((obj_t) BgL_arg1900z00_3237) == BGl_za2objza2z00zztype_cachez00);
					}
					if (BgL_test2236z00_4554)
						{	/* Cfa/specialize.scm 371 */
							((((BgL_nodez00_bglt) COBJECT(
											((BgL_nodez00_bglt)
												((BgL_syncz00_bglt) BgL_nodez00_3115))))->BgL_typez00) =
								((BgL_typez00_bglt) ((BgL_typez00_bglt)
										BGl_za2_za2z00zztype_cachez00)), BUNSPEC);
							((((BgL_nodez00_bglt)
										COBJECT(((BgL_nodez00_bglt) ((BgL_syncz00_bglt)
													BgL_nodez00_3115))))->BgL_typez00) =
								((BgL_typez00_bglt)
									BGl_getzd2typezd2zztype_typeofz00(((BgL_nodez00_bglt) (
												(BgL_syncz00_bglt) BgL_nodez00_3115)), ((bool_t) 0))),
								BUNSPEC);
						}
					else
						{	/* Cfa/specialize.scm 371 */
							BFALSE;
						}
				}
				BgL_auxz00_4532 = ((BgL_syncz00_bglt) BgL_nodez00_3115);
				return ((obj_t) BgL_auxz00_4532);
			}
		}

	}



/* &patch!-sequence1392 */
	obj_t BGl_z62patchz12zd2sequence1392za2zzcfa_specializa7eza7(obj_t
		BgL_envz00_3116, obj_t BgL_nodez00_3117)
	{
		{	/* Cfa/specialize.scm 355 */
			{
				BgL_sequencez00_bglt BgL_auxz00_4572;

				BGl_patchza2z12zb0zzcfa_specializa7eza7(
					(((BgL_sequencez00_bglt) COBJECT(
								((BgL_sequencez00_bglt) BgL_nodez00_3117)))->BgL_nodesz00));
				{	/* Cfa/specialize.scm 358 */
					bool_t BgL_test2237z00_4576;

					{	/* Cfa/specialize.scm 358 */
						BgL_typez00_bglt BgL_arg1894z00_3239;

						BgL_arg1894z00_3239 =
							(((BgL_nodez00_bglt) COBJECT(
									((BgL_nodez00_bglt)
										((BgL_sequencez00_bglt) BgL_nodez00_3117))))->BgL_typez00);
						BgL_test2237z00_4576 =
							(
							((obj_t) BgL_arg1894z00_3239) == BGl_za2objza2z00zztype_cachez00);
					}
					if (BgL_test2237z00_4576)
						{	/* Cfa/specialize.scm 358 */
							((((BgL_nodez00_bglt) COBJECT(
											((BgL_nodez00_bglt)
												((BgL_sequencez00_bglt) BgL_nodez00_3117))))->
									BgL_typez00) =
								((BgL_typez00_bglt) ((BgL_typez00_bglt)
										BGl_za2_za2z00zztype_cachez00)), BUNSPEC);
							((((BgL_nodez00_bglt)
										COBJECT(((BgL_nodez00_bglt) ((BgL_sequencez00_bglt)
													BgL_nodez00_3117))))->BgL_typez00) =
								((BgL_typez00_bglt)
									BGl_getzd2typezd2zztype_typeofz00(((BgL_nodez00_bglt) (
												(BgL_sequencez00_bglt) BgL_nodez00_3117)),
										((bool_t) 0))), BUNSPEC);
						}
					else
						{	/* Cfa/specialize.scm 358 */
							BFALSE;
						}
				}
				BgL_auxz00_4572 = ((BgL_sequencez00_bglt) BgL_nodez00_3117);
				return ((obj_t) BgL_auxz00_4572);
			}
		}

	}



/* &patch!-closure1390 */
	obj_t BGl_z62patchz12zd2closure1390za2zzcfa_specializa7eza7(obj_t
		BgL_envz00_3118, obj_t BgL_nodez00_3119)
	{
		{	/* Cfa/specialize.scm 349 */
			{	/* Cfa/specialize.scm 350 */
				obj_t BgL_arg1889z00_3241;

				BgL_arg1889z00_3241 =
					BGl_shapez00zztools_shapez00(
					((obj_t) ((BgL_closurez00_bglt) BgL_nodez00_3119)));
				return
					BGl_internalzd2errorzd2zztools_errorz00
					(BGl_string2063z00zzcfa_specializa7eza7,
					BGl_string2085z00zzcfa_specializa7eza7, BgL_arg1889z00_3241);
			}
		}

	}



/* &patch!-var1388 */
	obj_t BGl_z62patchz12zd2var1388za2zzcfa_specializa7eza7(obj_t BgL_envz00_3120,
		obj_t BgL_nodez00_3121)
	{
		{	/* Cfa/specialize.scm 343 */
			return ((obj_t) ((BgL_varz00_bglt) BgL_nodez00_3121));
		}

	}



/* &patch!-kwote1385 */
	obj_t BGl_z62patchz12zd2kwote1385za2zzcfa_specializa7eza7(obj_t
		BgL_envz00_3122, obj_t BgL_nodez00_3123)
	{
		{	/* Cfa/specialize.scm 337 */
			return ((obj_t) ((BgL_kwotez00_bglt) BgL_nodez00_3123));
		}

	}



/* &patch!-atom1383 */
	obj_t BGl_z62patchz12zd2atom1383za2zzcfa_specializa7eza7(obj_t
		BgL_envz00_3124, obj_t BgL_nodez00_3125)
	{
		{	/* Cfa/specialize.scm 331 */
			return ((obj_t) ((BgL_atomz00_bglt) BgL_nodez00_3125));
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zzcfa_specializa7eza7(void)
	{
		{	/* Cfa/specialize.scm 19 */
			BGl_modulezd2initializa7ationz75zztools_tracez00(54713316L,
				BSTRING_TO_STRING(BGl_string2086z00zzcfa_specializa7eza7));
			BGl_modulezd2initializa7ationz75zzengine_paramz00(517137079L,
				BSTRING_TO_STRING(BGl_string2086z00zzcfa_specializa7eza7));
			BGl_modulezd2initializa7ationz75zztype_typez00(515343395L,
				BSTRING_TO_STRING(BGl_string2086z00zzcfa_specializa7eza7));
			BGl_modulezd2initializa7ationz75zztype_cachez00(346491734L,
				BSTRING_TO_STRING(BGl_string2086z00zzcfa_specializa7eza7));
			BGl_modulezd2initializa7ationz75zztype_typeofz00(398780265L,
				BSTRING_TO_STRING(BGl_string2086z00zzcfa_specializa7eza7));
			BGl_modulezd2initializa7ationz75zztools_shapez00(365925558L,
				BSTRING_TO_STRING(BGl_string2086z00zzcfa_specializa7eza7));
			BGl_modulezd2initializa7ationz75zztools_speekz00(61247943L,
				BSTRING_TO_STRING(BGl_string2086z00zzcfa_specializa7eza7));
			BGl_modulezd2initializa7ationz75zztools_errorz00(300504031L,
				BSTRING_TO_STRING(BGl_string2086z00zzcfa_specializa7eza7));
			BGl_modulezd2initializa7ationz75zzbackend_backendz00(216206620L,
				BSTRING_TO_STRING(BGl_string2086z00zzcfa_specializa7eza7));
			BGl_modulezd2initializa7ationz75zzast_varz00(90839984L,
				BSTRING_TO_STRING(BGl_string2086z00zzcfa_specializa7eza7));
			BGl_modulezd2initializa7ationz75zzast_nodez00(469732712L,
				BSTRING_TO_STRING(BGl_string2086z00zzcfa_specializa7eza7));
			BGl_modulezd2initializa7ationz75zzast_envz00(146730773L,
				BSTRING_TO_STRING(BGl_string2086z00zzcfa_specializa7eza7));
			BGl_modulezd2initializa7ationz75zzinline_inlinez00(20504962L,
				BSTRING_TO_STRING(BGl_string2086z00zzcfa_specializa7eza7));
			return
				BGl_modulezd2initializa7ationz75zzinline_walkz00(385476819L,
				BSTRING_TO_STRING(BGl_string2086z00zzcfa_specializa7eza7));
		}

	}

#ifdef __cplusplus
}
#endif
