/*===========================================================================*/
/*   (Coerce/convert.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/convert.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_CONVERT_TYPE_DEFINITIONS
#define BGL_COERCE_CONVERT_TYPE_DEFINITIONS

/* object type definitions */
	typedef struct BgL_typez00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_idz00;
		obj_t BgL_namez00;
		obj_t BgL_siza7eza7;
		obj_t BgL_classz00;
		obj_t BgL_coercezd2tozd2;
		obj_t BgL_parentsz00;
		bool_t BgL_initzf3zf3;
		bool_t BgL_magiczf3zf3;
		obj_t BgL_z42z42;
		obj_t BgL_aliasz00;
		obj_t BgL_pointedzd2tozd2byz00;
		obj_t BgL_tvectorz00;
		obj_t BgL_locationz00;
		obj_t BgL_importzd2locationzd2;
		int BgL_occurrencez00;
	}              *BgL_typez00_bglt;

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

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

	typedef struct BgL_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_nodez00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
	}              *BgL_nodez00_bglt;

	typedef struct BgL_nodezf2effectzf2_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;
	}                       *BgL_nodezf2effectzf2_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_literalz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		obj_t BgL_valuez00;
	}                 *BgL_literalz00_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_refz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_variablez00_bgl *BgL_variablez00;
	}             *BgL_refz00_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_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_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_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;


#endif													// BGL_COERCE_CONVERT_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	extern obj_t BGl_za2uint32za2z00zztype_cachez00;
	extern obj_t BGl_za2uint16za2z00zztype_cachez00;
	extern obj_t BGl_za2intza2z00zztype_cachez00;
	extern obj_t BGl_locationzd2fullzd2fnamez00zztools_locationz00(obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zzcoerce_convertz00 = BUNSPEC;
	extern obj_t BGl_makezd2typedzd2identz00zzast_identz00(obj_t, obj_t);
	extern obj_t BGl_userzd2errorzf2locationz20zztools_errorz00(obj_t, obj_t,
		obj_t, obj_t, obj_t);
	BGL_IMPORT obj_t BGl_za2classesza2z00zz__objectz00;
	extern obj_t BGl_tclassz00zzobject_classz00;
	BGL_IMPORT obj_t BGl_warningz00zz__errorz00(obj_t);
	static BgL_nodez00_bglt BGl_dozd2convertzd2zzcoerce_convertz00(obj_t,
		BgL_nodez00_bglt, BgL_typez00_bglt);
	static obj_t BGl_toplevelzd2initzd2zzcoerce_convertz00(void);
	extern obj_t BGl_sequencez00zzast_nodez00;
	BGL_IMPORT obj_t BGl_formatz00zz__r4_output_6_10_3z00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_getzd2stackzd2checkz00zzcoerce_convertz00(void);
	static obj_t BGl_z62getzd2stackzd2checkz62zzcoerce_convertz00(obj_t);
	extern obj_t BGl_internalzd2errorzd2zztools_errorz00(obj_t, obj_t, obj_t);
	static obj_t BGl_notifyzd2typezd2testz00zzcoerce_convertz00(obj_t, obj_t,
		obj_t);
	extern obj_t BGl_lvtypezd2nodez12zc0zzast_lvtypez00(BgL_nodez00_bglt);
	static long BGl_za2notifyzd2counterza2zd2zzcoerce_convertz00;
	extern obj_t BGl_letzd2varzd2zzast_nodez00;
	static obj_t BGl_genericzd2initzd2zzcoerce_convertz00(void);
	BGL_IMPORT obj_t BGl_stringzd2copyzd2zz__r4_strings_6_7z00(obj_t);
	static obj_t BGl_objectzd2initzd2zzcoerce_convertz00(void);
	static BgL_nodez00_bglt
		BGl_makezd2onezd2conversionz00zzcoerce_convertz00(obj_t, obj_t, obj_t,
		obj_t, BgL_nodez00_bglt, bool_t);
	extern obj_t BGl_za2boolza2z00zztype_cachez00;
	extern obj_t BGl_castz00zzast_nodez00;
	static BgL_nodez00_bglt
		BGl_makezd2onezd2typezd2conversionzd2zzcoerce_convertz00(obj_t, obj_t,
		obj_t, obj_t, BgL_nodez00_bglt);
	extern obj_t BGl_shapez00zztools_shapez00(obj_t);
	BGL_IMPORT obj_t BGl_za2inheritancesza2z00zz__objectz00;
	extern obj_t BGl_za2longza2z00zztype_cachez00;
	static long BGl_za2checkza2z00zzcoerce_convertz00;
	extern bool_t BGl_subzd2typezf3z21zztype_envz00(BgL_typez00_bglt,
		BgL_typez00_bglt);
	extern obj_t BGl_za2uint64za2z00zztype_cachez00;
	BGL_IMPORT obj_t BGl_warningzf2locationzf2zz__errorz00(obj_t, obj_t, obj_t);
	BGL_IMPORT obj_t bstring_to_symbol(obj_t);
	static obj_t BGl_notifiedzd2locationszd2zzcoerce_convertz00 = BUNSPEC;
	extern obj_t BGl_za2stringza2z00zztype_cachez00;
	BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t, obj_t);
	extern obj_t BGl_refz00zzast_nodez00;
	extern obj_t BGl_za2warningzd2typesza2zd2zzengine_paramz00;
	BGL_IMPORT obj_t BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_convertzd2errorzd2zzcoerce_convertz00(BgL_typez00_bglt,
		BgL_typez00_bglt, obj_t, BgL_nodez00_bglt);
	static obj_t BGl_methodzd2initzd2zzcoerce_convertz00(void);
	static BgL_nodez00_bglt
		BGl_makezd2onezd2classzd2conversionzd2zzcoerce_convertz00(obj_t, obj_t,
		obj_t, obj_t, BgL_nodez00_bglt);
	static obj_t BGl_z62runtimezd2typezd2errorz62zzcoerce_convertz00(obj_t, obj_t,
		obj_t, obj_t);
	extern BgL_nodez00_bglt
		BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00(obj_t, obj_t);
	extern obj_t BGl_za2realza2z00zztype_cachez00;
	BGL_IMPORT obj_t string_append(obj_t, obj_t);
	extern obj_t BGl_varz00zzast_nodez00;
	extern BgL_typez00_bglt
		BGl_strictzd2nodezd2typez00zzast_nodez00(BgL_typez00_bglt,
		BgL_typez00_bglt);
	extern obj_t BGl_za2int32za2z00zztype_cachez00;
	extern obj_t BGl_za2int16za2z00zztype_cachez00;
	extern obj_t BGl_za2uint8za2z00zztype_cachez00;
	extern obj_t BGl_za2objza2z00zztype_cachez00;
	extern obj_t BGl_findzd2coercerzd2zztype_coercionz00(BgL_typez00_bglt,
		BgL_typez00_bglt);
	extern obj_t BGl_za2scharza2z00zztype_cachez00;
	BGL_EXPORTED_DEF obj_t BGl_za2notifyzd2typezd2testza2z00zzcoerce_convertz00 =
		BUNSPEC;
	extern BgL_nodez00_bglt BGl_coercez12z12zzcoerce_coercez00(BgL_nodez00_bglt,
		obj_t, BgL_typez00_bglt, bool_t);
	BGL_EXPORTED_DECL obj_t
		BGl_modulezd2initializa7ationz75zzcoerce_convertz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzeffect_spreadz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzcoerce_coercez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzobject_classz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_dumpz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_lvtypez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_identz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_sexpz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_envz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_coercionz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_miscz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_errorz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_locationz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzbackend_backendz00(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_symbols_6_4z00(long,
		char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(long, char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__structurez00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__biglooz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__paramz00(long, char *);
	static BgL_nodez00_bglt BGl_z62convertz12z70zzcoerce_convertz00(obj_t, obj_t,
		obj_t, obj_t, obj_t);
	extern obj_t BGl_za2elongza2z00zztype_cachez00;
	extern bool_t BGl_typezd2subclasszf3z21zzobject_classz00(BgL_typez00_bglt,
		BgL_typez00_bglt);
	extern obj_t BGl_za2int8za2z00zztype_cachez00;
	static obj_t BGl_cnstzd2initzd2zzcoerce_convertz00(void);
	static obj_t BGl_libraryzd2moduleszd2initz00zzcoerce_convertz00(void);
	static obj_t BGl_runtimezd2typezd2errorzf2idzf2zzcoerce_convertz00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_importedzd2moduleszd2initz00zzcoerce_convertz00(void);
	static obj_t BGl_gczd2rootszd2initz00zzcoerce_convertz00(void);
	extern obj_t BGl_za2llongza2z00zztype_cachez00;
	BGL_IMPORT obj_t BGl_bigloozd2typezd2errorzd2msgzd2zz__errorz00(obj_t, obj_t,
		obj_t);
	extern obj_t BGl_currentzd2functionzd2zztools_errorz00(void);
	extern obj_t BGl_za2int64za2z00zztype_cachez00;
	static BgL_nodez00_bglt
		BGl_skipzd2letzd2varz00zzcoerce_convertz00(BgL_nodez00_bglt);
	extern obj_t BGl_userzd2warningzf2locationz20zztools_errorz00(obj_t, obj_t,
		obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_runtimezd2typezd2errorz00zzcoerce_convertz00(obj_t, obj_t,
		BgL_nodez00_bglt);
	BGL_IMPORT obj_t BGl_gensymz00zz__r4_symbols_6_4z00(obj_t);
	extern obj_t BGl_literalz00zzast_nodez00;
	extern obj_t BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(obj_t);
	BGL_IMPORT int BGl_bigloozd2tracezd2stackzd2depthzd2zz__paramz00(void);
	BGL_EXPORTED_DECL BgL_nodez00_bglt
		BGl_convertz12z12zzcoerce_convertz00(BgL_nodez00_bglt, BgL_typez00_bglt,
		BgL_typez00_bglt, bool_t);
	extern bool_t
		BGl_spreadzd2sidezd2effectz12z12zzeffect_spreadz00(BgL_nodez00_bglt);
	extern BgL_typez00_bglt
		BGl_getzd2aliasedzd2typez00zztype_typez00(BgL_typez00_bglt);
	BGL_IMPORT obj_t
		BGl_bigloozd2tracezd2stackzd2depthzd2setz12z12zz__paramz00(int);
	BGL_IMPORT obj_t BGl_memberz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
	extern obj_t BGl_za2warningzd2typezd2errorza2z00zzengine_paramz00;
	extern obj_t BGl_za2charza2z00zztype_cachez00;
	static obj_t __cnst[11];


	   
		 
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_runtimezd2typezd2errorzd2envzd2zzcoerce_convertz00,
		BgL_bgl_za762runtimeza7d2typ2013z00,
		BGl_z62runtimezd2typezd2errorz62zzcoerce_convertz00, 0L, BUNSPEC, 3);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_convertz12zd2envzc0zzcoerce_convertz00,
		BgL_bgl_za762convertza712za7702014za7,
		BGl_z62convertz12z70zzcoerce_convertz00, 0L, BUNSPEC, 4);
	      DEFINE_REAL(BGl_real2008z00zzcoerce_convertz00,
		BgL_bgl_real2008za700za7za7coe2015za7, 0.0);
	      DEFINE_STRING(BGl_string2005z00zzcoerce_convertz00,
		BgL_bgl_string2005za700za7za7c2016za7,
		" ~a. Type test inserted \"~a\" -> \"~a\"", 36);
	      DEFINE_STRING(BGl_string2006z00zzcoerce_convertz00,
		BgL_bgl_string2006za700za7za7c2017za7, "", 0);
	      DEFINE_STRING(BGl_string2007z00zzcoerce_convertz00,
		BgL_bgl_string2007za700za7za7c2018za7, "Type error", 10);
	      DEFINE_STRING(BGl_string2009z00zzcoerce_convertz00,
		BgL_bgl_string2009za700za7za7c2019za7, "Illegal conversion", 18);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_getzd2stackzd2checkzd2envzd2zzcoerce_convertz00,
		BgL_bgl_za762getza7d2stackza7d2020za7,
		BGl_z62getzd2stackzd2checkz62zzcoerce_convertz00, 0L, BUNSPEC, 0);
	      DEFINE_STRING(BGl_string2010z00zzcoerce_convertz00,
		BgL_bgl_string2010za700za7za7c2021za7, "coerce_convert", 14);
	      DEFINE_STRING(BGl_string2011z00zzcoerce_convertz00,
		BgL_bgl_string2011za700za7za7c2022za7,
		"aux2 if coercer let ::obj aux failure @ type-error __error location ", 68);

/* 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_convertz00));
		     ADD_ROOT((void *) (&BGl_notifiedzd2locationszd2zzcoerce_convertz00));
		   
			 ADD_ROOT((void
				*) (&BGl_za2notifyzd2typezd2testza2z00zzcoerce_convertz00));
#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_convertz00(long
		BgL_checksumz00_2798, char *BgL_fromz00_2799)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zzcoerce_convertz00))
				{
					BGl_requirezd2initializa7ationz75zzcoerce_convertz00 =
						BBOOL(((bool_t) 0));
					BGl_gczd2rootszd2initz00zzcoerce_convertz00();
					BGl_libraryzd2moduleszd2initz00zzcoerce_convertz00();
					BGl_cnstzd2initzd2zzcoerce_convertz00();
					BGl_importedzd2moduleszd2initz00zzcoerce_convertz00();
					return BGl_toplevelzd2initzd2zzcoerce_convertz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* library-modules-init */
	obj_t BGl_libraryzd2moduleszd2initz00zzcoerce_convertz00(void)
	{
		{	/* Coerce/convert.scm 16 */
			BGl_modulezd2initializa7ationz75zz__objectz00(0L, "coerce_convert");
			BGl_modulezd2initializa7ationz75zz__errorz00(0L, "coerce_convert");
			BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(0L,
				"coerce_convert");
			BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(0L,
				"coerce_convert");
			BGl_modulezd2initializa7ationz75zz__readerz00(0L, "coerce_convert");
			BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(0L,
				"coerce_convert");
			BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(0L,
				"coerce_convert");
			BGl_modulezd2initializa7ationz75zz__paramz00(0L, "coerce_convert");
			BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(0L,
				"coerce_convert");
			BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(0L,
				"coerce_convert");
			BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(0L,
				"coerce_convert");
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(0L,
				"coerce_convert");
			BGl_modulezd2initializa7ationz75zz__structurez00(0L, "coerce_convert");
			BGl_modulezd2initializa7ationz75zz__biglooz00(0L, "coerce_convert");
			return BUNSPEC;
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zzcoerce_convertz00(void)
	{
		{	/* Coerce/convert.scm 16 */
			{	/* Coerce/convert.scm 16 */
				obj_t BgL_cportz00_2787;

				{	/* Coerce/convert.scm 16 */
					obj_t BgL_stringz00_2794;

					BgL_stringz00_2794 = BGl_string2011z00zzcoerce_convertz00;
					{	/* Coerce/convert.scm 16 */
						obj_t BgL_startz00_2795;

						BgL_startz00_2795 = BINT(0L);
						{	/* Coerce/convert.scm 16 */
							obj_t BgL_endz00_2796;

							BgL_endz00_2796 =
								BINT(STRING_LENGTH(((obj_t) BgL_stringz00_2794)));
							{	/* Coerce/convert.scm 16 */

								BgL_cportz00_2787 =
									BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00
									(BgL_stringz00_2794, BgL_startz00_2795, BgL_endz00_2796);
				}}}}
				{
					long BgL_iz00_2788;

					BgL_iz00_2788 = 10L;
				BgL_loopz00_2789:
					if ((BgL_iz00_2788 == -1L))
						{	/* Coerce/convert.scm 16 */
							return BUNSPEC;
						}
					else
						{	/* Coerce/convert.scm 16 */
							{	/* Coerce/convert.scm 16 */
								obj_t BgL_arg2012z00_2790;

								{	/* Coerce/convert.scm 16 */

									{	/* Coerce/convert.scm 16 */
										obj_t BgL_locationz00_2792;

										BgL_locationz00_2792 = BBOOL(((bool_t) 0));
										{	/* Coerce/convert.scm 16 */

											BgL_arg2012z00_2790 =
												BGl_readz00zz__readerz00(BgL_cportz00_2787,
												BgL_locationz00_2792);
										}
									}
								}
								{	/* Coerce/convert.scm 16 */
									int BgL_tmpz00_2831;

									BgL_tmpz00_2831 = (int) (BgL_iz00_2788);
									CNST_TABLE_SET(BgL_tmpz00_2831, BgL_arg2012z00_2790);
							}}
							{	/* Coerce/convert.scm 16 */
								int BgL_auxz00_2793;

								BgL_auxz00_2793 = (int) ((BgL_iz00_2788 - 1L));
								{
									long BgL_iz00_2836;

									BgL_iz00_2836 = (long) (BgL_auxz00_2793);
									BgL_iz00_2788 = BgL_iz00_2836;
									goto BgL_loopz00_2789;
								}
							}
						}
				}
			}
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zzcoerce_convertz00(void)
	{
		{	/* Coerce/convert.scm 16 */
			return bgl_gc_roots_register();
		}

	}



/* toplevel-init */
	obj_t BGl_toplevelzd2initzd2zzcoerce_convertz00(void)
	{
		{	/* Coerce/convert.scm 16 */
			BGl_za2checkza2z00zzcoerce_convertz00 = 0L;
			BGl_notifiedzd2locationszd2zzcoerce_convertz00 = BNIL;
			BGl_za2notifyzd2typezd2testza2z00zzcoerce_convertz00 = BTRUE;
			return (BGl_za2notifyzd2counterza2zd2zzcoerce_convertz00 = 0L, BUNSPEC);
		}

	}



/* notify-type-test */
	obj_t BGl_notifyzd2typezd2testz00zzcoerce_convertz00(obj_t BgL_fromz00_35,
		obj_t BgL_toz00_36, obj_t BgL_locz00_37)
	{
		{	/* Coerce/convert.scm 59 */
			if (CBOOL(BGl_za2notifyzd2typezd2testza2z00zzcoerce_convertz00))
				{	/* Coerce/convert.scm 61 */
					int BgL_stz00_1770;

					BgL_stz00_1770 = BGl_bigloozd2tracezd2stackzd2depthzd2zz__paramz00();
					BGl_bigloozd2tracezd2stackzd2depthzd2setz12z12zz__paramz00(
						(int) (0L));
					if (CBOOL(BgL_locz00_37))
						{	/* Coerce/convert.scm 64 */
							if (CBOOL(BGl_memberz00zz__r4_pairs_and_lists_6_3z00
									(BgL_locz00_37,
										BGl_notifiedzd2locationszd2zzcoerce_convertz00)))
								{	/* Coerce/convert.scm 69 */
									BFALSE;
								}
							else
								{	/* Coerce/convert.scm 69 */
									BGl_za2notifyzd2counterza2zd2zzcoerce_convertz00 =
										(1L + BGl_za2notifyzd2counterza2zd2zzcoerce_convertz00);
									BGl_notifiedzd2locationszd2zzcoerce_convertz00 =
										MAKE_YOUNG_PAIR(BgL_locz00_37,
										BGl_notifiedzd2locationszd2zzcoerce_convertz00);
									{	/* Coerce/convert.scm 72 */
										obj_t BgL_arg1407z00_1772;
										obj_t BgL_arg1408z00_1773;
										obj_t BgL_arg1420z00_1774;

										BgL_arg1407z00_1772 =
											BGl_locationzd2fullzd2fnamez00zztools_locationz00
											(BgL_locz00_37);
										BgL_arg1408z00_1773 =
											STRUCT_REF(((obj_t) BgL_locz00_37), (int) (1L));
										{	/* Coerce/convert.scm 75 */
											obj_t BgL_arg1431z00_1776;
											obj_t BgL_arg1436z00_1777;

											BgL_arg1431z00_1776 =
												BGl_shapez00zztools_shapez00(BgL_fromz00_35);
											BgL_arg1436z00_1777 =
												BGl_shapez00zztools_shapez00(BgL_toz00_36);
											{	/* Coerce/convert.scm 74 */
												obj_t BgL_list1437z00_1778;

												{	/* Coerce/convert.scm 74 */
													obj_t BgL_arg1450z00_1779;

													{	/* Coerce/convert.scm 74 */
														obj_t BgL_arg1451z00_1780;

														BgL_arg1451z00_1780 =
															MAKE_YOUNG_PAIR(BgL_arg1436z00_1777, BNIL);
														BgL_arg1450z00_1779 =
															MAKE_YOUNG_PAIR(BgL_arg1431z00_1776,
															BgL_arg1451z00_1780);
													}
													BgL_list1437z00_1778 =
														MAKE_YOUNG_PAIR(BINT
														(BGl_za2notifyzd2counterza2zd2zzcoerce_convertz00),
														BgL_arg1450z00_1779);
												}
												BgL_arg1420z00_1774 =
													BGl_formatz00zz__r4_output_6_10_3z00
													(BGl_string2005z00zzcoerce_convertz00,
													BgL_list1437z00_1778);
										}}
										{	/* Coerce/convert.scm 72 */
											obj_t BgL_list1421z00_1775;

											BgL_list1421z00_1775 =
												MAKE_YOUNG_PAIR(BgL_arg1420z00_1774, BNIL);
											BGl_warningzf2locationzf2zz__errorz00(BgL_arg1407z00_1772,
												BgL_arg1408z00_1773, BgL_list1421z00_1775);
						}}}}
					else
						{	/* Coerce/convert.scm 64 */
							BGl_za2notifyzd2counterza2zd2zzcoerce_convertz00 =
								(1L + BGl_za2notifyzd2counterza2zd2zzcoerce_convertz00);
							{	/* Coerce/convert.scm 68 */
								obj_t BgL_arg1452z00_1781;

								{	/* Coerce/convert.scm 68 */
									obj_t BgL_arg1479z00_1783;
									obj_t BgL_arg1491z00_1784;

									BgL_arg1479z00_1783 =
										BGl_shapez00zztools_shapez00(BgL_fromz00_35);
									BgL_arg1491z00_1784 =
										BGl_shapez00zztools_shapez00(BgL_toz00_36);
									{	/* Coerce/convert.scm 67 */
										obj_t BgL_list1492z00_1785;

										{	/* Coerce/convert.scm 67 */
											obj_t BgL_arg1494z00_1786;

											{	/* Coerce/convert.scm 67 */
												obj_t BgL_arg1496z00_1787;

												BgL_arg1496z00_1787 =
													MAKE_YOUNG_PAIR(BgL_arg1491z00_1784, BNIL);
												BgL_arg1494z00_1786 =
													MAKE_YOUNG_PAIR(BgL_arg1479z00_1783,
													BgL_arg1496z00_1787);
											}
											BgL_list1492z00_1785 =
												MAKE_YOUNG_PAIR(BINT
												(BGl_za2notifyzd2counterza2zd2zzcoerce_convertz00),
												BgL_arg1494z00_1786);
										}
										BgL_arg1452z00_1781 =
											BGl_formatz00zz__r4_output_6_10_3z00
											(BGl_string2005z00zzcoerce_convertz00,
											BgL_list1492z00_1785);
									}
								}
								{	/* Coerce/convert.scm 66 */
									obj_t BgL_list1453z00_1782;

									BgL_list1453z00_1782 =
										MAKE_YOUNG_PAIR(BgL_arg1452z00_1781, BNIL);
									BGl_warningz00zz__errorz00(BgL_list1453z00_1782);
								}
							}
						}
					return
						BGl_bigloozd2tracezd2stackzd2depthzd2setz12z12zz__paramz00
						(BgL_stz00_1770);
				}
			else
				{	/* Coerce/convert.scm 60 */
					return BFALSE;
				}
		}

	}



/* get-stack-check */
	BGL_EXPORTED_DEF obj_t BGl_getzd2stackzd2checkz00zzcoerce_convertz00(void)
	{
		{	/* Coerce/convert.scm 88 */
			return BINT(BGl_za2checkza2z00zzcoerce_convertz00);
		}

	}



/* &get-stack-check */
	obj_t BGl_z62getzd2stackzd2checkz62zzcoerce_convertz00(obj_t BgL_envz00_2775)
	{
		{	/* Coerce/convert.scm 88 */
			return BGl_getzd2stackzd2checkz00zzcoerce_convertz00();
		}

	}



/* runtime-type-error/id */
	obj_t BGl_runtimezd2typezd2errorzf2idzf2zzcoerce_convertz00(obj_t
		BgL_locz00_49, obj_t BgL_tiz00_50, obj_t BgL_idz00_51)
	{
		{	/* Coerce/convert.scm 115 */
			{	/* Coerce/convert.scm 117 */
				obj_t BgL_fnamez00_1795;
				obj_t BgL_posz00_1796;

				{	/* Coerce/convert.scm 117 */
					bool_t BgL_test2028z00_2877;

					if (STRUCTP(BgL_locz00_49))
						{	/* Coerce/convert.scm 117 */
							BgL_test2028z00_2877 =
								(STRUCT_KEY(BgL_locz00_49) == CNST_TABLE_REF(0L));
						}
					else
						{	/* Coerce/convert.scm 117 */
							BgL_test2028z00_2877 = ((bool_t) 0);
						}
					if (BgL_test2028z00_2877)
						{	/* Coerce/convert.scm 117 */
							BgL_fnamez00_1795 =
								BGl_locationzd2fullzd2fnamez00zztools_locationz00
								(BgL_locz00_49);
						}
					else
						{	/* Coerce/convert.scm 117 */
							BgL_fnamez00_1795 = BFALSE;
						}
				}
				{	/* Coerce/convert.scm 118 */
					bool_t BgL_test2030z00_2884;

					if (STRUCTP(BgL_locz00_49))
						{	/* Coerce/convert.scm 118 */
							BgL_test2030z00_2884 =
								(STRUCT_KEY(BgL_locz00_49) == CNST_TABLE_REF(0L));
						}
					else
						{	/* Coerce/convert.scm 118 */
							BgL_test2030z00_2884 = ((bool_t) 0);
						}
					if (BgL_test2030z00_2884)
						{	/* Coerce/convert.scm 118 */
							BgL_posz00_1796 = STRUCT_REF(BgL_locz00_49, (int) (1L));
						}
					else
						{	/* Coerce/convert.scm 118 */
							BgL_posz00_1796 = BFALSE;
						}
				}
				{	/* Coerce/convert.scm 120 */
					obj_t BgL_arg1545z00_1797;

					{	/* Coerce/convert.scm 120 */
						obj_t BgL_arg1546z00_1798;
						obj_t BgL_arg1547z00_1799;

						{	/* Coerce/convert.scm 120 */
							obj_t BgL_arg1550z00_1800;
							obj_t BgL_arg1554z00_1801;

							{	/* Coerce/convert.scm 120 */
								obj_t BgL_arg1555z00_1802;

								{	/* Coerce/convert.scm 120 */
									obj_t BgL_arg1560z00_1803;

									BgL_arg1560z00_1803 =
										MAKE_YOUNG_PAIR(CNST_TABLE_REF(1L), BNIL);
									BgL_arg1555z00_1802 =
										MAKE_YOUNG_PAIR(CNST_TABLE_REF(2L), BgL_arg1560z00_1803);
								}
								BgL_arg1550z00_1800 =
									MAKE_YOUNG_PAIR(CNST_TABLE_REF(3L), BgL_arg1555z00_1802);
							}
							{	/* Coerce/convert.scm 121 */
								obj_t BgL_arg1563z00_1804;

								{	/* Coerce/convert.scm 121 */
									obj_t BgL_arg1564z00_1805;

									{	/* Coerce/convert.scm 121 */
										obj_t BgL_arg1565z00_1806;
										obj_t BgL_arg1575z00_1807;

										{	/* Coerce/convert.scm 121 */
											obj_t BgL_arg1576z00_1808;

											BgL_arg1576z00_1808 =
												BGl_currentzd2functionzd2zztools_errorz00();
											{	/* Coerce/convert.scm 121 */
												obj_t BgL_arg1454z00_2325;

												BgL_arg1454z00_2325 =
													SYMBOL_TO_STRING(((obj_t) BgL_arg1576z00_1808));
												BgL_arg1565z00_1806 =
													BGl_stringzd2copyzd2zz__r4_strings_6_7z00
													(BgL_arg1454z00_2325);
											}
										}
										{	/* Coerce/convert.scm 122 */
											obj_t BgL_arg1578z00_1809;
											obj_t BgL_arg1579z00_1810;

											{	/* Coerce/convert.scm 122 */
												obj_t BgL_arg1454z00_2327;

												BgL_arg1454z00_2327 =
													SYMBOL_TO_STRING(((obj_t) BgL_tiz00_50));
												BgL_arg1578z00_1809 =
													BGl_stringzd2copyzd2zz__r4_strings_6_7z00
													(BgL_arg1454z00_2327);
											}
											BgL_arg1579z00_1810 = MAKE_YOUNG_PAIR(BgL_idz00_51, BNIL);
											BgL_arg1575z00_1807 =
												MAKE_YOUNG_PAIR(BgL_arg1578z00_1809,
												BgL_arg1579z00_1810);
										}
										BgL_arg1564z00_1805 =
											MAKE_YOUNG_PAIR(BgL_arg1565z00_1806, BgL_arg1575z00_1807);
									}
									BgL_arg1563z00_1804 =
										MAKE_YOUNG_PAIR(BgL_posz00_1796, BgL_arg1564z00_1805);
								}
								BgL_arg1554z00_1801 =
									MAKE_YOUNG_PAIR(BgL_fnamez00_1795, BgL_arg1563z00_1804);
							}
							BgL_arg1546z00_1798 =
								MAKE_YOUNG_PAIR(BgL_arg1550z00_1800, BgL_arg1554z00_1801);
						}
						{	/* Coerce/convert.scm 119 */
							obj_t BgL_arg1581z00_1811;

							BgL_arg1581z00_1811 = MAKE_YOUNG_PAIR(BFALSE, BNIL);
							BgL_arg1547z00_1799 =
								MAKE_YOUNG_PAIR(BFALSE, BgL_arg1581z00_1811);
						}
						BgL_arg1545z00_1797 =
							MAKE_YOUNG_PAIR(BgL_arg1546z00_1798, BgL_arg1547z00_1799);
					}
					return MAKE_YOUNG_PAIR(CNST_TABLE_REF(4L), BgL_arg1545z00_1797);
				}
			}
		}

	}



/* runtime-type-error */
	BGL_EXPORTED_DEF obj_t BGl_runtimezd2typezd2errorz00zzcoerce_convertz00(obj_t
		BgL_locz00_52, obj_t BgL_tiz00_53, BgL_nodez00_bglt BgL_valuez00_54)
	{
		{	/* Coerce/convert.scm 129 */
			{	/* Coerce/convert.scm 131 */
				obj_t BgL_auxz00_1814;

				BgL_auxz00_1814 =
					BGl_gensymz00zz__r4_symbols_6_4z00(CNST_TABLE_REF(5L));
				{	/* Coerce/convert.scm 131 */
					BgL_nodez00_bglt BgL_uvaluez00_1815;

					{	/* Coerce/convert.scm 132 */
						bool_t BgL_test2032z00_2918;

						{	/* Coerce/convert.scm 132 */
							obj_t BgL_classz00_2328;

							BgL_classz00_2328 = BGl_varz00zzast_nodez00;
							{	/* Coerce/convert.scm 132 */
								BgL_objectz00_bglt BgL_arg1801z00_2330;

								{	/* Coerce/convert.scm 132 */
									obj_t BgL_tmpz00_2919;

									BgL_tmpz00_2919 = ((obj_t) BgL_valuez00_54);
									BgL_arg1801z00_2330 = (BgL_objectz00_bglt) (BgL_tmpz00_2919);
								}
								if (BGL_CONDEXPAND_ISA_ARCH64())
									{	/* Coerce/convert.scm 132 */
										long BgL_idxz00_2336;

										BgL_idxz00_2336 =
											BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_2330);
										BgL_test2032z00_2918 =
											(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
												(BgL_idxz00_2336 + 2L)) == BgL_classz00_2328);
									}
								else
									{	/* Coerce/convert.scm 132 */
										bool_t BgL_res1990z00_2358;

										{	/* Coerce/convert.scm 132 */
											obj_t BgL_oclassz00_2344;

											{	/* Coerce/convert.scm 132 */
												long BgL_arg1808z00_2350;

												{	/* Coerce/convert.scm 132 */
													long BgL_arg1809z00_2351;

													BgL_arg1809z00_2351 =
														BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_2330);
													BgL_arg1808z00_2350 =
														(BgL_arg1809z00_2351 - OBJECT_TYPE);
												}
												BgL_oclassz00_2344 =
													VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
													BgL_arg1808z00_2350);
											}
											{	/* Coerce/convert.scm 132 */
												bool_t BgL__ortest_1115z00_2345;

												BgL__ortest_1115z00_2345 =
													(BgL_classz00_2328 == BgL_oclassz00_2344);
												if (BgL__ortest_1115z00_2345)
													{	/* Coerce/convert.scm 132 */
														BgL_res1990z00_2358 = BgL__ortest_1115z00_2345;
													}
												else
													{	/* Coerce/convert.scm 132 */
														long BgL_odepthz00_2346;

														BgL_odepthz00_2346 =
															BGL_CLASS_DEPTH(BgL_oclassz00_2344);
														if ((2L < BgL_odepthz00_2346))
															{	/* Coerce/convert.scm 132 */
																obj_t BgL_arg1797z00_2348;

																BgL_arg1797z00_2348 =
																	BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_2344,
																	2L);
																BgL_res1990z00_2358 =
																	(BgL_arg1797z00_2348 == BgL_classz00_2328);
															}
														else
															{	/* Coerce/convert.scm 132 */
																BgL_res1990z00_2358 = ((bool_t) 0);
															}
													}
											}
										}
										BgL_test2032z00_2918 = BgL_res1990z00_2358;
									}
							}
						}
						if (BgL_test2032z00_2918)
							{	/* Coerce/convert.scm 133 */
								BgL_refz00_bglt BgL_new1110z00_1833;

								{	/* Coerce/convert.scm 133 */
									BgL_refz00_bglt BgL_new1116z00_1835;

									BgL_new1116z00_1835 =
										((BgL_refz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
													BgL_refz00_bgl))));
									{	/* Coerce/convert.scm 133 */
										long BgL_arg1628z00_1836;

										BgL_arg1628z00_1836 =
											BGL_CLASS_NUM(BGl_refz00zzast_nodez00);
										BGL_OBJECT_CLASS_NUM_SET(
											((BgL_objectz00_bglt) BgL_new1116z00_1835),
											BgL_arg1628z00_1836);
									}
									{	/* Coerce/convert.scm 133 */
										BgL_objectz00_bglt BgL_tmpz00_2942;

										BgL_tmpz00_2942 =
											((BgL_objectz00_bglt) BgL_new1116z00_1835);
										BGL_OBJECT_WIDENING_SET(BgL_tmpz00_2942, BFALSE);
									}
									((BgL_objectz00_bglt) BgL_new1116z00_1835);
									BgL_new1110z00_1833 = BgL_new1116z00_1835;
								}
								((((BgL_nodez00_bglt) COBJECT(
												((BgL_nodez00_bglt) BgL_new1110z00_1833)))->
										BgL_locz00) =
									((obj_t) (((BgL_nodez00_bglt) COBJECT(BgL_valuez00_54))->
											BgL_locz00)), BUNSPEC);
								((((BgL_nodez00_bglt) COBJECT(((BgL_nodez00_bglt)
													BgL_new1110z00_1833)))->BgL_typez00) =
									((BgL_typez00_bglt) ((BgL_typez00_bglt)
											BGl_za2objza2z00zztype_cachez00)), BUNSPEC);
								((((BgL_varz00_bglt) COBJECT(((BgL_varz00_bglt)
													BgL_new1110z00_1833)))->BgL_variablez00) =
									((BgL_variablez00_bglt) (((BgL_varz00_bglt)
												COBJECT(((BgL_varz00_bglt) BgL_valuez00_54)))->
											BgL_variablez00)), BUNSPEC);
								BgL_uvaluez00_1815 = ((BgL_nodez00_bglt) BgL_new1110z00_1833);
							}
						else
							{	/* Coerce/convert.scm 132 */
								BgL_uvaluez00_1815 = BgL_valuez00_54;
							}
					}
					{	/* Coerce/convert.scm 132 */
						BgL_nodez00_bglt BgL_resz00_1816;

						{	/* Coerce/convert.scm 137 */
							obj_t BgL_arg1592z00_1819;

							{	/* Coerce/convert.scm 137 */
								obj_t BgL_arg1595z00_1820;

								{	/* Coerce/convert.scm 137 */
									obj_t BgL_arg1597z00_1821;
									obj_t BgL_arg1598z00_1822;

									{	/* Coerce/convert.scm 137 */
										obj_t BgL_arg1606z00_1823;

										{	/* Coerce/convert.scm 137 */
											obj_t BgL_arg1608z00_1824;
											obj_t BgL_arg1609z00_1825;

											{	/* Coerce/convert.scm 137 */
												obj_t BgL_arg1613z00_1826;

												{	/* Coerce/convert.scm 137 */
													obj_t BgL_arg1614z00_1827;

													{	/* Coerce/convert.scm 137 */
														obj_t BgL_arg1615z00_1828;
														obj_t BgL_arg1616z00_1829;

														{	/* Coerce/convert.scm 137 */
															obj_t BgL_arg1454z00_2364;

															BgL_arg1454z00_2364 =
																SYMBOL_TO_STRING(BgL_auxz00_1814);
															BgL_arg1615z00_1828 =
																BGl_stringzd2copyzd2zz__r4_strings_6_7z00
																(BgL_arg1454z00_2364);
														}
														{	/* Coerce/convert.scm 137 */
															obj_t BgL_symbolz00_2365;

															BgL_symbolz00_2365 = CNST_TABLE_REF(6L);
															{	/* Coerce/convert.scm 137 */
																obj_t BgL_arg1454z00_2366;

																BgL_arg1454z00_2366 =
																	SYMBOL_TO_STRING(BgL_symbolz00_2365);
																BgL_arg1616z00_1829 =
																	BGl_stringzd2copyzd2zz__r4_strings_6_7z00
																	(BgL_arg1454z00_2366);
															}
														}
														BgL_arg1614z00_1827 =
															string_append(BgL_arg1615z00_1828,
															BgL_arg1616z00_1829);
													}
													BgL_arg1613z00_1826 =
														bstring_to_symbol(BgL_arg1614z00_1827);
												}
												BgL_arg1608z00_1824 =
													BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00
													(BgL_arg1613z00_1826);
											}
											BgL_arg1609z00_1825 = MAKE_YOUNG_PAIR(BUNSPEC, BNIL);
											BgL_arg1606z00_1823 =
												MAKE_YOUNG_PAIR(BgL_arg1608z00_1824,
												BgL_arg1609z00_1825);
										}
										BgL_arg1597z00_1821 =
											MAKE_YOUNG_PAIR(BgL_arg1606z00_1823, BNIL);
									}
									BgL_arg1598z00_1822 =
										MAKE_YOUNG_PAIR
										(BGl_runtimezd2typezd2errorzf2idzf2zzcoerce_convertz00
										(BgL_locz00_52, BgL_tiz00_53, BgL_auxz00_1814), BNIL);
									BgL_arg1595z00_1820 =
										MAKE_YOUNG_PAIR(BgL_arg1597z00_1821, BgL_arg1598z00_1822);
								}
								BgL_arg1592z00_1819 =
									MAKE_YOUNG_PAIR(CNST_TABLE_REF(7L), BgL_arg1595z00_1820);
							}
							BgL_resz00_1816 =
								BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00
								(BgL_arg1592z00_1819, BgL_locz00_52);
						}
						{	/* Coerce/convert.scm 136 */

							{	/* Coerce/convert.scm 141 */
								obj_t BgL_arg1586z00_1817;

								{	/* Coerce/convert.scm 141 */
									obj_t BgL_pairz00_2369;

									BgL_pairz00_2369 =
										(((BgL_letzd2varzd2_bglt) COBJECT(
												((BgL_letzd2varzd2_bglt) BgL_resz00_1816)))->
										BgL_bindingsz00);
									BgL_arg1586z00_1817 = CAR(BgL_pairz00_2369);
								}
								{	/* Coerce/convert.scm 141 */
									obj_t BgL_auxz00_2979;
									obj_t BgL_tmpz00_2977;

									BgL_auxz00_2979 = ((obj_t) BgL_uvaluez00_1815);
									BgL_tmpz00_2977 = ((obj_t) BgL_arg1586z00_1817);
									SET_CDR(BgL_tmpz00_2977, BgL_auxz00_2979);
								}
							}
							return ((obj_t) BgL_resz00_1816);
						}
					}
				}
			}
		}

	}



