/*===========================================================================*/
/*   (Coerce/coerce.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 Coerce/coerce.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_COERCE_COERCE_TYPE_DEFINITIONS
#define BGL_COERCE_COERCE_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_tclassz00_bgl
	{
		obj_t BgL_itszd2superzd2;
		obj_t BgL_slotsz00;
		struct BgL_globalz00_bgl *BgL_holderz00;
		obj_t BgL_wideningz00;
		long BgL_depthz00;
		bool_t BgL_finalzf3zf3;
		obj_t BgL_constructorz00;
		obj_t BgL_virtualzd2slotszd2numberz00;
		bool_t BgL_abstractzf3zf3;
		obj_t BgL_widezd2typezd2;
		obj_t BgL_subclassesz00;
	}                *BgL_tclassz00_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_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_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_getfieldz00_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;
		obj_t BgL_czd2formatzd2;
		obj_t BgL_fnamez00;
		struct BgL_typez00_bgl *BgL_ftypez00;
		struct BgL_typez00_bgl *BgL_otypez00;
	}                  *BgL_getfieldz00_bglt;

	typedef struct BgL_setfieldz00_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;
		obj_t BgL_czd2formatzd2;
		obj_t BgL_fnamez00;
		struct BgL_typez00_bgl *BgL_ftypez00;
		struct BgL_typez00_bgl *BgL_otypez00;
	}                  *BgL_setfieldz00_bglt;

	typedef struct BgL_wideningz00_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;
		obj_t BgL_czd2formatzd2;
		struct BgL_typez00_bgl *BgL_otypez00;
	}                  *BgL_wideningz00_bglt;

	typedef struct BgL_newz00_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;
		obj_t BgL_czd2formatzd2;
		obj_t BgL_argszd2typezd2;
	}             *BgL_newz00_bglt;

	typedef struct BgL_vallocz00_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;
		obj_t BgL_czd2formatzd2;
		struct BgL_typez00_bgl *BgL_ftypez00;
		struct BgL_typez00_bgl *BgL_otypez00;
	}                *BgL_vallocz00_bglt;

	typedef struct BgL_vrefz00_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;
		obj_t BgL_czd2formatzd2;
		struct BgL_typez00_bgl *BgL_ftypez00;
		struct BgL_typez00_bgl *BgL_otypez00;
		struct BgL_typez00_bgl *BgL_vtypez00;
		bool_t BgL_unsafez00;
	}              *BgL_vrefz00_bglt;

	typedef struct BgL_vsetz12z12_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;
		obj_t BgL_czd2formatzd2;
		struct BgL_typez00_bgl *BgL_ftypez00;
		struct BgL_typez00_bgl *BgL_otypez00;
		struct BgL_typez00_bgl *BgL_vtypez00;
		bool_t BgL_unsafez00;
	}                 *BgL_vsetz12z12_bglt;

	typedef struct BgL_vlengthz00_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;
		obj_t BgL_czd2formatzd2;
		struct BgL_typez00_bgl *BgL_vtypez00;
		obj_t BgL_ftypez00;
	}                 *BgL_vlengthz00_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;


#endif													// BGL_COERCE_COERCE_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	static BgL_nodez00_bglt
		BGl_z62coercez12zd2sequence1301za2zzcoerce_coercez00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	extern obj_t BGl_setqz00zzast_nodez00;
	static obj_t BGl_requirezd2initializa7ationz75zzcoerce_coercez00 = BUNSPEC;
	extern obj_t BGl_pvariablezd2protozd2zzcoerce_pprotoz00(long,
		BgL_variablez00_bglt);
	static BgL_nodez00_bglt BGl_z62coercez12z70zzcoerce_coercez00(obj_t, obj_t,
		obj_t, obj_t, obj_t);
	extern obj_t BGl_closurez00zzast_nodez00;
	extern obj_t BGl_newz00zzast_nodez00;
	extern obj_t BGl_za2pairzd2nilza2zd2zztype_cachez00;
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2setzd2exzd2it1337za2zzcoerce_coercez00(obj_t, obj_t,
		obj_t, obj_t, obj_t);
	extern obj_t BGl_vlengthz00zzast_nodez00;
	extern obj_t BGl_syncz00zzast_nodez00;
	extern obj_t BGl_setzd2exzd2itz00zzast_nodez00;
	BGL_IMPORT obj_t BGl_za2classesza2z00zz__objectz00;
	extern obj_t BGl_tclassz00zzobject_classz00;
	BGL_IMPORT obj_t BGl_registerzd2genericz12zc0zz__objectz00(obj_t, obj_t,
		obj_t, obj_t);
	extern obj_t BGl_atomz00zzast_nodez00;
	static obj_t BGl_toplevelzd2initzd2zzcoerce_coercez00(void);
	extern obj_t BGl_sequencez00zzast_nodez00;
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2vref1317za2zzcoerce_coercez00(obj_t, obj_t, obj_t, obj_t,
		obj_t);
	extern obj_t BGl_internalzd2errorzd2zztools_errorz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_letzd2varzd2zzast_nodez00;
	extern obj_t BGl_failz00zzast_nodez00;
	static BgL_castz00_bglt BGl_castzd2nodezd2zzcoerce_coercez00(BgL_nodez00_bglt,
		obj_t);
	static obj_t BGl_genericzd2initzd2zzcoerce_coercez00(void);
	extern obj_t BGl_leavezd2functionzd2zztools_errorz00(void);
	extern obj_t BGl_getfieldz00zzast_nodez00;
	BGL_EXPORTED_DECL obj_t
		BGl_coercezd2functionz12zc0zzcoerce_coercez00(BgL_variablez00_bglt, bool_t);
	extern obj_t BGl_deczd2ppmargez12zc0zzcoerce_pprotoz00(void);
	static obj_t BGl_objectzd2initzd2zzcoerce_coercez00(void);
	extern obj_t BGl_za2boolza2z00zztype_cachez00;
	extern obj_t BGl_castz00zzast_nodez00;
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2letzd2var1335z70zzcoerce_coercez00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	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;
	extern obj_t BGl_za2magicza2z00zztype_cachez00;
	extern obj_t BGl_pfunctionzd2protozd2zzcoerce_pprotoz00(long,
		BgL_variablez00_bglt);
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2valloc1315za2zzcoerce_coercez00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_thezd2coercedzd2functionz00zzcoerce_coercez00 = BUNSPEC;
	static BgL_nodez00_bglt BGl_z62coercez12zd2new1313za2zzcoerce_coercez00(obj_t,
		obj_t, obj_t, obj_t, obj_t);
	BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t, obj_t);
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2boxzd2ref1343z70zzcoerce_coercez00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	extern obj_t BGl_za2exitza2z00zztype_cachez00;
	BGL_IMPORT obj_t BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_methodzd2initzd2zzcoerce_coercez00(void);
	extern bool_t BGl_typezd2disjointzf3z21zztype_miscz00(BgL_typez00_bglt,
		BgL_typez00_bglt);
	extern obj_t BGl_externz00zzast_nodez00;
	static obj_t BGl_z62coercez121290z70zzcoerce_coercez00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_z62coercezd2functionz12za2zzcoerce_coercez00(obj_t, obj_t,
		obj_t);
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2kwote1295za2zzcoerce_coercez00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2getfield1309za2zzcoerce_coercez00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	extern obj_t BGl_za2mutexza2z00zztype_cachez00;
	extern obj_t BGl_varz00zzast_nodez00;
	extern BgL_typez00_bglt BGl_getzd2typezd2zztype_typeofz00(BgL_nodez00_bglt,
		bool_t);
	extern obj_t BGl_makezd2boxzd2zzast_nodez00;
	BGL_IMPORT obj_t BGl_errorz00zz__errorz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_za2_za2z00zztype_cachez00;
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2closure1299za2zzcoerce_coercez00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	extern bool_t BGl_typezd2lesszd2specificzf3zf3zztype_miscz00(BgL_typez00_bglt,
		BgL_typez00_bglt);
	extern BgL_typez00_bglt
		BGl_strictzd2nodezd2typez00zzast_nodez00(BgL_typez00_bglt,
		BgL_typez00_bglt);
	extern obj_t BGl_za2objza2z00zztype_cachez00;
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2extern1305za2zzcoerce_coercez00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	extern obj_t BGl_za2notifyzd2typezd2testza2z00zzcoerce_convertz00;
	BGL_EXPORTED_DECL BgL_nodez00_bglt
		BGl_coercez12z12zzcoerce_coercez00(BgL_nodez00_bglt, obj_t,
		BgL_typez00_bglt, bool_t);
	extern obj_t BGl_boxzd2setz12zc0zzast_nodez00;
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2atom1293za2zzcoerce_coercez00(obj_t, obj_t, obj_t, obj_t,
		obj_t);
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2setfield1311za2zzcoerce_coercez00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_modulezd2initializa7ationz75zzcoerce_coercez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzeffect_effectz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzcoerce_funcallz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzcoerce_applyz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzcoerce_appz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzcoerce_convertz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzcoerce_pprotoz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_dumpz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzobject_classz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_miscz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_typeofz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_coercionz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_errorz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(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_output_6_10_3z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(long,
		char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(long, char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(long, char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__bitz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
	extern obj_t BGl_appz00zzast_nodez00;
	extern obj_t BGl_appzd2predicatezd2ofz00zztype_miscz00(BgL_appz00_bglt);
	extern obj_t BGl_enterzd2functionzd2zztools_errorz00(obj_t);
	extern obj_t BGl_wideningz00zzast_nodez00;
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2switch1331za2zzcoerce_coercez00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	extern obj_t BGl_vrefz00zzast_nodez00;
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2vsetz121319zb0zzcoerce_coercez00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	BGL_IMPORT obj_t BGl_tprintz00zz__r4_output_6_10_3z00(obj_t, obj_t);
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2conditional1327za2zzcoerce_coercez00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	extern obj_t BGl_nodez00zzast_nodez00;
	extern obj_t BGl_kwotez00zzast_nodez00;
	extern bool_t BGl_coercerzd2existszf3z21zztype_coercionz00(BgL_typez00_bglt,
		BgL_typez00_bglt);
	extern obj_t BGl_jumpzd2exzd2itz00zzast_nodez00;
	static obj_t BGl_cnstzd2initzd2zzcoerce_coercez00(void);
	static obj_t BGl_libraryzd2moduleszd2initz00zzcoerce_coercez00(void);
	extern obj_t BGl_za2unsafezd2typeza2zd2zzengine_paramz00;
	static obj_t BGl_importedzd2moduleszd2initz00zzcoerce_coercez00(void);
	static obj_t BGl_gczd2rootszd2initz00zzcoerce_coercez00(void);
	extern bool_t BGl_sidezd2effectzf3z21zzeffect_effectz00(BgL_nodez00_bglt);
	extern obj_t BGl_vallocz00zzast_nodez00;
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2vlength1321za2zzcoerce_coercez00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	extern obj_t BGl_inczd2ppmargez12zc0zzcoerce_pprotoz00(void);
	static BgL_nodez00_bglt BGl_z62coercez12zd2var1297za2zzcoerce_coercez00(obj_t,
		obj_t, obj_t, obj_t, obj_t);
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2cast1323za2zzcoerce_coercez00(obj_t, obj_t, obj_t, obj_t,
		obj_t);
	extern obj_t BGl_za2unsafezd2evalza2zd2zzengine_paramz00;
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2boxzd2setz121345z62zzcoerce_coercez00(obj_t, obj_t,
		obj_t, obj_t, obj_t);
	extern obj_t BGl_letzd2funzd2zzast_nodez00;
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2makezd2box1341z70zzcoerce_coercez00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	extern obj_t BGl_za2unspecza2z00zztype_cachez00;
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2jumpzd2exzd2it1339za2zzcoerce_coercez00(obj_t, obj_t,
		obj_t, obj_t, obj_t);
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2sync1303za2zzcoerce_coercez00(obj_t, obj_t, obj_t, obj_t,
		obj_t);
	extern obj_t BGl_runtimezd2typezd2errorz00zzcoerce_convertz00(obj_t, obj_t,
		BgL_nodez00_bglt);
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2setq1325za2zzcoerce_coercez00(obj_t, obj_t, obj_t, obj_t,
		obj_t);
	extern obj_t BGl_setfieldz00zzast_nodez00;
	BGL_IMPORT obj_t BGl_genericzd2addzd2methodz12z12zz__objectz00(obj_t, obj_t,
		obj_t, obj_t);
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2letzd2fun1333z70zzcoerce_coercez00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2fail1329za2zzcoerce_coercez00(obj_t, obj_t, obj_t, obj_t,
		obj_t);
	extern obj_t BGl_switchz00zzast_nodez00;
	extern obj_t BGl_conditionalz00zzast_nodez00;
	extern obj_t BGl_isazd2ofzd2zztype_miscz00(BgL_nodez00_bglt);
	extern BgL_nodez00_bglt BGl_convertz12z12zzcoerce_convertz00(BgL_nodez00_bglt,
		BgL_typez00_bglt, BgL_typez00_bglt, bool_t);
	extern obj_t BGl_globalz00zzast_varz00;
	extern obj_t BGl_vsetz12z12zzast_nodez00;
	static BgL_nodez00_bglt
		BGl_z62coercez12zd2widening1307za2zzcoerce_coercez00(obj_t, obj_t, obj_t,
		obj_t, obj_t);
	static obj_t __cnst[3];


	   
		 
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2112z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2c2131za7,
		BGl_z62coercez12zd2conditional1327za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2113z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2f2132za7,
		BGl_z62coercez12zd2fail1329za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2114z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2s2133za7,
		BGl_z62coercez12zd2switch1331za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2115z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2l2134za7,
		BGl_z62coercez12zd2letzd2fun1333z70zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STRING(BGl_string2122z00zzcoerce_coercez00,
		BgL_bgl_string2122za700za7za7c2135za7, " test-node-type=", 16);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2116z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2l2136za7,
		BGl_z62coercez12zd2letzd2var1335z70zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STRING(BGl_string2123z00zzcoerce_coercez00,
		BgL_bgl_string2123za700za7za7c2137za7, "switch test-type=", 17);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2117z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2s2138za7,
		BGl_z62coercez12zd2setzd2exzd2it1337za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STRING(BGl_string2124z00zzcoerce_coercez00,
		BgL_bgl_string2124za700za7za7c2139za7, ":", 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2118z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2j2140za7,
		BGl_z62coercez12zd2jumpzd2exzd2it1339za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STRING(BGl_string2125z00zzcoerce_coercez00,
		BgL_bgl_string2125za700za7za7c2141za7, ",", 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2119z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2m2142za7,
		BGl_z62coercez12zd2makezd2box1341z70zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STRING(BGl_string2126z00zzcoerce_coercez00,
		BgL_bgl_string2126za700za7za7c2143za7, "Coerce/coerce.scm", 17);
	      DEFINE_STRING(BGl_string2127z00zzcoerce_coercez00,
		BgL_bgl_string2127za700za7za7c2144za7, "Unexepected `closure' node", 26);
	      DEFINE_STRING(BGl_string2128z00zzcoerce_coercez00,
		BgL_bgl_string2128za700za7za7c2145za7, "coerce_coerce", 13);
	      DEFINE_STRING(BGl_string2129z00zzcoerce_coercez00,
		BgL_bgl_string2129za700za7za7c2146za7, "false true coerce!1290 ", 23);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2120z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2b2147za7,
		BGl_z62coercez12zd2boxzd2ref1343z70zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2121z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2b2148za7,
		BGl_z62coercez12zd2boxzd2setz121345z62zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STRING(BGl_string2092z00zzcoerce_coercez00,
		BgL_bgl_string2092za700za7za7c2149za7, "coerce!1290", 11);
	      DEFINE_STRING(BGl_string2093z00zzcoerce_coercez00,
		BgL_bgl_string2093za700za7za7c2150za7, "No method for this object", 25);
	      DEFINE_STRING(BGl_string2095z00zzcoerce_coercez00,
		BgL_bgl_string2095za700za7za7c2151za7, "coerce!", 7);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2091z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza71212902152z00,
		BGl_z62coercez121290z70zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2094z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2a2153za7,
		BGl_z62coercez12zd2atom1293za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2096z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2k2154za7,
		BGl_z62coercez12zd2kwote1295za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2097z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2v2155za7,
		BGl_z62coercez12zd2var1297za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2098z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2c2156za7,
		BGl_z62coercez12zd2closure1299za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2099z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2s2157za7,
		BGl_z62coercez12zd2sequence1301za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_EXPORT_BGL_GENERIC(BGl_coercez12zd2envzc0zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za770za72158z00,
		BGl_z62coercez12z70zzcoerce_coercez00, 0L, BUNSPEC, 4);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_coercezd2functionz12zd2envz12zzcoerce_coercez00,
		BgL_bgl_za762coerceza7d2func2159z00,
		BGl_z62coercezd2functionz12za2zzcoerce_coercez00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2100z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2s2160za7,
		BGl_z62coercez12zd2sync1303za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2101z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2e2161za7,
		BGl_z62coercez12zd2extern1305za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2102z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2w2162za7,
		BGl_z62coercez12zd2widening1307za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2103z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2g2163za7,
		BGl_z62coercez12zd2getfield1309za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2104z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2s2164za7,
		BGl_z62coercez12zd2setfield1311za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2105z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2n2165za7,
		BGl_z62coercez12zd2new1313za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2106z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2v2166za7,
		BGl_z62coercez12zd2valloc1315za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2107z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2v2167za7,
		BGl_z62coercez12zd2vref1317za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2108z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2v2168za7,
		BGl_z62coercez12zd2vsetz121319zb0zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2109z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2v2169za7,
		BGl_z62coercez12zd2vlength1321za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2110z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2c2170za7,
		BGl_z62coercez12zd2cast1323za2zzcoerce_coercez00, 0L, BUNSPEC, 4);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2111z00zzcoerce_coercez00,
		BgL_bgl_za762coerceza712za7d2s2171za7,
		BGl_z62coercez12zd2setq1325za2zzcoerce_coercez00, 0L, BUNSPEC, 4);

/* GC roots registration */
	static obj_t bgl_gc_roots_register()
	{
#if defined( BGL_GC_ROOTS )
#define ADD_ROOT( addr ) (addr > roots_max ? roots_max = addr : (addr < roots_min ? roots_min = addr : 0))
		void *roots_min = (void *) ULONG_MAX, *roots_max = 0;
		   
			 ADD_ROOT((void
				*) (&BGl_requirezd2initializa7ationz75zzcoerce_coercez00));
		     ADD_ROOT((void
				*) (&BGl_thezd2coercedzd2functionz00zzcoerce_coercez00));
#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_modulezd2initializa7ationz75zzcoerce_coercez00(long
		BgL_checksumz00_4037, char *BgL_fromz00_4038)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zzcoerce_coercez00))
				{
					BGl_requirezd2initializa7ationz75zzcoerce_coercez00 =
						BBOOL(((bool_t) 0));
					BGl_gczd2rootszd2initz00zzcoerce_coercez00();
					BGl_libraryzd2moduleszd2initz00zzcoerce_coercez00();
					BGl_cnstzd2initzd2zzcoerce_coercez00();
					BGl_importedzd2moduleszd2initz00zzcoerce_coercez00();
					BGl_genericzd2initzd2zzcoerce_coercez00();
					BGl_methodzd2initzd2zzcoerce_coercez00();
					return BGl_toplevelzd2initzd2zzcoerce_coercez00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* library-modules-init */
	obj_t BGl_libraryzd2moduleszd2initz00zzcoerce_coercez00(void)
	{
		{	/* Coerce/coerce.scm 15 */
			BGl_modulezd2initializa7ationz75zz__objectz00(0L, "coerce_coerce");
			BGl_modulezd2initializa7ationz75zz__readerz00(0L, "coerce_coerce");
			BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(0L,
				"coerce_coerce");
			BGl_modulezd2initializa7ationz75zz__errorz00(0L, "coerce_coerce");
			BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(0L,
				"coerce_coerce");
			BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(0L,
				"coerce_coerce");
			BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(0L,
				"coerce_coerce");
			BGl_modulezd2initializa7ationz75zz__bitz00(0L, "coerce_coerce");
			BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(0L,
				"coerce_coerce");
			BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(0L,
				"coerce_coerce");
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(0L,
				"coerce_coerce");
			return BUNSPEC;
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zzcoerce_coercez00(void)
	{
		{	/* Coerce/coerce.scm 15 */
			{	/* Coerce/coerce.scm 15 */
				obj_t BgL_cportz00_3604;

				{	/* Coerce/coerce.scm 15 */
					obj_t BgL_stringz00_3611;

					BgL_stringz00_3611 = BGl_string2129z00zzcoerce_coercez00;
					{	/* Coerce/coerce.scm 15 */
						obj_t BgL_startz00_3612;

						BgL_startz00_3612 = BINT(0L);
						{	/* Coerce/coerce.scm 15 */
							obj_t BgL_endz00_3613;

							BgL_endz00_3613 =
								BINT(STRING_LENGTH(((obj_t) BgL_stringz00_3611)));
							{	/* Coerce/coerce.scm 15 */

								BgL_cportz00_3604 =
									BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00
									(BgL_stringz00_3611, BgL_startz00_3612, BgL_endz00_3613);
				}}}}
				{
					long BgL_iz00_3605;

					BgL_iz00_3605 = 2L;
				BgL_loopz00_3606:
					if ((BgL_iz00_3605 == -1L))
						{	/* Coerce/coerce.scm 15 */
							return BUNSPEC;
						}
					else
						{	/* Coerce/coerce.scm 15 */
							{	/* Coerce/coerce.scm 15 */
								obj_t BgL_arg2130z00_3607;

								{	/* Coerce/coerce.scm 15 */

									{	/* Coerce/coerce.scm 15 */
										obj_t BgL_locationz00_3609;

										BgL_locationz00_3609 = BBOOL(((bool_t) 0));
										{	/* Coerce/coerce.scm 15 */

											BgL_arg2130z00_3607 =
												BGl_readz00zz__readerz00(BgL_cportz00_3604,
												BgL_locationz00_3609);
										}
									}
								}
								{	/* Coerce/coerce.scm 15 */
									int BgL_tmpz00_4069;

									BgL_tmpz00_4069 = (int) (BgL_iz00_3605);
									CNST_TABLE_SET(BgL_tmpz00_4069, BgL_arg2130z00_3607);
							}}
							{	/* Coerce/coerce.scm 15 */
								int BgL_auxz00_3610;

								BgL_auxz00_3610 = (int) ((BgL_iz00_3605 - 1L));
								{
									long BgL_iz00_4074;

									BgL_iz00_4074 = (long) (BgL_auxz00_3610);
									BgL_iz00_3605 = BgL_iz00_4074;
									goto BgL_loopz00_3606;
								}
							}
						}
				}
			}
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zzcoerce_coercez00(void)
	{
		{	/* Coerce/coerce.scm 15 */
			return bgl_gc_roots_register();
		}

	}



/* toplevel-init */
	obj_t BGl_toplevelzd2initzd2zzcoerce_coercez00(void)
	{
		{	/* Coerce/coerce.scm 15 */
			BGl_thezd2coercedzd2functionz00zzcoerce_coercez00 = BUNSPEC;
			return BUNSPEC;
		}

	}



/* coerce-function! */
	BGL_EXPORTED_DEF obj_t
		BGl_coercezd2functionz12zc0zzcoerce_coercez00(BgL_variablez00_bglt
		BgL_variablez00_3, bool_t BgL_typezd2safezd2_4)
	{
		{	/* Coerce/coerce.scm 46 */
			BGl_enterzd2functionzd2zztools_errorz00(
				(((BgL_variablez00_bglt) COBJECT(BgL_variablez00_3))->BgL_idz00));
			{	/* Coerce/coerce.scm 49 */
				BgL_valuez00_bglt BgL_funz00_1694;

				BgL_funz00_1694 =
					(((BgL_variablez00_bglt) COBJECT(BgL_variablez00_3))->BgL_valuez00);
				{	/* Coerce/coerce.scm 49 */
					obj_t BgL_bodyz00_1695;

					BgL_bodyz00_1695 =
						(((BgL_sfunz00_bglt) COBJECT(
								((BgL_sfunz00_bglt) BgL_funz00_1694)))->BgL_bodyz00);
					{	/* Coerce/coerce.scm 50 */
						BgL_typez00_bglt BgL_tresz00_1696;

						BgL_tresz00_1696 =
							(((BgL_variablez00_bglt) COBJECT(BgL_variablez00_3))->
							BgL_typez00);
						{	/* Coerce/coerce.scm 51 */
							obj_t BgL_cloz00_1697;

							BgL_cloz00_1697 =
								(((BgL_sfunz00_bglt) COBJECT(
										((BgL_sfunz00_bglt) BgL_funz00_1694)))->
								BgL_thezd2closurezd2globalz00);
							{	/* Coerce/coerce.scm 52 */
								bool_t BgL_typezd2safetyzd2enforcedz00_1698;

								{	/* Coerce/coerce.scm 53 */
									obj_t BgL__andtest_1109z00_1708;

									BgL__andtest_1109z00_1708 =
										BGl_za2unsafezd2evalza2zd2zzengine_paramz00;
									if (CBOOL(BgL__andtest_1109z00_1708))
										{	/* Coerce/coerce.scm 53 */
											BgL_typezd2safetyzd2enforcedz00_1698 = ((bool_t) 0);
										}
									else
										{	/* Coerce/coerce.scm 54 */
											bool_t BgL_test2175z00_4087;

											{	/* Coerce/coerce.scm 54 */
												obj_t BgL_classz00_2484;

												BgL_classz00_2484 = BGl_globalz00zzast_varz00;
												{	/* Coerce/coerce.scm 54 */
													BgL_objectz00_bglt BgL_arg1801z00_2486;

													{	/* Coerce/coerce.scm 54 */
														obj_t BgL_tmpz00_4088;

														BgL_tmpz00_4088 = ((obj_t) BgL_variablez00_3);
														BgL_arg1801z00_2486 =
															(BgL_objectz00_bglt) (BgL_tmpz00_4088);
													}
													if (BGL_CONDEXPAND_ISA_ARCH64())
														{	/* Coerce/coerce.scm 54 */
															long BgL_idxz00_2492;

															BgL_idxz00_2492 =
																BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_2486);
															BgL_test2175z00_4087 =
																(VECTOR_REF
																(BGl_za2inheritancesza2z00zz__objectz00,
																	(BgL_idxz00_2492 + 2L)) == BgL_classz00_2484);
														}
													else
														{	/* Coerce/coerce.scm 54 */
															bool_t BgL_res2061z00_2514;

															{	/* Coerce/coerce.scm 54 */
																obj_t BgL_oclassz00_2500;

																{	/* Coerce/coerce.scm 54 */
																	long BgL_arg1808z00_2506;

																	{	/* Coerce/coerce.scm 54 */
																		long BgL_arg1809z00_2507;

																		BgL_arg1809z00_2507 =
																			BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_2486);
																		BgL_arg1808z00_2506 =
																			(BgL_arg1809z00_2507 - OBJECT_TYPE);
																	}
																	BgL_oclassz00_2500 =
																		VECTOR_REF
																		(BGl_za2classesza2z00zz__objectz00,
																		BgL_arg1808z00_2506);
																}
																{	/* Coerce/coerce.scm 54 */
																	bool_t BgL__ortest_1115z00_2501;

																	BgL__ortest_1115z00_2501 =
																		(BgL_classz00_2484 == BgL_oclassz00_2500);
																	if (BgL__ortest_1115z00_2501)
																		{	/* Coerce/coerce.scm 54 */
																			BgL_res2061z00_2514 =
																				BgL__ortest_1115z00_2501;
																		}
																	else
																		{	/* Coerce/coerce.scm 54 */
																			long BgL_odepthz00_2502;

																			BgL_odepthz00_2502 =
																				BGL_CLASS_DEPTH(BgL_oclassz00_2500);
																			if ((2L < BgL_odepthz00_2502))
																				{	/* Coerce/coerce.scm 54 */
																					obj_t BgL_arg1797z00_2504;

																					BgL_arg1797z00_2504 =
																						BGL_CLASS_ANCESTORS_REF
																						(BgL_oclassz00_2500, 2L);
																					BgL_res2061z00_2514 =
																						(BgL_arg1797z00_2504 ==
																						BgL_classz00_2484);
																				}
																			else
																				{	/* Coerce/coerce.scm 54 */
																					BgL_res2061z00_2514 = ((bool_t) 0);
																				}
																		}
																}
															}
															BgL_test2175z00_4087 = BgL_res2061z00_2514;
														}
												}
											}
											if (BgL_test2175z00_4087)
												{	/* Coerce/coerce.scm 55 */
													bool_t BgL_test2179z00_4107;

													{	/* Coerce/coerce.scm 55 */
														obj_t BgL_classz00_2515;

														BgL_classz00_2515 = BGl_globalz00zzast_varz00;
														if (BGL_OBJECTP(BgL_cloz00_1697))
															{	/* Coerce/coerce.scm 55 */
																BgL_objectz00_bglt BgL_arg1801z00_2517;

																BgL_arg1801z00_2517 =
																	(BgL_objectz00_bglt) (BgL_cloz00_1697);
																if (BGL_CONDEXPAND_ISA_ARCH64())
																	{	/* Coerce/coerce.scm 55 */
																		long BgL_idxz00_2523;

																		BgL_idxz00_2523 =
																			BGL_OBJECT_INHERITANCE_NUM
																			(BgL_arg1801z00_2517);
																		BgL_test2179z00_4107 =
																			(VECTOR_REF
																			(BGl_za2inheritancesza2z00zz__objectz00,
																				(BgL_idxz00_2523 + 2L)) ==
																			BgL_classz00_2515);
																	}
																else
																	{	/* Coerce/coerce.scm 55 */
																		bool_t BgL_res2062z00_2545;

																		{	/* Coerce/coerce.scm 55 */
																			obj_t BgL_oclassz00_2531;

																			{	/* Coerce/coerce.scm 55 */
																				long BgL_arg1808z00_2537;

																				{	/* Coerce/coerce.scm 55 */
																					long BgL_arg1809z00_2538;

																					BgL_arg1809z00_2538 =
																						BGL_OBJECT_CLASS_NUM
																						(BgL_arg1801z00_2517);
																					BgL_arg1808z00_2537 =
																						(BgL_arg1809z00_2538 - OBJECT_TYPE);
																				}
																				BgL_oclassz00_2531 =
																					VECTOR_REF
																					(BGl_za2classesza2z00zz__objectz00,
																					BgL_arg1808z00_2537);
																			}
																			{	/* Coerce/coerce.scm 55 */
																				bool_t BgL__ortest_1115z00_2532;

																				BgL__ortest_1115z00_2532 =
																					(BgL_classz00_2515 ==
																					BgL_oclassz00_2531);
																				if (BgL__ortest_1115z00_2532)
																					{	/* Coerce/coerce.scm 55 */
																						BgL_res2062z00_2545 =
																							BgL__ortest_1115z00_2532;
																					}
																				else
																					{	/* Coerce/coerce.scm 55 */
																						long BgL_odepthz00_2533;

																						BgL_odepthz00_2533 =
																							BGL_CLASS_DEPTH
																							(BgL_oclassz00_2531);
																						if ((2L < BgL_odepthz00_2533))
																							{	/* Coerce/coerce.scm 55 */
																								obj_t BgL_arg1797z00_2535;

																								BgL_arg1797z00_2535 =
																									BGL_CLASS_ANCESTORS_REF
																									(BgL_oclassz00_2531, 2L);
																								BgL_res2062z00_2545 =
																									(BgL_arg1797z00_2535 ==
																									BgL_classz00_2515);
																							}
																						else
																							{	/* Coerce/coerce.scm 55 */
																								BgL_res2062z00_2545 =
																									((bool_t) 0);
																							}
																					}
																			}
																		}
																		BgL_test2179z00_4107 = BgL_res2062z00_2545;
																	}
															}
														else
															{	/* Coerce/coerce.scm 55 */
																BgL_test2179z00_4107 = ((bool_t) 0);
															}
													}
													if (BgL_test2179z00_4107)
														{	/* Coerce/coerce.scm 55 */
															if (
																(((BgL_globalz00_bglt) COBJECT(
																			((BgL_globalz00_bglt) BgL_cloz00_1697)))->
																	BgL_evaluablezf3zf3))
																{	/* Coerce/coerce.scm 56 */
																	BgL_typezd2safetyzd2enforcedz00_1698 =
																		(((BgL_variablez00_bglt) COBJECT(
																				((BgL_variablez00_bglt)
																					((BgL_globalz00_bglt)
																						BgL_cloz00_1697))))->
																		BgL_userzf3zf3);
																}
															else
																{	/* Coerce/coerce.scm 56 */
																	BgL_typezd2safetyzd2enforcedz00_1698 =
																		((bool_t) 0);
																}
														}
													else
														{	/* Coerce/coerce.scm 55 */
															BgL_typezd2safetyzd2enforcedz00_1698 =
																((bool_t) 0);
														}
												}
											else
												{	/* Coerce/coerce.scm 54 */
													BgL_typezd2safetyzd2enforcedz00_1698 = ((bool_t) 0);
												}
										}
								}
								{	/* Coerce/coerce.scm 58 */

									{	/* Coerce/coerce.scm 59 */
										bool_t BgL_test2185z00_4133;

										{	/* Coerce/coerce.scm 59 */
											obj_t BgL_classz00_2548;

											BgL_classz00_2548 = BGl_globalz00zzast_varz00;
											{	/* Coerce/coerce.scm 59 */
												BgL_objectz00_bglt BgL_arg1801z00_2550;

												{	/* Coerce/coerce.scm 59 */
													obj_t BgL_tmpz00_4134;

													BgL_tmpz00_4134 = ((obj_t) BgL_variablez00_3);
													BgL_arg1801z00_2550 =
														(BgL_objectz00_bglt) (BgL_tmpz00_4134);
												}
												if (BGL_CONDEXPAND_ISA_ARCH64())
													{	/* Coerce/coerce.scm 59 */
														long BgL_idxz00_2556;

														BgL_idxz00_2556 =
															BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_2550);
														BgL_test2185z00_4133 =
															(VECTOR_REF
															(BGl_za2inheritancesza2z00zz__objectz00,
																(BgL_idxz00_2556 + 2L)) == BgL_classz00_2548);
													}
												else
													{	/* Coerce/coerce.scm 59 */
														bool_t BgL_res2063z00_2578;

														{	/* Coerce/coerce.scm 59 */
															obj_t BgL_oclassz00_2564;

															{	/* Coerce/coerce.scm 59 */
																long BgL_arg1808z00_2570;

																{	/* Coerce/coerce.scm 59 */
																	long BgL_arg1809z00_2571;

																	BgL_arg1809z00_2571 =
																		BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_2550);
																	BgL_arg1808z00_2570 =
																		(BgL_arg1809z00_2571 - OBJECT_TYPE);
																}
																BgL_oclassz00_2564 =
																	VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
																	BgL_arg1808z00_2570);
															}
															{	/* Coerce/coerce.scm 59 */
																bool_t BgL__ortest_1115z00_2565;

																BgL__ortest_1115z00_2565 =
																	(BgL_classz00_2548 == BgL_oclassz00_2564);
																if (BgL__ortest_1115z00_2565)
																	{	/* Coerce/coerce.scm 59 */
																		BgL_res2063z00_2578 =
																			BgL__ortest_1115z00_2565;
																	}
																else
																	{	/* Coerce/coerce.scm 59 */
																		long BgL_odepthz00_2566;

																		BgL_odepthz00_2566 =
																			BGL_CLASS_DEPTH(BgL_oclassz00_2564);
																		if ((2L < BgL_odepthz00_2566))
																			{	/* Coerce/coerce.scm 59 */
																				obj_t BgL_arg1797z00_2568;

																				BgL_arg1797z00_2568 =
																					BGL_CLASS_ANCESTORS_REF
																					(BgL_oclassz00_2564, 2L);
																				BgL_res2063z00_2578 =
																					(BgL_arg1797z00_2568 ==
																					BgL_classz00_2548);
																			}
																		else
																			{	/* Coerce/coerce.scm 59 */
																				BgL_res2063z00_2578 = ((bool_t) 0);
																			}
																	}
															}
														}
														BgL_test2185z00_4133 = BgL_res2063z00_2578;
													}
											}
										}
										if (BgL_test2185z00_4133)
											{	/* Coerce/coerce.scm 59 */
												BNIL;
											}
										else
											{	/* Coerce/coerce.scm 59 */
												BNIL;
											}
									}
									{	/* Coerce/coerce.scm 67 */
										obj_t BgL_notifyz00_1701;

										BgL_notifyz00_1701 =
											BGl_za2notifyzd2typezd2testza2z00zzcoerce_convertz00;
										if ((((BgL_variablez00_bglt) COBJECT(BgL_variablez00_3))->
												BgL_userzf3zf3))
											{	/* Coerce/coerce.scm 70 */
												bool_t BgL_test2190z00_4155;

												{	/* Coerce/coerce.scm 70 */
													obj_t BgL_arg1361z00_1705;

													BgL_arg1361z00_1705 =
														(((BgL_sfunz00_bglt) COBJECT(
																((BgL_sfunz00_bglt) BgL_funz00_1694)))->
														BgL_thezd2closurezd2globalz00);
													{	/* Coerce/coerce.scm 70 */
														obj_t BgL_classz00_2581;

														BgL_classz00_2581 = BGl_globalz00zzast_varz00;
														if (BGL_OBJECTP(BgL_arg1361z00_1705))
															{	/* Coerce/coerce.scm 70 */
																BgL_objectz00_bglt BgL_arg1801z00_2583;

																BgL_arg1801z00_2583 =
																	(BgL_objectz00_bglt) (BgL_arg1361z00_1705);
																if (BGL_CONDEXPAND_ISA_ARCH64())
																	{	/* Coerce/coerce.scm 70 */
																		long BgL_idxz00_2589;

																		BgL_idxz00_2589 =
																			BGL_OBJECT_INHERITANCE_NUM
																			(BgL_arg1801z00_2583);
																		BgL_test2190z00_4155 =
																			(VECTOR_REF
																			(BGl_za2inheritancesza2z00zz__objectz00,
																				(BgL_idxz00_2589 + 2L)) ==
																			BgL_classz00_2581);
																	}
																else
																	{	/* Coerce/coerce.scm 70 */
																		bool_t BgL_res2064z00_2611;

																		{	/* Coerce/coerce.scm 70 */
																			obj_t BgL_oclassz00_2597;

																			{	/* Coerce/coerce.scm 70 */
																				long BgL_arg1808z00_2603;

																				{	/* Coerce/coerce.scm 70 */
																					long BgL_arg1809z00_2604;

																					BgL_arg1809z00_2604 =
																						BGL_OBJECT_CLASS_NUM
																						(BgL_arg1801z00_2583);
																					BgL_arg1808z00_2603 =
																						(BgL_arg1809z00_2604 - OBJECT_TYPE);
																				}
																				BgL_oclassz00_2597 =
																					VECTOR_REF
																					(BGl_za2classesza2z00zz__objectz00,
																					BgL_arg1808z00_2603);
																			}
																			{	/* Coerce/coerce.scm 70 */
																				bool_t BgL__ortest_1115z00_2598;

																				BgL__ortest_1115z00_2598 =
																					(BgL_classz00_2581 ==
																					BgL_oclassz00_2597);
																				if (BgL__ortest_1115z00_2598)
																					{	/* Coerce/coerce.scm 70 */
																						BgL_res2064z00_2611 =
																							BgL__ortest_1115z00_2598;
																					}
																				else
																					{	/* Coerce/coerce.scm 70 */
																						long BgL_odepthz00_2599;

																						BgL_odepthz00_2599 =
																							BGL_CLASS_DEPTH
																							(BgL_oclassz00_2597);
																						if ((2L < BgL_odepthz00_2599))
																							{	/* Coerce/coerce.scm 70 */
																								obj_t BgL_arg1797z00_2601;

																								BgL_arg1797z00_2601 =
																									BGL_CLASS_ANCESTORS_REF
																									(BgL_oclassz00_2597, 2L);
																								BgL_res2064z00_2611 =
																									(BgL_arg1797z00_2601 ==
																									BgL_classz00_2581);
																							}
																						else
																							{	/* Coerce/coerce.scm 70 */
																								BgL_res2064z00_2611 =
																									((bool_t) 0);
																							}
																					}
																			}
																		}
																		BgL_test2190z00_4155 = BgL_res2064z00_2611;
																	}
															}
														else
															{	/* Coerce/coerce.scm 70 */
																BgL_test2190z00_4155 = ((bool_t) 0);
															}
													}
												}
												if (BgL_test2190z00_4155)
													{	/* Coerce/coerce.scm 70 */
														BGl_za2notifyzd2typezd2testza2z00zzcoerce_convertz00
															= BFALSE;
													}
												else
													{	/* Coerce/coerce.scm 70 */
														BGl_za2notifyzd2typezd2testza2z00zzcoerce_convertz00
															= BTRUE;
													}
											}
										else
											{	/* Coerce/coerce.scm 69 */
												BGl_za2notifyzd2typezd2testza2z00zzcoerce_convertz00 =
													BFALSE;
											}
										BGl_pfunctionzd2protozd2zzcoerce_pprotoz00(3L,
											BgL_variablez00_3);
										BGl_thezd2coercedzd2functionz00zzcoerce_coercez00 =
											((obj_t) BgL_variablez00_3);
										{	/* Coerce/coerce.scm 73 */
											BgL_nodez00_bglt BgL_arg1363z00_1706;

											{	/* Coerce/coerce.scm 73 */
												bool_t BgL_auxz00_4179;

												if (BgL_typezd2safezd2_4)
													{	/* Coerce/coerce.scm 58 */
														BgL_auxz00_4179 = BgL_typezd2safezd2_4;
													}
												else
													{	/* Coerce/coerce.scm 58 */
														BgL_auxz00_4179 =
															BgL_typezd2safetyzd2enforcedz00_1698;
													}
												BgL_arg1363z00_1706 =
													BGl_coercez12z12zzcoerce_coercez00(
													((BgL_nodez00_bglt) BgL_bodyz00_1695),
													((obj_t) BgL_variablez00_3), BgL_tresz00_1696,
													BgL_auxz00_4179);
											}
											((((BgL_sfunz00_bglt) COBJECT(
															((BgL_sfunz00_bglt) BgL_funz00_1694)))->
													BgL_bodyz00) =
												((obj_t) ((obj_t) BgL_arg1363z00_1706)), BUNSPEC);
										}
										BGl_za2notifyzd2typezd2testza2z00zzcoerce_convertz00 =
											BgL_notifyz00_1701;
									}
									return BGl_leavezd2functionzd2zztools_errorz00();
								}
							}
						}
					}
				}
			}
		}

	}



