/*===========================================================================*/
/*   (SawMill/cast.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 SawMill/cast.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_SAW_CAST_TYPE_DEFINITIONS
#define BGL_SAW_CAST_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_globalz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_idz00;
		obj_t BgL_namez00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_valuez00_bgl *BgL_valuez00;
		obj_t BgL_accessz00;
		obj_t BgL_fastzd2alphazd2;
		obj_t BgL_removablez00;
		long BgL_occurrencez00;
		long BgL_occurrencewz00;
		bool_t BgL_userzf3zf3;
		obj_t BgL_modulez00;
		obj_t BgL_importz00;
		bool_t BgL_evaluablezf3zf3;
		bool_t BgL_evalzf3zf3;
		obj_t BgL_libraryz00;
		obj_t BgL_pragmaz00;
		obj_t BgL_srcz00;
		obj_t BgL_jvmzd2typezd2namez00;
		obj_t BgL_initz00;
		obj_t BgL_aliasz00;
	}                *BgL_globalz00_bglt;

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

	typedef struct BgL_sfunz00_bgl
	{
		header_t header;
		obj_t widening;
		long BgL_arityz00;
		obj_t BgL_sidezd2effectzd2;
		obj_t BgL_predicatezd2ofzd2;
		obj_t BgL_stackzd2allocatorzd2;
		bool_t BgL_topzf3zf3;
		obj_t BgL_thezd2closurezd2;
		obj_t BgL_effectz00;
		obj_t BgL_failsafez00;
		obj_t BgL_argszd2noescapezd2;
		obj_t BgL_argszd2retescapezd2;
		obj_t BgL_propertyz00;
		obj_t BgL_argsz00;
		obj_t BgL_argszd2namezd2;
		obj_t BgL_bodyz00;
		obj_t BgL_classz00;
		obj_t BgL_dssslzd2keywordszd2;
		obj_t BgL_locz00;
		obj_t BgL_optionalsz00;
		obj_t BgL_keysz00;
		obj_t BgL_thezd2closurezd2globalz00;
		obj_t BgL_strengthz00;
		obj_t BgL_stackablez00;
	}              *BgL_sfunz00_bglt;

	typedef struct BgL_cfunz00_bgl
	{
		header_t header;
		obj_t widening;
		long BgL_arityz00;
		obj_t BgL_sidezd2effectzd2;
		obj_t BgL_predicatezd2ofzd2;
		obj_t BgL_stackzd2allocatorzd2;
		bool_t BgL_topzf3zf3;
		obj_t BgL_thezd2closurezd2;
		obj_t BgL_effectz00;
		obj_t BgL_failsafez00;
		obj_t BgL_argszd2noescapezd2;
		obj_t BgL_argszd2retescapezd2;
		obj_t BgL_argszd2typezd2;
		bool_t BgL_macrozf3zf3;
		bool_t BgL_infixzf3zf3;
		obj_t BgL_methodz00;
	}              *BgL_cfunz00_bglt;

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

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

	typedef struct BgL_backendz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_languagez00;
		obj_t BgL_srfi0z00;
		obj_t BgL_namez00;
		obj_t BgL_externzd2variableszd2;
		obj_t BgL_externzd2functionszd2;
		obj_t BgL_externzd2typeszd2;
		obj_t BgL_variablesz00;
		obj_t BgL_functionsz00;
		obj_t BgL_typesz00;
		bool_t BgL_typedz00;
		obj_t BgL_heapzd2suffixzd2;
		obj_t BgL_heapzd2compatiblezd2;
		bool_t BgL_callccz00;
		bool_t BgL_qualifiedzd2typeszd2;
		bool_t BgL_effectzb2zb2;
		bool_t BgL_removezd2emptyzd2letz00;
		bool_t BgL_foreignzd2closurezd2;
		bool_t BgL_typedzd2eqzd2;
		bool_t BgL_tracezd2supportzd2;
		obj_t BgL_foreignzd2clausezd2supportz00;
		obj_t BgL_debugzd2supportzd2;
		bool_t BgL_pragmazd2supportzd2;
		bool_t BgL_tvectorzd2descrzd2supportz00;
		bool_t BgL_requirezd2tailczd2;
		obj_t BgL_registersz00;
		obj_t BgL_pregistersz00;
		bool_t BgL_boundzd2checkzd2;
		bool_t BgL_typezd2checkzd2;
		bool_t BgL_typedzd2funcallzd2;
	}                 *BgL_backendz00_bglt;

	typedef struct BgL_rtl_regz00_bgl
	{
		header_t header;
		obj_t widening;
		struct BgL_typez00_bgl *BgL_typez00;
		obj_t BgL_varz00;
		obj_t BgL_onexprzf3zf3;
		obj_t BgL_namez00;
		obj_t BgL_keyz00;
		obj_t BgL_debugnamez00;
		obj_t BgL_hardwarez00;
	}                 *BgL_rtl_regz00_bglt;

	typedef struct BgL_rtl_funz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
	}                 *BgL_rtl_funz00_bglt;

	typedef struct BgL_rtl_returnz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
	}                    *BgL_rtl_returnz00_bglt;

	typedef struct BgL_rtl_loadiz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_atomz00_bgl *BgL_constantz00;
	}                   *BgL_rtl_loadiz00_bglt;

	typedef struct BgL_rtl_loadgz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_globalz00_bgl *BgL_varz00;
	}                   *BgL_rtl_loadgz00_bglt;

	typedef struct BgL_rtl_getfieldz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		obj_t BgL_namez00;
		struct BgL_typez00_bgl *BgL_objtypez00;
		struct BgL_typez00_bgl *BgL_typez00;
	}                      *BgL_rtl_getfieldz00_bglt;

	typedef struct BgL_rtl_vallocz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_typez00_bgl *BgL_vtypez00;
	}                    *BgL_rtl_vallocz00_bglt;

	typedef struct BgL_rtl_vrefz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_typez00_bgl *BgL_vtypez00;
	}                  *BgL_rtl_vrefz00_bglt;

	typedef struct BgL_rtl_vlengthz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_typez00_bgl *BgL_vtypez00;
	}                     *BgL_rtl_vlengthz00_bglt;

	typedef struct BgL_rtl_storegz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_globalz00_bgl *BgL_varz00;
	}                    *BgL_rtl_storegz00_bglt;

	typedef struct BgL_rtl_setfieldz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		obj_t BgL_namez00;
		struct BgL_typez00_bgl *BgL_objtypez00;
		struct BgL_typez00_bgl *BgL_typez00;
	}                      *BgL_rtl_setfieldz00_bglt;

	typedef struct BgL_rtl_vsetz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_typez00_bgl *BgL_vtypez00;
	}                  *BgL_rtl_vsetz00_bglt;

	typedef struct BgL_rtl_newz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
		obj_t BgL_constrz00;
	}                 *BgL_rtl_newz00_bglt;

	typedef struct BgL_rtl_callz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_globalz00_bgl *BgL_varz00;
	}                  *BgL_rtl_callz00_bglt;

	typedef struct BgL_rtl_castz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_totypez00;
		struct BgL_typez00_bgl *BgL_fromtypez00;
	}                  *BgL_rtl_castz00_bglt;

	typedef struct BgL_rtl_cast_nullz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		struct BgL_typez00_bgl *BgL_typez00;
	}                       *BgL_rtl_cast_nullz00_bglt;

	typedef struct BgL_rtl_insz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		obj_t BgL_z52spillz52;
		obj_t BgL_destz00;
		struct BgL_rtl_funz00_bgl *BgL_funz00;
		obj_t BgL_argsz00;
	}                 *BgL_rtl_insz00_bglt;

	typedef struct BgL_blockz00_bgl
	{
		header_t header;
		obj_t widening;
		int BgL_labelz00;
		obj_t BgL_predsz00;
		obj_t BgL_succsz00;
		obj_t BgL_firstz00;
	}               *BgL_blockz00_bglt;


#endif													// BGL_SAW_CAST_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	extern obj_t BGl_rtl_insz00zzsaw_defsz00;
	extern obj_t BGl_rtl_funcallz00zzsaw_defsz00;
	static BgL_typez00_bglt
		BGl_z62typezd2destzd2rtl_loadg1464z62zzsaw_castz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_rtl_funz00zzsaw_defsz00;
	extern obj_t BGl_rtl_newz00zzsaw_defsz00;
	static BgL_typez00_bglt
		BGl_z62typezd2destzd2rtl_cast_n1478z62zzsaw_castz00(obj_t, obj_t, obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zzsaw_castz00 = BUNSPEC;
	static BgL_typez00_bglt
		BGl_z62typezd2destzd2rtl_loadfu1462z62zzsaw_castz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_rtl_boxrefz00zzsaw_defsz00;
	static BgL_typez00_bglt
		BGl_z62typezd2destzd2rtl_cast1482z62zzsaw_castz00(obj_t, obj_t, obj_t);
	BGL_IMPORT obj_t BGl_za2classesza2z00zz__objectz00;
	BGL_IMPORT obj_t BGl_registerzd2genericz12zc0zz__objectz00(obj_t, obj_t,
		obj_t, obj_t);
	extern obj_t BGl_rtl_vrefz00zzsaw_defsz00;
	static obj_t BGl_toplevelzd2initzd2zzsaw_castz00(void);
	extern obj_t BGl_rtl_boxsetz00zzsaw_defsz00;
	static BgL_typez00_bglt
		BGl_z62typezd2destzd2rtl_getfie1466z62zzsaw_castz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_rtl_vlengthz00zzsaw_defsz00;
	static obj_t BGl_genericzd2initzd2zzsaw_castz00(void);
	extern obj_t BGl_rtl_vsetz00zzsaw_defsz00;
	static obj_t BGl_objectzd2initzd2zzsaw_castz00(void);
	BGL_IMPORT obj_t BGl_memqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_za2inheritancesza2z00zz__objectz00;
	static obj_t BGl_z62typezd2argszd2rtl_funcal1503z62zzsaw_castz00(obj_t,
		obj_t);
	extern obj_t BGl_typez00zztype_typez00;
	static obj_t BGl_z62typezd2argszd2rtl_return1501z62zzsaw_castz00(obj_t,
		obj_t);
	extern obj_t BGl_rtl_lightfuncallz00zzsaw_defsz00;
	extern obj_t BGl_rtl_regz00zzsaw_defsz00;
	extern obj_t BGl_rtl_vallocz00zzsaw_defsz00;
	extern obj_t BGl_rtl_cast_nullz00zzsaw_defsz00;
	static BgL_typez00_bglt
		BGl_z62typezd2destzd2rtl_loadi1460z62zzsaw_castz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_rtl_loadfunz00zzsaw_defsz00;
	extern obj_t BGl_rtl_movz00zzsaw_defsz00;
	BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t, obj_t);
	static BgL_typez00_bglt
		BGl_z62typezd2destzd2rtl_nop1456z62zzsaw_castz00(obj_t, obj_t, obj_t);
	static BgL_typez00_bglt
		BGl_z62typezd2destzd2rtl_instan1476z62zzsaw_castz00(obj_t, obj_t, obj_t);
	BGL_IMPORT obj_t BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00(obj_t,
		obj_t, obj_t);
	extern obj_t BGl_rtl_nopz00zzsaw_defsz00;
	static obj_t BGl_methodzd2initzd2zzsaw_castz00(void);
	static obj_t BGl_assignzd2typezf3z21zzsaw_castz00(BgL_backendz00_bglt,
		BgL_typez00_bglt, obj_t);
	static obj_t BGl_z62typezd2argszd2rtl_setfie1488z62zzsaw_castz00(obj_t,
		obj_t);
	static BgL_rtl_insz00_bglt BGl_addzd2castzd2zzsaw_castz00(obj_t, obj_t);
	static obj_t BGl_addzd2castszd2insz00zzsaw_castz00(BgL_backendz00_bglt,
		obj_t);
	static obj_t BGl_z62typezd2args1483zb0zzsaw_castz00(obj_t, obj_t);
	static obj_t BGl_z62typezd2argszd2rtl_vset1493z62zzsaw_castz00(obj_t, obj_t);
	extern obj_t BGl_rtl_instanceofz00zzsaw_defsz00;
	extern obj_t BGl_rtl_setfieldz00zzsaw_defsz00;
	static obj_t BGl_z62typezd2argszd2rtl_vref1490z62zzsaw_castz00(obj_t, obj_t);
	static BgL_typez00_bglt
		BGl_z62typezd2destzd2rtl_vref1472z62zzsaw_castz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_rtl_callz00zzsaw_defsz00;
	static BgL_typez00_bglt
		BGl_z62typezd2destzd2rtl_valloc1470z62zzsaw_castz00(obj_t, obj_t, obj_t);
	static obj_t BGl_z62typezd2argszd2rtl_boxset1511z62zzsaw_castz00(obj_t,
		obj_t);
	static obj_t BGl_z62typezd2argszd2rtl_boxref1509z62zzsaw_castz00(obj_t,
		obj_t);
	extern obj_t BGl_rtl_storegz00zzsaw_defsz00;
	static obj_t BGl_z62typezd2dest1453zb0zzsaw_castz00(obj_t, obj_t, obj_t);
	static obj_t BGl_z62typezd2argszd2rtl_apply1507z62zzsaw_castz00(obj_t, obj_t);
	static obj_t BGl_z62typezd2argszd2rtl_lightf1505z62zzsaw_castz00(obj_t,
		obj_t);
	extern obj_t BGl_rtl_returnz00zzsaw_defsz00;
	extern obj_t BGl_rtl_applyz00zzsaw_defsz00;
	static obj_t BGl_z62addzd2castszb0zzsaw_castz00(obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzsaw_castz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzsaw_defsz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzbackend_backendz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzobject_classz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_envz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(long,
		char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_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__bitz00(long, char *);
	static BgL_typez00_bglt BGl_z62typezd2destzb0zzsaw_castz00(obj_t, obj_t,
		obj_t);
	extern obj_t BGl_cfunz00zzast_varz00;
	extern obj_t BGl_rtl_loadgz00zzsaw_defsz00;
	extern obj_t BGl_rtl_loadiz00zzsaw_defsz00;
	static BgL_typez00_bglt
		BGl_z62typezd2destzd2rtl_new1468z62zzsaw_castz00(obj_t, obj_t, obj_t);
	static obj_t BGl_cnstzd2initzd2zzsaw_castz00(void);
	static obj_t BGl_libraryzd2moduleszd2initz00zzsaw_castz00(void);
	static obj_t BGl_importedzd2moduleszd2initz00zzsaw_castz00(void);
	static obj_t BGl_gczd2rootszd2initz00zzsaw_castz00(void);
	BGL_EXPORTED_DECL obj_t BGl_addzd2castszd2zzsaw_castz00(BgL_backendz00_bglt,
		obj_t);
	extern obj_t BGl_rtl_castz00zzsaw_defsz00;
	static obj_t BGl_addzd2castzd2destz00zzsaw_castz00(BgL_backendz00_bglt,
		obj_t);
	static BgL_typez00_bglt BGl_typezd2destzd2zzsaw_castz00(BgL_rtl_funz00_bglt,
		obj_t);
	static obj_t BGl_z62typezd2argszb0zzsaw_castz00(obj_t, obj_t);
	static obj_t BGl_z62typezd2argszd2rtl_vlengt1495z62zzsaw_castz00(obj_t,
		obj_t);
	BGL_IMPORT obj_t BGl_classzd2fieldzd2defaultzd2valuezd2zz__objectz00(obj_t);
	extern obj_t BGl_rtl_getfieldz00zzsaw_defsz00;
	extern BgL_typez00_bglt BGl_findzd2typezd2zztype_envz00(obj_t);
	BGL_IMPORT obj_t BGl_gensymz00zz__r4_symbols_6_4z00(obj_t);
	BGL_IMPORT obj_t BGl_genericzd2addzd2methodz12z12zz__objectz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_addzd2castzd2argsz00zzsaw_castz00(BgL_backendz00_bglt,
		BgL_rtl_funz00_bglt, obj_t, obj_t, obj_t);
	static obj_t BGl_typezd2argszd2zzsaw_castz00(BgL_rtl_funz00_bglt);
	static BgL_typez00_bglt
		BGl_z62typezd2destzd2rtl_mov1458z62zzsaw_castz00(obj_t, obj_t, obj_t);
	extern obj_t
		BGl_backendzd2subtypezf3z21zzbackend_backendz00(BgL_backendz00_bglt, obj_t,
		obj_t);
	BGL_IMPORT obj_t BGl_lastzd2pairzd2zz__r4_pairs_and_lists_6_3z00(obj_t);
	static obj_t BGl_z62typezd2argszd2rtl_storeg1497z62zzsaw_castz00(obj_t,
		obj_t);
	static obj_t BGl_z62typezd2argszd2rtl_call1499z62zzsaw_castz00(obj_t, obj_t);
	static BgL_typez00_bglt
		BGl_z62typezd2destzd2rtl_vlengt1474z62zzsaw_castz00(obj_t, obj_t, obj_t);
	static obj_t BGl_z62typezd2argszd2rtl_getfie1486z62zzsaw_castz00(obj_t,
		obj_t);
	static BgL_typez00_bglt
		BGl_z62typezd2destzd2rtl_call1480z62zzsaw_castz00(obj_t, obj_t, obj_t);
	static obj_t __cnst[7];


	   
		 
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_addzd2castszd2envz00zzsaw_castz00,
		BgL_bgl_za762addza7d2castsza7b1960za7, BGl_z62addzd2castszb0zzsaw_castz00,
		0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_GENERIC(BGl_typezd2argszd2envz00zzsaw_castz00,
		BgL_bgl_za762typeza7d2argsza7b1961za7, BGl_z62typezd2argszb0zzsaw_castz00,
		0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string1925z00zzsaw_castz00,
		BgL_bgl_string1925za700za7za7s1962za7, "type-dest1453", 13);
	      DEFINE_STRING(BGl_string1927z00zzsaw_castz00,
		BgL_bgl_string1927za700za7za7s1963za7, "type-args1483", 13);
	      DEFINE_STRING(BGl_string1929z00zzsaw_castz00,
		BgL_bgl_string1929za700za7za7s1964za7, "type-dest::type", 15);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1924z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2dest141965z00, BGl_z62typezd2dest1453zb0zzsaw_castz00,
		0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1926z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2args141966z00, BGl_z62typezd2args1483zb0zzsaw_castz00,
		0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1928z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2destza7d1967za7,
		BGl_z62typezd2destzd2rtl_nop1456z62zzsaw_castz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1930z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2destza7d1968za7,
		BGl_z62typezd2destzd2rtl_mov1458z62zzsaw_castz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1931z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2destza7d1969za7,
		BGl_z62typezd2destzd2rtl_loadi1460z62zzsaw_castz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1932z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2destza7d1970za7,
		BGl_z62typezd2destzd2rtl_loadfu1462z62zzsaw_castz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1933z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2destza7d1971za7,
		BGl_z62typezd2destzd2rtl_loadg1464z62zzsaw_castz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1934z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2destza7d1972za7,
		BGl_z62typezd2destzd2rtl_getfie1466z62zzsaw_castz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1935z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2destza7d1973za7,
		BGl_z62typezd2destzd2rtl_new1468z62zzsaw_castz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1936z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2destza7d1974za7,
		BGl_z62typezd2destzd2rtl_valloc1470z62zzsaw_castz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1937z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2destza7d1975za7,
		BGl_z62typezd2destzd2rtl_vref1472z62zzsaw_castz00, 0L, BUNSPEC, 2);
	      DEFINE_STRING(BGl_string1944z00zzsaw_castz00,
		BgL_bgl_string1944za700za7za7s1976za7, "type-args", 9);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1938z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2destza7d1977za7,
		BGl_z62typezd2destzd2rtl_vlengt1474z62zzsaw_castz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1939z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2destza7d1978za7,
		BGl_z62typezd2destzd2rtl_instan1476z62zzsaw_castz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1940z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2destza7d1979za7,
		BGl_z62typezd2destzd2rtl_cast_n1478z62zzsaw_castz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1941z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2destza7d1980za7,
		BGl_z62typezd2destzd2rtl_call1480z62zzsaw_castz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1942z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2destza7d1981za7,
		BGl_z62typezd2destzd2rtl_cast1482z62zzsaw_castz00, 0L, BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1943z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2argsza7d1982za7,
		BGl_z62typezd2argszd2rtl_getfie1486z62zzsaw_castz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1945z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2argsza7d1983za7,
		BGl_z62typezd2argszd2rtl_setfie1488z62zzsaw_castz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1946z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2argsza7d1984za7,
		BGl_z62typezd2argszd2rtl_vref1490z62zzsaw_castz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1947z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2argsza7d1985za7,
		BGl_z62typezd2argszd2rtl_vset1493z62zzsaw_castz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1948z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2argsza7d1986za7,
		BGl_z62typezd2argszd2rtl_vlengt1495z62zzsaw_castz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1949z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2argsza7d1987za7,
		BGl_z62typezd2argszd2rtl_storeg1497z62zzsaw_castz00, 0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string1957z00zzsaw_castz00,
		BgL_bgl_string1957za700za7za7s1988za7, "saw_cast", 8);
	      DEFINE_STRING(BGl_string1958z00zzsaw_castz00,
		BgL_bgl_string1958za700za7za7s1989za7,
		"unspecified int procedure cell obj (bool byte ubyte short ushort char uchar ucs2 void int long ulong elong llong uelong ullong float double) hook ",
		146);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1950z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2argsza7d1990za7,
		BGl_z62typezd2argszd2rtl_call1499z62zzsaw_castz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1951z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2argsza7d1991za7,
		BGl_z62typezd2argszd2rtl_return1501z62zzsaw_castz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1952z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2argsza7d1992za7,
		BGl_z62typezd2argszd2rtl_funcal1503z62zzsaw_castz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1953z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2argsza7d1993za7,
		BGl_z62typezd2argszd2rtl_lightf1505z62zzsaw_castz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1954z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2argsza7d1994za7,
		BGl_z62typezd2argszd2rtl_apply1507z62zzsaw_castz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1955z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2argsza7d1995za7,
		BGl_z62typezd2argszd2rtl_boxref1509z62zzsaw_castz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1956z00zzsaw_castz00,
		BgL_bgl_za762typeza7d2argsza7d1996za7,
		BGl_z62typezd2argszd2rtl_boxset1511z62zzsaw_castz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_GENERIC(BGl_typezd2destzd2envz00zzsaw_castz00,
		BgL_bgl_za762typeza7d2destza7b1997za7, BGl_z62typezd2destzb0zzsaw_castz00,
		0L, BUNSPEC, 2);

/* 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_requirezd2initializa7ationz75zzsaw_castz00));
#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_modulezd2initializa7ationz75zzsaw_castz00(long
		BgL_checksumz00_3285, char *BgL_fromz00_3286)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zzsaw_castz00))
				{
					BGl_requirezd2initializa7ationz75zzsaw_castz00 = BBOOL(((bool_t) 0));
					BGl_gczd2rootszd2initz00zzsaw_castz00();
					BGl_libraryzd2moduleszd2initz00zzsaw_castz00();
					BGl_cnstzd2initzd2zzsaw_castz00();
					BGl_importedzd2moduleszd2initz00zzsaw_castz00();
					BGl_genericzd2initzd2zzsaw_castz00();
					BGl_methodzd2initzd2zzsaw_castz00();
					return BGl_toplevelzd2initzd2zzsaw_castz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* library-modules-init */
	obj_t BGl_libraryzd2moduleszd2initz00zzsaw_castz00(void)
	{
		{	/* SawMill/cast.scm 1 */
			BGl_modulezd2initializa7ationz75zz__objectz00(0L, "saw_cast");
			BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(0L,
				"saw_cast");
			BGl_modulezd2initializa7ationz75zz__readerz00(0L, "saw_cast");
			BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(0L, "saw_cast");
			BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(0L, "saw_cast");
			BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(0L, "saw_cast");
			BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(0L, "saw_cast");
			BGl_modulezd2initializa7ationz75zz__bitz00(0L, "saw_cast");
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(0L,
				"saw_cast");
			BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(0L, "saw_cast");
			return BUNSPEC;
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zzsaw_castz00(void)
	{
		{	/* SawMill/cast.scm 1 */
			{	/* SawMill/cast.scm 1 */
				obj_t BgL_cportz00_3180;

				{	/* SawMill/cast.scm 1 */
					obj_t BgL_stringz00_3187;

					BgL_stringz00_3187 = BGl_string1958z00zzsaw_castz00;
					{	/* SawMill/cast.scm 1 */
						obj_t BgL_startz00_3188;

						BgL_startz00_3188 = BINT(0L);
						{	/* SawMill/cast.scm 1 */
							obj_t BgL_endz00_3189;

							BgL_endz00_3189 =
								BINT(STRING_LENGTH(((obj_t) BgL_stringz00_3187)));
							{	/* SawMill/cast.scm 1 */

								BgL_cportz00_3180 =
									BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00
									(BgL_stringz00_3187, BgL_startz00_3188, BgL_endz00_3189);
				}}}}
				{
					long BgL_iz00_3181;

					BgL_iz00_3181 = 6L;
				BgL_loopz00_3182:
					if ((BgL_iz00_3181 == -1L))
						{	/* SawMill/cast.scm 1 */
							return BUNSPEC;
						}
					else
						{	/* SawMill/cast.scm 1 */
							{	/* SawMill/cast.scm 1 */
								obj_t BgL_arg1959z00_3183;

								{	/* SawMill/cast.scm 1 */

									{	/* SawMill/cast.scm 1 */
										obj_t BgL_locationz00_3185;

										BgL_locationz00_3185 = BBOOL(((bool_t) 0));
										{	/* SawMill/cast.scm 1 */

											BgL_arg1959z00_3183 =
												BGl_readz00zz__readerz00(BgL_cportz00_3180,
												BgL_locationz00_3185);
										}
									}
								}
								{	/* SawMill/cast.scm 1 */
									int BgL_tmpz00_3316;

									BgL_tmpz00_3316 = (int) (BgL_iz00_3181);
									CNST_TABLE_SET(BgL_tmpz00_3316, BgL_arg1959z00_3183);
							}}
							{	/* SawMill/cast.scm 1 */
								int BgL_auxz00_3186;

								BgL_auxz00_3186 = (int) ((BgL_iz00_3181 - 1L));
								{
									long BgL_iz00_3321;

									BgL_iz00_3321 = (long) (BgL_auxz00_3186);
									BgL_iz00_3181 = BgL_iz00_3321;
									goto BgL_loopz00_3182;
								}
							}
						}
				}
			}
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zzsaw_castz00(void)
	{
		{	/* SawMill/cast.scm 1 */
			return bgl_gc_roots_register();
		}

	}



/* toplevel-init */
	obj_t BGl_toplevelzd2initzd2zzsaw_castz00(void)
	{
		{	/* SawMill/cast.scm 1 */
			return BUNSPEC;
		}

	}



/* add-casts */
	BGL_EXPORTED_DEF obj_t BGl_addzd2castszd2zzsaw_castz00(BgL_backendz00_bglt
		BgL_backz00_3, obj_t BgL_lz00_4)
	{
		{	/* SawMill/cast.scm 12 */
			{
				obj_t BgL_l1445z00_2163;

				{	/* SawMill/cast.scm 13 */
					bool_t BgL_tmpz00_3324;

					BgL_l1445z00_2163 = BgL_lz00_4;
				BgL_zc3z04anonymousza31529ze3z87_2164:
					if (PAIRP(BgL_l1445z00_2163))
						{	/* SawMill/cast.scm 13 */
							{	/* SawMill/cast.scm 14 */
								obj_t BgL_bz00_2166;

								BgL_bz00_2166 = CAR(BgL_l1445z00_2163);
								{	/* SawMill/cast.scm 14 */
									obj_t BgL_hookz00_2167;

									BgL_hookz00_2167 = MAKE_YOUNG_PAIR(CNST_TABLE_REF(0L), BNIL);
									{	/* SawMill/cast.scm 15 */
										obj_t BgL_g1152z00_2168;

										BgL_g1152z00_2168 =
											(((BgL_blockz00_bglt) COBJECT(
													((BgL_blockz00_bglt) BgL_bz00_2166)))->BgL_firstz00);
										{
											obj_t BgL_lz00_2170;
											obj_t BgL_lastz00_2171;

											BgL_lz00_2170 = BgL_g1152z00_2168;
											BgL_lastz00_2171 = BgL_hookz00_2167;
										BgL_zc3z04anonymousza31531ze3z87_2172:
											if (NULLP(BgL_lz00_2170))
												{	/* SawMill/cast.scm 17 */
													obj_t BgL_arg1534z00_2174;

													BgL_arg1534z00_2174 = CDR(BgL_hookz00_2167);
													((((BgL_blockz00_bglt) COBJECT(
																	((BgL_blockz00_bglt) BgL_bz00_2166)))->
															BgL_firstz00) =
														((obj_t) ((obj_t) BgL_arg1534z00_2174)), BUNSPEC);
												}
											else
												{	/* SawMill/cast.scm 18 */
													obj_t BgL_insz00_2175;

													BgL_insz00_2175 = CAR(((obj_t) BgL_lz00_2170));
													{	/* SawMill/cast.scm 19 */
														obj_t BgL_cinsz00_2177;

														BgL_cinsz00_2177 =
															BGl_addzd2castszd2insz00zzsaw_castz00
															(BgL_backz00_3, BgL_insz00_2175);
														SET_CDR(BgL_lastz00_2171, BgL_cinsz00_2177);
														{	/* SawMill/cast.scm 21 */
															obj_t BgL_arg1541z00_2178;
															obj_t BgL_arg1545z00_2179;

															BgL_arg1541z00_2178 =
																CDR(((obj_t) BgL_lz00_2170));
															BgL_arg1545z00_2179 =
																BGl_lastzd2pairzd2zz__r4_pairs_and_lists_6_3z00
																(BgL_cinsz00_2177);
															{
																obj_t BgL_lastz00_3346;
																obj_t BgL_lz00_3345;

																BgL_lz00_3345 = BgL_arg1541z00_2178;
																BgL_lastz00_3346 = BgL_arg1545z00_2179;
																BgL_lastz00_2171 = BgL_lastz00_3346;
																BgL_lz00_2170 = BgL_lz00_3345;
																goto BgL_zc3z04anonymousza31531ze3z87_2172;
															}
														}
													}
												}
										}
									}
								}
							}
							{
								obj_t BgL_l1445z00_3347;

								BgL_l1445z00_3347 = CDR(BgL_l1445z00_2163);
								BgL_l1445z00_2163 = BgL_l1445z00_3347;
								goto BgL_zc3z04anonymousza31529ze3z87_2164;
							}
						}
					else
						{	/* SawMill/cast.scm 13 */
							BgL_tmpz00_3324 = ((bool_t) 1);
						}
					return BBOOL(BgL_tmpz00_3324);
				}
			}
		}

	}



/* &add-casts */
	obj_t BGl_z62addzd2castszb0zzsaw_castz00(obj_t BgL_envz00_3070,
		obj_t BgL_backz00_3071, obj_t BgL_lz00_3072)
	{
		{	/* SawMill/cast.scm 12 */
			return
				BGl_addzd2castszd2zzsaw_castz00(
				((BgL_backendz00_bglt) BgL_backz00_3071), BgL_lz00_3072);
		}

	}



/* add-cast */
	BgL_rtl_insz00_bglt BGl_addzd2castzd2zzsaw_castz00(obj_t BgL_fromz00_5,
		obj_t BgL_toz00_6)
	{
		{	/* SawMill/cast.scm 24 */
			{	/* SawMill/cast.scm 26 */
				BgL_typez00_bglt BgL_typez00_2183;

				BgL_typez00_2183 =
					(((BgL_rtl_regz00_bglt) COBJECT(
							((BgL_rtl_regz00_bglt) BgL_toz00_6)))->BgL_typez00);
				{	/* SawMill/cast.scm 27 */
					BgL_rtl_insz00_bglt BgL_new1154z00_2184;

					{	/* SawMill/cast.scm 27 */
						BgL_rtl_insz00_bglt BgL_new1153z00_2188;

						BgL_new1153z00_2188 =
							((BgL_rtl_insz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
										BgL_rtl_insz00_bgl))));
						{	/* SawMill/cast.scm 27 */
							long BgL_arg1550z00_2189;

							BgL_arg1550z00_2189 = BGL_CLASS_NUM(BGl_rtl_insz00zzsaw_defsz00);
							BGL_OBJECT_CLASS_NUM_SET(
								((BgL_objectz00_bglt) BgL_new1153z00_2188),
								BgL_arg1550z00_2189);
						}
						{	/* SawMill/cast.scm 27 */
							BgL_objectz00_bglt BgL_tmpz00_3358;

							BgL_tmpz00_3358 = ((BgL_objectz00_bglt) BgL_new1153z00_2188);
							BGL_OBJECT_WIDENING_SET(BgL_tmpz00_3358, BFALSE);
						}
						((BgL_objectz00_bglt) BgL_new1153z00_2188);
						BgL_new1154z00_2184 = BgL_new1153z00_2188;
					}
					((((BgL_rtl_insz00_bglt) COBJECT(BgL_new1154z00_2184))->BgL_locz00) =
						((obj_t) BFALSE), BUNSPEC);
					((((BgL_rtl_insz00_bglt) COBJECT(BgL_new1154z00_2184))->
							BgL_z52spillz52) = ((obj_t) BNIL), BUNSPEC);
					((((BgL_rtl_insz00_bglt) COBJECT(BgL_new1154z00_2184))->BgL_destz00) =
						((obj_t) BgL_toz00_6), BUNSPEC);
					{
						BgL_rtl_funz00_bglt BgL_auxz00_3365;

						{	/* SawMill/cast.scm 28 */
							BgL_rtl_castz00_bglt BgL_new1156z00_2185;

							{	/* SawMill/cast.scm 28 */
								BgL_rtl_castz00_bglt BgL_new1155z00_2186;

								BgL_new1155z00_2186 =
									((BgL_rtl_castz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
												BgL_rtl_castz00_bgl))));
								{	/* SawMill/cast.scm 28 */
									long BgL_arg1547z00_2187;

									{	/* SawMill/cast.scm 28 */
										obj_t BgL_classz00_2802;

										BgL_classz00_2802 = BGl_rtl_castz00zzsaw_defsz00;
										BgL_arg1547z00_2187 = BGL_CLASS_NUM(BgL_classz00_2802);
									}
									BGL_OBJECT_CLASS_NUM_SET(
										((BgL_objectz00_bglt) BgL_new1155z00_2186),
										BgL_arg1547z00_2187);
								}
								BgL_new1156z00_2185 = BgL_new1155z00_2186;
							}
							((((BgL_rtl_funz00_bglt) COBJECT(
											((BgL_rtl_funz00_bglt) BgL_new1156z00_2185)))->
									BgL_locz00) = ((obj_t) BFALSE), BUNSPEC);
							((((BgL_rtl_castz00_bglt) COBJECT(BgL_new1156z00_2185))->
									BgL_totypez00) =
								((BgL_typez00_bglt) BgL_typez00_2183), BUNSPEC);
							((((BgL_rtl_castz00_bglt) COBJECT(BgL_new1156z00_2185))->
									BgL_fromtypez00) =
								((BgL_typez00_bglt) (((BgL_rtl_regz00_bglt)
											COBJECT(((BgL_rtl_regz00_bglt) BgL_fromz00_5)))->
										BgL_typez00)), BUNSPEC);
							BgL_auxz00_3365 = ((BgL_rtl_funz00_bglt) BgL_new1156z00_2185);
						}
						((((BgL_rtl_insz00_bglt) COBJECT(BgL_new1154z00_2184))->
								BgL_funz00) = ((BgL_rtl_funz00_bglt) BgL_auxz00_3365), BUNSPEC);
					}
					((((BgL_rtl_insz00_bglt) COBJECT(BgL_new1154z00_2184))->BgL_argsz00) =
						((obj_t) MAKE_YOUNG_PAIR(BgL_fromz00_5, BNIL)), BUNSPEC);
					return BgL_new1154z00_2184;
				}
			}
		}

	}