/* &runtime-type-error */
	obj_t BGl_z62runtimezd2typezd2errorz62zzcoerce_convertz00(obj_t
		BgL_envz00_2776, obj_t BgL_locz00_2777, obj_t BgL_tiz00_2778,
		obj_t BgL_valuez00_2779)
	{
		{	/* Coerce/convert.scm 129 */
			return
				BGl_runtimezd2typezd2errorz00zzcoerce_convertz00(BgL_locz00_2777,
				BgL_tiz00_2778, ((BgL_nodez00_bglt) BgL_valuez00_2779));
		}

	}



/* convert-error */
	obj_t BGl_convertzd2errorzd2zzcoerce_convertz00(BgL_typez00_bglt
		BgL_fromz00_55, BgL_typez00_bglt BgL_toz00_56, obj_t BgL_locz00_57,
		BgL_nodez00_bglt BgL_nodez00_58)
	{
		{	/* Coerce/convert.scm 151 */
			{	/* Coerce/convert.scm 155 */
				bool_t BgL_test2036z00_2985;

				if ((((obj_t) BgL_toz00_56) == BGl_za2objza2z00zztype_cachez00))
					{	/* Coerce/convert.scm 155 */
						BgL_test2036z00_2985 = ((bool_t) 0);
					}
				else
					{	/* Coerce/convert.scm 155 */
						BgL_test2036z00_2985 =
							BGl_subzd2typezf3z21zztype_envz00(BgL_toz00_56,
							((BgL_typez00_bglt) BGl_za2objza2z00zztype_cachez00));
					}
				if (BgL_test2036z00_2985)
					{	/* Coerce/convert.scm 156 */
						obj_t BgL_nodez00_1838;

						BgL_nodez00_1838 =
							BGl_runtimezd2typezd2errorz00zzcoerce_convertz00(BgL_locz00_57,
							(((BgL_typez00_bglt) COBJECT(BgL_toz00_56))->BgL_idz00),
							BgL_nodez00_58);
						{	/* Coerce/convert.scm 157 */
							obj_t BgL_arg1630z00_1839;

							BgL_arg1630z00_1839 = BGl_currentzd2functionzd2zztools_errorz00();
							if (CBOOL(BGl_za2warningzd2typesza2zd2zzengine_paramz00))
								{	/* Coerce/convert.scm 109 */
									obj_t BgL_arg1532z00_2372;

									{	/* Coerce/convert.scm 109 */
										obj_t BgL_arg1534z00_2373;
										obj_t BgL_arg1541z00_2374;

										BgL_arg1534z00_2373 =
											BGl_shapez00zztools_shapez00(((obj_t) BgL_toz00_56));
										BgL_arg1541z00_2374 =
											BGl_shapez00zztools_shapez00(((obj_t) BgL_fromz00_55));
										BgL_arg1532z00_2372 =
											BGl_bigloozd2typezd2errorzd2msgzd2zz__errorz00
											(BGl_string2006z00zzcoerce_convertz00,
											BgL_arg1534z00_2373, BgL_arg1541z00_2374);
									}
									BGl_userzd2warningzf2locationz20zztools_errorz00
										(BgL_locz00_57, BgL_arg1630z00_1839,
										BGl_string2007z00zzcoerce_convertz00, BgL_arg1532z00_2372);
								}
							else
								{	/* Coerce/convert.scm 103 */
									BFALSE;
								}
						}
						BGl_lvtypezd2nodez12zc0zzast_lvtypez00(
							((BgL_nodez00_bglt) BgL_nodez00_1838));
						return
							((obj_t)
							BGl_coercez12z12zzcoerce_coercez00(
								((BgL_nodez00_bglt) BgL_nodez00_1838), BUNSPEC, BgL_fromz00_55,
								((bool_t) 0)));
					}
				else
					{	/* Coerce/convert.scm 160 */
						bool_t BgL_test2039z00_3007;

						{	/* Coerce/convert.scm 160 */
							obj_t BgL_classz00_2375;

							BgL_classz00_2375 = BGl_tclassz00zzobject_classz00;
							{	/* Coerce/convert.scm 160 */
								BgL_objectz00_bglt BgL_arg1801z00_2377;

								{	/* Coerce/convert.scm 160 */
									obj_t BgL_tmpz00_3008;

									BgL_tmpz00_3008 =
										((obj_t) ((BgL_objectz00_bglt) BgL_toz00_56));
									BgL_arg1801z00_2377 = (BgL_objectz00_bglt) (BgL_tmpz00_3008);
								}
								if (BGL_CONDEXPAND_ISA_ARCH64())
									{	/* Coerce/convert.scm 160 */
										long BgL_idxz00_2383;

										BgL_idxz00_2383 =
											BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_2377);
										BgL_test2039z00_3007 =
											(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
												(BgL_idxz00_2383 + 2L)) == BgL_classz00_2375);
									}
								else
									{	/* Coerce/convert.scm 160 */
										bool_t BgL_res1991z00_2405;

										{	/* Coerce/convert.scm 160 */
											obj_t BgL_oclassz00_2391;

											{	/* Coerce/convert.scm 160 */
												long BgL_arg1808z00_2397;

												{	/* Coerce/convert.scm 160 */
													long BgL_arg1809z00_2398;

													BgL_arg1809z00_2398 =
														BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_2377);
													BgL_arg1808z00_2397 =
														(BgL_arg1809z00_2398 - OBJECT_TYPE);
												}
												BgL_oclassz00_2391 =
													VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
													BgL_arg1808z00_2397);
											}
											{	/* Coerce/convert.scm 160 */
												bool_t BgL__ortest_1115z00_2392;

												BgL__ortest_1115z00_2392 =
													(BgL_classz00_2375 == BgL_oclassz00_2391);
												if (BgL__ortest_1115z00_2392)
													{	/* Coerce/convert.scm 160 */
														BgL_res1991z00_2405 = BgL__ortest_1115z00_2392;
													}
												else
													{	/* Coerce/convert.scm 160 */
														long BgL_odepthz00_2393;

														BgL_odepthz00_2393 =
															BGL_CLASS_DEPTH(BgL_oclassz00_2391);
														if ((2L < BgL_odepthz00_2393))
															{	/* Coerce/convert.scm 160 */
																obj_t BgL_arg1797z00_2395;

																BgL_arg1797z00_2395 =
																	BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_2391,
																	2L);
																BgL_res1991z00_2405 =
																	(BgL_arg1797z00_2395 == BgL_classz00_2375);
															}
														else
															{	/* Coerce/convert.scm 160 */
																BgL_res1991z00_2405 = ((bool_t) 0);
															}
													}
											}
										}
										BgL_test2039z00_3007 = BgL_res1991z00_2405;
									}
							}
						}
						if (BgL_test2039z00_3007)
							{	/* Coerce/convert.scm 161 */
								obj_t BgL_nodez00_1842;

								BgL_nodez00_1842 =
									BGl_runtimezd2typezd2errorz00zzcoerce_convertz00
									(BgL_locz00_57,
									(((BgL_typez00_bglt) COBJECT(BgL_toz00_56))->BgL_idz00),
									BgL_nodez00_58);
								{	/* Coerce/convert.scm 162 */
									obj_t BgL_arg1649z00_1843;

									BgL_arg1649z00_1843 =
										BGl_currentzd2functionzd2zztools_errorz00();
									if (CBOOL(BGl_za2warningzd2typesza2zd2zzengine_paramz00))
										{	/* Coerce/convert.scm 109 */
											obj_t BgL_arg1532z00_2407;

											{	/* Coerce/convert.scm 109 */
												obj_t BgL_arg1534z00_2408;
												obj_t BgL_arg1541z00_2409;

												BgL_arg1534z00_2408 =
													BGl_shapez00zztools_shapez00(((obj_t) BgL_toz00_56));
												BgL_arg1541z00_2409 =
													BGl_shapez00zztools_shapez00(
													((obj_t) BgL_fromz00_55));
												BgL_arg1532z00_2407 =
													BGl_bigloozd2typezd2errorzd2msgzd2zz__errorz00
													(BGl_string2006z00zzcoerce_convertz00,
													BgL_arg1534z00_2408, BgL_arg1541z00_2409);
											}
											BGl_userzd2warningzf2locationz20zztools_errorz00
												(BgL_locz00_57, BgL_arg1649z00_1843,
												BGl_string2007z00zzcoerce_convertz00,
												BgL_arg1532z00_2407);
										}
									else
										{	/* Coerce/convert.scm 103 */
											BFALSE;
										}
								}
								BGl_lvtypezd2nodez12zc0zzast_lvtypez00(
									((BgL_nodez00_bglt) BgL_nodez00_1842));
								return
									((obj_t)
									BGl_coercez12z12zzcoerce_coercez00(
										((BgL_nodez00_bglt) BgL_nodez00_1842), BUNSPEC,
										BgL_fromz00_55, ((bool_t) 0)));
							}
						else
							{	/* Coerce/convert.scm 160 */
								if (CBOOL(BGl_za2warningzd2typezd2errorza2z00zzengine_paramz00))
									{	/* Coerce/convert.scm 234 */
										obj_t BgL_arg1661z00_1845;

										BgL_arg1661z00_1845 =
											BGl_currentzd2functionzd2zztools_errorz00();
										{	/* Coerce/convert.scm 97 */
											obj_t BgL_arg1497z00_2410;

											{	/* Coerce/convert.scm 97 */
												obj_t BgL_arg1519z00_2411;
												obj_t BgL_arg1528z00_2412;

												BgL_arg1519z00_2411 =
													BGl_shapez00zztools_shapez00(((obj_t) BgL_toz00_56));
												BgL_arg1528z00_2412 =
													BGl_shapez00zztools_shapez00(
													((obj_t) BgL_fromz00_55));
												BgL_arg1497z00_2410 =
													BGl_bigloozd2typezd2errorzd2msgzd2zz__errorz00
													(BGl_string2006z00zzcoerce_convertz00,
													BgL_arg1519z00_2411, BgL_arg1528z00_2412);
											}
											return
												BGl_userzd2errorzf2locationz20zztools_errorz00
												(BgL_locz00_57, BgL_arg1661z00_1845,
												BGl_string2007z00zzcoerce_convertz00,
												BgL_arg1497z00_2410, BNIL);
										}
									}
								else
									{	/* Coerce/convert.scm 167 */
										bool_t BgL_test2045z00_3053;

										if (
											(((obj_t) BgL_toz00_56) ==
												BGl_za2intza2z00zztype_cachez00))
											{	/* Coerce/convert.scm 167 */
												BgL_test2045z00_3053 = ((bool_t) 1);
											}
										else
											{	/* Coerce/convert.scm 167 */
												if (
													(((obj_t) BgL_toz00_56) ==
														BGl_za2longza2z00zztype_cachez00))
													{	/* Coerce/convert.scm 167 */
														BgL_test2045z00_3053 = ((bool_t) 1);
													}
												else
													{	/* Coerce/convert.scm 167 */
														if (
															(((obj_t) BgL_toz00_56) ==
																BGl_za2elongza2z00zztype_cachez00))
															{	/* Coerce/convert.scm 168 */
																BgL_test2045z00_3053 = ((bool_t) 1);
															}
														else
															{	/* Coerce/convert.scm 168 */
																if (
																	(((obj_t) BgL_toz00_56) ==
																		BGl_za2llongza2z00zztype_cachez00))
																	{	/* Coerce/convert.scm 169 */
																		BgL_test2045z00_3053 = ((bool_t) 1);
																	}
																else
																	{	/* Coerce/convert.scm 169 */
																		if (
																			(((obj_t) BgL_toz00_56) ==
																				BGl_za2int8za2z00zztype_cachez00))
																			{	/* Coerce/convert.scm 170 */
																				BgL_test2045z00_3053 = ((bool_t) 1);
																			}
																		else
																			{	/* Coerce/convert.scm 170 */
																				if (
																					(((obj_t) BgL_toz00_56) ==
																						BGl_za2uint8za2z00zztype_cachez00))
																					{	/* Coerce/convert.scm 171 */
																						BgL_test2045z00_3053 = ((bool_t) 1);
																					}
																				else
																					{	/* Coerce/convert.scm 171 */
																						if (
																							(((obj_t) BgL_toz00_56) ==
																								BGl_za2int16za2z00zztype_cachez00))
																							{	/* Coerce/convert.scm 172 */
																								BgL_test2045z00_3053 =
																									((bool_t) 1);
																							}
																						else
																							{	/* Coerce/convert.scm 172 */
																								if (
																									(((obj_t) BgL_toz00_56) ==
																										BGl_za2uint16za2z00zztype_cachez00))
																									{	/* Coerce/convert.scm 173 */
																										BgL_test2045z00_3053 =
																											((bool_t) 1);
																									}
																								else
																									{	/* Coerce/convert.scm 173 */
																										if (
																											(((obj_t) BgL_toz00_56) ==
																												BGl_za2int32za2z00zztype_cachez00))
																											{	/* Coerce/convert.scm 174 */
																												BgL_test2045z00_3053 =
																													((bool_t) 1);
																											}
																										else
																											{	/* Coerce/convert.scm 174 */
																												if (
																													(((obj_t)
																															BgL_toz00_56) ==
																														BGl_za2uint32za2z00zztype_cachez00))
																													{	/* Coerce/convert.scm 175 */
																														BgL_test2045z00_3053
																															= ((bool_t) 1);
																													}
																												else
																													{	/* Coerce/convert.scm 175 */
																														if (
																															(((obj_t)
																																	BgL_toz00_56)
																																==
																																BGl_za2int64za2z00zztype_cachez00))
																															{	/* Coerce/convert.scm 176 */
																																BgL_test2045z00_3053
																																	=
																																	((bool_t) 1);
																															}
																														else
																															{	/* Coerce/convert.scm 176 */
																																BgL_test2045z00_3053
																																	=
																																	(((obj_t)
																																		BgL_toz00_56)
																																	==
																																	BGl_za2uint64za2z00zztype_cachez00);
																															}
																													}
																											}
																									}
																							}
																					}
																			}
																	}
															}
													}
											}
										if (BgL_test2045z00_3053)
											{	/* Coerce/convert.scm 178 */
												obj_t BgL_nodez00_1847;

												BgL_nodez00_1847 =
													BGl_runtimezd2typezd2errorz00zzcoerce_convertz00
													(BgL_locz00_57,
													(((BgL_typez00_bglt) COBJECT(BgL_toz00_56))->
														BgL_idz00), BgL_nodez00_58);
												{	/* Coerce/convert.scm 179 */
													obj_t BgL_arg1669z00_1848;

													BgL_arg1669z00_1848 =
														BGl_currentzd2functionzd2zztools_errorz00();
													if (CBOOL
														(BGl_za2warningzd2typesza2zd2zzengine_paramz00))
														{	/* Coerce/convert.scm 109 */
															obj_t BgL_arg1532z00_2415;

															{	/* Coerce/convert.scm 109 */
																obj_t BgL_arg1534z00_2416;
																obj_t BgL_arg1541z00_2417;

																BgL_arg1534z00_2416 =
																	BGl_shapez00zztools_shapez00(
																	((obj_t) BgL_toz00_56));
																BgL_arg1541z00_2417 =
																	BGl_shapez00zztools_shapez00(
																	((obj_t) BgL_fromz00_55));
																BgL_arg1532z00_2415 =
																	BGl_bigloozd2typezd2errorzd2msgzd2zz__errorz00
																	(BGl_string2006z00zzcoerce_convertz00,
																	BgL_arg1534z00_2416, BgL_arg1541z00_2417);
															}
															BGl_userzd2warningzf2locationz20zztools_errorz00
																(BgL_locz00_57, BgL_arg1669z00_1848,
																BGl_string2007z00zzcoerce_convertz00,
																BgL_arg1532z00_2415);
														}
													else
														{	/* Coerce/convert.scm 103 */
															BFALSE;
														}
												}
												BGl_lvtypezd2nodez12zc0zzast_lvtypez00(
													((BgL_nodez00_bglt) BgL_nodez00_1847));
												{	/* Coerce/convert.scm 181 */
													BgL_sequencez00_bglt BgL_new1118z00_1849;

													{	/* Coerce/convert.scm 181 */
														BgL_sequencez00_bglt BgL_new1117z00_1857;

														BgL_new1117z00_1857 =
															((BgL_sequencez00_bglt)
															BOBJECT(GC_MALLOC(sizeof(struct
																		BgL_sequencez00_bgl))));
														{	/* Coerce/convert.scm 181 */
															long BgL_arg1684z00_1858;

															BgL_arg1684z00_1858 =
																BGL_CLASS_NUM(BGl_sequencez00zzast_nodez00);
															BGL_OBJECT_CLASS_NUM_SET(
																((BgL_objectz00_bglt) BgL_new1117z00_1857),
																BgL_arg1684z00_1858);
														}
														{	/* Coerce/convert.scm 181 */
															BgL_objectz00_bglt BgL_tmpz00_3106;

															BgL_tmpz00_3106 =
																((BgL_objectz00_bglt) BgL_new1117z00_1857);
															BGL_OBJECT_WIDENING_SET(BgL_tmpz00_3106, BFALSE);
														}
														((BgL_objectz00_bglt) BgL_new1117z00_1857);
														BgL_new1118z00_1849 = BgL_new1117z00_1857;
													}
													((((BgL_nodez00_bglt) COBJECT(
																	((BgL_nodez00_bglt) BgL_new1118z00_1849)))->
															BgL_locz00) = ((obj_t) BFALSE), BUNSPEC);
													((((BgL_nodez00_bglt) COBJECT(((BgL_nodez00_bglt)
																		BgL_new1118z00_1849)))->BgL_typez00) =
														((BgL_typez00_bglt) BgL_toz00_56), BUNSPEC);
													((((BgL_nodezf2effectzf2_bglt)
																COBJECT(((BgL_nodezf2effectzf2_bglt)
																		BgL_new1118z00_1849)))->
															BgL_sidezd2effectzd2) =
														((obj_t) BUNSPEC), BUNSPEC);
													((((BgL_nodezf2effectzf2_bglt)
																COBJECT(((BgL_nodezf2effectzf2_bglt)
																		BgL_new1118z00_1849)))->BgL_keyz00) =
														((obj_t) BINT(-1L)), BUNSPEC);
													{
														obj_t BgL_auxz00_3119;

														{	/* Coerce/convert.scm 184 */
															BgL_nodez00_bglt BgL_arg1673z00_1850;
															BgL_literalz00_bglt BgL_arg1675z00_1851;

															BgL_arg1673z00_1850 =
																BGl_coercez12z12zzcoerce_coercez00(
																((BgL_nodez00_bglt) BgL_nodez00_1847), BUNSPEC,
																BgL_fromz00_55, ((bool_t) 0));
															{	/* Coerce/convert.scm 185 */
																BgL_literalz00_bglt BgL_new1120z00_1854;

																{	/* Coerce/convert.scm 185 */
																	BgL_literalz00_bglt BgL_new1119z00_1855;

																	BgL_new1119z00_1855 =
																		((BgL_literalz00_bglt)
																		BOBJECT(GC_MALLOC(sizeof(struct
																					BgL_literalz00_bgl))));
																	{	/* Coerce/convert.scm 185 */
																		long BgL_arg1681z00_1856;

																		{	/* Coerce/convert.scm 185 */
																			obj_t BgL_classz00_2422;

																			BgL_classz00_2422 =
																				BGl_literalz00zzast_nodez00;
																			BgL_arg1681z00_1856 =
																				BGL_CLASS_NUM(BgL_classz00_2422);
																		}
																		BGL_OBJECT_CLASS_NUM_SET(
																			((BgL_objectz00_bglt)
																				BgL_new1119z00_1855),
																			BgL_arg1681z00_1856);
																	}
																	{	/* Coerce/convert.scm 185 */
																		BgL_objectz00_bglt BgL_tmpz00_3126;

																		BgL_tmpz00_3126 =
																			((BgL_objectz00_bglt)
																			BgL_new1119z00_1855);
																		BGL_OBJECT_WIDENING_SET(BgL_tmpz00_3126,
																			BFALSE);
																	}
																	((BgL_objectz00_bglt) BgL_new1119z00_1855);
																	BgL_new1120z00_1854 = BgL_new1119z00_1855;
																}
																((((BgL_nodez00_bglt) COBJECT(
																				((BgL_nodez00_bglt)
																					BgL_new1120z00_1854)))->BgL_locz00) =
																	((obj_t) BFALSE), BUNSPEC);
																((((BgL_nodez00_bglt)
																			COBJECT(((BgL_nodez00_bglt)
																					BgL_new1120z00_1854)))->BgL_typez00) =
																	((BgL_typez00_bglt) BgL_toz00_56), BUNSPEC);
																((((BgL_atomz00_bglt)
																			COBJECT(((BgL_atomz00_bglt)
																					BgL_new1120z00_1854)))->
																		BgL_valuez00) =
																	((obj_t) BINT(0L)), BUNSPEC);
																BgL_arg1675z00_1851 = BgL_new1120z00_1854;
															}
															{	/* Coerce/convert.scm 183 */
																obj_t BgL_list1676z00_1852;

																{	/* Coerce/convert.scm 183 */
																	obj_t BgL_arg1678z00_1853;

																	BgL_arg1678z00_1853 =
																		MAKE_YOUNG_PAIR(
																		((obj_t) BgL_arg1675z00_1851), BNIL);
																	BgL_list1676z00_1852 =
																		MAKE_YOUNG_PAIR(
																		((obj_t) BgL_arg1673z00_1850),
																		BgL_arg1678z00_1853);
																}
																BgL_auxz00_3119 = BgL_list1676z00_1852;
														}}
														((((BgL_sequencez00_bglt)
																	COBJECT(BgL_new1118z00_1849))->BgL_nodesz00) =
															((obj_t) BgL_auxz00_3119), BUNSPEC);
													}
													((((BgL_sequencez00_bglt)
																COBJECT(BgL_new1118z00_1849))->BgL_unsafez00) =
														((bool_t) ((bool_t) 0)), BUNSPEC);
													((((BgL_sequencez00_bglt)
																COBJECT(BgL_new1118z00_1849))->BgL_metaz00) =
														((obj_t) BNIL), BUNSPEC);
													return ((obj_t) BgL_new1118z00_1849);
												}
											}
										else
											{	/* Coerce/convert.scm 167 */
												if (
													(((obj_t) BgL_toz00_56) ==
														BGl_za2boolza2z00zztype_cachez00))
													{	/* Coerce/convert.scm 187 */
														obj_t BgL_nodez00_1860;

														BgL_nodez00_1860 =
															BGl_runtimezd2typezd2errorz00zzcoerce_convertz00
															(BgL_locz00_57,
															(((BgL_typez00_bglt) COBJECT(BgL_toz00_56))->
																BgL_idz00), BgL_nodez00_58);
														{	/* Coerce/convert.scm 188 */
															obj_t BgL_arg1690z00_1861;

															BgL_arg1690z00_1861 =
																BGl_currentzd2functionzd2zztools_errorz00();
															if (CBOOL
																(BGl_za2warningzd2typesza2zd2zzengine_paramz00))
																{	/* Coerce/convert.scm 109 */
																	obj_t BgL_arg1532z00_2428;

																	{	/* Coerce/convert.scm 109 */
																		obj_t BgL_arg1534z00_2429;
																		obj_t BgL_arg1541z00_2430;

																		BgL_arg1534z00_2429 =
																			BGl_shapez00zztools_shapez00(
																			((obj_t) BgL_toz00_56));
																		BgL_arg1541z00_2430 =
																			BGl_shapez00zztools_shapez00(
																			((obj_t) BgL_fromz00_55));
																		BgL_arg1532z00_2428 =
																			BGl_bigloozd2typezd2errorzd2msgzd2zz__errorz00
																			(BGl_string2006z00zzcoerce_convertz00,
																			BgL_arg1534z00_2429, BgL_arg1541z00_2430);
																	}
																	BGl_userzd2warningzf2locationz20zztools_errorz00
																		(BgL_locz00_57, BgL_arg1690z00_1861,
																		BGl_string2007z00zzcoerce_convertz00,
																		BgL_arg1532z00_2428);
																}
															else
																{	/* Coerce/convert.scm 103 */
																	BFALSE;
																}
														}
														BGl_lvtypezd2nodez12zc0zzast_lvtypez00(
															((BgL_nodez00_bglt) BgL_nodez00_1860));
														{	/* Coerce/convert.scm 190 */
															BgL_sequencez00_bglt BgL_new1123z00_1862;

															{	/* Coerce/convert.scm 190 */
																BgL_sequencez00_bglt BgL_new1122z00_1870;

																BgL_new1122z00_1870 =
																	((BgL_sequencez00_bglt)
																	BOBJECT(GC_MALLOC(sizeof(struct
																				BgL_sequencez00_bgl))));
																{	/* Coerce/convert.scm 190 */
																	long BgL_arg1707z00_1871;

																	BgL_arg1707z00_1871 =
																		BGL_CLASS_NUM(BGl_sequencez00zzast_nodez00);
																	BGL_OBJECT_CLASS_NUM_SET(
																		((BgL_objectz00_bglt) BgL_new1122z00_1870),
																		BgL_arg1707z00_1871);
																}
																{	/* Coerce/convert.scm 190 */
																	BgL_objectz00_bglt BgL_tmpz00_3165;

																	BgL_tmpz00_3165 =
																		((BgL_objectz00_bglt) BgL_new1122z00_1870);
																	BGL_OBJECT_WIDENING_SET(BgL_tmpz00_3165,
																		BFALSE);
																}
																((BgL_objectz00_bglt) BgL_new1122z00_1870);
																BgL_new1123z00_1862 = BgL_new1122z00_1870;
															}
															((((BgL_nodez00_bglt) COBJECT(
																			((BgL_nodez00_bglt)
																				BgL_new1123z00_1862)))->BgL_locz00) =
																((obj_t) BFALSE), BUNSPEC);
															((((BgL_nodez00_bglt) COBJECT(((BgL_nodez00_bglt)
																				BgL_new1123z00_1862)))->BgL_typez00) =
																((BgL_typez00_bglt) BgL_toz00_56), BUNSPEC);
															((((BgL_nodezf2effectzf2_bglt)
																		COBJECT(((BgL_nodezf2effectzf2_bglt)
																				BgL_new1123z00_1862)))->
																	BgL_sidezd2effectzd2) =
																((obj_t) BUNSPEC), BUNSPEC);
															((((BgL_nodezf2effectzf2_bglt)
																		COBJECT(((BgL_nodezf2effectzf2_bglt)
																				BgL_new1123z00_1862)))->BgL_keyz00) =
																((obj_t) BINT(-1L)), BUNSPEC);
															{
																obj_t BgL_auxz00_3178;

																{	/* Coerce/convert.scm 193 */
																	BgL_nodez00_bglt BgL_arg1693z00_1863;
																	BgL_literalz00_bglt BgL_arg1695z00_1864;

																	BgL_arg1693z00_1863 =
																		BGl_coercez12z12zzcoerce_coercez00(
																		((BgL_nodez00_bglt) BgL_nodez00_1860),
																		BUNSPEC, BgL_fromz00_55, ((bool_t) 0));
																	{	/* Coerce/convert.scm 194 */
																		BgL_literalz00_bglt BgL_new1125z00_1867;

																		{	/* Coerce/convert.scm 194 */
																			BgL_literalz00_bglt BgL_new1124z00_1868;

																			BgL_new1124z00_1868 =
																				((BgL_literalz00_bglt)
																				BOBJECT(GC_MALLOC(sizeof(struct
																							BgL_literalz00_bgl))));
																			{	/* Coerce/convert.scm 194 */
																				long BgL_arg1706z00_1869;

																				{	/* Coerce/convert.scm 194 */
																					obj_t BgL_classz00_2435;

																					BgL_classz00_2435 =
																						BGl_literalz00zzast_nodez00;
																					BgL_arg1706z00_1869 =
																						BGL_CLASS_NUM(BgL_classz00_2435);
																				}
																				BGL_OBJECT_CLASS_NUM_SET(
																					((BgL_objectz00_bglt)
																						BgL_new1124z00_1868),
																					BgL_arg1706z00_1869);
																			}
																			{	/* Coerce/convert.scm 194 */
																				BgL_objectz00_bglt BgL_tmpz00_3185;

																				BgL_tmpz00_3185 =
																					((BgL_objectz00_bglt)
																					BgL_new1124z00_1868);
																				BGL_OBJECT_WIDENING_SET(BgL_tmpz00_3185,
																					BFALSE);
																			}
																			((BgL_objectz00_bglt)
																				BgL_new1124z00_1868);
																			BgL_new1125z00_1867 = BgL_new1124z00_1868;
																		}
																		((((BgL_nodez00_bglt) COBJECT(
																						((BgL_nodez00_bglt)
																							BgL_new1125z00_1867)))->
																				BgL_locz00) =
																			((obj_t) BFALSE), BUNSPEC);
																		((((BgL_nodez00_bglt)
																					COBJECT(((BgL_nodez00_bglt)
																							BgL_new1125z00_1867)))->
																				BgL_typez00) =
																			((BgL_typez00_bglt) BgL_toz00_56),
																			BUNSPEC);
																		((((BgL_atomz00_bglt)
																					COBJECT(((BgL_atomz00_bglt)
																							BgL_new1125z00_1867)))->
																				BgL_valuez00) =
																			((obj_t) BINT(0L)), BUNSPEC);
																		BgL_arg1695z00_1864 = BgL_new1125z00_1867;
																	}
																	{	/* Coerce/convert.scm 192 */
																		obj_t BgL_list1696z00_1865;

																		{	/* Coerce/convert.scm 192 */
																			obj_t BgL_arg1698z00_1866;

																			BgL_arg1698z00_1866 =
																				MAKE_YOUNG_PAIR(
																				((obj_t) BgL_arg1695z00_1864), BNIL);
																			BgL_list1696z00_1865 =
																				MAKE_YOUNG_PAIR(
																				((obj_t) BgL_arg1693z00_1863),
																				BgL_arg1698z00_1866);
																		}
																		BgL_auxz00_3178 = BgL_list1696z00_1865;
																}}
																((((BgL_sequencez00_bglt)
																			COBJECT(BgL_new1123z00_1862))->
																		BgL_nodesz00) =
																	((obj_t) BgL_auxz00_3178), BUNSPEC);
															}
															((((BgL_sequencez00_bglt)
																		COBJECT(BgL_new1123z00_1862))->
																	BgL_unsafez00) =
																((bool_t) ((bool_t) 0)), BUNSPEC);
															((((BgL_sequencez00_bglt)
																		COBJECT(BgL_new1123z00_1862))->
																	BgL_metaz00) = ((obj_t) BNIL), BUNSPEC);
															return ((obj_t) BgL_new1123z00_1862);
														}
													}
												else
													{	/* Coerce/convert.scm 186 */
														if (
															(((obj_t) BgL_toz00_56) ==
																BGl_za2realza2z00zztype_cachez00))
															{	/* Coerce/convert.scm 196 */
																obj_t BgL_nodez00_1873;

																BgL_nodez00_1873 =
																	BGl_runtimezd2typezd2errorz00zzcoerce_convertz00
																	(BgL_locz00_57,
																	(((BgL_typez00_bglt) COBJECT(BgL_toz00_56))->
																		BgL_idz00), BgL_nodez00_58);
																{	/* Coerce/convert.scm 197 */
																	obj_t BgL_arg1709z00_1874;

																	BgL_arg1709z00_1874 =
																		BGl_currentzd2functionzd2zztools_errorz00();
																	if (CBOOL
																		(BGl_za2warningzd2typesza2zd2zzengine_paramz00))
																		{	/* Coerce/convert.scm 109 */
																			obj_t BgL_arg1532z00_2441;

																			{	/* Coerce/convert.scm 109 */
																				obj_t BgL_arg1534z00_2442;
																				obj_t BgL_arg1541z00_2443;

																				BgL_arg1534z00_2442 =
																					BGl_shapez00zztools_shapez00(
																					((obj_t) BgL_toz00_56));
																				BgL_arg1541z00_2443 =
																					BGl_shapez00zztools_shapez00(
																					((obj_t) BgL_fromz00_55));
																				BgL_arg1532z00_2441 =
																					BGl_bigloozd2typezd2errorzd2msgzd2zz__errorz00
																					(BGl_string2006z00zzcoerce_convertz00,
																					BgL_arg1534z00_2442,
																					BgL_arg1541z00_2443);
																			}
																			BGl_userzd2warningzf2locationz20zztools_errorz00
																				(BgL_locz00_57, BgL_arg1709z00_1874,
																				BGl_string2007z00zzcoerce_convertz00,
																				BgL_arg1532z00_2441);
																		}
																	else
																		{	/* Coerce/convert.scm 103 */
																			BFALSE;
																		}
																}
																BGl_lvtypezd2nodez12zc0zzast_lvtypez00(
																	((BgL_nodez00_bglt) BgL_nodez00_1873));
																{	/* Coerce/convert.scm 199 */
																	BgL_sequencez00_bglt BgL_new1128z00_1875;

																	{	/* Coerce/convert.scm 199 */
																		BgL_sequencez00_bglt BgL_new1127z00_1883;

																		BgL_new1127z00_1883 =
																			((BgL_sequencez00_bglt)
																			BOBJECT(GC_MALLOC(sizeof(struct
																						BgL_sequencez00_bgl))));
																		{	/* Coerce/convert.scm 199 */
																			long BgL_arg1717z00_1884;

																			BgL_arg1717z00_1884 =
																				BGL_CLASS_NUM
																				(BGl_sequencez00zzast_nodez00);
																			BGL_OBJECT_CLASS_NUM_SET((
																					(BgL_objectz00_bglt)
																					BgL_new1127z00_1883),
																				BgL_arg1717z00_1884);
																		}
																		{	/* Coerce/convert.scm 199 */
																			BgL_objectz00_bglt BgL_tmpz00_3224;

																			BgL_tmpz00_3224 =
																				((BgL_objectz00_bglt)
																				BgL_new1127z00_1883);
																			BGL_OBJECT_WIDENING_SET(BgL_tmpz00_3224,
																				BFALSE);
																		}
																		((BgL_objectz00_bglt) BgL_new1127z00_1883);
																		BgL_new1128z00_1875 = BgL_new1127z00_1883;
																	}
																	((((BgL_nodez00_bglt) COBJECT(
																					((BgL_nodez00_bglt)
																						BgL_new1128z00_1875)))->
																			BgL_locz00) = ((obj_t) BFALSE), BUNSPEC);
																	((((BgL_nodez00_bglt)
																				COBJECT(((BgL_nodez00_bglt)
																						BgL_new1128z00_1875)))->
																			BgL_typez00) =
																		((BgL_typez00_bglt) BgL_toz00_56), BUNSPEC);
																	((((BgL_nodezf2effectzf2_bglt)
																				COBJECT(((BgL_nodezf2effectzf2_bglt)
																						BgL_new1128z00_1875)))->
																			BgL_sidezd2effectzd2) =
																		((obj_t) BUNSPEC), BUNSPEC);
																	((((BgL_nodezf2effectzf2_bglt)
																				COBJECT(((BgL_nodezf2effectzf2_bglt)
																						BgL_new1128z00_1875)))->
																			BgL_keyz00) =
																		((obj_t) BINT(-1L)), BUNSPEC);
																	{
																		obj_t BgL_auxz00_3237;

																		{	/* Coerce/convert.scm 202 */
																			BgL_nodez00_bglt BgL_arg1710z00_1876;
																			BgL_literalz00_bglt BgL_arg1712z00_1877;

																			BgL_arg1710z00_1876 =
																				BGl_coercez12z12zzcoerce_coercez00(
																				((BgL_nodez00_bglt) BgL_nodez00_1873),
																				BUNSPEC, BgL_fromz00_55, ((bool_t) 0));
																			{	/* Coerce/convert.scm 203 */
																				BgL_literalz00_bglt BgL_new1131z00_1880;

																				{	/* Coerce/convert.scm 203 */
																					BgL_literalz00_bglt
																						BgL_new1129z00_1881;
																					BgL_new1129z00_1881 =
																						((BgL_literalz00_bglt)
																						BOBJECT(GC_MALLOC(sizeof(struct
																									BgL_literalz00_bgl))));
																					{	/* Coerce/convert.scm 203 */
																						long BgL_arg1715z00_1882;

																						{	/* Coerce/convert.scm 203 */
																							obj_t BgL_classz00_2448;

																							BgL_classz00_2448 =
																								BGl_literalz00zzast_nodez00;
																							BgL_arg1715z00_1882 =
																								BGL_CLASS_NUM
																								(BgL_classz00_2448);
																						}
																						BGL_OBJECT_CLASS_NUM_SET(
																							((BgL_objectz00_bglt)
																								BgL_new1129z00_1881),
																							BgL_arg1715z00_1882);
																					}
																					{	/* Coerce/convert.scm 203 */
																						BgL_objectz00_bglt BgL_tmpz00_3244;

																						BgL_tmpz00_3244 =
																							((BgL_objectz00_bglt)
																							BgL_new1129z00_1881);
																						BGL_OBJECT_WIDENING_SET
																							(BgL_tmpz00_3244, BFALSE);
																					}
																					((BgL_objectz00_bglt)
																						BgL_new1129z00_1881);
																					BgL_new1131z00_1880 =
																						BgL_new1129z00_1881;
																				}
																				((((BgL_nodez00_bglt) COBJECT(
																								((BgL_nodez00_bglt)
																									BgL_new1131z00_1880)))->
																						BgL_locz00) =
																					((obj_t) BFALSE), BUNSPEC);
																				((((BgL_nodez00_bglt)
																							COBJECT(((BgL_nodez00_bglt)
																									BgL_new1131z00_1880)))->
																						BgL_typez00) =
																					((BgL_typez00_bglt) BgL_toz00_56),
																					BUNSPEC);
																				((((BgL_atomz00_bglt)
																							COBJECT(((BgL_atomz00_bglt)
																									BgL_new1131z00_1880)))->
																						BgL_valuez00) =
																					((obj_t)
																						BGL_REAL_CNST
																						(BGl_real2008z00zzcoerce_convertz00)),
																					BUNSPEC);
																				BgL_arg1712z00_1877 =
																					BgL_new1131z00_1880;
																			}
																			{	/* Coerce/convert.scm 201 */
																				obj_t BgL_list1713z00_1878;

																				{	/* Coerce/convert.scm 201 */
																					obj_t BgL_arg1714z00_1879;

																					BgL_arg1714z00_1879 =
																						MAKE_YOUNG_PAIR(
																						((obj_t) BgL_arg1712z00_1877),
																						BNIL);
																					BgL_list1713z00_1878 =
																						MAKE_YOUNG_PAIR(((obj_t)
																							BgL_arg1710z00_1876),
																						BgL_arg1714z00_1879);
																				}
																				BgL_auxz00_3237 = BgL_list1713z00_1878;
																		}}
																		((((BgL_sequencez00_bglt)
																					COBJECT(BgL_new1128z00_1875))->
																				BgL_nodesz00) =
																			((obj_t) BgL_auxz00_3237), BUNSPEC);
																	}
																	((((BgL_sequencez00_bglt)
																				COBJECT(BgL_new1128z00_1875))->
																			BgL_unsafez00) =
																		((bool_t) ((bool_t) 0)), BUNSPEC);
																	((((BgL_sequencez00_bglt)
																				COBJECT(BgL_new1128z00_1875))->
																			BgL_metaz00) = ((obj_t) BNIL), BUNSPEC);
																	return ((obj_t) BgL_new1128z00_1875);
																}
															}
														else
															{	/* Coerce/convert.scm 195 */
																if (
																	(((obj_t) BgL_toz00_56) ==
																		BGl_za2charza2z00zztype_cachez00))
																	{	/* Coerce/convert.scm 205 */
																		obj_t BgL_nodez00_1886;

																		BgL_nodez00_1886 =
																			BGl_runtimezd2typezd2errorz00zzcoerce_convertz00
																			(BgL_locz00_57,
																			(((BgL_typez00_bglt)
																					COBJECT(BgL_toz00_56))->BgL_idz00),
																			BgL_nodez00_58);
																		{	/* Coerce/convert.scm 206 */
																			obj_t BgL_arg1729z00_1887;

																			BgL_arg1729z00_1887 =
																				BGl_currentzd2functionzd2zztools_errorz00
																				();
																			if (CBOOL
																				(BGl_za2warningzd2typesza2zd2zzengine_paramz00))
																				{	/* Coerce/convert.scm 109 */
																					obj_t BgL_arg1532z00_2454;

																					{	/* Coerce/convert.scm 109 */
																						obj_t BgL_arg1534z00_2455;
																						obj_t BgL_arg1541z00_2456;

																						BgL_arg1534z00_2455 =
																							BGl_shapez00zztools_shapez00(
																							((obj_t) BgL_toz00_56));
																						BgL_arg1541z00_2456 =
																							BGl_shapez00zztools_shapez00(
																							((obj_t) BgL_fromz00_55));
																						BgL_arg1532z00_2454 =
																							BGl_bigloozd2typezd2errorzd2msgzd2zz__errorz00
																							(BGl_string2006z00zzcoerce_convertz00,
																							BgL_arg1534z00_2455,
																							BgL_arg1541z00_2456);
																					}
																					BGl_userzd2warningzf2locationz20zztools_errorz00
																						(BgL_locz00_57, BgL_arg1729z00_1887,
																						BGl_string2007z00zzcoerce_convertz00,
																						BgL_arg1532z00_2454);
																				}
																			else
																				{	/* Coerce/convert.scm 103 */
																					BFALSE;
																				}
																		}
																		BGl_lvtypezd2nodez12zc0zzast_lvtypez00(
																			((BgL_nodez00_bglt) BgL_nodez00_1886));
																		{	/* Coerce/convert.scm 208 */
																			BgL_sequencez00_bglt BgL_new1133z00_1888;

																			{	/* Coerce/convert.scm 208 */
																				BgL_sequencez00_bglt
																					BgL_new1132z00_1896;
																				BgL_new1132z00_1896 =
																					((BgL_sequencez00_bglt)
																					BOBJECT(GC_MALLOC(sizeof(struct
																								BgL_sequencez00_bgl))));
																				{	/* Coerce/convert.scm 208 */
																					long BgL_arg1735z00_1897;

																					BgL_arg1735z00_1897 =
																						BGL_CLASS_NUM
																						(BGl_sequencez00zzast_nodez00);
																					BGL_OBJECT_CLASS_NUM_SET((
																							(BgL_objectz00_bglt)
																							BgL_new1132z00_1896),
																						BgL_arg1735z00_1897);
																				}
																				{	/* Coerce/convert.scm 208 */
																					BgL_objectz00_bglt BgL_tmpz00_3282;

																					BgL_tmpz00_3282 =
																						((BgL_objectz00_bglt)
																						BgL_new1132z00_1896);
																					BGL_OBJECT_WIDENING_SET
																						(BgL_tmpz00_3282, BFALSE);
																				}
																				((BgL_objectz00_bglt)
																					BgL_new1132z00_1896);
																				BgL_new1133z00_1888 =
																					BgL_new1132z00_1896;
																			}
																			((((BgL_nodez00_bglt) COBJECT(
																							((BgL_nodez00_bglt)
																								BgL_new1133z00_1888)))->
																					BgL_locz00) =
																				((obj_t) BFALSE), BUNSPEC);
																			((((BgL_nodez00_bglt)
																						COBJECT(((BgL_nodez00_bglt)
																								BgL_new1133z00_1888)))->
																					BgL_typez00) =
																				((BgL_typez00_bglt) BgL_toz00_56),
																				BUNSPEC);
																			((((BgL_nodezf2effectzf2_bglt)
																						COBJECT(((BgL_nodezf2effectzf2_bglt)
																								BgL_new1133z00_1888)))->
																					BgL_sidezd2effectzd2) =
																				((obj_t) BUNSPEC), BUNSPEC);
																			((((BgL_nodezf2effectzf2_bglt)
																						COBJECT(((BgL_nodezf2effectzf2_bglt)
																								BgL_new1133z00_1888)))->
																					BgL_keyz00) =
																				((obj_t) BINT(-1L)), BUNSPEC);
																			{
																				obj_t BgL_auxz00_3295;

																				{	/* Coerce/convert.scm 211 */
																					BgL_nodez00_bglt BgL_arg1730z00_1889;
																					BgL_literalz00_bglt
																						BgL_arg1731z00_1890;
																					BgL_arg1730z00_1889 =
																						BGl_coercez12z12zzcoerce_coercez00((
																							(BgL_nodez00_bglt)
																							BgL_nodez00_1886), BUNSPEC,
																						BgL_fromz00_55, ((bool_t) 0));
																					{	/* Coerce/convert.scm 212 */
																						BgL_literalz00_bglt
																							BgL_new1136z00_1893;
																						{	/* Coerce/convert.scm 212 */
																							BgL_literalz00_bglt
																								BgL_new1135z00_1894;
																							BgL_new1135z00_1894 =
																								((BgL_literalz00_bglt)
																								BOBJECT(GC_MALLOC(sizeof(struct
																											BgL_literalz00_bgl))));
																							{	/* Coerce/convert.scm 212 */
																								long BgL_arg1734z00_1895;

																								{	/* Coerce/convert.scm 212 */
																									obj_t BgL_classz00_2461;

																									BgL_classz00_2461 =
																										BGl_literalz00zzast_nodez00;
																									BgL_arg1734z00_1895 =
																										BGL_CLASS_NUM
																										(BgL_classz00_2461);
																								}
																								BGL_OBJECT_CLASS_NUM_SET(
																									((BgL_objectz00_bglt)
																										BgL_new1135z00_1894),
																									BgL_arg1734z00_1895);
																							}
																							{	/* Coerce/convert.scm 212 */
																								BgL_objectz00_bglt
																									BgL_tmpz00_3302;
																								BgL_tmpz00_3302 =
																									((BgL_objectz00_bglt)
																									BgL_new1135z00_1894);
																								BGL_OBJECT_WIDENING_SET
																									(BgL_tmpz00_3302, BFALSE);
																							}
																							((BgL_objectz00_bglt)
																								BgL_new1135z00_1894);
																							BgL_new1136z00_1893 =
																								BgL_new1135z00_1894;
																						}
																						((((BgL_nodez00_bglt) COBJECT(
																										((BgL_nodez00_bglt)
																											BgL_new1136z00_1893)))->
																								BgL_locz00) =
																							((obj_t) BFALSE), BUNSPEC);
																						((((BgL_nodez00_bglt)
																									COBJECT(((BgL_nodez00_bglt)
																											BgL_new1136z00_1893)))->
																								BgL_typez00) =
																							((BgL_typez00_bglt) BgL_toz00_56),
																							BUNSPEC);
																						((((BgL_atomz00_bglt)
																									COBJECT(((BgL_atomz00_bglt)
																											BgL_new1136z00_1893)))->
																								BgL_valuez00) =
																							((obj_t) BCHAR(((unsigned char)
																										'\000'))), BUNSPEC);
																						BgL_arg1731z00_1890 =
																							BgL_new1136z00_1893;
																					}
																					{	/* Coerce/convert.scm 210 */
																						obj_t BgL_list1732z00_1891;

																						{	/* Coerce/convert.scm 210 */
																							obj_t BgL_arg1733z00_1892;

																							BgL_arg1733z00_1892 =
																								MAKE_YOUNG_PAIR(
																								((obj_t) BgL_arg1731z00_1890),
																								BNIL);
																							BgL_list1732z00_1891 =
																								MAKE_YOUNG_PAIR(((obj_t)
																									BgL_arg1730z00_1889),
																								BgL_arg1733z00_1892);
																						}
																						BgL_auxz00_3295 =
																							BgL_list1732z00_1891;
																				}}
																				((((BgL_sequencez00_bglt)
																							COBJECT(BgL_new1133z00_1888))->
																						BgL_nodesz00) =
																					((obj_t) BgL_auxz00_3295), BUNSPEC);
																			}
																			((((BgL_sequencez00_bglt)
																						COBJECT(BgL_new1133z00_1888))->
																					BgL_unsafez00) =
																				((bool_t) ((bool_t) 0)), BUNSPEC);
																			((((BgL_sequencez00_bglt)
																						COBJECT(BgL_new1133z00_1888))->
																					BgL_metaz00) =
																				((obj_t) BNIL), BUNSPEC);
																			return ((obj_t) BgL_new1133z00_1888);
																		}
																	}
																else
																	{	/* Coerce/convert.scm 204 */
																		if (
																			(((obj_t) BgL_toz00_56) ==
																				BGl_za2scharza2z00zztype_cachez00))
																			{	/* Coerce/convert.scm 214 */
																				obj_t BgL_nodez00_1899;

																				BgL_nodez00_1899 =
																					BGl_runtimezd2typezd2errorz00zzcoerce_convertz00
																					(BgL_locz00_57,
																					(((BgL_typez00_bglt)
																							COBJECT(BgL_toz00_56))->
																						BgL_idz00), BgL_nodez00_58);
																				{	/* Coerce/convert.scm 215 */
																					obj_t BgL_arg1739z00_1900;

																					BgL_arg1739z00_1900 =
																						BGl_currentzd2functionzd2zztools_errorz00
																						();
																					if (CBOOL
																						(BGl_za2warningzd2typesza2zd2zzengine_paramz00))
																						{	/* Coerce/convert.scm 109 */
																							obj_t BgL_arg1532z00_2467;

																							{	/* Coerce/convert.scm 109 */
																								obj_t BgL_arg1534z00_2468;
																								obj_t BgL_arg1541z00_2469;

																								BgL_arg1534z00_2468 =
																									BGl_shapez00zztools_shapez00(
																									((obj_t) BgL_toz00_56));
																								BgL_arg1541z00_2469 =
																									BGl_shapez00zztools_shapez00(
																									((obj_t) BgL_fromz00_55));
																								BgL_arg1532z00_2467 =
																									BGl_bigloozd2typezd2errorzd2msgzd2zz__errorz00
																									(BGl_string2006z00zzcoerce_convertz00,
																									BgL_arg1534z00_2468,
																									BgL_arg1541z00_2469);
																							}
																							BGl_userzd2warningzf2locationz20zztools_errorz00
																								(BgL_locz00_57,
																								BgL_arg1739z00_1900,
																								BGl_string2007z00zzcoerce_convertz00,
																								BgL_arg1532z00_2467);
																						}
																					else
																						{	/* Coerce/convert.scm 103 */
																							BFALSE;
																						}
																				}
																				BGl_lvtypezd2nodez12zc0zzast_lvtypez00(
																					((BgL_nodez00_bglt)
																						BgL_nodez00_1899));
																				{	/* Coerce/convert.scm 217 */
																					BgL_sequencez00_bglt
																						BgL_new1138z00_1901;
																					{	/* Coerce/convert.scm 217 */
																						BgL_sequencez00_bglt
																							BgL_new1137z00_1909;
																						BgL_new1137z00_1909 =
																							((BgL_sequencez00_bglt)
																							BOBJECT(GC_MALLOC(sizeof(struct
																										BgL_sequencez00_bgl))));
																						{	/* Coerce/convert.scm 217 */
																							long BgL_arg1749z00_1910;

																							BgL_arg1749z00_1910 =
																								BGL_CLASS_NUM
																								(BGl_sequencez00zzast_nodez00);
																							BGL_OBJECT_CLASS_NUM_SET((
																									(BgL_objectz00_bglt)
																									BgL_new1137z00_1909),
																								BgL_arg1749z00_1910);
																						}
																						{	/* Coerce/convert.scm 217 */
																							BgL_objectz00_bglt
																								BgL_tmpz00_3341;
																							BgL_tmpz00_3341 =
																								((BgL_objectz00_bglt)
																								BgL_new1137z00_1909);
																							BGL_OBJECT_WIDENING_SET
																								(BgL_tmpz00_3341, BFALSE);
																						}
																						((BgL_objectz00_bglt)
																							BgL_new1137z00_1909);
																						BgL_new1138z00_1901 =
																							BgL_new1137z00_1909;
																					}
																					((((BgL_nodez00_bglt) COBJECT(
																									((BgL_nodez00_bglt)
																										BgL_new1138z00_1901)))->
																							BgL_locz00) =
																						((obj_t) BFALSE), BUNSPEC);
																					((((BgL_nodez00_bglt)
																								COBJECT(((BgL_nodez00_bglt)
																										BgL_new1138z00_1901)))->
																							BgL_typez00) =
																						((BgL_typez00_bglt) (
																								(BgL_typez00_bglt)
																								BGl_za2charza2z00zztype_cachez00)),
																						BUNSPEC);
																					((((BgL_nodezf2effectzf2_bglt)
																								COBJECT((
																										(BgL_nodezf2effectzf2_bglt)
																										BgL_new1138z00_1901)))->
																							BgL_sidezd2effectzd2) =
																						((obj_t) BUNSPEC), BUNSPEC);
																					((((BgL_nodezf2effectzf2_bglt)
																								COBJECT((
																										(BgL_nodezf2effectzf2_bglt)
																										BgL_new1138z00_1901)))->
																							BgL_keyz00) =
																						((obj_t) BINT(-1L)), BUNSPEC);
																					{
																						obj_t BgL_auxz00_3355;

																						{	/* Coerce/convert.scm 220 */
																							BgL_nodez00_bglt
																								BgL_arg1741z00_1902;
																							BgL_literalz00_bglt
																								BgL_arg1745z00_1903;
																							BgL_arg1741z00_1902 =
																								BGl_coercez12z12zzcoerce_coercez00
																								(((BgL_nodez00_bglt)
																									BgL_nodez00_1899), BUNSPEC,
																								BgL_fromz00_55, ((bool_t) 0));
																							{	/* Coerce/convert.scm 221 */
																								BgL_literalz00_bglt
																									BgL_new1140z00_1906;
																								{	/* Coerce/convert.scm 221 */
																									BgL_literalz00_bglt
																										BgL_new1139z00_1907;
																									BgL_new1139z00_1907 =
																										((BgL_literalz00_bglt)
																										BOBJECT(GC_MALLOC(sizeof
																												(struct
																													BgL_literalz00_bgl))));
																									{	/* Coerce/convert.scm 221 */
																										long BgL_arg1748z00_1908;

																										{	/* Coerce/convert.scm 221 */
																											obj_t BgL_classz00_2474;

																											BgL_classz00_2474 =
																												BGl_literalz00zzast_nodez00;
																											BgL_arg1748z00_1908 =
																												BGL_CLASS_NUM
																												(BgL_classz00_2474);
																										}
																										BGL_OBJECT_CLASS_NUM_SET(
																											((BgL_objectz00_bglt)
																												BgL_new1139z00_1907),
																											BgL_arg1748z00_1908);
																									}
																									{	/* Coerce/convert.scm 221 */
																										BgL_objectz00_bglt
																											BgL_tmpz00_3362;
																										BgL_tmpz00_3362 =
																											((BgL_objectz00_bglt)
																											BgL_new1139z00_1907);
																										BGL_OBJECT_WIDENING_SET
																											(BgL_tmpz00_3362, BFALSE);
																									}
																									((BgL_objectz00_bglt)
																										BgL_new1139z00_1907);
																									BgL_new1140z00_1906 =
																										BgL_new1139z00_1907;
																								}
																								((((BgL_nodez00_bglt) COBJECT(
																												((BgL_nodez00_bglt)
																													BgL_new1140z00_1906)))->
																										BgL_locz00) =
																									((obj_t) BFALSE), BUNSPEC);
																								((((BgL_nodez00_bglt)
																											COBJECT((
																													(BgL_nodez00_bglt)
																													BgL_new1140z00_1906)))->
																										BgL_typez00) =
																									((BgL_typez00_bglt) (
																											(BgL_typez00_bglt)
																											BGl_za2charza2z00zztype_cachez00)),
																									BUNSPEC);
																								((((BgL_atomz00_bglt)
																											COBJECT((
																													(BgL_atomz00_bglt)
																													BgL_new1140z00_1906)))->
																										BgL_valuez00) =
																									((obj_t) BCHAR(((unsigned
																													char) '\000'))),
																									BUNSPEC);
																								BgL_arg1745z00_1903 =
																									BgL_new1140z00_1906;
																							}
																							{	/* Coerce/convert.scm 219 */
																								obj_t BgL_list1746z00_1904;

																								{	/* Coerce/convert.scm 219 */
																									obj_t BgL_arg1747z00_1905;

																									BgL_arg1747z00_1905 =
																										MAKE_YOUNG_PAIR(
																										((obj_t)
																											BgL_arg1745z00_1903),
																										BNIL);
																									BgL_list1746z00_1904 =
																										MAKE_YOUNG_PAIR(((obj_t)
																											BgL_arg1741z00_1902),
																										BgL_arg1747z00_1905);
																								}
																								BgL_auxz00_3355 =
																									BgL_list1746z00_1904;
																						}}
																						((((BgL_sequencez00_bglt)
																									COBJECT
																									(BgL_new1138z00_1901))->
																								BgL_nodesz00) =
																							((obj_t) BgL_auxz00_3355),
																							BUNSPEC);
																					}
																					((((BgL_sequencez00_bglt)
																								COBJECT(BgL_new1138z00_1901))->
																							BgL_unsafez00) =
																						((bool_t) ((bool_t) 0)), BUNSPEC);
																					((((BgL_sequencez00_bglt)
																								COBJECT(BgL_new1138z00_1901))->
																							BgL_metaz00) =
																						((obj_t) BNIL), BUNSPEC);
																					return ((obj_t) BgL_new1138z00_1901);
																				}
																			}
																		else
																			{	/* Coerce/convert.scm 213 */
																				if (
																					(((obj_t) BgL_toz00_56) ==
																						BGl_za2stringza2z00zztype_cachez00))
																					{	/* Coerce/convert.scm 223 */
																						obj_t BgL_nodez00_1912;

																						BgL_nodez00_1912 =
																							BGl_runtimezd2typezd2errorz00zzcoerce_convertz00
																							(BgL_locz00_57,
																							(((BgL_typez00_bglt)
																									COBJECT(BgL_toz00_56))->
																								BgL_idz00), BgL_nodez00_58);
																						{	/* Coerce/convert.scm 224 */
																							obj_t BgL_arg1751z00_1913;

																							BgL_arg1751z00_1913 =
																								BGl_currentzd2functionzd2zztools_errorz00
																								();
																							if (CBOOL
																								(BGl_za2warningzd2typesza2zd2zzengine_paramz00))
																								{	/* Coerce/convert.scm 109 */
																									obj_t BgL_arg1532z00_2480;

																									{	/* Coerce/convert.scm 109 */
																										obj_t BgL_arg1534z00_2481;
																										obj_t BgL_arg1541z00_2482;

																										BgL_arg1534z00_2481 =
																											BGl_shapez00zztools_shapez00
																											(((obj_t) BgL_toz00_56));
																										BgL_arg1541z00_2482 =
																											BGl_shapez00zztools_shapez00
																											(((obj_t)
																												BgL_fromz00_55));
																										BgL_arg1532z00_2480 =
																											BGl_bigloozd2typezd2errorzd2msgzd2zz__errorz00
																											(BGl_string2006z00zzcoerce_convertz00,
																											BgL_arg1534z00_2481,
																											BgL_arg1541z00_2482);
																									}
																									BGl_userzd2warningzf2locationz20zztools_errorz00
																										(BgL_locz00_57,
																										BgL_arg1751z00_1913,
																										BGl_string2007z00zzcoerce_convertz00,
																										BgL_arg1532z00_2480);
																								}
																							else
																								{	/* Coerce/convert.scm 103 */
																									BFALSE;
																								}
																						}
																						BGl_lvtypezd2nodez12zc0zzast_lvtypez00
																							(((BgL_nodez00_bglt)
																								BgL_nodez00_1912));
																						{	/* Coerce/convert.scm 226 */
																							BgL_sequencez00_bglt
																								BgL_new1142z00_1914;
																							{	/* Coerce/convert.scm 226 */
																								BgL_sequencez00_bglt
																									BgL_new1141z00_1922;
																								BgL_new1141z00_1922 =
																									((BgL_sequencez00_bglt)
																									BOBJECT(GC_MALLOC(sizeof
																											(struct
																												BgL_sequencez00_bgl))));
																								{	/* Coerce/convert.scm 226 */
																									long BgL_arg1763z00_1923;

																									BgL_arg1763z00_1923 =
																										BGL_CLASS_NUM
																										(BGl_sequencez00zzast_nodez00);
																									BGL_OBJECT_CLASS_NUM_SET((
																											(BgL_objectz00_bglt)
																											BgL_new1141z00_1922),
																										BgL_arg1763z00_1923);
																								}
																								{	/* Coerce/convert.scm 226 */
																									BgL_objectz00_bglt
																										BgL_tmpz00_3402;
																									BgL_tmpz00_3402 =
																										((BgL_objectz00_bglt)
																										BgL_new1141z00_1922);
																									BGL_OBJECT_WIDENING_SET
																										(BgL_tmpz00_3402, BFALSE);
																								}
																								((BgL_objectz00_bglt)
																									BgL_new1141z00_1922);
																								BgL_new1142z00_1914 =
																									BgL_new1141z00_1922;
																							}
																							((((BgL_nodez00_bglt) COBJECT(
																											((BgL_nodez00_bglt)
																												BgL_new1142z00_1914)))->
																									BgL_locz00) =
																								((obj_t) BFALSE), BUNSPEC);
																							((((BgL_nodez00_bglt)
																										COBJECT(((BgL_nodez00_bglt)
																												BgL_new1142z00_1914)))->
																									BgL_typez00) =
																								((BgL_typez00_bglt)
																									BgL_toz00_56), BUNSPEC);
																							((((BgL_nodezf2effectzf2_bglt)
																										COBJECT((
																												(BgL_nodezf2effectzf2_bglt)
																												BgL_new1142z00_1914)))->
																									BgL_sidezd2effectzd2) =
																								((obj_t) BUNSPEC), BUNSPEC);
																							((((BgL_nodezf2effectzf2_bglt)
																										COBJECT((
																												(BgL_nodezf2effectzf2_bglt)
																												BgL_new1142z00_1914)))->
																									BgL_keyz00) =
																								((obj_t) BINT(-1L)), BUNSPEC);
																							{
																								obj_t BgL_auxz00_3415;

																								{	/* Coerce/convert.scm 229 */
																									BgL_nodez00_bglt
																										BgL_arg1752z00_1915;
																									BgL_literalz00_bglt
																										BgL_arg1753z00_1916;
																									BgL_arg1752z00_1915 =
																										BGl_coercez12z12zzcoerce_coercez00
																										(((BgL_nodez00_bglt)
																											BgL_nodez00_1912),
																										BUNSPEC, BgL_fromz00_55,
																										((bool_t) 0));
																									{	/* Coerce/convert.scm 230 */
																										BgL_literalz00_bglt
																											BgL_new1144z00_1919;
																										{	/* Coerce/convert.scm 230 */
																											BgL_literalz00_bglt
																												BgL_new1143z00_1920;
																											BgL_new1143z00_1920 =
																												((BgL_literalz00_bglt)
																												BOBJECT(GC_MALLOC(sizeof
																														(struct
																															BgL_literalz00_bgl))));
																											{	/* Coerce/convert.scm 230 */
																												long
																													BgL_arg1760z00_1921;
																												{	/* Coerce/convert.scm 230 */
																													obj_t
																														BgL_classz00_2487;
																													BgL_classz00_2487 =
																														BGl_literalz00zzast_nodez00;
																													BgL_arg1760z00_1921 =
																														BGL_CLASS_NUM
																														(BgL_classz00_2487);
																												}
																												BGL_OBJECT_CLASS_NUM_SET
																													(((BgL_objectz00_bglt)
																														BgL_new1143z00_1920),
																													BgL_arg1760z00_1921);
																											}
																											{	/* Coerce/convert.scm 230 */
																												BgL_objectz00_bglt
																													BgL_tmpz00_3422;
																												BgL_tmpz00_3422 =
																													((BgL_objectz00_bglt)
																													BgL_new1143z00_1920);
																												BGL_OBJECT_WIDENING_SET
																													(BgL_tmpz00_3422,
																													BFALSE);
																											}
																											((BgL_objectz00_bglt)
																												BgL_new1143z00_1920);
																											BgL_new1144z00_1919 =
																												BgL_new1143z00_1920;
																										}
																										((((BgL_nodez00_bglt)
																													COBJECT((
																															(BgL_nodez00_bglt)
																															BgL_new1144z00_1919)))->
																												BgL_locz00) =
																											((obj_t) BFALSE),
																											BUNSPEC);
																										((((BgL_nodez00_bglt)
																													COBJECT((
																															(BgL_nodez00_bglt)
																															BgL_new1144z00_1919)))->
																												BgL_typez00) =
																											((BgL_typez00_bglt)
																												BgL_toz00_56), BUNSPEC);
																										((((BgL_atomz00_bglt)
																													COBJECT((
																															(BgL_atomz00_bglt)
																															BgL_new1144z00_1919)))->
																												BgL_valuez00) =
																											((obj_t)
																												BGl_string2006z00zzcoerce_convertz00),
																											BUNSPEC);
																										BgL_arg1753z00_1916 =
																											BgL_new1144z00_1919;
																									}
																									{	/* Coerce/convert.scm 228 */
																										obj_t BgL_list1754z00_1917;

																										{	/* Coerce/convert.scm 228 */
																											obj_t BgL_arg1759z00_1918;

																											BgL_arg1759z00_1918 =
																												MAKE_YOUNG_PAIR(
																												((obj_t)
																													BgL_arg1753z00_1916),
																												BNIL);
																											BgL_list1754z00_1917 =
																												MAKE_YOUNG_PAIR(((obj_t)
																													BgL_arg1752z00_1915),
																												BgL_arg1759z00_1918);
																										}
																										BgL_auxz00_3415 =
																											BgL_list1754z00_1917;
																								}}
																								((((BgL_sequencez00_bglt)
																											COBJECT
																											(BgL_new1142z00_1914))->
																										BgL_nodesz00) =
																									((obj_t) BgL_auxz00_3415),
																									BUNSPEC);
																							}
																							((((BgL_sequencez00_bglt)
																										COBJECT
																										(BgL_new1142z00_1914))->
																									BgL_unsafez00) =
																								((bool_t) ((bool_t) 0)),
																								BUNSPEC);
																							((((BgL_sequencez00_bglt)
																										COBJECT
																										(BgL_new1142z00_1914))->
																									BgL_metaz00) =
																								((obj_t) BNIL), BUNSPEC);
																							return ((obj_t)
																								BgL_new1142z00_1914);
																						}
																					}
																				else
																					{	/* Coerce/convert.scm 232 */
																						obj_t BgL_arg1771z00_1925;

																						BgL_arg1771z00_1925 =
																							BGl_currentzd2functionzd2zztools_errorz00
																							();
																						{	/* Coerce/convert.scm 97 */
																							obj_t BgL_arg1497z00_2492;

																							{	/* Coerce/convert.scm 97 */
																								obj_t BgL_arg1519z00_2493;
																								obj_t BgL_arg1528z00_2494;

																								BgL_arg1519z00_2493 =
																									BGl_shapez00zztools_shapez00(
																									((obj_t) BgL_toz00_56));
																								BgL_arg1528z00_2494 =
																									BGl_shapez00zztools_shapez00(
																									((obj_t) BgL_fromz00_55));
																								BgL_arg1497z00_2492 =
																									BGl_bigloozd2typezd2errorzd2msgzd2zz__errorz00
																									(BGl_string2006z00zzcoerce_convertz00,
																									BgL_arg1519z00_2493,
																									BgL_arg1528z00_2494);
																							}
																							return
																								BGl_userzd2errorzf2locationz20zztools_errorz00
																								(BgL_locz00_57,
																								BgL_arg1771z00_1925,
																								BGl_string2007z00zzcoerce_convertz00,
																								BgL_arg1497z00_2492, BNIL);
																						}
																					}
																			}
																	}
															}
													}
											}
									}
							}
					}
			}
		}

	}