/* &coerce-function! */
	obj_t BGl_z62coercezd2functionz12za2zzcoerce_coercez00(obj_t BgL_envz00_3428,
		obj_t BgL_variablez00_3429, obj_t BgL_typezd2safezd2_3430)
	{
		{	/* Coerce/coerce.scm 46 */
			return
				BGl_coercezd2functionz12zc0zzcoerce_coercez00(
				((BgL_variablez00_bglt) BgL_variablez00_3429),
				CBOOL(BgL_typezd2safezd2_3430));
		}

	}



/* cast-node */
	BgL_castz00_bglt BGl_castzd2nodezd2zzcoerce_coercez00(BgL_nodez00_bglt
		BgL_nodez00_105, obj_t BgL_toz00_106)
	{
		{	/* Coerce/coerce.scm 491 */
			{	/* Coerce/coerce.scm 493 */
				BgL_castz00_bglt BgL_new1151z00_1713;

				{	/* Coerce/coerce.scm 494 */
					BgL_castz00_bglt BgL_new1150z00_1714;

					BgL_new1150z00_1714 =
						((BgL_castz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
									BgL_castz00_bgl))));
					{	/* Coerce/coerce.scm 494 */
						long BgL_arg1366z00_1715;

						BgL_arg1366z00_1715 = BGL_CLASS_NUM(BGl_castz00zzast_nodez00);
						BGL_OBJECT_CLASS_NUM_SET(
							((BgL_objectz00_bglt) BgL_new1150z00_1714), BgL_arg1366z00_1715);
					}
					{	/* Coerce/coerce.scm 494 */
						BgL_objectz00_bglt BgL_tmpz00_4195;

						BgL_tmpz00_4195 = ((BgL_objectz00_bglt) BgL_new1150z00_1714);
						BGL_OBJECT_WIDENING_SET(BgL_tmpz00_4195, BFALSE);
					}
					((BgL_objectz00_bglt) BgL_new1150z00_1714);
					BgL_new1151z00_1713 = BgL_new1150z00_1714;
				}
				((((BgL_nodez00_bglt) COBJECT(
								((BgL_nodez00_bglt) BgL_new1151z00_1713)))->BgL_locz00) =
					((obj_t) (((BgL_nodez00_bglt) COBJECT(BgL_nodez00_105))->BgL_locz00)),
					BUNSPEC);
				((((BgL_nodez00_bglt) COBJECT(((BgL_nodez00_bglt)
									BgL_new1151z00_1713)))->BgL_typez00) =
					((BgL_typez00_bglt) ((BgL_typez00_bglt) BgL_toz00_106)), BUNSPEC);
				((((BgL_castz00_bglt) COBJECT(BgL_new1151z00_1713))->BgL_argz00) =
					((BgL_nodez00_bglt) BgL_nodez00_105), BUNSPEC);
				return BgL_new1151z00_1713;
			}
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zzcoerce_coercez00(void)
	{
		{	/* Coerce/coerce.scm 15 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zzcoerce_coercez00(void)
	{
		{	/* Coerce/coerce.scm 15 */
			return
				BGl_registerzd2genericz12zc0zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00,
				BGl_proc2091z00zzcoerce_coercez00, BGl_nodez00zzast_nodez00,
				BGl_string2092z00zzcoerce_coercez00);
		}

	}



/* &coerce!1290 */
	obj_t BGl_z62coercez121290z70zzcoerce_coercez00(obj_t BgL_envz00_3432,
		obj_t BgL_nodez00_3433, obj_t BgL_callerz00_3434, obj_t BgL_toz00_3435,
		obj_t BgL_safez00_3436)
	{
		{	/* Coerce/coerce.scm 80 */
			return
				BGl_errorz00zz__errorz00(CNST_TABLE_REF(0L),
				BGl_string2093z00zzcoerce_coercez00,
				((obj_t) ((BgL_nodez00_bglt) BgL_nodez00_3433)));
		}

	}



/* coerce! */
	BGL_EXPORTED_DEF BgL_nodez00_bglt
		BGl_coercez12z12zzcoerce_coercez00(BgL_nodez00_bglt BgL_nodez00_5,
		obj_t BgL_callerz00_6, BgL_typez00_bglt BgL_toz00_7, bool_t BgL_safez00_8)
	{
		{	/* Coerce/coerce.scm 80 */
			{	/* Coerce/coerce.scm 80 */
				obj_t BgL_method1291z00_1723;

				{	/* Coerce/coerce.scm 80 */
					obj_t BgL_res2069z00_2647;

					{	/* Coerce/coerce.scm 80 */
						long BgL_objzd2classzd2numz00_2618;

						BgL_objzd2classzd2numz00_2618 =
							BGL_OBJECT_CLASS_NUM(((BgL_objectz00_bglt) BgL_nodez00_5));
						{	/* Coerce/coerce.scm 80 */
							obj_t BgL_arg1805z00_2619;

							BgL_arg1805z00_2619 =
								PROCEDURE_REF(BGl_coercez12zd2envzc0zzcoerce_coercez00,
								(int) (1L));
							{	/* Coerce/coerce.scm 80 */
								int BgL_offsetz00_2622;

								BgL_offsetz00_2622 = (int) (BgL_objzd2classzd2numz00_2618);
								{	/* Coerce/coerce.scm 80 */
									long BgL_offsetz00_2623;

									BgL_offsetz00_2623 =
										((long) (BgL_offsetz00_2622) - OBJECT_TYPE);
									{	/* Coerce/coerce.scm 80 */
										long BgL_modz00_2624;

										BgL_modz00_2624 =
											(BgL_offsetz00_2623 >> (int) ((long) ((int) (4L))));
										{	/* Coerce/coerce.scm 80 */
											long BgL_restz00_2626;

											BgL_restz00_2626 =
												(BgL_offsetz00_2623 &
												(long) (
													(int) (
														((long) (
																(int) (
																	(1L <<
																		(int) ((long) ((int) (4L)))))) - 1L))));
											{	/* Coerce/coerce.scm 80 */

												{	/* Coerce/coerce.scm 80 */
													obj_t BgL_bucketz00_2628;

													BgL_bucketz00_2628 =
														VECTOR_REF(
														((obj_t) BgL_arg1805z00_2619), BgL_modz00_2624);
													BgL_res2069z00_2647 =
														VECTOR_REF(
														((obj_t) BgL_bucketz00_2628), BgL_restz00_2626);
					}}}}}}}}
					BgL_method1291z00_1723 = BgL_res2069z00_2647;
				}
				return
					((BgL_nodez00_bglt)
					(VA_PROCEDUREP(BgL_method1291z00_1723) ? ((obj_t(*)(obj_t,
									...))
							PROCEDURE_ENTRY(BgL_method1291z00_1723)) (BgL_method1291z00_1723,
							((obj_t) BgL_nodez00_5), BgL_callerz00_6, ((obj_t) BgL_toz00_7),
							BBOOL(BgL_safez00_8), BEOA) : ((obj_t(*)(obj_t, obj_t, obj_t,
									obj_t,
									obj_t))
							PROCEDURE_ENTRY(BgL_method1291z00_1723)) (BgL_method1291z00_1723,
							((obj_t) BgL_nodez00_5), BgL_callerz00_6, ((obj_t) BgL_toz00_7),
							BBOOL(BgL_safez00_8))));
			}
		}

	}



/* &coerce! */
	BgL_nodez00_bglt BGl_z62coercez12z70zzcoerce_coercez00(obj_t BgL_envz00_3437,
		obj_t BgL_nodez00_3438, obj_t BgL_callerz00_3439, obj_t BgL_toz00_3440,
		obj_t BgL_safez00_3441)
	{
		{	/* Coerce/coerce.scm 80 */
			return
				BGl_coercez12z12zzcoerce_coercez00(
				((BgL_nodez00_bglt) BgL_nodez00_3438), BgL_callerz00_3439,
				((BgL_typez00_bglt) BgL_toz00_3440), CBOOL(BgL_safez00_3441));
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zzcoerce_coercez00(void)
	{
		{	/* Coerce/coerce.scm 15 */
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_atomz00zzast_nodez00,
				BGl_proc2094z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_kwotez00zzast_nodez00,
				BGl_proc2096z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_varz00zzast_nodez00,
				BGl_proc2097z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_closurez00zzast_nodez00,
				BGl_proc2098z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_sequencez00zzast_nodez00,
				BGl_proc2099z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_syncz00zzast_nodez00,
				BGl_proc2100z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_externz00zzast_nodez00,
				BGl_proc2101z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_wideningz00zzast_nodez00,
				BGl_proc2102z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_getfieldz00zzast_nodez00,
				BGl_proc2103z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_setfieldz00zzast_nodez00,
				BGl_proc2104z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_newz00zzast_nodez00,
				BGl_proc2105z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_vallocz00zzast_nodez00,
				BGl_proc2106z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_vrefz00zzast_nodez00,
				BGl_proc2107z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_vsetz12z12zzast_nodez00,
				BGl_proc2108z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_vlengthz00zzast_nodez00,
				BGl_proc2109z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_castz00zzast_nodez00,
				BGl_proc2110z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_setqz00zzast_nodez00,
				BGl_proc2111z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00,
				BGl_conditionalz00zzast_nodez00, BGl_proc2112z00zzcoerce_coercez00,
				BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_failz00zzast_nodez00,
				BGl_proc2113z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_switchz00zzast_nodez00,
				BGl_proc2114z00zzcoerce_coercez00, BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00,
				BGl_letzd2funzd2zzast_nodez00, BGl_proc2115z00zzcoerce_coercez00,
				BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00,
				BGl_letzd2varzd2zzast_nodez00, BGl_proc2116z00zzcoerce_coercez00,
				BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00,
				BGl_setzd2exzd2itz00zzast_nodez00, BGl_proc2117z00zzcoerce_coercez00,
				BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00,
				BGl_jumpzd2exzd2itz00zzast_nodez00, BGl_proc2118z00zzcoerce_coercez00,
				BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00,
				BGl_makezd2boxzd2zzast_nodez00, BGl_proc2119z00zzcoerce_coercez00,
				BGl_string2095z00zzcoerce_coercez00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00,
				BGl_boxzd2refzd2zzast_nodez00, BGl_proc2120z00zzcoerce_coercez00,
				BGl_string2095z00zzcoerce_coercez00);
			return
				BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_coercez12zd2envzc0zzcoerce_coercez00,
				BGl_boxzd2setz12zc0zzast_nodez00, BGl_proc2121z00zzcoerce_coercez00,
				BGl_string2095z00zzcoerce_coercez00);
		}

	}



/* &coerce!-box-set!1345 */
	BgL_nodez00_bglt
		BGl_z62coercez12zd2boxzd2setz121345z62zzcoerce_coercez00(obj_t
		BgL_envz00_3469, obj_t BgL_nodez00_3470, obj_t BgL_callerz00_3471,
		obj_t BgL_toz00_3472, obj_t BgL_safez00_3473)
	{
		{	/* Coerce/coerce.scm 522 */
			{	/* Coerce/coerce.scm 524 */
				BgL_nodez00_bglt BgL_vtz00_3619;

				BgL_vtz00_3619 =
					BGl_coercez12z12zzcoerce_coercez00(
					(((BgL_boxzd2setz12zc0_bglt) COBJECT(
								((BgL_boxzd2setz12zc0_bglt) BgL_nodez00_3470)))->BgL_valuez00),
					BgL_callerz00_3471,
					(((BgL_boxzd2setz12zc0_bglt) COBJECT(((BgL_boxzd2setz12zc0_bglt)
									BgL_nodez00_3470)))->BgL_vtypez00), CBOOL(BgL_safez00_3473));
				((((BgL_boxzd2setz12zc0_bglt) COBJECT(((BgL_boxzd2setz12zc0_bglt)
									BgL_nodez00_3470)))->BgL_valuez00) =
					((BgL_nodez00_bglt) BGl_coercez12z12zzcoerce_coercez00(BgL_vtz00_3619,
							BgL_callerz00_3471,
							((BgL_typez00_bglt) BGl_za2objza2z00zztype_cachez00),
							CBOOL(BgL_safez00_3473))), BUNSPEC);
			}
			{	/* Coerce/coerce.scm 526 */
				BgL_typez00_bglt BgL_arg1992z00_3620;

				BgL_arg1992z00_3620 =
					(((BgL_nodez00_bglt) COBJECT(
							((BgL_nodez00_bglt)
								((BgL_boxzd2setz12zc0_bglt) BgL_nodez00_3470))))->BgL_typez00);
				return
					BGl_convertz12z12zzcoerce_convertz00(
					((BgL_nodez00_bglt)
						((BgL_boxzd2setz12zc0_bglt) BgL_nodez00_3470)), BgL_arg1992z00_3620,
					((BgL_typez00_bglt) BgL_toz00_3472), CBOOL(BgL_safez00_3473));
			}
		}

	}