/* add-casts-ins */
	obj_t BGl_addzd2castszd2insz00zzsaw_castz00(BgL_backendz00_bglt BgL_backz00_7,
		obj_t BgL_insz00_8)
	{
		{	/* SawMill/cast.scm 33 */
			{	/* SawMill/cast.scm 35 */
				obj_t BgL_castsz00_2191;

				BgL_castsz00_2191 =
					BGl_addzd2castzd2destz00zzsaw_castz00(BgL_backz00_7, BgL_insz00_8);
				{	/* SawMill/cast.scm 36 */
					BgL_rtl_funz00_bglt BgL_arg1554z00_2192;
					obj_t BgL_arg1555z00_2193;
					obj_t BgL_arg1560z00_2194;
					obj_t BgL_arg1563z00_2195;

					BgL_arg1554z00_2192 =
						(((BgL_rtl_insz00_bglt) COBJECT(
								((BgL_rtl_insz00_bglt) BgL_insz00_8)))->BgL_funz00);
					BgL_arg1555z00_2193 =
						(((BgL_rtl_insz00_bglt) COBJECT(
								((BgL_rtl_insz00_bglt) BgL_insz00_8)))->BgL_argsz00);
					{	/* SawMill/cast.scm 36 */
						BgL_rtl_funz00_bglt BgL_arg1564z00_2196;

						BgL_arg1564z00_2196 =
							(((BgL_rtl_insz00_bglt) COBJECT(
									((BgL_rtl_insz00_bglt) BgL_insz00_8)))->BgL_funz00);
						BgL_arg1560z00_2194 =
							BGl_typezd2argszd2zzsaw_castz00(BgL_arg1564z00_2196);
					}
					BgL_arg1563z00_2195 =
						MAKE_YOUNG_PAIR(BgL_insz00_8, BgL_castsz00_2191);
					return
						BGl_addzd2castzd2argsz00zzsaw_castz00(BgL_backz00_7,
						BgL_arg1554z00_2192, BgL_arg1555z00_2193, BgL_arg1560z00_2194,
						BgL_arg1563z00_2195);
				}
			}
		}

	}