/* convert! */
	BGL_EXPORTED_DEF BgL_nodez00_bglt
		BGl_convertz12z12zzcoerce_convertz00(BgL_nodez00_bglt BgL_nodez00_59,
		BgL_typez00_bglt BgL_fromz00_60, BgL_typez00_bglt BgL_toz00_61,
		bool_t BgL_safez00_62)
	{
		{	/* Coerce/convert.scm 242 */
			if ((((obj_t) BgL_fromz00_60) == ((obj_t) BgL_toz00_61)))
				{	/* Coerce/convert.scm 246 */
					return BgL_nodez00_59;
				}
			else
				{	/* Coerce/convert.scm 248 */
					BgL_typez00_bglt BgL_toz00_1926;
					BgL_typez00_bglt BgL_froz00_1927;

					BgL_toz00_1926 =
						BGl_getzd2aliasedzd2typez00zztype_typez00(BgL_toz00_61);
					BgL_froz00_1927 =
						BGl_getzd2aliasedzd2typez00zztype_typez00(BgL_fromz00_60);
					{	/* Coerce/convert.scm 250 */
						bool_t BgL_test2069z00_3453;

						if ((((obj_t) BgL_froz00_1927) == ((obj_t) BgL_toz00_1926)))
							{	/* Coerce/convert.scm 250 */
								BgL_test2069z00_3453 = ((bool_t) 1);
							}
						else
							{	/* Coerce/convert.scm 250 */
								BgL_test2069z00_3453 =
									(((BgL_typez00_bglt) COBJECT(BgL_froz00_1927))->
									BgL_magiczf3zf3);
							}
						if (BgL_test2069z00_3453)
							{	/* Coerce/convert.scm 250 */
								return BgL_nodez00_59;
							}
						else
							{	/* Coerce/convert.scm 252 */
								obj_t BgL_coercerz00_1929;
								obj_t BgL_locz00_1930;

								BgL_coercerz00_1929 =
									BGl_findzd2coercerzd2zztype_coercionz00(BgL_froz00_1927,
									BgL_toz00_1926);
								BgL_locz00_1930 =
									(((BgL_nodez00_bglt) COBJECT(BgL_nodez00_59))->BgL_locz00);
								{	/* Coerce/convert.scm 254 */
									bool_t BgL_test2071z00_3461;

									if (STRUCTP(BgL_coercerz00_1929))
										{	/* Coerce/convert.scm 254 */
											BgL_test2071z00_3461 =
												(STRUCT_KEY(BgL_coercerz00_1929) == CNST_TABLE_REF(8L));
										}
									else
										{	/* Coerce/convert.scm 254 */
											BgL_test2071z00_3461 = ((bool_t) 0);
										}
									if (BgL_test2071z00_3461)
										{	/* Coerce/convert.scm 258 */
											obj_t BgL_g1145z00_1932;
											obj_t BgL_g1146z00_1933;

											BgL_g1145z00_1932 =
												STRUCT_REF(BgL_coercerz00_1929, (int) (2L));
											BgL_g1146z00_1933 =
												STRUCT_REF(BgL_coercerz00_1929, (int) (3L));
											{
												obj_t BgL_checksz00_1935;
												obj_t BgL_coercesz00_1936;
												BgL_nodez00_bglt BgL_nodez00_1937;

												{
													obj_t BgL_auxz00_3471;

													BgL_checksz00_1935 = BgL_g1145z00_1932;
													BgL_coercesz00_1936 = BgL_g1146z00_1933;
													BgL_nodez00_1937 = BgL_nodez00_59;
												BgL_zc3z04anonymousza31775ze3z87_1938:
													if (NULLP(BgL_checksz00_1935))
														{	/* Coerce/convert.scm 262 */
															if (NULLP(BgL_coercesz00_1936))
																{	/* Coerce/convert.scm 263 */
																	BgL_auxz00_3471 = ((obj_t) BgL_nodez00_1937);
																}
															else
																{	/* Coerce/convert.scm 266 */
																	obj_t BgL_arg1793z00_1941;
																	obj_t BgL_arg1794z00_1942;

																	BgL_arg1793z00_1941 =
																		BGl_shapez00zztools_shapez00(
																		((obj_t) BgL_fromz00_60));
																	BgL_arg1794z00_1942 =
																		BGl_shapez00zztools_shapez00(
																		((obj_t) BgL_toz00_1926));
																	BgL_auxz00_3471 =
																		BGl_internalzd2errorzd2zztools_errorz00
																		(BGl_string2009z00zzcoerce_convertz00,
																		BgL_arg1793z00_1941, BgL_arg1794z00_1942);
																}
														}
													else
														{	/* Coerce/convert.scm 262 */
															if (NULLP(BgL_coercesz00_1936))
																{	/* Coerce/convert.scm 270 */
																	obj_t BgL_arg1798z00_1944;
																	obj_t BgL_arg1799z00_1945;

																	BgL_arg1798z00_1944 =
																		BGl_shapez00zztools_shapez00(
																		((obj_t) BgL_fromz00_60));
																	BgL_arg1799z00_1945 =
																		BGl_shapez00zztools_shapez00(
																		((obj_t) BgL_toz00_1926));
																	BgL_auxz00_3471 =
																		BGl_internalzd2errorzd2zztools_errorz00
																		(BGl_string2009z00zzcoerce_convertz00,
																		BgL_arg1798z00_1944, BgL_arg1799z00_1945);
																}
															else
																{	/* Coerce/convert.scm 273 */
																	obj_t BgL_arg1800z00_1946;
																	obj_t BgL_arg1802z00_1947;
																	BgL_nodez00_bglt BgL_arg1816z00_1948;

																	BgL_arg1800z00_1946 =
																		CDR(((obj_t) BgL_checksz00_1935));
																	BgL_arg1802z00_1947 =
																		CDR(((obj_t) BgL_coercesz00_1936));
																	{	/* Coerce/convert.scm 275 */
																		obj_t BgL_arg1822z00_1949;
																		obj_t BgL_arg1823z00_1950;
																		obj_t BgL_arg1824z00_1951;
																		obj_t BgL_arg1825z00_1952;

																		{	/* Coerce/convert.scm 275 */
																			obj_t BgL_pairz00_2509;

																			BgL_pairz00_2509 =
																				CAR(((obj_t) BgL_checksz00_1935));
																			BgL_arg1822z00_1949 =
																				CDR(BgL_pairz00_2509);
																		}
																		{	/* Coerce/convert.scm 276 */
																			obj_t BgL_pairz00_2513;

																			BgL_pairz00_2513 =
																				CAR(((obj_t) BgL_coercesz00_1936));
																			BgL_arg1823z00_1950 =
																				CDR(BgL_pairz00_2513);
																		}
																		{	/* Coerce/convert.scm 277 */
																			obj_t BgL_pairz00_2517;

																			BgL_pairz00_2517 =
																				CAR(((obj_t) BgL_checksz00_1935));
																			BgL_arg1824z00_1951 =
																				CAR(BgL_pairz00_2517);
																		}
																		{	/* Coerce/convert.scm 278 */
																			obj_t BgL_pairz00_2521;

																			BgL_pairz00_2521 =
																				CAR(((obj_t) BgL_coercesz00_1936));
																			BgL_arg1825z00_1952 =
																				CAR(BgL_pairz00_2521);
																		}
																		BgL_arg1816z00_1948 =
																			BGl_makezd2onezd2conversionz00zzcoerce_convertz00
																			(BgL_arg1822z00_1949, BgL_arg1823z00_1950,
																			BgL_arg1824z00_1951, BgL_arg1825z00_1952,
																			BgL_nodez00_1937, BgL_safez00_62);
																	}
																	{
																		BgL_nodez00_bglt BgL_nodez00_3508;
																		obj_t BgL_coercesz00_3507;
																		obj_t BgL_checksz00_3506;

																		BgL_checksz00_3506 = BgL_arg1800z00_1946;
																		BgL_coercesz00_3507 = BgL_arg1802z00_1947;
																		BgL_nodez00_3508 = BgL_arg1816z00_1948;
																		BgL_nodez00_1937 = BgL_nodez00_3508;
																		BgL_coercesz00_1936 = BgL_coercesz00_3507;
																		BgL_checksz00_1935 = BgL_checksz00_3506;
																		goto BgL_zc3z04anonymousza31775ze3z87_1938;
																	}
																}
														}
													return ((BgL_nodez00_bglt) BgL_auxz00_3471);
												}
											}
										}
									else
										{	/* Coerce/convert.scm 254 */
											return
												((BgL_nodez00_bglt)
												BGl_convertzd2errorzd2zzcoerce_convertz00
												(BgL_froz00_1927, BgL_toz00_1926, BgL_locz00_1930,
													BgL_nodez00_59));
										}
								}
							}
					}
				}
		}

	}