/* &coerce!-box-ref1343 */
	BgL_nodez00_bglt BGl_z62coercez12zd2boxzd2ref1343z70zzcoerce_coercez00(obj_t
		BgL_envz00_3474, obj_t BgL_nodez00_3475, obj_t BgL_callerz00_3476,
		obj_t BgL_toz00_3477, obj_t BgL_safez00_3478)
	{
		{	/* Coerce/coerce.scm 512 */
			{	/* Coerce/coerce.scm 514 */
				BgL_nodez00_bglt BgL_cnodez00_3622;

				{	/* Coerce/coerce.scm 514 */
					BgL_typez00_bglt BgL_arg1989z00_3623;

					BgL_arg1989z00_3623 =
						(((BgL_boxzd2refzd2_bglt) COBJECT(
								((BgL_boxzd2refzd2_bglt) BgL_nodez00_3475)))->BgL_vtypez00);
					BgL_cnodez00_3622 =
						BGl_convertz12z12zzcoerce_convertz00(
						((BgL_nodez00_bglt)
							((BgL_boxzd2refzd2_bglt) BgL_nodez00_3475)), BgL_arg1989z00_3623,
						((BgL_typez00_bglt) BgL_toz00_3477), CBOOL(BgL_safez00_3478));
				}
				{	/* Coerce/coerce.scm 515 */
					bool_t BgL_test2196z00_4304;

					{	/* Coerce/coerce.scm 515 */
						obj_t BgL_classz00_3624;

						BgL_classz00_3624 = BGl_tclassz00zzobject_classz00;
						if (BGL_OBJECTP(BgL_toz00_3477))
							{	/* Coerce/coerce.scm 515 */
								BgL_objectz00_bglt BgL_arg1801z00_3625;

								BgL_arg1801z00_3625 = (BgL_objectz00_bglt) (BgL_toz00_3477);
								if (BGL_CONDEXPAND_ISA_ARCH64())
									{	/* Coerce/coerce.scm 515 */
										long BgL_idxz00_3626;

										BgL_idxz00_3626 =
											BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_3625);
										BgL_test2196z00_4304 =
											(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
												(BgL_idxz00_3626 + 2L)) == BgL_classz00_3624);
									}
								else
									{	/* Coerce/coerce.scm 515 */
										bool_t BgL_res2083z00_3629;

										{	/* Coerce/coerce.scm 515 */
											obj_t BgL_oclassz00_3630;

											{	/* Coerce/coerce.scm 515 */
												long BgL_arg1808z00_3631;

												{	/* Coerce/coerce.scm 515 */
													long BgL_arg1809z00_3632;

													BgL_arg1809z00_3632 =
														BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_3625);
													BgL_arg1808z00_3631 =
														(BgL_arg1809z00_3632 - OBJECT_TYPE);
												}
												BgL_oclassz00_3630 =
													VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
													BgL_arg1808z00_3631);
											}
											{	/* Coerce/coerce.scm 515 */
												bool_t BgL__ortest_1115z00_3633;

												BgL__ortest_1115z00_3633 =
													(BgL_classz00_3624 == BgL_oclassz00_3630);
												if (BgL__ortest_1115z00_3633)
													{	/* Coerce/coerce.scm 515 */
														BgL_res2083z00_3629 = BgL__ortest_1115z00_3633;
													}
												else
													{	/* Coerce/coerce.scm 515 */
														long BgL_odepthz00_3634;

														BgL_odepthz00_3634 =
															BGL_CLASS_DEPTH(BgL_oclassz00_3630);
														if ((2L < BgL_odepthz00_3634))
															{	/* Coerce/coerce.scm 515 */
																obj_t BgL_arg1797z00_3635;

																BgL_arg1797z00_3635 =
																	BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_3630,
																	2L);
																BgL_res2083z00_3629 =
																	(BgL_arg1797z00_3635 == BgL_classz00_3624);
															}
														else
															{	/* Coerce/coerce.scm 515 */
																BgL_res2083z00_3629 = ((bool_t) 0);
															}
													}
											}
										}
										BgL_test2196z00_4304 = BgL_res2083z00_3629;
									}
							}
						else
							{	/* Coerce/coerce.scm 515 */
								BgL_test2196z00_4304 = ((bool_t) 0);
							}
					}
					if (BgL_test2196z00_4304)
						{	/* Coerce/coerce.scm 515 */
							return
								((BgL_nodez00_bglt)
								BGl_castzd2nodezd2zzcoerce_coercez00(BgL_cnodez00_3622,
									BgL_toz00_3477));
						}
					else
						{	/* Coerce/coerce.scm 515 */
							return BgL_cnodez00_3622;
						}
				}
			}
		}

	}



/* &coerce!-make-box1341 */
	BgL_nodez00_bglt BGl_z62coercez12zd2makezd2box1341z70zzcoerce_coercez00(obj_t
		BgL_envz00_3479, obj_t BgL_nodez00_3480, obj_t BgL_callerz00_3481,
		obj_t BgL_toz00_3482, obj_t BgL_safez00_3483)
	{
		{	/* Coerce/coerce.scm 501 */
			{	/* Coerce/coerce.scm 503 */
				BgL_nodez00_bglt BgL_nodevz00_3637;

				BgL_nodevz00_3637 =
					BGl_coercez12z12zzcoerce_coercez00(
					(((BgL_makezd2boxzd2_bglt) COBJECT(
								((BgL_makezd2boxzd2_bglt) BgL_nodez00_3480)))->BgL_valuez00),
					BgL_callerz00_3481,
					(((BgL_makezd2boxzd2_bglt) COBJECT(((BgL_makezd2boxzd2_bglt)
									BgL_nodez00_3480)))->BgL_vtypez00), CBOOL(BgL_safez00_3483));
				{	/* Coerce/coerce.scm 504 */
					bool_t BgL_test2201z00_4332;

					{	/* Coerce/coerce.scm 504 */
						BgL_typez00_bglt BgL_arg1985z00_3638;

						BgL_arg1985z00_3638 =
							BGl_getzd2typezd2zztype_typeofz00(BgL_nodevz00_3637,
							((bool_t) 0));
						{	/* Coerce/coerce.scm 504 */
							obj_t BgL_classz00_3639;

							BgL_classz00_3639 = BGl_tclassz00zzobject_classz00;
							{	/* Coerce/coerce.scm 504 */
								BgL_objectz00_bglt BgL_arg1801z00_3640;

								{	/* Coerce/coerce.scm 504 */
									obj_t BgL_tmpz00_4334;

									BgL_tmpz00_4334 =
										((obj_t) ((BgL_objectz00_bglt) BgL_arg1985z00_3638));
									BgL_arg1801z00_3640 = (BgL_objectz00_bglt) (BgL_tmpz00_4334);
								}
								if (BGL_CONDEXPAND_ISA_ARCH64())
									{	/* Coerce/coerce.scm 504 */
										long BgL_idxz00_3641;

										BgL_idxz00_3641 =
											BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_3640);
										BgL_test2201z00_4332 =
											(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
												(BgL_idxz00_3641 + 2L)) == BgL_classz00_3639);
									}
								else
									{	/* Coerce/coerce.scm 504 */
										bool_t BgL_res2082z00_3644;

										{	/* Coerce/coerce.scm 504 */
											obj_t BgL_oclassz00_3645;

											{	/* Coerce/coerce.scm 504 */
												long BgL_arg1808z00_3646;

												{	/* Coerce/coerce.scm 504 */
													long BgL_arg1809z00_3647;

													BgL_arg1809z00_3647 =
														BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_3640);
													BgL_arg1808z00_3646 =
														(BgL_arg1809z00_3647 - OBJECT_TYPE);
												}
												BgL_oclassz00_3645 =
													VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
													BgL_arg1808z00_3646);
											}
											{	/* Coerce/coerce.scm 504 */
												bool_t BgL__ortest_1115z00_3648;

												BgL__ortest_1115z00_3648 =
													(BgL_classz00_3639 == BgL_oclassz00_3645);
												if (BgL__ortest_1115z00_3648)
													{	/* Coerce/coerce.scm 504 */
														BgL_res2082z00_3644 = BgL__ortest_1115z00_3648;
													}
												else
													{	/* Coerce/coerce.scm 504 */
														long BgL_odepthz00_3649;

														BgL_odepthz00_3649 =
															BGL_CLASS_DEPTH(BgL_oclassz00_3645);
														if ((2L < BgL_odepthz00_3649))
															{	/* Coerce/coerce.scm 504 */
																obj_t BgL_arg1797z00_3650;

																BgL_arg1797z00_3650 =
																	BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_3645,
																	2L);
																BgL_res2082z00_3644 =
																	(BgL_arg1797z00_3650 == BgL_classz00_3639);
															}
														else
															{	/* Coerce/coerce.scm 504 */
																BgL_res2082z00_3644 = ((bool_t) 0);
															}
													}
											}
										}
										BgL_test2201z00_4332 = BgL_res2082z00_3644;
									}
							}
						}
					}
					if (BgL_test2201z00_4332)
						{	/* Coerce/coerce.scm 504 */
							((((BgL_makezd2boxzd2_bglt) COBJECT(
											((BgL_makezd2boxzd2_bglt) BgL_nodez00_3480)))->
									BgL_valuez00) =
								((BgL_nodez00_bglt) ((BgL_nodez00_bglt)
										BGl_castzd2nodezd2zzcoerce_coercez00(BgL_nodevz00_3637,
											BGl_za2objza2z00zztype_cachez00))), BUNSPEC);
						}
					else
						{	/* Coerce/coerce.scm 504 */
							((((BgL_makezd2boxzd2_bglt) COBJECT(
											((BgL_makezd2boxzd2_bglt) BgL_nodez00_3480)))->
									BgL_valuez00) =
								((BgL_nodez00_bglt) BgL_nodevz00_3637), BUNSPEC);
						}
				}
			}
			return ((BgL_nodez00_bglt) ((BgL_makezd2boxzd2_bglt) BgL_nodez00_3480));
		}

	}



/* &coerce!-jump-ex-it1339 */
	BgL_nodez00_bglt
		BGl_z62coercez12zd2jumpzd2exzd2it1339za2zzcoerce_coercez00(obj_t
		BgL_envz00_3484, obj_t BgL_nodez00_3485, obj_t BgL_callerz00_3486,
		obj_t BgL_toz00_3487, obj_t BgL_safez00_3488)
	{
		{	/* Coerce/coerce.scm 482 */
			{
				BgL_nodez00_bglt BgL_auxz00_4362;

				{	/* Coerce/coerce.scm 484 */
					BgL_nodez00_bglt BgL_arg1978z00_3652;

					BgL_arg1978z00_3652 =
						(((BgL_jumpzd2exzd2itz00_bglt) COBJECT(
								((BgL_jumpzd2exzd2itz00_bglt) BgL_nodez00_3485)))->BgL_exitz00);
					BgL_auxz00_4362 =
						BGl_coercez12z12zzcoerce_coercez00(BgL_arg1978z00_3652,
						BgL_callerz00_3486,
						((BgL_typez00_bglt) BGl_za2exitza2z00zztype_cachez00),
						CBOOL(BgL_safez00_3488));
				}
				((((BgL_jumpzd2exzd2itz00_bglt) COBJECT(
								((BgL_jumpzd2exzd2itz00_bglt) BgL_nodez00_3485)))->
						BgL_exitz00) = ((BgL_nodez00_bglt) BgL_auxz00_4362), BUNSPEC);
			}
			{
				BgL_nodez00_bglt BgL_auxz00_4370;

				{	/* Coerce/coerce.scm 485 */
					BgL_nodez00_bglt BgL_arg1979z00_3653;
					BgL_typez00_bglt BgL_arg1980z00_3654;

					BgL_arg1979z00_3653 =
						(((BgL_jumpzd2exzd2itz00_bglt) COBJECT(
								((BgL_jumpzd2exzd2itz00_bglt) BgL_nodez00_3485)))->
						BgL_valuez00);
					{	/* Coerce/coerce.scm 485 */
						BgL_nodez00_bglt BgL_arg1981z00_3655;

						BgL_arg1981z00_3655 =
							(((BgL_jumpzd2exzd2itz00_bglt) COBJECT(
									((BgL_jumpzd2exzd2itz00_bglt) BgL_nodez00_3485)))->
							BgL_valuez00);
						BgL_arg1980z00_3654 =
							BGl_getzd2typezd2zztype_typeofz00(BgL_arg1981z00_3655,
							((bool_t) 0));
					}
					BgL_auxz00_4370 =
						BGl_coercez12z12zzcoerce_coercez00(BgL_arg1979z00_3653,
						BgL_callerz00_3486, BgL_arg1980z00_3654, CBOOL(BgL_safez00_3488));
				}
				((((BgL_jumpzd2exzd2itz00_bglt) COBJECT(
								((BgL_jumpzd2exzd2itz00_bglt) BgL_nodez00_3485)))->
						BgL_valuez00) = ((BgL_nodez00_bglt) BgL_auxz00_4370), BUNSPEC);
			}
			{	/* Coerce/coerce.scm 486 */
				BgL_typez00_bglt BgL_arg1982z00_3656;

				BgL_arg1982z00_3656 =
					(((BgL_nodez00_bglt) COBJECT(
							((BgL_nodez00_bglt)
								((BgL_jumpzd2exzd2itz00_bglt) BgL_nodez00_3485))))->
					BgL_typez00);
				return
					BGl_convertz12z12zzcoerce_convertz00(((BgL_nodez00_bglt) (
							(BgL_jumpzd2exzd2itz00_bglt) BgL_nodez00_3485)),
					BgL_arg1982z00_3656, ((BgL_typez00_bglt) BgL_toz00_3487),
					CBOOL(BgL_safez00_3488));
			}
		}

	}



/* &coerce!-set-ex-it1337 */
	BgL_nodez00_bglt
		BGl_z62coercez12zd2setzd2exzd2it1337za2zzcoerce_coercez00(obj_t
		BgL_envz00_3489, obj_t BgL_nodez00_3490, obj_t BgL_callerz00_3491,
		obj_t BgL_toz00_3492, obj_t BgL_safez00_3493)
	{
		{	/* Coerce/coerce.scm 471 */
			{
				BgL_varz00_bglt BgL_auxz00_4388;

				{	/* Coerce/coerce.scm 473 */
					BgL_varz00_bglt BgL_arg1973z00_3658;

					BgL_arg1973z00_3658 =
						(((BgL_setzd2exzd2itz00_bglt) COBJECT(
								((BgL_setzd2exzd2itz00_bglt) BgL_nodez00_3490)))->BgL_varz00);
					BgL_auxz00_4388 =
						((BgL_varz00_bglt)
						BGl_coercez12z12zzcoerce_coercez00(
							((BgL_nodez00_bglt) BgL_arg1973z00_3658), BgL_callerz00_3491,
							((BgL_typez00_bglt) BGl_za2exitza2z00zztype_cachez00),
							CBOOL(BgL_safez00_3493)));
				}
				((((BgL_setzd2exzd2itz00_bglt) COBJECT(
								((BgL_setzd2exzd2itz00_bglt) BgL_nodez00_3490)))->BgL_varz00) =
					((BgL_varz00_bglt) BgL_auxz00_4388), BUNSPEC);
			}
			BGl_pvariablezd2protozd2zzcoerce_pprotoz00(3L,
				(((BgL_varz00_bglt) COBJECT(
							(((BgL_setzd2exzd2itz00_bglt) COBJECT(
										((BgL_setzd2exzd2itz00_bglt) BgL_nodez00_3490)))->
								BgL_varz00)))->BgL_variablez00));
			{
				BgL_nodez00_bglt BgL_auxz00_4402;

				{	/* Coerce/coerce.scm 475 */
					BgL_nodez00_bglt BgL_arg1976z00_3659;

					BgL_arg1976z00_3659 =
						(((BgL_setzd2exzd2itz00_bglt) COBJECT(
								((BgL_setzd2exzd2itz00_bglt) BgL_nodez00_3490)))->BgL_bodyz00);
					BgL_auxz00_4402 =
						BGl_coercez12z12zzcoerce_coercez00(BgL_arg1976z00_3659,
						BgL_callerz00_3491, ((BgL_typez00_bglt) BgL_toz00_3492),
						CBOOL(BgL_safez00_3493));
				}
				((((BgL_setzd2exzd2itz00_bglt) COBJECT(
								((BgL_setzd2exzd2itz00_bglt) BgL_nodez00_3490)))->BgL_bodyz00) =
					((BgL_nodez00_bglt) BgL_auxz00_4402), BUNSPEC);
			}
			{
				BgL_nodez00_bglt BgL_auxz00_4410;

				{	/* Coerce/coerce.scm 476 */
					BgL_nodez00_bglt BgL_arg1977z00_3660;

					BgL_arg1977z00_3660 =
						(((BgL_setzd2exzd2itz00_bglt) COBJECT(
								((BgL_setzd2exzd2itz00_bglt) BgL_nodez00_3490)))->
						BgL_onexitz00);
					BgL_auxz00_4410 =
						BGl_coercez12z12zzcoerce_coercez00(BgL_arg1977z00_3660,
						BgL_callerz00_3491, ((BgL_typez00_bglt) BgL_toz00_3492),
						CBOOL(BgL_safez00_3493));
				}
				((((BgL_setzd2exzd2itz00_bglt) COBJECT(
								((BgL_setzd2exzd2itz00_bglt) BgL_nodez00_3490)))->
						BgL_onexitz00) = ((BgL_nodez00_bglt) BgL_auxz00_4410), BUNSPEC);
			}
			return
				((BgL_nodez00_bglt) ((BgL_setzd2exzd2itz00_bglt) BgL_nodez00_3490));
		}

	}



/* &coerce!-let-var1335 */
	BgL_nodez00_bglt BGl_z62coercez12zd2letzd2var1335z70zzcoerce_coercez00(obj_t
		BgL_envz00_3494, obj_t BgL_nodez00_3495, obj_t BgL_callerz00_3496,
		obj_t BgL_toz00_3497, obj_t BgL_safez00_3498)
	{
		{	/* Coerce/coerce.scm 451 */
			BGl_inczd2ppmargez12zc0zzcoerce_pprotoz00();
			{	/* Tools/trace.sch 53 */
				obj_t BgL_g1289z00_3662;

				BgL_g1289z00_3662 =
					(((BgL_letzd2varzd2_bglt) COBJECT(
							((BgL_letzd2varzd2_bglt) BgL_nodez00_3495)))->BgL_bindingsz00);
				{
					obj_t BgL_l1287z00_3664;

					BgL_l1287z00_3664 = BgL_g1289z00_3662;
				BgL_zc3z04anonymousza31961ze3z87_3663:
					if (PAIRP(BgL_l1287z00_3664))
						{	/* Tools/trace.sch 53 */
							{	/* Tools/trace.sch 53 */
								obj_t BgL_bindingz00_3665;

								BgL_bindingz00_3665 = CAR(BgL_l1287z00_3664);
								{	/* Tools/trace.sch 53 */
									obj_t BgL_arg1963z00_3666;

									BgL_arg1963z00_3666 = CAR(((obj_t) BgL_bindingz00_3665));
									BGl_pvariablezd2protozd2zzcoerce_pprotoz00(3L,
										((BgL_variablez00_bglt) BgL_arg1963z00_3666));
								}
								{	/* Tools/trace.sch 53 */
									BgL_nodez00_bglt BgL_arg1964z00_3667;

									{	/* Tools/trace.sch 53 */
										obj_t BgL_arg1965z00_3668;
										BgL_typez00_bglt BgL_arg1966z00_3669;

										BgL_arg1965z00_3668 = CDR(((obj_t) BgL_bindingz00_3665));
										BgL_arg1966z00_3669 =
											(((BgL_variablez00_bglt) COBJECT(
													((BgL_variablez00_bglt)
														((BgL_localz00_bglt)
															CAR(
																((obj_t) BgL_bindingz00_3665))))))->
											BgL_typez00);
										BgL_arg1964z00_3667 =
											BGl_coercez12z12zzcoerce_coercez00(((BgL_nodez00_bglt)
												BgL_arg1965z00_3668), BgL_callerz00_3496,
											BgL_arg1966z00_3669, CBOOL(BgL_safez00_3498));
									}
									{	/* Tools/trace.sch 53 */
										obj_t BgL_auxz00_4442;
										obj_t BgL_tmpz00_4440;

										BgL_auxz00_4442 = ((obj_t) BgL_arg1964z00_3667);
										BgL_tmpz00_4440 = ((obj_t) BgL_bindingz00_3665);
										SET_CDR(BgL_tmpz00_4440, BgL_auxz00_4442);
									}
								}
							}
							{
								obj_t BgL_l1287z00_4445;

								BgL_l1287z00_4445 = CDR(BgL_l1287z00_3664);
								BgL_l1287z00_3664 = BgL_l1287z00_4445;
								goto BgL_zc3z04anonymousza31961ze3z87_3663;
							}
						}
					else
						{	/* Tools/trace.sch 53 */
							((bool_t) 1);
						}
				}
			}
			{
				BgL_nodez00_bglt BgL_auxz00_4447;

				{	/* Tools/trace.sch 53 */
					BgL_nodez00_bglt BgL_arg1969z00_3670;

					BgL_arg1969z00_3670 =
						(((BgL_letzd2varzd2_bglt) COBJECT(
								((BgL_letzd2varzd2_bglt) BgL_nodez00_3495)))->BgL_bodyz00);
					BgL_auxz00_4447 =
						BGl_coercez12z12zzcoerce_coercez00(BgL_arg1969z00_3670,
						BgL_callerz00_3496, ((BgL_typez00_bglt) BgL_toz00_3497),
						CBOOL(BgL_safez00_3498));
				}
				((((BgL_letzd2varzd2_bglt) COBJECT(
								((BgL_letzd2varzd2_bglt) BgL_nodez00_3495)))->BgL_bodyz00) =
					((BgL_nodez00_bglt) BgL_auxz00_4447), BUNSPEC);
			}
			{
				BgL_typez00_bglt BgL_auxz00_4455;

				{	/* Tools/trace.sch 53 */
					BgL_typez00_bglt BgL_arg1970z00_3671;
					BgL_typez00_bglt BgL_arg1971z00_3672;

					BgL_arg1970z00_3671 =
						(((BgL_nodez00_bglt) COBJECT(
								(((BgL_letzd2varzd2_bglt) COBJECT(
											((BgL_letzd2varzd2_bglt) BgL_nodez00_3495)))->
									BgL_bodyz00)))->BgL_typez00);
					BgL_arg1971z00_3672 =
						(((BgL_nodez00_bglt)
							COBJECT(((BgL_nodez00_bglt) ((BgL_letzd2varzd2_bglt)
										BgL_nodez00_3495))))->BgL_typez00);
					BgL_auxz00_4455 =
						BGl_strictzd2nodezd2typez00zzast_nodez00(BgL_arg1970z00_3671,
						BgL_arg1971z00_3672);
				}
				((((BgL_nodez00_bglt) COBJECT(
								((BgL_nodez00_bglt)
									((BgL_letzd2varzd2_bglt) BgL_nodez00_3495))))->BgL_typez00) =
					((BgL_typez00_bglt) BgL_auxz00_4455), BUNSPEC);
			}
			BGl_deczd2ppmargez12zc0zzcoerce_pprotoz00();
			return ((BgL_nodez00_bglt) ((BgL_letzd2varzd2_bglt) BgL_nodez00_3495));
		}

	}



/* &coerce!-let-fun1333 */
	BgL_nodez00_bglt BGl_z62coercez12zd2letzd2fun1333z70zzcoerce_coercez00(obj_t
		BgL_envz00_3499, obj_t BgL_nodez00_3500, obj_t BgL_callerz00_3501,
		obj_t BgL_toz00_3502, obj_t BgL_safez00_3503)
	{
		{	/* Coerce/coerce.scm 439 */
			BGl_inczd2ppmargez12zc0zzcoerce_pprotoz00();
			{	/* Coerce/coerce.scm 442 */
				obj_t BgL_g1286z00_3674;

				BgL_g1286z00_3674 =
					(((BgL_letzd2funzd2_bglt) COBJECT(
							((BgL_letzd2funzd2_bglt) BgL_nodez00_3500)))->BgL_localsz00);
				{
					obj_t BgL_l1284z00_3676;

					BgL_l1284z00_3676 = BgL_g1286z00_3674;
				BgL_zc3z04anonymousza31953ze3z87_3675:
					if (PAIRP(BgL_l1284z00_3676))
						{	/* Coerce/coerce.scm 442 */
							{	/* Coerce/coerce.scm 442 */
								obj_t BgL_fz00_3677;

								BgL_fz00_3677 = CAR(BgL_l1284z00_3676);
								{	/* Coerce/coerce.scm 442 */
									bool_t BgL_arg1955z00_3678;

									if (CBOOL(BGl_za2unsafezd2typeza2zd2zzengine_paramz00))
										{	/* Coerce/coerce.scm 442 */
											BgL_arg1955z00_3678 = ((bool_t) 0);
										}
									else
										{	/* Coerce/coerce.scm 442 */
											BgL_arg1955z00_3678 = ((bool_t) 1);
										}
									BGl_coercezd2functionz12zc0zzcoerce_coercez00(
										((BgL_variablez00_bglt) BgL_fz00_3677),
										BgL_arg1955z00_3678);
								}
							}
							{
								obj_t BgL_l1284z00_4479;

								BgL_l1284z00_4479 = CDR(BgL_l1284z00_3676);
								BgL_l1284z00_3676 = BgL_l1284z00_4479;
								goto BgL_zc3z04anonymousza31953ze3z87_3675;
							}
						}
					else
						{	/* Coerce/coerce.scm 442 */
							((bool_t) 1);
						}
				}
			}
			{
				BgL_nodez00_bglt BgL_auxz00_4481;

				{	/* Coerce/coerce.scm 443 */
					BgL_nodez00_bglt BgL_arg1957z00_3679;

					BgL_arg1957z00_3679 =
						(((BgL_letzd2funzd2_bglt) COBJECT(
								((BgL_letzd2funzd2_bglt) BgL_nodez00_3500)))->BgL_bodyz00);
					BgL_auxz00_4481 =
						BGl_coercez12z12zzcoerce_coercez00(BgL_arg1957z00_3679,
						BgL_callerz00_3501, ((BgL_typez00_bglt) BgL_toz00_3502),
						CBOOL(BgL_safez00_3503));
				}
				((((BgL_letzd2funzd2_bglt) COBJECT(
								((BgL_letzd2funzd2_bglt) BgL_nodez00_3500)))->BgL_bodyz00) =
					((BgL_nodez00_bglt) BgL_auxz00_4481), BUNSPEC);
			}
			{
				BgL_typez00_bglt BgL_auxz00_4489;

				{	/* Coerce/coerce.scm 444 */
					BgL_typez00_bglt BgL_arg1958z00_3680;
					BgL_typez00_bglt BgL_arg1959z00_3681;

					BgL_arg1958z00_3680 =
						(((BgL_nodez00_bglt) COBJECT(
								(((BgL_letzd2funzd2_bglt) COBJECT(
											((BgL_letzd2funzd2_bglt) BgL_nodez00_3500)))->
									BgL_bodyz00)))->BgL_typez00);
					BgL_arg1959z00_3681 =
						(((BgL_nodez00_bglt)
							COBJECT(((BgL_nodez00_bglt) ((BgL_letzd2funzd2_bglt)
										BgL_nodez00_3500))))->BgL_typez00);
					BgL_auxz00_4489 =
						BGl_strictzd2nodezd2typez00zzast_nodez00(BgL_arg1958z00_3680,
						BgL_arg1959z00_3681);
				}
				((((BgL_nodez00_bglt) COBJECT(
								((BgL_nodez00_bglt)
									((BgL_letzd2funzd2_bglt) BgL_nodez00_3500))))->BgL_typez00) =
					((BgL_typez00_bglt) BgL_auxz00_4489), BUNSPEC);
			}
			BGl_deczd2ppmargez12zc0zzcoerce_pprotoz00();
			return ((BgL_nodez00_bglt) ((BgL_letzd2funzd2_bglt) BgL_nodez00_3500));
		}

	}