/* add-cast-dest */
	obj_t BGl_addzd2castzd2destz00zzsaw_castz00(BgL_backendz00_bglt BgL_backz00_9,
		obj_t BgL_insz00_10)
	{
		{	/* SawMill/cast.scm 38 */
			if (CBOOL(
					(((BgL_rtl_insz00_bglt) COBJECT(
								((BgL_rtl_insz00_bglt) BgL_insz00_10)))->BgL_destz00)))
				{	/* SawMill/cast.scm 41 */
					BgL_typez00_bglt BgL_realz00_2199;
					BgL_typez00_bglt BgL_declaredz00_2200;

					{	/* SawMill/cast.scm 41 */
						BgL_rtl_funz00_bglt BgL_arg1581z00_2211;
						obj_t BgL_arg1586z00_2212;

						BgL_arg1581z00_2211 =
							(((BgL_rtl_insz00_bglt) COBJECT(
									((BgL_rtl_insz00_bglt) BgL_insz00_10)))->BgL_funz00);
						BgL_arg1586z00_2212 =
							(((BgL_rtl_insz00_bglt) COBJECT(
									((BgL_rtl_insz00_bglt) BgL_insz00_10)))->BgL_argsz00);
						BgL_realz00_2199 =
							BGl_typezd2destzd2zzsaw_castz00(BgL_arg1581z00_2211,
							BgL_arg1586z00_2212);
					}
					BgL_declaredz00_2200 =
						(((BgL_rtl_regz00_bglt) COBJECT(
								((BgL_rtl_regz00_bglt)
									(((BgL_rtl_insz00_bglt) COBJECT(
												((BgL_rtl_insz00_bglt) BgL_insz00_10)))->
										BgL_destz00))))->BgL_typez00);
					if (CBOOL(BGl_assignzd2typezf3z21zzsaw_castz00(BgL_backz00_9,
								BgL_realz00_2199, ((obj_t) BgL_declaredz00_2200))))
						{	/* SawMill/cast.scm 42 */
							return BNIL;
						}
					else
						{	/* SawMill/cast.scm 44 */
							BgL_rtl_regz00_bglt BgL_rrz00_2202;

							{	/* SawMill/cast.scm 44 */
								BgL_rtl_regz00_bglt BgL_new1160z00_2205;

								{	/* SawMill/cast.scm 45 */
									BgL_rtl_regz00_bglt BgL_new1159z00_2209;

									BgL_new1159z00_2209 =
										((BgL_rtl_regz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
													BgL_rtl_regz00_bgl))));
									{	/* SawMill/cast.scm 45 */
										long BgL_arg1579z00_2210;

										BgL_arg1579z00_2210 =
											BGL_CLASS_NUM(BGl_rtl_regz00zzsaw_defsz00);
										BGL_OBJECT_CLASS_NUM_SET(
											((BgL_objectz00_bglt) BgL_new1159z00_2209),
											BgL_arg1579z00_2210);
									}
									{	/* SawMill/cast.scm 45 */
										BgL_objectz00_bglt BgL_tmpz00_3411;

										BgL_tmpz00_3411 =
											((BgL_objectz00_bglt) BgL_new1159z00_2209);
										BGL_OBJECT_WIDENING_SET(BgL_tmpz00_3411, BFALSE);
									}
									((BgL_objectz00_bglt) BgL_new1159z00_2209);
									BgL_new1160z00_2205 = BgL_new1159z00_2209;
								}
								((((BgL_rtl_regz00_bglt) COBJECT(BgL_new1160z00_2205))->
										BgL_typez00) =
									((BgL_typez00_bglt) BgL_realz00_2199), BUNSPEC);
								((((BgL_rtl_regz00_bglt) COBJECT(BgL_new1160z00_2205))->
										BgL_varz00) = ((obj_t) BFALSE), BUNSPEC);
								((((BgL_rtl_regz00_bglt) COBJECT(BgL_new1160z00_2205))->
										BgL_onexprzf3zf3) = ((obj_t) BFALSE), BUNSPEC);
								{
									obj_t BgL_auxz00_3418;

									{	/* SawMill/cast.scm 47 */

										{	/* SawMill/cast.scm 47 */

											BgL_auxz00_3418 =
												BGl_gensymz00zz__r4_symbols_6_4z00(BFALSE);
									}}
									((((BgL_rtl_regz00_bglt) COBJECT(BgL_new1160z00_2205))->
											BgL_namez00) = ((obj_t) BgL_auxz00_3418), BUNSPEC);
								}
								{
									obj_t BgL_auxz00_3421;

									{	/* SawMill/cast.scm 47 */
										obj_t BgL_arg1576z00_2207;

										{	/* SawMill/cast.scm 47 */
											obj_t BgL_arg1578z00_2208;

											{	/* SawMill/cast.scm 47 */
												obj_t BgL_classz00_2811;

												BgL_classz00_2811 = BGl_rtl_regz00zzsaw_defsz00;
												BgL_arg1578z00_2208 =
													BGL_CLASS_ALL_FIELDS(BgL_classz00_2811);
											}
											BgL_arg1576z00_2207 = VECTOR_REF(BgL_arg1578z00_2208, 4L);
										}
										BgL_auxz00_3421 =
											BGl_classzd2fieldzd2defaultzd2valuezd2zz__objectz00
											(BgL_arg1576z00_2207);
									}
									((((BgL_rtl_regz00_bglt) COBJECT(BgL_new1160z00_2205))->
											BgL_keyz00) = ((obj_t) BgL_auxz00_3421), BUNSPEC);
								}
								((((BgL_rtl_regz00_bglt) COBJECT(BgL_new1160z00_2205))->
										BgL_debugnamez00) = ((obj_t) BFALSE), BUNSPEC);
								((((BgL_rtl_regz00_bglt) COBJECT(BgL_new1160z00_2205))->
										BgL_hardwarez00) = ((obj_t) BFALSE), BUNSPEC);
								BgL_rrz00_2202 = BgL_new1160z00_2205;
							}
							{	/* SawMill/cast.scm 48 */
								obj_t BgL_xz00_2203;

								BgL_xz00_2203 =
									(((BgL_rtl_insz00_bglt) COBJECT(
											((BgL_rtl_insz00_bglt) BgL_insz00_10)))->BgL_destz00);
								((((BgL_rtl_insz00_bglt) COBJECT(
												((BgL_rtl_insz00_bglt) BgL_insz00_10)))->BgL_destz00) =
									((obj_t) ((obj_t) BgL_rrz00_2202)), BUNSPEC);
								{	/* SawMill/cast.scm 50 */
									BgL_rtl_insz00_bglt BgL_arg1575z00_2204;

									BgL_arg1575z00_2204 =
										BGl_addzd2castzd2zzsaw_castz00(
										((obj_t) BgL_rrz00_2202), BgL_xz00_2203);
									return MAKE_YOUNG_PAIR(((obj_t) BgL_arg1575z00_2204), BNIL);
								}
							}
						}
				}
			else
				{	/* SawMill/cast.scm 40 */
					return BNIL;
				}
		}

	}