/* &convert! */
	BgL_nodez00_bglt BGl_z62convertz12z70zzcoerce_convertz00(obj_t
		BgL_envz00_2780, obj_t BgL_nodez00_2781, obj_t BgL_fromz00_2782,
		obj_t BgL_toz00_2783, obj_t BgL_safez00_2784)
	{
		{	/* Coerce/convert.scm 242 */
			return
				BGl_convertz12z12zzcoerce_convertz00(
				((BgL_nodez00_bglt) BgL_nodez00_2781),
				((BgL_typez00_bglt) BgL_fromz00_2782),
				((BgL_typez00_bglt) BgL_toz00_2783), CBOOL(BgL_safez00_2784));
		}

	}



/* make-one-conversion */
	BgL_nodez00_bglt BGl_makezd2onezd2conversionz00zzcoerce_convertz00(obj_t
		BgL_fromz00_63, obj_t BgL_toz00_64, obj_t BgL_checkopz00_65,
		obj_t BgL_coerceopz00_66, BgL_nodez00_bglt BgL_nodez00_67,
		bool_t BgL_safez00_68)
	{
		{	/* Coerce/convert.scm 291 */
			{	/* Coerce/convert.scm 292 */
				bool_t BgL_test2076z00_3517;

				if ((BgL_checkopz00_65 == BTRUE))
					{	/* Coerce/convert.scm 292 */
						BgL_test2076z00_3517 = ((bool_t) 1);
					}
				else
					{	/* Coerce/convert.scm 292 */
						if (BgL_safez00_68)
							{	/* Coerce/convert.scm 292 */
								BgL_test2076z00_3517 = ((bool_t) 0);
							}
						else
							{	/* Coerce/convert.scm 292 */
								BgL_test2076z00_3517 = ((bool_t) 1);
							}
					}
				if (BgL_test2076z00_3517)
					{	/* Coerce/convert.scm 292 */
						return
							BGl_dozd2convertzd2zzcoerce_convertz00(BgL_coerceopz00_66,
							BgL_nodez00_67, ((BgL_typez00_bglt) BgL_fromz00_63));
					}
				else
					{	/* Coerce/convert.scm 294 */
						bool_t BgL_test2079z00_3523;

						{	/* Coerce/convert.scm 294 */
							obj_t BgL_classz00_2522;

							BgL_classz00_2522 = BGl_tclassz00zzobject_classz00;
							if (BGL_OBJECTP(BgL_fromz00_63))
								{	/* Coerce/convert.scm 294 */
									BgL_objectz00_bglt BgL_arg1801z00_2524;

									BgL_arg1801z00_2524 = (BgL_objectz00_bglt) (BgL_fromz00_63);
									if (BGL_CONDEXPAND_ISA_ARCH64())
										{	/* Coerce/convert.scm 294 */
											long BgL_idxz00_2530;

											BgL_idxz00_2530 =
												BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_2524);
											BgL_test2079z00_3523 =
												(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
													(BgL_idxz00_2530 + 2L)) == BgL_classz00_2522);
										}
									else
										{	/* Coerce/convert.scm 294 */
											bool_t BgL_res1999z00_2552;

											{	/* Coerce/convert.scm 294 */
												obj_t BgL_oclassz00_2538;

												{	/* Coerce/convert.scm 294 */
													long BgL_arg1808z00_2544;

													{	/* Coerce/convert.scm 294 */
														long BgL_arg1809z00_2545;

														BgL_arg1809z00_2545 =
															BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_2524);
														BgL_arg1808z00_2544 =
															(BgL_arg1809z00_2545 - OBJECT_TYPE);
													}
													BgL_oclassz00_2538 =
														VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
														BgL_arg1808z00_2544);
												}
												{	/* Coerce/convert.scm 294 */
													bool_t BgL__ortest_1115z00_2539;

													BgL__ortest_1115z00_2539 =
														(BgL_classz00_2522 == BgL_oclassz00_2538);
													if (BgL__ortest_1115z00_2539)
														{	/* Coerce/convert.scm 294 */
															BgL_res1999z00_2552 = BgL__ortest_1115z00_2539;
														}
													else
														{	/* Coerce/convert.scm 294 */
															long BgL_odepthz00_2540;

															BgL_odepthz00_2540 =
																BGL_CLASS_DEPTH(BgL_oclassz00_2538);
															if ((2L < BgL_odepthz00_2540))
																{	/* Coerce/convert.scm 294 */
																	obj_t BgL_arg1797z00_2542;

																	BgL_arg1797z00_2542 =
																		BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_2538,
																		2L);
																	BgL_res1999z00_2552 =
																		(BgL_arg1797z00_2542 == BgL_classz00_2522);
																}
															else
																{	/* Coerce/convert.scm 294 */
																	BgL_res1999z00_2552 = ((bool_t) 0);
																}
														}
												}
											}
											BgL_test2079z00_3523 = BgL_res1999z00_2552;
										}
								}
							else
								{	/* Coerce/convert.scm 294 */
									BgL_test2079z00_3523 = ((bool_t) 0);
								}
						}
						if (BgL_test2079z00_3523)
							{	/* Coerce/convert.scm 294 */
								return
									BGl_makezd2onezd2classzd2conversionzd2zzcoerce_convertz00
									(BgL_fromz00_63, BgL_toz00_64, BgL_checkopz00_65,
									BgL_coerceopz00_66, BgL_nodez00_67);
							}
						else
							{	/* Coerce/convert.scm 294 */
								return
									BGl_makezd2onezd2typezd2conversionzd2zzcoerce_convertz00
									(BgL_fromz00_63, BgL_toz00_64, BgL_checkopz00_65,
									BgL_coerceopz00_66, BgL_nodez00_67);
							}
					}
			}
		}

	}