/* &coerce!-switch1331 */
	BgL_nodez00_bglt BGl_z62coercez12zd2switch1331za2zzcoerce_coercez00(obj_t
		BgL_envz00_3504, obj_t BgL_nodez00_3505, obj_t BgL_callerz00_3506,
		obj_t BgL_toz00_3507, obj_t BgL_safez00_3508)
	{
		{	/* Coerce/coerce.scm 409 */
			((((BgL_nodez00_bglt) COBJECT(
							((BgL_nodez00_bglt)
								((BgL_switchz00_bglt) BgL_nodez00_3505))))->BgL_typez00) =
				((BgL_typez00_bglt) ((BgL_typez00_bglt) BgL_toz00_3507)), BUNSPEC);
			{	/* Coerce/coerce.scm 412 */
				obj_t BgL_clausesz00_3683;
				BgL_typez00_bglt BgL_testzd2typezd2_3684;
				BgL_typez00_bglt BgL_testzd2nodezd2typez00_3685;

				BgL_clausesz00_3683 =
					(((BgL_switchz00_bglt) COBJECT(
							((BgL_switchz00_bglt) BgL_nodez00_3505)))->BgL_clausesz00);
				BgL_testzd2typezd2_3684 =
					(((BgL_switchz00_bglt) COBJECT(
							((BgL_switchz00_bglt) BgL_nodez00_3505)))->BgL_itemzd2typezd2);
				BgL_testzd2nodezd2typez00_3685 =
					BGl_getzd2typezd2zztype_typeofz00(
					(((BgL_switchz00_bglt) COBJECT(
								((BgL_switchz00_bglt) BgL_nodez00_3505)))->BgL_testz00),
					((bool_t) 0));
				if (BGl_coercerzd2existszf3z21zztype_coercionz00
					(BgL_testzd2nodezd2typez00_3685, BgL_testzd2typezd2_3684))
					{	/* Coerce/coerce.scm 415 */
						BFALSE;
					}
				else
					{	/* Coerce/coerce.scm 416 */
						obj_t BgL_arg1929z00_3686;
						obj_t BgL_arg1930z00_3687;
						obj_t BgL_arg1931z00_3688;

						{	/* Coerce/coerce.scm 416 */
							obj_t BgL_tmpz00_4516;

							BgL_tmpz00_4516 = BGL_CURRENT_DYNAMIC_ENV();
							BgL_arg1929z00_3686 = BGL_ENV_CURRENT_ERROR_PORT(BgL_tmpz00_4516);
						}
						BgL_arg1930z00_3687 =
							BGl_shapez00zztools_shapez00(((obj_t) BgL_testzd2typezd2_3684));
						BgL_arg1931z00_3688 =
							BGl_shapez00zztools_shapez00(
							((obj_t) BgL_testzd2nodezd2typez00_3685));
						{	/* Coerce/coerce.scm 416 */
							obj_t BgL_list1932z00_3689;

							{	/* Coerce/coerce.scm 416 */
								obj_t BgL_arg1933z00_3690;

								{	/* Coerce/coerce.scm 416 */
									obj_t BgL_arg1934z00_3691;

									{	/* Coerce/coerce.scm 416 */
										obj_t BgL_arg1935z00_3692;

										{	/* Coerce/coerce.scm 416 */
											obj_t BgL_arg1936z00_3693;

											{	/* Coerce/coerce.scm 416 */
												obj_t BgL_arg1937z00_3694;

												{	/* Coerce/coerce.scm 416 */
													obj_t BgL_arg1938z00_3695;

													{	/* Coerce/coerce.scm 416 */
														obj_t BgL_arg1939z00_3696;

														BgL_arg1939z00_3696 =
															MAKE_YOUNG_PAIR(BgL_arg1931z00_3688, BNIL);
														BgL_arg1938z00_3695 =
															MAKE_YOUNG_PAIR
															(BGl_string2122z00zzcoerce_coercez00,
															BgL_arg1939z00_3696);
													}
													BgL_arg1937z00_3694 =
														MAKE_YOUNG_PAIR(BgL_arg1930z00_3687,
														BgL_arg1938z00_3695);
												}
												BgL_arg1936z00_3693 =
													MAKE_YOUNG_PAIR(BGl_string2123z00zzcoerce_coercez00,
													BgL_arg1937z00_3694);
											}
											BgL_arg1935z00_3692 =
												MAKE_YOUNG_PAIR(BGl_string2124z00zzcoerce_coercez00,
												BgL_arg1936z00_3693);
										}
										BgL_arg1934z00_3691 =
											MAKE_YOUNG_PAIR(BINT(416L), BgL_arg1935z00_3692);
									}
									BgL_arg1933z00_3690 =
										MAKE_YOUNG_PAIR(BGl_string2125z00zzcoerce_coercez00,
										BgL_arg1934z00_3691);
								}
								BgL_list1932z00_3689 =
									MAKE_YOUNG_PAIR(BGl_string2126z00zzcoerce_coercez00,
									BgL_arg1933z00_3690);
							}
							BGl_tprintz00zz__r4_output_6_10_3z00(BgL_arg1929z00_3686,
								BgL_list1932z00_3689);
						}
					}
				if (BGl_coercerzd2existszf3z21zztype_coercionz00
					(BgL_testzd2nodezd2typez00_3685, BgL_testzd2typezd2_3684))
					{	/* Coerce/coerce.scm 425 */
						((((BgL_switchz00_bglt) COBJECT(
										((BgL_switchz00_bglt) BgL_nodez00_3505)))->BgL_testz00) =
							((BgL_nodez00_bglt)
								BGl_coercez12z12zzcoerce_coercez00((((BgL_switchz00_bglt)
											COBJECT(((BgL_switchz00_bglt) BgL_nodez00_3505)))->
										BgL_testz00), BgL_callerz00_3506, BgL_testzd2typezd2_3684,
									CBOOL(BgL_safez00_3508))), BUNSPEC);
						{
							obj_t BgL_l1282z00_3698;

							BgL_l1282z00_3698 = BgL_clausesz00_3683;
						BgL_zc3z04anonymousza31943ze3z87_3697:
							if (PAIRP(BgL_l1282z00_3698))
								{	/* Coerce/coerce.scm 428 */
									{	/* Coerce/coerce.scm 429 */
										obj_t BgL_clausez00_3699;

										BgL_clausez00_3699 = CAR(BgL_l1282z00_3698);
										{	/* Coerce/coerce.scm 430 */
											BgL_nodez00_bglt BgL_arg1945z00_3700;

											{	/* Coerce/coerce.scm 430 */
												obj_t BgL_arg1946z00_3701;

												BgL_arg1946z00_3701 = CDR(((obj_t) BgL_clausez00_3699));
												BgL_arg1945z00_3700 =
													BGl_coercez12z12zzcoerce_coercez00(
													((BgL_nodez00_bglt) BgL_arg1946z00_3701),
													BgL_callerz00_3506,
													((BgL_typez00_bglt) BgL_toz00_3507),
													CBOOL(BgL_safez00_3508));
											}
											{	/* Coerce/coerce.scm 429 */
												obj_t BgL_auxz00_4552;
												obj_t BgL_tmpz00_4550;

												BgL_auxz00_4552 = ((obj_t) BgL_arg1945z00_3700);
												BgL_tmpz00_4550 = ((obj_t) BgL_clausez00_3699);
												SET_CDR(BgL_tmpz00_4550, BgL_auxz00_4552);
											}
										}
									}
									{
										obj_t BgL_l1282z00_4555;

										BgL_l1282z00_4555 = CDR(BgL_l1282z00_3698);
										BgL_l1282z00_3698 = BgL_l1282z00_4555;
										goto BgL_zc3z04anonymousza31943ze3z87_3697;
									}
								}
							else
								{	/* Coerce/coerce.scm 428 */
									((bool_t) 1);
								}
						}
						return ((BgL_nodez00_bglt) ((BgL_switchz00_bglt) BgL_nodez00_3505));
					}
				else
					{	/* Coerce/coerce.scm 433 */
						obj_t BgL_arg1948z00_3702;

						{	/* Coerce/coerce.scm 433 */
							obj_t BgL_arg1949z00_3703;
							obj_t BgL_arg1950z00_3704;
							BgL_nodez00_bglt BgL_arg1951z00_3705;

							BgL_arg1949z00_3703 =
								(((BgL_nodez00_bglt) COBJECT(
										((BgL_nodez00_bglt)
											((BgL_switchz00_bglt) BgL_nodez00_3505))))->BgL_locz00);
							BgL_arg1950z00_3704 =
								(((BgL_typez00_bglt) COBJECT(BgL_testzd2typezd2_3684))->
								BgL_idz00);
							BgL_arg1951z00_3705 =
								(((BgL_switchz00_bglt) COBJECT(((BgL_switchz00_bglt)
											BgL_nodez00_3505)))->BgL_testz00);
							BgL_arg1948z00_3702 =
								BGl_runtimezd2typezd2errorz00zzcoerce_convertz00
								(BgL_arg1949z00_3703, BgL_arg1950z00_3704, BgL_arg1951z00_3705);
						}
						return
							BGl_coercez12z12zzcoerce_coercez00(
							((BgL_nodez00_bglt) BgL_arg1948z00_3702), BgL_callerz00_3506,
							((BgL_typez00_bglt) BgL_toz00_3507), CBOOL(BgL_safez00_3508));
					}
			}
		}

	}



/* &coerce!-fail1329 */
	BgL_nodez00_bglt BGl_z62coercez12zd2fail1329za2zzcoerce_coercez00(obj_t
		BgL_envz00_3509, obj_t BgL_nodez00_3510, obj_t BgL_callerz00_3511,
		obj_t BgL_toz00_3512, obj_t BgL_safez00_3513)
	{
		{	/* Coerce/coerce.scm 399 */
			{
				BgL_nodez00_bglt BgL_auxz00_4570;

				{	/* Coerce/coerce.scm 401 */
					BgL_nodez00_bglt BgL_arg1925z00_3707;

					BgL_arg1925z00_3707 =
						(((BgL_failz00_bglt) COBJECT(
								((BgL_failz00_bglt) BgL_nodez00_3510)))->BgL_procz00);
					BgL_auxz00_4570 =
						BGl_coercez12z12zzcoerce_coercez00(BgL_arg1925z00_3707,
						BgL_callerz00_3511,
						((BgL_typez00_bglt) BGl_za2objza2z00zztype_cachez00),
						CBOOL(BgL_safez00_3513));
				}
				((((BgL_failz00_bglt) COBJECT(
								((BgL_failz00_bglt) BgL_nodez00_3510)))->BgL_procz00) =
					((BgL_nodez00_bglt) BgL_auxz00_4570), BUNSPEC);
			}
			{
				BgL_nodez00_bglt BgL_auxz00_4578;

				{	/* Coerce/coerce.scm 402 */
					BgL_nodez00_bglt BgL_arg1926z00_3708;

					BgL_arg1926z00_3708 =
						(((BgL_failz00_bglt) COBJECT(
								((BgL_failz00_bglt) BgL_nodez00_3510)))->BgL_msgz00);
					BgL_auxz00_4578 =
						BGl_coercez12z12zzcoerce_coercez00(BgL_arg1926z00_3708,
						BgL_callerz00_3511,
						((BgL_typez00_bglt) BGl_za2objza2z00zztype_cachez00),
						CBOOL(BgL_safez00_3513));
				}
				((((BgL_failz00_bglt) COBJECT(
								((BgL_failz00_bglt) BgL_nodez00_3510)))->BgL_msgz00) =
					((BgL_nodez00_bglt) BgL_auxz00_4578), BUNSPEC);
			}
			{
				BgL_nodez00_bglt BgL_auxz00_4586;

				{	/* Coerce/coerce.scm 403 */
					BgL_nodez00_bglt BgL_arg1927z00_3709;

					BgL_arg1927z00_3709 =
						(((BgL_failz00_bglt) COBJECT(
								((BgL_failz00_bglt) BgL_nodez00_3510)))->BgL_objz00);
					BgL_auxz00_4586 =
						BGl_coercez12z12zzcoerce_coercez00(BgL_arg1927z00_3709,
						BgL_callerz00_3511,
						((BgL_typez00_bglt) BGl_za2objza2z00zztype_cachez00),
						CBOOL(BgL_safez00_3513));
				}
				((((BgL_failz00_bglt) COBJECT(
								((BgL_failz00_bglt) BgL_nodez00_3510)))->BgL_objz00) =
					((BgL_nodez00_bglt) BgL_auxz00_4586), BUNSPEC);
			}
			return
				BGl_convertz12z12zzcoerce_convertz00(
				((BgL_nodez00_bglt)
					((BgL_failz00_bglt) BgL_nodez00_3510)),
				((BgL_typez00_bglt) BGl_za2magicza2z00zztype_cachez00),
				((BgL_typez00_bglt) BgL_toz00_3512), CBOOL(BgL_safez00_3513));
		}

	}