/* add-cast-args */
	obj_t BGl_addzd2castzd2argsz00zzsaw_castz00(BgL_backendz00_bglt
		BgL_backz00_11, BgL_rtl_funz00_bglt BgL_funz00_12, obj_t BgL_argsz00_13,
		obj_t BgL_typesz00_14, obj_t BgL_castsz00_15)
	{
		{	/* SawMill/cast.scm 53 */
			if (NULLP(BgL_typesz00_14))
				{	/* SawMill/cast.scm 54 */
					return BgL_castsz00_15;
				}
			else
				{	/* SawMill/cast.scm 56 */
					obj_t BgL_castsz00_2215;

					{	/* SawMill/cast.scm 56 */
						obj_t BgL_arg1609z00_2229;
						obj_t BgL_arg1613z00_2230;

						BgL_arg1609z00_2229 = CDR(((obj_t) BgL_argsz00_13));
						BgL_arg1613z00_2230 = CDR(((obj_t) BgL_typesz00_14));
						BgL_castsz00_2215 =
							BGl_addzd2castzd2argsz00zzsaw_castz00(BgL_backz00_11,
							BgL_funz00_12, BgL_arg1609z00_2229, BgL_arg1613z00_2230,
							BgL_castsz00_15);
					}
					{	/* SawMill/cast.scm 57 */
						obj_t BgL_rz00_2216;
						obj_t BgL_tz00_2217;

						BgL_rz00_2216 = CAR(((obj_t) BgL_argsz00_13));
						BgL_tz00_2217 = CAR(((obj_t) BgL_typesz00_14));
						{	/* SawMill/cast.scm 58 */
							bool_t BgL_test2005z00_3448;

							{	/* SawMill/cast.scm 58 */
								BgL_typez00_bglt BgL_arg1608z00_2228;

								BgL_arg1608z00_2228 =
									(((BgL_rtl_regz00_bglt) COBJECT(
											((BgL_rtl_regz00_bglt) BgL_rz00_2216)))->BgL_typez00);
								BgL_test2005z00_3448 =
									CBOOL(BGl_assignzd2typezf3z21zzsaw_castz00(BgL_backz00_11,
										BgL_arg1608z00_2228, BgL_tz00_2217));
							}
							if (BgL_test2005z00_3448)
								{	/* SawMill/cast.scm 58 */
									return BgL_castsz00_2215;
								}
							else
								{	/* SawMill/cast.scm 60 */
									BgL_rtl_regz00_bglt BgL_rrz00_2220;

									{	/* SawMill/cast.scm 60 */
										BgL_rtl_regz00_bglt BgL_new1162z00_2222;

										{	/* SawMill/cast.scm 61 */
											BgL_rtl_regz00_bglt BgL_new1161z00_2226;

											BgL_new1161z00_2226 =
												((BgL_rtl_regz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
															BgL_rtl_regz00_bgl))));
											{	/* SawMill/cast.scm 61 */
												long BgL_arg1606z00_2227;

												BgL_arg1606z00_2227 =
													BGL_CLASS_NUM(BGl_rtl_regz00zzsaw_defsz00);
												BGL_OBJECT_CLASS_NUM_SET(
													((BgL_objectz00_bglt) BgL_new1161z00_2226),
													BgL_arg1606z00_2227);
											}
											{	/* SawMill/cast.scm 61 */
												BgL_objectz00_bglt BgL_tmpz00_3457;

												BgL_tmpz00_3457 =
													((BgL_objectz00_bglt) BgL_new1161z00_2226);
												BGL_OBJECT_WIDENING_SET(BgL_tmpz00_3457, BFALSE);
											}
											((BgL_objectz00_bglt) BgL_new1161z00_2226);
											BgL_new1162z00_2222 = BgL_new1161z00_2226;
										}
										((((BgL_rtl_regz00_bglt) COBJECT(BgL_new1162z00_2222))->
												BgL_typez00) =
											((BgL_typez00_bglt) ((BgL_typez00_bglt) BgL_tz00_2217)),
											BUNSPEC);
										((((BgL_rtl_regz00_bglt) COBJECT(BgL_new1162z00_2222))->
												BgL_varz00) = ((obj_t) BFALSE), BUNSPEC);
										((((BgL_rtl_regz00_bglt) COBJECT(BgL_new1162z00_2222))->
												BgL_onexprzf3zf3) = ((obj_t) BFALSE), BUNSPEC);
										{
											obj_t BgL_auxz00_3465;

											{	/* SawMill/cast.scm 63 */

												{	/* SawMill/cast.scm 63 */

													BgL_auxz00_3465 =
														BGl_gensymz00zz__r4_symbols_6_4z00(BFALSE);
											}}
											((((BgL_rtl_regz00_bglt) COBJECT(BgL_new1162z00_2222))->
													BgL_namez00) = ((obj_t) BgL_auxz00_3465), BUNSPEC);
										}
										{
											obj_t BgL_auxz00_3468;

											{	/* SawMill/cast.scm 63 */
												obj_t BgL_arg1597z00_2224;

												{	/* SawMill/cast.scm 63 */
													obj_t BgL_arg1598z00_2225;

													{	/* SawMill/cast.scm 63 */
														obj_t BgL_classz00_2823;

														BgL_classz00_2823 = BGl_rtl_regz00zzsaw_defsz00;
														BgL_arg1598z00_2225 =
															BGL_CLASS_ALL_FIELDS(BgL_classz00_2823);
													}
													BgL_arg1597z00_2224 =
														VECTOR_REF(BgL_arg1598z00_2225, 4L);
												}
												BgL_auxz00_3468 =
													BGl_classzd2fieldzd2defaultzd2valuezd2zz__objectz00
													(BgL_arg1597z00_2224);
											}
											((((BgL_rtl_regz00_bglt) COBJECT(BgL_new1162z00_2222))->
													BgL_keyz00) = ((obj_t) BgL_auxz00_3468), BUNSPEC);
										}
										((((BgL_rtl_regz00_bglt) COBJECT(BgL_new1162z00_2222))->
												BgL_debugnamez00) = ((obj_t) BFALSE), BUNSPEC);
										((((BgL_rtl_regz00_bglt) COBJECT(BgL_new1162z00_2222))->
												BgL_hardwarez00) = ((obj_t) BFALSE), BUNSPEC);
										BgL_rrz00_2220 = BgL_new1162z00_2222;
									}
									{	/* SawMill/cast.scm 64 */
										obj_t BgL_auxz00_3477;
										obj_t BgL_tmpz00_3475;

										BgL_auxz00_3477 = ((obj_t) BgL_rrz00_2220);
										BgL_tmpz00_3475 = ((obj_t) BgL_argsz00_13);
										SET_CAR(BgL_tmpz00_3475, BgL_auxz00_3477);
									}
									{	/* SawMill/cast.scm 65 */
										BgL_rtl_insz00_bglt BgL_arg1595z00_2221;

										BgL_arg1595z00_2221 =
											BGl_addzd2castzd2zzsaw_castz00(BgL_rz00_2216,
											((obj_t) BgL_rrz00_2220));
										return
											MAKE_YOUNG_PAIR(
											((obj_t) BgL_arg1595z00_2221), BgL_castsz00_2215);
									}
								}
						}
					}
				}
		}

	}