/* skip-let-var */
	BgL_nodez00_bglt BGl_skipzd2letzd2varz00zzcoerce_convertz00(BgL_nodez00_bglt
		BgL_nodez00_69)
	{
		{	/* Coerce/convert.scm 301 */
		BGl_skipzd2letzd2varz00zzcoerce_convertz00:
			{	/* Coerce/convert.scm 302 */
				bool_t BgL_test2084z00_3545;

				{	/* Coerce/convert.scm 302 */
					obj_t BgL_classz00_2553;

					BgL_classz00_2553 = BGl_letzd2varzd2zzast_nodez00;
					{	/* Coerce/convert.scm 302 */
						BgL_objectz00_bglt BgL_arg1801z00_2555;

						{	/* Coerce/convert.scm 302 */
							obj_t BgL_tmpz00_3546;

							BgL_tmpz00_3546 = ((obj_t) ((BgL_objectz00_bglt) BgL_nodez00_69));
							BgL_arg1801z00_2555 = (BgL_objectz00_bglt) (BgL_tmpz00_3546);
						}
						if (BGL_CONDEXPAND_ISA_ARCH64())
							{	/* Coerce/convert.scm 302 */
								long BgL_idxz00_2561;

								BgL_idxz00_2561 =
									BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_2555);
								BgL_test2084z00_3545 =
									(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
										(BgL_idxz00_2561 + 3L)) == BgL_classz00_2553);
							}
						else
							{	/* Coerce/convert.scm 302 */
								bool_t BgL_res2000z00_2583;

								{	/* Coerce/convert.scm 302 */
									obj_t BgL_oclassz00_2569;

									{	/* Coerce/convert.scm 302 */
										long BgL_arg1808z00_2575;

										{	/* Coerce/convert.scm 302 */
											long BgL_arg1809z00_2576;

											BgL_arg1809z00_2576 =
												BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_2555);
											BgL_arg1808z00_2575 = (BgL_arg1809z00_2576 - OBJECT_TYPE);
										}
										BgL_oclassz00_2569 =
											VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
											BgL_arg1808z00_2575);
									}
									{	/* Coerce/convert.scm 302 */
										bool_t BgL__ortest_1115z00_2570;

										BgL__ortest_1115z00_2570 =
											(BgL_classz00_2553 == BgL_oclassz00_2569);
										if (BgL__ortest_1115z00_2570)
											{	/* Coerce/convert.scm 302 */
												BgL_res2000z00_2583 = BgL__ortest_1115z00_2570;
											}
										else
											{	/* Coerce/convert.scm 302 */
												long BgL_odepthz00_2571;

												BgL_odepthz00_2571 =
													BGL_CLASS_DEPTH(BgL_oclassz00_2569);
												if ((3L < BgL_odepthz00_2571))
													{	/* Coerce/convert.scm 302 */
														obj_t BgL_arg1797z00_2573;

														BgL_arg1797z00_2573 =
															BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_2569, 3L);
														BgL_res2000z00_2583 =
															(BgL_arg1797z00_2573 == BgL_classz00_2553);
													}
												else
													{	/* Coerce/convert.scm 302 */
														BgL_res2000z00_2583 = ((bool_t) 0);
													}
											}
									}
								}
								BgL_test2084z00_3545 = BgL_res2000z00_2583;
							}
					}
				}
				if (BgL_test2084z00_3545)
					{	/* Coerce/convert.scm 303 */
						BgL_nodez00_bglt BgL_arg1829z00_1957;

						BgL_arg1829z00_1957 =
							(((BgL_letzd2varzd2_bglt) COBJECT(
									((BgL_letzd2varzd2_bglt) BgL_nodez00_69)))->BgL_bodyz00);
						{
							BgL_nodez00_bglt BgL_nodez00_3568;

							BgL_nodez00_3568 = BgL_arg1829z00_1957;
							BgL_nodez00_69 = BgL_nodez00_3568;
							goto BGl_skipzd2letzd2varz00zzcoerce_convertz00;
						}
					}
				else
					{	/* Coerce/convert.scm 302 */
						return BgL_nodez00_69;
					}
			}
		}

	}