/* &coerce!-conditional1327 */
	BgL_nodez00_bglt BGl_z62coercez12zd2conditional1327za2zzcoerce_coercez00(obj_t
		BgL_envz00_3514, obj_t BgL_nodez00_3515, obj_t BgL_callerz00_3516,
		obj_t BgL_toz00_3517, obj_t BgL_safez00_3518)
	{
		{	/* Coerce/coerce.scm 288 */
			{
				obj_t BgL_nodez00_3884;
				obj_t BgL_nodez00_3803;
				obj_t BgL_nodez00_3741;
				obj_t BgL_typecz00_3742;
				obj_t BgL_nodez00_3715;

				{
					BgL_nodez00_bglt BgL_auxz00_4600;

					{	/* Coerce/coerce.scm 384 */
						BgL_nodez00_bglt BgL_arg1748z00_3904;

						BgL_arg1748z00_3904 =
							(((BgL_conditionalz00_bglt) COBJECT(
									((BgL_conditionalz00_bglt) BgL_nodez00_3515)))->BgL_testz00);
						BgL_auxz00_4600 =
							BGl_coercez12z12zzcoerce_coercez00(BgL_arg1748z00_3904,
							BgL_callerz00_3516,
							((BgL_typez00_bglt) BGl_za2boolza2z00zztype_cachez00),
							CBOOL(BgL_safez00_3518));
					}
					((((BgL_conditionalz00_bglt) COBJECT(
									((BgL_conditionalz00_bglt) BgL_nodez00_3515)))->BgL_testz00) =
						((BgL_nodez00_bglt) BgL_auxz00_4600), BUNSPEC);
				}
				{	/* Coerce/coerce.scm 385 */
					obj_t BgL_casezd2valuezd2_3905;

					{	/* Coerce/coerce.scm 385 */
						BgL_nodez00_bglt BgL_arg1760z00_3906;

						BgL_arg1760z00_3906 =
							(((BgL_conditionalz00_bglt) COBJECT(
									((BgL_conditionalz00_bglt) BgL_nodez00_3515)))->BgL_testz00);
						BgL_nodez00_3715 = ((obj_t) BgL_arg1760z00_3906);
					BgL_testzd2staticzd2valuez00_3711:
						{	/* Coerce/coerce.scm 373 */
							obj_t BgL_g1140z00_3716;

							BgL_g1140z00_3716 =
								BGl_isazd2ofzd2zztype_miscz00(
								((BgL_nodez00_bglt) BgL_nodez00_3715));
							if (CBOOL(BgL_g1140z00_3716))
								{	/* Coerce/coerce.scm 373 */
									BgL_nodez00_3741 = BgL_nodez00_3715;
									BgL_typecz00_3742 = BgL_g1140z00_3716;
									{	/* Coerce/coerce.scm 355 */
										obj_t BgL_typevz00_3743;

										{	/* Coerce/coerce.scm 356 */
											bool_t BgL_test2212z00_4614;

											{	/* Coerce/coerce.scm 356 */
												obj_t BgL_arg1920z00_3744;

												{	/* Coerce/coerce.scm 356 */
													obj_t BgL_pairz00_3745;

													BgL_pairz00_3745 =
														(((BgL_appz00_bglt) COBJECT(
																((BgL_appz00_bglt) BgL_nodez00_3741)))->
														BgL_argsz00);
													BgL_arg1920z00_3744 = CAR(BgL_pairz00_3745);
												}
												{	/* Coerce/coerce.scm 356 */
													obj_t BgL_classz00_3746;

													BgL_classz00_3746 = BGl_varz00zzast_nodez00;
													if (BGL_OBJECTP(BgL_arg1920z00_3744))
														{	/* Coerce/coerce.scm 356 */
															BgL_objectz00_bglt BgL_arg1801z00_3747;

															BgL_arg1801z00_3747 =
																(BgL_objectz00_bglt) (BgL_arg1920z00_3744);
															if (BGL_CONDEXPAND_ISA_ARCH64())
																{	/* Coerce/coerce.scm 356 */
																	long BgL_idxz00_3748;

																	BgL_idxz00_3748 =
																		BGL_OBJECT_INHERITANCE_NUM
																		(BgL_arg1801z00_3747);
																	BgL_test2212z00_4614 =
																		(VECTOR_REF
																		(BGl_za2inheritancesza2z00zz__objectz00,
																			(BgL_idxz00_3748 + 2L)) ==
																		BgL_classz00_3746);
																}
															else
																{	/* Coerce/coerce.scm 356 */
																	bool_t BgL_res2076z00_3751;

																	{	/* Coerce/coerce.scm 356 */
																		obj_t BgL_oclassz00_3752;

																		{	/* Coerce/coerce.scm 356 */
																			long BgL_arg1808z00_3753;

																			{	/* Coerce/coerce.scm 356 */
																				long BgL_arg1809z00_3754;

																				BgL_arg1809z00_3754 =
																					BGL_OBJECT_CLASS_NUM
																					(BgL_arg1801z00_3747);
																				BgL_arg1808z00_3753 =
																					(BgL_arg1809z00_3754 - OBJECT_TYPE);
																			}
																			BgL_oclassz00_3752 =
																				VECTOR_REF
																				(BGl_za2classesza2z00zz__objectz00,
																				BgL_arg1808z00_3753);
																		}
																		{	/* Coerce/coerce.scm 356 */
																			bool_t BgL__ortest_1115z00_3755;

																			BgL__ortest_1115z00_3755 =
																				(BgL_classz00_3746 ==
																				BgL_oclassz00_3752);
																			if (BgL__ortest_1115z00_3755)
																				{	/* Coerce/coerce.scm 356 */
																					BgL_res2076z00_3751 =
																						BgL__ortest_1115z00_3755;
																				}
																			else
																				{	/* Coerce/coerce.scm 356 */
																					long BgL_odepthz00_3756;

																					BgL_odepthz00_3756 =
																						BGL_CLASS_DEPTH(BgL_oclassz00_3752);
																					if ((2L < BgL_odepthz00_3756))
																						{	/* Coerce/coerce.scm 356 */
																							obj_t BgL_arg1797z00_3757;

																							BgL_arg1797z00_3757 =
																								BGL_CLASS_ANCESTORS_REF
																								(BgL_oclassz00_3752, 2L);
																							BgL_res2076z00_3751 =
																								(BgL_arg1797z00_3757 ==
																								BgL_classz00_3746);
																						}
																					else
																						{	/* Coerce/coerce.scm 356 */
																							BgL_res2076z00_3751 =
																								((bool_t) 0);
																						}
																				}
																		}
																	}
																	BgL_test2212z00_4614 = BgL_res2076z00_3751;
																}
														}
													else
														{	/* Coerce/coerce.scm 356 */
															BgL_test2212z00_4614 = ((bool_t) 0);
														}
												}
											}
											if (BgL_test2212z00_4614)
												{	/* Coerce/coerce.scm 357 */
													obj_t BgL_arg1898z00_3758;

													{	/* Coerce/coerce.scm 357 */
														obj_t BgL_pairz00_3759;

														BgL_pairz00_3759 =
															(((BgL_appz00_bglt) COBJECT(
																	((BgL_appz00_bglt) BgL_nodez00_3741)))->
															BgL_argsz00);
														BgL_arg1898z00_3758 = CAR(BgL_pairz00_3759);
													}
													BgL_typevz00_3743 =
														((obj_t)
														BGl_getzd2typezd2zztype_typeofz00(
															((BgL_nodez00_bglt) BgL_arg1898z00_3758),
															((bool_t) 0)));
												}
											else
												{	/* Coerce/coerce.scm 358 */
													bool_t BgL_test2217z00_4643;

													{	/* Coerce/coerce.scm 358 */
														obj_t BgL_arg1917z00_3760;

														{	/* Coerce/coerce.scm 358 */
															obj_t BgL_pairz00_3761;

															BgL_pairz00_3761 =
																(((BgL_appz00_bglt) COBJECT(
																		((BgL_appz00_bglt) BgL_nodez00_3741)))->
																BgL_argsz00);
															BgL_arg1917z00_3760 = CAR(BgL_pairz00_3761);
														}
														{	/* Coerce/coerce.scm 358 */
															obj_t BgL_classz00_3762;

															BgL_classz00_3762 = BGl_castz00zzast_nodez00;
															if (BGL_OBJECTP(BgL_arg1917z00_3760))
																{	/* Coerce/coerce.scm 358 */
																	BgL_objectz00_bglt BgL_arg1801z00_3763;

																	BgL_arg1801z00_3763 =
																		(BgL_objectz00_bglt) (BgL_arg1917z00_3760);
																	if (BGL_CONDEXPAND_ISA_ARCH64())
																		{	/* Coerce/coerce.scm 358 */
																			long BgL_idxz00_3764;

																			BgL_idxz00_3764 =
																				BGL_OBJECT_INHERITANCE_NUM
																				(BgL_arg1801z00_3763);
																			BgL_test2217z00_4643 =
																				(VECTOR_REF
																				(BGl_za2inheritancesza2z00zz__objectz00,
																					(BgL_idxz00_3764 + 2L)) ==
																				BgL_classz00_3762);
																		}
																	else
																		{	/* Coerce/coerce.scm 358 */
																			bool_t BgL_res2077z00_3767;

																			{	/* Coerce/coerce.scm 358 */
																				obj_t BgL_oclassz00_3768;

																				{	/* Coerce/coerce.scm 358 */
																					long BgL_arg1808z00_3769;

																					{	/* Coerce/coerce.scm 358 */
																						long BgL_arg1809z00_3770;

																						BgL_arg1809z00_3770 =
																							BGL_OBJECT_CLASS_NUM
																							(BgL_arg1801z00_3763);
																						BgL_arg1808z00_3769 =
																							(BgL_arg1809z00_3770 -
																							OBJECT_TYPE);
																					}
																					BgL_oclassz00_3768 =
																						VECTOR_REF
																						(BGl_za2classesza2z00zz__objectz00,
																						BgL_arg1808z00_3769);
																				}
																				{	/* Coerce/coerce.scm 358 */
																					bool_t BgL__ortest_1115z00_3771;

																					BgL__ortest_1115z00_3771 =
																						(BgL_classz00_3762 ==
																						BgL_oclassz00_3768);
																					if (BgL__ortest_1115z00_3771)
																						{	/* Coerce/coerce.scm 358 */
																							BgL_res2077z00_3767 =
																								BgL__ortest_1115z00_3771;
																						}
																					else
																						{	/* Coerce/coerce.scm 358 */
																							long BgL_odepthz00_3772;

																							BgL_odepthz00_3772 =
																								BGL_CLASS_DEPTH
																								(BgL_oclassz00_3768);
																							if ((2L < BgL_odepthz00_3772))
																								{	/* Coerce/coerce.scm 358 */
																									obj_t BgL_arg1797z00_3773;

																									BgL_arg1797z00_3773 =
																										BGL_CLASS_ANCESTORS_REF
																										(BgL_oclassz00_3768, 2L);
																									BgL_res2077z00_3767 =
																										(BgL_arg1797z00_3773 ==
																										BgL_classz00_3762);
																								}
																							else
																								{	/* Coerce/coerce.scm 358 */
																									BgL_res2077z00_3767 =
																										((bool_t) 0);
																								}
																						}
																				}
																			}
																			BgL_test2217z00_4643 =
																				BgL_res2077z00_3767;
																		}
																}
															else
																{	/* Coerce/coerce.scm 358 */
																	BgL_test2217z00_4643 = ((bool_t) 0);
																}
														}
													}
													if (BgL_test2217z00_4643)
														{	/* Coerce/coerce.scm 359 */
															BgL_castz00_bglt BgL_i1139z00_3774;

															{	/* Coerce/coerce.scm 359 */
																obj_t BgL_pairz00_3775;

																BgL_pairz00_3775 =
																	(((BgL_appz00_bglt) COBJECT(
																			((BgL_appz00_bglt) BgL_nodez00_3741)))->
																	BgL_argsz00);
																BgL_i1139z00_3774 =
																	((BgL_castz00_bglt) CAR(BgL_pairz00_3775));
															}
															{	/* Coerce/coerce.scm 360 */
																bool_t BgL_test2222z00_4670;

																{	/* Coerce/coerce.scm 360 */
																	bool_t BgL_test2223z00_4671;

																	{	/* Coerce/coerce.scm 360 */
																		BgL_typez00_bglt BgL_arg1915z00_3776;

																		BgL_arg1915z00_3776 =
																			(((BgL_nodez00_bglt) COBJECT(
																					((BgL_nodez00_bglt)
																						BgL_i1139z00_3774)))->BgL_typez00);
																		BgL_test2223z00_4671 =
																			(((obj_t) BgL_arg1915z00_3776) ==
																			BGl_za2objza2z00zztype_cachez00);
																	}
																	if (BgL_test2223z00_4671)
																		{	/* Coerce/coerce.scm 360 */
																			BgL_nodez00_bglt BgL_arg1914z00_3777;

																			BgL_arg1914z00_3777 =
																				(((BgL_castz00_bglt)
																					COBJECT(BgL_i1139z00_3774))->
																				BgL_argz00);
																			{	/* Coerce/coerce.scm 360 */
																				obj_t BgL_classz00_3778;

																				BgL_classz00_3778 =
																					BGl_varz00zzast_nodez00;
																				{	/* Coerce/coerce.scm 360 */
																					BgL_objectz00_bglt
																						BgL_arg1801z00_3779;
																					{	/* Coerce/coerce.scm 360 */
																						obj_t BgL_tmpz00_4677;

																						BgL_tmpz00_4677 =
																							((obj_t)
																							((BgL_objectz00_bglt)
																								BgL_arg1914z00_3777));
																						BgL_arg1801z00_3779 =
																							(BgL_objectz00_bglt)
																							(BgL_tmpz00_4677);
																					}
																					if (BGL_CONDEXPAND_ISA_ARCH64())
																						{	/* Coerce/coerce.scm 360 */
																							long BgL_idxz00_3780;

																							BgL_idxz00_3780 =
																								BGL_OBJECT_INHERITANCE_NUM
																								(BgL_arg1801z00_3779);
																							BgL_test2222z00_4670 =
																								(VECTOR_REF
																								(BGl_za2inheritancesza2z00zz__objectz00,
																									(BgL_idxz00_3780 + 2L)) ==
																								BgL_classz00_3778);
																						}
																					else
																						{	/* Coerce/coerce.scm 360 */
																							bool_t BgL_res2078z00_3783;

																							{	/* Coerce/coerce.scm 360 */
																								obj_t BgL_oclassz00_3784;

																								{	/* Coerce/coerce.scm 360 */
																									long BgL_arg1808z00_3785;

																									{	/* Coerce/coerce.scm 360 */
																										long BgL_arg1809z00_3786;

																										BgL_arg1809z00_3786 =
																											BGL_OBJECT_CLASS_NUM
																											(BgL_arg1801z00_3779);
																										BgL_arg1808z00_3785 =
																											(BgL_arg1809z00_3786 -
																											OBJECT_TYPE);
																									}
																									BgL_oclassz00_3784 =
																										VECTOR_REF
																										(BGl_za2classesza2z00zz__objectz00,
																										BgL_arg1808z00_3785);
																								}
																								{	/* Coerce/coerce.scm 360 */
																									bool_t
																										BgL__ortest_1115z00_3787;
																									BgL__ortest_1115z00_3787 =
																										(BgL_classz00_3778 ==
																										BgL_oclassz00_3784);
																									if (BgL__ortest_1115z00_3787)
																										{	/* Coerce/coerce.scm 360 */
																											BgL_res2078z00_3783 =
																												BgL__ortest_1115z00_3787;
																										}
																									else
																										{	/* Coerce/coerce.scm 360 */
																											long BgL_odepthz00_3788;

																											BgL_odepthz00_3788 =
																												BGL_CLASS_DEPTH
																												(BgL_oclassz00_3784);
																											if ((2L <
																													BgL_odepthz00_3788))
																												{	/* Coerce/coerce.scm 360 */
																													obj_t
																														BgL_arg1797z00_3789;
																													BgL_arg1797z00_3789 =
																														BGL_CLASS_ANCESTORS_REF
																														(BgL_oclassz00_3784,
																														2L);
																													BgL_res2078z00_3783 =
																														(BgL_arg1797z00_3789
																														==
																														BgL_classz00_3778);
																												}
																											else
																												{	/* Coerce/coerce.scm 360 */
																													BgL_res2078z00_3783 =
																														((bool_t) 0);
																												}
																										}
																								}
																							}
																							BgL_test2222z00_4670 =
																								BgL_res2078z00_3783;
																						}
																				}
																			}
																		}
																	else
																		{	/* Coerce/coerce.scm 360 */
																			BgL_test2222z00_4670 = ((bool_t) 0);
																		}
																}
																if (BgL_test2222z00_4670)
																	{	/* Coerce/coerce.scm 361 */
																		BgL_nodez00_bglt BgL_arg1911z00_3790;

																		BgL_arg1911z00_3790 =
																			(((BgL_castz00_bglt)
																				COBJECT(BgL_i1139z00_3774))->
																			BgL_argz00);
																		BgL_typevz00_3743 =
																			((obj_t)
																			BGl_getzd2typezd2zztype_typeofz00
																			(BgL_arg1911z00_3790, ((bool_t) 0)));
																	}
																else
																	{	/* Coerce/coerce.scm 360 */
																		BgL_typevz00_3743 = BFALSE;
																	}
															}
														}
													else
														{	/* Coerce/coerce.scm 358 */
															BgL_typevz00_3743 = BFALSE;
														}
												}
										}
										{	/* Coerce/coerce.scm 363 */
											bool_t BgL_test2227z00_4700;

											{	/* Coerce/coerce.scm 363 */
												obj_t BgL_classz00_3791;

												BgL_classz00_3791 = BGl_typez00zztype_typez00;
												if (BGL_OBJECTP(BgL_typevz00_3743))
													{	/* Coerce/coerce.scm 363 */
														BgL_objectz00_bglt BgL_arg1801z00_3792;

														BgL_arg1801z00_3792 =
															(BgL_objectz00_bglt) (BgL_typevz00_3743);
														if (BGL_CONDEXPAND_ISA_ARCH64())
															{	/* Coerce/coerce.scm 363 */
																long BgL_idxz00_3793;

																BgL_idxz00_3793 =
																	BGL_OBJECT_INHERITANCE_NUM
																	(BgL_arg1801z00_3792);
																BgL_test2227z00_4700 =
																	(VECTOR_REF
																	(BGl_za2inheritancesza2z00zz__objectz00,
																		(BgL_idxz00_3793 + 1L)) ==
																	BgL_classz00_3791);
															}
														else
															{	/* Coerce/coerce.scm 363 */
																bool_t BgL_res2079z00_3796;

																{	/* Coerce/coerce.scm 363 */
																	obj_t BgL_oclassz00_3797;

																	{	/* Coerce/coerce.scm 363 */
																		long BgL_arg1808z00_3798;

																		{	/* Coerce/coerce.scm 363 */
																			long BgL_arg1809z00_3799;

																			BgL_arg1809z00_3799 =
																				BGL_OBJECT_CLASS_NUM
																				(BgL_arg1801z00_3792);
																			BgL_arg1808z00_3798 =
																				(BgL_arg1809z00_3799 - OBJECT_TYPE);
																		}
																		BgL_oclassz00_3797 =
																			VECTOR_REF
																			(BGl_za2classesza2z00zz__objectz00,
																			BgL_arg1808z00_3798);
																	}
																	{	/* Coerce/coerce.scm 363 */
																		bool_t BgL__ortest_1115z00_3800;

																		BgL__ortest_1115z00_3800 =
																			(BgL_classz00_3791 == BgL_oclassz00_3797);
																		if (BgL__ortest_1115z00_3800)
																			{	/* Coerce/coerce.scm 363 */
																				BgL_res2079z00_3796 =
																					BgL__ortest_1115z00_3800;
																			}
																		else
																			{	/* Coerce/coerce.scm 363 */
																				long BgL_odepthz00_3801;

																				BgL_odepthz00_3801 =
																					BGL_CLASS_DEPTH(BgL_oclassz00_3797);
																				if ((1L < BgL_odepthz00_3801))
																					{	/* Coerce/coerce.scm 363 */
																						obj_t BgL_arg1797z00_3802;

																						BgL_arg1797z00_3802 =
																							BGL_CLASS_ANCESTORS_REF
																							(BgL_oclassz00_3797, 1L);
																						BgL_res2079z00_3796 =
																							(BgL_arg1797z00_3802 ==
																							BgL_classz00_3791);
																					}
																				else
																					{	/* Coerce/coerce.scm 363 */
																						BgL_res2079z00_3796 = ((bool_t) 0);
																					}
																			}
																	}
																}
																BgL_test2227z00_4700 = BgL_res2079z00_3796;
															}
													}
												else
													{	/* Coerce/coerce.scm 363 */
														BgL_test2227z00_4700 = ((bool_t) 0);
													}
											}
											if (BgL_test2227z00_4700)
												{	/* Coerce/coerce.scm 363 */
													if (BGl_typezd2lesszd2specificzf3zf3zztype_miscz00(
															((BgL_typez00_bglt) BgL_typecz00_3742),
															((BgL_typez00_bglt) BgL_typevz00_3743)))
														{	/* Coerce/coerce.scm 365 */
															BgL_casezd2valuezd2_3905 = CNST_TABLE_REF(1L);
														}
													else
														{	/* Coerce/coerce.scm 365 */
															if (BGl_typezd2disjointzf3z21zztype_miscz00(
																	((BgL_typez00_bglt) BgL_typecz00_3742),
																	((BgL_typez00_bglt) BgL_typevz00_3743)))
																{	/* Coerce/coerce.scm 367 */
																	BgL_casezd2valuezd2_3905 = CNST_TABLE_REF(2L);
																}
															else
																{	/* Coerce/coerce.scm 367 */
																	BgL_casezd2valuezd2_3905 = BFALSE;
																}
														}
												}
											else
												{	/* Coerce/coerce.scm 363 */
													BgL_casezd2valuezd2_3905 = BFALSE;
												}
										}
									}
								}
							else
								{	/* Coerce/coerce.scm 377 */
									bool_t BgL_test2234z00_4730;

									{	/* Coerce/coerce.scm 377 */
										obj_t BgL_classz00_3717;

										BgL_classz00_3717 = BGl_appz00zzast_nodez00;
										if (BGL_OBJECTP(BgL_nodez00_3715))
											{	/* Coerce/coerce.scm 377 */
												BgL_objectz00_bglt BgL_arg1801z00_3718;

												BgL_arg1801z00_3718 =
													(BgL_objectz00_bglt) (BgL_nodez00_3715);
												if (BGL_CONDEXPAND_ISA_ARCH64())
													{	/* Coerce/coerce.scm 377 */
														long BgL_idxz00_3719;

														BgL_idxz00_3719 =
															BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_3718);
														BgL_test2234z00_4730 =
															(VECTOR_REF
															(BGl_za2inheritancesza2z00zz__objectz00,
																(BgL_idxz00_3719 + 3L)) == BgL_classz00_3717);
													}
												else
													{	/* Coerce/coerce.scm 377 */
														bool_t BgL_res2080z00_3722;

														{	/* Coerce/coerce.scm 377 */
															obj_t BgL_oclassz00_3723;

															{	/* Coerce/coerce.scm 377 */
																long BgL_arg1808z00_3724;

																{	/* Coerce/coerce.scm 377 */
																	long BgL_arg1809z00_3725;

																	BgL_arg1809z00_3725 =
																		BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_3718);
																	BgL_arg1808z00_3724 =
																		(BgL_arg1809z00_3725 - OBJECT_TYPE);
																}
																BgL_oclassz00_3723 =
																	VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
																	BgL_arg1808z00_3724);
															}
															{	/* Coerce/coerce.scm 377 */
																bool_t BgL__ortest_1115z00_3726;

																BgL__ortest_1115z00_3726 =
																	(BgL_classz00_3717 == BgL_oclassz00_3723);
																if (BgL__ortest_1115z00_3726)
																	{	/* Coerce/coerce.scm 377 */
																		BgL_res2080z00_3722 =
																			BgL__ortest_1115z00_3726;
																	}
																else
																	{	/* Coerce/coerce.scm 377 */
																		long BgL_odepthz00_3727;

																		BgL_odepthz00_3727 =
																			BGL_CLASS_DEPTH(BgL_oclassz00_3723);
																		if ((3L < BgL_odepthz00_3727))
																			{	/* Coerce/coerce.scm 377 */
																				obj_t BgL_arg1797z00_3728;

																				BgL_arg1797z00_3728 =
																					BGL_CLASS_ANCESTORS_REF
																					(BgL_oclassz00_3723, 3L);
																				BgL_res2080z00_3722 =
																					(BgL_arg1797z00_3728 ==
																					BgL_classz00_3717);
																			}
																		else
																			{	/* Coerce/coerce.scm 377 */
																				BgL_res2080z00_3722 = ((bool_t) 0);
																			}
																	}
															}
														}
														BgL_test2234z00_4730 = BgL_res2080z00_3722;
													}
											}
										else
											{	/* Coerce/coerce.scm 377 */
												BgL_test2234z00_4730 = ((bool_t) 0);
											}
									}
									if (BgL_test2234z00_4730)
										{	/* Coerce/coerce.scm 377 */
											BgL_nodez00_3884 = BgL_nodez00_3715;
											{	/* Coerce/coerce.scm 291 */
												bool_t BgL_test2239z00_4750;

												{	/* Coerce/coerce.scm 291 */
													obj_t BgL_tmpz00_4751;

													BgL_tmpz00_4751 =
														(((BgL_appz00_bglt) COBJECT(
																((BgL_appz00_bglt) BgL_nodez00_3884)))->
														BgL_argsz00);
													BgL_test2239z00_4750 = PAIRP(BgL_tmpz00_4751);
												}
												if (BgL_test2239z00_4750)
													{	/* Coerce/coerce.scm 292 */
														bool_t BgL_test2240z00_4755;

														{	/* Coerce/coerce.scm 292 */
															obj_t BgL_tmpz00_4756;

															{	/* Coerce/coerce.scm 292 */
																obj_t BgL_pairz00_3885;

																BgL_pairz00_3885 =
																	(((BgL_appz00_bglt) COBJECT(
																			((BgL_appz00_bglt) BgL_nodez00_3884)))->
																	BgL_argsz00);
																BgL_tmpz00_4756 = CDR(BgL_pairz00_3885);
															}
															BgL_test2240z00_4755 = NULLP(BgL_tmpz00_4756);
														}
														if (BgL_test2240z00_4755)
															{	/* Coerce/coerce.scm 293 */
																bool_t BgL_test2241z00_4761;

																{	/* Coerce/coerce.scm 293 */
																	obj_t BgL_arg1773z00_3886;

																	{	/* Coerce/coerce.scm 293 */
																		obj_t BgL_pairz00_3887;

																		BgL_pairz00_3887 =
																			(((BgL_appz00_bglt) COBJECT(
																					((BgL_appz00_bglt)
																						BgL_nodez00_3884)))->BgL_argsz00);
																		BgL_arg1773z00_3886 = CAR(BgL_pairz00_3887);
																	}
																	BgL_test2241z00_4761 =
																		BGl_sidezd2effectzf3z21zzeffect_effectz00(
																		((BgL_nodez00_bglt) BgL_arg1773z00_3886));
																}
																if (BgL_test2241z00_4761)
																	{	/* Coerce/coerce.scm 293 */
																		BgL_casezd2valuezd2_3905 = BFALSE;
																	}
																else
																	{	/* Coerce/coerce.scm 294 */
																		obj_t BgL_typecz00_3888;

																		BgL_typecz00_3888 =
																			BGl_appzd2predicatezd2ofz00zztype_miscz00(
																			((BgL_appz00_bglt) BgL_nodez00_3884));
																		{	/* Coerce/coerce.scm 294 */
																			BgL_typez00_bglt BgL_typevz00_3889;

																			{	/* Coerce/coerce.scm 295 */
																				obj_t BgL_arg1768z00_3890;

																				{	/* Coerce/coerce.scm 295 */
																					obj_t BgL_pairz00_3891;

																					BgL_pairz00_3891 =
																						(((BgL_appz00_bglt) COBJECT(
																								((BgL_appz00_bglt)
																									BgL_nodez00_3884)))->
																						BgL_argsz00);
																					BgL_arg1768z00_3890 =
																						CAR(BgL_pairz00_3891);
																				}
																				BgL_typevz00_3889 =
																					BGl_getzd2typezd2zztype_typeofz00(
																					((BgL_nodez00_bglt)
																						BgL_arg1768z00_3890), ((bool_t) 0));
																			}
																			{	/* Coerce/coerce.scm 295 */

																				{	/* Coerce/coerce.scm 297 */
																					bool_t BgL_test2242z00_4774;

																					{	/* Coerce/coerce.scm 297 */
																						obj_t BgL_classz00_3892;

																						BgL_classz00_3892 =
																							BGl_typez00zztype_typez00;
																						if (BGL_OBJECTP(BgL_typecz00_3888))
																							{	/* Coerce/coerce.scm 297 */
																								BgL_objectz00_bglt
																									BgL_arg1801z00_3893;
																								BgL_arg1801z00_3893 =
																									(BgL_objectz00_bglt)
																									(BgL_typecz00_3888);
																								if (BGL_CONDEXPAND_ISA_ARCH64())
																									{	/* Coerce/coerce.scm 297 */
																										long BgL_idxz00_3894;

																										BgL_idxz00_3894 =
																											BGL_OBJECT_INHERITANCE_NUM
																											(BgL_arg1801z00_3893);
																										BgL_test2242z00_4774 =
																											(VECTOR_REF
																											(BGl_za2inheritancesza2z00zz__objectz00,
																												(BgL_idxz00_3894 +
																													1L)) ==
																											BgL_classz00_3892);
																									}
																								else
																									{	/* Coerce/coerce.scm 297 */
																										bool_t BgL_res2070z00_3897;

																										{	/* Coerce/coerce.scm 297 */
																											obj_t BgL_oclassz00_3898;

																											{	/* Coerce/coerce.scm 297 */
																												long
																													BgL_arg1808z00_3899;
																												{	/* Coerce/coerce.scm 297 */
																													long
																														BgL_arg1809z00_3900;
																													BgL_arg1809z00_3900 =
																														BGL_OBJECT_CLASS_NUM
																														(BgL_arg1801z00_3893);
																													BgL_arg1808z00_3899 =
																														(BgL_arg1809z00_3900
																														- OBJECT_TYPE);
																												}
																												BgL_oclassz00_3898 =
																													VECTOR_REF
																													(BGl_za2classesza2z00zz__objectz00,
																													BgL_arg1808z00_3899);
																											}
																											{	/* Coerce/coerce.scm 297 */
																												bool_t
																													BgL__ortest_1115z00_3901;
																												BgL__ortest_1115z00_3901
																													=
																													(BgL_classz00_3892 ==
																													BgL_oclassz00_3898);
																												if (BgL__ortest_1115z00_3901)
																													{	/* Coerce/coerce.scm 297 */
																														BgL_res2070z00_3897
																															=
																															BgL__ortest_1115z00_3901;
																													}
																												else
																													{	/* Coerce/coerce.scm 297 */
																														long
																															BgL_odepthz00_3902;
																														BgL_odepthz00_3902 =
																															BGL_CLASS_DEPTH
																															(BgL_oclassz00_3898);
																														if ((1L <
																																BgL_odepthz00_3902))
																															{	/* Coerce/coerce.scm 297 */
																																obj_t
																																	BgL_arg1797z00_3903;
																																BgL_arg1797z00_3903
																																	=
																																	BGL_CLASS_ANCESTORS_REF
																																	(BgL_oclassz00_3898,
																																	1L);
																																BgL_res2070z00_3897
																																	=
																																	(BgL_arg1797z00_3903
																																	==
																																	BgL_classz00_3892);
																															}
																														else
																															{	/* Coerce/coerce.scm 297 */
																																BgL_res2070z00_3897
																																	=
																																	((bool_t) 0);
																															}
																													}
																											}
																										}
																										BgL_test2242z00_4774 =
																											BgL_res2070z00_3897;
																									}
																							}
																						else
																							{	/* Coerce/coerce.scm 297 */
																								BgL_test2242z00_4774 =
																									((bool_t) 0);
																							}
																					}
																					if (BgL_test2242z00_4774)
																						{	/* Coerce/coerce.scm 297 */
																							if (
																								(((obj_t) BgL_typevz00_3889) ==
																									BGl_za2objza2z00zztype_cachez00))
																								{	/* Coerce/coerce.scm 300 */
																									BgL_casezd2valuezd2_3905 =
																										BFALSE;
																								}
																							else
																								{	/* Coerce/coerce.scm 300 */
																									if (BGl_typezd2lesszd2specificzf3zf3zztype_miscz00(((BgL_typez00_bglt) BgL_typecz00_3888), BgL_typevz00_3889))
																										{	/* Coerce/coerce.scm 303 */
																											BgL_casezd2valuezd2_3905 =
																												CNST_TABLE_REF(1L);
																										}
																									else
																										{	/* Coerce/coerce.scm 303 */
																											if (BGl_typezd2disjointzf3z21zztype_miscz00(((BgL_typez00_bglt) BgL_typecz00_3888), BgL_typevz00_3889))
																												{	/* Coerce/coerce.scm 305 */
																													BgL_casezd2valuezd2_3905
																														=
																														CNST_TABLE_REF(2L);
																												}
																											else
																												{	/* Coerce/coerce.scm 305 */
																													BgL_casezd2valuezd2_3905
																														= BFALSE;
																												}
																										}
																								}
																						}
																					else
																						{	/* Coerce/coerce.scm 297 */
																							BgL_casezd2valuezd2_3905 = BFALSE;
																						}
																				}
																			}
																		}
																	}
															}
														else
															{	/* Coerce/coerce.scm 292 */
																BgL_casezd2valuezd2_3905 = BFALSE;
															}
													}
												else
													{	/* Coerce/coerce.scm 291 */
														BgL_casezd2valuezd2_3905 = BFALSE;
													}
											}
										}
									else
										{	/* Coerce/coerce.scm 379 */
											bool_t BgL_test2250z00_4805;

											{	/* Coerce/coerce.scm 379 */
												obj_t BgL_classz00_3729;

												BgL_classz00_3729 = BGl_letzd2varzd2zzast_nodez00;
												if (BGL_OBJECTP(BgL_nodez00_3715))
													{	/* Coerce/coerce.scm 379 */
														BgL_objectz00_bglt BgL_arg1801z00_3730;

														BgL_arg1801z00_3730 =
															(BgL_objectz00_bglt) (BgL_nodez00_3715);
														if (BGL_CONDEXPAND_ISA_ARCH64())
															{	/* Coerce/coerce.scm 379 */
																long BgL_idxz00_3731;

																BgL_idxz00_3731 =
																	BGL_OBJECT_INHERITANCE_NUM
																	(BgL_arg1801z00_3730);
																BgL_test2250z00_4805 =
																	(VECTOR_REF
																	(BGl_za2inheritancesza2z00zz__objectz00,
																		(BgL_idxz00_3731 + 3L)) ==
																	BgL_classz00_3729);
															}
														else
															{	/* Coerce/coerce.scm 379 */
																bool_t BgL_res2081z00_3734;

																{	/* Coerce/coerce.scm 379 */
																	obj_t BgL_oclassz00_3735;

																	{	/* Coerce/coerce.scm 379 */
																		long BgL_arg1808z00_3736;

																		{	/* Coerce/coerce.scm 379 */
																			long BgL_arg1809z00_3737;

																			BgL_arg1809z00_3737 =
																				BGL_OBJECT_CLASS_NUM
																				(BgL_arg1801z00_3730);
																			BgL_arg1808z00_3736 =
																				(BgL_arg1809z00_3737 - OBJECT_TYPE);
																		}
																		BgL_oclassz00_3735 =
																			VECTOR_REF
																			(BGl_za2classesza2z00zz__objectz00,
																			BgL_arg1808z00_3736);
																	}
																	{	/* Coerce/coerce.scm 379 */
																		bool_t BgL__ortest_1115z00_3738;

																		BgL__ortest_1115z00_3738 =
																			(BgL_classz00_3729 == BgL_oclassz00_3735);
																		if (BgL__ortest_1115z00_3738)
																			{	/* Coerce/coerce.scm 379 */
																				BgL_res2081z00_3734 =
																					BgL__ortest_1115z00_3738;
																			}
																		else
																			{	/* Coerce/coerce.scm 379 */
																				long BgL_odepthz00_3739;

																				BgL_odepthz00_3739 =
																					BGL_CLASS_DEPTH(BgL_oclassz00_3735);
																				if ((3L < BgL_odepthz00_3739))
																					{	/* Coerce/coerce.scm 379 */
																						obj_t BgL_arg1797z00_3740;

																						BgL_arg1797z00_3740 =
																							BGL_CLASS_ANCESTORS_REF
																							(BgL_oclassz00_3735, 3L);
																						BgL_res2081z00_3734 =
																							(BgL_arg1797z00_3740 ==
																							BgL_classz00_3729);
																					}
																				else
																					{	/* Coerce/coerce.scm 379 */
																						BgL_res2081z00_3734 = ((bool_t) 0);
																					}
																			}
																	}
																}
																BgL_test2250z00_4805 = BgL_res2081z00_3734;
															}
													}
												else
													{	/* Coerce/coerce.scm 379 */
														BgL_test2250z00_4805 = ((bool_t) 0);
													}
											}
											if (BgL_test2250z00_4805)
												{	/* Coerce/coerce.scm 379 */
													BgL_nodez00_3803 = BgL_nodez00_3715;
													{	/* Coerce/coerce.scm 311 */
														bool_t BgL_test2255z00_4825;

														{	/* Coerce/coerce.scm 311 */
															bool_t BgL_test2256z00_4826;

															{	/* Coerce/coerce.scm 311 */
																obj_t BgL_tmpz00_4827;

																BgL_tmpz00_4827 =
																	(((BgL_letzd2varzd2_bglt) COBJECT(
																			((BgL_letzd2varzd2_bglt)
																				BgL_nodez00_3803)))->BgL_bindingsz00);
																BgL_test2256z00_4826 = PAIRP(BgL_tmpz00_4827);
															}
															if (BgL_test2256z00_4826)
																{	/* Coerce/coerce.scm 311 */
																	obj_t BgL_tmpz00_4831;

																	{	/* Coerce/coerce.scm 311 */
																		obj_t BgL_pairz00_3804;

																		BgL_pairz00_3804 =
																			(((BgL_letzd2varzd2_bglt) COBJECT(
																					((BgL_letzd2varzd2_bglt)
																						BgL_nodez00_3803)))->
																			BgL_bindingsz00);
																		BgL_tmpz00_4831 = CDR(BgL_pairz00_3804);
																	}
																	BgL_test2255z00_4825 = NULLP(BgL_tmpz00_4831);
																}
															else
																{	/* Coerce/coerce.scm 311 */
																	BgL_test2255z00_4825 = ((bool_t) 0);
																}
														}
														if (BgL_test2255z00_4825)
															{	/* Coerce/coerce.scm 313 */
																bool_t BgL_test2257z00_4836;

																{	/* Coerce/coerce.scm 313 */
																	BgL_nodez00_bglt BgL_arg1886z00_3805;

																	BgL_arg1886z00_3805 =
																		(((BgL_letzd2varzd2_bglt) COBJECT(
																				((BgL_letzd2varzd2_bglt)
																					BgL_nodez00_3803)))->BgL_bodyz00);
																	{	/* Coerce/coerce.scm 313 */
																		obj_t BgL_classz00_3806;

																		BgL_classz00_3806 = BGl_appz00zzast_nodez00;
																		{	/* Coerce/coerce.scm 313 */
																			BgL_objectz00_bglt BgL_arg1801z00_3807;

																			{	/* Coerce/coerce.scm 313 */
																				obj_t BgL_tmpz00_4839;

																				BgL_tmpz00_4839 =
																					((obj_t)
																					((BgL_objectz00_bglt)
																						BgL_arg1886z00_3805));
																				BgL_arg1801z00_3807 =
																					(BgL_objectz00_bglt)
																					(BgL_tmpz00_4839);
																			}
																			if (BGL_CONDEXPAND_ISA_ARCH64())
																				{	/* Coerce/coerce.scm 313 */
																					long BgL_idxz00_3808;

																					BgL_idxz00_3808 =
																						BGL_OBJECT_INHERITANCE_NUM
																						(BgL_arg1801z00_3807);
																					BgL_test2257z00_4836 =
																						(VECTOR_REF
																						(BGl_za2inheritancesza2z00zz__objectz00,
																							(BgL_idxz00_3808 + 3L)) ==
																						BgL_classz00_3806);
																				}
																			else
																				{	/* Coerce/coerce.scm 313 */
																					bool_t BgL_res2071z00_3811;

																					{	/* Coerce/coerce.scm 313 */
																						obj_t BgL_oclassz00_3812;

																						{	/* Coerce/coerce.scm 313 */
																							long BgL_arg1808z00_3813;

																							{	/* Coerce/coerce.scm 313 */
																								long BgL_arg1809z00_3814;

																								BgL_arg1809z00_3814 =
																									BGL_OBJECT_CLASS_NUM
																									(BgL_arg1801z00_3807);
																								BgL_arg1808z00_3813 =
																									(BgL_arg1809z00_3814 -
																									OBJECT_TYPE);
																							}
																							BgL_oclassz00_3812 =
																								VECTOR_REF
																								(BGl_za2classesza2z00zz__objectz00,
																								BgL_arg1808z00_3813);
																						}
																						{	/* Coerce/coerce.scm 313 */
																							bool_t BgL__ortest_1115z00_3815;

																							BgL__ortest_1115z00_3815 =
																								(BgL_classz00_3806 ==
																								BgL_oclassz00_3812);
																							if (BgL__ortest_1115z00_3815)
																								{	/* Coerce/coerce.scm 313 */
																									BgL_res2071z00_3811 =
																										BgL__ortest_1115z00_3815;
																								}
																							else
																								{	/* Coerce/coerce.scm 313 */
																									long BgL_odepthz00_3816;

																									BgL_odepthz00_3816 =
																										BGL_CLASS_DEPTH
																										(BgL_oclassz00_3812);
																									if ((3L < BgL_odepthz00_3816))
																										{	/* Coerce/coerce.scm 313 */
																											obj_t BgL_arg1797z00_3817;

																											BgL_arg1797z00_3817 =
																												BGL_CLASS_ANCESTORS_REF
																												(BgL_oclassz00_3812,
																												3L);
																											BgL_res2071z00_3811 =
																												(BgL_arg1797z00_3817 ==
																												BgL_classz00_3806);
																										}
																									else
																										{	/* Coerce/coerce.scm 313 */
																											BgL_res2071z00_3811 =
																												((bool_t) 0);
																										}
																								}
																						}
																					}
																					BgL_test2257z00_4836 =
																						BgL_res2071z00_3811;
																				}
																		}
																	}
																}
																if (BgL_test2257z00_4836)
																	{	/* Coerce/coerce.scm 314 */
																		obj_t BgL_varz00_3818;

																		{	/* Coerce/coerce.scm 314 */
																			obj_t BgL_argsz00_3819;

																			BgL_argsz00_3819 =
																				(((BgL_appz00_bglt) COBJECT(
																						((BgL_appz00_bglt)
																							(((BgL_letzd2varzd2_bglt) COBJECT(
																										((BgL_letzd2varzd2_bglt)
																											BgL_nodez00_3803)))->
																								BgL_bodyz00))))->BgL_argsz00);
																			if (PAIRP(BgL_argsz00_3819))
																				{	/* Coerce/coerce.scm 318 */
																					bool_t BgL_test2262z00_4865;

																					if (NULLP(CDR(BgL_argsz00_3819)))
																						{	/* Coerce/coerce.scm 318 */
																							obj_t BgL_arg1866z00_3820;

																							BgL_arg1866z00_3820 =
																								CAR(BgL_argsz00_3819);
																							{	/* Coerce/coerce.scm 318 */
																								obj_t BgL_classz00_3821;

																								BgL_classz00_3821 =
																									BGl_varz00zzast_nodez00;
																								if (BGL_OBJECTP
																									(BgL_arg1866z00_3820))
																									{	/* Coerce/coerce.scm 318 */
																										BgL_objectz00_bglt
																											BgL_arg1801z00_3822;
																										BgL_arg1801z00_3822 =
																											(BgL_objectz00_bglt)
																											(BgL_arg1866z00_3820);
																										if (BGL_CONDEXPAND_ISA_ARCH64())
																											{	/* Coerce/coerce.scm 318 */
																												long BgL_idxz00_3823;

																												BgL_idxz00_3823 =
																													BGL_OBJECT_INHERITANCE_NUM
																													(BgL_arg1801z00_3822);
																												BgL_test2262z00_4865 =
																													(VECTOR_REF
																													(BGl_za2inheritancesza2z00zz__objectz00,
																														(BgL_idxz00_3823 +
																															2L)) ==
																													BgL_classz00_3821);
																											}
																										else
																											{	/* Coerce/coerce.scm 318 */
																												bool_t
																													BgL_res2072z00_3826;
																												{	/* Coerce/coerce.scm 318 */
																													obj_t
																														BgL_oclassz00_3827;
																													{	/* Coerce/coerce.scm 318 */
																														long
																															BgL_arg1808z00_3828;
																														{	/* Coerce/coerce.scm 318 */
																															long
																																BgL_arg1809z00_3829;
																															BgL_arg1809z00_3829
																																=
																																BGL_OBJECT_CLASS_NUM
																																(BgL_arg1801z00_3822);
																															BgL_arg1808z00_3828
																																=
																																(BgL_arg1809z00_3829
																																- OBJECT_TYPE);
																														}
																														BgL_oclassz00_3827 =
																															VECTOR_REF
																															(BGl_za2classesza2z00zz__objectz00,
																															BgL_arg1808z00_3828);
																													}
																													{	/* Coerce/coerce.scm 318 */
																														bool_t
																															BgL__ortest_1115z00_3830;
																														BgL__ortest_1115z00_3830
																															=
																															(BgL_classz00_3821
																															==
																															BgL_oclassz00_3827);
																														if (BgL__ortest_1115z00_3830)
																															{	/* Coerce/coerce.scm 318 */
																																BgL_res2072z00_3826
																																	=
																																	BgL__ortest_1115z00_3830;
																															}
																														else
																															{	/* Coerce/coerce.scm 318 */
																																long
																																	BgL_odepthz00_3831;
																																BgL_odepthz00_3831
																																	=
																																	BGL_CLASS_DEPTH
																																	(BgL_oclassz00_3827);
																																if ((2L <
																																		BgL_odepthz00_3831))
																																	{	/* Coerce/coerce.scm 318 */
																																		obj_t
																																			BgL_arg1797z00_3832;
																																		BgL_arg1797z00_3832
																																			=
																																			BGL_CLASS_ANCESTORS_REF
																																			(BgL_oclassz00_3827,
																																			2L);
																																		BgL_res2072z00_3826
																																			=
																																			(BgL_arg1797z00_3832
																																			==
																																			BgL_classz00_3821);
																																	}
																																else
																																	{	/* Coerce/coerce.scm 318 */
																																		BgL_res2072z00_3826
																																			=
																																			((bool_t)
																																			0);
																																	}
																															}
																													}
																												}
																												BgL_test2262z00_4865 =
																													BgL_res2072z00_3826;
																											}
																									}
																								else
																									{	/* Coerce/coerce.scm 318 */
																										BgL_test2262z00_4865 =
																											((bool_t) 0);
																									}
																							}
																						}
																					else
																						{	/* Coerce/coerce.scm 318 */
																							BgL_test2262z00_4865 =
																								((bool_t) 0);
																						}
																					if (BgL_test2262z00_4865)
																						{	/* Coerce/coerce.scm 318 */
																							BgL_varz00_3818 =
																								((obj_t)
																								(((BgL_varz00_bglt) COBJECT(
																											((BgL_varz00_bglt)
																												CAR
																												(BgL_argsz00_3819))))->
																									BgL_variablez00));
																						}
																					else
																						{	/* Coerce/coerce.scm 321 */
																							bool_t BgL_test2268z00_4893;

																							{	/* Coerce/coerce.scm 321 */
																								obj_t BgL_tmpz00_4894;

																								BgL_tmpz00_4894 =
																									CDR(BgL_argsz00_3819);
																								BgL_test2268z00_4893 =
																									PAIRP(BgL_tmpz00_4894);
																							}
																							if (BgL_test2268z00_4893)
																								{	/* Coerce/coerce.scm 323 */
																									bool_t BgL_test2269z00_4897;

																									if (NULLP(CDR(CDR
																												(BgL_argsz00_3819))))
																										{	/* Coerce/coerce.scm 323 */
																											obj_t BgL_arg1860z00_3833;

																											BgL_arg1860z00_3833 =
																												CAR(BgL_argsz00_3819);
																											{	/* Coerce/coerce.scm 323 */
																												obj_t BgL_classz00_3834;

																												BgL_classz00_3834 =
																													BGl_varz00zzast_nodez00;
																												if (BGL_OBJECTP
																													(BgL_arg1860z00_3833))
																													{	/* Coerce/coerce.scm 323 */
																														BgL_objectz00_bglt
																															BgL_arg1801z00_3835;
																														BgL_arg1801z00_3835
																															=
																															(BgL_objectz00_bglt)
																															(BgL_arg1860z00_3833);
																														if (BGL_CONDEXPAND_ISA_ARCH64())
																															{	/* Coerce/coerce.scm 323 */
																																long
																																	BgL_idxz00_3836;
																																BgL_idxz00_3836
																																	=
																																	BGL_OBJECT_INHERITANCE_NUM
																																	(BgL_arg1801z00_3835);
																																BgL_test2269z00_4897
																																	=
																																	(VECTOR_REF
																																	(BGl_za2inheritancesza2z00zz__objectz00,
																																		(BgL_idxz00_3836
																																			+ 2L)) ==
																																	BgL_classz00_3834);
																															}
																														else
																															{	/* Coerce/coerce.scm 323 */
																																bool_t
																																	BgL_res2073z00_3839;
																																{	/* Coerce/coerce.scm 323 */
																																	obj_t
																																		BgL_oclassz00_3840;
																																	{	/* Coerce/coerce.scm 323 */
																																		long
																																			BgL_arg1808z00_3841;
																																		{	/* Coerce/coerce.scm 323 */
																																			long
																																				BgL_arg1809z00_3842;
																																			BgL_arg1809z00_3842
																																				=
																																				BGL_OBJECT_CLASS_NUM
																																				(BgL_arg1801z00_3835);
																																			BgL_arg1808z00_3841
																																				=
																																				(BgL_arg1809z00_3842
																																				-
																																				OBJECT_TYPE);
																																		}
																																		BgL_oclassz00_3840
																																			=
																																			VECTOR_REF
																																			(BGl_za2classesza2z00zz__objectz00,
																																			BgL_arg1808z00_3841);
																																	}
																																	{	/* Coerce/coerce.scm 323 */
																																		bool_t
																																			BgL__ortest_1115z00_3843;
																																		BgL__ortest_1115z00_3843
																																			=
																																			(BgL_classz00_3834
																																			==
																																			BgL_oclassz00_3840);
																																		if (BgL__ortest_1115z00_3843)
																																			{	/* Coerce/coerce.scm 323 */
																																				BgL_res2073z00_3839
																																					=
																																					BgL__ortest_1115z00_3843;
																																			}
																																		else
																																			{	/* Coerce/coerce.scm 323 */
																																				long
																																					BgL_odepthz00_3844;
																																				BgL_odepthz00_3844
																																					=
																																					BGL_CLASS_DEPTH
																																					(BgL_oclassz00_3840);
																																				if ((2L
																																						<
																																						BgL_odepthz00_3844))
																																					{	/* Coerce/coerce.scm 323 */
																																						obj_t
																																							BgL_arg1797z00_3845;
																																						BgL_arg1797z00_3845
																																							=
																																							BGL_CLASS_ANCESTORS_REF
																																							(BgL_oclassz00_3840,
																																							2L);
																																						BgL_res2073z00_3839
																																							=
																																							(BgL_arg1797z00_3845
																																							==
																																							BgL_classz00_3834);
																																					}
																																				else
																																					{	/* Coerce/coerce.scm 323 */
																																						BgL_res2073z00_3839
																																							=
																																							(
																																							(bool_t)
																																							0);
																																					}
																																			}
																																	}
																																}
																																BgL_test2269z00_4897
																																	=
																																	BgL_res2073z00_3839;
																															}
																													}
																												else
																													{	/* Coerce/coerce.scm 323 */
																														BgL_test2269z00_4897
																															= ((bool_t) 0);
																													}
																											}
																										}
																									else
																										{	/* Coerce/coerce.scm 323 */
																											BgL_test2269z00_4897 =
																												((bool_t) 0);
																										}
																									if (BgL_test2269z00_4897)
																										{	/* Coerce/coerce.scm 323 */
																											BgL_varz00_3818 =
																												((obj_t)
																												(((BgL_varz00_bglt)
																														COBJECT((
																																(BgL_varz00_bglt)
																																CAR
																																(BgL_argsz00_3819))))->
																													BgL_variablez00));
																										}
																									else
																										{	/* Coerce/coerce.scm 323 */
																											BgL_varz00_3818 = BFALSE;
																										}
																								}
																							else
																								{	/* Coerce/coerce.scm 321 */
																									BgL_varz00_3818 = BFALSE;
																								}
																						}
																				}
																			else
																				{	/* Coerce/coerce.scm 316 */
																					BgL_varz00_3818 = BFALSE;
																				}
																		}
																		{	/* Coerce/coerce.scm 314 */
																			obj_t BgL_typecz00_3846;

																			{	/* Coerce/coerce.scm 328 */
																				BgL_nodez00_bglt BgL_arg1840z00_3847;

																				BgL_arg1840z00_3847 =
																					(((BgL_letzd2varzd2_bglt) COBJECT(
																							((BgL_letzd2varzd2_bglt)
																								BgL_nodez00_3803)))->
																					BgL_bodyz00);
																				BgL_typecz00_3846 =
																					BGl_appzd2predicatezd2ofz00zztype_miscz00
																					(((BgL_appz00_bglt)
																						BgL_arg1840z00_3847));
																			}
																			{	/* Coerce/coerce.scm 328 */
																				BgL_typez00_bglt BgL_typepz00_3848;

																				{
																					BgL_variablez00_bglt BgL_auxz00_4930;

																					{	/* Coerce/coerce.scm 329 */
																						obj_t BgL_pairz00_3849;

																						{	/* Coerce/coerce.scm 329 */
																							obj_t BgL_pairz00_3850;

																							BgL_pairz00_3850 =
																								(((BgL_letzd2varzd2_bglt)
																									COBJECT((
																											(BgL_letzd2varzd2_bglt)
																											BgL_nodez00_3803)))->
																								BgL_bindingsz00);
																							BgL_pairz00_3849 =
																								CAR(BgL_pairz00_3850);
																						}
																						BgL_auxz00_4930 =
																							((BgL_variablez00_bglt)
																							CAR(BgL_pairz00_3849));
																					}
																					BgL_typepz00_3848 =
																						(((BgL_variablez00_bglt)
																							COBJECT(BgL_auxz00_4930))->
																						BgL_typez00);
																				}
																				{	/* Coerce/coerce.scm 329 */
																					BgL_typez00_bglt BgL_typevz00_3851;

																					if (
																						(((obj_t) BgL_typepz00_3848) ==
																							BGl_za2objza2z00zztype_cachez00))
																						{	/* Coerce/coerce.scm 331 */
																							obj_t BgL_arg1834z00_3852;

																							{	/* Coerce/coerce.scm 331 */
																								obj_t BgL_pairz00_3853;

																								{	/* Coerce/coerce.scm 331 */
																									obj_t BgL_pairz00_3854;

																									BgL_pairz00_3854 =
																										(((BgL_letzd2varzd2_bglt)
																											COBJECT((
																													(BgL_letzd2varzd2_bglt)
																													BgL_nodez00_3803)))->
																										BgL_bindingsz00);
																									BgL_pairz00_3853 =
																										CAR(BgL_pairz00_3854);
																								}
																								BgL_arg1834z00_3852 =
																									CDR(BgL_pairz00_3853);
																							}
																							BgL_typevz00_3851 =
																								BGl_getzd2typezd2zztype_typeofz00
																								(((BgL_nodez00_bglt)
																									BgL_arg1834z00_3852),
																								((bool_t) 0));
																						}
																					else
																						{	/* Coerce/coerce.scm 330 */
																							BgL_typevz00_3851 =
																								BgL_typepz00_3848;
																						}
																					{	/* Coerce/coerce.scm 330 */

																						{	/* Coerce/coerce.scm 334 */
																							bool_t BgL_test2276z00_4946;

																							{	/* Coerce/coerce.scm 334 */
																								obj_t BgL_classz00_3855;

																								BgL_classz00_3855 =
																									BGl_typez00zztype_typez00;
																								if (BGL_OBJECTP
																									(BgL_typecz00_3846))
																									{	/* Coerce/coerce.scm 334 */
																										BgL_objectz00_bglt
																											BgL_arg1801z00_3856;
																										BgL_arg1801z00_3856 =
																											(BgL_objectz00_bglt)
																											(BgL_typecz00_3846);
																										if (BGL_CONDEXPAND_ISA_ARCH64())
																											{	/* Coerce/coerce.scm 334 */
																												long BgL_idxz00_3857;

																												BgL_idxz00_3857 =
																													BGL_OBJECT_INHERITANCE_NUM
																													(BgL_arg1801z00_3856);
																												BgL_test2276z00_4946 =
																													(VECTOR_REF
																													(BGl_za2inheritancesza2z00zz__objectz00,
																														(BgL_idxz00_3857 +
																															1L)) ==
																													BgL_classz00_3855);
																											}
																										else
																											{	/* Coerce/coerce.scm 334 */
																												bool_t
																													BgL_res2074z00_3860;
																												{	/* Coerce/coerce.scm 334 */
																													obj_t
																														BgL_oclassz00_3861;
																													{	/* Coerce/coerce.scm 334 */
																														long
																															BgL_arg1808z00_3862;
																														{	/* Coerce/coerce.scm 334 */
																															long
																																BgL_arg1809z00_3863;
																															BgL_arg1809z00_3863
																																=
																																BGL_OBJECT_CLASS_NUM
																																(BgL_arg1801z00_3856);
																															BgL_arg1808z00_3862
																																=
																																(BgL_arg1809z00_3863
																																- OBJECT_TYPE);
																														}
																														BgL_oclassz00_3861 =
																															VECTOR_REF
																															(BGl_za2classesza2z00zz__objectz00,
																															BgL_arg1808z00_3862);
																													}
																													{	/* Coerce/coerce.scm 334 */
																														bool_t
																															BgL__ortest_1115z00_3864;
																														BgL__ortest_1115z00_3864
																															=
																															(BgL_classz00_3855
																															==
																															BgL_oclassz00_3861);
																														if (BgL__ortest_1115z00_3864)
																															{	/* Coerce/coerce.scm 334 */
																																BgL_res2074z00_3860
																																	=
																																	BgL__ortest_1115z00_3864;
																															}
																														else
																															{	/* Coerce/coerce.scm 334 */
																																long
																																	BgL_odepthz00_3865;
																																BgL_odepthz00_3865
																																	=
																																	BGL_CLASS_DEPTH
																																	(BgL_oclassz00_3861);
																																if ((1L <
																																		BgL_odepthz00_3865))
																																	{	/* Coerce/coerce.scm 334 */
																																		obj_t
																																			BgL_arg1797z00_3866;
																																		BgL_arg1797z00_3866
																																			=
																																			BGL_CLASS_ANCESTORS_REF
																																			(BgL_oclassz00_3861,
																																			1L);
																																		BgL_res2074z00_3860
																																			=
																																			(BgL_arg1797z00_3866
																																			==
																																			BgL_classz00_3855);
																																	}
																																else
																																	{	/* Coerce/coerce.scm 334 */
																																		BgL_res2074z00_3860
																																			=
																																			((bool_t)
																																			0);
																																	}
																															}
																													}
																												}
																												BgL_test2276z00_4946 =
																													BgL_res2074z00_3860;
																											}
																									}
																								else
																									{	/* Coerce/coerce.scm 334 */
																										BgL_test2276z00_4946 =
																											((bool_t) 0);
																									}
																							}
																							if (BgL_test2276z00_4946)
																								{	/* Coerce/coerce.scm 337 */
																									bool_t BgL_test2281z00_4966;

																									{	/* Coerce/coerce.scm 337 */
																										obj_t BgL_tmpz00_4967;

																										{	/* Coerce/coerce.scm 337 */
																											obj_t BgL_pairz00_3867;

																											BgL_pairz00_3867 =
																												(((BgL_letzd2varzd2_bglt) COBJECT(((BgL_letzd2varzd2_bglt) BgL_nodez00_3803)))->BgL_bindingsz00);
																											BgL_tmpz00_4967 =
																												CAR(CAR
																												(BgL_pairz00_3867));
																										}
																										BgL_test2281z00_4966 =
																											(BgL_varz00_3818 ==
																											BgL_tmpz00_4967);
																									}
																									if (BgL_test2281z00_4966)
																										{	/* Coerce/coerce.scm 337 */
																											if (
																												(((obj_t)
																														BgL_typevz00_3851)
																													==
																													BGl_za2objza2z00zztype_cachez00))
																												{	/* Coerce/coerce.scm 340 */
																													BgL_casezd2valuezd2_3905
																														= BFALSE;
																												}
																											else
																												{	/* Coerce/coerce.scm 340 */
																													if (BGl_typezd2lesszd2specificzf3zf3zztype_miscz00(((BgL_typez00_bglt) BgL_typecz00_3846), BgL_typevz00_3851))
																														{	/* Coerce/coerce.scm 343 */
																															BgL_casezd2valuezd2_3905
																																=
																																CNST_TABLE_REF
																																(1L);
																														}
																													else
																														{	/* Coerce/coerce.scm 343 */
																															if (BGl_typezd2disjointzf3z21zztype_miscz00(((BgL_typez00_bglt) BgL_typecz00_3846), BgL_typevz00_3851))
																																{	/* Coerce/coerce.scm 345 */
																																	BgL_casezd2valuezd2_3905
																																		=
																																		CNST_TABLE_REF
																																		(2L);
																																}
																															else
																																{	/* Coerce/coerce.scm 345 */
																																	BgL_casezd2valuezd2_3905
																																		= BFALSE;
																																}
																														}
																												}
																										}
																									else
																										{	/* Coerce/coerce.scm 337 */
																											BgL_casezd2valuezd2_3905 =
																												BFALSE;
																										}
																								}
																							else
																								{	/* Coerce/coerce.scm 334 */
																									BgL_casezd2valuezd2_3905 =
																										BFALSE;
																								}
																						}
																					}
																				}
																			}
																		}
																	}
																else
																	{	/* Coerce/coerce.scm 349 */
																		bool_t BgL_test2285z00_4984;

																		{	/* Coerce/coerce.scm 349 */
																			bool_t BgL_test2286z00_4985;

																			{	/* Coerce/coerce.scm 349 */
																				BgL_nodez00_bglt BgL_arg1885z00_3868;

																				BgL_arg1885z00_3868 =
																					(((BgL_letzd2varzd2_bglt) COBJECT(
																							((BgL_letzd2varzd2_bglt)
																								BgL_nodez00_3803)))->
																					BgL_bodyz00);
																				{	/* Coerce/coerce.scm 349 */
																					obj_t BgL_classz00_3869;

																					BgL_classz00_3869 =
																						BGl_varz00zzast_nodez00;
																					{	/* Coerce/coerce.scm 349 */
																						BgL_objectz00_bglt
																							BgL_arg1801z00_3870;
																						{	/* Coerce/coerce.scm 349 */
																							obj_t BgL_tmpz00_4988;

																							BgL_tmpz00_4988 =
																								((obj_t)
																								((BgL_objectz00_bglt)
																									BgL_arg1885z00_3868));
																							BgL_arg1801z00_3870 =
																								(BgL_objectz00_bglt)
																								(BgL_tmpz00_4988);
																						}
																						if (BGL_CONDEXPAND_ISA_ARCH64())
																							{	/* Coerce/coerce.scm 349 */
																								long BgL_idxz00_3871;

																								BgL_idxz00_3871 =
																									BGL_OBJECT_INHERITANCE_NUM
																									(BgL_arg1801z00_3870);
																								BgL_test2286z00_4985 =
																									(VECTOR_REF
																									(BGl_za2inheritancesza2z00zz__objectz00,
																										(BgL_idxz00_3871 + 2L)) ==
																									BgL_classz00_3869);
																							}
																						else
																							{	/* Coerce/coerce.scm 349 */
																								bool_t BgL_res2075z00_3874;

																								{	/* Coerce/coerce.scm 349 */
																									obj_t BgL_oclassz00_3875;

																									{	/* Coerce/coerce.scm 349 */
																										long BgL_arg1808z00_3876;

																										{	/* Coerce/coerce.scm 349 */
																											long BgL_arg1809z00_3877;

																											BgL_arg1809z00_3877 =
																												BGL_OBJECT_CLASS_NUM
																												(BgL_arg1801z00_3870);
																											BgL_arg1808z00_3876 =
																												(BgL_arg1809z00_3877 -
																												OBJECT_TYPE);
																										}
																										BgL_oclassz00_3875 =
																											VECTOR_REF
																											(BGl_za2classesza2z00zz__objectz00,
																											BgL_arg1808z00_3876);
																									}
																									{	/* Coerce/coerce.scm 349 */
																										bool_t
																											BgL__ortest_1115z00_3878;
																										BgL__ortest_1115z00_3878 =
																											(BgL_classz00_3869 ==
																											BgL_oclassz00_3875);
																										if (BgL__ortest_1115z00_3878)
																											{	/* Coerce/coerce.scm 349 */
																												BgL_res2075z00_3874 =
																													BgL__ortest_1115z00_3878;
																											}
																										else
																											{	/* Coerce/coerce.scm 349 */
																												long BgL_odepthz00_3879;

																												BgL_odepthz00_3879 =
																													BGL_CLASS_DEPTH
																													(BgL_oclassz00_3875);
																												if ((2L <
																														BgL_odepthz00_3879))
																													{	/* Coerce/coerce.scm 349 */
																														obj_t
																															BgL_arg1797z00_3880;
																														BgL_arg1797z00_3880
																															=
																															BGL_CLASS_ANCESTORS_REF
																															(BgL_oclassz00_3875,
																															2L);
																														BgL_res2075z00_3874
																															=
																															(BgL_arg1797z00_3880
																															==
																															BgL_classz00_3869);
																													}
																												else
																													{	/* Coerce/coerce.scm 349 */
																														BgL_res2075z00_3874
																															= ((bool_t) 0);
																													}
																											}
																									}
																								}
																								BgL_test2286z00_4985 =
																									BgL_res2075z00_3874;
																							}
																					}
																				}
																			}
																			if (BgL_test2286z00_4985)
																				{	/* Coerce/coerce.scm 349 */
																					obj_t BgL_tmpz00_5008;

																					{	/* Coerce/coerce.scm 349 */
																						obj_t BgL_pairz00_3881;

																						BgL_pairz00_3881 =
																							(((BgL_letzd2varzd2_bglt) COBJECT(
																									((BgL_letzd2varzd2_bglt)
																										BgL_nodez00_3803)))->
																							BgL_bindingsz00);
																						BgL_tmpz00_5008 =
																							CAR(CAR(BgL_pairz00_3881));
																					}
																					BgL_test2285z00_4984 =
																						(
																						((obj_t)
																							(((BgL_varz00_bglt) COBJECT(
																										((BgL_varz00_bglt)
																											(((BgL_letzd2varzd2_bglt)
																													COBJECT((
																															(BgL_letzd2varzd2_bglt)
																															BgL_nodez00_3803)))->
																												BgL_bodyz00))))->
																								BgL_variablez00)) ==
																						BgL_tmpz00_5008);
																				}
																			else
																				{	/* Coerce/coerce.scm 349 */
																					BgL_test2285z00_4984 = ((bool_t) 0);
																				}
																		}
																		if (BgL_test2285z00_4984)
																			{	/* Coerce/coerce.scm 350 */
																				obj_t BgL_arg1879z00_3882;

																				{	/* Coerce/coerce.scm 350 */
																					obj_t BgL_pairz00_3883;

																					BgL_pairz00_3883 =
																						(((BgL_letzd2varzd2_bglt) COBJECT(
																								((BgL_letzd2varzd2_bglt)
																									BgL_nodez00_3803)))->
																						BgL_bindingsz00);
																					BgL_arg1879z00_3882 =
																						CDR(CAR(BgL_pairz00_3883));
																				}
																				{
																					obj_t BgL_nodez00_5023;

																					BgL_nodez00_5023 =
																						BgL_arg1879z00_3882;
																					BgL_nodez00_3715 = BgL_nodez00_5023;
																					goto
																						BgL_testzd2staticzd2valuez00_3711;
																				}
																			}
																		else
																			{	/* Coerce/coerce.scm 349 */
																				BgL_casezd2valuezd2_3905 = BFALSE;
																			}
																	}
															}
														else
															{	/* Coerce/coerce.scm 311 */
																BgL_casezd2valuezd2_3905 = BFALSE;
															}
													}
												}
											else
												{	/* Coerce/coerce.scm 379 */
													BgL_casezd2valuezd2_3905 = BFALSE;
												}
										}
								}
						}
					}
					if ((BgL_casezd2valuezd2_3905 == CNST_TABLE_REF(1L)))
						{	/* Coerce/coerce.scm 387 */
							BgL_nodez00_bglt BgL_arg1750z00_3907;

							BgL_arg1750z00_3907 =
								(((BgL_conditionalz00_bglt) COBJECT(
										((BgL_conditionalz00_bglt) BgL_nodez00_3515)))->
								BgL_truez00);
							return BGl_coercez12z12zzcoerce_coercez00(BgL_arg1750z00_3907,
								BgL_callerz00_3516, ((BgL_typez00_bglt) BgL_toz00_3517),
								CBOOL(BgL_safez00_3518));
						}
					else
						{	/* Coerce/coerce.scm 385 */
							if ((BgL_casezd2valuezd2_3905 == CNST_TABLE_REF(2L)))
								{	/* Coerce/coerce.scm 389 */
									BgL_nodez00_bglt BgL_arg1752z00_3908;

									BgL_arg1752z00_3908 =
										(((BgL_conditionalz00_bglt) COBJECT(
												((BgL_conditionalz00_bglt) BgL_nodez00_3515)))->
										BgL_falsez00);
									return BGl_coercez12z12zzcoerce_coercez00(BgL_arg1752z00_3908,
										BgL_callerz00_3516, ((BgL_typez00_bglt) BgL_toz00_3517),
										CBOOL(BgL_safez00_3518));
								}
							else
								{	/* Coerce/coerce.scm 385 */
									{
										BgL_nodez00_bglt BgL_auxz00_5041;

										{	/* Coerce/coerce.scm 391 */
											BgL_nodez00_bglt BgL_arg1753z00_3909;

											BgL_arg1753z00_3909 =
												(((BgL_conditionalz00_bglt) COBJECT(
														((BgL_conditionalz00_bglt) BgL_nodez00_3515)))->
												BgL_truez00);
											BgL_auxz00_5041 =
												BGl_coercez12z12zzcoerce_coercez00(BgL_arg1753z00_3909,
												BgL_callerz00_3516, ((BgL_typez00_bglt) BgL_toz00_3517),
												CBOOL(BgL_safez00_3518));
										}
										((((BgL_conditionalz00_bglt) COBJECT(
														((BgL_conditionalz00_bglt) BgL_nodez00_3515)))->
												BgL_truez00) =
											((BgL_nodez00_bglt) BgL_auxz00_5041), BUNSPEC);
									}
									{
										BgL_nodez00_bglt BgL_auxz00_5049;

										{	/* Coerce/coerce.scm 392 */
											BgL_nodez00_bglt BgL_arg1759z00_3910;

											BgL_arg1759z00_3910 =
												(((BgL_conditionalz00_bglt) COBJECT(
														((BgL_conditionalz00_bglt) BgL_nodez00_3515)))->
												BgL_falsez00);
											BgL_auxz00_5049 =
												BGl_coercez12z12zzcoerce_coercez00(BgL_arg1759z00_3910,
												BgL_callerz00_3516, ((BgL_typez00_bglt) BgL_toz00_3517),
												CBOOL(BgL_safez00_3518));
										}
										((((BgL_conditionalz00_bglt) COBJECT(
														((BgL_conditionalz00_bglt) BgL_nodez00_3515)))->
												BgL_falsez00) =
											((BgL_nodez00_bglt) BgL_auxz00_5049), BUNSPEC);
									}
									((((BgL_nodez00_bglt) COBJECT(
													((BgL_nodez00_bglt)
														((BgL_conditionalz00_bglt) BgL_nodez00_3515))))->
											BgL_typez00) =
										((BgL_typez00_bglt) ((BgL_typez00_bglt) BgL_toz00_3517)),
										BUNSPEC);
									return ((BgL_nodez00_bglt) ((BgL_conditionalz00_bglt)
											BgL_nodez00_3515));
								}
						}
				}
			}
		}

	}