/* assign-type? */
	obj_t BGl_assignzd2typezf3z21zzsaw_castz00(BgL_backendz00_bglt BgL_backz00_16,
		BgL_typez00_bglt BgL_t1z00_17, obj_t BgL_t2z00_18)
	{
		{	/* SawMill/cast.scm 67 */
			{	/* SawMill/cast.scm 68 */
				bool_t BgL__ortest_1163z00_2231;

				BgL__ortest_1163z00_2231 = (((obj_t) BgL_t1z00_17) == BgL_t2z00_18);
				if (BgL__ortest_1163z00_2231)
					{	/* SawMill/cast.scm 68 */
						return BBOOL(BgL__ortest_1163z00_2231);
					}
				else
					{	/* SawMill/cast.scm 69 */
						obj_t BgL__ortest_1164z00_2232;

						BgL__ortest_1164z00_2232 =
							BGl_memqz00zz__r4_pairs_and_lists_6_3z00(
							(((BgL_typez00_bglt) COBJECT(BgL_t1z00_17))->BgL_idz00),
							CNST_TABLE_REF(1L));
						if (CBOOL(BgL__ortest_1164z00_2232))
							{	/* SawMill/cast.scm 69 */
								return BgL__ortest_1164z00_2232;
							}
						else
							{	/* SawMill/cast.scm 70 */
								obj_t BgL__ortest_1165z00_2233;

								BgL__ortest_1165z00_2233 =
									BGl_memqz00zz__r4_pairs_and_lists_6_3z00(
									(((BgL_typez00_bglt) COBJECT(
												((BgL_typez00_bglt) BgL_t2z00_18)))->BgL_idz00),
									CNST_TABLE_REF(1L));
								if (CBOOL(BgL__ortest_1165z00_2233))
									{	/* SawMill/cast.scm 70 */
										return BgL__ortest_1165z00_2233;
									}
								else
									{	/* SawMill/cast.scm 70 */
										return
											BGl_backendzd2subtypezf3z21zzbackend_backendz00
											(BgL_backz00_16, ((obj_t) BgL_t1z00_17), BgL_t2z00_18);
									}
							}
					}
			}
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zzsaw_castz00(void)
	{
		{	/* SawMill/cast.scm 1 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zzsaw_castz00(void)
	{
		{	/* SawMill/cast.scm 1 */
			BGl_registerzd2genericz12zc0zz__objectz00
				(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_proc1924z00zzsaw_castz00,
				BGl_rtl_funz00zzsaw_defsz00, BGl_string1925z00zzsaw_castz00);
			return
				BGl_registerzd2genericz12zc0zz__objectz00
				(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_proc1926z00zzsaw_castz00,
				BGl_rtl_funz00zzsaw_defsz00, BGl_string1927z00zzsaw_castz00);
		}

	}



/* &type-args1483 */
	obj_t BGl_z62typezd2args1483zb0zzsaw_castz00(obj_t BgL_envz00_3075,
		obj_t BgL_funz00_3076)
	{
		{	/* SawMill/cast.scm 130 */
			return BNIL;
		}

	}



/* &type-dest1453 */
	obj_t BGl_z62typezd2dest1453zb0zzsaw_castz00(obj_t BgL_envz00_3077,
		obj_t BgL_funz00_3078, obj_t BgL_argsz00_3079)
	{
		{	/* SawMill/cast.scm 81 */
			return ((obj_t) BGl_findzd2typezd2zztype_envz00(CNST_TABLE_REF(2L)));
		}

	}



/* type-dest */
	BgL_typez00_bglt BGl_typezd2destzd2zzsaw_castz00(BgL_rtl_funz00_bglt
		BgL_funz00_20, obj_t BgL_argsz00_21)
	{
		{	/* SawMill/cast.scm 81 */
			{	/* SawMill/cast.scm 81 */
				obj_t BgL_method1454z00_2244;

				{	/* SawMill/cast.scm 81 */
					obj_t BgL_res1914z00_2862;

					{	/* SawMill/cast.scm 81 */
						long BgL_objzd2classzd2numz00_2833;

						BgL_objzd2classzd2numz00_2833 =
							BGL_OBJECT_CLASS_NUM(((BgL_objectz00_bglt) BgL_funz00_20));
						{	/* SawMill/cast.scm 81 */
							obj_t BgL_arg1805z00_2834;

							BgL_arg1805z00_2834 =
								PROCEDURE_REF(BGl_typezd2destzd2envz00zzsaw_castz00,
								(int) (1L));
							{	/* SawMill/cast.scm 81 */
								int BgL_offsetz00_2837;

								BgL_offsetz00_2837 = (int) (BgL_objzd2classzd2numz00_2833);
								{	/* SawMill/cast.scm 81 */
									long BgL_offsetz00_2838;

									BgL_offsetz00_2838 =
										((long) (BgL_offsetz00_2837) - OBJECT_TYPE);
									{	/* SawMill/cast.scm 81 */
										long BgL_modz00_2839;

										BgL_modz00_2839 =
											(BgL_offsetz00_2838 >> (int) ((long) ((int) (4L))));
										{	/* SawMill/cast.scm 81 */
											long BgL_restz00_2841;

											BgL_restz00_2841 =
												(BgL_offsetz00_2838 &
												(long) (
													(int) (
														((long) (
																(int) (
																	(1L <<
																		(int) ((long) ((int) (4L)))))) - 1L))));
											{	/* SawMill/cast.scm 81 */

												{	/* SawMill/cast.scm 81 */
													obj_t BgL_bucketz00_2843;

													BgL_bucketz00_2843 =
														VECTOR_REF(
														((obj_t) BgL_arg1805z00_2834), BgL_modz00_2839);
													BgL_res1914z00_2862 =
														VECTOR_REF(
														((obj_t) BgL_bucketz00_2843), BgL_restz00_2841);
					}}}}}}}}
					BgL_method1454z00_2244 = BgL_res1914z00_2862;
				}
				return
					((BgL_typez00_bglt)
					(VA_PROCEDUREP(BgL_method1454z00_2244) ? ((obj_t(*)(obj_t,
									...))
							PROCEDURE_ENTRY(BgL_method1454z00_2244)) (BgL_method1454z00_2244,
							((obj_t) BgL_funz00_20), BgL_argsz00_21, BEOA) : ((obj_t(*)(obj_t,
									obj_t,
									obj_t))
							PROCEDURE_ENTRY(BgL_method1454z00_2244)) (BgL_method1454z00_2244,
							((obj_t) BgL_funz00_20), BgL_argsz00_21)));
			}
		}

	}



/* &type-dest */
	BgL_typez00_bglt BGl_z62typezd2destzb0zzsaw_castz00(obj_t BgL_envz00_3080,
		obj_t BgL_funz00_3081, obj_t BgL_argsz00_3082)
	{
		{	/* SawMill/cast.scm 81 */
			return
				BGl_typezd2destzd2zzsaw_castz00(
				((BgL_rtl_funz00_bglt) BgL_funz00_3081), BgL_argsz00_3082);
		}

	}



/* type-args */
	obj_t BGl_typezd2argszd2zzsaw_castz00(BgL_rtl_funz00_bglt BgL_funz00_50)
	{
		{	/* SawMill/cast.scm 130 */
			{	/* SawMill/cast.scm 130 */
				obj_t BgL_method1484z00_2245;

				{	/* SawMill/cast.scm 130 */
					obj_t BgL_res1919z00_2893;

					{	/* SawMill/cast.scm 130 */
						long BgL_objzd2classzd2numz00_2864;

						BgL_objzd2classzd2numz00_2864 =
							BGL_OBJECT_CLASS_NUM(((BgL_objectz00_bglt) BgL_funz00_50));
						{	/* SawMill/cast.scm 130 */
							obj_t BgL_arg1805z00_2865;

							BgL_arg1805z00_2865 =
								PROCEDURE_REF(BGl_typezd2argszd2envz00zzsaw_castz00,
								(int) (1L));
							{	/* SawMill/cast.scm 130 */
								int BgL_offsetz00_2868;

								BgL_offsetz00_2868 = (int) (BgL_objzd2classzd2numz00_2864);
								{	/* SawMill/cast.scm 130 */
									long BgL_offsetz00_2869;

									BgL_offsetz00_2869 =
										((long) (BgL_offsetz00_2868) - OBJECT_TYPE);
									{	/* SawMill/cast.scm 130 */
										long BgL_modz00_2870;

										BgL_modz00_2870 =
											(BgL_offsetz00_2869 >> (int) ((long) ((int) (4L))));
										{	/* SawMill/cast.scm 130 */
											long BgL_restz00_2872;

											BgL_restz00_2872 =
												(BgL_offsetz00_2869 &
												(long) (
													(int) (
														((long) (
																(int) (
																	(1L <<
																		(int) ((long) ((int) (4L)))))) - 1L))));
											{	/* SawMill/cast.scm 130 */

												{	/* SawMill/cast.scm 130 */
													obj_t BgL_bucketz00_2874;

													BgL_bucketz00_2874 =
														VECTOR_REF(
														((obj_t) BgL_arg1805z00_2865), BgL_modz00_2870);
													BgL_res1919z00_2893 =
														VECTOR_REF(
														((obj_t) BgL_bucketz00_2874), BgL_restz00_2872);
					}}}}}}}}
					BgL_method1484z00_2245 = BgL_res1919z00_2893;
				}
				return
					(VA_PROCEDUREP(BgL_method1484z00_2245) ? ((obj_t(*)(obj_t,
								...))
						PROCEDURE_ENTRY(BgL_method1484z00_2245)) (BgL_method1484z00_2245,
						((obj_t) BgL_funz00_50), BEOA) : ((obj_t(*)(obj_t,
								obj_t))
						PROCEDURE_ENTRY(BgL_method1484z00_2245)) (BgL_method1484z00_2245,
						((obj_t) BgL_funz00_50)));
			}
		}

	}



/* &type-args */
	obj_t BGl_z62typezd2argszb0zzsaw_castz00(obj_t BgL_envz00_3083,
		obj_t BgL_funz00_3084)
	{
		{	/* SawMill/cast.scm 130 */
			return
				BGl_typezd2argszd2zzsaw_castz00(
				((BgL_rtl_funz00_bglt) BgL_funz00_3084));
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zzsaw_castz00(void)
	{
		{	/* SawMill/cast.scm 1 */
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_nopz00zzsaw_defsz00,
				BGl_proc1928z00zzsaw_castz00, BGl_string1929z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_movz00zzsaw_defsz00,
				BGl_proc1930z00zzsaw_castz00, BGl_string1929z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_loadiz00zzsaw_defsz00,
				BGl_proc1931z00zzsaw_castz00, BGl_string1929z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_loadfunz00zzsaw_defsz00,
				BGl_proc1932z00zzsaw_castz00, BGl_string1929z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_loadgz00zzsaw_defsz00,
				BGl_proc1933z00zzsaw_castz00, BGl_string1929z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2destzd2envz00zzsaw_castz00,
				BGl_rtl_getfieldz00zzsaw_defsz00, BGl_proc1934z00zzsaw_castz00,
				BGl_string1929z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_newz00zzsaw_defsz00,
				BGl_proc1935z00zzsaw_castz00, BGl_string1929z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_vallocz00zzsaw_defsz00,
				BGl_proc1936z00zzsaw_castz00, BGl_string1929z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_vrefz00zzsaw_defsz00,
				BGl_proc1937z00zzsaw_castz00, BGl_string1929z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_vlengthz00zzsaw_defsz00,
				BGl_proc1938z00zzsaw_castz00, BGl_string1929z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2destzd2envz00zzsaw_castz00,
				BGl_rtl_instanceofz00zzsaw_defsz00, BGl_proc1939z00zzsaw_castz00,
				BGl_string1929z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2destzd2envz00zzsaw_castz00,
				BGl_rtl_cast_nullz00zzsaw_defsz00, BGl_proc1940z00zzsaw_castz00,
				BGl_string1929z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_callz00zzsaw_defsz00,
				BGl_proc1941z00zzsaw_castz00, BGl_string1929z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_castz00zzsaw_defsz00,
				BGl_proc1942z00zzsaw_castz00, BGl_string1929z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2argszd2envz00zzsaw_castz00,
				BGl_rtl_getfieldz00zzsaw_defsz00, BGl_proc1943z00zzsaw_castz00,
				BGl_string1944z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2argszd2envz00zzsaw_castz00,
				BGl_rtl_setfieldz00zzsaw_defsz00, BGl_proc1945z00zzsaw_castz00,
				BGl_string1944z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_vrefz00zzsaw_defsz00,
				BGl_proc1946z00zzsaw_castz00, BGl_string1944z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_vsetz00zzsaw_defsz00,
				BGl_proc1947z00zzsaw_castz00, BGl_string1944z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_vlengthz00zzsaw_defsz00,
				BGl_proc1948z00zzsaw_castz00, BGl_string1944z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_storegz00zzsaw_defsz00,
				BGl_proc1949z00zzsaw_castz00, BGl_string1944z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_callz00zzsaw_defsz00,
				BGl_proc1950z00zzsaw_castz00, BGl_string1944z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_returnz00zzsaw_defsz00,
				BGl_proc1951z00zzsaw_castz00, BGl_string1944z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_funcallz00zzsaw_defsz00,
				BGl_proc1952z00zzsaw_castz00, BGl_string1944z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2argszd2envz00zzsaw_castz00,
				BGl_rtl_lightfuncallz00zzsaw_defsz00, BGl_proc1953z00zzsaw_castz00,
				BGl_string1944z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_applyz00zzsaw_defsz00,
				BGl_proc1954z00zzsaw_castz00, BGl_string1944z00zzsaw_castz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_boxrefz00zzsaw_defsz00,
				BGl_proc1955z00zzsaw_castz00, BGl_string1944z00zzsaw_castz00);
			return
				BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_boxsetz00zzsaw_defsz00,
				BGl_proc1956z00zzsaw_castz00, BGl_string1944z00zzsaw_castz00);
		}

	}



/* &type-args-rtl_boxset1511 */
	obj_t BGl_z62typezd2argszd2rtl_boxset1511z62zzsaw_castz00(obj_t
		BgL_envz00_3112, obj_t BgL_funz00_3113)
	{
		{	/* SawMill/cast.scm 176 */
			{	/* SawMill/cast.scm 177 */
				BgL_typez00_bglt BgL_arg1715z00_3195;

				BgL_arg1715z00_3195 =
					BGl_findzd2typezd2zztype_envz00(CNST_TABLE_REF(3L));
				return MAKE_YOUNG_PAIR(((obj_t) BgL_arg1715z00_3195), BNIL);
			}
		}

	}



/* &type-args-rtl_boxref1509 */
	obj_t BGl_z62typezd2argszd2rtl_boxref1509z62zzsaw_castz00(obj_t
		BgL_envz00_3114, obj_t BgL_funz00_3115)
	{
		{	/* SawMill/cast.scm 173 */
			{	/* SawMill/cast.scm 174 */
				BgL_typez00_bglt BgL_arg1714z00_3197;

				BgL_arg1714z00_3197 =
					BGl_findzd2typezd2zztype_envz00(CNST_TABLE_REF(3L));
				return MAKE_YOUNG_PAIR(((obj_t) BgL_arg1714z00_3197), BNIL);
			}
		}

	}



/* &type-args-rtl_apply1507 */
	obj_t BGl_z62typezd2argszd2rtl_apply1507z62zzsaw_castz00(obj_t
		BgL_envz00_3116, obj_t BgL_funz00_3117)
	{
		{	/* SawMill/cast.scm 170 */
			{	/* SawMill/cast.scm 171 */
				BgL_typez00_bglt BgL_arg1712z00_3199;

				BgL_arg1712z00_3199 =
					BGl_findzd2typezd2zztype_envz00(CNST_TABLE_REF(4L));
				return MAKE_YOUNG_PAIR(((obj_t) BgL_arg1712z00_3199), BNIL);
			}
		}

	}



/* &type-args-rtl_lightf1505 */
	obj_t BGl_z62typezd2argszd2rtl_lightf1505z62zzsaw_castz00(obj_t
		BgL_envz00_3118, obj_t BgL_funz00_3119)
	{
		{	/* SawMill/cast.scm 167 */
			{	/* SawMill/cast.scm 168 */
				BgL_typez00_bglt BgL_arg1710z00_3201;

				BgL_arg1710z00_3201 =
					BGl_findzd2typezd2zztype_envz00(CNST_TABLE_REF(4L));
				return MAKE_YOUNG_PAIR(((obj_t) BgL_arg1710z00_3201), BNIL);
			}
		}

	}



/* &type-args-rtl_funcal1503 */
	obj_t BGl_z62typezd2argszd2rtl_funcal1503z62zzsaw_castz00(obj_t
		BgL_envz00_3120, obj_t BgL_funz00_3121)
	{
		{	/* SawMill/cast.scm 164 */
			{	/* SawMill/cast.scm 165 */
				BgL_typez00_bglt BgL_arg1709z00_3203;

				BgL_arg1709z00_3203 =
					BGl_findzd2typezd2zztype_envz00(CNST_TABLE_REF(4L));
				return MAKE_YOUNG_PAIR(((obj_t) BgL_arg1709z00_3203), BNIL);
			}
		}

	}



/* &type-args-rtl_return1501 */
	obj_t BGl_z62typezd2argszd2rtl_return1501z62zzsaw_castz00(obj_t
		BgL_envz00_3122, obj_t BgL_funz00_3123)
	{
		{	/* SawMill/cast.scm 161 */
			{	/* SawMill/cast.scm 162 */
				BgL_typez00_bglt BgL_arg1708z00_3205;

				BgL_arg1708z00_3205 =
					(((BgL_rtl_returnz00_bglt) COBJECT(
							((BgL_rtl_returnz00_bglt) BgL_funz00_3123)))->BgL_typez00);
				return MAKE_YOUNG_PAIR(((obj_t) BgL_arg1708z00_3205), BNIL);
			}
		}

	}



/* &type-args-rtl_call1499 */
	obj_t BGl_z62typezd2argszd2rtl_call1499z62zzsaw_castz00(obj_t BgL_envz00_3124,
		obj_t BgL_funz00_3125)
	{
		{	/* SawMill/cast.scm 151 */
			{	/* SawMill/cast.scm 152 */
				BgL_valuez00_bglt BgL_fz00_3207;

				BgL_fz00_3207 =
					(((BgL_variablez00_bglt) COBJECT(
							((BgL_variablez00_bglt)
								(((BgL_rtl_callz00_bglt) COBJECT(
											((BgL_rtl_callz00_bglt) BgL_funz00_3125)))->
									BgL_varz00))))->BgL_valuez00);
				{	/* SawMill/cast.scm 153 */

					{	/* SawMill/cast.scm 154 */
						bool_t BgL_test2009z00_3627;

						{	/* SawMill/cast.scm 154 */
							obj_t BgL_classz00_3208;

							BgL_classz00_3208 = BGl_cfunz00zzast_varz00;
							{	/* SawMill/cast.scm 154 */
								BgL_objectz00_bglt BgL_arg1801z00_3209;

								{	/* SawMill/cast.scm 154 */
									obj_t BgL_tmpz00_3628;

									BgL_tmpz00_3628 =
										((obj_t) ((BgL_objectz00_bglt) BgL_fz00_3207));
									BgL_arg1801z00_3209 = (BgL_objectz00_bglt) (BgL_tmpz00_3628);
								}
								if (BGL_CONDEXPAND_ISA_ARCH64())
									{	/* SawMill/cast.scm 154 */
										long BgL_idxz00_3210;

										BgL_idxz00_3210 =
											BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_3209);
										BgL_test2009z00_3627 =
											(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
												(BgL_idxz00_3210 + 3L)) == BgL_classz00_3208);
									}
								else
									{	/* SawMill/cast.scm 154 */
										bool_t BgL_res1920z00_3213;

										{	/* SawMill/cast.scm 154 */
											obj_t BgL_oclassz00_3214;

											{	/* SawMill/cast.scm 154 */
												long BgL_arg1808z00_3215;

												{	/* SawMill/cast.scm 154 */
													long BgL_arg1809z00_3216;

													BgL_arg1809z00_3216 =
														BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_3209);
													BgL_arg1808z00_3215 =
														(BgL_arg1809z00_3216 - OBJECT_TYPE);
												}
												BgL_oclassz00_3214 =
													VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
													BgL_arg1808z00_3215);
											}
											{	/* SawMill/cast.scm 154 */
												bool_t BgL__ortest_1115z00_3217;

												BgL__ortest_1115z00_3217 =
													(BgL_classz00_3208 == BgL_oclassz00_3214);
												if (BgL__ortest_1115z00_3217)
													{	/* SawMill/cast.scm 154 */
														BgL_res1920z00_3213 = BgL__ortest_1115z00_3217;
													}
												else
													{	/* SawMill/cast.scm 154 */
														long BgL_odepthz00_3218;

														BgL_odepthz00_3218 =
															BGL_CLASS_DEPTH(BgL_oclassz00_3214);
														if ((3L < BgL_odepthz00_3218))
															{	/* SawMill/cast.scm 154 */
																obj_t BgL_arg1797z00_3219;

																BgL_arg1797z00_3219 =
																	BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_3214,
																	3L);
																BgL_res1920z00_3213 =
																	(BgL_arg1797z00_3219 == BgL_classz00_3208);
															}
														else
															{	/* SawMill/cast.scm 154 */
																BgL_res1920z00_3213 = ((bool_t) 0);
															}
													}
											}
										}
										BgL_test2009z00_3627 = BgL_res1920z00_3213;
									}
							}
						}
						if (BgL_test2009z00_3627)
							{	/* SawMill/cast.scm 154 */
								return
									(((BgL_cfunz00_bglt) COBJECT(
											((BgL_cfunz00_bglt) BgL_fz00_3207)))->BgL_argszd2typezd2);
							}
						else
							{	/* SawMill/cast.scm 156 */
								obj_t BgL_rz00_3220;

								BgL_rz00_3220 =
									(((BgL_sfunz00_bglt) COBJECT(
											((BgL_sfunz00_bglt) BgL_fz00_3207)))->BgL_argsz00);
								{	/* SawMill/cast.scm 157 */
									bool_t BgL_test2013z00_3652;

									if (NULLP(BgL_rz00_3220))
										{	/* SawMill/cast.scm 157 */
											BgL_test2013z00_3652 = ((bool_t) 1);
										}
									else
										{	/* SawMill/cast.scm 157 */
											obj_t BgL_arg1706z00_3221;

											BgL_arg1706z00_3221 = CAR(((obj_t) BgL_rz00_3220));
											{	/* SawMill/cast.scm 157 */
												obj_t BgL_classz00_3222;

												BgL_classz00_3222 = BGl_typez00zztype_typez00;
												if (BGL_OBJECTP(BgL_arg1706z00_3221))
													{	/* SawMill/cast.scm 157 */
														BgL_objectz00_bglt BgL_arg1801z00_3223;

														BgL_arg1801z00_3223 =
															(BgL_objectz00_bglt) (BgL_arg1706z00_3221);
														if (BGL_CONDEXPAND_ISA_ARCH64())
															{	/* SawMill/cast.scm 157 */
																long BgL_idxz00_3224;

																BgL_idxz00_3224 =
																	BGL_OBJECT_INHERITANCE_NUM
																	(BgL_arg1801z00_3223);
																BgL_test2013z00_3652 =
																	(VECTOR_REF
																	(BGl_za2inheritancesza2z00zz__objectz00,
																		(BgL_idxz00_3224 + 1L)) ==
																	BgL_classz00_3222);
															}
														else
															{	/* SawMill/cast.scm 157 */
																bool_t BgL_res1921z00_3227;

																{	/* SawMill/cast.scm 157 */
																	obj_t BgL_oclassz00_3228;

																	{	/* SawMill/cast.scm 157 */
																		long BgL_arg1808z00_3229;

																		{	/* SawMill/cast.scm 157 */
																			long BgL_arg1809z00_3230;

																			BgL_arg1809z00_3230 =
																				BGL_OBJECT_CLASS_NUM
																				(BgL_arg1801z00_3223);
																			BgL_arg1808z00_3229 =
																				(BgL_arg1809z00_3230 - OBJECT_TYPE);
																		}
																		BgL_oclassz00_3228 =
																			VECTOR_REF
																			(BGl_za2classesza2z00zz__objectz00,
																			BgL_arg1808z00_3229);
																	}
																	{	/* SawMill/cast.scm 157 */
																		bool_t BgL__ortest_1115z00_3231;

																		BgL__ortest_1115z00_3231 =
																			(BgL_classz00_3222 == BgL_oclassz00_3228);
																		if (BgL__ortest_1115z00_3231)
																			{	/* SawMill/cast.scm 157 */
																				BgL_res1921z00_3227 =
																					BgL__ortest_1115z00_3231;
																			}
																		else
																			{	/* SawMill/cast.scm 157 */
																				long BgL_odepthz00_3232;

																				BgL_odepthz00_3232 =
																					BGL_CLASS_DEPTH(BgL_oclassz00_3228);
																				if ((1L < BgL_odepthz00_3232))
																					{	/* SawMill/cast.scm 157 */
																						obj_t BgL_arg1797z00_3233;

																						BgL_arg1797z00_3233 =
																							BGL_CLASS_ANCESTORS_REF
																							(BgL_oclassz00_3228, 1L);
																						BgL_res1921z00_3227 =
																							(BgL_arg1797z00_3233 ==
																							BgL_classz00_3222);
																					}
																				else
																					{	/* SawMill/cast.scm 157 */
																						BgL_res1921z00_3227 = ((bool_t) 0);
																					}
																			}
																	}
																}
																BgL_test2013z00_3652 = BgL_res1921z00_3227;
															}
													}
												else
													{	/* SawMill/cast.scm 157 */
														BgL_test2013z00_3652 = ((bool_t) 0);
													}
											}
										}
									if (BgL_test2013z00_3652)
										{	/* SawMill/cast.scm 157 */
											return BgL_rz00_3220;
										}
									else
										{	/* SawMill/cast.scm 157 */
											if (NULLP(BgL_rz00_3220))
												{	/* SawMill/cast.scm 159 */
													return BNIL;
												}
											else
												{	/* SawMill/cast.scm 159 */
													obj_t BgL_head1449z00_3234;

													{	/* SawMill/cast.scm 159 */
														BgL_typez00_bglt BgL_arg1696z00_3235;

														BgL_arg1696z00_3235 =
															(((BgL_variablez00_bglt) COBJECT(
																	((BgL_variablez00_bglt)
																		((BgL_localz00_bglt)
																			CAR(
																				((obj_t) BgL_rz00_3220))))))->
															BgL_typez00);
														BgL_head1449z00_3234 =
															MAKE_YOUNG_PAIR(((obj_t) BgL_arg1696z00_3235),
															BNIL);
													}
													{	/* SawMill/cast.scm 159 */
														obj_t BgL_g1452z00_3236;

														BgL_g1452z00_3236 = CDR(((obj_t) BgL_rz00_3220));
														{
															obj_t BgL_l1447z00_3238;
															obj_t BgL_tail1450z00_3239;

															BgL_l1447z00_3238 = BgL_g1452z00_3236;
															BgL_tail1450z00_3239 = BgL_head1449z00_3234;
														BgL_zc3z04anonymousza31687ze3z87_3237:
															if (NULLP(BgL_l1447z00_3238))
																{	/* SawMill/cast.scm 159 */
																	return BgL_head1449z00_3234;
																}
															else
																{	/* SawMill/cast.scm 159 */
																	obj_t BgL_newtail1451z00_3240;

																	{	/* SawMill/cast.scm 159 */
																		BgL_typez00_bglt BgL_arg1693z00_3241;

																		BgL_arg1693z00_3241 =
																			(((BgL_variablez00_bglt) COBJECT(
																					((BgL_variablez00_bglt)
																						((BgL_localz00_bglt)
																							CAR(
																								((obj_t)
																									BgL_l1447z00_3238))))))->
																			BgL_typez00);
																		BgL_newtail1451z00_3240 =
																			MAKE_YOUNG_PAIR(((obj_t)
																				BgL_arg1693z00_3241), BNIL);
																	}
																	SET_CDR(BgL_tail1450z00_3239,
																		BgL_newtail1451z00_3240);
																	{	/* SawMill/cast.scm 159 */
																		obj_t BgL_arg1690z00_3242;

																		BgL_arg1690z00_3242 =
																			CDR(((obj_t) BgL_l1447z00_3238));
																		{
																			obj_t BgL_tail1450z00_3700;
																			obj_t BgL_l1447z00_3699;

																			BgL_l1447z00_3699 = BgL_arg1690z00_3242;
																			BgL_tail1450z00_3700 =
																				BgL_newtail1451z00_3240;
																			BgL_tail1450z00_3239 =
																				BgL_tail1450z00_3700;
																			BgL_l1447z00_3238 = BgL_l1447z00_3699;
																			goto
																				BgL_zc3z04anonymousza31687ze3z87_3237;
																		}
																	}
																}
														}
													}
												}
										}
								}
							}
					}
				}
			}
		}

	}