/* make-one-type-conversion */
	BgL_nodez00_bglt
		BGl_makezd2onezd2typezd2conversionzd2zzcoerce_convertz00(obj_t
		BgL_fromz00_70, obj_t BgL_toz00_71, obj_t BgL_checkzd2opzd2_72,
		obj_t BgL_coercezd2opzd2_73, BgL_nodez00_bglt BgL_nodez00_74)
	{
		{	/* Coerce/convert.scm 309 */
			{	/* Coerce/convert.scm 312 */
				obj_t BgL_auxz00_1958;

				BgL_auxz00_1958 =
					BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00
					(BGl_gensymz00zz__r4_symbols_6_4z00(CNST_TABLE_REF(5L)));
				{	/* Coerce/convert.scm 312 */
					obj_t BgL_locz00_1959;

					BgL_locz00_1959 =
						(((BgL_nodez00_bglt) COBJECT(BgL_nodez00_74))->BgL_locz00);
					{	/* Coerce/convert.scm 313 */
						BgL_nodez00_bglt BgL_lnodez00_1960;

						{	/* Coerce/convert.scm 321 */
							obj_t BgL_arg1838z00_1974;

							{	/* Coerce/convert.scm 321 */
								obj_t BgL_arg1839z00_1975;

								{	/* Coerce/convert.scm 321 */
									obj_t BgL_arg1840z00_1976;
									obj_t BgL_arg1841z00_1977;

									{	/* Coerce/convert.scm 321 */
										obj_t BgL_arg1842z00_1978;

										{	/* Coerce/convert.scm 321 */
											obj_t BgL_arg1843z00_1979;
											obj_t BgL_arg1844z00_1980;

											{	/* Coerce/convert.scm 321 */
												obj_t BgL_arg1845z00_1981;

												{	/* Coerce/convert.scm 321 */
													obj_t BgL_arg1846z00_1982;

													BgL_arg1846z00_1982 =
														(((BgL_typez00_bglt) COBJECT(
																((BgL_typez00_bglt) BgL_fromz00_70)))->
														BgL_idz00);
													BgL_arg1845z00_1981 =
														BGl_makezd2typedzd2identz00zzast_identz00
														(BgL_auxz00_1958, BgL_arg1846z00_1982);
												}
												BgL_arg1843z00_1979 =
													BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00
													(BgL_arg1845z00_1981);
											}
											BgL_arg1844z00_1980 = MAKE_YOUNG_PAIR(BUNSPEC, BNIL);
											BgL_arg1842z00_1978 =
												MAKE_YOUNG_PAIR(BgL_arg1843z00_1979,
												BgL_arg1844z00_1980);
										}
										BgL_arg1840z00_1976 =
											MAKE_YOUNG_PAIR(BgL_arg1842z00_1978, BNIL);
									}
									{	/* Coerce/convert.scm 323 */
										obj_t BgL_arg1848z00_1983;

										{	/* Coerce/convert.scm 323 */
											obj_t BgL_arg1850z00_1984;

											{	/* Coerce/convert.scm 323 */
												obj_t BgL_arg1851z00_1985;
												obj_t BgL_arg1852z00_1986;

												{	/* Coerce/convert.scm 323 */
													obj_t BgL_arg1853z00_1987;

													BgL_arg1853z00_1987 =
														MAKE_YOUNG_PAIR(BgL_auxz00_1958, BNIL);
													BgL_arg1851z00_1985 =
														MAKE_YOUNG_PAIR(BgL_checkzd2opzd2_72,
														BgL_arg1853z00_1987);
												}
												{	/* Coerce/convert.scm 325 */
													obj_t BgL_arg1854z00_1988;

													{	/* Coerce/convert.scm 325 */
														obj_t BgL_arg1855z00_1989;

														{	/* Coerce/convert.scm 325 */
															obj_t BgL_arg1856z00_1990;

															BgL_arg1856z00_1990 =
																(((BgL_typez00_bglt) COBJECT(
																		((BgL_typez00_bglt) BgL_toz00_71)))->
																BgL_idz00);
															BgL_arg1855z00_1989 =
																BGl_runtimezd2typezd2errorzf2idzf2zzcoerce_convertz00
																(BgL_locz00_1959, BgL_arg1856z00_1990,
																BgL_auxz00_1958);
														}
														BgL_arg1854z00_1988 =
															MAKE_YOUNG_PAIR(BgL_arg1855z00_1989, BNIL);
													}
													BgL_arg1852z00_1986 =
														MAKE_YOUNG_PAIR(BgL_auxz00_1958,
														BgL_arg1854z00_1988);
												}
												BgL_arg1850z00_1984 =
													MAKE_YOUNG_PAIR(BgL_arg1851z00_1985,
													BgL_arg1852z00_1986);
											}
											BgL_arg1848z00_1983 =
												MAKE_YOUNG_PAIR(CNST_TABLE_REF(9L),
												BgL_arg1850z00_1984);
										}
										BgL_arg1841z00_1977 =
											MAKE_YOUNG_PAIR(BgL_arg1848z00_1983, BNIL);
									}
									BgL_arg1839z00_1975 =
										MAKE_YOUNG_PAIR(BgL_arg1840z00_1976, BgL_arg1841z00_1977);
								}
								BgL_arg1838z00_1974 =
									MAKE_YOUNG_PAIR(CNST_TABLE_REF(7L), BgL_arg1839z00_1975);
							}
							BgL_lnodez00_1960 =
								BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00
								(BgL_arg1838z00_1974, BgL_locz00_1959);
						}
						{	/* Coerce/convert.scm 314 */

							BGl_za2checkza2z00zzcoerce_convertz00 =
								(1L + BGl_za2checkza2z00zzcoerce_convertz00);
							if (CBOOL(BGl_za2warningzd2typesza2zd2zzengine_paramz00))
								{	/* Coerce/convert.scm 83 */
									BGl_notifyzd2typezd2testz00zzcoerce_convertz00(BgL_fromz00_70,
										BgL_toz00_71, BgL_locz00_1959);
								}
							else
								{	/* Coerce/convert.scm 83 */
									BFALSE;
								}
							BGl_spreadzd2sidezd2effectz12z12zzeffect_spreadz00
								(BgL_lnodez00_1960);
							{	/* Coerce/convert.scm 329 */
								obj_t BgL_varz00_1961;

								{	/* Coerce/convert.scm 329 */
									obj_t BgL_pairz00_2591;

									{	/* Coerce/convert.scm 329 */
										obj_t BgL_pairz00_2590;

										BgL_pairz00_2590 =
											(((BgL_letzd2varzd2_bglt) COBJECT(
													((BgL_letzd2varzd2_bglt) BgL_lnodez00_1960)))->
											BgL_bindingsz00);
										BgL_pairz00_2591 = CAR(BgL_pairz00_2590);
									}
									BgL_varz00_1961 = CAR(BgL_pairz00_2591);
								}
								{	/* Coerce/convert.scm 329 */
									BgL_nodez00_bglt BgL_coercezd2appzd2_1962;

									{	/* Coerce/convert.scm 331 */
										BgL_refz00_bglt BgL_arg1834z00_1968;

										{	/* Coerce/convert.scm 331 */
											BgL_refz00_bglt BgL_new1148z00_1969;

											{	/* Coerce/convert.scm 332 */
												BgL_refz00_bglt BgL_new1147z00_1970;

												BgL_new1147z00_1970 =
													((BgL_refz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
																BgL_refz00_bgl))));
												{	/* Coerce/convert.scm 332 */
													long BgL_arg1835z00_1971;

													BgL_arg1835z00_1971 =
														BGL_CLASS_NUM(BGl_refz00zzast_nodez00);
													BGL_OBJECT_CLASS_NUM_SET(
														((BgL_objectz00_bglt) BgL_new1147z00_1970),
														BgL_arg1835z00_1971);
												}
												{	/* Coerce/convert.scm 332 */
													BgL_objectz00_bglt BgL_tmpz00_3608;

													BgL_tmpz00_3608 =
														((BgL_objectz00_bglt) BgL_new1147z00_1970);
													BGL_OBJECT_WIDENING_SET(BgL_tmpz00_3608, BFALSE);
												}
												((BgL_objectz00_bglt) BgL_new1147z00_1970);
												BgL_new1148z00_1969 = BgL_new1147z00_1970;
											}
											((((BgL_nodez00_bglt) COBJECT(
															((BgL_nodez00_bglt) BgL_new1148z00_1969)))->
													BgL_locz00) = ((obj_t) BgL_locz00_1959), BUNSPEC);
											((((BgL_nodez00_bglt) COBJECT(((BgL_nodez00_bglt)
																BgL_new1148z00_1969)))->BgL_typez00) =
												((BgL_typez00_bglt)
													BGl_strictzd2nodezd2typez00zzast_nodez00((
															(BgL_typez00_bglt) BgL_toz00_71),
														((BgL_typez00_bglt) BgL_fromz00_70))), BUNSPEC);
											((((BgL_varz00_bglt) COBJECT(((BgL_varz00_bglt)
																BgL_new1148z00_1969)))->BgL_variablez00) =
												((BgL_variablez00_bglt) ((BgL_variablez00_bglt)
														BgL_varz00_1961)), BUNSPEC);
											BgL_arg1834z00_1968 = BgL_new1148z00_1969;
										}
										BgL_coercezd2appzd2_1962 =
											BGl_dozd2convertzd2zzcoerce_convertz00
											(BgL_coercezd2opzd2_73,
											((BgL_nodez00_bglt) BgL_arg1834z00_1968),
											((BgL_typez00_bglt) BgL_fromz00_70));
									}
									{	/* Coerce/convert.scm 330 */
										BgL_nodez00_bglt BgL_condnz00_1963;

										BgL_condnz00_1963 =
											BGl_skipzd2letzd2varz00zzcoerce_convertz00
											(BgL_lnodez00_1960);
										{	/* Coerce/convert.scm 336 */

											((((BgL_variablez00_bglt) COBJECT(
															((BgL_variablez00_bglt)
																((BgL_localz00_bglt) BgL_varz00_1961))))->
													BgL_typez00) =
												((BgL_typez00_bglt) ((BgL_typez00_bglt)
														BgL_fromz00_70)), BUNSPEC);
											{	/* Coerce/convert.scm 340 */
												obj_t BgL_arg1830z00_1964;

												{	/* Coerce/convert.scm 340 */
													obj_t BgL_pairz00_2599;

													BgL_pairz00_2599 =
														(((BgL_letzd2varzd2_bglt) COBJECT(
																((BgL_letzd2varzd2_bglt) BgL_lnodez00_1960)))->
														BgL_bindingsz00);
													BgL_arg1830z00_1964 = CAR(BgL_pairz00_2599);
												}
												{	/* Coerce/convert.scm 340 */
													obj_t BgL_auxz00_3635;
													obj_t BgL_tmpz00_3633;

													BgL_auxz00_3635 = ((obj_t) BgL_nodez00_74);
													BgL_tmpz00_3633 = ((obj_t) BgL_arg1830z00_1964);
													SET_CDR(BgL_tmpz00_3633, BgL_auxz00_3635);
											}}
											((((BgL_nodez00_bglt) COBJECT(BgL_nodez00_74))->
													BgL_typez00) =
												((BgL_typez00_bglt) ((BgL_typez00_bglt)
														BgL_fromz00_70)), BUNSPEC);
											((((BgL_conditionalz00_bglt)
														COBJECT(((BgL_conditionalz00_bglt)
																BgL_condnz00_1963)))->BgL_truez00) =
												((BgL_nodez00_bglt) BgL_coercezd2appzd2_1962), BUNSPEC);
											{	/* Coerce/convert.scm 344 */
												BgL_nodez00_bglt BgL_arg1832z00_1966;

												{	/* Coerce/convert.scm 344 */
													BgL_nodez00_bglt BgL_arg1833z00_1967;

													BgL_arg1833z00_1967 =
														(((BgL_conditionalz00_bglt) COBJECT(
																((BgL_conditionalz00_bglt)
																	BgL_condnz00_1963)))->BgL_falsez00);
													BgL_arg1832z00_1966 =
														BGl_coercez12z12zzcoerce_coercez00
														(BgL_arg1833z00_1967, BUNSPEC,
														((BgL_typez00_bglt) BgL_fromz00_70), ((bool_t) 0));
												}
												((((BgL_conditionalz00_bglt) COBJECT(
																((BgL_conditionalz00_bglt)
																	BgL_condnz00_1963)))->BgL_falsez00) =
													((BgL_nodez00_bglt) BgL_arg1832z00_1966), BUNSPEC);
											}
											BGl_lvtypezd2nodez12zc0zzast_lvtypez00(BgL_lnodez00_1960);
											return BgL_lnodez00_1960;
										}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* make-one-class-conversion */
	BgL_nodez00_bglt
		BGl_makezd2onezd2classzd2conversionzd2zzcoerce_convertz00(obj_t
		BgL_fromz00_75, obj_t BgL_toz00_76, obj_t BgL_checkzd2opzd2_77,
		obj_t BgL_coercezd2opzd2_78, BgL_nodez00_bglt BgL_nodez00_79)
	{
		{	/* Coerce/convert.scm 354 */
			{	/* Coerce/convert.scm 357 */
				bool_t BgL_test2089z00_3649;

				{	/* Coerce/convert.scm 357 */
					bool_t BgL_test2090z00_3650;

					{	/* Coerce/convert.scm 357 */
						obj_t BgL_classz00_2608;

						BgL_classz00_2608 = BGl_tclassz00zzobject_classz00;
						if (BGL_OBJECTP(BgL_toz00_76))
							{	/* Coerce/convert.scm 357 */
								BgL_objectz00_bglt BgL_arg1801z00_2610;

								BgL_arg1801z00_2610 = (BgL_objectz00_bglt) (BgL_toz00_76);
								if (BGL_CONDEXPAND_ISA_ARCH64())
									{	/* Coerce/convert.scm 357 */
										long BgL_idxz00_2616;

										BgL_idxz00_2616 =
											BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_2610);
										BgL_test2090z00_3650 =
											(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
												(BgL_idxz00_2616 + 2L)) == BgL_classz00_2608);
									}
								else
									{	/* Coerce/convert.scm 357 */
										bool_t BgL_res2001z00_2638;

										{	/* Coerce/convert.scm 357 */
											obj_t BgL_oclassz00_2624;

											{	/* Coerce/convert.scm 357 */
												long BgL_arg1808z00_2630;

												{	/* Coerce/convert.scm 357 */
													long BgL_arg1809z00_2631;

													BgL_arg1809z00_2631 =
														BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_2610);
													BgL_arg1808z00_2630 =
														(BgL_arg1809z00_2631 - OBJECT_TYPE);
												}
												BgL_oclassz00_2624 =
													VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
													BgL_arg1808z00_2630);
											}
											{	/* Coerce/convert.scm 357 */
												bool_t BgL__ortest_1115z00_2625;

												BgL__ortest_1115z00_2625 =
													(BgL_classz00_2608 == BgL_oclassz00_2624);
												if (BgL__ortest_1115z00_2625)
													{	/* Coerce/convert.scm 357 */
														BgL_res2001z00_2638 = BgL__ortest_1115z00_2625;
													}
												else
													{	/* Coerce/convert.scm 357 */
														long BgL_odepthz00_2626;

														BgL_odepthz00_2626 =
															BGL_CLASS_DEPTH(BgL_oclassz00_2624);
														if ((2L < BgL_odepthz00_2626))
															{	/* Coerce/convert.scm 357 */
																obj_t BgL_arg1797z00_2628;

																BgL_arg1797z00_2628 =
																	BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_2624,
																	2L);
																BgL_res2001z00_2638 =
																	(BgL_arg1797z00_2628 == BgL_classz00_2608);
															}
														else
															{	/* Coerce/convert.scm 357 */
																BgL_res2001z00_2638 = ((bool_t) 0);
															}
													}
											}
										}
										BgL_test2090z00_3650 = BgL_res2001z00_2638;
									}
							}
						else
							{	/* Coerce/convert.scm 357 */
								BgL_test2090z00_3650 = ((bool_t) 0);
							}
					}
					if (BgL_test2090z00_3650)
						{	/* Coerce/convert.scm 357 */
							BgL_test2089z00_3649 =
								BGl_typezd2subclasszf3z21zzobject_classz00(
								((BgL_typez00_bglt) BgL_fromz00_75),
								((BgL_typez00_bglt) BgL_toz00_76));
						}
					else
						{	/* Coerce/convert.scm 357 */
							BgL_test2089z00_3649 = ((bool_t) 0);
						}
				}
				if (BgL_test2089z00_3649)
					{	/* Coerce/convert.scm 357 */
						return
							BGl_dozd2convertzd2zzcoerce_convertz00(BgL_coercezd2opzd2_78,
							BgL_nodez00_79, ((BgL_typez00_bglt) BgL_fromz00_75));
					}
				else
					{	/* Coerce/convert.scm 359 */
						obj_t BgL_auxz00_1994;

						BgL_auxz00_1994 =
							BGl_gensymz00zz__r4_symbols_6_4z00(CNST_TABLE_REF(5L));
						{	/* Coerce/convert.scm 359 */
							obj_t BgL_aux2z00_1995;

							BgL_aux2z00_1995 =
								BGl_gensymz00zz__r4_symbols_6_4z00(CNST_TABLE_REF(10L));
							{	/* Coerce/convert.scm 360 */
								obj_t BgL_locz00_1996;

								BgL_locz00_1996 =
									(((BgL_nodez00_bglt) COBJECT(BgL_nodez00_79))->BgL_locz00);
								{	/* Coerce/convert.scm 361 */
									BgL_nodez00_bglt BgL_lnodez00_1997;

									{	/* Coerce/convert.scm 364 */
										obj_t BgL_arg1880z00_2021;

										{	/* Coerce/convert.scm 364 */
											obj_t BgL_arg1881z00_2022;

											{	/* Coerce/convert.scm 364 */
												obj_t BgL_arg1882z00_2023;
												obj_t BgL_arg1883z00_2024;

												{	/* Coerce/convert.scm 364 */
													obj_t BgL_arg1884z00_2025;

													{	/* Coerce/convert.scm 364 */
														obj_t BgL_arg1885z00_2026;
														obj_t BgL_arg1886z00_2027;

														{	/* Coerce/convert.scm 364 */
															obj_t BgL_arg1888z00_2028;

															{	/* Coerce/convert.scm 364 */
																obj_t BgL_arg1889z00_2029;

																{	/* Coerce/convert.scm 364 */
																	obj_t BgL_arg1890z00_2030;
																	obj_t BgL_arg1892z00_2031;

																	{	/* Coerce/convert.scm 364 */
																		obj_t BgL_arg1454z00_2641;

																		BgL_arg1454z00_2641 =
																			SYMBOL_TO_STRING(BgL_auxz00_1994);
																		BgL_arg1890z00_2030 =
																			BGl_stringzd2copyzd2zz__r4_strings_6_7z00
																			(BgL_arg1454z00_2641);
																	}
																	{	/* Coerce/convert.scm 364 */
																		obj_t BgL_symbolz00_2642;

																		BgL_symbolz00_2642 = CNST_TABLE_REF(6L);
																		{	/* Coerce/convert.scm 364 */
																			obj_t BgL_arg1454z00_2643;

																			BgL_arg1454z00_2643 =
																				SYMBOL_TO_STRING(BgL_symbolz00_2642);
																			BgL_arg1892z00_2031 =
																				BGl_stringzd2copyzd2zz__r4_strings_6_7z00
																				(BgL_arg1454z00_2643);
																		}
																	}
																	BgL_arg1889z00_2029 =
																		string_append(BgL_arg1890z00_2030,
																		BgL_arg1892z00_2031);
																}
																BgL_arg1888z00_2028 =
																	bstring_to_symbol(BgL_arg1889z00_2029);
															}
															BgL_arg1885z00_2026 =
																BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00
																(BgL_arg1888z00_2028);
														}
														BgL_arg1886z00_2027 =
															MAKE_YOUNG_PAIR(BUNSPEC, BNIL);
														BgL_arg1884z00_2025 =
															MAKE_YOUNG_PAIR(BgL_arg1885z00_2026,
															BgL_arg1886z00_2027);
													}
													BgL_arg1882z00_2023 =
														MAKE_YOUNG_PAIR(BgL_arg1884z00_2025, BNIL);
												}
												{	/* Coerce/convert.scm 366 */
													obj_t BgL_arg1893z00_2032;

													{	/* Coerce/convert.scm 366 */
														obj_t BgL_arg1894z00_2033;

														{	/* Coerce/convert.scm 366 */
															obj_t BgL_arg1895z00_2034;
															obj_t BgL_arg1896z00_2035;

															{	/* Coerce/convert.scm 366 */
																obj_t BgL_arg1897z00_2036;

																{	/* Coerce/convert.scm 366 */
																	obj_t BgL_arg1898z00_2037;
																	obj_t BgL_arg1899z00_2038;

																	{	/* Coerce/convert.scm 366 */
																		obj_t BgL_arg1900z00_2039;

																		{	/* Coerce/convert.scm 366 */
																			obj_t BgL_arg1901z00_2040;

																			{	/* Coerce/convert.scm 366 */
																				obj_t BgL_arg1905z00_2041;
																				obj_t BgL_arg1908z00_2042;

																				{	/* Coerce/convert.scm 366 */
																					obj_t BgL_arg1454z00_2646;

																					BgL_arg1454z00_2646 =
																						SYMBOL_TO_STRING(BgL_aux2z00_1995);
																					BgL_arg1905z00_2041 =
																						BGl_stringzd2copyzd2zz__r4_strings_6_7z00
																						(BgL_arg1454z00_2646);
																				}
																				{	/* Coerce/convert.scm 366 */
																					obj_t BgL_symbolz00_2647;

																					BgL_symbolz00_2647 =
																						CNST_TABLE_REF(6L);
																					{	/* Coerce/convert.scm 366 */
																						obj_t BgL_arg1454z00_2648;

																						BgL_arg1454z00_2648 =
																							SYMBOL_TO_STRING
																							(BgL_symbolz00_2647);
																						BgL_arg1908z00_2042 =
																							BGl_stringzd2copyzd2zz__r4_strings_6_7z00
																							(BgL_arg1454z00_2648);
																					}
																				}
																				BgL_arg1901z00_2040 =
																					string_append(BgL_arg1905z00_2041,
																					BgL_arg1908z00_2042);
																			}
																			BgL_arg1900z00_2039 =
																				bstring_to_symbol(BgL_arg1901z00_2040);
																		}
																		BgL_arg1898z00_2037 =
																			BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00
																			(BgL_arg1900z00_2039);
																	}
																	BgL_arg1899z00_2038 =
																		MAKE_YOUNG_PAIR(BUNSPEC, BNIL);
																	BgL_arg1897z00_2036 =
																		MAKE_YOUNG_PAIR(BgL_arg1898z00_2037,
																		BgL_arg1899z00_2038);
																}
																BgL_arg1895z00_2034 =
																	MAKE_YOUNG_PAIR(BgL_arg1897z00_2036, BNIL);
															}
															{	/* Coerce/convert.scm 367 */
																obj_t BgL_arg1909z00_2043;

																{	/* Coerce/convert.scm 367 */
																	obj_t BgL_arg1911z00_2044;

																	{	/* Coerce/convert.scm 367 */
																		obj_t BgL_arg1914z00_2045;
																		obj_t BgL_arg1915z00_2046;

																		{	/* Coerce/convert.scm 367 */
																			obj_t BgL_arg1916z00_2047;

																			BgL_arg1916z00_2047 =
																				MAKE_YOUNG_PAIR(BgL_aux2z00_1995, BNIL);
																			BgL_arg1914z00_2045 =
																				MAKE_YOUNG_PAIR(BgL_checkzd2opzd2_77,
																				BgL_arg1916z00_2047);
																		}
																		{	/* Coerce/convert.scm 369 */
																			obj_t BgL_arg1917z00_2048;

																			{	/* Coerce/convert.scm 369 */
																				obj_t BgL_arg1918z00_2049;

																				{	/* Coerce/convert.scm 369 */
																					obj_t BgL_arg1920z00_2050;

																					BgL_arg1920z00_2050 =
																						(((BgL_typez00_bglt) COBJECT(
																								((BgL_typez00_bglt)
																									BgL_toz00_76)))->BgL_idz00);
																					BgL_arg1918z00_2049 =
																						BGl_runtimezd2typezd2errorzf2idzf2zzcoerce_convertz00
																						(BgL_locz00_1996,
																						BgL_arg1920z00_2050,
																						BgL_auxz00_1994);
																				}
																				BgL_arg1917z00_2048 =
																					MAKE_YOUNG_PAIR(BgL_arg1918z00_2049,
																					BNIL);
																			}
																			BgL_arg1915z00_2046 =
																				MAKE_YOUNG_PAIR(BgL_auxz00_1994,
																				BgL_arg1917z00_2048);
																		}
																		BgL_arg1911z00_2044 =
																			MAKE_YOUNG_PAIR(BgL_arg1914z00_2045,
																			BgL_arg1915z00_2046);
																	}
																	BgL_arg1909z00_2043 =
																		MAKE_YOUNG_PAIR(CNST_TABLE_REF(9L),
																		BgL_arg1911z00_2044);
																}
																BgL_arg1896z00_2035 =
																	MAKE_YOUNG_PAIR(BgL_arg1909z00_2043, BNIL);
															}
															BgL_arg1894z00_2033 =
																MAKE_YOUNG_PAIR(BgL_arg1895z00_2034,
																BgL_arg1896z00_2035);
														}
														BgL_arg1893z00_2032 =
															MAKE_YOUNG_PAIR(CNST_TABLE_REF(7L),
															BgL_arg1894z00_2033);
													}
													BgL_arg1883z00_2024 =
														MAKE_YOUNG_PAIR(BgL_arg1893z00_2032, BNIL);
												}
												BgL_arg1881z00_2022 =
													MAKE_YOUNG_PAIR(BgL_arg1882z00_2023,
													BgL_arg1883z00_2024);
											}
											BgL_arg1880z00_2021 =
												MAKE_YOUNG_PAIR(CNST_TABLE_REF(7L),
												BgL_arg1881z00_2022);
										}
										BgL_lnodez00_1997 =
											BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00
											(BgL_arg1880z00_2021, BgL_locz00_1996);
									}
									{	/* Coerce/convert.scm 362 */

										BGl_za2checkza2z00zzcoerce_convertz00 =
											(1L + BGl_za2checkza2z00zzcoerce_convertz00);
										if (CBOOL(BGl_za2warningzd2typesza2zd2zzengine_paramz00))
											{	/* Coerce/convert.scm 83 */
												BGl_notifyzd2typezd2testz00zzcoerce_convertz00
													(BgL_fromz00_75, BgL_toz00_76, BgL_locz00_1996);
											}
										else
											{	/* Coerce/convert.scm 83 */
												BFALSE;
											}
										BGl_spreadzd2sidezd2effectz12z12zzeffect_spreadz00
											(BgL_lnodez00_1997);
										{	/* Coerce/convert.scm 373 */
											obj_t BgL_varz00_1998;

											{	/* Coerce/convert.scm 373 */
												obj_t BgL_pairz00_2654;

												{	/* Coerce/convert.scm 373 */
													obj_t BgL_pairz00_2653;

													BgL_pairz00_2653 =
														(((BgL_letzd2varzd2_bglt) COBJECT(
																((BgL_letzd2varzd2_bglt) BgL_lnodez00_1997)))->
														BgL_bindingsz00);
													BgL_pairz00_2654 = CAR(BgL_pairz00_2653);
												}
												BgL_varz00_1998 = CAR(BgL_pairz00_2654);
											}
											{	/* Coerce/convert.scm 373 */
												BgL_nodez00_bglt BgL_coercezd2appzd2_1999;

												{	/* Coerce/convert.scm 375 */
													BgL_refz00_bglt BgL_arg1875z00_2015;

													{	/* Coerce/convert.scm 375 */
														BgL_refz00_bglt BgL_new1150z00_2016;

														{	/* Coerce/convert.scm 376 */
															BgL_refz00_bglt BgL_new1149z00_2017;

															BgL_new1149z00_2017 =
																((BgL_refz00_bglt)
																BOBJECT(GC_MALLOC(sizeof(struct
																			BgL_refz00_bgl))));
															{	/* Coerce/convert.scm 376 */
																long BgL_arg1876z00_2018;

																BgL_arg1876z00_2018 =
																	BGL_CLASS_NUM(BGl_refz00zzast_nodez00);
																BGL_OBJECT_CLASS_NUM_SET(
																	((BgL_objectz00_bglt) BgL_new1149z00_2017),
																	BgL_arg1876z00_2018);
															}
															{	/* Coerce/convert.scm 376 */
																BgL_objectz00_bglt BgL_tmpz00_3734;

																BgL_tmpz00_3734 =
																	((BgL_objectz00_bglt) BgL_new1149z00_2017);
																BGL_OBJECT_WIDENING_SET(BgL_tmpz00_3734,
																	BFALSE);
															}
															((BgL_objectz00_bglt) BgL_new1149z00_2017);
															BgL_new1150z00_2016 = BgL_new1149z00_2017;
														}
														((((BgL_nodez00_bglt) COBJECT(
																		((BgL_nodez00_bglt) BgL_new1150z00_2016)))->
																BgL_locz00) =
															((obj_t) BgL_locz00_1996), BUNSPEC);
														((((BgL_nodez00_bglt) COBJECT(((BgL_nodez00_bglt)
																			BgL_new1150z00_2016)))->BgL_typez00) =
															((BgL_typez00_bglt) ((BgL_typez00_bglt)
																	BgL_fromz00_75)), BUNSPEC);
														((((BgL_varz00_bglt) COBJECT(((BgL_varz00_bglt)
																			BgL_new1150z00_2016)))->BgL_variablez00) =
															((BgL_variablez00_bglt) ((BgL_variablez00_bglt)
																	BgL_varz00_1998)), BUNSPEC);
														BgL_arg1875z00_2015 = BgL_new1150z00_2016;
													}
													BgL_coercezd2appzd2_1999 =
														BGl_dozd2convertzd2zzcoerce_convertz00
														(BgL_coercezd2opzd2_78,
														((BgL_nodez00_bglt) BgL_arg1875z00_2015),
														((BgL_typez00_bglt) BgL_fromz00_75));
												}
												{	/* Coerce/convert.scm 374 */
													BgL_nodez00_bglt BgL_condnz00_2000;

													BgL_condnz00_2000 =
														BGl_skipzd2letzd2varz00zzcoerce_convertz00
														(BgL_lnodez00_1997);
													{	/* Coerce/convert.scm 380 */

														((((BgL_variablez00_bglt) COBJECT(
																		((BgL_variablez00_bglt)
																			((BgL_localz00_bglt) BgL_varz00_1998))))->
																BgL_typez00) =
															((BgL_typez00_bglt) ((BgL_typez00_bglt)
																	BgL_fromz00_75)), BUNSPEC);
														{	/* Coerce/convert.scm 384 */
															obj_t BgL_arg1860z00_2001;

															{	/* Coerce/convert.scm 384 */
																obj_t BgL_pairz00_2662;

																BgL_pairz00_2662 =
																	(((BgL_letzd2varzd2_bglt) COBJECT(
																			((BgL_letzd2varzd2_bglt)
																				BgL_lnodez00_1997)))->BgL_bindingsz00);
																BgL_arg1860z00_2001 = CAR(BgL_pairz00_2662);
															}
															{	/* Coerce/convert.scm 384 */
																obj_t BgL_auxz00_3759;
																obj_t BgL_tmpz00_3757;

																BgL_auxz00_3759 = ((obj_t) BgL_nodez00_79);
																BgL_tmpz00_3757 = ((obj_t) BgL_arg1860z00_2001);
																SET_CDR(BgL_tmpz00_3757, BgL_auxz00_3759);
														}}
														{	/* Coerce/convert.scm 385 */
															obj_t BgL_binding2z00_2003;

															{	/* Coerce/convert.scm 385 */
																obj_t BgL_pairz00_2666;

																BgL_pairz00_2666 =
																	(((BgL_letzd2varzd2_bglt) COBJECT(
																			((BgL_letzd2varzd2_bglt)
																				(((BgL_letzd2varzd2_bglt) COBJECT(
																							((BgL_letzd2varzd2_bglt)
																								BgL_lnodez00_1997)))->
																					BgL_bodyz00))))->BgL_bindingsz00);
																BgL_binding2z00_2003 = CAR(BgL_pairz00_2666);
															}
															{	/* Coerce/convert.scm 386 */
																BgL_castz00_bglt BgL_arg1864z00_2004;

																{	/* Coerce/convert.scm 386 */
																	BgL_castz00_bglt BgL_new1152z00_2005;

																	{	/* Coerce/convert.scm 387 */
																		BgL_castz00_bglt BgL_new1151z00_2009;

																		BgL_new1151z00_2009 =
																			((BgL_castz00_bglt)
																			BOBJECT(GC_MALLOC(sizeof(struct
																						BgL_castz00_bgl))));
																		{	/* Coerce/convert.scm 387 */
																			long BgL_arg1867z00_2010;

																			BgL_arg1867z00_2010 =
																				BGL_CLASS_NUM(BGl_castz00zzast_nodez00);
																			BGL_OBJECT_CLASS_NUM_SET(
																				((BgL_objectz00_bglt)
																					BgL_new1151z00_2009),
																				BgL_arg1867z00_2010);
																		}
																		{	/* Coerce/convert.scm 387 */
																			BgL_objectz00_bglt BgL_tmpz00_3771;

																			BgL_tmpz00_3771 =
																				((BgL_objectz00_bglt)
																				BgL_new1151z00_2009);
																			BGL_OBJECT_WIDENING_SET(BgL_tmpz00_3771,
																				BFALSE);
																		}
																		((BgL_objectz00_bglt) BgL_new1151z00_2009);
																		BgL_new1152z00_2005 = BgL_new1151z00_2009;
																	}
																	((((BgL_nodez00_bglt) COBJECT(
																					((BgL_nodez00_bglt)
																						BgL_new1152z00_2005)))->
																			BgL_locz00) =
																		((obj_t) BgL_locz00_1996), BUNSPEC);
																	((((BgL_nodez00_bglt)
																				COBJECT(((BgL_nodez00_bglt)
																						BgL_new1152z00_2005)))->
																			BgL_typez00) =
																		((BgL_typez00_bglt) ((BgL_typez00_bglt)
																				BGl_za2objza2z00zztype_cachez00)),
																		BUNSPEC);
																	{
																		BgL_nodez00_bglt BgL_auxz00_3780;

																		{	/* Coerce/convert.scm 389 */
																			BgL_refz00_bglt BgL_new1154z00_2006;

																			{	/* Coerce/convert.scm 390 */
																				BgL_refz00_bglt BgL_new1153z00_2007;

																				BgL_new1153z00_2007 =
																					((BgL_refz00_bglt)
																					BOBJECT(GC_MALLOC(sizeof(struct
																								BgL_refz00_bgl))));
																				{	/* Coerce/convert.scm 390 */
																					long BgL_arg1866z00_2008;

																					{	/* Coerce/convert.scm 390 */
																						obj_t BgL_classz00_2671;

																						BgL_classz00_2671 =
																							BGl_refz00zzast_nodez00;
																						BgL_arg1866z00_2008 =
																							BGL_CLASS_NUM(BgL_classz00_2671);
																					}
																					BGL_OBJECT_CLASS_NUM_SET(
																						((BgL_objectz00_bglt)
																							BgL_new1153z00_2007),
																						BgL_arg1866z00_2008);
																				}
																				{	/* Coerce/convert.scm 390 */
																					BgL_objectz00_bglt BgL_tmpz00_3785;

																					BgL_tmpz00_3785 =
																						((BgL_objectz00_bglt)
																						BgL_new1153z00_2007);
																					BGL_OBJECT_WIDENING_SET
																						(BgL_tmpz00_3785, BFALSE);
																				}
																				((BgL_objectz00_bglt)
																					BgL_new1153z00_2007);
																				BgL_new1154z00_2006 =
																					BgL_new1153z00_2007;
																			}
																			((((BgL_nodez00_bglt) COBJECT(
																							((BgL_nodez00_bglt)
																								BgL_new1154z00_2006)))->
																					BgL_locz00) =
																				((obj_t) BgL_locz00_1996), BUNSPEC);
																			((((BgL_nodez00_bglt)
																						COBJECT(((BgL_nodez00_bglt)
																								BgL_new1154z00_2006)))->
																					BgL_typez00) =
																				((BgL_typez00_bglt) ((BgL_typez00_bglt)
																						BgL_fromz00_75)), BUNSPEC);
																			((((BgL_varz00_bglt)
																						COBJECT(((BgL_varz00_bglt)
																								BgL_new1154z00_2006)))->
																					BgL_variablez00) =
																				((BgL_variablez00_bglt) (
																						(BgL_variablez00_bglt)
																						BgL_varz00_1998)), BUNSPEC);
																			BgL_auxz00_3780 =
																				((BgL_nodez00_bglt)
																				BgL_new1154z00_2006);
																		}
																		((((BgL_castz00_bglt)
																					COBJECT(BgL_new1152z00_2005))->
																				BgL_argz00) =
																			((BgL_nodez00_bglt) BgL_auxz00_3780),
																			BUNSPEC);
																	}
																	BgL_arg1864z00_2004 = BgL_new1152z00_2005;
																}
																{	/* Coerce/convert.scm 386 */
																	obj_t BgL_auxz00_3801;
																	obj_t BgL_tmpz00_3799;

																	BgL_auxz00_3801 =
																		((obj_t) BgL_arg1864z00_2004);
																	BgL_tmpz00_3799 =
																		((obj_t) BgL_binding2z00_2003);
																	SET_CDR(BgL_tmpz00_3799, BgL_auxz00_3801);
														}}}
														((((BgL_conditionalz00_bglt) COBJECT(
																		((BgL_conditionalz00_bglt)
																			BgL_condnz00_2000)))->BgL_truez00) =
															((BgL_nodez00_bglt) BgL_coercezd2appzd2_1999),
															BUNSPEC);
														{	/* Coerce/convert.scm 395 */
															BgL_nodez00_bglt BgL_arg1872z00_2013;

															{	/* Coerce/convert.scm 395 */
																BgL_nodez00_bglt BgL_arg1873z00_2014;

																BgL_arg1873z00_2014 =
																	(((BgL_conditionalz00_bglt) COBJECT(
																			((BgL_conditionalz00_bglt)
																				BgL_condnz00_2000)))->BgL_falsez00);
																BgL_arg1872z00_2013 =
																	BGl_coercez12z12zzcoerce_coercez00
																	(BgL_arg1873z00_2014, BUNSPEC,
																	((BgL_typez00_bglt) BgL_fromz00_75),
																	((bool_t) 0));
															}
															((((BgL_conditionalz00_bglt) COBJECT(
																			((BgL_conditionalz00_bglt)
																				BgL_condnz00_2000)))->BgL_falsez00) =
																((BgL_nodez00_bglt) BgL_arg1872z00_2013),
																BUNSPEC);
														}
														BGl_lvtypezd2nodez12zc0zzast_lvtypez00
															(BgL_lnodez00_1997);
														return BgL_lnodez00_1997;
													}
												}
											}
										}
									}
								}
							}
						}
					}
			}
		}

	}



/* do-convert */
	BgL_nodez00_bglt BGl_dozd2convertzd2zzcoerce_convertz00(obj_t
		BgL_coercezd2opzd2_80, BgL_nodez00_bglt BgL_nodez00_81,
		BgL_typez00_bglt BgL_fromz00_82)
	{
		{	/* Coerce/convert.scm 405 */
			if ((BgL_coercezd2opzd2_80 == BTRUE))
				{	/* Coerce/convert.scm 408 */
					return BgL_nodez00_81;
				}
			else
				{	/* Coerce/convert.scm 410 */
					BgL_nodez00_bglt BgL_nnodez00_2052;

					{	/* Coerce/convert.scm 410 */
						obj_t BgL_arg1921z00_2053;
						obj_t BgL_arg1922z00_2054;

						{	/* Coerce/convert.scm 410 */
							obj_t BgL_arg1923z00_2055;

							BgL_arg1923z00_2055 =
								MAKE_YOUNG_PAIR(((obj_t) BgL_nodez00_81), BNIL);
							BgL_arg1921z00_2053 =
								MAKE_YOUNG_PAIR(BgL_coercezd2opzd2_80, BgL_arg1923z00_2055);
						}
						BgL_arg1922z00_2054 =
							(((BgL_nodez00_bglt) COBJECT(BgL_nodez00_81))->BgL_locz00);
						BgL_nnodez00_2052 =
							BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00
							(BgL_arg1921z00_2053, BgL_arg1922z00_2054);
					}
					BGl_lvtypezd2nodez12zc0zzast_lvtypez00(BgL_nnodez00_2052);
					BGl_spreadzd2sidezd2effectz12z12zzeffect_spreadz00(BgL_nnodez00_2052);
					return BgL_nnodez00_2052;
				}
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zzcoerce_convertz00(void)
	{
		{	/* Coerce/convert.scm 16 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zzcoerce_convertz00(void)
	{
		{	/* Coerce/convert.scm 16 */
			return BUNSPEC;
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zzcoerce_convertz00(void)
	{
		{	/* Coerce/convert.scm 16 */
			return BUNSPEC;
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zzcoerce_convertz00(void)
	{
		{	/* Coerce/convert.scm 16 */
			BGl_modulezd2initializa7ationz75zztools_tracez00(54713316L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zzengine_paramz00(517137079L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zzbackend_backendz00(216206620L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zztools_shapez00(365925558L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zztools_locationz00(462333240L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zztools_errorz00(300504031L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zztools_miscz00(9470071L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zztype_typez00(515343395L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zztype_cachez00(346491734L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zztype_coercionz00(116865673L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zztype_envz00(296457443L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zzast_sexpz00(163122759L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zzast_varz00(90839984L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zzast_nodez00(469732712L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zzast_identz00(174885617L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zzast_lvtypez00(189769752L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zzast_dumpz00(271707717L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zzobject_classz00(502007119L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			BGl_modulezd2initializa7ationz75zzcoerce_coercez00(361167184L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
			return
				BGl_modulezd2initializa7ationz75zzeffect_spreadz00(348216764L,
				BSTRING_TO_STRING(BGl_string2010z00zzcoerce_convertz00));
		}

	}

#ifdef __cplusplus
}
#endif