/* &coerce!-setq1325 */
	BgL_nodez00_bglt BGl_z62coercez12zd2setq1325za2zzcoerce_coercez00(obj_t
		BgL_envz00_3519, obj_t BgL_nodez00_3520, obj_t BgL_callerz00_3521,
		obj_t BgL_toz00_3522, obj_t BgL_safez00_3523)
	{
		{	/* Coerce/coerce.scm 264 */
			{
				BgL_nodez00_bglt BgL_auxz00_5063;

				{	/* Coerce/coerce.scm 266 */
					BgL_nodez00_bglt BgL_arg1741z00_3912;
					BgL_typez00_bglt BgL_arg1745z00_3913;

					BgL_arg1741z00_3912 =
						(((BgL_setqz00_bglt) COBJECT(
								((BgL_setqz00_bglt) BgL_nodez00_3520)))->BgL_valuez00);
					BgL_arg1745z00_3913 =
						(((BgL_variablez00_bglt) COBJECT(
								(((BgL_varz00_bglt) COBJECT(
											(((BgL_setqz00_bglt) COBJECT(
														((BgL_setqz00_bglt) BgL_nodez00_3520)))->
												BgL_varz00)))->BgL_variablez00)))->BgL_typez00);
					BgL_auxz00_5063 =
						BGl_coercez12z12zzcoerce_coercez00(BgL_arg1741z00_3912,
						BgL_callerz00_3521, BgL_arg1745z00_3913, CBOOL(BgL_safez00_3523));
				}
				((((BgL_setqz00_bglt) COBJECT(
								((BgL_setqz00_bglt) BgL_nodez00_3520)))->BgL_valuez00) =
					((BgL_nodez00_bglt) BgL_auxz00_5063), BUNSPEC);
			}
			return
				BGl_convertz12z12zzcoerce_convertz00(
				((BgL_nodez00_bglt)
					((BgL_setqz00_bglt) BgL_nodez00_3520)),
				((BgL_typez00_bglt) BGl_za2unspecza2z00zztype_cachez00),
				((BgL_typez00_bglt) BgL_toz00_3522), CBOOL(BgL_safez00_3523));
		}

	}