/* &type-args-rtl_storeg1497 */
	obj_t BGl_z62typezd2argszd2rtl_storeg1497z62zzsaw_castz00(obj_t
		BgL_envz00_3126, obj_t BgL_funz00_3127)
	{
		{	/* SawMill/cast.scm 148 */
			{	/* SawMill/cast.scm 149 */
				BgL_typez00_bglt BgL_arg1675z00_3244;

				BgL_arg1675z00_3244 =
					(((BgL_variablez00_bglt) COBJECT(
							((BgL_variablez00_bglt)
								(((BgL_rtl_storegz00_bglt) COBJECT(
											((BgL_rtl_storegz00_bglt) BgL_funz00_3127)))->
									BgL_varz00))))->BgL_typez00);
				return MAKE_YOUNG_PAIR(((obj_t) BgL_arg1675z00_3244), BNIL);
			}
		}

	}



/* &type-args-rtl_vlengt1495 */
	obj_t BGl_z62typezd2argszd2rtl_vlengt1495z62zzsaw_castz00(obj_t
		BgL_envz00_3128, obj_t BgL_funz00_3129)
	{
		{	/* SawMill/cast.scm 145 */
			{	/* SawMill/cast.scm 146 */
				BgL_typez00_bglt BgL_arg1673z00_3246;

				BgL_arg1673z00_3246 =
					(((BgL_rtl_vlengthz00_bglt) COBJECT(
							((BgL_rtl_vlengthz00_bglt) BgL_funz00_3129)))->BgL_vtypez00);
				return MAKE_YOUNG_PAIR(((obj_t) BgL_arg1673z00_3246), BNIL);
			}
		}

	}