/* &coerce!-cast1323 */
	BgL_nodez00_bglt BGl_z62coercez12zd2cast1323za2zzcoerce_coercez00(obj_t
		BgL_envz00_3524, obj_t BgL_nodez00_3525, obj_t BgL_callerz00_3526,
		obj_t BgL_toz00_3527, obj_t BgL_safez00_3528)
	{
		{	/* Coerce/coerce.scm 254 */
			{
				BgL_nodez00_bglt BgL_auxz00_5080;

				{	/* Coerce/coerce.scm 258 */
					BgL_nodez00_bglt BgL_arg1734z00_3915;
					BgL_typez00_bglt BgL_arg1735z00_3916;

					BgL_arg1734z00_3915 =
						(((BgL_castz00_bglt) COBJECT(
								((BgL_castz00_bglt) BgL_nodez00_3525)))->BgL_argz00);
					{	/* Coerce/coerce.scm 258 */
						BgL_nodez00_bglt BgL_arg1736z00_3917;

						BgL_arg1736z00_3917 =
							(((BgL_castz00_bglt) COBJECT(
									((BgL_castz00_bglt) BgL_nodez00_3525)))->BgL_argz00);
						BgL_arg1735z00_3916 =
							BGl_getzd2typezd2zztype_typeofz00(BgL_arg1736z00_3917,
							((bool_t) 0));
					}
					BgL_auxz00_5080 =
						BGl_coercez12z12zzcoerce_coercez00(BgL_arg1734z00_3915,
						BgL_callerz00_3526, BgL_arg1735z00_3916, CBOOL(BgL_safez00_3528));
				}
				((((BgL_castz00_bglt) COBJECT(
								((BgL_castz00_bglt) BgL_nodez00_3525)))->BgL_argz00) =
					((BgL_nodez00_bglt) BgL_auxz00_5080), BUNSPEC);
			}
			{	/* Coerce/coerce.scm 259 */
				BgL_typez00_bglt BgL_arg1739z00_3918;

				BgL_arg1739z00_3918 =
					(((BgL_nodez00_bglt) COBJECT(
							((BgL_nodez00_bglt)
								((BgL_castz00_bglt) BgL_nodez00_3525))))->BgL_typez00);
				return
					BGl_convertz12z12zzcoerce_convertz00(
					((BgL_nodez00_bglt)
						((BgL_castz00_bglt) BgL_nodez00_3525)), BgL_arg1739z00_3918,
					((BgL_typez00_bglt) BgL_toz00_3527), CBOOL(BgL_safez00_3528));
			}
		}

	}



/* &coerce!-vlength1321 */
	BgL_nodez00_bglt BGl_z62coercez12zd2vlength1321za2zzcoerce_coercez00(obj_t
		BgL_envz00_3529, obj_t BgL_nodez00_3530, obj_t BgL_callerz00_3531,
		obj_t BgL_toz00_3532, obj_t BgL_safez00_3533)
	{
		{	/* Coerce/coerce.scm 246 */
			{	/* Coerce/coerce.scm 248 */
				obj_t BgL_arg1718z00_3920;
				BgL_nodez00_bglt BgL_arg1729z00_3921;

				BgL_arg1718z00_3920 =
					(((BgL_externz00_bglt) COBJECT(
							((BgL_externz00_bglt)
								((BgL_vlengthz00_bglt) BgL_nodez00_3530))))->BgL_exprza2za2);
				{	/* Coerce/coerce.scm 248 */
					obj_t BgL_arg1730z00_3922;
					BgL_typez00_bglt BgL_arg1731z00_3923;

					{	/* Coerce/coerce.scm 248 */
						obj_t BgL_pairz00_3924;

						BgL_pairz00_3924 =
							(((BgL_externz00_bglt) COBJECT(
									((BgL_externz00_bglt)
										((BgL_vlengthz00_bglt) BgL_nodez00_3530))))->
							BgL_exprza2za2);
						BgL_arg1730z00_3922 = CAR(BgL_pairz00_3924);
					}
					BgL_arg1731z00_3923 =
						(((BgL_vlengthz00_bglt) COBJECT(
								((BgL_vlengthz00_bglt) BgL_nodez00_3530)))->BgL_vtypez00);
					BgL_arg1729z00_3921 =
						BGl_coercez12z12zzcoerce_coercez00(
						((BgL_nodez00_bglt) BgL_arg1730z00_3922), BgL_callerz00_3531,
						BgL_arg1731z00_3923, CBOOL(BgL_safez00_3533));
				}
				{	/* Coerce/coerce.scm 248 */
					obj_t BgL_auxz00_5112;
					obj_t BgL_tmpz00_5110;

					BgL_auxz00_5112 = ((obj_t) BgL_arg1729z00_3921);
					BgL_tmpz00_5110 = ((obj_t) BgL_arg1718z00_3920);
					SET_CAR(BgL_tmpz00_5110, BgL_auxz00_5112);
				}
			}
			{	/* Coerce/coerce.scm 249 */
				BgL_typez00_bglt BgL_arg1733z00_3925;

				BgL_arg1733z00_3925 =
					(((BgL_nodez00_bglt) COBJECT(
							((BgL_nodez00_bglt)
								((BgL_vlengthz00_bglt) BgL_nodez00_3530))))->BgL_typez00);
				return
					BGl_convertz12z12zzcoerce_convertz00(
					((BgL_nodez00_bglt)
						((BgL_vlengthz00_bglt) BgL_nodez00_3530)), BgL_arg1733z00_3925,
					((BgL_typez00_bglt) BgL_toz00_3532), CBOOL(BgL_safez00_3533));
			}
		}

	}



/* &coerce!-vset!1319 */
	BgL_nodez00_bglt BGl_z62coercez12zd2vsetz121319zb0zzcoerce_coercez00(obj_t
		BgL_envz00_3534, obj_t BgL_nodez00_3535, obj_t BgL_callerz00_3536,
		obj_t BgL_toz00_3537, obj_t BgL_safez00_3538)
	{
		{	/* Coerce/coerce.scm 234 */
			{	/* Coerce/coerce.scm 237 */
				obj_t BgL_ftypez00_3927;

				{	/* Coerce/coerce.scm 237 */
					bool_t BgL_test2292z00_5123;

					{	/* Coerce/coerce.scm 237 */
						BgL_typez00_bglt BgL_arg1717z00_3928;

						BgL_arg1717z00_3928 =
							(((BgL_vsetz12z12_bglt) COBJECT(
									((BgL_vsetz12z12_bglt) BgL_nodez00_3535)))->BgL_ftypez00);
						BgL_test2292z00_5123 =
							(((obj_t) BgL_arg1717z00_3928) == BGl_za2_za2z00zztype_cachez00);
					}
					if (BgL_test2292z00_5123)
						{	/* Coerce/coerce.scm 237 */
							BgL_ftypez00_3927 = BGl_za2objza2z00zztype_cachez00;
						}
					else
						{	/* Coerce/coerce.scm 237 */
							BgL_ftypez00_3927 =
								((obj_t)
								(((BgL_vsetz12z12_bglt) COBJECT(
											((BgL_vsetz12z12_bglt) BgL_nodez00_3535)))->
									BgL_ftypez00));
						}
				}
				{	/* Coerce/coerce.scm 238 */
					obj_t BgL_arg1673z00_3929;
					BgL_nodez00_bglt BgL_arg1675z00_3930;

					BgL_arg1673z00_3929 =
						(((BgL_externz00_bglt) COBJECT(
								((BgL_externz00_bglt)
									((BgL_vsetz12z12_bglt) BgL_nodez00_3535))))->BgL_exprza2za2);
					{	/* Coerce/coerce.scm 238 */
						obj_t BgL_arg1678z00_3931;
						BgL_typez00_bglt BgL_arg1681z00_3932;

						{	/* Coerce/coerce.scm 238 */
							obj_t BgL_pairz00_3933;

							BgL_pairz00_3933 =
								(((BgL_externz00_bglt) COBJECT(
										((BgL_externz00_bglt)
											((BgL_vsetz12z12_bglt) BgL_nodez00_3535))))->
								BgL_exprza2za2);
							BgL_arg1678z00_3931 = CAR(BgL_pairz00_3933);
						}
						BgL_arg1681z00_3932 =
							(((BgL_vsetz12z12_bglt) COBJECT(
									((BgL_vsetz12z12_bglt) BgL_nodez00_3535)))->BgL_vtypez00);
						BgL_arg1675z00_3930 =
							BGl_coercez12z12zzcoerce_coercez00(
							((BgL_nodez00_bglt) BgL_arg1678z00_3931), BgL_callerz00_3536,
							BgL_arg1681z00_3932, CBOOL(BgL_safez00_3538));
					}
					{	/* Coerce/coerce.scm 238 */
						obj_t BgL_auxz00_5145;
						obj_t BgL_tmpz00_5143;

						BgL_auxz00_5145 = ((obj_t) BgL_arg1675z00_3930);
						BgL_tmpz00_5143 = ((obj_t) BgL_arg1673z00_3929);
						SET_CAR(BgL_tmpz00_5143, BgL_auxz00_5145);
					}
				}
				{	/* Coerce/coerce.scm 239 */
					obj_t BgL_arg1686z00_3934;
					BgL_nodez00_bglt BgL_arg1690z00_3935;

					{	/* Coerce/coerce.scm 239 */
						obj_t BgL_pairz00_3936;

						BgL_pairz00_3936 =
							(((BgL_externz00_bglt) COBJECT(
									((BgL_externz00_bglt)
										((BgL_vsetz12z12_bglt) BgL_nodez00_3535))))->
							BgL_exprza2za2);
						BgL_arg1686z00_3934 = CDR(BgL_pairz00_3936);
					}
					{	/* Coerce/coerce.scm 239 */
						obj_t BgL_arg1695z00_3937;
						BgL_typez00_bglt BgL_arg1696z00_3938;

						{	/* Coerce/coerce.scm 239 */
							obj_t BgL_pairz00_3939;

							BgL_pairz00_3939 =
								(((BgL_externz00_bglt) COBJECT(
										((BgL_externz00_bglt)
											((BgL_vsetz12z12_bglt) BgL_nodez00_3535))))->
								BgL_exprza2za2);
							BgL_arg1695z00_3937 = CAR(CDR(BgL_pairz00_3939));
						}
						BgL_arg1696z00_3938 =
							(((BgL_vsetz12z12_bglt) COBJECT(
									((BgL_vsetz12z12_bglt) BgL_nodez00_3535)))->BgL_otypez00);
						BgL_arg1690z00_3935 =
							BGl_coercez12z12zzcoerce_coercez00(
							((BgL_nodez00_bglt) BgL_arg1695z00_3937), BgL_callerz00_3536,
							BgL_arg1696z00_3938, CBOOL(BgL_safez00_3538));
					}
					{	/* Coerce/coerce.scm 239 */
						obj_t BgL_auxz00_5164;
						obj_t BgL_tmpz00_5162;

						BgL_auxz00_5164 = ((obj_t) BgL_arg1690z00_3935);
						BgL_tmpz00_5162 = ((obj_t) BgL_arg1686z00_3934);
						SET_CAR(BgL_tmpz00_5162, BgL_auxz00_5164);
					}
				}
				{	/* Coerce/coerce.scm 240 */
					obj_t BgL_arg1706z00_3940;
					BgL_nodez00_bglt BgL_arg1707z00_3941;

					{	/* Coerce/coerce.scm 240 */
						obj_t BgL_pairz00_3942;

						BgL_pairz00_3942 =
							(((BgL_externz00_bglt) COBJECT(
									((BgL_externz00_bglt)
										((BgL_vsetz12z12_bglt) BgL_nodez00_3535))))->
							BgL_exprza2za2);
						BgL_arg1706z00_3940 = CDR(CDR(BgL_pairz00_3942));
					}
					{	/* Coerce/coerce.scm 240 */
						obj_t BgL_arg1709z00_3943;

						{	/* Coerce/coerce.scm 240 */
							obj_t BgL_pairz00_3944;

							BgL_pairz00_3944 =
								(((BgL_externz00_bglt) COBJECT(
										((BgL_externz00_bglt)
											((BgL_vsetz12z12_bglt) BgL_nodez00_3535))))->
								BgL_exprza2za2);
							BgL_arg1709z00_3943 = CAR(CDR(CDR(BgL_pairz00_3944)));
						}
						BgL_arg1707z00_3941 =
							BGl_coercez12z12zzcoerce_coercez00(
							((BgL_nodez00_bglt) BgL_arg1709z00_3943), BgL_callerz00_3536,
							((BgL_typez00_bglt) BgL_ftypez00_3927), CBOOL(BgL_safez00_3538));
					}
					{	/* Coerce/coerce.scm 240 */
						obj_t BgL_auxz00_5184;
						obj_t BgL_tmpz00_5182;

						BgL_auxz00_5184 = ((obj_t) BgL_arg1707z00_3941);
						BgL_tmpz00_5182 = ((obj_t) BgL_arg1706z00_3940);
						SET_CAR(BgL_tmpz00_5182, BgL_auxz00_5184);
					}
				}
				{	/* Coerce/coerce.scm 241 */
					BgL_typez00_bglt BgL_arg1712z00_3945;

					BgL_arg1712z00_3945 =
						(((BgL_nodez00_bglt) COBJECT(
								((BgL_nodez00_bglt)
									((BgL_vsetz12z12_bglt) BgL_nodez00_3535))))->BgL_typez00);
					return
						BGl_convertz12z12zzcoerce_convertz00(
						((BgL_nodez00_bglt)
							((BgL_vsetz12z12_bglt) BgL_nodez00_3535)), BgL_arg1712z00_3945,
						((BgL_typez00_bglt) BgL_toz00_3537), CBOOL(BgL_safez00_3538));
				}
			}
		}

	}



/* &coerce!-vref1317 */
	BgL_nodez00_bglt BGl_z62coercez12zd2vref1317za2zzcoerce_coercez00(obj_t
		BgL_envz00_3539, obj_t BgL_nodez00_3540, obj_t BgL_callerz00_3541,
		obj_t BgL_toz00_3542, obj_t BgL_safez00_3543)
	{
		{	/* Coerce/coerce.scm 218 */
			{	/* Coerce/coerce.scm 226 */
				obj_t BgL_ftypez00_3947;

				{	/* Coerce/coerce.scm 226 */
					bool_t BgL_test2293z00_5195;

					{	/* Coerce/coerce.scm 226 */
						BgL_typez00_bglt BgL_arg1669z00_3948;

						BgL_arg1669z00_3948 =
							(((BgL_vrefz00_bglt) COBJECT(
									((BgL_vrefz00_bglt) BgL_nodez00_3540)))->BgL_ftypez00);
						BgL_test2293z00_5195 =
							(((obj_t) BgL_arg1669z00_3948) == BGl_za2_za2z00zztype_cachez00);
					}
					if (BgL_test2293z00_5195)
						{	/* Coerce/coerce.scm 226 */
							BgL_ftypez00_3947 = BGl_za2objza2z00zztype_cachez00;
						}
					else
						{	/* Coerce/coerce.scm 226 */
							BgL_ftypez00_3947 =
								((obj_t)
								(((BgL_vrefz00_bglt) COBJECT(
											((BgL_vrefz00_bglt) BgL_nodez00_3540)))->BgL_ftypez00));
						}
				}
				{	/* Coerce/coerce.scm 227 */
					obj_t BgL_arg1614z00_3949;
					BgL_nodez00_bglt BgL_arg1615z00_3950;

					BgL_arg1614z00_3949 =
						(((BgL_externz00_bglt) COBJECT(
								((BgL_externz00_bglt)
									((BgL_vrefz00_bglt) BgL_nodez00_3540))))->BgL_exprza2za2);
					{	/* Coerce/coerce.scm 227 */
						obj_t BgL_arg1616z00_3951;
						BgL_typez00_bglt BgL_arg1620z00_3952;

						{	/* Coerce/coerce.scm 227 */
							obj_t BgL_pairz00_3953;

							BgL_pairz00_3953 =
								(((BgL_externz00_bglt) COBJECT(
										((BgL_externz00_bglt)
											((BgL_vrefz00_bglt) BgL_nodez00_3540))))->BgL_exprza2za2);
							BgL_arg1616z00_3951 = CAR(BgL_pairz00_3953);
						}
						BgL_arg1620z00_3952 =
							(((BgL_vrefz00_bglt) COBJECT(
									((BgL_vrefz00_bglt) BgL_nodez00_3540)))->BgL_vtypez00);
						BgL_arg1615z00_3950 =
							BGl_coercez12z12zzcoerce_coercez00(
							((BgL_nodez00_bglt) BgL_arg1616z00_3951), BgL_callerz00_3541,
							BgL_arg1620z00_3952, CBOOL(BgL_safez00_3543));
					}
					{	/* Coerce/coerce.scm 227 */
						obj_t BgL_auxz00_5217;
						obj_t BgL_tmpz00_5215;

						BgL_auxz00_5217 = ((obj_t) BgL_arg1615z00_3950);
						BgL_tmpz00_5215 = ((obj_t) BgL_arg1614z00_3949);
						SET_CAR(BgL_tmpz00_5215, BgL_auxz00_5217);
					}
				}
				{	/* Coerce/coerce.scm 228 */
					obj_t BgL_arg1628z00_3954;
					BgL_nodez00_bglt BgL_arg1629z00_3955;

					{	/* Coerce/coerce.scm 228 */
						obj_t BgL_pairz00_3956;

						BgL_pairz00_3956 =
							(((BgL_externz00_bglt) COBJECT(
									((BgL_externz00_bglt)
										((BgL_vrefz00_bglt) BgL_nodez00_3540))))->BgL_exprza2za2);
						BgL_arg1628z00_3954 = CDR(BgL_pairz00_3956);
					}
					{	/* Coerce/coerce.scm 228 */
						obj_t BgL_arg1639z00_3957;
						BgL_typez00_bglt BgL_arg1649z00_3958;

						{	/* Coerce/coerce.scm 228 */
							obj_t BgL_pairz00_3959;

							BgL_pairz00_3959 =
								(((BgL_externz00_bglt) COBJECT(
										((BgL_externz00_bglt)
											((BgL_vrefz00_bglt) BgL_nodez00_3540))))->BgL_exprza2za2);
							BgL_arg1639z00_3957 = CAR(CDR(BgL_pairz00_3959));
						}
						BgL_arg1649z00_3958 =
							(((BgL_vrefz00_bglt) COBJECT(
									((BgL_vrefz00_bglt) BgL_nodez00_3540)))->BgL_otypez00);
						BgL_arg1629z00_3955 =
							BGl_coercez12z12zzcoerce_coercez00(
							((BgL_nodez00_bglt) BgL_arg1639z00_3957), BgL_callerz00_3541,
							BgL_arg1649z00_3958, CBOOL(BgL_safez00_3543));
					}
					{	/* Coerce/coerce.scm 228 */
						obj_t BgL_auxz00_5236;
						obj_t BgL_tmpz00_5234;

						BgL_auxz00_5236 = ((obj_t) BgL_arg1629z00_3955);
						BgL_tmpz00_5234 = ((obj_t) BgL_arg1628z00_3954);
						SET_CAR(BgL_tmpz00_5234, BgL_auxz00_5236);
					}
				}
				return
					BGl_convertz12z12zzcoerce_convertz00(
					((BgL_nodez00_bglt)
						((BgL_vrefz00_bglt) BgL_nodez00_3540)),
					((BgL_typez00_bglt) BgL_ftypez00_3947),
					((BgL_typez00_bglt) BgL_toz00_3542), CBOOL(BgL_safez00_3543));
			}
		}

	}



/* &coerce!-valloc1315 */
	BgL_nodez00_bglt BGl_z62coercez12zd2valloc1315za2zzcoerce_coercez00(obj_t
		BgL_envz00_3544, obj_t BgL_nodez00_3545, obj_t BgL_callerz00_3546,
		obj_t BgL_toz00_3547, obj_t BgL_safez00_3548)
	{
		{	/* Coerce/coerce.scm 210 */
			{	/* Coerce/coerce.scm 212 */
				obj_t BgL_arg1597z00_3961;
				BgL_nodez00_bglt BgL_arg1598z00_3962;

				BgL_arg1597z00_3961 =
					(((BgL_externz00_bglt) COBJECT(
							((BgL_externz00_bglt)
								((BgL_vallocz00_bglt) BgL_nodez00_3545))))->BgL_exprza2za2);
				{	/* Coerce/coerce.scm 212 */
					obj_t BgL_arg1606z00_3963;
					BgL_typez00_bglt BgL_arg1608z00_3964;

					{	/* Coerce/coerce.scm 212 */
						obj_t BgL_pairz00_3965;

						BgL_pairz00_3965 =
							(((BgL_externz00_bglt) COBJECT(
									((BgL_externz00_bglt)
										((BgL_vallocz00_bglt) BgL_nodez00_3545))))->BgL_exprza2za2);
						BgL_arg1606z00_3963 = CAR(BgL_pairz00_3965);
					}
					BgL_arg1608z00_3964 =
						(((BgL_vallocz00_bglt) COBJECT(
								((BgL_vallocz00_bglt) BgL_nodez00_3545)))->BgL_otypez00);
					BgL_arg1598z00_3962 =
						BGl_coercez12z12zzcoerce_coercez00(
						((BgL_nodez00_bglt) BgL_arg1606z00_3963), BgL_callerz00_3546,
						BgL_arg1608z00_3964, CBOOL(BgL_safez00_3548));
				}
				{	/* Coerce/coerce.scm 212 */
					obj_t BgL_auxz00_5259;
					obj_t BgL_tmpz00_5257;

					BgL_auxz00_5259 = ((obj_t) BgL_arg1598z00_3962);
					BgL_tmpz00_5257 = ((obj_t) BgL_arg1597z00_3961);
					SET_CAR(BgL_tmpz00_5257, BgL_auxz00_5259);
				}
			}
			{	/* Coerce/coerce.scm 213 */
				BgL_typez00_bglt BgL_arg1613z00_3966;

				BgL_arg1613z00_3966 =
					(((BgL_nodez00_bglt) COBJECT(
							((BgL_nodez00_bglt)
								((BgL_vallocz00_bglt) BgL_nodez00_3545))))->BgL_typez00);
				return
					BGl_convertz12z12zzcoerce_convertz00(
					((BgL_nodez00_bglt)
						((BgL_vallocz00_bglt) BgL_nodez00_3545)), BgL_arg1613z00_3966,
					((BgL_typez00_bglt) BgL_toz00_3547), CBOOL(BgL_safez00_3548));
			}
		}

	}



/* &coerce!-new1313 */
	BgL_nodez00_bglt BGl_z62coercez12zd2new1313za2zzcoerce_coercez00(obj_t
		BgL_envz00_3549, obj_t BgL_nodez00_3550, obj_t BgL_callerz00_3551,
		obj_t BgL_toz00_3552, obj_t BgL_safez00_3553)
	{
		{	/* Coerce/coerce.scm 196 */
			{
				obj_t BgL_lz00_3969;

				{	/* Coerce/coerce.scm 198 */
					obj_t BgL_arg1581z00_3975;

					BgL_arg1581z00_3975 =
						(((BgL_externz00_bglt) COBJECT(
								((BgL_externz00_bglt)
									((BgL_newz00_bglt) BgL_nodez00_3550))))->BgL_exprza2za2);
					BgL_lz00_3969 = BgL_arg1581z00_3975;
				BgL_loopz00_3968:
					if (NULLP(BgL_lz00_3969))
						{	/* Coerce/coerce.scm 200 */
							BgL_typez00_bglt BgL_arg1586z00_3970;

							BgL_arg1586z00_3970 =
								(((BgL_nodez00_bglt) COBJECT(
										((BgL_nodez00_bglt)
											((BgL_newz00_bglt) BgL_nodez00_3550))))->BgL_typez00);
							BGl_convertz12z12zzcoerce_convertz00(
								((BgL_nodez00_bglt)
									((BgL_newz00_bglt) BgL_nodez00_3550)), BgL_arg1586z00_3970,
								((BgL_typez00_bglt) BgL_toz00_3552), CBOOL(BgL_safez00_3553));
						}
					else
						{	/* Coerce/coerce.scm 201 */
							obj_t BgL_vz00_3971;

							BgL_vz00_3971 = CAR(((obj_t) BgL_lz00_3969));
							{	/* Coerce/coerce.scm 201 */
								BgL_nodez00_bglt BgL_nvz00_3972;

								{	/* Coerce/coerce.scm 202 */
									BgL_typez00_bglt BgL_arg1592z00_3973;

									BgL_arg1592z00_3973 =
										BGl_getzd2typezd2zztype_typeofz00(
										((BgL_nodez00_bglt) BgL_vz00_3971), ((bool_t) 0));
									BgL_nvz00_3972 =
										BGl_coercez12z12zzcoerce_coercez00(
										((BgL_nodez00_bglt) BgL_vz00_3971), BgL_callerz00_3551,
										BgL_arg1592z00_3973, CBOOL(BgL_safez00_3553));
								}
								{	/* Coerce/coerce.scm 202 */

									{	/* Coerce/coerce.scm 203 */
										obj_t BgL_auxz00_5292;
										obj_t BgL_tmpz00_5290;

										BgL_auxz00_5292 = ((obj_t) BgL_nvz00_3972);
										BgL_tmpz00_5290 = ((obj_t) BgL_lz00_3969);
										SET_CAR(BgL_tmpz00_5290, BgL_auxz00_5292);
									}
									{	/* Coerce/coerce.scm 204 */
										obj_t BgL_arg1590z00_3974;

										BgL_arg1590z00_3974 = CDR(((obj_t) BgL_lz00_3969));
										{
											obj_t BgL_lz00_5297;

											BgL_lz00_5297 = BgL_arg1590z00_3974;
											BgL_lz00_3969 = BgL_lz00_5297;
											goto BgL_loopz00_3968;
										}
									}
								}
							}
						}
				}
			}
			{	/* Coerce/coerce.scm 205 */
				BgL_typez00_bglt BgL_arg1595z00_3976;

				BgL_arg1595z00_3976 =
					(((BgL_nodez00_bglt) COBJECT(
							((BgL_nodez00_bglt)
								((BgL_newz00_bglt) BgL_nodez00_3550))))->BgL_typez00);
				return
					BGl_convertz12z12zzcoerce_convertz00(
					((BgL_nodez00_bglt)
						((BgL_newz00_bglt) BgL_nodez00_3550)), BgL_arg1595z00_3976,
					((BgL_typez00_bglt) BgL_toz00_3552), CBOOL(BgL_safez00_3553));
			}
		}

	}



/* &coerce!-setfield1311 */
	BgL_nodez00_bglt BGl_z62coercez12zd2setfield1311za2zzcoerce_coercez00(obj_t
		BgL_envz00_3554, obj_t BgL_nodez00_3555, obj_t BgL_callerz00_3556,
		obj_t BgL_toz00_3557, obj_t BgL_safez00_3558)
	{
		{	/* Coerce/coerce.scm 187 */
			{	/* Coerce/coerce.scm 189 */
				obj_t BgL_arg1550z00_3978;
				BgL_nodez00_bglt BgL_arg1554z00_3979;

				BgL_arg1550z00_3978 =
					(((BgL_externz00_bglt) COBJECT(
							((BgL_externz00_bglt)
								((BgL_setfieldz00_bglt) BgL_nodez00_3555))))->BgL_exprza2za2);
				{	/* Coerce/coerce.scm 189 */
					obj_t BgL_arg1555z00_3980;
					BgL_typez00_bglt BgL_arg1560z00_3981;

					{	/* Coerce/coerce.scm 189 */
						obj_t BgL_pairz00_3982;

						BgL_pairz00_3982 =
							(((BgL_externz00_bglt) COBJECT(
									((BgL_externz00_bglt)
										((BgL_setfieldz00_bglt) BgL_nodez00_3555))))->
							BgL_exprza2za2);
						BgL_arg1555z00_3980 = CAR(BgL_pairz00_3982);
					}
					BgL_arg1560z00_3981 =
						(((BgL_setfieldz00_bglt) COBJECT(
								((BgL_setfieldz00_bglt) BgL_nodez00_3555)))->BgL_otypez00);
					BgL_arg1554z00_3979 =
						BGl_coercez12z12zzcoerce_coercez00(
						((BgL_nodez00_bglt) BgL_arg1555z00_3980), BgL_callerz00_3556,
						BgL_arg1560z00_3981, CBOOL(BgL_safez00_3558));
				}
				{	/* Coerce/coerce.scm 189 */
					obj_t BgL_auxz00_5320;
					obj_t BgL_tmpz00_5318;

					BgL_auxz00_5320 = ((obj_t) BgL_arg1554z00_3979);
					BgL_tmpz00_5318 = ((obj_t) BgL_arg1550z00_3978);
					SET_CAR(BgL_tmpz00_5318, BgL_auxz00_5320);
				}
			}
			{	/* Coerce/coerce.scm 190 */
				obj_t BgL_arg1564z00_3983;
				BgL_nodez00_bglt BgL_arg1565z00_3984;

				{	/* Coerce/coerce.scm 190 */
					obj_t BgL_pairz00_3985;

					BgL_pairz00_3985 =
						(((BgL_externz00_bglt) COBJECT(
								((BgL_externz00_bglt)
									((BgL_setfieldz00_bglt) BgL_nodez00_3555))))->BgL_exprza2za2);
					BgL_arg1564z00_3983 = CDR(BgL_pairz00_3985);
				}
				{	/* Coerce/coerce.scm 190 */
					obj_t BgL_arg1576z00_3986;
					BgL_typez00_bglt BgL_arg1578z00_3987;

					{	/* Coerce/coerce.scm 190 */
						obj_t BgL_pairz00_3988;

						BgL_pairz00_3988 =
							(((BgL_externz00_bglt) COBJECT(
									((BgL_externz00_bglt)
										((BgL_setfieldz00_bglt) BgL_nodez00_3555))))->
							BgL_exprza2za2);
						BgL_arg1576z00_3986 = CAR(CDR(BgL_pairz00_3988));
					}
					BgL_arg1578z00_3987 =
						(((BgL_setfieldz00_bglt) COBJECT(
								((BgL_setfieldz00_bglt) BgL_nodez00_3555)))->BgL_ftypez00);
					BgL_arg1565z00_3984 =
						BGl_coercez12z12zzcoerce_coercez00(
						((BgL_nodez00_bglt) BgL_arg1576z00_3986), BgL_callerz00_3556,
						BgL_arg1578z00_3987, CBOOL(BgL_safez00_3558));
				}
				{	/* Coerce/coerce.scm 190 */
					obj_t BgL_auxz00_5339;
					obj_t BgL_tmpz00_5337;

					BgL_auxz00_5339 = ((obj_t) BgL_arg1565z00_3984);
					BgL_tmpz00_5337 = ((obj_t) BgL_arg1564z00_3983);
					SET_CAR(BgL_tmpz00_5337, BgL_auxz00_5339);
				}
			}
			return
				BGl_convertz12z12zzcoerce_convertz00(
				((BgL_nodez00_bglt)
					((BgL_setfieldz00_bglt) BgL_nodez00_3555)),
				((BgL_typez00_bglt) BGl_za2unspecza2z00zztype_cachez00),
				((BgL_typez00_bglt) BgL_toz00_3557), CBOOL(BgL_safez00_3558));
		}

	}