/* &type-args-rtl_vset1493 */
	obj_t BGl_z62typezd2argszd2rtl_vset1493z62zzsaw_castz00(obj_t BgL_envz00_3130,
		obj_t BgL_funz00_3131)
	{
		{	/* SawMill/cast.scm 142 */
			{	/* SawMill/cast.scm 143 */
				BgL_typez00_bglt BgL_arg1669z00_3248;

				BgL_arg1669z00_3248 =
					(((BgL_rtl_vsetz00_bglt) COBJECT(
							((BgL_rtl_vsetz00_bglt) BgL_funz00_3131)))->BgL_vtypez00);
				return MAKE_YOUNG_PAIR(((obj_t) BgL_arg1669z00_3248), BNIL);
			}
		}

	}



/* &type-args-rtl_vref1490 */
	obj_t BGl_z62typezd2argszd2rtl_vref1490z62zzsaw_castz00(obj_t BgL_envz00_3132,
		obj_t BgL_funz00_3133)
	{
		{	/* SawMill/cast.scm 139 */
			{	/* SawMill/cast.scm 140 */
				BgL_typez00_bglt BgL_arg1661z00_3250;

				BgL_arg1661z00_3250 =
					(((BgL_rtl_vrefz00_bglt) COBJECT(
							((BgL_rtl_vrefz00_bglt) BgL_funz00_3133)))->BgL_vtypez00);
				return MAKE_YOUNG_PAIR(((obj_t) BgL_arg1661z00_3250), BNIL);
			}
		}

	}