/* &coerce!-getfield1309 */
	BgL_nodez00_bglt BGl_z62coercez12zd2getfield1309za2zzcoerce_coercez00(obj_t
		BgL_envz00_3559, obj_t BgL_nodez00_3560, obj_t BgL_callerz00_3561,
		obj_t BgL_toz00_3562, obj_t BgL_safez00_3563)
	{
		{	/* Coerce/coerce.scm 179 */
			{	/* Coerce/coerce.scm 181 */
				obj_t BgL_arg1532z00_3990;
				BgL_nodez00_bglt BgL_arg1534z00_3991;

				BgL_arg1532z00_3990 =
					(((BgL_externz00_bglt) COBJECT(
							((BgL_externz00_bglt)
								((BgL_getfieldz00_bglt) BgL_nodez00_3560))))->BgL_exprza2za2);
				{	/* Coerce/coerce.scm 181 */
					obj_t BgL_arg1541z00_3992;
					BgL_typez00_bglt BgL_arg1545z00_3993;

					{	/* Coerce/coerce.scm 181 */
						obj_t BgL_pairz00_3994;

						BgL_pairz00_3994 =
							(((BgL_externz00_bglt) COBJECT(
									((BgL_externz00_bglt)
										((BgL_getfieldz00_bglt) BgL_nodez00_3560))))->
							BgL_exprza2za2);
						BgL_arg1541z00_3992 = CAR(BgL_pairz00_3994);
					}
					BgL_arg1545z00_3993 =
						(((BgL_getfieldz00_bglt) COBJECT(
								((BgL_getfieldz00_bglt) BgL_nodez00_3560)))->BgL_otypez00);
					BgL_arg1534z00_3991 =
						BGl_coercez12z12zzcoerce_coercez00(
						((BgL_nodez00_bglt) BgL_arg1541z00_3992), BgL_callerz00_3561,
						BgL_arg1545z00_3993, CBOOL(BgL_safez00_3563));
				}
				{	/* Coerce/coerce.scm 181 */
					obj_t BgL_auxz00_5362;
					obj_t BgL_tmpz00_5360;

					BgL_auxz00_5362 = ((obj_t) BgL_arg1534z00_3991);
					BgL_tmpz00_5360 = ((obj_t) BgL_arg1532z00_3990);
					SET_CAR(BgL_tmpz00_5360, BgL_auxz00_5362);
				}
			}
			{	/* Coerce/coerce.scm 182 */
				BgL_typez00_bglt BgL_arg1547z00_3995;

				BgL_arg1547z00_3995 =
					(((BgL_getfieldz00_bglt) COBJECT(
							((BgL_getfieldz00_bglt) BgL_nodez00_3560)))->BgL_ftypez00);
				return
					BGl_convertz12z12zzcoerce_convertz00(
					((BgL_nodez00_bglt)
						((BgL_getfieldz00_bglt) BgL_nodez00_3560)), BgL_arg1547z00_3995,
					((BgL_typez00_bglt) BgL_toz00_3562), CBOOL(BgL_safez00_3563));
			}
		}

	}



/* &coerce!-widening1307 */
	BgL_nodez00_bglt BGl_z62coercez12zd2widening1307za2zzcoerce_coercez00(obj_t
		BgL_envz00_3564, obj_t BgL_nodez00_3565, obj_t BgL_callerz00_3566,
		obj_t BgL_toz00_3567, obj_t BgL_safez00_3568)
	{
		{	/* Coerce/coerce.scm 168 */
			{	/* Coerce/coerce.scm 172 */
				obj_t BgL_superz00_3997;

				{	/* Coerce/coerce.scm 172 */
					BgL_typez00_bglt BgL_oz00_3998;

					BgL_oz00_3998 =
						((BgL_typez00_bglt)
						(((BgL_wideningz00_bglt) COBJECT(
									((BgL_wideningz00_bglt) BgL_nodez00_3565)))->BgL_otypez00));
					{
						BgL_tclassz00_bglt BgL_auxz00_5375;

						{
							obj_t BgL_auxz00_5376;

							{	/* Coerce/coerce.scm 172 */
								BgL_objectz00_bglt BgL_tmpz00_5377;

								BgL_tmpz00_5377 = ((BgL_objectz00_bglt) BgL_oz00_3998);
								BgL_auxz00_5376 = BGL_OBJECT_WIDENING(BgL_tmpz00_5377);
							}
							BgL_auxz00_5375 = ((BgL_tclassz00_bglt) BgL_auxz00_5376);
						}
						BgL_superz00_3997 =
							(((BgL_tclassz00_bglt) COBJECT(BgL_auxz00_5375))->
							BgL_itszd2superzd2);
					}
				}
				{	/* Coerce/coerce.scm 173 */
					obj_t BgL_arg1494z00_3999;
					BgL_nodez00_bglt BgL_arg1496z00_4000;

					BgL_arg1494z00_3999 =
						(((BgL_externz00_bglt) COBJECT(
								((BgL_externz00_bglt)
									((BgL_wideningz00_bglt) BgL_nodez00_3565))))->BgL_exprza2za2);
					{	/* Coerce/coerce.scm 173 */
						obj_t BgL_arg1497z00_4001;

						{	/* Coerce/coerce.scm 173 */
							obj_t BgL_pairz00_4002;

							BgL_pairz00_4002 =
								(((BgL_externz00_bglt) COBJECT(
										((BgL_externz00_bglt)
											((BgL_wideningz00_bglt) BgL_nodez00_3565))))->
								BgL_exprza2za2);
							BgL_arg1497z00_4001 = CAR(BgL_pairz00_4002);
						}
						BgL_arg1496z00_4000 =
							BGl_coercez12z12zzcoerce_coercez00(
							((BgL_nodez00_bglt) BgL_arg1497z00_4001), BgL_callerz00_3566,
							((BgL_typez00_bglt) BgL_superz00_3997), CBOOL(BgL_safez00_3568));
					}
					{	/* Coerce/coerce.scm 173 */
						obj_t BgL_auxz00_5395;
						obj_t BgL_tmpz00_5393;

						BgL_auxz00_5395 = ((obj_t) BgL_arg1496z00_4000);
						BgL_tmpz00_5393 = ((obj_t) BgL_arg1494z00_3999);
						SET_CAR(BgL_tmpz00_5393, BgL_auxz00_5395);
					}
				}
				return
					BGl_convertz12z12zzcoerce_convertz00(
					((BgL_nodez00_bglt)
						((BgL_wideningz00_bglt) BgL_nodez00_3565)),
					((BgL_typez00_bglt) BGl_za2objza2z00zztype_cachez00),
					((BgL_typez00_bglt) BgL_toz00_3567), CBOOL(BgL_safez00_3568));
			}
		}

	}



/* &coerce!-extern1305 */
	BgL_nodez00_bglt BGl_z62coercez12zd2extern1305za2zzcoerce_coercez00(obj_t
		BgL_envz00_3569, obj_t BgL_nodez00_3570, obj_t BgL_callerz00_3571,
		obj_t BgL_toz00_3572, obj_t BgL_safez00_3573)
	{
		{	/* Coerce/coerce.scm 155 */
			{
				obj_t BgL_valuesz00_4005;

				BgL_valuesz00_4005 =
					(((BgL_externz00_bglt) COBJECT(
							((BgL_externz00_bglt) BgL_nodez00_3570)))->BgL_exprza2za2);
			BgL_loopz00_4004:
				if (NULLP(BgL_valuesz00_4005))
					{	/* Coerce/coerce.scm 159 */
						BgL_typez00_bglt BgL_arg1479z00_4006;

						BgL_arg1479z00_4006 =
							BGl_getzd2typezd2zztype_typeofz00(
							((BgL_nodez00_bglt)
								((BgL_externz00_bglt) BgL_nodez00_3570)), ((bool_t) 0));
						return
							BGl_convertz12z12zzcoerce_convertz00(
							((BgL_nodez00_bglt)
								((BgL_externz00_bglt) BgL_nodez00_3570)), BgL_arg1479z00_4006,
							((BgL_typez00_bglt) BgL_toz00_3572), CBOOL(BgL_safez00_3573));
					}
				else
					{	/* Coerce/coerce.scm 160 */
						obj_t BgL_vz00_4007;

						BgL_vz00_4007 = CAR(((obj_t) BgL_valuesz00_4005));
						{	/* Coerce/coerce.scm 160 */
							BgL_nodez00_bglt BgL_nvz00_4008;

							{	/* Coerce/coerce.scm 161 */
								BgL_typez00_bglt BgL_arg1492z00_4009;

								BgL_arg1492z00_4009 =
									BGl_getzd2typezd2zztype_typeofz00(
									((BgL_nodez00_bglt) BgL_vz00_4007), ((bool_t) 0));
								BgL_nvz00_4008 =
									BGl_coercez12z12zzcoerce_coercez00(
									((BgL_nodez00_bglt) BgL_vz00_4007), BgL_callerz00_3571,
									BgL_arg1492z00_4009, CBOOL(BgL_safez00_3573));
							}
							{	/* Coerce/coerce.scm 161 */

								{	/* Coerce/coerce.scm 162 */
									obj_t BgL_auxz00_5423;
									obj_t BgL_tmpz00_5421;

									BgL_auxz00_5423 = ((obj_t) BgL_nvz00_4008);
									BgL_tmpz00_5421 = ((obj_t) BgL_valuesz00_4005);
									SET_CAR(BgL_tmpz00_5421, BgL_auxz00_5423);
								}
								{	/* Coerce/coerce.scm 163 */
									obj_t BgL_arg1491z00_4010;

									BgL_arg1491z00_4010 = CDR(((obj_t) BgL_valuesz00_4005));
									{
										obj_t BgL_valuesz00_5428;

										BgL_valuesz00_5428 = BgL_arg1491z00_4010;
										BgL_valuesz00_4005 = BgL_valuesz00_5428;
										goto BgL_loopz00_4004;
									}
								}
							}
						}
					}
			}
		}

	}



/* &coerce!-sync1303 */
	BgL_nodez00_bglt BGl_z62coercez12zd2sync1303za2zzcoerce_coercez00(obj_t
		BgL_envz00_3574, obj_t BgL_nodez00_3575, obj_t BgL_callerz00_3576,
		obj_t BgL_toz00_3577, obj_t BgL_safez00_3578)
	{
		{	/* Coerce/coerce.scm 144 */
			{
				BgL_nodez00_bglt BgL_auxz00_5431;

				{	/* Coerce/coerce.scm 146 */
					BgL_nodez00_bglt BgL_arg1437z00_4012;

					BgL_arg1437z00_4012 =
						(((BgL_syncz00_bglt) COBJECT(
								((BgL_syncz00_bglt) BgL_nodez00_3575)))->BgL_mutexz00);
					BgL_auxz00_5431 =
						BGl_coercez12z12zzcoerce_coercez00(BgL_arg1437z00_4012,
						BgL_callerz00_3576,
						((BgL_typez00_bglt) BGl_za2mutexza2z00zztype_cachez00),
						CBOOL(BgL_safez00_3578));
				}
				((((BgL_syncz00_bglt) COBJECT(
								((BgL_syncz00_bglt) BgL_nodez00_3575)))->BgL_mutexz00) =
					((BgL_nodez00_bglt) BgL_auxz00_5431), BUNSPEC);
			}
			{
				BgL_nodez00_bglt BgL_auxz00_5439;

				{	/* Coerce/coerce.scm 147 */
					BgL_nodez00_bglt BgL_arg1450z00_4013;

					BgL_arg1450z00_4013 =
						(((BgL_syncz00_bglt) COBJECT(
								((BgL_syncz00_bglt) BgL_nodez00_3575)))->BgL_prelockz00);
					BgL_auxz00_5439 =
						BGl_coercez12z12zzcoerce_coercez00(BgL_arg1450z00_4013,
						BgL_callerz00_3576,
						((BgL_typez00_bglt) BGl_za2pairzd2nilza2zd2zztype_cachez00),
						CBOOL(BgL_safez00_3578));
				}
				((((BgL_syncz00_bglt) COBJECT(
								((BgL_syncz00_bglt) BgL_nodez00_3575)))->BgL_prelockz00) =
					((BgL_nodez00_bglt) BgL_auxz00_5439), BUNSPEC);
			}
			{
				BgL_nodez00_bglt BgL_auxz00_5447;

				{	/* Coerce/coerce.scm 148 */
					BgL_nodez00_bglt BgL_arg1451z00_4014;

					BgL_arg1451z00_4014 =
						(((BgL_syncz00_bglt) COBJECT(
								((BgL_syncz00_bglt) BgL_nodez00_3575)))->BgL_bodyz00);
					BgL_auxz00_5447 =
						BGl_coercez12z12zzcoerce_coercez00(BgL_arg1451z00_4014,
						BgL_callerz00_3576, ((BgL_typez00_bglt) BgL_toz00_3577),
						CBOOL(BgL_safez00_3578));
				}
				((((BgL_syncz00_bglt) COBJECT(
								((BgL_syncz00_bglt) BgL_nodez00_3575)))->BgL_bodyz00) =
					((BgL_nodez00_bglt) BgL_auxz00_5447), BUNSPEC);
			}
			{
				BgL_typez00_bglt BgL_auxz00_5455;

				{	/* Coerce/coerce.scm 149 */
					BgL_typez00_bglt BgL_arg1452z00_4015;

					BgL_arg1452z00_4015 =
						(((BgL_nodez00_bglt) COBJECT(
								((BgL_nodez00_bglt)
									((BgL_syncz00_bglt) BgL_nodez00_3575))))->BgL_typez00);
					BgL_auxz00_5455 =
						BGl_strictzd2nodezd2typez00zzast_nodez00(
						((BgL_typez00_bglt) BgL_toz00_3577), BgL_arg1452z00_4015);
				}
				((((BgL_nodez00_bglt) COBJECT(
								((BgL_nodez00_bglt)
									((BgL_syncz00_bglt) BgL_nodez00_3575))))->BgL_typez00) =
					((BgL_typez00_bglt) BgL_auxz00_5455), BUNSPEC);
			}
			return ((BgL_nodez00_bglt) ((BgL_syncz00_bglt) BgL_nodez00_3575));
		}

	}



/* &coerce!-sequence1301 */
	BgL_nodez00_bglt BGl_z62coercez12zd2sequence1301za2zzcoerce_coercez00(obj_t
		BgL_envz00_3579, obj_t BgL_nodez00_3580, obj_t BgL_callerz00_3581,
		obj_t BgL_toz00_3582, obj_t BgL_safez00_3583)
	{
		{	/* Coerce/coerce.scm 127 */
			{	/* Coerce/coerce.scm 129 */
				obj_t BgL_sz00_4017;

				if (
					(((BgL_sequencez00_bglt) COBJECT(
								((BgL_sequencez00_bglt) BgL_nodez00_3580)))->BgL_unsafez00))
					{	/* Coerce/coerce.scm 129 */
						BgL_sz00_4017 = BFALSE;
					}
				else
					{	/* Coerce/coerce.scm 129 */
						BgL_sz00_4017 = BgL_safez00_3583;
					}
				{
					obj_t BgL_nodesz00_4019;

					{	/* Coerce/coerce.scm 130 */
						obj_t BgL_arg1377z00_4026;

						BgL_arg1377z00_4026 =
							(((BgL_sequencez00_bglt) COBJECT(
									((BgL_sequencez00_bglt) BgL_nodez00_3580)))->BgL_nodesz00);
						{
							BgL_sequencez00_bglt BgL_auxz00_5471;

							BgL_nodesz00_4019 = BgL_arg1377z00_4026;
						BgL_loopz00_4018:
							{	/* Coerce/coerce.scm 131 */
								obj_t BgL_nz00_4020;

								BgL_nz00_4020 = CAR(((obj_t) BgL_nodesz00_4019));
								if (NULLP(CDR(((obj_t) BgL_nodesz00_4019))))
									{	/* Coerce/coerce.scm 132 */
										{	/* Coerce/coerce.scm 134 */
											BgL_nodez00_bglt BgL_arg1397z00_4021;

											BgL_arg1397z00_4021 =
												BGl_coercez12z12zzcoerce_coercez00(
												((BgL_nodez00_bglt) BgL_nz00_4020), BgL_callerz00_3581,
												((BgL_typez00_bglt) BgL_toz00_3582),
												CBOOL(BgL_sz00_4017));
											{	/* Coerce/coerce.scm 134 */
												obj_t BgL_auxz00_5484;
												obj_t BgL_tmpz00_5482;

												BgL_auxz00_5484 = ((obj_t) BgL_arg1397z00_4021);
												BgL_tmpz00_5482 = ((obj_t) BgL_nodesz00_4019);
												SET_CAR(BgL_tmpz00_5482, BgL_auxz00_5484);
											}
										}
										{
											BgL_typez00_bglt BgL_auxz00_5487;

											{	/* Coerce/coerce.scm 135 */
												BgL_typez00_bglt BgL_arg1407z00_4022;

												BgL_arg1407z00_4022 =
													(((BgL_nodez00_bglt) COBJECT(
															((BgL_nodez00_bglt)
																((BgL_sequencez00_bglt) BgL_nodez00_3580))))->
													BgL_typez00);
												BgL_auxz00_5487 =
													BGl_strictzd2nodezd2typez00zzast_nodez00((
														(BgL_typez00_bglt) BgL_toz00_3582),
													BgL_arg1407z00_4022);
											}
											((((BgL_nodez00_bglt) COBJECT(
															((BgL_nodez00_bglt)
																((BgL_sequencez00_bglt) BgL_nodez00_3580))))->
													BgL_typez00) =
												((BgL_typez00_bglt) BgL_auxz00_5487), BUNSPEC);
										}
										BgL_auxz00_5471 = ((BgL_sequencez00_bglt) BgL_nodez00_3580);
									}
								else
									{	/* Coerce/coerce.scm 132 */
										{	/* Coerce/coerce.scm 138 */
											BgL_nodez00_bglt BgL_arg1408z00_4023;

											{	/* Coerce/coerce.scm 138 */
												BgL_typez00_bglt BgL_arg1420z00_4024;

												BgL_arg1420z00_4024 =
													BGl_getzd2typezd2zztype_typeofz00(
													((BgL_nodez00_bglt) BgL_nz00_4020), ((bool_t) 0));
												BgL_arg1408z00_4023 =
													BGl_coercez12z12zzcoerce_coercez00(
													((BgL_nodez00_bglt) BgL_nz00_4020),
													BgL_callerz00_3581, BgL_arg1420z00_4024,
													CBOOL(BgL_sz00_4017));
											}
											{	/* Coerce/coerce.scm 138 */
												obj_t BgL_auxz00_5504;
												obj_t BgL_tmpz00_5502;

												BgL_auxz00_5504 = ((obj_t) BgL_arg1408z00_4023);
												BgL_tmpz00_5502 = ((obj_t) BgL_nodesz00_4019);
												SET_CAR(BgL_tmpz00_5502, BgL_auxz00_5504);
											}
										}
										{	/* Coerce/coerce.scm 139 */
											obj_t BgL_arg1431z00_4025;

											BgL_arg1431z00_4025 = CDR(((obj_t) BgL_nodesz00_4019));
											{
												obj_t BgL_nodesz00_5509;

												BgL_nodesz00_5509 = BgL_arg1431z00_4025;
												BgL_nodesz00_4019 = BgL_nodesz00_5509;
												goto BgL_loopz00_4018;
											}
										}
									}
							}
							return ((BgL_nodez00_bglt) BgL_auxz00_5471);
						}
					}
				}
			}
		}

	}



/* &coerce!-closure1299 */
	BgL_nodez00_bglt BGl_z62coercez12zd2closure1299za2zzcoerce_coercez00(obj_t
		BgL_envz00_3584, obj_t BgL_nodez00_3585, obj_t BgL_callerz00_3586,
		obj_t BgL_toz00_3587, obj_t BgL_safez00_3588)
	{
		{	/* Coerce/coerce.scm 121 */
			{	/* Coerce/coerce.scm 122 */
				obj_t BgL_arg1376z00_4028;

				BgL_arg1376z00_4028 =
					BGl_shapez00zztools_shapez00(
					((obj_t) ((BgL_closurez00_bglt) BgL_nodez00_3585)));
				return
					((BgL_nodez00_bglt)
					BGl_internalzd2errorzd2zztools_errorz00
					(BGl_string2095z00zzcoerce_coercez00,
						BGl_string2127z00zzcoerce_coercez00, BgL_arg1376z00_4028));
			}
		}

	}



/* &coerce!-var1297 */
	BgL_nodez00_bglt BGl_z62coercez12zd2var1297za2zzcoerce_coercez00(obj_t
		BgL_envz00_3589, obj_t BgL_nodez00_3590, obj_t BgL_callerz00_3591,
		obj_t BgL_toz00_3592, obj_t BgL_safez00_3593)
	{
		{	/* Coerce/coerce.scm 106 */
			{	/* Coerce/coerce.scm 108 */
				BgL_typez00_bglt BgL_ntypez00_4030;
				BgL_typez00_bglt BgL_vtypez00_4031;

				BgL_ntypez00_4030 =
					BGl_getzd2typezd2zztype_typeofz00(
					((BgL_nodez00_bglt)
						((BgL_varz00_bglt) BgL_nodez00_3590)), ((bool_t) 0));
				BgL_vtypez00_4031 =
					(((BgL_variablez00_bglt) COBJECT(
							(((BgL_varz00_bglt) COBJECT(
										((BgL_varz00_bglt) BgL_nodez00_3590)))->BgL_variablez00)))->
					BgL_typez00);
				if ((((obj_t) BgL_vtypez00_4031) == BgL_toz00_3592))
					{	/* Coerce/coerce.scm 111 */
						return ((BgL_nodez00_bglt) ((BgL_varz00_bglt) BgL_nodez00_3590));
					}
				else
					{	/* Coerce/coerce.scm 111 */
						if ((((obj_t) BgL_ntypez00_4030) == ((obj_t) BgL_vtypez00_4031)))
							{	/* Coerce/coerce.scm 113 */
								return
									BGl_convertz12z12zzcoerce_convertz00(
									((BgL_nodez00_bglt)
										((BgL_varz00_bglt) BgL_nodez00_3590)), BgL_ntypez00_4030,
									((BgL_typez00_bglt) BgL_toz00_3592), CBOOL(BgL_safez00_3593));
							}
						else
							{	/* Coerce/coerce.scm 116 */
								BgL_nodez00_bglt BgL_arg1374z00_4032;

								BgL_arg1374z00_4032 =
									BGl_convertz12z12zzcoerce_convertz00(
									((BgL_nodez00_bglt)
										((BgL_varz00_bglt) BgL_nodez00_3590)), BgL_vtypez00_4031,
									BgL_ntypez00_4030, ((bool_t) 0));
								return BGl_convertz12z12zzcoerce_convertz00(BgL_arg1374z00_4032,
									BgL_ntypez00_4030, ((BgL_typez00_bglt) BgL_toz00_3592),
									CBOOL(BgL_safez00_3593));
							}
					}
			}
		}

	}



/* &coerce!-kwote1295 */
	BgL_nodez00_bglt BGl_z62coercez12zd2kwote1295za2zzcoerce_coercez00(obj_t
		BgL_envz00_3594, obj_t BgL_nodez00_3595, obj_t BgL_callerz00_3596,
		obj_t BgL_toz00_3597, obj_t BgL_safez00_3598)
	{
		{	/* Coerce/coerce.scm 91 */
			{	/* Coerce/coerce.scm 92 */
				BgL_typez00_bglt BgL_arg1373z00_4034;

				BgL_arg1373z00_4034 =
					BGl_getzd2typezd2zztype_typeofz00(
					((BgL_nodez00_bglt)
						((BgL_kwotez00_bglt) BgL_nodez00_3595)), ((bool_t) 0));
				return
					BGl_convertz12z12zzcoerce_convertz00(
					((BgL_nodez00_bglt)
						((BgL_kwotez00_bglt) BgL_nodez00_3595)), BgL_arg1373z00_4034,
					((BgL_typez00_bglt) BgL_toz00_3597), CBOOL(BgL_safez00_3598));
			}
		}

	}



/* &coerce!-atom1293 */
	BgL_nodez00_bglt BGl_z62coercez12zd2atom1293za2zzcoerce_coercez00(obj_t
		BgL_envz00_3599, obj_t BgL_nodez00_3600, obj_t BgL_callerz00_3601,
		obj_t BgL_toz00_3602, obj_t BgL_safez00_3603)
	{
		{	/* Coerce/coerce.scm 85 */
			{	/* Coerce/coerce.scm 86 */
				BgL_typez00_bglt BgL_arg1372z00_4036;

				BgL_arg1372z00_4036 =
					BGl_getzd2typezd2zztype_typeofz00(
					((BgL_nodez00_bglt)
						((BgL_atomz00_bglt) BgL_nodez00_3600)), ((bool_t) 0));
				return
					BGl_convertz12z12zzcoerce_convertz00(
					((BgL_nodez00_bglt)
						((BgL_atomz00_bglt) BgL_nodez00_3600)), BgL_arg1372z00_4036,
					((BgL_typez00_bglt) BgL_toz00_3602), CBOOL(BgL_safez00_3603));
			}
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zzcoerce_coercez00(void)
	{
		{	/* Coerce/coerce.scm 15 */
			BGl_modulezd2initializa7ationz75zztools_tracez00(54713316L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			BGl_modulezd2initializa7ationz75zzengine_paramz00(517137079L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			BGl_modulezd2initializa7ationz75zztools_shapez00(365925558L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			BGl_modulezd2initializa7ationz75zztools_errorz00(300504031L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			BGl_modulezd2initializa7ationz75zztype_typez00(515343395L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			BGl_modulezd2initializa7ationz75zztype_cachez00(346491734L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			BGl_modulezd2initializa7ationz75zztype_coercionz00(116865673L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			BGl_modulezd2initializa7ationz75zztype_typeofz00(398780265L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			BGl_modulezd2initializa7ationz75zztype_miscz00(49975086L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			BGl_modulezd2initializa7ationz75zzobject_classz00(502007119L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			BGl_modulezd2initializa7ationz75zzast_varz00(90839984L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			BGl_modulezd2initializa7ationz75zzast_nodez00(469732712L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			BGl_modulezd2initializa7ationz75zzast_dumpz00(271707717L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			BGl_modulezd2initializa7ationz75zzcoerce_pprotoz00(44915300L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			BGl_modulezd2initializa7ationz75zzcoerce_convertz00(87995645L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			BGl_modulezd2initializa7ationz75zzcoerce_appz00(419328946L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			BGl_modulezd2initializa7ationz75zzcoerce_applyz00(435902431L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			BGl_modulezd2initializa7ationz75zzcoerce_funcallz00(40876382L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
			return
				BGl_modulezd2initializa7ationz75zzeffect_effectz00(460136018L,
				BSTRING_TO_STRING(BGl_string2128z00zzcoerce_coercez00));
		}

	}

#ifdef __cplusplus
}
#endif