/* &type-args-rtl_setfie1488 */
	obj_t BGl_z62typezd2argszd2rtl_setfie1488z62zzsaw_castz00(obj_t
		BgL_envz00_3134, obj_t BgL_funz00_3135)
	{
		{	/* SawMill/cast.scm 136 */
			{	/* SawMill/cast.scm 137 */
				BgL_typez00_bglt BgL_arg1639z00_3252;
				obj_t BgL_arg1649z00_3253;

				BgL_arg1639z00_3252 =
					(((BgL_rtl_setfieldz00_bglt) COBJECT(
							((BgL_rtl_setfieldz00_bglt) BgL_funz00_3135)))->BgL_objtypez00);
				{	/* SawMill/cast.scm 137 */
					BgL_typez00_bglt BgL_arg1658z00_3254;

					BgL_arg1658z00_3254 =
						(((BgL_rtl_setfieldz00_bglt) COBJECT(
								((BgL_rtl_setfieldz00_bglt) BgL_funz00_3135)))->BgL_typez00);
					BgL_arg1649z00_3253 =
						MAKE_YOUNG_PAIR(((obj_t) BgL_arg1658z00_3254), BNIL);
				}
				return
					MAKE_YOUNG_PAIR(((obj_t) BgL_arg1639z00_3252), BgL_arg1649z00_3253);
			}
		}

	}



/* &type-args-rtl_getfie1486 */
	obj_t BGl_z62typezd2argszd2rtl_getfie1486z62zzsaw_castz00(obj_t
		BgL_envz00_3136, obj_t BgL_funz00_3137)
	{
		{	/* SawMill/cast.scm 133 */
			{	/* SawMill/cast.scm 134 */
				BgL_typez00_bglt BgL_arg1630z00_3256;

				BgL_arg1630z00_3256 =
					(((BgL_rtl_getfieldz00_bglt) COBJECT(
							((BgL_rtl_getfieldz00_bglt) BgL_funz00_3137)))->BgL_objtypez00);
				return MAKE_YOUNG_PAIR(((obj_t) BgL_arg1630z00_3256), BNIL);
			}
		}

	}



/* &type-dest-rtl_cast1482 */
	BgL_typez00_bglt BGl_z62typezd2destzd2rtl_cast1482z62zzsaw_castz00(obj_t
		BgL_envz00_3138, obj_t BgL_funz00_3139, obj_t BgL_argsz00_3140)
	{
		{	/* SawMill/cast.scm 126 */
			return
				(((BgL_rtl_castz00_bglt) COBJECT(
						((BgL_rtl_castz00_bglt) BgL_funz00_3139)))->BgL_totypez00);
		}

	}



/* &type-dest-rtl_call1480 */
	BgL_typez00_bglt BGl_z62typezd2destzd2rtl_call1480z62zzsaw_castz00(obj_t
		BgL_envz00_3141, obj_t BgL_funz00_3142, obj_t BgL_argsz00_3143)
	{
		{	/* SawMill/cast.scm 123 */
			return
				(((BgL_variablez00_bglt) COBJECT(
						((BgL_variablez00_bglt)
							(((BgL_rtl_callz00_bglt) COBJECT(
										((BgL_rtl_callz00_bglt) BgL_funz00_3142)))->BgL_varz00))))->
				BgL_typez00);
		}

	}



/* &type-dest-rtl_cast_n1478 */
	BgL_typez00_bglt BGl_z62typezd2destzd2rtl_cast_n1478z62zzsaw_castz00(obj_t
		BgL_envz00_3144, obj_t BgL_funz00_3145, obj_t BgL_argsz00_3146)
	{
		{	/* SawMill/cast.scm 119 */
			return
				(((BgL_rtl_cast_nullz00_bglt) COBJECT(
						((BgL_rtl_cast_nullz00_bglt) BgL_funz00_3145)))->BgL_typez00);
		}

	}



/* &type-dest-rtl_instan1476 */
	BgL_typez00_bglt BGl_z62typezd2destzd2rtl_instan1476z62zzsaw_castz00(obj_t
		BgL_envz00_3147, obj_t BgL_funz00_3148, obj_t BgL_argsz00_3149)
	{
		{	/* SawMill/cast.scm 116 */
			return BGl_findzd2typezd2zztype_envz00(CNST_TABLE_REF(5L));
		}

	}



/* &type-dest-rtl_vlengt1474 */
	BgL_typez00_bglt BGl_z62typezd2destzd2rtl_vlengt1474z62zzsaw_castz00(obj_t
		BgL_envz00_3150, obj_t BgL_funz00_3151, obj_t BgL_argsz00_3152)
	{
		{	/* SawMill/cast.scm 113 */
			return BGl_findzd2typezd2zztype_envz00(CNST_TABLE_REF(5L));
		}

	}



/* &type-dest-rtl_vref1472 */
	BgL_typez00_bglt BGl_z62typezd2destzd2rtl_vref1472z62zzsaw_castz00(obj_t
		BgL_envz00_3153, obj_t BgL_funz00_3154, obj_t BgL_argsz00_3155)
	{
		{	/* SawMill/cast.scm 110 */
			return
				(((BgL_rtl_vrefz00_bglt) COBJECT(
						((BgL_rtl_vrefz00_bglt) BgL_funz00_3154)))->BgL_typez00);
		}

	}



/* &type-dest-rtl_valloc1470 */
	BgL_typez00_bglt BGl_z62typezd2destzd2rtl_valloc1470z62zzsaw_castz00(obj_t
		BgL_envz00_3156, obj_t BgL_funz00_3157, obj_t BgL_argsz00_3158)
	{
		{	/* SawMill/cast.scm 107 */
			return
				(((BgL_rtl_vallocz00_bglt) COBJECT(
						((BgL_rtl_vallocz00_bglt) BgL_funz00_3157)))->BgL_vtypez00);
		}

	}



/* &type-dest-rtl_new1468 */
	BgL_typez00_bglt BGl_z62typezd2destzd2rtl_new1468z62zzsaw_castz00(obj_t
		BgL_envz00_3159, obj_t BgL_funz00_3160, obj_t BgL_argsz00_3161)
	{
		{	/* SawMill/cast.scm 104 */
			return
				(((BgL_rtl_newz00_bglt) COBJECT(
						((BgL_rtl_newz00_bglt) BgL_funz00_3160)))->BgL_typez00);
		}

	}



/* &type-dest-rtl_getfie1466 */
	BgL_typez00_bglt BGl_z62typezd2destzd2rtl_getfie1466z62zzsaw_castz00(obj_t
		BgL_envz00_3162, obj_t BgL_funz00_3163, obj_t BgL_argsz00_3164)
	{
		{	/* SawMill/cast.scm 101 */
			return
				(((BgL_rtl_getfieldz00_bglt) COBJECT(
						((BgL_rtl_getfieldz00_bglt) BgL_funz00_3163)))->BgL_typez00);
		}

	}



/* &type-dest-rtl_loadg1464 */
	BgL_typez00_bglt BGl_z62typezd2destzd2rtl_loadg1464z62zzsaw_castz00(obj_t
		BgL_envz00_3165, obj_t BgL_funz00_3166, obj_t BgL_argsz00_3167)
	{
		{	/* SawMill/cast.scm 98 */
			return
				(((BgL_variablez00_bglt) COBJECT(
						((BgL_variablez00_bglt)
							(((BgL_rtl_loadgz00_bglt) COBJECT(
										((BgL_rtl_loadgz00_bglt) BgL_funz00_3166)))->
								BgL_varz00))))->BgL_typez00);
		}

	}



/* &type-dest-rtl_loadfu1462 */
	BgL_typez00_bglt BGl_z62typezd2destzd2rtl_loadfu1462z62zzsaw_castz00(obj_t
		BgL_envz00_3168, obj_t BgL_funz00_3169, obj_t BgL_argsz00_3170)
	{
		{	/* SawMill/cast.scm 93 */
			return BGl_findzd2typezd2zztype_envz00(CNST_TABLE_REF(4L));
		}

	}



/* &type-dest-rtl_loadi1460 */
	BgL_typez00_bglt BGl_z62typezd2destzd2rtl_loadi1460z62zzsaw_castz00(obj_t
		BgL_envz00_3171, obj_t BgL_funz00_3172, obj_t BgL_argsz00_3173)
	{
		{	/* SawMill/cast.scm 90 */
			return
				(((BgL_nodez00_bglt) COBJECT(
						((BgL_nodez00_bglt)
							(((BgL_rtl_loadiz00_bglt) COBJECT(
										((BgL_rtl_loadiz00_bglt) BgL_funz00_3172)))->
								BgL_constantz00))))->BgL_typez00);
		}

	}



/* &type-dest-rtl_mov1458 */
	BgL_typez00_bglt BGl_z62typezd2destzd2rtl_mov1458z62zzsaw_castz00(obj_t
		BgL_envz00_3174, obj_t BgL_funz00_3175, obj_t BgL_argsz00_3176)
	{
		{	/* SawMill/cast.scm 87 */
			return
				(((BgL_rtl_regz00_bglt) COBJECT(
						((BgL_rtl_regz00_bglt)
							CAR(((obj_t) ((obj_t) BgL_argsz00_3176))))))->BgL_typez00);
		}

	}



/* &type-dest-rtl_nop1456 */
	BgL_typez00_bglt BGl_z62typezd2destzd2rtl_nop1456z62zzsaw_castz00(obj_t
		BgL_envz00_3177, obj_t BgL_funz00_3178, obj_t BgL_argsz00_3179)
	{
		{	/* SawMill/cast.scm 84 */
			return BGl_findzd2typezd2zztype_envz00(CNST_TABLE_REF(6L));
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zzsaw_castz00(void)
	{
		{	/* SawMill/cast.scm 1 */
			BGl_modulezd2initializa7ationz75zztype_typez00(515343395L,
				BSTRING_TO_STRING(BGl_string1957z00zzsaw_castz00));
			BGl_modulezd2initializa7ationz75zzast_varz00(90839984L,
				BSTRING_TO_STRING(BGl_string1957z00zzsaw_castz00));
			BGl_modulezd2initializa7ationz75zzast_nodez00(469732712L,
				BSTRING_TO_STRING(BGl_string1957z00zzsaw_castz00));
			BGl_modulezd2initializa7ationz75zztype_envz00(296457443L,
				BSTRING_TO_STRING(BGl_string1957z00zzsaw_castz00));
			BGl_modulezd2initializa7ationz75zztype_cachez00(346491734L,
				BSTRING_TO_STRING(BGl_string1957z00zzsaw_castz00));
			BGl_modulezd2initializa7ationz75zztools_shapez00(365925558L,
				BSTRING_TO_STRING(BGl_string1957z00zzsaw_castz00));
			BGl_modulezd2initializa7ationz75zzobject_classz00(502007119L,
				BSTRING_TO_STRING(BGl_string1957z00zzsaw_castz00));
			BGl_modulezd2initializa7ationz75zzbackend_backendz00(216206620L,
				BSTRING_TO_STRING(BGl_string1957z00zzsaw_castz00));
			return
				BGl_modulezd2initializa7ationz75zzsaw_defsz00(404844772L,
				BSTRING_TO_STRING(BGl_string1957z00zzsaw_castz00));
		}

	}

#ifdef __cplusplus
}
#endif
