/*===========================================================================*/
/*   (SawMill/expr.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/expr.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_EXPR_TYPE_DEFINITIONS
#define BGL_SAW_EXPR_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_funz00_bgl
	{
		header_t header;
		obj_t widening;
		long BgL_arityz00;
		obj_t BgL_sidezd2effectzd2;
		obj_t BgL_predicatezd2ofzd2;
		obj_t BgL_stackzd2allocatorzd2;
		bool_t BgL_topzf3zf3;
		obj_t BgL_thezd2closurezd2;
		obj_t BgL_effectz00;
		obj_t BgL_failsafez00;
		obj_t BgL_argszd2noescapezd2;
		obj_t BgL_argszd2retescapezd2;
	}             *BgL_funz00_bglt;

	typedef struct BgL_feffectz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_readz00;
		obj_t BgL_writez00;
	}                 *BgL_feffectz00_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_nopz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
	}                 *BgL_rtl_nopz00_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_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;

	typedef struct BgL_iregz00_bgl
	{
		obj_t BgL_indexz00;
		obj_t BgL_statusz00;
	}              *BgL_iregz00_bglt;

	typedef struct BgL_pregz00_bgl
	{
		obj_t BgL_indexz00;
		obj_t BgL_statusz00;
	}              *BgL_pregz00_bglt;

	typedef struct BgL_inlinedz00_bgl
	{
	}                 *BgL_inlinedz00_bglt;


#endif													// BGL_SAW_EXPR_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	static obj_t BGl_z62acceptzd2foldingzf31596z43zzsaw_exprz00(obj_t, obj_t,
		obj_t, obj_t);
	extern obj_t BGl_rtl_insz00zzsaw_defsz00;
	BGL_IMPORT obj_t BGl_putpropz12z12zz__r4_symbols_6_4z00(obj_t, obj_t, obj_t);
	static obj_t BGl_prezd2analysezd2zzsaw_exprz00(BgL_backendz00_bglt, obj_t,
		obj_t);
	static obj_t BGl_z62effectszd2rtl_setfield1616zb0zzsaw_exprz00(obj_t, obj_t);
	extern obj_t BGl_rtl_funcallz00zzsaw_defsz00;
	static BgL_feffectz00_bglt BGl_za2getfza2z00zzsaw_exprz00;
	extern obj_t BGl_rtl_funz00zzsaw_defsz00;
	static bool_t BGl_intersectionzf3ze70z14zzsaw_exprz00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_classzd2nilzd2initz12z12zz__objectz00(obj_t);
	extern obj_t BGl_rtl_pragmaz00zzsaw_defsz00;
	static obj_t BGl_requirezd2initializa7ationz75zzsaw_exprz00 = BUNSPEC;
	static obj_t BGl_z62prezd2buildzd2treez62zzsaw_exprz00(obj_t, obj_t, obj_t,
		obj_t);
	extern obj_t BGl_funz00zzast_varz00;
	static obj_t BGl_pregz00zzsaw_exprz00 = BUNSPEC;
	extern obj_t BGl_rtl_boxrefz00zzsaw_defsz00;
	static bool_t BGl_matcheffectz00zzsaw_exprz00(obj_t, obj_t);
	static BgL_rtl_regz00_bglt BGl_z62lambda1959z62zzsaw_exprz00(obj_t, obj_t,
		obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
	BGL_IMPORT obj_t BGl_za2classesza2z00zz__objectz00;
	static BgL_feffectz00_bglt BGl_za2fullza2z00zzsaw_exprz00;
	BGL_IMPORT obj_t BGl_registerzd2genericz12zc0zz__objectz00(obj_t, obj_t,
		obj_t, obj_t);
	static BgL_rtl_regz00_bglt BGl_z62lambda1962z62zzsaw_exprz00(obj_t, obj_t);
	static obj_t BGl_z62effectszd2rtl_apply1618zb0zzsaw_exprz00(obj_t, obj_t);
	static BgL_feffectz00_bglt BGl_za2loadgza2z00zzsaw_exprz00;
	static BgL_rtl_regz00_bglt BGl_z62lambda1965z62zzsaw_exprz00(obj_t, obj_t);
	extern obj_t BGl_rtl_vrefz00zzsaw_defsz00;
	static obj_t BGl_toplevelzd2initzd2zzsaw_exprz00(void);
	extern obj_t BGl_rtl_protectz00zzsaw_defsz00;
	static obj_t BGl_z62lambda1972z62zzsaw_exprz00(obj_t, obj_t);
	static obj_t BGl_z62lambda1973z62zzsaw_exprz00(obj_t, obj_t, obj_t);
	static obj_t BGl_z62lambda1977z62zzsaw_exprz00(obj_t, obj_t);
	static obj_t BGl_z62lambda1978z62zzsaw_exprz00(obj_t, obj_t, obj_t);
	static obj_t BGl_z62effectszd2rtl_boxset1612zb0zzsaw_exprz00(obj_t, obj_t);
	extern obj_t BGl_rtl_boxsetz00zzsaw_defsz00;
	static obj_t BGl_z62zc3z04anonymousza31964ze3ze5zzsaw_exprz00(obj_t, obj_t);
	static BgL_rtl_regz00_bglt BGl_z62lambda1985z62zzsaw_exprz00(obj_t, obj_t,
		obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
	static obj_t BGl_genericzd2initzd2zzsaw_exprz00(void);
	static BgL_rtl_regz00_bglt BGl_z62lambda1988z62zzsaw_exprz00(obj_t, obj_t);
	static BgL_feffectz00_bglt BGl_za2vrefza2z00zzsaw_exprz00;
	static BgL_feffectz00_bglt BGl_za2storegza2z00zzsaw_exprz00;
	static obj_t BGl_z62effectszd2rtl_call1628zb0zzsaw_exprz00(obj_t, obj_t);
	static obj_t BGl_z62effectszd2rtl_boxref1610zb0zzsaw_exprz00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_makezd2classzd2fieldz00zz__objectz00(obj_t, obj_t, obj_t,
		bool_t, bool_t, obj_t, obj_t, obj_t);
	extern obj_t BGl_rtl_vsetz00zzsaw_defsz00;
	static bool_t BGl_markzd2localszd2zzsaw_exprz00(obj_t, obj_t);
	static obj_t BGl_objectzd2initzd2zzsaw_exprz00(void);
	static BgL_rtl_regz00_bglt BGl_z62lambda1991z62zzsaw_exprz00(obj_t, obj_t);
	static BgL_feffectz00_bglt BGl_za2noeffectza2z00zzsaw_exprz00;
	static obj_t BGl_z62lambda1998z62zzsaw_exprz00(obj_t, obj_t);
	static obj_t BGl_z62lambda1999z62zzsaw_exprz00(obj_t, obj_t, obj_t);
	static obj_t BGl_z62zc3z04anonymousza32017ze3ze5zzsaw_exprz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_buildzd2treezd2zzsaw_exprz00(BgL_backendz00_bglt,
		obj_t, obj_t);
	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_z62zc3z04anonymousza31990ze3ze5zzsaw_exprz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_prezd2buildzd2treez00zzsaw_exprz00(BgL_backendz00_bglt, obj_t, obj_t);
	extern obj_t BGl_typez00zztype_typez00;
	extern obj_t BGl_rtl_lightfuncallz00zzsaw_defsz00;
	extern obj_t BGl_rtl_regz00zzsaw_defsz00;
	static obj_t BGl_z62effectszd2rtl_loadg1602zb0zzsaw_exprz00(obj_t, obj_t);
	static obj_t BGl_z62effectszd2rtl_protect1626zb0zzsaw_exprz00(obj_t, obj_t);
	extern obj_t BGl_rtl_movz00zzsaw_defsz00;
	static obj_t BGl_z62buildzd2treezb0zzsaw_exprz00(obj_t, obj_t, obj_t, obj_t);
	static obj_t BGl_z62usefulz62zzsaw_exprz00(obj_t, obj_t);
	static BgL_feffectz00_bglt BGl_za2boxrefza2z00zzsaw_exprz00;
	BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t, obj_t);
	static obj_t BGl_inlinedz00zzsaw_exprz00 = BUNSPEC;
	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_exprz00(void);
	static obj_t BGl_regzd2ze3pregzf2writeze70z24zzsaw_exprz00(obj_t, obj_t);
	static obj_t BGl_z62effectszd2rtl_storeg1604zb0zzsaw_exprz00(obj_t, obj_t);
	static obj_t BGl_iregz00zzsaw_exprz00 = BUNSPEC;
	static obj_t BGl_manuzd2effectzd2zzsaw_exprz00(BgL_globalz00_bglt);
	static BgL_feffectz00_bglt BGl_za2prefza2z00zzsaw_exprz00;
	extern obj_t BGl_rtl_setfieldz00zzsaw_defsz00;
	static obj_t BGl_z62effectszd2rtl_pragma1624zb0zzsaw_exprz00(obj_t, obj_t);
	static obj_t BGl_z62lambda2003z62zzsaw_exprz00(obj_t, obj_t);
	static obj_t BGl_z62lambda2004z62zzsaw_exprz00(obj_t, obj_t, obj_t);
	static obj_t BGl_z62effectsz62zzsaw_exprz00(obj_t, obj_t);
	static BgL_rtl_insz00_bglt BGl_z62lambda2012z62zzsaw_exprz00(obj_t, obj_t,
		obj_t, obj_t, obj_t, obj_t);
	extern obj_t BGl_rtl_callz00zzsaw_defsz00;
	static BgL_rtl_insz00_bglt BGl_z62lambda2015z62zzsaw_exprz00(obj_t, obj_t);
	static BgL_rtl_insz00_bglt BGl_z62lambda2018z62zzsaw_exprz00(obj_t, obj_t);
	extern obj_t BGl_rtl_storegz00zzsaw_defsz00;
	static BgL_feffectz00_bglt BGl_za2setfza2z00zzsaw_exprz00;
	static obj_t BGl_xxz00zzsaw_exprz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_rtl_applyz00zzsaw_defsz00;
	BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzsaw_exprz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzsaw_defsz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzbackend_backendz00(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_control_features_6_9z00(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 obj_t BGl_z62effectszd2rtl_vset1608zb0zzsaw_exprz00(obj_t, obj_t);
	static obj_t BGl_z62effectszd2rtl_funcall1622zb0zzsaw_exprz00(obj_t, obj_t);
	extern obj_t BGl_rtl_loadgz00zzsaw_defsz00;
	static long BGl_za2countza2z00zzsaw_exprz00;
	static obj_t BGl_z62effectszd2rtl_vref1606zb0zzsaw_exprz00(obj_t, obj_t);
	extern obj_t BGl_feffectz00zzast_varz00;
	static obj_t BGl_cnstzd2initzd2zzsaw_exprz00(void);
	static obj_t BGl_libraryzd2moduleszd2initz00zzsaw_exprz00(void);
	BGL_IMPORT obj_t BGl_registerzd2classz12zc0zz__objectz00(obj_t, obj_t, obj_t,
		long, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
	static obj_t BGl_importedzd2moduleszd2initz00zzsaw_exprz00(void);
	static obj_t BGl_gczd2rootszd2initz00zzsaw_exprz00(void);
	static obj_t BGl_regzd2ze3iregze70zd6zzsaw_exprz00(obj_t, obj_t);
	extern obj_t BGl_backendz00zzbackend_backendz00;
	static BgL_feffectz00_bglt BGl_za2vsetza2z00zzsaw_exprz00;
	static obj_t BGl_z62effects1598z62zzsaw_exprz00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_getpropz00zz__r4_symbols_6_4z00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_filterz12z12zz__r4_control_features_6_9z00(obj_t, obj_t);
	extern obj_t BGl_rtl_getfieldz00zzsaw_defsz00;
	static obj_t BGl_regzd2ze3pregze70zd6zzsaw_exprz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_acceptzd2foldingzf3z21zzsaw_exprz00(BgL_backendz00_bglt, obj_t, obj_t);
	BGL_IMPORT obj_t BGl_genericzd2addzd2methodz12z12zz__objectz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_z62acceptzd2foldingzf3z43zzsaw_exprz00(obj_t, obj_t, obj_t,
		obj_t);
	static BgL_feffectz00_bglt BGl_za2boxsetza2z00zzsaw_exprz00;
	static bool_t BGl_prezd2markzd2localsz00zzsaw_exprz00(obj_t, obj_t);
	static obj_t BGl_analysez00zzsaw_exprz00(BgL_backendz00_bglt, obj_t, obj_t);
	static obj_t BGl_z62effectszd2rtl_getfield1614zb0zzsaw_exprz00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_classzd2superzd2zz__objectz00(obj_t);
	static obj_t BGl_regzd2ze3iregzf2writeze70z24zzsaw_exprz00(obj_t, obj_t);
	static obj_t BGl_effectsz00zzsaw_exprz00(BgL_rtl_funz00_bglt);
	static obj_t BGl_z62effectszd2rtl_lightfun1620zb0zzsaw_exprz00(obj_t, obj_t);
	static BgL_feffectz00_bglt BGl_za2psetza2z00zzsaw_exprz00;
	static obj_t __cnst[28];


	   
		 
		DEFINE_STRING(BGl_string2201z00zzsaw_exprz00,
		BgL_bgl_string2201za700za7za7s2204za7, "saw_expr", 8);
	      DEFINE_STRING(BGl_string2202z00zzsaw_exprz00,
		BgL_bgl_string2202za700za7za7s2205za7,
		"inlined preg saw_expr ireg status obj index (print (global-id var) \" has no effect\") ko ok written readen reset c-write-char c-current-output-port (output-port) $tvector-descr-set! procedure-set! procedure-ref make-fx-procedure foreign $cons (procedure) top (field) (box) (vector) (memory) ",
		290);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2200z00zzsaw_exprz00,
		BgL_bgl_za762effectsza7d2rtl2206z00,
		BGl_z62effectszd2rtl_call1628zb0zzsaw_exprz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2161z00zzsaw_exprz00,
		BgL_bgl_za762usefulza762za7za7sa2207z00, BGl_z62usefulz62zzsaw_exprz00, 0L,
		BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2162z00zzsaw_exprz00,
		BgL_bgl_za762lambda1973za7622208z00, BGl_z62lambda1973z62zzsaw_exprz00, 0L,
		BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2163z00zzsaw_exprz00,
		BgL_bgl_za762lambda1972za7622209z00, BGl_z62lambda1972z62zzsaw_exprz00, 0L,
		BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2164z00zzsaw_exprz00,
		BgL_bgl_za762lambda1978za7622210z00, BGl_z62lambda1978z62zzsaw_exprz00, 0L,
		BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2165z00zzsaw_exprz00,
		BgL_bgl_za762lambda1977za7622211z00, BGl_z62lambda1977z62zzsaw_exprz00, 0L,
		BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2166z00zzsaw_exprz00,
		BgL_bgl_za762lambda1965za7622212z00, BGl_z62lambda1965z62zzsaw_exprz00, 0L,
		BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2167z00zzsaw_exprz00,
		BgL_bgl_za762za7c3za704anonymo2213za7,
		BGl_z62zc3z04anonymousza31964ze3ze5zzsaw_exprz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2168z00zzsaw_exprz00,
		BgL_bgl_za762lambda1962za7622214z00, BGl_z62lambda1962z62zzsaw_exprz00, 0L,
		BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2169z00zzsaw_exprz00,
		BgL_bgl_za762lambda1959za7622215z00, BGl_z62lambda1959z62zzsaw_exprz00, 0L,
		BUNSPEC, 9);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2170z00zzsaw_exprz00,
		BgL_bgl_za762lambda1999za7622216z00, BGl_z62lambda1999z62zzsaw_exprz00, 0L,
		BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2171z00zzsaw_exprz00,
		BgL_bgl_za762lambda1998za7622217z00, BGl_z62lambda1998z62zzsaw_exprz00, 0L,
		BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2172z00zzsaw_exprz00,
		BgL_bgl_za762lambda2004za7622218z00, BGl_z62lambda2004z62zzsaw_exprz00, 0L,
		BUNSPEC, 2);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2173z00zzsaw_exprz00,
		BgL_bgl_za762lambda2003za7622219z00, BGl_z62lambda2003z62zzsaw_exprz00, 0L,
		BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2174z00zzsaw_exprz00,
		BgL_bgl_za762lambda1991za7622220z00, BGl_z62lambda1991z62zzsaw_exprz00, 0L,
		BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2175z00zzsaw_exprz00,
		BgL_bgl_za762za7c3za704anonymo2221za7,
		BGl_z62zc3z04anonymousza31990ze3ze5zzsaw_exprz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2176z00zzsaw_exprz00,
		BgL_bgl_za762lambda1988za7622222z00, BGl_z62lambda1988z62zzsaw_exprz00, 0L,
		BUNSPEC, 1);
	      DEFINE_STRING(BGl_string2183z00zzsaw_exprz00,
		BgL_bgl_string2183za700za7za7s2223za7, "accept-folding?1596", 19);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2177z00zzsaw_exprz00,
		BgL_bgl_za762lambda1985za7622224z00, BGl_z62lambda1985z62zzsaw_exprz00, 0L,
		BUNSPEC, 9);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2178z00zzsaw_exprz00,
		BgL_bgl_za762lambda2018za7622225z00, BGl_z62lambda2018z62zzsaw_exprz00, 0L,
		BUNSPEC, 1);
	      DEFINE_STRING(BGl_string2185z00zzsaw_exprz00,
		BgL_bgl_string2185za700za7za7s2226za7, "effects1598", 11);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2179z00zzsaw_exprz00,
		BgL_bgl_za762za7c3za704anonymo2227za7,
		BGl_z62zc3z04anonymousza32017ze3ze5zzsaw_exprz00, 0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string2187z00zzsaw_exprz00,
		BgL_bgl_string2187za700za7za7s2228za7, "effects", 7);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2180z00zzsaw_exprz00,
		BgL_bgl_za762lambda2015za7622229z00, BGl_z62lambda2015z62zzsaw_exprz00, 0L,
		BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2181z00zzsaw_exprz00,
		BgL_bgl_za762lambda2012za7622230z00, BGl_z62lambda2012z62zzsaw_exprz00, 0L,
		BUNSPEC, 5);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2182z00zzsaw_exprz00,
		BgL_bgl_za762acceptza7d2fold2231z00,
		BGl_z62acceptzd2foldingzf31596z43zzsaw_exprz00, 0L, BUNSPEC, 3);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2184z00zzsaw_exprz00,
		BgL_bgl_za762effects1598za762232z00, BGl_z62effects1598z62zzsaw_exprz00, 0L,
		BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2186z00zzsaw_exprz00,
		BgL_bgl_za762effectsza7d2rtl2233z00,
		BGl_z62effectszd2rtl_loadg1602zb0zzsaw_exprz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2188z00zzsaw_exprz00,
		BgL_bgl_za762effectsza7d2rtl2234z00,
		BGl_z62effectszd2rtl_storeg1604zb0zzsaw_exprz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2189z00zzsaw_exprz00,
		BgL_bgl_za762effectsza7d2rtl2235z00,
		BGl_z62effectszd2rtl_vref1606zb0zzsaw_exprz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2190z00zzsaw_exprz00,
		BgL_bgl_za762effectsza7d2rtl2236z00,
		BGl_z62effectszd2rtl_vset1608zb0zzsaw_exprz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2191z00zzsaw_exprz00,
		BgL_bgl_za762effectsza7d2rtl2237z00,
		BGl_z62effectszd2rtl_boxref1610zb0zzsaw_exprz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2192z00zzsaw_exprz00,
		BgL_bgl_za762effectsza7d2rtl2238z00,
		BGl_z62effectszd2rtl_boxset1612zb0zzsaw_exprz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2193z00zzsaw_exprz00,
		BgL_bgl_za762effectsza7d2rtl2239z00,
		BGl_z62effectszd2rtl_getfield1614zb0zzsaw_exprz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2194z00zzsaw_exprz00,
		BgL_bgl_za762effectsza7d2rtl2240z00,
		BGl_z62effectszd2rtl_setfield1616zb0zzsaw_exprz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2195z00zzsaw_exprz00,
		BgL_bgl_za762effectsza7d2rtl2241z00,
		BGl_z62effectszd2rtl_apply1618zb0zzsaw_exprz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2196z00zzsaw_exprz00,
		BgL_bgl_za762effectsza7d2rtl2242z00,
		BGl_z62effectszd2rtl_lightfun1620zb0zzsaw_exprz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2197z00zzsaw_exprz00,
		BgL_bgl_za762effectsza7d2rtl2243z00,
		BGl_z62effectszd2rtl_funcall1622zb0zzsaw_exprz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2198z00zzsaw_exprz00,
		BgL_bgl_za762effectsza7d2rtl2244z00,
		BGl_z62effectszd2rtl_pragma1624zb0zzsaw_exprz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2199z00zzsaw_exprz00,
		BgL_bgl_za762effectsza7d2rtl2245z00,
		BGl_z62effectszd2rtl_protect1626zb0zzsaw_exprz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_prezd2buildzd2treezd2envzd2zzsaw_exprz00,
		BgL_bgl_za762preza7d2buildza7d2246za7,
		BGl_z62prezd2buildzd2treez62zzsaw_exprz00, 0L, BUNSPEC, 3);
	      DEFINE_EXPORT_BGL_GENERIC(BGl_acceptzd2foldingzf3zd2envzf3zzsaw_exprz00,
		BgL_bgl_za762acceptza7d2fold2247z00,
		BGl_z62acceptzd2foldingzf3z43zzsaw_exprz00, 0L, BUNSPEC, 3);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_buildzd2treezd2envz00zzsaw_exprz00,
		BgL_bgl_za762buildza7d2treeza72248za7, BGl_z62buildzd2treezb0zzsaw_exprz00,
		0L, BUNSPEC, 3);
	      DEFINE_STATIC_BGL_GENERIC(BGl_effectszd2envzd2zzsaw_exprz00,
		BgL_bgl_za762effectsza762za7za7s2249z00, BGl_z62effectsz62zzsaw_exprz00, 0L,
		BUNSPEC, 1);

/* 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_za2getfza2z00zzsaw_exprz00));
		     ADD_ROOT((void *) (&BGl_requirezd2initializa7ationz75zzsaw_exprz00));
		     ADD_ROOT((void *) (&BGl_pregz00zzsaw_exprz00));
		     ADD_ROOT((void *) (&BGl_za2fullza2z00zzsaw_exprz00));
		     ADD_ROOT((void *) (&BGl_za2loadgza2z00zzsaw_exprz00));
		     ADD_ROOT((void *) (&BGl_za2vrefza2z00zzsaw_exprz00));
		     ADD_ROOT((void *) (&BGl_za2storegza2z00zzsaw_exprz00));
		     ADD_ROOT((void *) (&BGl_za2noeffectza2z00zzsaw_exprz00));
		     ADD_ROOT((void *) (&BGl_za2boxrefza2z00zzsaw_exprz00));
		     ADD_ROOT((void *) (&BGl_inlinedz00zzsaw_exprz00));
		     ADD_ROOT((void *) (&BGl_iregz00zzsaw_exprz00));
		     ADD_ROOT((void *) (&BGl_za2prefza2z00zzsaw_exprz00));
		     ADD_ROOT((void *) (&BGl_za2setfza2z00zzsaw_exprz00));
		     ADD_ROOT((void *) (&BGl_za2vsetza2z00zzsaw_exprz00));
		     ADD_ROOT((void *) (&BGl_za2boxsetza2z00zzsaw_exprz00));
		     ADD_ROOT((void *) (&BGl_za2psetza2z00zzsaw_exprz00));
#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_exprz00(long
		BgL_checksumz00_4146, char *BgL_fromz00_4147)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zzsaw_exprz00))
				{
					BGl_requirezd2initializa7ationz75zzsaw_exprz00 = BBOOL(((bool_t) 0));
					BGl_gczd2rootszd2initz00zzsaw_exprz00();
					BGl_libraryzd2moduleszd2initz00zzsaw_exprz00();
					BGl_cnstzd2initzd2zzsaw_exprz00();
					BGl_importedzd2moduleszd2initz00zzsaw_exprz00();
					BGl_objectzd2initzd2zzsaw_exprz00();
					BGl_genericzd2initzd2zzsaw_exprz00();
					BGl_methodzd2initzd2zzsaw_exprz00();
					return BGl_toplevelzd2initzd2zzsaw_exprz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



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

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zzsaw_exprz00(void)
	{
		{	/* SawMill/expr.scm 1 */
			{	/* SawMill/expr.scm 1 */
				obj_t BgL_cportz00_4015;

				{	/* SawMill/expr.scm 1 */
					obj_t BgL_stringz00_4022;

					BgL_stringz00_4022 = BGl_string2202z00zzsaw_exprz00;
					{	/* SawMill/expr.scm 1 */
						obj_t BgL_startz00_4023;

						BgL_startz00_4023 = BINT(0L);
						{	/* SawMill/expr.scm 1 */
							obj_t BgL_endz00_4024;

							BgL_endz00_4024 =
								BINT(STRING_LENGTH(((obj_t) BgL_stringz00_4022)));
							{	/* SawMill/expr.scm 1 */

								BgL_cportz00_4015 =
									BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00
									(BgL_stringz00_4022, BgL_startz00_4023, BgL_endz00_4024);
				}}}}
				{
					long BgL_iz00_4016;

					BgL_iz00_4016 = 27L;
				BgL_loopz00_4017:
					if ((BgL_iz00_4016 == -1L))
						{	/* SawMill/expr.scm 1 */
							return BUNSPEC;
						}
					else
						{	/* SawMill/expr.scm 1 */
							{	/* SawMill/expr.scm 1 */
								obj_t BgL_arg2203z00_4018;

								{	/* SawMill/expr.scm 1 */

									{	/* SawMill/expr.scm 1 */
										obj_t BgL_locationz00_4020;

										BgL_locationz00_4020 = BBOOL(((bool_t) 0));
										{	/* SawMill/expr.scm 1 */

											BgL_arg2203z00_4018 =
												BGl_readz00zz__readerz00(BgL_cportz00_4015,
												BgL_locationz00_4020);
										}
									}
								}
								{	/* SawMill/expr.scm 1 */
									int BgL_tmpz00_4179;

									BgL_tmpz00_4179 = (int) (BgL_iz00_4016);
									CNST_TABLE_SET(BgL_tmpz00_4179, BgL_arg2203z00_4018);
							}}
							{	/* SawMill/expr.scm 1 */
								int BgL_auxz00_4021;

								BgL_auxz00_4021 = (int) ((BgL_iz00_4016 - 1L));
								{
									long BgL_iz00_4184;

									BgL_iz00_4184 = (long) (BgL_auxz00_4021);
									BgL_iz00_4016 = BgL_iz00_4184;
									goto BgL_loopz00_4017;
								}
							}
						}
				}
			}
		}

	}



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

	}



/* toplevel-init */
	obj_t BGl_toplevelzd2initzd2zzsaw_exprz00(void)
	{
		{	/* SawMill/expr.scm 1 */
			BGl_za2countza2z00zzsaw_exprz00 = 0L;
			{	/* SawMill/expr.scm 218 */
				BgL_feffectz00_bglt BgL_new1230z00_1999;

				{	/* Ast/var.scm 179 */
					BgL_feffectz00_bglt BgL_new1229z00_2000;

					BgL_new1229z00_2000 =
						((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
									BgL_feffectz00_bgl))));
					{	/* Ast/var.scm 179 */
						long BgL_arg1629z00_2001;

						BgL_arg1629z00_2001 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
						BGL_OBJECT_CLASS_NUM_SET(
							((BgL_objectz00_bglt) BgL_new1229z00_2000), BgL_arg1629z00_2001);
					}
					BgL_new1230z00_1999 = BgL_new1229z00_2000;
				}
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1230z00_1999))->BgL_readz00) =
					((obj_t) BNIL), BUNSPEC);
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1230z00_1999))->BgL_writez00) =
					((obj_t) BNIL), BUNSPEC);
				BGl_za2noeffectza2z00zzsaw_exprz00 = BgL_new1230z00_1999;
			}
			{	/* SawMill/expr.scm 219 */
				BgL_feffectz00_bglt BgL_new1233z00_2002;

				{	/* SawMill/expr.scm 219 */
					BgL_feffectz00_bglt BgL_new1231z00_2003;

					BgL_new1231z00_2003 =
						((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
									BgL_feffectz00_bgl))));
					{	/* SawMill/expr.scm 219 */
						long BgL_arg1630z00_2004;

						BgL_arg1630z00_2004 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
						BGL_OBJECT_CLASS_NUM_SET(
							((BgL_objectz00_bglt) BgL_new1231z00_2003), BgL_arg1630z00_2004);
					}
					BgL_new1233z00_2002 = BgL_new1231z00_2003;
				}
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1233z00_2002))->BgL_readz00) =
					((obj_t) CNST_TABLE_REF(0L)), BUNSPEC);
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1233z00_2002))->BgL_writez00) =
					((obj_t) BNIL), BUNSPEC);
				BGl_za2loadgza2z00zzsaw_exprz00 = BgL_new1233z00_2002;
			}
			{	/* SawMill/expr.scm 220 */
				BgL_feffectz00_bglt BgL_new1235z00_2005;

				{	/* Ast/var.scm 179 */
					BgL_feffectz00_bglt BgL_new1234z00_2006;

					BgL_new1234z00_2006 =
						((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
									BgL_feffectz00_bgl))));
					{	/* Ast/var.scm 179 */
						long BgL_arg1639z00_2007;

						BgL_arg1639z00_2007 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
						BGL_OBJECT_CLASS_NUM_SET(
							((BgL_objectz00_bglt) BgL_new1234z00_2006), BgL_arg1639z00_2007);
					}
					BgL_new1235z00_2005 = BgL_new1234z00_2006;
				}
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1235z00_2005))->BgL_readz00) =
					((obj_t) BNIL), BUNSPEC);
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1235z00_2005))->BgL_writez00) =
					((obj_t) CNST_TABLE_REF(0L)), BUNSPEC);
				BGl_za2storegza2z00zzsaw_exprz00 = BgL_new1235z00_2005;
			}
			{	/* SawMill/expr.scm 221 */
				BgL_feffectz00_bglt BgL_new1237z00_2008;

				{	/* SawMill/expr.scm 221 */
					BgL_feffectz00_bglt BgL_new1236z00_2009;

					BgL_new1236z00_2009 =
						((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
									BgL_feffectz00_bgl))));
					{	/* SawMill/expr.scm 221 */
						long BgL_arg1649z00_2010;

						BgL_arg1649z00_2010 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
						BGL_OBJECT_CLASS_NUM_SET(
							((BgL_objectz00_bglt) BgL_new1236z00_2009), BgL_arg1649z00_2010);
					}
					BgL_new1237z00_2008 = BgL_new1236z00_2009;
				}
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1237z00_2008))->BgL_readz00) =
					((obj_t) CNST_TABLE_REF(1L)), BUNSPEC);
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1237z00_2008))->BgL_writez00) =
					((obj_t) BNIL), BUNSPEC);
				BGl_za2vrefza2z00zzsaw_exprz00 = BgL_new1237z00_2008;
			}
			{	/* SawMill/expr.scm 222 */
				BgL_feffectz00_bglt BgL_new1239z00_2011;

				{	/* Ast/var.scm 179 */
					BgL_feffectz00_bglt BgL_new1238z00_2012;

					BgL_new1238z00_2012 =
						((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
									BgL_feffectz00_bgl))));
					{	/* Ast/var.scm 179 */
						long BgL_arg1658z00_2013;

						BgL_arg1658z00_2013 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
						BGL_OBJECT_CLASS_NUM_SET(
							((BgL_objectz00_bglt) BgL_new1238z00_2012), BgL_arg1658z00_2013);
					}
					BgL_new1239z00_2011 = BgL_new1238z00_2012;
				}
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1239z00_2011))->BgL_readz00) =
					((obj_t) BNIL), BUNSPEC);
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1239z00_2011))->BgL_writez00) =
					((obj_t) CNST_TABLE_REF(1L)), BUNSPEC);
				BGl_za2vsetza2z00zzsaw_exprz00 = BgL_new1239z00_2011;
			}
			{	/* SawMill/expr.scm 223 */
				BgL_feffectz00_bglt BgL_new1241z00_2014;

				{	/* SawMill/expr.scm 223 */
					BgL_feffectz00_bglt BgL_new1240z00_2015;

					BgL_new1240z00_2015 =
						((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
									BgL_feffectz00_bgl))));
					{	/* SawMill/expr.scm 223 */
						long BgL_arg1661z00_2016;

						BgL_arg1661z00_2016 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
						BGL_OBJECT_CLASS_NUM_SET(
							((BgL_objectz00_bglt) BgL_new1240z00_2015), BgL_arg1661z00_2016);
					}
					BgL_new1241z00_2014 = BgL_new1240z00_2015;
				}
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1241z00_2014))->BgL_readz00) =
					((obj_t) CNST_TABLE_REF(2L)), BUNSPEC);
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1241z00_2014))->BgL_writez00) =
					((obj_t) BNIL), BUNSPEC);
				BGl_za2boxrefza2z00zzsaw_exprz00 = BgL_new1241z00_2014;
			}
			{	/* SawMill/expr.scm 224 */
				BgL_feffectz00_bglt BgL_new1243z00_2017;

				{	/* Ast/var.scm 179 */
					BgL_feffectz00_bglt BgL_new1242z00_2018;

					BgL_new1242z00_2018 =
						((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
									BgL_feffectz00_bgl))));
					{	/* Ast/var.scm 179 */
						long BgL_arg1669z00_2019;

						BgL_arg1669z00_2019 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
						BGL_OBJECT_CLASS_NUM_SET(
							((BgL_objectz00_bglt) BgL_new1242z00_2018), BgL_arg1669z00_2019);
					}
					BgL_new1243z00_2017 = BgL_new1242z00_2018;
				}
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1243z00_2017))->BgL_readz00) =
					((obj_t) BNIL), BUNSPEC);
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1243z00_2017))->BgL_writez00) =
					((obj_t) CNST_TABLE_REF(2L)), BUNSPEC);
				BGl_za2boxsetza2z00zzsaw_exprz00 = BgL_new1243z00_2017;
			}
			{	/* SawMill/expr.scm 225 */
				BgL_feffectz00_bglt BgL_new1246z00_2020;

				{	/* SawMill/expr.scm 225 */
					BgL_feffectz00_bglt BgL_new1244z00_2021;

					BgL_new1244z00_2021 =
						((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
									BgL_feffectz00_bgl))));
					{	/* SawMill/expr.scm 225 */
						long BgL_arg1673z00_2022;

						BgL_arg1673z00_2022 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
						BGL_OBJECT_CLASS_NUM_SET(
							((BgL_objectz00_bglt) BgL_new1244z00_2021), BgL_arg1673z00_2022);
					}
					BgL_new1246z00_2020 = BgL_new1244z00_2021;
				}
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1246z00_2020))->BgL_readz00) =
					((obj_t) CNST_TABLE_REF(3L)), BUNSPEC);
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1246z00_2020))->BgL_writez00) =
					((obj_t) BNIL), BUNSPEC);
				BGl_za2getfza2z00zzsaw_exprz00 = BgL_new1246z00_2020;
			}
			{	/* SawMill/expr.scm 226 */
				BgL_feffectz00_bglt BgL_new1248z00_2023;

				{	/* Ast/var.scm 179 */
					BgL_feffectz00_bglt BgL_new1247z00_2024;

					BgL_new1247z00_2024 =
						((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
									BgL_feffectz00_bgl))));
					{	/* Ast/var.scm 179 */
						long BgL_arg1675z00_2025;

						BgL_arg1675z00_2025 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
						BGL_OBJECT_CLASS_NUM_SET(
							((BgL_objectz00_bglt) BgL_new1247z00_2024), BgL_arg1675z00_2025);
					}
					BgL_new1248z00_2023 = BgL_new1247z00_2024;
				}
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1248z00_2023))->BgL_readz00) =
					((obj_t) BNIL), BUNSPEC);
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1248z00_2023))->BgL_writez00) =
					((obj_t) CNST_TABLE_REF(3L)), BUNSPEC);
				BGl_za2setfza2z00zzsaw_exprz00 = BgL_new1248z00_2023;
			}
			{	/* SawMill/expr.scm 227 */
				BgL_feffectz00_bglt BgL_new1250z00_2026;

				{	/* SawMill/expr.scm 227 */
					BgL_feffectz00_bglt BgL_new1249z00_2027;

					BgL_new1249z00_2027 =
						((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
									BgL_feffectz00_bgl))));
					{	/* SawMill/expr.scm 227 */
						long BgL_arg1678z00_2028;

						BgL_arg1678z00_2028 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
						BGL_OBJECT_CLASS_NUM_SET(
							((BgL_objectz00_bglt) BgL_new1249z00_2027), BgL_arg1678z00_2028);
					}
					BgL_new1250z00_2026 = BgL_new1249z00_2027;
				}
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1250z00_2026))->BgL_readz00) =
					((obj_t) CNST_TABLE_REF(4L)), BUNSPEC);
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1250z00_2026))->BgL_writez00) =
					((obj_t) CNST_TABLE_REF(4L)), BUNSPEC);
				BGl_za2fullza2z00zzsaw_exprz00 = BgL_new1250z00_2026;
			}
			{	/* SawMill/expr.scm 266 */
				BgL_feffectz00_bglt BgL_new1257z00_2029;

				{	/* SawMill/expr.scm 266 */
					BgL_feffectz00_bglt BgL_new1255z00_2030;

					BgL_new1255z00_2030 =
						((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
									BgL_feffectz00_bgl))));
					{	/* SawMill/expr.scm 266 */
						long BgL_arg1681z00_2031;

						BgL_arg1681z00_2031 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
						BGL_OBJECT_CLASS_NUM_SET(
							((BgL_objectz00_bglt) BgL_new1255z00_2030), BgL_arg1681z00_2031);
					}
					BgL_new1257z00_2029 = BgL_new1255z00_2030;
				}
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1257z00_2029))->BgL_readz00) =
					((obj_t) CNST_TABLE_REF(5L)), BUNSPEC);
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1257z00_2029))->BgL_writez00) =
					((obj_t) BNIL), BUNSPEC);
				BGl_za2prefza2z00zzsaw_exprz00 = BgL_new1257z00_2029;
			}
			{	/* SawMill/expr.scm 267 */
				BgL_feffectz00_bglt BgL_new1259z00_2032;

				{	/* Ast/var.scm 179 */
					BgL_feffectz00_bglt BgL_new1258z00_2033;

					BgL_new1258z00_2033 =
						((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
									BgL_feffectz00_bgl))));
					{	/* Ast/var.scm 179 */
						long BgL_arg1684z00_2034;

						BgL_arg1684z00_2034 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
						BGL_OBJECT_CLASS_NUM_SET(
							((BgL_objectz00_bglt) BgL_new1258z00_2033), BgL_arg1684z00_2034);
					}
					BgL_new1259z00_2032 = BgL_new1258z00_2033;
				}
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1259z00_2032))->BgL_readz00) =
					((obj_t) BNIL), BUNSPEC);
				((((BgL_feffectz00_bglt) COBJECT(BgL_new1259z00_2032))->BgL_writez00) =
					((obj_t) CNST_TABLE_REF(5L)), BUNSPEC);
				BGl_za2psetza2z00zzsaw_exprz00 = BgL_new1259z00_2032;
			}
			{	/* SawMill/expr.scm 269 */
				BgL_feffectz00_bglt BgL_arg1686z00_2035;

				{	/* SawMill/expr.scm 269 */
					BgL_feffectz00_bglt BgL_new1261z00_2036;

					{	/* SawMill/expr.scm 269 */
						BgL_feffectz00_bglt BgL_new1260z00_2037;

						BgL_new1260z00_2037 =
							((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
										BgL_feffectz00_bgl))));
						{	/* SawMill/expr.scm 269 */
							long BgL_arg1690z00_2038;

							BgL_arg1690z00_2038 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
							BGL_OBJECT_CLASS_NUM_SET(
								((BgL_objectz00_bglt) BgL_new1260z00_2037),
								BgL_arg1690z00_2038);
						}
						BgL_new1261z00_2036 = BgL_new1260z00_2037;
					}
					((((BgL_feffectz00_bglt) COBJECT(BgL_new1261z00_2036))->BgL_readz00) =
						((obj_t) BNIL), BUNSPEC);
					((((BgL_feffectz00_bglt) COBJECT(BgL_new1261z00_2036))->
							BgL_writez00) = ((obj_t) BNIL), BUNSPEC);
					BgL_arg1686z00_2035 = BgL_new1261z00_2036;
				}
				BGl_putpropz12z12zz__r4_symbols_6_4z00(CNST_TABLE_REF(6L),
					CNST_TABLE_REF(7L), ((obj_t) BgL_arg1686z00_2035));
			}
			{	/* SawMill/expr.scm 270 */
				BgL_feffectz00_bglt BgL_arg1693z00_2039;

				{	/* SawMill/expr.scm 270 */
					BgL_feffectz00_bglt BgL_new1263z00_2040;

					{	/* SawMill/expr.scm 270 */
						BgL_feffectz00_bglt BgL_new1262z00_2041;

						BgL_new1262z00_2041 =
							((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
										BgL_feffectz00_bgl))));
						{	/* SawMill/expr.scm 270 */
							long BgL_arg1695z00_2042;

							BgL_arg1695z00_2042 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
							BGL_OBJECT_CLASS_NUM_SET(
								((BgL_objectz00_bglt) BgL_new1262z00_2041),
								BgL_arg1695z00_2042);
						}
						BgL_new1263z00_2040 = BgL_new1262z00_2041;
					}
					((((BgL_feffectz00_bglt) COBJECT(BgL_new1263z00_2040))->BgL_readz00) =
						((obj_t) BNIL), BUNSPEC);
					((((BgL_feffectz00_bglt) COBJECT(BgL_new1263z00_2040))->
							BgL_writez00) = ((obj_t) BNIL), BUNSPEC);
					BgL_arg1693z00_2039 = BgL_new1263z00_2040;
				}
				BGl_putpropz12z12zz__r4_symbols_6_4z00(CNST_TABLE_REF(8L),
					CNST_TABLE_REF(7L), ((obj_t) BgL_arg1693z00_2039));
			}
			{	/* SawMill/expr.scm 271 */
				BgL_feffectz00_bglt BgL_arg1696z00_2043;

				{	/* SawMill/expr.scm 271 */
					BgL_feffectz00_bglt BgL_new1265z00_2044;

					{	/* SawMill/expr.scm 271 */
						BgL_feffectz00_bglt BgL_new1264z00_2045;

						BgL_new1264z00_2045 =
							((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
										BgL_feffectz00_bgl))));
						{	/* SawMill/expr.scm 271 */
							long BgL_arg1698z00_2046;

							BgL_arg1698z00_2046 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
							BGL_OBJECT_CLASS_NUM_SET(
								((BgL_objectz00_bglt) BgL_new1264z00_2045),
								BgL_arg1698z00_2046);
						}
						BgL_new1265z00_2044 = BgL_new1264z00_2045;
					}
					((((BgL_feffectz00_bglt) COBJECT(BgL_new1265z00_2044))->BgL_readz00) =
						((obj_t) CNST_TABLE_REF(5L)), BUNSPEC);
					((((BgL_feffectz00_bglt) COBJECT(BgL_new1265z00_2044))->
							BgL_writez00) = ((obj_t) BNIL), BUNSPEC);
					BgL_arg1696z00_2043 = BgL_new1265z00_2044;
				}
				BGl_putpropz12z12zz__r4_symbols_6_4z00(CNST_TABLE_REF(9L),
					CNST_TABLE_REF(7L), ((obj_t) BgL_arg1696z00_2043));
			}
			{	/* SawMill/expr.scm 272 */
				BgL_feffectz00_bglt BgL_arg1706z00_2047;

				{	/* SawMill/expr.scm 272 */
					BgL_feffectz00_bglt BgL_new1267z00_2048;

					{	/* SawMill/expr.scm 272 */
						BgL_feffectz00_bglt BgL_new1266z00_2049;

						BgL_new1266z00_2049 =
							((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
										BgL_feffectz00_bgl))));
						{	/* SawMill/expr.scm 272 */
							long BgL_arg1707z00_2050;

							BgL_arg1707z00_2050 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
							BGL_OBJECT_CLASS_NUM_SET(
								((BgL_objectz00_bglt) BgL_new1266z00_2049),
								BgL_arg1707z00_2050);
						}
						BgL_new1267z00_2048 = BgL_new1266z00_2049;
					}
					((((BgL_feffectz00_bglt) COBJECT(BgL_new1267z00_2048))->BgL_readz00) =
						((obj_t) BNIL), BUNSPEC);
					((((BgL_feffectz00_bglt) COBJECT(BgL_new1267z00_2048))->
							BgL_writez00) = ((obj_t) CNST_TABLE_REF(5L)), BUNSPEC);
					BgL_arg1706z00_2047 = BgL_new1267z00_2048;
				}
				BGl_putpropz12z12zz__r4_symbols_6_4z00(CNST_TABLE_REF(10L),
					CNST_TABLE_REF(7L), ((obj_t) BgL_arg1706z00_2047));
			}
			{	/* SawMill/expr.scm 273 */
				BgL_feffectz00_bglt BgL_arg1708z00_2051;

				{	/* SawMill/expr.scm 273 */
					BgL_feffectz00_bglt BgL_new1269z00_2052;

					{	/* SawMill/expr.scm 273 */
						BgL_feffectz00_bglt BgL_new1268z00_2053;

						BgL_new1268z00_2053 =
							((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
										BgL_feffectz00_bgl))));
						{	/* SawMill/expr.scm 273 */
							long BgL_arg1709z00_2054;

							BgL_arg1709z00_2054 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
							BGL_OBJECT_CLASS_NUM_SET(
								((BgL_objectz00_bglt) BgL_new1268z00_2053),
								BgL_arg1709z00_2054);
						}
						BgL_new1269z00_2052 = BgL_new1268z00_2053;
					}
					((((BgL_feffectz00_bglt) COBJECT(BgL_new1269z00_2052))->BgL_readz00) =
						((obj_t) BNIL), BUNSPEC);
					((((BgL_feffectz00_bglt) COBJECT(BgL_new1269z00_2052))->
							BgL_writez00) = ((obj_t) CNST_TABLE_REF(1L)), BUNSPEC);
					BgL_arg1708z00_2051 = BgL_new1269z00_2052;
				}
				BGl_putpropz12z12zz__r4_symbols_6_4z00(CNST_TABLE_REF(11L),
					CNST_TABLE_REF(7L), ((obj_t) BgL_arg1708z00_2051));
			}
			{	/* SawMill/expr.scm 274 */
				BgL_feffectz00_bglt BgL_arg1710z00_2055;

				{	/* SawMill/expr.scm 274 */
					BgL_feffectz00_bglt BgL_new1271z00_2056;

					{	/* SawMill/expr.scm 274 */
						BgL_feffectz00_bglt BgL_new1270z00_2057;

						BgL_new1270z00_2057 =
							((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
										BgL_feffectz00_bgl))));
						{	/* SawMill/expr.scm 274 */
							long BgL_arg1712z00_2058;

							BgL_arg1712z00_2058 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
							BGL_OBJECT_CLASS_NUM_SET(
								((BgL_objectz00_bglt) BgL_new1270z00_2057),
								BgL_arg1712z00_2058);
						}
						BgL_new1271z00_2056 = BgL_new1270z00_2057;
					}
					((((BgL_feffectz00_bglt) COBJECT(BgL_new1271z00_2056))->BgL_readz00) =
						((obj_t) CNST_TABLE_REF(12L)), BUNSPEC);
					((((BgL_feffectz00_bglt) COBJECT(BgL_new1271z00_2056))->
							BgL_writez00) = ((obj_t) BNIL), BUNSPEC);
					BgL_arg1710z00_2055 = BgL_new1271z00_2056;
				}
				BGl_putpropz12z12zz__r4_symbols_6_4z00(CNST_TABLE_REF(13L),
					CNST_TABLE_REF(7L), ((obj_t) BgL_arg1710z00_2055));
			}
			{	/* SawMill/expr.scm 275 */
				BgL_feffectz00_bglt BgL_arg1714z00_2059;

				{	/* SawMill/expr.scm 275 */
					BgL_feffectz00_bglt BgL_new1274z00_2060;

					{	/* SawMill/expr.scm 275 */
						BgL_feffectz00_bglt BgL_new1272z00_2061;

						BgL_new1272z00_2061 =
							((BgL_feffectz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
										BgL_feffectz00_bgl))));
						{	/* SawMill/expr.scm 275 */
							long BgL_arg1715z00_2062;

							BgL_arg1715z00_2062 = BGL_CLASS_NUM(BGl_feffectz00zzast_varz00);
							BGL_OBJECT_CLASS_NUM_SET(
								((BgL_objectz00_bglt) BgL_new1272z00_2061),
								BgL_arg1715z00_2062);
						}
						BgL_new1274z00_2060 = BgL_new1272z00_2061;
					}
					((((BgL_feffectz00_bglt) COBJECT(BgL_new1274z00_2060))->BgL_readz00) =
						((obj_t) BNIL), BUNSPEC);
					((((BgL_feffectz00_bglt) COBJECT(BgL_new1274z00_2060))->
							BgL_writez00) = ((obj_t) CNST_TABLE_REF(12L)), BUNSPEC);
					BgL_arg1714z00_2059 = BgL_new1274z00_2060;
				}
				return
					BGl_putpropz12z12zz__r4_symbols_6_4z00(CNST_TABLE_REF(14L),
					CNST_TABLE_REF(7L), ((obj_t) BgL_arg1714z00_2059));
			}
		}

	}



/* pre-build-tree */
	BGL_EXPORTED_DEF obj_t
		BGl_prezd2buildzd2treez00zzsaw_exprz00(BgL_backendz00_bglt BgL_bez00_90,
		obj_t BgL_paramsz00_91, obj_t BgL_lz00_92)
	{
		{	/* SawMill/expr.scm 17 */
			BGl_prezd2markzd2localsz00zzsaw_exprz00(BgL_paramsz00_91, BgL_lz00_92);
			BGl_za2countza2z00zzsaw_exprz00 = 0L;
			{
				obj_t BgL_l1553z00_2090;

				{	/* SawMill/expr.scm 20 */
					bool_t BgL_tmpz00_4347;

					BgL_l1553z00_2090 = BgL_lz00_92;
				BgL_zc3z04anonymousza31735ze3z87_2091:
					if (PAIRP(BgL_l1553z00_2090))
						{	/* SawMill/expr.scm 20 */
							{	/* SawMill/expr.scm 22 */
								obj_t BgL_bz00_2093;

								BgL_bz00_2093 = CAR(BgL_l1553z00_2090);
								{	/* SawMill/expr.scm 22 */
									obj_t BgL_lz00_2094;
									obj_t BgL_movesz00_2095;

									BgL_lz00_2094 =
										(((BgL_blockz00_bglt) COBJECT(
												((BgL_blockz00_bglt) BgL_bz00_2093)))->BgL_firstz00);
									BgL_movesz00_2095 = BNIL;
									{
										obj_t BgL_l1551z00_2097;

										BgL_l1551z00_2097 = BgL_lz00_2094;
									BgL_zc3z04anonymousza31737ze3z87_2098:
										if (PAIRP(BgL_l1551z00_2097))
											{	/* SawMill/expr.scm 23 */
												{	/* SawMill/expr.scm 23 */
													obj_t BgL_insz00_2100;

													BgL_insz00_2100 = CAR(BgL_l1551z00_2097);
													BgL_movesz00_2095 =
														BGl_prezd2analysezd2zzsaw_exprz00(BgL_bez00_90,
														BgL_movesz00_2095, BgL_insz00_2100);
												}
												{
													obj_t BgL_l1551z00_4357;

													BgL_l1551z00_4357 = CDR(BgL_l1551z00_2097);
													BgL_l1551z00_2097 = BgL_l1551z00_4357;
													goto BgL_zc3z04anonymousza31737ze3z87_2098;
												}
											}
										else
											{	/* SawMill/expr.scm 23 */
												((bool_t) 1);
											}
									}
								}
							}
							{
								obj_t BgL_l1553z00_4359;

								BgL_l1553z00_4359 = CDR(BgL_l1553z00_2090);
								BgL_l1553z00_2090 = BgL_l1553z00_4359;
								goto BgL_zc3z04anonymousza31735ze3z87_2091;
							}
						}
					else
						{	/* SawMill/expr.scm 20 */
							BgL_tmpz00_4347 = ((bool_t) 1);
						}
					return BBOOL(BgL_tmpz00_4347);
				}
			}
		}

	}



/* &pre-build-tree */
	obj_t BGl_z62prezd2buildzd2treez62zzsaw_exprz00(obj_t BgL_envz00_3854,
		obj_t BgL_bez00_3855, obj_t BgL_paramsz00_3856, obj_t BgL_lz00_3857)
	{
		{	/* SawMill/expr.scm 17 */
			return
				BGl_prezd2buildzd2treez00zzsaw_exprz00(
				((BgL_backendz00_bglt) BgL_bez00_3855), BgL_paramsz00_3856,
				BgL_lz00_3857);
		}

	}



/* pre-mark-locals */
	bool_t BGl_prezd2markzd2localsz00zzsaw_exprz00(obj_t BgL_paramsz00_93,
		obj_t BgL_lz00_94)
	{
		{	/* SawMill/expr.scm 27 */
			{	/* SawMill/expr.scm 28 */
				struct bgl_cell BgL_box2254_4013z00;
				obj_t BgL_nz00_4013;

				BgL_nz00_4013 = MAKE_CELL_STACK(BINT(0L), BgL_box2254_4013z00);
				{
					obj_t BgL_rz00_2136;
					BgL_blockz00_bglt BgL_bz00_2142;

					{
						obj_t BgL_l1561z00_2112;

						BgL_l1561z00_2112 = BgL_paramsz00_93;
					BgL_zc3z04anonymousza31742ze3z87_2113:
						if (PAIRP(BgL_l1561z00_2112))
							{	/* SawMill/expr.scm 52 */
								BGl_regzd2ze3pregzf2writeze70z24zzsaw_exprz00(BgL_nz00_4013,
									CAR(BgL_l1561z00_2112));
								{
									obj_t BgL_l1561z00_4369;

									BgL_l1561z00_4369 = CDR(BgL_l1561z00_2112);
									BgL_l1561z00_2112 = BgL_l1561z00_4369;
									goto BgL_zc3z04anonymousza31742ze3z87_2113;
								}
							}
						else
							{	/* SawMill/expr.scm 52 */
								((bool_t) 1);
							}
					}
					{
						obj_t BgL_l1563z00_2119;

						BgL_l1563z00_2119 = BgL_lz00_94;
					BgL_zc3z04anonymousza31747ze3z87_2120:
						if (PAIRP(BgL_l1563z00_2119))
							{	/* SawMill/expr.scm 53 */
								{	/* SawMill/expr.scm 53 */
									obj_t BgL_arg1750z00_2122;

									BgL_arg1750z00_2122 = CAR(BgL_l1563z00_2119);
									BgL_bz00_2142 = ((BgL_blockz00_bglt) BgL_arg1750z00_2122);
									{	/* SawMill/expr.scm 47 */
										obj_t BgL_g1560z00_2144;

										BgL_g1560z00_2144 =
											(((BgL_blockz00_bglt) COBJECT(BgL_bz00_2142))->
											BgL_firstz00);
										{
											obj_t BgL_l1558z00_2146;

											BgL_l1558z00_2146 = BgL_g1560z00_2144;
										BgL_zc3z04anonymousza31763ze3z87_2147:
											if (PAIRP(BgL_l1558z00_2146))
												{	/* SawMill/expr.scm 51 */
													{	/* SawMill/expr.scm 48 */
														obj_t BgL_insz00_2149;

														BgL_insz00_2149 = CAR(BgL_l1558z00_2146);
														if (CBOOL(
																(((BgL_rtl_insz00_bglt) COBJECT(
																			((BgL_rtl_insz00_bglt)
																				BgL_insz00_2149)))->BgL_destz00)))
															{	/* SawMill/expr.scm 49 */
																obj_t BgL_arg1768z00_2152;

																BgL_arg1768z00_2152 =
																	(((BgL_rtl_insz00_bglt) COBJECT(
																			((BgL_rtl_insz00_bglt)
																				BgL_insz00_2149)))->BgL_destz00);
																BGl_regzd2ze3pregzf2writeze70z24zzsaw_exprz00
																	(BgL_nz00_4013, BgL_arg1768z00_2152);
															}
														else
															{	/* SawMill/expr.scm 49 */
																BFALSE;
															}
														{	/* SawMill/expr.scm 50 */
															obj_t BgL_g1557z00_2153;

															BgL_g1557z00_2153 =
																(((BgL_rtl_insz00_bglt) COBJECT(
																		((BgL_rtl_insz00_bglt) BgL_insz00_2149)))->
																BgL_argsz00);
															{
																obj_t BgL_l1555z00_2155;

																BgL_l1555z00_2155 = BgL_g1557z00_2153;
															BgL_zc3z04anonymousza31769ze3z87_2156:
																if (PAIRP(BgL_l1555z00_2155))
																	{	/* SawMill/expr.scm 50 */
																		BgL_rz00_2136 = CAR(BgL_l1555z00_2155);
																		{	/* SawMill/expr.scm 37 */
																			obj_t BgL_sz00_2138;

																			BgL_sz00_2138 =
																				BGl_regzd2ze3pregze70zd6zzsaw_exprz00
																				(BgL_nz00_4013, BgL_rz00_2136);
																			if ((BgL_sz00_2138 ==
																					CNST_TABLE_REF(15L)))
																				{	/* SawMill/expr.scm 38 */
																					obj_t BgL_nstatz00_3136;

																					BgL_nstatz00_3136 =
																						CNST_TABLE_REF(16L);
																					{
																						BgL_pregz00_bglt BgL_auxz00_4394;

																						{
																							obj_t BgL_auxz00_4395;

																							{	/* SawMill/expr.scm 29 */
																								BgL_objectz00_bglt
																									BgL_tmpz00_4396;
																								BgL_tmpz00_4396 =
																									((BgL_objectz00_bglt) (
																										(BgL_rtl_regz00_bglt)
																										BgL_rz00_2136));
																								BgL_auxz00_4395 =
																									BGL_OBJECT_WIDENING
																									(BgL_tmpz00_4396);
																							}
																							BgL_auxz00_4394 =
																								((BgL_pregz00_bglt)
																								BgL_auxz00_4395);
																						}
																						((((BgL_pregz00_bglt)
																									COBJECT(BgL_auxz00_4394))->
																								BgL_statusz00) =
																							((obj_t) BgL_nstatz00_3136),
																							BUNSPEC);
																					}
																				}
																			else
																				{	/* SawMill/expr.scm 38 */
																					if (
																						(BgL_sz00_2138 ==
																							CNST_TABLE_REF(17L)))
																						{	/* SawMill/expr.scm 39 */
																							obj_t BgL_nstatz00_3139;

																							BgL_nstatz00_3139 =
																								CNST_TABLE_REF(18L);
																							{
																								BgL_pregz00_bglt
																									BgL_auxz00_4406;
																								{
																									obj_t BgL_auxz00_4407;

																									{	/* SawMill/expr.scm 29 */
																										BgL_objectz00_bglt
																											BgL_tmpz00_4408;
																										BgL_tmpz00_4408 =
																											((BgL_objectz00_bglt) (
																												(BgL_rtl_regz00_bglt)
																												BgL_rz00_2136));
																										BgL_auxz00_4407 =
																											BGL_OBJECT_WIDENING
																											(BgL_tmpz00_4408);
																									}
																									BgL_auxz00_4406 =
																										((BgL_pregz00_bglt)
																										BgL_auxz00_4407);
																								}
																								((((BgL_pregz00_bglt)
																											COBJECT
																											(BgL_auxz00_4406))->
																										BgL_statusz00) =
																									((obj_t) BgL_nstatz00_3139),
																									BUNSPEC);
																							}
																						}
																					else
																						{	/* SawMill/expr.scm 40 */
																							obj_t BgL_nstatz00_3142;

																							BgL_nstatz00_3142 =
																								CNST_TABLE_REF(19L);
																							{
																								BgL_pregz00_bglt
																									BgL_auxz00_4415;
																								{
																									obj_t BgL_auxz00_4416;

																									{	/* SawMill/expr.scm 29 */
																										BgL_objectz00_bglt
																											BgL_tmpz00_4417;
																										BgL_tmpz00_4417 =
																											((BgL_objectz00_bglt) (
																												(BgL_rtl_regz00_bglt)
																												BgL_rz00_2136));
																										BgL_auxz00_4416 =
																											BGL_OBJECT_WIDENING
																											(BgL_tmpz00_4417);
																									}
																									BgL_auxz00_4415 =
																										((BgL_pregz00_bglt)
																										BgL_auxz00_4416);
																								}
																								((((BgL_pregz00_bglt)
																											COBJECT
																											(BgL_auxz00_4415))->
																										BgL_statusz00) =
																									((obj_t) BgL_nstatz00_3142),
																									BUNSPEC);
																							}
																						}
																				}
																		}
																		{
																			obj_t BgL_l1555z00_4424;

																			BgL_l1555z00_4424 =
																				CDR(BgL_l1555z00_2155);
																			BgL_l1555z00_2155 = BgL_l1555z00_4424;
																			goto
																				BgL_zc3z04anonymousza31769ze3z87_2156;
																		}
																	}
																else
																	{	/* SawMill/expr.scm 50 */
																		((bool_t) 1);
																	}
															}
														}
													}
													{
														obj_t BgL_l1558z00_4426;

														BgL_l1558z00_4426 = CDR(BgL_l1558z00_2146);
														BgL_l1558z00_2146 = BgL_l1558z00_4426;
														goto BgL_zc3z04anonymousza31763ze3z87_2147;
													}
												}
											else
												{	/* SawMill/expr.scm 51 */
													((bool_t) 1);
												}
										}
									}
								}
								{
									obj_t BgL_l1563z00_4429;

									BgL_l1563z00_4429 = CDR(BgL_l1563z00_2119);
									BgL_l1563z00_2119 = BgL_l1563z00_4429;
									goto BgL_zc3z04anonymousza31747ze3z87_2120;
								}
							}
						else
							{	/* SawMill/expr.scm 53 */
								return ((bool_t) 1);
							}
					}
				}
			}
		}

	}



/* reg->preg~0 */
	obj_t BGl_regzd2ze3pregze70zd6zzsaw_exprz00(obj_t BgL_nz00_4010,
		obj_t BgL_rz00_2128)
	{
		{	/* SawMill/expr.scm 35 */
			{	/* SawMill/expr.scm 31 */
				bool_t BgL_test2262z00_4431;

				{	/* SawMill/expr.scm 31 */
					obj_t BgL_classz00_3116;

					BgL_classz00_3116 = BGl_pregz00zzsaw_exprz00;
					if (BGL_OBJECTP(BgL_rz00_2128))
						{	/* SawMill/expr.scm 31 */
							obj_t BgL_oclassz00_3118;

							{	/* SawMill/expr.scm 31 */
								long BgL_arg1808z00_3120;

								{	/* SawMill/expr.scm 31 */
									long BgL_arg1809z00_3121;

									BgL_arg1809z00_3121 =
										BGL_OBJECT_CLASS_NUM(((BgL_objectz00_bglt) BgL_rz00_2128));
									BgL_arg1808z00_3120 = (BgL_arg1809z00_3121 - OBJECT_TYPE);
								}
								BgL_oclassz00_3118 =
									VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
									BgL_arg1808z00_3120);
							}
							BgL_test2262z00_4431 = (BgL_oclassz00_3118 == BgL_classz00_3116);
						}
					else
						{	/* SawMill/expr.scm 31 */
							BgL_test2262z00_4431 = ((bool_t) 0);
						}
				}
				if (BgL_test2262z00_4431)
					{
						BgL_pregz00_bglt BgL_auxz00_4439;

						{
							obj_t BgL_auxz00_4440;

							{	/* SawMill/expr.scm 32 */
								BgL_objectz00_bglt BgL_tmpz00_4441;

								BgL_tmpz00_4441 =
									((BgL_objectz00_bglt) ((BgL_rtl_regz00_bglt) BgL_rz00_2128));
								BgL_auxz00_4440 = BGL_OBJECT_WIDENING(BgL_tmpz00_4441);
							}
							BgL_auxz00_4439 = ((BgL_pregz00_bglt) BgL_auxz00_4440);
						}
						return
							(((BgL_pregz00_bglt) COBJECT(BgL_auxz00_4439))->BgL_statusz00);
					}
				else
					{	/* SawMill/expr.scm 31 */
						{	/* SawMill/expr.scm 33 */
							BgL_pregz00_bglt BgL_wide1205z00_2133;

							BgL_wide1205z00_2133 =
								((BgL_pregz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
											BgL_pregz00_bgl))));
							{	/* SawMill/expr.scm 33 */
								obj_t BgL_auxz00_4452;
								BgL_objectz00_bglt BgL_tmpz00_4448;

								BgL_auxz00_4452 = ((obj_t) BgL_wide1205z00_2133);
								BgL_tmpz00_4448 =
									((BgL_objectz00_bglt)
									((BgL_rtl_regz00_bglt)
										((BgL_rtl_regz00_bglt) BgL_rz00_2128)));
								BGL_OBJECT_WIDENING_SET(BgL_tmpz00_4448, BgL_auxz00_4452);
							}
							((BgL_objectz00_bglt)
								((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt) BgL_rz00_2128)));
							{	/* SawMill/expr.scm 33 */
								long BgL_arg1759z00_2134;

								BgL_arg1759z00_2134 = BGL_CLASS_NUM(BGl_pregz00zzsaw_exprz00);
								BGL_OBJECT_CLASS_NUM_SET(
									((BgL_objectz00_bglt)
										((BgL_rtl_regz00_bglt)
											((BgL_rtl_regz00_bglt) BgL_rz00_2128))),
									BgL_arg1759z00_2134);
							}
							((BgL_rtl_regz00_bglt)
								((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt) BgL_rz00_2128)));
						}
						{
							BgL_pregz00_bglt BgL_auxz00_4466;

							{
								obj_t BgL_auxz00_4467;

								{	/* SawMill/expr.scm 33 */
									BgL_objectz00_bglt BgL_tmpz00_4468;

									BgL_tmpz00_4468 =
										((BgL_objectz00_bglt)
										((BgL_rtl_regz00_bglt)
											((BgL_rtl_regz00_bglt) BgL_rz00_2128)));
									BgL_auxz00_4467 = BGL_OBJECT_WIDENING(BgL_tmpz00_4468);
								}
								BgL_auxz00_4466 = ((BgL_pregz00_bglt) BgL_auxz00_4467);
							}
							((((BgL_pregz00_bglt) COBJECT(BgL_auxz00_4466))->BgL_indexz00) =
								((obj_t) CELL_REF(BgL_nz00_4010)), BUNSPEC);
						}
						{
							BgL_pregz00_bglt BgL_auxz00_4475;

							{
								obj_t BgL_auxz00_4476;

								{	/* SawMill/expr.scm 33 */
									BgL_objectz00_bglt BgL_tmpz00_4477;

									BgL_tmpz00_4477 =
										((BgL_objectz00_bglt)
										((BgL_rtl_regz00_bglt)
											((BgL_rtl_regz00_bglt) BgL_rz00_2128)));
									BgL_auxz00_4476 = BGL_OBJECT_WIDENING(BgL_tmpz00_4477);
								}
								BgL_auxz00_4475 = ((BgL_pregz00_bglt) BgL_auxz00_4476);
							}
							((((BgL_pregz00_bglt) COBJECT(BgL_auxz00_4475))->BgL_statusz00) =
								((obj_t) CNST_TABLE_REF(15L)), BUNSPEC);
						}
						((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt) BgL_rz00_2128));
						{	/* SawMill/expr.scm 34 */
							obj_t BgL_auxz00_4011;

							BgL_auxz00_4011 = ADDFX(CELL_REF(BgL_nz00_4010), BINT(1L));
							CELL_SET(BgL_nz00_4010, BgL_auxz00_4011);
						}
						return CNST_TABLE_REF(15L);
					}
			}
		}

	}



/* reg->preg/write~0 */
	obj_t BGl_regzd2ze3pregzf2writeze70z24zzsaw_exprz00(obj_t BgL_nz00_4012,
		obj_t BgL_rz00_2139)
	{
		{	/* SawMill/expr.scm 45 */
			{	/* SawMill/expr.scm 42 */
				obj_t BgL_sz00_2141;

				BgL_sz00_2141 =
					BGl_regzd2ze3pregze70zd6zzsaw_exprz00(BgL_nz00_4012, BgL_rz00_2139);
				if ((BgL_sz00_2141 == CNST_TABLE_REF(15L)))
					{	/* SawMill/expr.scm 43 */
						obj_t BgL_nstatz00_3145;

						BgL_nstatz00_3145 = CNST_TABLE_REF(17L);
						{
							BgL_pregz00_bglt BgL_auxz00_4495;

							{
								obj_t BgL_auxz00_4496;

								{	/* SawMill/expr.scm 29 */
									BgL_objectz00_bglt BgL_tmpz00_4497;

									BgL_tmpz00_4497 =
										((BgL_objectz00_bglt)
										((BgL_rtl_regz00_bglt) BgL_rz00_2139));
									BgL_auxz00_4496 = BGL_OBJECT_WIDENING(BgL_tmpz00_4497);
								}
								BgL_auxz00_4495 = ((BgL_pregz00_bglt) BgL_auxz00_4496);
							}
							return
								((((BgL_pregz00_bglt) COBJECT(BgL_auxz00_4495))->
									BgL_statusz00) = ((obj_t) BgL_nstatz00_3145), BUNSPEC);
						}
					}
				else
					{	/* SawMill/expr.scm 43 */
						if ((BgL_sz00_2141 == CNST_TABLE_REF(16L)))
							{	/* SawMill/expr.scm 44 */
								obj_t BgL_nstatz00_3148;

								BgL_nstatz00_3148 = CNST_TABLE_REF(18L);
								{
									BgL_pregz00_bglt BgL_auxz00_4507;

									{
										obj_t BgL_auxz00_4508;

										{	/* SawMill/expr.scm 29 */
											BgL_objectz00_bglt BgL_tmpz00_4509;

											BgL_tmpz00_4509 =
												((BgL_objectz00_bglt)
												((BgL_rtl_regz00_bglt) BgL_rz00_2139));
											BgL_auxz00_4508 = BGL_OBJECT_WIDENING(BgL_tmpz00_4509);
										}
										BgL_auxz00_4507 = ((BgL_pregz00_bglt) BgL_auxz00_4508);
									}
									return
										((((BgL_pregz00_bglt) COBJECT(BgL_auxz00_4507))->
											BgL_statusz00) = ((obj_t) BgL_nstatz00_3148), BUNSPEC);
								}
							}
						else
							{	/* SawMill/expr.scm 45 */
								obj_t BgL_nstatz00_3151;

								BgL_nstatz00_3151 = CNST_TABLE_REF(19L);
								{
									BgL_pregz00_bglt BgL_auxz00_4516;

									{
										obj_t BgL_auxz00_4517;

										{	/* SawMill/expr.scm 29 */
											BgL_objectz00_bglt BgL_tmpz00_4518;

											BgL_tmpz00_4518 =
												((BgL_objectz00_bglt)
												((BgL_rtl_regz00_bglt) BgL_rz00_2139));
											BgL_auxz00_4517 = BGL_OBJECT_WIDENING(BgL_tmpz00_4518);
										}
										BgL_auxz00_4516 = ((BgL_pregz00_bglt) BgL_auxz00_4517);
									}
									return
										((((BgL_pregz00_bglt) COBJECT(BgL_auxz00_4516))->
											BgL_statusz00) = ((obj_t) BgL_nstatz00_3151), BUNSPEC);
								}
							}
					}
			}
		}

	}



/* build-tree */
	BGL_EXPORTED_DEF obj_t BGl_buildzd2treezd2zzsaw_exprz00(BgL_backendz00_bglt
		BgL_bez00_95, obj_t BgL_paramsz00_96, obj_t BgL_lz00_97)
	{
		{	/* SawMill/expr.scm 58 */
			{

				BGl_markzd2localszd2zzsaw_exprz00(BgL_paramsz00_96, BgL_lz00_97);
				{
					obj_t BgL_l1567z00_2171;

					{	/* SawMill/expr.scm 72 */
						bool_t BgL_tmpz00_4525;

						BgL_l1567z00_2171 = BgL_lz00_97;
					BgL_zc3z04anonymousza31777ze3z87_2172:
						if (PAIRP(BgL_l1567z00_2171))
							{	/* SawMill/expr.scm 72 */
								{	/* SawMill/expr.scm 73 */
									obj_t BgL_bz00_2174;

									BgL_bz00_2174 = CAR(BgL_l1567z00_2171);
									{	/* SawMill/expr.scm 73 */
										obj_t BgL_lz00_2175;
										obj_t BgL_movesz00_2176;

										BgL_lz00_2175 =
											(((BgL_blockz00_bglt) COBJECT(
													((BgL_blockz00_bglt) BgL_bz00_2174)))->BgL_firstz00);
										BgL_movesz00_2176 = BNIL;
										{
											obj_t BgL_l1565z00_2178;

											BgL_l1565z00_2178 = BgL_lz00_2175;
										BgL_zc3z04anonymousza31779ze3z87_2179:
											if (PAIRP(BgL_l1565z00_2178))
												{	/* SawMill/expr.scm 74 */
													{	/* SawMill/expr.scm 74 */
														obj_t BgL_insz00_2181;

														BgL_insz00_2181 = CAR(BgL_l1565z00_2178);
														BgL_movesz00_2176 =
															BGl_analysez00zzsaw_exprz00(BgL_bez00_95,
															BgL_movesz00_2176, BgL_insz00_2181);
													}
													{
														obj_t BgL_l1565z00_4535;

														BgL_l1565z00_4535 = CDR(BgL_l1565z00_2178);
														BgL_l1565z00_2178 = BgL_l1565z00_4535;
														goto BgL_zc3z04anonymousza31779ze3z87_2179;
													}
												}
											else
												{	/* SawMill/expr.scm 74 */
													((bool_t) 1);
												}
										}
										{	/* SawMill/expr.scm 76 */
											obj_t BgL_rz00_2184;

											BgL_rz00_2184 =
												BGl_filterz12z12zz__r4_control_features_6_9z00
												(BGl_proc2161z00zzsaw_exprz00, BgL_lz00_2175);
											{	/* SawMill/expr.scm 77 */
												obj_t BgL_arg1794z00_2185;

												if (NULLP(BgL_rz00_2184))
													{	/* SawMill/expr.scm 77 */
														BgL_rtl_insz00_bglt BgL_arg1798z00_2187;

														{	/* SawMill/expr.scm 60 */
															BgL_rtl_insz00_bglt BgL_new1209z00_2192;

															{	/* SawMill/expr.scm 60 */
																BgL_rtl_insz00_bglt BgL_new1208z00_2196;

																BgL_new1208z00_2196 =
																	((BgL_rtl_insz00_bglt)
																	BOBJECT(GC_MALLOC(sizeof(struct
																				BgL_rtl_insz00_bgl))));
																{	/* SawMill/expr.scm 60 */
																	long BgL_arg1816z00_2197;

																	BgL_arg1816z00_2197 =
																		BGL_CLASS_NUM(BGl_rtl_insz00zzsaw_defsz00);
																	BGL_OBJECT_CLASS_NUM_SET(
																		((BgL_objectz00_bglt) BgL_new1208z00_2196),
																		BgL_arg1816z00_2197);
																}
																{	/* SawMill/expr.scm 60 */
																	BgL_objectz00_bglt BgL_tmpz00_4544;

																	BgL_tmpz00_4544 =
																		((BgL_objectz00_bglt) BgL_new1208z00_2196);
																	BGL_OBJECT_WIDENING_SET(BgL_tmpz00_4544,
																		BFALSE);
																}
																((BgL_objectz00_bglt) BgL_new1208z00_2196);
																BgL_new1209z00_2192 = BgL_new1208z00_2196;
															}
															((((BgL_rtl_insz00_bglt)
																		COBJECT(BgL_new1209z00_2192))->BgL_locz00) =
																((obj_t) BFALSE), BUNSPEC);
															((((BgL_rtl_insz00_bglt)
																		COBJECT(BgL_new1209z00_2192))->
																	BgL_z52spillz52) = ((obj_t) BNIL), BUNSPEC);
															((((BgL_rtl_insz00_bglt)
																		COBJECT(BgL_new1209z00_2192))->
																	BgL_destz00) = ((obj_t) BFALSE), BUNSPEC);
															{
																BgL_rtl_funz00_bglt BgL_auxz00_4551;

																{	/* SawMill/expr.scm 60 */
																	BgL_rtl_nopz00_bglt BgL_new1211z00_2193;

																	{	/* SawMill/expr.scm 60 */
																		BgL_rtl_nopz00_bglt BgL_new1210z00_2194;

																		BgL_new1210z00_2194 =
																			((BgL_rtl_nopz00_bglt)
																			BOBJECT(GC_MALLOC(sizeof(struct
																						BgL_rtl_nopz00_bgl))));
																		{	/* SawMill/expr.scm 60 */
																			long BgL_arg1802z00_2195;

																			{	/* SawMill/expr.scm 60 */
																				obj_t BgL_classz00_3167;

																				BgL_classz00_3167 =
																					BGl_rtl_nopz00zzsaw_defsz00;
																				BgL_arg1802z00_2195 =
																					BGL_CLASS_NUM(BgL_classz00_3167);
																			}
																			BGL_OBJECT_CLASS_NUM_SET(
																				((BgL_objectz00_bglt)
																					BgL_new1210z00_2194),
																				BgL_arg1802z00_2195);
																		}
																		BgL_new1211z00_2193 = BgL_new1210z00_2194;
																	}
																	((((BgL_rtl_funz00_bglt) COBJECT(
																					((BgL_rtl_funz00_bglt)
																						BgL_new1211z00_2193)))->
																			BgL_locz00) = ((obj_t) BFALSE), BUNSPEC);
																	BgL_auxz00_4551 =
																		((BgL_rtl_funz00_bglt) BgL_new1211z00_2193);
																}
																((((BgL_rtl_insz00_bglt)
																			COBJECT(BgL_new1209z00_2192))->
																		BgL_funz00) =
																	((BgL_rtl_funz00_bglt) BgL_auxz00_4551),
																	BUNSPEC);
															}
															((((BgL_rtl_insz00_bglt)
																		COBJECT(BgL_new1209z00_2192))->
																	BgL_argsz00) = ((obj_t) BNIL), BUNSPEC);
															BgL_arg1798z00_2187 = BgL_new1209z00_2192;
														}
														{	/* SawMill/expr.scm 77 */
															obj_t BgL_list1799z00_2188;

															BgL_list1799z00_2188 =
																MAKE_YOUNG_PAIR(
																((obj_t) BgL_arg1798z00_2187), BNIL);
															BgL_arg1794z00_2185 = BgL_list1799z00_2188;
													}}
												else
													{	/* SawMill/expr.scm 77 */
														BgL_arg1794z00_2185 = BgL_rz00_2184;
													}
												((((BgL_blockz00_bglt) COBJECT(
																((BgL_blockz00_bglt) BgL_bz00_2174)))->
														BgL_firstz00) =
													((obj_t) BgL_arg1794z00_2185), BUNSPEC);
											}
										}
									}
								}
								{
									obj_t BgL_l1567z00_4565;

									BgL_l1567z00_4565 = CDR(BgL_l1567z00_2171);
									BgL_l1567z00_2171 = BgL_l1567z00_4565;
									goto BgL_zc3z04anonymousza31777ze3z87_2172;
								}
							}
						else
							{	/* SawMill/expr.scm 72 */
								BgL_tmpz00_4525 = ((bool_t) 1);
							}
						return BBOOL(BgL_tmpz00_4525);
					}
				}
			}
		}

	}



/* &build-tree */
	obj_t BGl_z62buildzd2treezb0zzsaw_exprz00(obj_t BgL_envz00_3859,
		obj_t BgL_bez00_3860, obj_t BgL_paramsz00_3861, obj_t BgL_lz00_3862)
	{
		{	/* SawMill/expr.scm 58 */
			return
				BGl_buildzd2treezd2zzsaw_exprz00(
				((BgL_backendz00_bglt) BgL_bez00_3860), BgL_paramsz00_3861,
				BgL_lz00_3862);
		}

	}



/* &useful */
	obj_t BGl_z62usefulz62zzsaw_exprz00(obj_t BgL_envz00_3863,
		obj_t BgL_insz00_3864)
	{
		{	/* SawMill/expr.scm 69 */
			{	/* SawMill/expr.scm 63 */
				bool_t BgL_tmpz00_4570;

				{
					obj_t BgL_insz00_4027;
					obj_t BgL_destz00_4028;

					{	/* SawMill/expr.scm 70 */
						bool_t BgL_test2269z00_4571;

						{	/* SawMill/expr.scm 70 */
							bool_t BgL_test2270z00_4572;

							{	/* SawMill/expr.scm 70 */
								obj_t BgL_classz00_4056;

								BgL_classz00_4056 = BGl_inlinedz00zzsaw_exprz00;
								if (BGL_OBJECTP(BgL_insz00_3864))
									{	/* SawMill/expr.scm 70 */
										obj_t BgL_oclassz00_4057;

										{	/* SawMill/expr.scm 70 */
											long BgL_arg1808z00_4058;

											{	/* SawMill/expr.scm 70 */
												long BgL_arg1809z00_4059;

												BgL_arg1809z00_4059 =
													BGL_OBJECT_CLASS_NUM(
													((BgL_objectz00_bglt) BgL_insz00_3864));
												BgL_arg1808z00_4058 =
													(BgL_arg1809z00_4059 - OBJECT_TYPE);
											}
											BgL_oclassz00_4057 =
												VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
												BgL_arg1808z00_4058);
										}
										BgL_test2270z00_4572 =
											(BgL_oclassz00_4057 == BgL_classz00_4056);
									}
								else
									{	/* SawMill/expr.scm 70 */
										BgL_test2270z00_4572 = ((bool_t) 0);
									}
							}
							if (BgL_test2270z00_4572)
								{	/* SawMill/expr.scm 70 */
									BgL_test2269z00_4571 = ((bool_t) 1);
								}
							else
								{	/* SawMill/expr.scm 70 */
									obj_t BgL_arg1824z00_4060;

									BgL_arg1824z00_4060 =
										(((BgL_rtl_insz00_bglt) COBJECT(
												((BgL_rtl_insz00_bglt) BgL_insz00_3864)))->BgL_destz00);
									BgL_insz00_4027 = BgL_insz00_3864;
									BgL_destz00_4028 = BgL_arg1824z00_4060;
								BgL_xzd3xzd3_4026:
									{	/* SawMill/expr.scm 63 */
										BgL_rtl_funz00_bglt BgL_funz00_4029;

										BgL_funz00_4029 =
											(((BgL_rtl_insz00_bglt) COBJECT(
													((BgL_rtl_insz00_bglt) BgL_insz00_4027)))->
											BgL_funz00);
										{	/* SawMill/expr.scm 64 */
											bool_t BgL_test2272z00_4584;

											{	/* SawMill/expr.scm 64 */
												obj_t BgL_classz00_4030;

												BgL_classz00_4030 = BGl_rtl_movz00zzsaw_defsz00;
												{	/* SawMill/expr.scm 64 */
													BgL_objectz00_bglt BgL_arg1801z00_4031;

													{	/* SawMill/expr.scm 64 */
														obj_t BgL_tmpz00_4585;

														BgL_tmpz00_4585 =
															((obj_t) ((BgL_objectz00_bglt) BgL_funz00_4029));
														BgL_arg1801z00_4031 =
															(BgL_objectz00_bglt) (BgL_tmpz00_4585);
													}
													if (BGL_CONDEXPAND_ISA_ARCH64())
														{	/* SawMill/expr.scm 64 */
															long BgL_idxz00_4032;

															BgL_idxz00_4032 =
																BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_4031);
															BgL_test2272z00_4584 =
																(VECTOR_REF
																(BGl_za2inheritancesza2z00zz__objectz00,
																	(BgL_idxz00_4032 + 3L)) == BgL_classz00_4030);
														}
													else
														{	/* SawMill/expr.scm 64 */
															bool_t BgL_res2138z00_4035;

															{	/* SawMill/expr.scm 64 */
																obj_t BgL_oclassz00_4036;

																{	/* SawMill/expr.scm 64 */
																	long BgL_arg1808z00_4037;

																	{	/* SawMill/expr.scm 64 */
																		long BgL_arg1809z00_4038;

																		BgL_arg1809z00_4038 =
																			BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_4031);
																		BgL_arg1808z00_4037 =
																			(BgL_arg1809z00_4038 - OBJECT_TYPE);
																	}
																	BgL_oclassz00_4036 =
																		VECTOR_REF
																		(BGl_za2classesza2z00zz__objectz00,
																		BgL_arg1808z00_4037);
																}
																{	/* SawMill/expr.scm 64 */
																	bool_t BgL__ortest_1115z00_4039;

																	BgL__ortest_1115z00_4039 =
																		(BgL_classz00_4030 == BgL_oclassz00_4036);
																	if (BgL__ortest_1115z00_4039)
																		{	/* SawMill/expr.scm 64 */
																			BgL_res2138z00_4035 =
																				BgL__ortest_1115z00_4039;
																		}
																	else
																		{	/* SawMill/expr.scm 64 */
																			long BgL_odepthz00_4040;

																			BgL_odepthz00_4040 =
																				BGL_CLASS_DEPTH(BgL_oclassz00_4036);
																			if ((3L < BgL_odepthz00_4040))
																				{	/* SawMill/expr.scm 64 */
																					obj_t BgL_arg1797z00_4041;

																					BgL_arg1797z00_4041 =
																						BGL_CLASS_ANCESTORS_REF
																						(BgL_oclassz00_4036, 3L);
																					BgL_res2138z00_4035 =
																						(BgL_arg1797z00_4041 ==
																						BgL_classz00_4030);
																				}
																			else
																				{	/* SawMill/expr.scm 64 */
																					BgL_res2138z00_4035 = ((bool_t) 0);
																				}
																		}
																}
															}
															BgL_test2272z00_4584 = BgL_res2138z00_4035;
														}
												}
											}
											if (BgL_test2272z00_4584)
												{	/* SawMill/expr.scm 65 */
													obj_t BgL_argz00_4042;

													{	/* SawMill/expr.scm 65 */
														obj_t BgL_pairz00_4043;

														BgL_pairz00_4043 =
															(((BgL_rtl_insz00_bglt) COBJECT(
																	((BgL_rtl_insz00_bglt) BgL_insz00_4027)))->
															BgL_argsz00);
														BgL_argz00_4042 = CAR(BgL_pairz00_4043);
													}
													{	/* SawMill/expr.scm 66 */
														bool_t BgL_test2276z00_4608;

														{	/* SawMill/expr.scm 66 */
															obj_t BgL_classz00_4044;

															BgL_classz00_4044 = BGl_rtl_insz00zzsaw_defsz00;
															if (BGL_OBJECTP(BgL_argz00_4042))
																{	/* SawMill/expr.scm 66 */
																	BgL_objectz00_bglt BgL_arg1801z00_4045;

																	BgL_arg1801z00_4045 =
																		(BgL_objectz00_bglt) (BgL_argz00_4042);
																	if (BGL_CONDEXPAND_ISA_ARCH64())
																		{	/* SawMill/expr.scm 66 */
																			long BgL_idxz00_4046;

																			BgL_idxz00_4046 =
																				BGL_OBJECT_INHERITANCE_NUM
																				(BgL_arg1801z00_4045);
																			BgL_test2276z00_4608 =
																				(VECTOR_REF
																				(BGl_za2inheritancesza2z00zz__objectz00,
																					(BgL_idxz00_4046 + 1L)) ==
																				BgL_classz00_4044);
																		}
																	else
																		{	/* SawMill/expr.scm 66 */
																			bool_t BgL_res2139z00_4049;

																			{	/* SawMill/expr.scm 66 */
																				obj_t BgL_oclassz00_4050;

																				{	/* SawMill/expr.scm 66 */
																					long BgL_arg1808z00_4051;

																					{	/* SawMill/expr.scm 66 */
																						long BgL_arg1809z00_4052;

																						BgL_arg1809z00_4052 =
																							BGL_OBJECT_CLASS_NUM
																							(BgL_arg1801z00_4045);
																						BgL_arg1808z00_4051 =
																							(BgL_arg1809z00_4052 -
																							OBJECT_TYPE);
																					}
																					BgL_oclassz00_4050 =
																						VECTOR_REF
																						(BGl_za2classesza2z00zz__objectz00,
																						BgL_arg1808z00_4051);
																				}
																				{	/* SawMill/expr.scm 66 */
																					bool_t BgL__ortest_1115z00_4053;

																					BgL__ortest_1115z00_4053 =
																						(BgL_classz00_4044 ==
																						BgL_oclassz00_4050);
																					if (BgL__ortest_1115z00_4053)
																						{	/* SawMill/expr.scm 66 */
																							BgL_res2139z00_4049 =
																								BgL__ortest_1115z00_4053;
																						}
																					else
																						{	/* SawMill/expr.scm 66 */
																							long BgL_odepthz00_4054;

																							BgL_odepthz00_4054 =
																								BGL_CLASS_DEPTH
																								(BgL_oclassz00_4050);
																							if ((1L < BgL_odepthz00_4054))
																								{	/* SawMill/expr.scm 66 */
																									obj_t BgL_arg1797z00_4055;

																									BgL_arg1797z00_4055 =
																										BGL_CLASS_ANCESTORS_REF
																										(BgL_oclassz00_4050, 1L);
																									BgL_res2139z00_4049 =
																										(BgL_arg1797z00_4055 ==
																										BgL_classz00_4044);
																								}
																							else
																								{	/* SawMill/expr.scm 66 */
																									BgL_res2139z00_4049 =
																										((bool_t) 0);
																								}
																						}
																				}
																			}
																			BgL_test2276z00_4608 =
																				BgL_res2139z00_4049;
																		}
																}
															else
																{	/* SawMill/expr.scm 66 */
																	BgL_test2276z00_4608 = ((bool_t) 0);
																}
														}
														if (BgL_test2276z00_4608)
															{
																obj_t BgL_insz00_4628;

																BgL_insz00_4628 = BgL_argz00_4042;
																BgL_insz00_4027 = BgL_insz00_4628;
																goto BgL_xzd3xzd3_4026;
															}
														else
															{	/* SawMill/expr.scm 66 */
																BgL_test2269z00_4571 =
																	(BgL_argz00_4042 == BgL_destz00_4028);
															}
													}
												}
											else
												{	/* SawMill/expr.scm 64 */
													BgL_test2269z00_4571 = ((bool_t) 0);
												}
										}
									}
								}
						}
						if (BgL_test2269z00_4571)
							{	/* SawMill/expr.scm 70 */
								BgL_tmpz00_4570 = ((bool_t) 0);
							}
						else
							{	/* SawMill/expr.scm 70 */
								BgL_tmpz00_4570 = ((bool_t) 1);
							}
					}
				}
				return BBOOL(BgL_tmpz00_4570);
			}
		}

	}



/* mark-locals */
	bool_t BGl_markzd2localszd2zzsaw_exprz00(obj_t BgL_paramsz00_98,
		obj_t BgL_lz00_99)
	{
		{	/* SawMill/expr.scm 80 */
			{	/* SawMill/expr.scm 81 */
				struct bgl_cell BgL_box2281_4008z00;
				obj_t BgL_nz00_4008;

				BgL_nz00_4008 = MAKE_CELL_STACK(BINT(0L), BgL_box2281_4008z00);
				{
					obj_t BgL_rz00_2248;
					BgL_blockz00_bglt BgL_bz00_2254;

					{
						obj_t BgL_l1575z00_2224;

						BgL_l1575z00_2224 = BgL_paramsz00_98;
					BgL_zc3z04anonymousza31829ze3z87_2225:
						if (PAIRP(BgL_l1575z00_2224))
							{	/* SawMill/expr.scm 105 */
								BGl_regzd2ze3iregzf2writeze70z24zzsaw_exprz00(BgL_nz00_4008,
									CAR(BgL_l1575z00_2224));
								{
									obj_t BgL_l1575z00_4636;

									BgL_l1575z00_4636 = CDR(BgL_l1575z00_2224);
									BgL_l1575z00_2224 = BgL_l1575z00_4636;
									goto BgL_zc3z04anonymousza31829ze3z87_2225;
								}
							}
						else
							{	/* SawMill/expr.scm 105 */
								((bool_t) 1);
							}
					}
					{
						obj_t BgL_l1577z00_2231;

						BgL_l1577z00_2231 = BgL_lz00_99;
					BgL_zc3z04anonymousza31833ze3z87_2232:
						if (PAIRP(BgL_l1577z00_2231))
							{	/* SawMill/expr.scm 106 */
								{	/* SawMill/expr.scm 106 */
									obj_t BgL_arg1835z00_2234;

									BgL_arg1835z00_2234 = CAR(BgL_l1577z00_2231);
									BgL_bz00_2254 = ((BgL_blockz00_bglt) BgL_arg1835z00_2234);
									{	/* SawMill/expr.scm 100 */
										obj_t BgL_g1574z00_2256;

										BgL_g1574z00_2256 =
											(((BgL_blockz00_bglt) COBJECT(BgL_bz00_2254))->
											BgL_firstz00);
										{
											obj_t BgL_l1572z00_2258;

											BgL_l1572z00_2258 = BgL_g1574z00_2256;
										BgL_zc3z04anonymousza31844ze3z87_2259:
											if (PAIRP(BgL_l1572z00_2258))
												{	/* SawMill/expr.scm 104 */
													{	/* SawMill/expr.scm 101 */
														obj_t BgL_insz00_2261;

														BgL_insz00_2261 = CAR(BgL_l1572z00_2258);
														if (CBOOL(
																(((BgL_rtl_insz00_bglt) COBJECT(
																			((BgL_rtl_insz00_bglt)
																				BgL_insz00_2261)))->BgL_destz00)))
															{	/* SawMill/expr.scm 102 */
																obj_t BgL_arg1848z00_2264;

																BgL_arg1848z00_2264 =
																	(((BgL_rtl_insz00_bglt) COBJECT(
																			((BgL_rtl_insz00_bglt)
																				BgL_insz00_2261)))->BgL_destz00);
																BGl_regzd2ze3iregzf2writeze70z24zzsaw_exprz00
																	(BgL_nz00_4008, BgL_arg1848z00_2264);
															}
														else
															{	/* SawMill/expr.scm 102 */
																BFALSE;
															}
														{	/* SawMill/expr.scm 103 */
															obj_t BgL_g1571z00_2265;

															BgL_g1571z00_2265 =
																(((BgL_rtl_insz00_bglt) COBJECT(
																		((BgL_rtl_insz00_bglt) BgL_insz00_2261)))->
																BgL_argsz00);
															{
																obj_t BgL_l1569z00_2267;

																BgL_l1569z00_2267 = BgL_g1571z00_2265;
															BgL_zc3z04anonymousza31849ze3z87_2268:
																if (PAIRP(BgL_l1569z00_2267))
																	{	/* SawMill/expr.scm 103 */
																		BgL_rz00_2248 = CAR(BgL_l1569z00_2267);
																		{	/* SawMill/expr.scm 90 */
																			obj_t BgL_sz00_2250;

																			BgL_sz00_2250 =
																				BGl_regzd2ze3iregze70zd6zzsaw_exprz00
																				(BgL_nz00_4008, BgL_rz00_2248);
																			if ((BgL_sz00_2250 ==
																					CNST_TABLE_REF(15L)))
																				{	/* SawMill/expr.scm 91 */
																					obj_t BgL_nstatz00_3277;

																					BgL_nstatz00_3277 =
																						CNST_TABLE_REF(16L);
																					{
																						BgL_iregz00_bglt BgL_auxz00_4661;

																						{
																							obj_t BgL_auxz00_4662;

																							{	/* SawMill/expr.scm 82 */
																								BgL_objectz00_bglt
																									BgL_tmpz00_4663;
																								BgL_tmpz00_4663 =
																									((BgL_objectz00_bglt) (
																										(BgL_rtl_regz00_bglt)
																										BgL_rz00_2248));
																								BgL_auxz00_4662 =
																									BGL_OBJECT_WIDENING
																									(BgL_tmpz00_4663);
																							}
																							BgL_auxz00_4661 =
																								((BgL_iregz00_bglt)
																								BgL_auxz00_4662);
																						}
																						((((BgL_iregz00_bglt)
																									COBJECT(BgL_auxz00_4661))->
																								BgL_statusz00) =
																							((obj_t) BgL_nstatz00_3277),
																							BUNSPEC);
																					}
																				}
																			else
																				{	/* SawMill/expr.scm 91 */
																					if (
																						(BgL_sz00_2250 ==
																							CNST_TABLE_REF(17L)))
																						{	/* SawMill/expr.scm 92 */
																							obj_t BgL_nstatz00_3280;

																							BgL_nstatz00_3280 =
																								CNST_TABLE_REF(18L);
																							{
																								BgL_iregz00_bglt
																									BgL_auxz00_4673;
																								{
																									obj_t BgL_auxz00_4674;

																									{	/* SawMill/expr.scm 82 */
																										BgL_objectz00_bglt
																											BgL_tmpz00_4675;
																										BgL_tmpz00_4675 =
																											((BgL_objectz00_bglt) (
																												(BgL_rtl_regz00_bglt)
																												BgL_rz00_2248));
																										BgL_auxz00_4674 =
																											BGL_OBJECT_WIDENING
																											(BgL_tmpz00_4675);
																									}
																									BgL_auxz00_4673 =
																										((BgL_iregz00_bglt)
																										BgL_auxz00_4674);
																								}
																								((((BgL_iregz00_bglt)
																											COBJECT
																											(BgL_auxz00_4673))->
																										BgL_statusz00) =
																									((obj_t) BgL_nstatz00_3280),
																									BUNSPEC);
																							}
																						}
																					else
																						{	/* SawMill/expr.scm 93 */
																							obj_t BgL_nstatz00_3283;

																							BgL_nstatz00_3283 =
																								CNST_TABLE_REF(19L);
																							{
																								BgL_iregz00_bglt
																									BgL_auxz00_4682;
																								{
																									obj_t BgL_auxz00_4683;

																									{	/* SawMill/expr.scm 82 */
																										BgL_objectz00_bglt
																											BgL_tmpz00_4684;
																										BgL_tmpz00_4684 =
																											((BgL_objectz00_bglt) (
																												(BgL_rtl_regz00_bglt)
																												BgL_rz00_2248));
																										BgL_auxz00_4683 =
																											BGL_OBJECT_WIDENING
																											(BgL_tmpz00_4684);
																									}
																									BgL_auxz00_4682 =
																										((BgL_iregz00_bglt)
																										BgL_auxz00_4683);
																								}
																								((((BgL_iregz00_bglt)
																											COBJECT
																											(BgL_auxz00_4682))->
																										BgL_statusz00) =
																									((obj_t) BgL_nstatz00_3283),
																									BUNSPEC);
																							}
																						}
																				}
																		}
																		{
																			obj_t BgL_l1569z00_4691;

																			BgL_l1569z00_4691 =
																				CDR(BgL_l1569z00_2267);
																			BgL_l1569z00_2267 = BgL_l1569z00_4691;
																			goto
																				BgL_zc3z04anonymousza31849ze3z87_2268;
																		}
																	}
																else
																	{	/* SawMill/expr.scm 103 */
																		((bool_t) 1);
																	}
															}
														}
													}
													{
														obj_t BgL_l1572z00_4693;

														BgL_l1572z00_4693 = CDR(BgL_l1572z00_2258);
														BgL_l1572z00_2258 = BgL_l1572z00_4693;
														goto BgL_zc3z04anonymousza31844ze3z87_2259;
													}
												}
											else
												{	/* SawMill/expr.scm 104 */
													((bool_t) 1);
												}
										}
									}
								}
								{
									obj_t BgL_l1577z00_4696;

									BgL_l1577z00_4696 = CDR(BgL_l1577z00_2231);
									BgL_l1577z00_2231 = BgL_l1577z00_4696;
									goto BgL_zc3z04anonymousza31833ze3z87_2232;
								}
							}
						else
							{	/* SawMill/expr.scm 106 */
								return ((bool_t) 1);
							}
					}
				}
			}
		}

	}



/* reg->ireg~0 */
	obj_t BGl_regzd2ze3iregze70zd6zzsaw_exprz00(obj_t BgL_nz00_4005,
		obj_t BgL_rz00_2240)
	{
		{	/* SawMill/expr.scm 88 */
			{	/* SawMill/expr.scm 84 */
				bool_t BgL_test2289z00_4698;

				{	/* SawMill/expr.scm 84 */
					obj_t BgL_classz00_3257;

					BgL_classz00_3257 = BGl_iregz00zzsaw_exprz00;
					if (BGL_OBJECTP(BgL_rz00_2240))
						{	/* SawMill/expr.scm 84 */
							obj_t BgL_oclassz00_3259;

							{	/* SawMill/expr.scm 84 */
								long BgL_arg1808z00_3261;

								{	/* SawMill/expr.scm 84 */
									long BgL_arg1809z00_3262;

									BgL_arg1809z00_3262 =
										BGL_OBJECT_CLASS_NUM(((BgL_objectz00_bglt) BgL_rz00_2240));
									BgL_arg1808z00_3261 = (BgL_arg1809z00_3262 - OBJECT_TYPE);
								}
								BgL_oclassz00_3259 =
									VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
									BgL_arg1808z00_3261);
							}
							BgL_test2289z00_4698 = (BgL_oclassz00_3259 == BgL_classz00_3257);
						}
					else
						{	/* SawMill/expr.scm 84 */
							BgL_test2289z00_4698 = ((bool_t) 0);
						}
				}
				if (BgL_test2289z00_4698)
					{
						BgL_iregz00_bglt BgL_auxz00_4706;

						{
							obj_t BgL_auxz00_4707;

							{	/* SawMill/expr.scm 85 */
								BgL_objectz00_bglt BgL_tmpz00_4708;

								BgL_tmpz00_4708 =
									((BgL_objectz00_bglt) ((BgL_rtl_regz00_bglt) BgL_rz00_2240));
								BgL_auxz00_4707 = BGL_OBJECT_WIDENING(BgL_tmpz00_4708);
							}
							BgL_auxz00_4706 = ((BgL_iregz00_bglt) BgL_auxz00_4707);
						}
						return
							(((BgL_iregz00_bglt) COBJECT(BgL_auxz00_4706))->BgL_statusz00);
					}
				else
					{	/* SawMill/expr.scm 84 */
						{	/* SawMill/expr.scm 86 */
							BgL_iregz00_bglt BgL_wide1214z00_2245;

							BgL_wide1214z00_2245 =
								((BgL_iregz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
											BgL_iregz00_bgl))));
							{	/* SawMill/expr.scm 86 */
								obj_t BgL_auxz00_4719;
								BgL_objectz00_bglt BgL_tmpz00_4715;

								BgL_auxz00_4719 = ((obj_t) BgL_wide1214z00_2245);
								BgL_tmpz00_4715 =
									((BgL_objectz00_bglt)
									((BgL_rtl_regz00_bglt)
										((BgL_rtl_regz00_bglt) BgL_rz00_2240)));
								BGL_OBJECT_WIDENING_SET(BgL_tmpz00_4715, BgL_auxz00_4719);
							}
							((BgL_objectz00_bglt)
								((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt) BgL_rz00_2240)));
							{	/* SawMill/expr.scm 86 */
								long BgL_arg1840z00_2246;

								BgL_arg1840z00_2246 = BGL_CLASS_NUM(BGl_iregz00zzsaw_exprz00);
								BGL_OBJECT_CLASS_NUM_SET(
									((BgL_objectz00_bglt)
										((BgL_rtl_regz00_bglt)
											((BgL_rtl_regz00_bglt) BgL_rz00_2240))),
									BgL_arg1840z00_2246);
							}
							((BgL_rtl_regz00_bglt)
								((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt) BgL_rz00_2240)));
						}
						{
							BgL_iregz00_bglt BgL_auxz00_4733;

							{
								obj_t BgL_auxz00_4734;

								{	/* SawMill/expr.scm 86 */
									BgL_objectz00_bglt BgL_tmpz00_4735;

									BgL_tmpz00_4735 =
										((BgL_objectz00_bglt)
										((BgL_rtl_regz00_bglt)
											((BgL_rtl_regz00_bglt) BgL_rz00_2240)));
									BgL_auxz00_4734 = BGL_OBJECT_WIDENING(BgL_tmpz00_4735);
								}
								BgL_auxz00_4733 = ((BgL_iregz00_bglt) BgL_auxz00_4734);
							}
							((((BgL_iregz00_bglt) COBJECT(BgL_auxz00_4733))->BgL_indexz00) =
								((obj_t) CELL_REF(BgL_nz00_4005)), BUNSPEC);
						}
						{
							BgL_iregz00_bglt BgL_auxz00_4742;

							{
								obj_t BgL_auxz00_4743;

								{	/* SawMill/expr.scm 86 */
									BgL_objectz00_bglt BgL_tmpz00_4744;

									BgL_tmpz00_4744 =
										((BgL_objectz00_bglt)
										((BgL_rtl_regz00_bglt)
											((BgL_rtl_regz00_bglt) BgL_rz00_2240)));
									BgL_auxz00_4743 = BGL_OBJECT_WIDENING(BgL_tmpz00_4744);
								}
								BgL_auxz00_4742 = ((BgL_iregz00_bglt) BgL_auxz00_4743);
							}
							((((BgL_iregz00_bglt) COBJECT(BgL_auxz00_4742))->BgL_statusz00) =
								((obj_t) CNST_TABLE_REF(15L)), BUNSPEC);
						}
						((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt) BgL_rz00_2240));
						{	/* SawMill/expr.scm 87 */
							obj_t BgL_auxz00_4006;

							BgL_auxz00_4006 = ADDFX(CELL_REF(BgL_nz00_4005), BINT(1L));
							CELL_SET(BgL_nz00_4005, BgL_auxz00_4006);
						}
						return CNST_TABLE_REF(15L);
					}
			}
		}

	}



/* reg->ireg/write~0 */
	obj_t BGl_regzd2ze3iregzf2writeze70z24zzsaw_exprz00(obj_t BgL_nz00_4007,
		obj_t BgL_rz00_2251)
	{
		{	/* SawMill/expr.scm 98 */
			{	/* SawMill/expr.scm 95 */
				obj_t BgL_sz00_2253;

				BgL_sz00_2253 =
					BGl_regzd2ze3iregze70zd6zzsaw_exprz00(BgL_nz00_4007, BgL_rz00_2251);
				if ((BgL_sz00_2253 == CNST_TABLE_REF(15L)))
					{	/* SawMill/expr.scm 96 */
						obj_t BgL_nstatz00_3286;

						BgL_nstatz00_3286 = CNST_TABLE_REF(17L);
						{
							BgL_iregz00_bglt BgL_auxz00_4762;

							{
								obj_t BgL_auxz00_4763;

								{	/* SawMill/expr.scm 82 */
									BgL_objectz00_bglt BgL_tmpz00_4764;

									BgL_tmpz00_4764 =
										((BgL_objectz00_bglt)
										((BgL_rtl_regz00_bglt) BgL_rz00_2251));
									BgL_auxz00_4763 = BGL_OBJECT_WIDENING(BgL_tmpz00_4764);
								}
								BgL_auxz00_4762 = ((BgL_iregz00_bglt) BgL_auxz00_4763);
							}
							return
								((((BgL_iregz00_bglt) COBJECT(BgL_auxz00_4762))->
									BgL_statusz00) = ((obj_t) BgL_nstatz00_3286), BUNSPEC);
						}
					}
				else
					{	/* SawMill/expr.scm 96 */
						if ((BgL_sz00_2253 == CNST_TABLE_REF(16L)))
							{	/* SawMill/expr.scm 97 */
								obj_t BgL_nstatz00_3289;

								BgL_nstatz00_3289 = CNST_TABLE_REF(18L);
								{
									BgL_iregz00_bglt BgL_auxz00_4774;

									{
										obj_t BgL_auxz00_4775;

										{	/* SawMill/expr.scm 82 */
											BgL_objectz00_bglt BgL_tmpz00_4776;

											BgL_tmpz00_4776 =
												((BgL_objectz00_bglt)
												((BgL_rtl_regz00_bglt) BgL_rz00_2251));
											BgL_auxz00_4775 = BGL_OBJECT_WIDENING(BgL_tmpz00_4776);
										}
										BgL_auxz00_4774 = ((BgL_iregz00_bglt) BgL_auxz00_4775);
									}
									return
										((((BgL_iregz00_bglt) COBJECT(BgL_auxz00_4774))->
											BgL_statusz00) = ((obj_t) BgL_nstatz00_3289), BUNSPEC);
								}
							}
						else
							{	/* SawMill/expr.scm 98 */
								obj_t BgL_nstatz00_3292;

								BgL_nstatz00_3292 = CNST_TABLE_REF(19L);
								{
									BgL_iregz00_bglt BgL_auxz00_4783;

									{
										obj_t BgL_auxz00_4784;

										{	/* SawMill/expr.scm 82 */
											BgL_objectz00_bglt BgL_tmpz00_4785;

											BgL_tmpz00_4785 =
												((BgL_objectz00_bglt)
												((BgL_rtl_regz00_bglt) BgL_rz00_2251));
											BgL_auxz00_4784 = BGL_OBJECT_WIDENING(BgL_tmpz00_4785);
										}
										BgL_auxz00_4783 = ((BgL_iregz00_bglt) BgL_auxz00_4784);
									}
									return
										((((BgL_iregz00_bglt) COBJECT(BgL_auxz00_4783))->
											BgL_statusz00) = ((obj_t) BgL_nstatz00_3292), BUNSPEC);
								}
							}
					}
			}
		}

	}



/* pre-analyse */
	obj_t BGl_prezd2analysezd2zzsaw_exprz00(BgL_backendz00_bglt BgL_bz00_100,
		obj_t BgL_movingz00_101, obj_t BgL_insz00_102)
	{
		{	/* SawMill/expr.scm 112 */
			{	/* SawMill/expr.scm 113 */
				obj_t BgL_inszd2effectzd2_2280;
				obj_t BgL_argsz00_2281;

				{	/* SawMill/expr.scm 113 */
					BgL_rtl_funz00_bglt BgL_arg1886z00_2322;

					BgL_arg1886z00_2322 =
						(((BgL_rtl_insz00_bglt) COBJECT(
								((BgL_rtl_insz00_bglt) BgL_insz00_102)))->BgL_funz00);
					BgL_inszd2effectzd2_2280 =
						BGl_effectsz00zzsaw_exprz00(BgL_arg1886z00_2322);
				}
				BgL_argsz00_2281 =
					(((BgL_rtl_insz00_bglt) COBJECT(
							((BgL_rtl_insz00_bglt) BgL_insz00_102)))->BgL_argsz00);
				{
					obj_t BgL_lz00_2302;
					obj_t BgL_rz00_2303;
					obj_t BgL_treez00_2297;
					obj_t BgL_posz00_2298;

					{	/* SawMill/expr.scm 128 */
						obj_t BgL_rz00_2284;
						obj_t BgL_dz00_2285;

						BgL_lz00_2302 = BgL_movingz00_101;
						BgL_rz00_2303 = BNIL;
					BgL_zc3z04anonymousza31871ze3z87_2304:
						if (NULLP(BgL_lz00_2302))
							{	/* SawMill/expr.scm 119 */
								BgL_rz00_2284 = BgL_rz00_2303;
							}
						else
							{	/* SawMill/expr.scm 120 */
								obj_t BgL_g1217z00_2306;

								BgL_g1217z00_2306 =
									BGl_memqz00zz__r4_pairs_and_lists_6_3z00(
									(((BgL_rtl_insz00_bglt) COBJECT(
												((BgL_rtl_insz00_bglt)
													CAR(
														((obj_t) BgL_lz00_2302)))))->BgL_destz00),
									BgL_argsz00_2281);
								if (CBOOL(BgL_g1217z00_2306))
									{	/* SawMill/expr.scm 120 */
										{	/* SawMill/expr.scm 122 */
											obj_t BgL_arg1873z00_2309;

											BgL_arg1873z00_2309 = CAR(((obj_t) BgL_lz00_2302));
											BgL_treez00_2297 = BgL_arg1873z00_2309;
											BgL_posz00_2298 = BgL_g1217z00_2306;
											if (CBOOL(BGl_acceptzd2foldingzf3z21zzsaw_exprz00
													(BgL_bz00_100, BgL_insz00_102, BgL_treez00_2297)))
												{	/* SawMill/expr.scm 115 */
													BGl_za2countza2z00zzsaw_exprz00 =
														(1L + BGl_za2countza2z00zzsaw_exprz00);
													{	/* SawMill/expr.scm 117 */
														obj_t BgL_arg1870z00_2301;

														BgL_arg1870z00_2301 =
															(((BgL_rtl_insz00_bglt) COBJECT(
																	((BgL_rtl_insz00_bglt) BgL_treez00_2297)))->
															BgL_destz00);
														((((BgL_rtl_regz00_bglt)
																	COBJECT(((BgL_rtl_regz00_bglt)
																			BgL_arg1870z00_2301)))->
																BgL_onexprzf3zf3) = ((obj_t) BTRUE), BUNSPEC);
													}
												}
											else
												{	/* SawMill/expr.scm 115 */
													BFALSE;
												}
										}
										{	/* SawMill/expr.scm 123 */
											obj_t BgL_arg1875z00_2310;

											BgL_arg1875z00_2310 = CDR(((obj_t) BgL_lz00_2302));
											{
												obj_t BgL_lz00_4817;

												BgL_lz00_4817 = BgL_arg1875z00_2310;
												BgL_lz00_2302 = BgL_lz00_4817;
												goto BgL_zc3z04anonymousza31871ze3z87_2304;
											}
										}
									}
								else
									{	/* SawMill/expr.scm 124 */
										bool_t BgL_test2296z00_4818;

										{	/* SawMill/expr.scm 124 */
											obj_t BgL_arg1883z00_2317;

											BgL_arg1883z00_2317 = CAR(((obj_t) BgL_lz00_2302));
											BgL_test2296z00_4818 =
												CBOOL(BGl_xxz00zzsaw_exprz00(BgL_arg1883z00_2317,
													BgL_insz00_102, BgL_inszd2effectzd2_2280));
										}
										if (BgL_test2296z00_4818)
											{	/* SawMill/expr.scm 126 */
												obj_t BgL_arg1879z00_2313;

												BgL_arg1879z00_2313 = CDR(((obj_t) BgL_lz00_2302));
												{
													obj_t BgL_lz00_4825;

													BgL_lz00_4825 = BgL_arg1879z00_2313;
													BgL_lz00_2302 = BgL_lz00_4825;
													goto BgL_zc3z04anonymousza31871ze3z87_2304;
												}
											}
										else
											{	/* SawMill/expr.scm 127 */
												obj_t BgL_arg1880z00_2314;
												obj_t BgL_arg1881z00_2315;

												BgL_arg1880z00_2314 = CDR(((obj_t) BgL_lz00_2302));
												{	/* SawMill/expr.scm 127 */
													obj_t BgL_arg1882z00_2316;

													BgL_arg1882z00_2316 = CAR(((obj_t) BgL_lz00_2302));
													BgL_arg1881z00_2315 =
														MAKE_YOUNG_PAIR(BgL_arg1882z00_2316, BgL_rz00_2303);
												}
												{
													obj_t BgL_rz00_4832;
													obj_t BgL_lz00_4831;

													BgL_lz00_4831 = BgL_arg1880z00_2314;
													BgL_rz00_4832 = BgL_arg1881z00_2315;
													BgL_rz00_2303 = BgL_rz00_4832;
													BgL_lz00_2302 = BgL_lz00_4831;
													goto BgL_zc3z04anonymousza31871ze3z87_2304;
												}
											}
									}
							}
						BgL_dz00_2285 =
							(((BgL_rtl_insz00_bglt) COBJECT(
									((BgL_rtl_insz00_bglt) BgL_insz00_102)))->BgL_destz00);
						{	/* SawMill/expr.scm 130 */
							bool_t BgL_test2297z00_4835;

							if (CBOOL(BgL_dz00_2285))
								{	/* SawMill/expr.scm 131 */
									bool_t BgL_test2299z00_4838;

									{	/* SawMill/expr.scm 131 */
										obj_t BgL_arg1866z00_2296;

										{
											BgL_pregz00_bglt BgL_auxz00_4839;

											{
												obj_t BgL_auxz00_4840;

												{	/* SawMill/expr.scm 131 */
													BgL_objectz00_bglt BgL_tmpz00_4841;

													BgL_tmpz00_4841 =
														((BgL_objectz00_bglt)
														((BgL_rtl_regz00_bglt) BgL_dz00_2285));
													BgL_auxz00_4840 =
														BGL_OBJECT_WIDENING(BgL_tmpz00_4841);
												}
												BgL_auxz00_4839 = ((BgL_pregz00_bglt) BgL_auxz00_4840);
											}
											BgL_arg1866z00_2296 =
												(((BgL_pregz00_bglt) COBJECT(BgL_auxz00_4839))->
												BgL_statusz00);
										}
										BgL_test2299z00_4838 =
											(BgL_arg1866z00_2296 == CNST_TABLE_REF(18L));
									}
									if (BgL_test2299z00_4838)
										{	/* SawMill/expr.scm 132 */
											bool_t BgL_test2300z00_4849;

											{	/* SawMill/expr.scm 132 */
												BgL_rtl_funz00_bglt BgL_arg1864z00_2295;

												BgL_arg1864z00_2295 =
													(((BgL_rtl_insz00_bglt) COBJECT(
															((BgL_rtl_insz00_bglt) BgL_insz00_102)))->
													BgL_funz00);
												{	/* SawMill/expr.scm 132 */
													obj_t BgL_classz00_3322;

													BgL_classz00_3322 = BGl_rtl_protectz00zzsaw_defsz00;
													{	/* SawMill/expr.scm 132 */
														BgL_objectz00_bglt BgL_arg1801z00_3324;

														{	/* SawMill/expr.scm 132 */
															obj_t BgL_tmpz00_4852;

															BgL_tmpz00_4852 =
																((obj_t)
																((BgL_objectz00_bglt) BgL_arg1864z00_2295));
															BgL_arg1801z00_3324 =
																(BgL_objectz00_bglt) (BgL_tmpz00_4852);
														}
														if (BGL_CONDEXPAND_ISA_ARCH64())
															{	/* SawMill/expr.scm 132 */
																long BgL_idxz00_3330;

																BgL_idxz00_3330 =
																	BGL_OBJECT_INHERITANCE_NUM
																	(BgL_arg1801z00_3324);
																BgL_test2300z00_4849 =
																	(VECTOR_REF
																	(BGl_za2inheritancesza2z00zz__objectz00,
																		(BgL_idxz00_3330 + 2L)) ==
																	BgL_classz00_3322);
															}
														else
															{	/* SawMill/expr.scm 132 */
																bool_t BgL_res2141z00_3352;

																{	/* SawMill/expr.scm 132 */
																	obj_t BgL_oclassz00_3338;

																	{	/* SawMill/expr.scm 132 */
																		long BgL_arg1808z00_3344;

																		{	/* SawMill/expr.scm 132 */
																			long BgL_arg1809z00_3345;

																			BgL_arg1809z00_3345 =
																				BGL_OBJECT_CLASS_NUM
																				(BgL_arg1801z00_3324);
																			BgL_arg1808z00_3344 =
																				(BgL_arg1809z00_3345 - OBJECT_TYPE);
																		}
																		BgL_oclassz00_3338 =
																			VECTOR_REF
																			(BGl_za2classesza2z00zz__objectz00,
																			BgL_arg1808z00_3344);
																	}
																	{	/* SawMill/expr.scm 132 */
																		bool_t BgL__ortest_1115z00_3339;

																		BgL__ortest_1115z00_3339 =
																			(BgL_classz00_3322 == BgL_oclassz00_3338);
																		if (BgL__ortest_1115z00_3339)
																			{	/* SawMill/expr.scm 132 */
																				BgL_res2141z00_3352 =
																					BgL__ortest_1115z00_3339;
																			}
																		else
																			{	/* SawMill/expr.scm 132 */
																				long BgL_odepthz00_3340;

																				BgL_odepthz00_3340 =
																					BGL_CLASS_DEPTH(BgL_oclassz00_3338);
																				if ((2L < BgL_odepthz00_3340))
																					{	/* SawMill/expr.scm 132 */
																						obj_t BgL_arg1797z00_3342;

																						BgL_arg1797z00_3342 =
																							BGL_CLASS_ANCESTORS_REF
																							(BgL_oclassz00_3338, 2L);
																						BgL_res2141z00_3352 =
																							(BgL_arg1797z00_3342 ==
																							BgL_classz00_3322);
																					}
																				else
																					{	/* SawMill/expr.scm 132 */
																						BgL_res2141z00_3352 = ((bool_t) 0);
																					}
																			}
																	}
																}
																BgL_test2300z00_4849 = BgL_res2141z00_3352;
															}
													}
												}
											}
											if (BgL_test2300z00_4849)
												{	/* SawMill/expr.scm 132 */
													BgL_test2297z00_4835 = ((bool_t) 0);
												}
											else
												{	/* SawMill/expr.scm 132 */
													BgL_test2297z00_4835 = ((bool_t) 1);
												}
										}
									else
										{	/* SawMill/expr.scm 131 */
											BgL_test2297z00_4835 = ((bool_t) 0);
										}
								}
							else
								{	/* SawMill/expr.scm 130 */
									BgL_test2297z00_4835 = ((bool_t) 0);
								}
							if (BgL_test2297z00_4835)
								{	/* SawMill/expr.scm 130 */
									return MAKE_YOUNG_PAIR(BgL_insz00_102, BgL_rz00_2284);
								}
							else
								{	/* SawMill/expr.scm 130 */
									return BgL_rz00_2284;
								}
						}
					}
				}
			}
		}

	}



/* analyse */
	obj_t BGl_analysez00zzsaw_exprz00(BgL_backendz00_bglt BgL_bz00_103,
		obj_t BgL_movingz00_104, obj_t BgL_insz00_105)
	{
		{	/* SawMill/expr.scm 137 */
			{	/* SawMill/expr.scm 139 */
				obj_t BgL_inszd2effectzd2_2323;
				obj_t BgL_argsz00_2324;

				{	/* SawMill/expr.scm 139 */
					BgL_rtl_funz00_bglt BgL_arg1921z00_2370;

					BgL_arg1921z00_2370 =
						(((BgL_rtl_insz00_bglt) COBJECT(
								((BgL_rtl_insz00_bglt) BgL_insz00_105)))->BgL_funz00);
					BgL_inszd2effectzd2_2323 =
						BGl_effectsz00zzsaw_exprz00(BgL_arg1921z00_2370);
				}
				BgL_argsz00_2324 =
					(((BgL_rtl_insz00_bglt) COBJECT(
							((BgL_rtl_insz00_bglt) BgL_insz00_105)))->BgL_argsz00);
				{
					obj_t BgL_lz00_2350;
					obj_t BgL_rz00_2351;
					obj_t BgL_treez00_2340;
					obj_t BgL_posz00_2341;

					{	/* SawMill/expr.scm 157 */
						obj_t BgL_rz00_2327;
						obj_t BgL_dz00_2328;

						BgL_lz00_2350 = BgL_movingz00_104;
						BgL_rz00_2351 = BNIL;
					BgL_zc3z04anonymousza31901ze3z87_2352:
						if (NULLP(BgL_lz00_2350))
							{	/* SawMill/expr.scm 147 */
								BgL_rz00_2327 = BgL_rz00_2351;
							}
						else
							{	/* SawMill/expr.scm 148 */
								obj_t BgL_g1223z00_2354;

								BgL_g1223z00_2354 =
									BGl_memqz00zz__r4_pairs_and_lists_6_3z00(
									(((BgL_rtl_insz00_bglt) COBJECT(
												((BgL_rtl_insz00_bglt)
													CAR(
														((obj_t) BgL_lz00_2350)))))->BgL_destz00),
									BgL_argsz00_2324);
								if (CBOOL(BgL_g1223z00_2354))
									{	/* SawMill/expr.scm 148 */
										{	/* SawMill/expr.scm 150 */
											obj_t BgL_arg1905z00_2357;

											BgL_arg1905z00_2357 = CAR(((obj_t) BgL_lz00_2350));
											BgL_treez00_2340 = BgL_arg1905z00_2357;
											BgL_posz00_2341 = BgL_g1223z00_2354;
											if (CBOOL(BGl_acceptzd2foldingzf3z21zzsaw_exprz00
													(BgL_bz00_103, BgL_insz00_105, BgL_treez00_2340)))
												{	/* SawMill/expr.scm 141 */
													{	/* SawMill/expr.scm 143 */
														obj_t BgL_tmpz00_4892;

														BgL_tmpz00_4892 = ((obj_t) BgL_posz00_2341);
														SET_CAR(BgL_tmpz00_4892, BgL_treez00_2340);
													}
													{	/* SawMill/expr.scm 144 */
														bool_t BgL_test2307z00_4895;

														{	/* SawMill/expr.scm 144 */
															obj_t BgL_classz00_3356;

															BgL_classz00_3356 = BGl_inlinedz00zzsaw_exprz00;
															if (BGL_OBJECTP(BgL_treez00_2340))
																{	/* SawMill/expr.scm 144 */
																	obj_t BgL_oclassz00_3358;

																	{	/* SawMill/expr.scm 144 */
																		long BgL_arg1808z00_3360;

																		{	/* SawMill/expr.scm 144 */
																			long BgL_arg1809z00_3361;

																			BgL_arg1809z00_3361 =
																				BGL_OBJECT_CLASS_NUM(
																				((BgL_objectz00_bglt)
																					BgL_treez00_2340));
																			BgL_arg1808z00_3360 =
																				(BgL_arg1809z00_3361 - OBJECT_TYPE);
																		}
																		BgL_oclassz00_3358 =
																			VECTOR_REF
																			(BGl_za2classesza2z00zz__objectz00,
																			BgL_arg1808z00_3360);
																	}
																	BgL_test2307z00_4895 =
																		(BgL_oclassz00_3358 == BgL_classz00_3356);
																}
															else
																{	/* SawMill/expr.scm 144 */
																	BgL_test2307z00_4895 = ((bool_t) 0);
																}
														}
														if (BgL_test2307z00_4895)
															{	/* SawMill/expr.scm 144 */
																BFALSE;
															}
														else
															{	/* SawMill/expr.scm 144 */
																{	/* SawMill/expr.scm 144 */
																	BgL_inlinedz00_bglt BgL_wide1221z00_2347;

																	BgL_wide1221z00_2347 =
																		((BgL_inlinedz00_bglt)
																		BOBJECT(GC_MALLOC(sizeof(struct
																					BgL_inlinedz00_bgl))));
																	{	/* SawMill/expr.scm 144 */
																		obj_t BgL_auxz00_4908;
																		BgL_objectz00_bglt BgL_tmpz00_4904;

																		BgL_auxz00_4908 =
																			((obj_t) BgL_wide1221z00_2347);
																		BgL_tmpz00_4904 =
																			((BgL_objectz00_bglt)
																			((BgL_rtl_insz00_bglt)
																				((BgL_rtl_insz00_bglt)
																					BgL_treez00_2340)));
																		BGL_OBJECT_WIDENING_SET(BgL_tmpz00_4904,
																			BgL_auxz00_4908);
																	}
																	((BgL_objectz00_bglt)
																		((BgL_rtl_insz00_bglt)
																			((BgL_rtl_insz00_bglt)
																				BgL_treez00_2340)));
																	{	/* SawMill/expr.scm 144 */
																		long BgL_arg1900z00_2348;

																		BgL_arg1900z00_2348 =
																			BGL_CLASS_NUM
																			(BGl_inlinedz00zzsaw_exprz00);
																		BGL_OBJECT_CLASS_NUM_SET((
																				(BgL_objectz00_bglt) (
																					(BgL_rtl_insz00_bglt) (
																						(BgL_rtl_insz00_bglt)
																						BgL_treez00_2340))),
																			BgL_arg1900z00_2348);
																	}
																	((BgL_rtl_insz00_bglt)
																		((BgL_rtl_insz00_bglt)
																			((BgL_rtl_insz00_bglt)
																				BgL_treez00_2340)));
																}
																((obj_t)
																	((BgL_rtl_insz00_bglt)
																		((BgL_rtl_insz00_bglt) BgL_treez00_2340)));
												}}}
											else
												{	/* SawMill/expr.scm 141 */
													BFALSE;
												}
										}
										{	/* SawMill/expr.scm 151 */
											obj_t BgL_arg1908z00_2358;

											BgL_arg1908z00_2358 = CDR(((obj_t) BgL_lz00_2350));
											{
												obj_t BgL_lz00_4927;

												BgL_lz00_4927 = BgL_arg1908z00_2358;
												BgL_lz00_2350 = BgL_lz00_4927;
												goto BgL_zc3z04anonymousza31901ze3z87_2352;
											}
										}
									}
								else
									{	/* SawMill/expr.scm 152 */
										bool_t BgL_test2309z00_4928;

										{	/* SawMill/expr.scm 152 */
											obj_t BgL_arg1917z00_2365;

											BgL_arg1917z00_2365 = CAR(((obj_t) BgL_lz00_2350));
											BgL_test2309z00_4928 =
												CBOOL(BGl_xxz00zzsaw_exprz00(BgL_arg1917z00_2365,
													BgL_insz00_105, BgL_inszd2effectzd2_2323));
										}
										if (BgL_test2309z00_4928)
											{	/* SawMill/expr.scm 154 */
												obj_t BgL_arg1911z00_2361;

												BgL_arg1911z00_2361 = CDR(((obj_t) BgL_lz00_2350));
												{
													obj_t BgL_lz00_4935;

													BgL_lz00_4935 = BgL_arg1911z00_2361;
													BgL_lz00_2350 = BgL_lz00_4935;
													goto BgL_zc3z04anonymousza31901ze3z87_2352;
												}
											}
										else
											{	/* SawMill/expr.scm 155 */
												obj_t BgL_arg1914z00_2362;
												obj_t BgL_arg1915z00_2363;

												BgL_arg1914z00_2362 = CDR(((obj_t) BgL_lz00_2350));
												{	/* SawMill/expr.scm 155 */
													obj_t BgL_arg1916z00_2364;

													BgL_arg1916z00_2364 = CAR(((obj_t) BgL_lz00_2350));
													BgL_arg1915z00_2363 =
														MAKE_YOUNG_PAIR(BgL_arg1916z00_2364, BgL_rz00_2351);
												}
												{
													obj_t BgL_rz00_4942;
													obj_t BgL_lz00_4941;

													BgL_lz00_4941 = BgL_arg1914z00_2362;
													BgL_rz00_4942 = BgL_arg1915z00_2363;
													BgL_rz00_2351 = BgL_rz00_4942;
													BgL_lz00_2350 = BgL_lz00_4941;
													goto BgL_zc3z04anonymousza31901ze3z87_2352;
												}
											}
									}
							}
						BgL_dz00_2328 =
							(((BgL_rtl_insz00_bglt) COBJECT(
									((BgL_rtl_insz00_bglt) BgL_insz00_105)))->BgL_destz00);
						{	/* SawMill/expr.scm 159 */
							bool_t BgL_test2310z00_4945;

							if (CBOOL(BgL_dz00_2328))
								{	/* SawMill/expr.scm 160 */
									bool_t BgL_test2312z00_4948;

									{	/* SawMill/expr.scm 160 */
										obj_t BgL_arg1896z00_2339;

										{
											BgL_iregz00_bglt BgL_auxz00_4949;

											{
												obj_t BgL_auxz00_4950;

												{	/* SawMill/expr.scm 160 */
													BgL_objectz00_bglt BgL_tmpz00_4951;

													BgL_tmpz00_4951 =
														((BgL_objectz00_bglt)
														((BgL_rtl_regz00_bglt) BgL_dz00_2328));
													BgL_auxz00_4950 =
														BGL_OBJECT_WIDENING(BgL_tmpz00_4951);
												}
												BgL_auxz00_4949 = ((BgL_iregz00_bglt) BgL_auxz00_4950);
											}
											BgL_arg1896z00_2339 =
												(((BgL_iregz00_bglt) COBJECT(BgL_auxz00_4949))->
												BgL_statusz00);
										}
										BgL_test2312z00_4948 =
											(BgL_arg1896z00_2339 == CNST_TABLE_REF(18L));
									}
									if (BgL_test2312z00_4948)
										{	/* SawMill/expr.scm 161 */
											bool_t BgL_test2313z00_4959;

											{	/* SawMill/expr.scm 161 */
												BgL_rtl_funz00_bglt BgL_arg1895z00_2338;

												BgL_arg1895z00_2338 =
													(((BgL_rtl_insz00_bglt) COBJECT(
															((BgL_rtl_insz00_bglt) BgL_insz00_105)))->
													BgL_funz00);
												{	/* SawMill/expr.scm 161 */
													obj_t BgL_classz00_3384;

													BgL_classz00_3384 = BGl_rtl_protectz00zzsaw_defsz00;
													{	/* SawMill/expr.scm 161 */
														BgL_objectz00_bglt BgL_arg1801z00_3386;

														{	/* SawMill/expr.scm 161 */
															obj_t BgL_tmpz00_4962;

															BgL_tmpz00_4962 =
																((obj_t)
																((BgL_objectz00_bglt) BgL_arg1895z00_2338));
															BgL_arg1801z00_3386 =
																(BgL_objectz00_bglt) (BgL_tmpz00_4962);
														}
														if (BGL_CONDEXPAND_ISA_ARCH64())
															{	/* SawMill/expr.scm 161 */
																long BgL_idxz00_3392;

																BgL_idxz00_3392 =
																	BGL_OBJECT_INHERITANCE_NUM
																	(BgL_arg1801z00_3386);
																BgL_test2313z00_4959 =
																	(VECTOR_REF
																	(BGl_za2inheritancesza2z00zz__objectz00,
																		(BgL_idxz00_3392 + 2L)) ==
																	BgL_classz00_3384);
															}
														else
															{	/* SawMill/expr.scm 161 */
																bool_t BgL_res2142z00_3414;

																{	/* SawMill/expr.scm 161 */
																	obj_t BgL_oclassz00_3400;

																	{	/* SawMill/expr.scm 161 */
																		long BgL_arg1808z00_3406;

																		{	/* SawMill/expr.scm 161 */
																			long BgL_arg1809z00_3407;

																			BgL_arg1809z00_3407 =
																				BGL_OBJECT_CLASS_NUM
																				(BgL_arg1801z00_3386);
																			BgL_arg1808z00_3406 =
																				(BgL_arg1809z00_3407 - OBJECT_TYPE);
																		}
																		BgL_oclassz00_3400 =
																			VECTOR_REF
																			(BGl_za2classesza2z00zz__objectz00,
																			BgL_arg1808z00_3406);
																	}
																	{	/* SawMill/expr.scm 161 */
																		bool_t BgL__ortest_1115z00_3401;

																		BgL__ortest_1115z00_3401 =
																			(BgL_classz00_3384 == BgL_oclassz00_3400);
																		if (BgL__ortest_1115z00_3401)
																			{	/* SawMill/expr.scm 161 */
																				BgL_res2142z00_3414 =
																					BgL__ortest_1115z00_3401;
																			}
																		else
																			{	/* SawMill/expr.scm 161 */
																				long BgL_odepthz00_3402;

																				BgL_odepthz00_3402 =
																					BGL_CLASS_DEPTH(BgL_oclassz00_3400);
																				if ((2L < BgL_odepthz00_3402))
																					{	/* SawMill/expr.scm 161 */
																						obj_t BgL_arg1797z00_3404;

																						BgL_arg1797z00_3404 =
																							BGL_CLASS_ANCESTORS_REF
																							(BgL_oclassz00_3400, 2L);
																						BgL_res2142z00_3414 =
																							(BgL_arg1797z00_3404 ==
																							BgL_classz00_3384);
																					}
																				else
																					{	/* SawMill/expr.scm 161 */
																						BgL_res2142z00_3414 = ((bool_t) 0);
																					}
																			}
																	}
																}
																BgL_test2313z00_4959 = BgL_res2142z00_3414;
															}
													}
												}
											}
											if (BgL_test2313z00_4959)
												{	/* SawMill/expr.scm 161 */
													BgL_test2310z00_4945 = ((bool_t) 0);
												}
											else
												{	/* SawMill/expr.scm 161 */
													BgL_test2310z00_4945 = ((bool_t) 1);
												}
										}
									else
										{	/* SawMill/expr.scm 160 */
											BgL_test2310z00_4945 = ((bool_t) 0);
										}
								}
							else
								{	/* SawMill/expr.scm 159 */
									BgL_test2310z00_4945 = ((bool_t) 0);
								}
							if (BgL_test2310z00_4945)
								{	/* SawMill/expr.scm 159 */
									return MAKE_YOUNG_PAIR(BgL_insz00_105, BgL_rz00_2327);
								}
							else
								{	/* SawMill/expr.scm 159 */
									return BgL_rz00_2327;
								}
						}
					}
				}
			}
		}

	}



/* xx */
	obj_t BGl_xxz00zzsaw_exprz00(obj_t BgL_moverz00_112, obj_t BgL_insz00_113,
		obj_t BgL_inszd2effectszd2_114)
	{
		{	/* SawMill/expr.scm 177 */
			{	/* SawMill/expr.scm 178 */
				obj_t BgL__ortest_1225z00_2372;

				BgL__ortest_1225z00_2372 =
					BGl_memqz00zz__r4_pairs_and_lists_6_3z00(
					(((BgL_rtl_insz00_bglt) COBJECT(
								((BgL_rtl_insz00_bglt) BgL_insz00_113)))->BgL_destz00),
					(((BgL_rtl_insz00_bglt) COBJECT(
								((BgL_rtl_insz00_bglt) BgL_moverz00_112)))->BgL_argsz00));
				if (CBOOL(BgL__ortest_1225z00_2372))
					{	/* SawMill/expr.scm 178 */
						return BgL__ortest_1225z00_2372;
					}
				else
					{	/* SawMill/expr.scm 179 */
						bool_t BgL__ortest_1226z00_2373;

						{	/* SawMill/expr.scm 179 */
							obj_t BgL_arg1934z00_2398;

							{	/* SawMill/expr.scm 179 */
								BgL_rtl_funz00_bglt BgL_arg1935z00_2399;

								BgL_arg1935z00_2399 =
									(((BgL_rtl_insz00_bglt) COBJECT(
											((BgL_rtl_insz00_bglt) BgL_moverz00_112)))->BgL_funz00);
								BgL_arg1934z00_2398 =
									BGl_effectsz00zzsaw_exprz00(BgL_arg1935z00_2399);
							}
							BgL__ortest_1226z00_2373 =
								BGl_matcheffectz00zzsaw_exprz00(BgL_arg1934z00_2398,
								BgL_inszd2effectszd2_114);
						}
						if (BgL__ortest_1226z00_2373)
							{	/* SawMill/expr.scm 179 */
								return BBOOL(BgL__ortest_1226z00_2373);
							}
						else
							{	/* SawMill/expr.scm 180 */
								obj_t BgL_g1587z00_2374;

								{	/* SawMill/expr.scm 181 */
									obj_t BgL_hook1583z00_2383;

									BgL_hook1583z00_2383 = MAKE_YOUNG_PAIR(BFALSE, BNIL);
									{	/* SawMill/expr.scm 181 */
										obj_t BgL_g1584z00_2384;

										BgL_g1584z00_2384 =
											(((BgL_rtl_insz00_bglt) COBJECT(
													((BgL_rtl_insz00_bglt) BgL_moverz00_112)))->
											BgL_argsz00);
										{
											obj_t BgL_l1580z00_2386;
											obj_t BgL_h1581z00_2387;

											BgL_l1580z00_2386 = BgL_g1584z00_2384;
											BgL_h1581z00_2387 = BgL_hook1583z00_2383;
										BgL_zc3z04anonymousza31925ze3z87_2388:
											if (NULLP(BgL_l1580z00_2386))
												{	/* SawMill/expr.scm 181 */
													BgL_g1587z00_2374 = CDR(BgL_hook1583z00_2383);
												}
											else
												{	/* SawMill/expr.scm 181 */
													bool_t BgL_test2320z00_5002;

													{	/* SawMill/expr.scm 181 */
														obj_t BgL_arg1933z00_2396;

														BgL_arg1933z00_2396 =
															CAR(((obj_t) BgL_l1580z00_2386));
														{	/* SawMill/expr.scm 181 */
															obj_t BgL_classz00_3422;

															BgL_classz00_3422 = BGl_rtl_insz00zzsaw_defsz00;
															if (BGL_OBJECTP(BgL_arg1933z00_2396))
																{	/* SawMill/expr.scm 181 */
																	BgL_objectz00_bglt BgL_arg1801z00_3424;

																	BgL_arg1801z00_3424 =
																		(BgL_objectz00_bglt) (BgL_arg1933z00_2396);
																	if (BGL_CONDEXPAND_ISA_ARCH64())
																		{	/* SawMill/expr.scm 181 */
																			long BgL_idxz00_3430;

																			BgL_idxz00_3430 =
																				BGL_OBJECT_INHERITANCE_NUM
																				(BgL_arg1801z00_3424);
																			BgL_test2320z00_5002 =
																				(VECTOR_REF
																				(BGl_za2inheritancesza2z00zz__objectz00,
																					(BgL_idxz00_3430 + 1L)) ==
																				BgL_classz00_3422);
																		}
																	else
																		{	/* SawMill/expr.scm 181 */
																			bool_t BgL_res2143z00_3452;

																			{	/* SawMill/expr.scm 181 */
																				obj_t BgL_oclassz00_3438;

																				{	/* SawMill/expr.scm 181 */
																					long BgL_arg1808z00_3444;

																					{	/* SawMill/expr.scm 181 */
																						long BgL_arg1809z00_3445;

																						BgL_arg1809z00_3445 =
																							BGL_OBJECT_CLASS_NUM
																							(BgL_arg1801z00_3424);
																						BgL_arg1808z00_3444 =
																							(BgL_arg1809z00_3445 -
																							OBJECT_TYPE);
																					}
																					BgL_oclassz00_3438 =
																						VECTOR_REF
																						(BGl_za2classesza2z00zz__objectz00,
																						BgL_arg1808z00_3444);
																				}
																				{	/* SawMill/expr.scm 181 */
																					bool_t BgL__ortest_1115z00_3439;

																					BgL__ortest_1115z00_3439 =
																						(BgL_classz00_3422 ==
																						BgL_oclassz00_3438);
																					if (BgL__ortest_1115z00_3439)
																						{	/* SawMill/expr.scm 181 */
																							BgL_res2143z00_3452 =
																								BgL__ortest_1115z00_3439;
																						}
																					else
																						{	/* SawMill/expr.scm 181 */
																							long BgL_odepthz00_3440;

																							BgL_odepthz00_3440 =
																								BGL_CLASS_DEPTH
																								(BgL_oclassz00_3438);
																							if ((1L < BgL_odepthz00_3440))
																								{	/* SawMill/expr.scm 181 */
																									obj_t BgL_arg1797z00_3442;

																									BgL_arg1797z00_3442 =
																										BGL_CLASS_ANCESTORS_REF
																										(BgL_oclassz00_3438, 1L);
																									BgL_res2143z00_3452 =
																										(BgL_arg1797z00_3442 ==
																										BgL_classz00_3422);
																								}
																							else
																								{	/* SawMill/expr.scm 181 */
																									BgL_res2143z00_3452 =
																										((bool_t) 0);
																								}
																						}
																				}
																			}
																			BgL_test2320z00_5002 =
																				BgL_res2143z00_3452;
																		}
																}
															else
																{	/* SawMill/expr.scm 181 */
																	BgL_test2320z00_5002 = ((bool_t) 0);
																}
														}
													}
													if (BgL_test2320z00_5002)
														{	/* SawMill/expr.scm 181 */
															obj_t BgL_nh1582z00_2392;

															{	/* SawMill/expr.scm 181 */
																obj_t BgL_arg1930z00_2394;

																BgL_arg1930z00_2394 =
																	CAR(((obj_t) BgL_l1580z00_2386));
																BgL_nh1582z00_2392 =
																	MAKE_YOUNG_PAIR(BgL_arg1930z00_2394, BNIL);
															}
															SET_CDR(BgL_h1581z00_2387, BgL_nh1582z00_2392);
															{	/* SawMill/expr.scm 181 */
																obj_t BgL_arg1929z00_2393;

																BgL_arg1929z00_2393 =
																	CDR(((obj_t) BgL_l1580z00_2386));
																{
																	obj_t BgL_h1581z00_5031;
																	obj_t BgL_l1580z00_5030;

																	BgL_l1580z00_5030 = BgL_arg1929z00_2393;
																	BgL_h1581z00_5031 = BgL_nh1582z00_2392;
																	BgL_h1581z00_2387 = BgL_h1581z00_5031;
																	BgL_l1580z00_2386 = BgL_l1580z00_5030;
																	goto BgL_zc3z04anonymousza31925ze3z87_2388;
																}
															}
														}
													else
														{	/* SawMill/expr.scm 181 */
															obj_t BgL_arg1931z00_2395;

															BgL_arg1931z00_2395 =
																CDR(((obj_t) BgL_l1580z00_2386));
															{
																obj_t BgL_l1580z00_5034;

																BgL_l1580z00_5034 = BgL_arg1931z00_2395;
																BgL_l1580z00_2386 = BgL_l1580z00_5034;
																goto BgL_zc3z04anonymousza31925ze3z87_2388;
															}
														}
												}
										}
									}
								}
								{
									obj_t BgL_l1585z00_2376;

									BgL_l1585z00_2376 = BgL_g1587z00_2374;
								BgL_zc3z04anonymousza31922ze3z87_2377:
									if (NULLP(BgL_l1585z00_2376))
										{	/* SawMill/expr.scm 181 */
											return BFALSE;
										}
									else
										{	/* SawMill/expr.scm 180 */
											obj_t BgL__ortest_1588z00_2379;

											{	/* SawMill/expr.scm 180 */
												obj_t BgL_subz00_2381;

												BgL_subz00_2381 = CAR(((obj_t) BgL_l1585z00_2376));
												BgL__ortest_1588z00_2379 =
													BGl_xxz00zzsaw_exprz00(BgL_subz00_2381,
													BgL_insz00_113, BgL_inszd2effectszd2_114);
											}
											if (CBOOL(BgL__ortest_1588z00_2379))
												{	/* SawMill/expr.scm 181 */
													return BgL__ortest_1588z00_2379;
												}
											else
												{	/* SawMill/expr.scm 181 */
													obj_t BgL_arg1924z00_2380;

													BgL_arg1924z00_2380 =
														CDR(((obj_t) BgL_l1585z00_2376));
													{
														obj_t BgL_l1585z00_5044;

														BgL_l1585z00_5044 = BgL_arg1924z00_2380;
														BgL_l1585z00_2376 = BgL_l1585z00_5044;
														goto BgL_zc3z04anonymousza31922ze3z87_2377;
													}
												}
										}
								}
							}
					}
			}
		}

	}



/* matcheffect */
	bool_t BGl_matcheffectz00zzsaw_exprz00(obj_t BgL_f1z00_115,
		obj_t BgL_f2z00_116)
	{
		{	/* SawMill/expr.scm 199 */
			{	/* SawMill/expr.scm 210 */
				obj_t BgL_w1z00_2404;
				obj_t BgL_w2z00_2405;

				BgL_w1z00_2404 =
					(((BgL_feffectz00_bglt) COBJECT(
							((BgL_feffectz00_bglt) BgL_f1z00_115)))->BgL_writez00);
				BgL_w2z00_2405 =
					(((BgL_feffectz00_bglt) COBJECT(
							((BgL_feffectz00_bglt) BgL_f2z00_116)))->BgL_writez00);
				{	/* SawMill/expr.scm 211 */
					bool_t BgL__ortest_1227z00_2406;

					BgL__ortest_1227z00_2406 =
						BGl_intersectionzf3ze70z14zzsaw_exprz00(BgL_w1z00_2404,
						BgL_w2z00_2405);
					if (BgL__ortest_1227z00_2406)
						{	/* SawMill/expr.scm 211 */
							return BgL__ortest_1227z00_2406;
						}
					else
						{	/* SawMill/expr.scm 212 */
							bool_t BgL__ortest_1228z00_2407;

							BgL__ortest_1228z00_2407 =
								BGl_intersectionzf3ze70z14zzsaw_exprz00(
								(((BgL_feffectz00_bglt) COBJECT(
											((BgL_feffectz00_bglt) BgL_f1z00_115)))->BgL_readz00),
								BgL_w2z00_2405);
							if (BgL__ortest_1228z00_2407)
								{	/* SawMill/expr.scm 212 */
									return BgL__ortest_1228z00_2407;
								}
							else
								{	/* SawMill/expr.scm 212 */
									BGL_TAIL return
										BGl_intersectionzf3ze70z14zzsaw_exprz00(
										(((BgL_feffectz00_bglt) COBJECT(
													((BgL_feffectz00_bglt) BgL_f2z00_116)))->BgL_readz00),
										BgL_w1z00_2404);
								}
						}
				}
			}
		}

	}



/* intersection?~0 */
	bool_t BGl_intersectionzf3ze70z14zzsaw_exprz00(obj_t BgL_l1z00_2418,
		obj_t BgL_l2z00_2419)
	{
		{	/* SawMill/expr.scm 209 */
			{
				obj_t BgL_l1z00_2410;
				obj_t BgL_l2z00_2411;

				if (NULLP(BgL_l1z00_2418))
					{	/* SawMill/expr.scm 205 */
						return ((bool_t) 0);
					}
				else
					{	/* SawMill/expr.scm 205 */
						if (NULLP(BgL_l2z00_2419))
							{	/* SawMill/expr.scm 206 */
								return ((bool_t) 0);
							}
						else
							{	/* SawMill/expr.scm 206 */
								if ((BgL_l1z00_2418 == CNST_TABLE_REF(4L)))
									{	/* SawMill/expr.scm 207 */
										return ((bool_t) 1);
									}
								else
									{	/* SawMill/expr.scm 207 */
										if ((BgL_l2z00_2419 == CNST_TABLE_REF(4L)))
											{	/* SawMill/expr.scm 208 */
												return ((bool_t) 1);
											}
										else
											{	/* SawMill/expr.scm 208 */
												BgL_l1z00_2410 = BgL_l1z00_2418;
												BgL_l2z00_2411 = BgL_l2z00_2419;
											BgL_zc3z04anonymousza31940ze3z87_2412:
												if (NULLP(BgL_l1z00_2410))
													{	/* SawMill/expr.scm 201 */
														return ((bool_t) 0);
													}
												else
													{	/* SawMill/expr.scm 201 */
														if (CBOOL(BGl_memqz00zz__r4_pairs_and_lists_6_3z00
																(CAR(((obj_t) BgL_l1z00_2410)),
																	BgL_l2z00_2411)))
															{	/* SawMill/expr.scm 202 */
																return ((bool_t) 1);
															}
														else
															{
																obj_t BgL_l1z00_5075;

																BgL_l1z00_5075 = CDR(((obj_t) BgL_l1z00_2410));
																BgL_l1z00_2410 = BgL_l1z00_5075;
																goto BgL_zc3z04anonymousza31940ze3z87_2412;
															}
													}
											}
									}
							}
					}
			}
		}

	}



/* manu-effect */
	obj_t BGl_manuzd2effectzd2zzsaw_exprz00(BgL_globalz00_bglt BgL_varz00_133)
	{
		{	/* SawMill/expr.scm 252 */
			{	/* SawMill/expr.scm 253 */
				BgL_valuez00_bglt BgL_funz00_2427;

				BgL_funz00_2427 =
					(((BgL_variablez00_bglt) COBJECT(
							((BgL_variablez00_bglt) BgL_varz00_133)))->BgL_valuez00);
				{	/* SawMill/expr.scm 254 */
					bool_t BgL_test2335z00_5080;

					{	/* SawMill/expr.scm 254 */
						obj_t BgL_classz00_3471;

						BgL_classz00_3471 = BGl_funz00zzast_varz00;
						{	/* SawMill/expr.scm 254 */
							BgL_objectz00_bglt BgL_arg1801z00_3473;

							{	/* SawMill/expr.scm 254 */
								obj_t BgL_tmpz00_5081;

								BgL_tmpz00_5081 =
									((obj_t) ((BgL_objectz00_bglt) BgL_funz00_2427));
								BgL_arg1801z00_3473 = (BgL_objectz00_bglt) (BgL_tmpz00_5081);
							}
							if (BGL_CONDEXPAND_ISA_ARCH64())
								{	/* SawMill/expr.scm 254 */
									long BgL_idxz00_3479;

									BgL_idxz00_3479 =
										BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_3473);
									BgL_test2335z00_5080 =
										(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
											(BgL_idxz00_3479 + 2L)) == BgL_classz00_3471);
								}
							else
								{	/* SawMill/expr.scm 254 */
									bool_t BgL_res2144z00_3501;

									{	/* SawMill/expr.scm 254 */
										obj_t BgL_oclassz00_3487;

										{	/* SawMill/expr.scm 254 */
											long BgL_arg1808z00_3493;

											{	/* SawMill/expr.scm 254 */
												long BgL_arg1809z00_3494;

												BgL_arg1809z00_3494 =
													BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_3473);
												BgL_arg1808z00_3493 =
													(BgL_arg1809z00_3494 - OBJECT_TYPE);
											}
											BgL_oclassz00_3487 =
												VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
												BgL_arg1808z00_3493);
										}
										{	/* SawMill/expr.scm 254 */
											bool_t BgL__ortest_1115z00_3488;

											BgL__ortest_1115z00_3488 =
												(BgL_classz00_3471 == BgL_oclassz00_3487);
											if (BgL__ortest_1115z00_3488)
												{	/* SawMill/expr.scm 254 */
													BgL_res2144z00_3501 = BgL__ortest_1115z00_3488;
												}
											else
												{	/* SawMill/expr.scm 254 */
													long BgL_odepthz00_3489;

													BgL_odepthz00_3489 =
														BGL_CLASS_DEPTH(BgL_oclassz00_3487);
													if ((2L < BgL_odepthz00_3489))
														{	/* SawMill/expr.scm 254 */
															obj_t BgL_arg1797z00_3491;

															BgL_arg1797z00_3491 =
																BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_3487, 2L);
															BgL_res2144z00_3501 =
																(BgL_arg1797z00_3491 == BgL_classz00_3471);
														}
													else
														{	/* SawMill/expr.scm 254 */
															BgL_res2144z00_3501 = ((bool_t) 0);
														}
												}
										}
									}
									BgL_test2335z00_5080 = BgL_res2144z00_3501;
								}
						}
					}
					if (BgL_test2335z00_5080)
						{	/* SawMill/expr.scm 255 */
							obj_t BgL_effectz00_2429;

							BgL_effectz00_2429 =
								(((BgL_funz00_bglt) COBJECT(
										((BgL_funz00_bglt) BgL_funz00_2427)))->BgL_effectz00);
							{	/* SawMill/expr.scm 256 */
								bool_t BgL_test2339z00_5103;

								{	/* SawMill/expr.scm 256 */
									obj_t BgL_classz00_3503;

									BgL_classz00_3503 = BGl_feffectz00zzast_varz00;
									if (BGL_OBJECTP(BgL_effectz00_2429))
										{	/* SawMill/expr.scm 256 */
											BgL_objectz00_bglt BgL_arg1801z00_3505;

											BgL_arg1801z00_3505 =
												(BgL_objectz00_bglt) (BgL_effectz00_2429);
											if (BGL_CONDEXPAND_ISA_ARCH64())
												{	/* SawMill/expr.scm 256 */
													long BgL_idxz00_3511;

													BgL_idxz00_3511 =
														BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_3505);
													BgL_test2339z00_5103 =
														(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
															(BgL_idxz00_3511 + 1L)) == BgL_classz00_3503);
												}
											else
												{	/* SawMill/expr.scm 256 */
													bool_t BgL_res2145z00_3533;

													{	/* SawMill/expr.scm 256 */
														obj_t BgL_oclassz00_3519;

														{	/* SawMill/expr.scm 256 */
															long BgL_arg1808z00_3525;

															{	/* SawMill/expr.scm 256 */
																long BgL_arg1809z00_3526;

																BgL_arg1809z00_3526 =
																	BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_3505);
																BgL_arg1808z00_3525 =
																	(BgL_arg1809z00_3526 - OBJECT_TYPE);
															}
															BgL_oclassz00_3519 =
																VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
																BgL_arg1808z00_3525);
														}
														{	/* SawMill/expr.scm 256 */
															bool_t BgL__ortest_1115z00_3520;

															BgL__ortest_1115z00_3520 =
																(BgL_classz00_3503 == BgL_oclassz00_3519);
															if (BgL__ortest_1115z00_3520)
																{	/* SawMill/expr.scm 256 */
																	BgL_res2145z00_3533 =
																		BgL__ortest_1115z00_3520;
																}
															else
																{	/* SawMill/expr.scm 256 */
																	long BgL_odepthz00_3521;

																	BgL_odepthz00_3521 =
																		BGL_CLASS_DEPTH(BgL_oclassz00_3519);
																	if ((1L < BgL_odepthz00_3521))
																		{	/* SawMill/expr.scm 256 */
																			obj_t BgL_arg1797z00_3523;

																			BgL_arg1797z00_3523 =
																				BGL_CLASS_ANCESTORS_REF
																				(BgL_oclassz00_3519, 1L);
																			BgL_res2145z00_3533 =
																				(BgL_arg1797z00_3523 ==
																				BgL_classz00_3503);
																		}
																	else
																		{	/* SawMill/expr.scm 256 */
																			BgL_res2145z00_3533 = ((bool_t) 0);
																		}
																}
														}
													}
													BgL_test2339z00_5103 = BgL_res2145z00_3533;
												}
										}
									else
										{	/* SawMill/expr.scm 256 */
											BgL_test2339z00_5103 = ((bool_t) 0);
										}
								}
								if (BgL_test2339z00_5103)
									{	/* SawMill/expr.scm 256 */
										return BgL_effectz00_2429;
									}
								else
									{	/* SawMill/expr.scm 256 */
										CNST_TABLE_REF(20L);
										return ((obj_t) BGl_za2fullza2z00zzsaw_exprz00);
									}
							}
						}
					else
						{	/* SawMill/expr.scm 254 */
							return ((obj_t) BGl_za2fullza2z00zzsaw_exprz00);
						}
				}
			}
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zzsaw_exprz00(void)
	{
		{	/* SawMill/expr.scm 1 */
			{	/* SawMill/expr.scm 12 */
				obj_t BgL_arg1957z00_2435;
				obj_t BgL_arg1958z00_2436;

				{	/* SawMill/expr.scm 12 */
					obj_t BgL_v1590z00_2466;

					BgL_v1590z00_2466 = create_vector(2L);
					{	/* SawMill/expr.scm 12 */
						obj_t BgL_arg1969z00_2467;

						BgL_arg1969z00_2467 =
							BGl_makezd2classzd2fieldz00zz__objectz00(CNST_TABLE_REF(21L),
							BGl_proc2163z00zzsaw_exprz00, BGl_proc2162z00zzsaw_exprz00,
							((bool_t) 0), ((bool_t) 0), BFALSE, BFALSE, CNST_TABLE_REF(22L));
						VECTOR_SET(BgL_v1590z00_2466, 0L, BgL_arg1969z00_2467);
					}
					{	/* SawMill/expr.scm 12 */
						obj_t BgL_arg1974z00_2477;

						BgL_arg1974z00_2477 =
							BGl_makezd2classzd2fieldz00zz__objectz00(CNST_TABLE_REF(23L),
							BGl_proc2165z00zzsaw_exprz00, BGl_proc2164z00zzsaw_exprz00,
							((bool_t) 0), ((bool_t) 0), BFALSE, BFALSE, CNST_TABLE_REF(22L));
						VECTOR_SET(BgL_v1590z00_2466, 1L, BgL_arg1974z00_2477);
					}
					BgL_arg1957z00_2435 = BgL_v1590z00_2466;
				}
				{	/* SawMill/expr.scm 12 */
					obj_t BgL_v1591z00_2487;

					BgL_v1591z00_2487 = create_vector(0L);
					BgL_arg1958z00_2436 = BgL_v1591z00_2487;
				}
				BGl_iregz00zzsaw_exprz00 =
					BGl_registerzd2classz12zc0zz__objectz00(CNST_TABLE_REF(24L),
					CNST_TABLE_REF(25L), BGl_rtl_regz00zzsaw_defsz00, 43135L,
					BGl_proc2169z00zzsaw_exprz00, BGl_proc2168z00zzsaw_exprz00, BFALSE,
					BGl_proc2167z00zzsaw_exprz00, BGl_proc2166z00zzsaw_exprz00,
					BgL_arg1957z00_2435, BgL_arg1958z00_2436);
			}
			{	/* SawMill/expr.scm 13 */
				obj_t BgL_arg1983z00_2496;
				obj_t BgL_arg1984z00_2497;

				{	/* SawMill/expr.scm 13 */
					obj_t BgL_v1592z00_2527;

					BgL_v1592z00_2527 = create_vector(2L);
					{	/* SawMill/expr.scm 13 */
						obj_t BgL_arg1995z00_2528;

						BgL_arg1995z00_2528 =
							BGl_makezd2classzd2fieldz00zz__objectz00(CNST_TABLE_REF(21L),
							BGl_proc2171z00zzsaw_exprz00, BGl_proc2170z00zzsaw_exprz00,
							((bool_t) 0), ((bool_t) 0), BFALSE, BFALSE, CNST_TABLE_REF(22L));
						VECTOR_SET(BgL_v1592z00_2527, 0L, BgL_arg1995z00_2528);
					}
					{	/* SawMill/expr.scm 13 */
						obj_t BgL_arg2000z00_2538;

						BgL_arg2000z00_2538 =
							BGl_makezd2classzd2fieldz00zz__objectz00(CNST_TABLE_REF(23L),
							BGl_proc2173z00zzsaw_exprz00, BGl_proc2172z00zzsaw_exprz00,
							((bool_t) 0), ((bool_t) 0), BFALSE, BFALSE, CNST_TABLE_REF(22L));
						VECTOR_SET(BgL_v1592z00_2527, 1L, BgL_arg2000z00_2538);
					}
					BgL_arg1983z00_2496 = BgL_v1592z00_2527;
				}
				{	/* SawMill/expr.scm 13 */
					obj_t BgL_v1593z00_2548;

					BgL_v1593z00_2548 = create_vector(0L);
					BgL_arg1984z00_2497 = BgL_v1593z00_2548;
				}
				BGl_pregz00zzsaw_exprz00 =
					BGl_registerzd2classz12zc0zz__objectz00(CNST_TABLE_REF(26L),
					CNST_TABLE_REF(25L), BGl_rtl_regz00zzsaw_defsz00, 27384L,
					BGl_proc2177z00zzsaw_exprz00, BGl_proc2176z00zzsaw_exprz00, BFALSE,
					BGl_proc2175z00zzsaw_exprz00, BGl_proc2174z00zzsaw_exprz00,
					BgL_arg1983z00_2496, BgL_arg1984z00_2497);
			}
			{	/* SawMill/expr.scm 14 */
				obj_t BgL_arg2010z00_2557;
				obj_t BgL_arg2011z00_2558;

				{	/* SawMill/expr.scm 14 */
					obj_t BgL_v1594z00_2584;

					BgL_v1594z00_2584 = create_vector(0L);
					BgL_arg2010z00_2557 = BgL_v1594z00_2584;
				}
				{	/* SawMill/expr.scm 14 */
					obj_t BgL_v1595z00_2585;

					BgL_v1595z00_2585 = create_vector(0L);
					BgL_arg2011z00_2558 = BgL_v1595z00_2585;
				}
				return (BGl_inlinedz00zzsaw_exprz00 =
					BGl_registerzd2classz12zc0zz__objectz00(CNST_TABLE_REF(27L),
						CNST_TABLE_REF(25L), BGl_rtl_insz00zzsaw_defsz00, 5795L,
						BGl_proc2181z00zzsaw_exprz00, BGl_proc2180z00zzsaw_exprz00, BFALSE,
						BGl_proc2179z00zzsaw_exprz00, BGl_proc2178z00zzsaw_exprz00,
						BgL_arg2010z00_2557, BgL_arg2011z00_2558), BUNSPEC);
			}
		}

	}



/* &lambda2018 */
	BgL_rtl_insz00_bglt BGl_z62lambda2018z62zzsaw_exprz00(obj_t BgL_envz00_3885,
		obj_t BgL_o1189z00_3886)
	{
		{	/* SawMill/expr.scm 14 */
			{	/* SawMill/expr.scm 14 */
				long BgL_arg2019z00_4062;

				{	/* SawMill/expr.scm 14 */
					obj_t BgL_arg2020z00_4063;

					{	/* SawMill/expr.scm 14 */
						obj_t BgL_arg2021z00_4064;

						{	/* SawMill/expr.scm 14 */
							long BgL_arg1808z00_4065;

							{	/* SawMill/expr.scm 14 */
								long BgL_arg1809z00_4066;

								BgL_arg1809z00_4066 =
									BGL_OBJECT_CLASS_NUM(
									((BgL_objectz00_bglt)
										((BgL_rtl_insz00_bglt) BgL_o1189z00_3886)));
								BgL_arg1808z00_4065 = (BgL_arg1809z00_4066 - OBJECT_TYPE);
							}
							BgL_arg2021z00_4064 =
								VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
								BgL_arg1808z00_4065);
						}
						BgL_arg2020z00_4063 =
							BGl_classzd2superzd2zz__objectz00(BgL_arg2021z00_4064);
					}
					{	/* SawMill/expr.scm 14 */
						obj_t BgL_tmpz00_5163;

						BgL_tmpz00_5163 = ((obj_t) BgL_arg2020z00_4063);
						BgL_arg2019z00_4062 = BGL_CLASS_NUM(BgL_tmpz00_5163);
				}}
				BGL_OBJECT_CLASS_NUM_SET(
					((BgL_objectz00_bglt)
						((BgL_rtl_insz00_bglt) BgL_o1189z00_3886)), BgL_arg2019z00_4062);
			}
			{	/* SawMill/expr.scm 14 */
				BgL_objectz00_bglt BgL_tmpz00_5169;

				BgL_tmpz00_5169 =
					((BgL_objectz00_bglt) ((BgL_rtl_insz00_bglt) BgL_o1189z00_3886));
				BGL_OBJECT_WIDENING_SET(BgL_tmpz00_5169, BFALSE);
			}
			((BgL_objectz00_bglt) ((BgL_rtl_insz00_bglt) BgL_o1189z00_3886));
			return ((BgL_rtl_insz00_bglt) ((BgL_rtl_insz00_bglt) BgL_o1189z00_3886));
		}

	}



/* &<@anonymous:2017> */
	obj_t BGl_z62zc3z04anonymousza32017ze3ze5zzsaw_exprz00(obj_t BgL_envz00_3887,
		obj_t BgL_new1188z00_3888)
	{
		{	/* SawMill/expr.scm 14 */
			{
				BgL_rtl_insz00_bglt BgL_auxz00_5177;

				((((BgL_rtl_insz00_bglt) COBJECT(
								((BgL_rtl_insz00_bglt)
									((BgL_rtl_insz00_bglt) BgL_new1188z00_3888))))->BgL_locz00) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_rtl_insz00_bglt)
							COBJECT(((BgL_rtl_insz00_bglt) ((BgL_rtl_insz00_bglt)
										BgL_new1188z00_3888))))->BgL_z52spillz52) =
					((obj_t) BNIL), BUNSPEC);
				((((BgL_rtl_insz00_bglt)
							COBJECT(((BgL_rtl_insz00_bglt) ((BgL_rtl_insz00_bglt)
										BgL_new1188z00_3888))))->BgL_destz00) =
					((obj_t) BUNSPEC), BUNSPEC);
				{
					BgL_rtl_funz00_bglt BgL_auxz00_5187;

					{	/* SawMill/expr.scm 14 */
						obj_t BgL_classz00_4068;

						BgL_classz00_4068 = BGl_rtl_funz00zzsaw_defsz00;
						{	/* SawMill/expr.scm 14 */
							obj_t BgL__ortest_1117z00_4069;

							BgL__ortest_1117z00_4069 = BGL_CLASS_NIL(BgL_classz00_4068);
							if (CBOOL(BgL__ortest_1117z00_4069))
								{	/* SawMill/expr.scm 14 */
									BgL_auxz00_5187 =
										((BgL_rtl_funz00_bglt) BgL__ortest_1117z00_4069);
								}
							else
								{	/* SawMill/expr.scm 14 */
									BgL_auxz00_5187 =
										((BgL_rtl_funz00_bglt)
										BGl_classzd2nilzd2initz12z12zz__objectz00
										(BgL_classz00_4068));
								}
						}
					}
					((((BgL_rtl_insz00_bglt) COBJECT(
									((BgL_rtl_insz00_bglt)
										((BgL_rtl_insz00_bglt) BgL_new1188z00_3888))))->
							BgL_funz00) = ((BgL_rtl_funz00_bglt) BgL_auxz00_5187), BUNSPEC);
				}
				((((BgL_rtl_insz00_bglt) COBJECT(
								((BgL_rtl_insz00_bglt)
									((BgL_rtl_insz00_bglt) BgL_new1188z00_3888))))->BgL_argsz00) =
					((obj_t) BNIL), BUNSPEC);
				BgL_auxz00_5177 = ((BgL_rtl_insz00_bglt) BgL_new1188z00_3888);
				return ((obj_t) BgL_auxz00_5177);
			}
		}

	}



/* &lambda2015 */
	BgL_rtl_insz00_bglt BGl_z62lambda2015z62zzsaw_exprz00(obj_t BgL_envz00_3889,
		obj_t BgL_o1185z00_3890)
	{
		{	/* SawMill/expr.scm 14 */
			{	/* SawMill/expr.scm 14 */
				BgL_inlinedz00_bglt BgL_wide1187z00_4071;

				BgL_wide1187z00_4071 =
					((BgL_inlinedz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
								BgL_inlinedz00_bgl))));
				{	/* SawMill/expr.scm 14 */
					obj_t BgL_auxz00_5207;
					BgL_objectz00_bglt BgL_tmpz00_5203;

					BgL_auxz00_5207 = ((obj_t) BgL_wide1187z00_4071);
					BgL_tmpz00_5203 =
						((BgL_objectz00_bglt)
						((BgL_rtl_insz00_bglt) ((BgL_rtl_insz00_bglt) BgL_o1185z00_3890)));
					BGL_OBJECT_WIDENING_SET(BgL_tmpz00_5203, BgL_auxz00_5207);
				}
				((BgL_objectz00_bglt)
					((BgL_rtl_insz00_bglt) ((BgL_rtl_insz00_bglt) BgL_o1185z00_3890)));
				{	/* SawMill/expr.scm 14 */
					long BgL_arg2016z00_4072;

					BgL_arg2016z00_4072 = BGL_CLASS_NUM(BGl_inlinedz00zzsaw_exprz00);
					BGL_OBJECT_CLASS_NUM_SET(
						((BgL_objectz00_bglt)
							((BgL_rtl_insz00_bglt)
								((BgL_rtl_insz00_bglt) BgL_o1185z00_3890))),
						BgL_arg2016z00_4072);
				}
				return
					((BgL_rtl_insz00_bglt)
					((BgL_rtl_insz00_bglt) ((BgL_rtl_insz00_bglt) BgL_o1185z00_3890)));
			}
		}

	}



/* &lambda2012 */
	BgL_rtl_insz00_bglt BGl_z62lambda2012z62zzsaw_exprz00(obj_t BgL_envz00_3891,
		obj_t BgL_loc1180z00_3892, obj_t BgL_z52spill1181z52_3893,
		obj_t BgL_dest1182z00_3894, obj_t BgL_fun1183z00_3895,
		obj_t BgL_args1184z00_3896)
	{
		{	/* SawMill/expr.scm 14 */
			{	/* SawMill/expr.scm 14 */
				BgL_rtl_insz00_bglt BgL_new1288z00_4076;

				{	/* SawMill/expr.scm 14 */
					BgL_rtl_insz00_bglt BgL_tmp1286z00_4077;
					BgL_inlinedz00_bglt BgL_wide1287z00_4078;

					{
						BgL_rtl_insz00_bglt BgL_auxz00_5221;

						{	/* SawMill/expr.scm 14 */
							BgL_rtl_insz00_bglt BgL_new1285z00_4079;

							BgL_new1285z00_4079 =
								((BgL_rtl_insz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
											BgL_rtl_insz00_bgl))));
							{	/* SawMill/expr.scm 14 */
								long BgL_arg2014z00_4080;

								BgL_arg2014z00_4080 =
									BGL_CLASS_NUM(BGl_rtl_insz00zzsaw_defsz00);
								BGL_OBJECT_CLASS_NUM_SET(
									((BgL_objectz00_bglt) BgL_new1285z00_4079),
									BgL_arg2014z00_4080);
							}
							{	/* SawMill/expr.scm 14 */
								BgL_objectz00_bglt BgL_tmpz00_5226;

								BgL_tmpz00_5226 = ((BgL_objectz00_bglt) BgL_new1285z00_4079);
								BGL_OBJECT_WIDENING_SET(BgL_tmpz00_5226, BFALSE);
							}
							((BgL_objectz00_bglt) BgL_new1285z00_4079);
							BgL_auxz00_5221 = BgL_new1285z00_4079;
						}
						BgL_tmp1286z00_4077 = ((BgL_rtl_insz00_bglt) BgL_auxz00_5221);
					}
					BgL_wide1287z00_4078 =
						((BgL_inlinedz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
									BgL_inlinedz00_bgl))));
					{	/* SawMill/expr.scm 14 */
						obj_t BgL_auxz00_5234;
						BgL_objectz00_bglt BgL_tmpz00_5232;

						BgL_auxz00_5234 = ((obj_t) BgL_wide1287z00_4078);
						BgL_tmpz00_5232 = ((BgL_objectz00_bglt) BgL_tmp1286z00_4077);
						BGL_OBJECT_WIDENING_SET(BgL_tmpz00_5232, BgL_auxz00_5234);
					}
					((BgL_objectz00_bglt) BgL_tmp1286z00_4077);
					{	/* SawMill/expr.scm 14 */
						long BgL_arg2013z00_4081;

						BgL_arg2013z00_4081 = BGL_CLASS_NUM(BGl_inlinedz00zzsaw_exprz00);
						BGL_OBJECT_CLASS_NUM_SET(
							((BgL_objectz00_bglt) BgL_tmp1286z00_4077), BgL_arg2013z00_4081);
					}
					BgL_new1288z00_4076 = ((BgL_rtl_insz00_bglt) BgL_tmp1286z00_4077);
				}
				((((BgL_rtl_insz00_bglt) COBJECT(
								((BgL_rtl_insz00_bglt) BgL_new1288z00_4076)))->BgL_locz00) =
					((obj_t) BgL_loc1180z00_3892), BUNSPEC);
				((((BgL_rtl_insz00_bglt) COBJECT(((BgL_rtl_insz00_bglt)
									BgL_new1288z00_4076)))->BgL_z52spillz52) =
					((obj_t) ((obj_t) BgL_z52spill1181z52_3893)), BUNSPEC);
				((((BgL_rtl_insz00_bglt) COBJECT(((BgL_rtl_insz00_bglt)
									BgL_new1288z00_4076)))->BgL_destz00) =
					((obj_t) BgL_dest1182z00_3894), BUNSPEC);
				((((BgL_rtl_insz00_bglt) COBJECT(((BgL_rtl_insz00_bglt)
									BgL_new1288z00_4076)))->BgL_funz00) =
					((BgL_rtl_funz00_bglt) ((BgL_rtl_funz00_bglt) BgL_fun1183z00_3895)),
					BUNSPEC);
				((((BgL_rtl_insz00_bglt) COBJECT(((BgL_rtl_insz00_bglt)
									BgL_new1288z00_4076)))->BgL_argsz00) =
					((obj_t) ((obj_t) BgL_args1184z00_3896)), BUNSPEC);
				return BgL_new1288z00_4076;
			}
		}

	}



/* &lambda1991 */
	BgL_rtl_regz00_bglt BGl_z62lambda1991z62zzsaw_exprz00(obj_t BgL_envz00_3897,
		obj_t BgL_o1178z00_3898)
	{
		{	/* SawMill/expr.scm 13 */
			{	/* SawMill/expr.scm 13 */
				long BgL_arg1992z00_4083;

				{	/* SawMill/expr.scm 13 */
					obj_t BgL_arg1993z00_4084;

					{	/* SawMill/expr.scm 13 */
						obj_t BgL_arg1994z00_4085;

						{	/* SawMill/expr.scm 13 */
							long BgL_arg1808z00_4086;

							{	/* SawMill/expr.scm 13 */
								long BgL_arg1809z00_4087;

								BgL_arg1809z00_4087 =
									BGL_OBJECT_CLASS_NUM(
									((BgL_objectz00_bglt)
										((BgL_rtl_regz00_bglt) BgL_o1178z00_3898)));
								BgL_arg1808z00_4086 = (BgL_arg1809z00_4087 - OBJECT_TYPE);
							}
							BgL_arg1994z00_4085 =
								VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
								BgL_arg1808z00_4086);
						}
						BgL_arg1993z00_4084 =
							BGl_classzd2superzd2zz__objectz00(BgL_arg1994z00_4085);
					}
					{	/* SawMill/expr.scm 13 */
						obj_t BgL_tmpz00_5261;

						BgL_tmpz00_5261 = ((obj_t) BgL_arg1993z00_4084);
						BgL_arg1992z00_4083 = BGL_CLASS_NUM(BgL_tmpz00_5261);
				}}
				BGL_OBJECT_CLASS_NUM_SET(
					((BgL_objectz00_bglt)
						((BgL_rtl_regz00_bglt) BgL_o1178z00_3898)), BgL_arg1992z00_4083);
			}
			{	/* SawMill/expr.scm 13 */
				BgL_objectz00_bglt BgL_tmpz00_5267;

				BgL_tmpz00_5267 =
					((BgL_objectz00_bglt) ((BgL_rtl_regz00_bglt) BgL_o1178z00_3898));
				BGL_OBJECT_WIDENING_SET(BgL_tmpz00_5267, BFALSE);
			}
			((BgL_objectz00_bglt) ((BgL_rtl_regz00_bglt) BgL_o1178z00_3898));
			return ((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt) BgL_o1178z00_3898));
		}

	}



/* &<@anonymous:1990> */
	obj_t BGl_z62zc3z04anonymousza31990ze3ze5zzsaw_exprz00(obj_t BgL_envz00_3899,
		obj_t BgL_new1177z00_3900)
	{
		{	/* SawMill/expr.scm 13 */
			{
				BgL_rtl_regz00_bglt BgL_auxz00_5275;

				{
					BgL_typez00_bglt BgL_auxz00_5276;

					{	/* SawMill/expr.scm 13 */
						obj_t BgL_classz00_4089;

						BgL_classz00_4089 = BGl_typez00zztype_typez00;
						{	/* SawMill/expr.scm 13 */
							obj_t BgL__ortest_1117z00_4090;

							BgL__ortest_1117z00_4090 = BGL_CLASS_NIL(BgL_classz00_4089);
							if (CBOOL(BgL__ortest_1117z00_4090))
								{	/* SawMill/expr.scm 13 */
									BgL_auxz00_5276 =
										((BgL_typez00_bglt) BgL__ortest_1117z00_4090);
								}
							else
								{	/* SawMill/expr.scm 13 */
									BgL_auxz00_5276 =
										((BgL_typez00_bglt)
										BGl_classzd2nilzd2initz12z12zz__objectz00
										(BgL_classz00_4089));
								}
						}
					}
					((((BgL_rtl_regz00_bglt) COBJECT(
									((BgL_rtl_regz00_bglt)
										((BgL_rtl_regz00_bglt) BgL_new1177z00_3900))))->
							BgL_typez00) = ((BgL_typez00_bglt) BgL_auxz00_5276), BUNSPEC);
				}
				((((BgL_rtl_regz00_bglt) COBJECT(
								((BgL_rtl_regz00_bglt)
									((BgL_rtl_regz00_bglt) BgL_new1177z00_3900))))->BgL_varz00) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_rtl_regz00_bglt)
							COBJECT(((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt)
										BgL_new1177z00_3900))))->BgL_onexprzf3zf3) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_rtl_regz00_bglt)
							COBJECT(((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt)
										BgL_new1177z00_3900))))->BgL_namez00) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_rtl_regz00_bglt)
							COBJECT(((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt)
										BgL_new1177z00_3900))))->BgL_keyz00) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_rtl_regz00_bglt)
							COBJECT(((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt)
										BgL_new1177z00_3900))))->BgL_debugnamez00) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_rtl_regz00_bglt)
							COBJECT(((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt)
										BgL_new1177z00_3900))))->BgL_hardwarez00) =
					((obj_t) BUNSPEC), BUNSPEC);
				{
					BgL_pregz00_bglt BgL_auxz00_5304;

					{
						obj_t BgL_auxz00_5305;

						{	/* SawMill/expr.scm 13 */
							BgL_objectz00_bglt BgL_tmpz00_5306;

							BgL_tmpz00_5306 =
								((BgL_objectz00_bglt)
								((BgL_rtl_regz00_bglt) BgL_new1177z00_3900));
							BgL_auxz00_5305 = BGL_OBJECT_WIDENING(BgL_tmpz00_5306);
						}
						BgL_auxz00_5304 = ((BgL_pregz00_bglt) BgL_auxz00_5305);
					}
					((((BgL_pregz00_bglt) COBJECT(BgL_auxz00_5304))->BgL_indexz00) =
						((obj_t) BUNSPEC), BUNSPEC);
				}
				{
					BgL_pregz00_bglt BgL_auxz00_5312;

					{
						obj_t BgL_auxz00_5313;

						{	/* SawMill/expr.scm 13 */
							BgL_objectz00_bglt BgL_tmpz00_5314;

							BgL_tmpz00_5314 =
								((BgL_objectz00_bglt)
								((BgL_rtl_regz00_bglt) BgL_new1177z00_3900));
							BgL_auxz00_5313 = BGL_OBJECT_WIDENING(BgL_tmpz00_5314);
						}
						BgL_auxz00_5312 = ((BgL_pregz00_bglt) BgL_auxz00_5313);
					}
					((((BgL_pregz00_bglt) COBJECT(BgL_auxz00_5312))->BgL_statusz00) =
						((obj_t) BUNSPEC), BUNSPEC);
				}
				BgL_auxz00_5275 = ((BgL_rtl_regz00_bglt) BgL_new1177z00_3900);
				return ((obj_t) BgL_auxz00_5275);
			}
		}

	}



/* &lambda1988 */
	BgL_rtl_regz00_bglt BGl_z62lambda1988z62zzsaw_exprz00(obj_t BgL_envz00_3901,
		obj_t BgL_o1174z00_3902)
	{
		{	/* SawMill/expr.scm 13 */
			{	/* SawMill/expr.scm 13 */
				BgL_pregz00_bglt BgL_wide1176z00_4092;

				BgL_wide1176z00_4092 =
					((BgL_pregz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
								BgL_pregz00_bgl))));
				{	/* SawMill/expr.scm 13 */
					obj_t BgL_auxz00_5327;
					BgL_objectz00_bglt BgL_tmpz00_5323;

					BgL_auxz00_5327 = ((obj_t) BgL_wide1176z00_4092);
					BgL_tmpz00_5323 =
						((BgL_objectz00_bglt)
						((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt) BgL_o1174z00_3902)));
					BGL_OBJECT_WIDENING_SET(BgL_tmpz00_5323, BgL_auxz00_5327);
				}
				((BgL_objectz00_bglt)
					((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt) BgL_o1174z00_3902)));
				{	/* SawMill/expr.scm 13 */
					long BgL_arg1989z00_4093;

					BgL_arg1989z00_4093 = BGL_CLASS_NUM(BGl_pregz00zzsaw_exprz00);
					BGL_OBJECT_CLASS_NUM_SET(
						((BgL_objectz00_bglt)
							((BgL_rtl_regz00_bglt)
								((BgL_rtl_regz00_bglt) BgL_o1174z00_3902))),
						BgL_arg1989z00_4093);
				}
				return
					((BgL_rtl_regz00_bglt)
					((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt) BgL_o1174z00_3902)));
			}
		}

	}



/* &lambda1985 */
	BgL_rtl_regz00_bglt BGl_z62lambda1985z62zzsaw_exprz00(obj_t BgL_envz00_3903,
		obj_t BgL_type1165z00_3904, obj_t BgL_var1166z00_3905,
		obj_t BgL_onexprzf31167zf3_3906, obj_t BgL_name1168z00_3907,
		obj_t BgL_key1169z00_3908, obj_t BgL_debugname1170z00_3909,
		obj_t BgL_hardware1171z00_3910, obj_t BgL_index1172z00_3911,
		obj_t BgL_status1173z00_3912)
	{
		{	/* SawMill/expr.scm 13 */
			{	/* SawMill/expr.scm 13 */
				BgL_rtl_regz00_bglt BgL_new1283z00_4095;

				{	/* SawMill/expr.scm 13 */
					BgL_rtl_regz00_bglt BgL_tmp1281z00_4096;
					BgL_pregz00_bglt BgL_wide1282z00_4097;

					{
						BgL_rtl_regz00_bglt BgL_auxz00_5341;

						{	/* SawMill/expr.scm 13 */
							BgL_rtl_regz00_bglt BgL_new1280z00_4098;

							BgL_new1280z00_4098 =
								((BgL_rtl_regz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
											BgL_rtl_regz00_bgl))));
							{	/* SawMill/expr.scm 13 */
								long BgL_arg1987z00_4099;

								BgL_arg1987z00_4099 =
									BGL_CLASS_NUM(BGl_rtl_regz00zzsaw_defsz00);
								BGL_OBJECT_CLASS_NUM_SET(
									((BgL_objectz00_bglt) BgL_new1280z00_4098),
									BgL_arg1987z00_4099);
							}
							{	/* SawMill/expr.scm 13 */
								BgL_objectz00_bglt BgL_tmpz00_5346;

								BgL_tmpz00_5346 = ((BgL_objectz00_bglt) BgL_new1280z00_4098);
								BGL_OBJECT_WIDENING_SET(BgL_tmpz00_5346, BFALSE);
							}
							((BgL_objectz00_bglt) BgL_new1280z00_4098);
							BgL_auxz00_5341 = BgL_new1280z00_4098;
						}
						BgL_tmp1281z00_4096 = ((BgL_rtl_regz00_bglt) BgL_auxz00_5341);
					}
					BgL_wide1282z00_4097 =
						((BgL_pregz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
									BgL_pregz00_bgl))));
					{	/* SawMill/expr.scm 13 */
						obj_t BgL_auxz00_5354;
						BgL_objectz00_bglt BgL_tmpz00_5352;

						BgL_auxz00_5354 = ((obj_t) BgL_wide1282z00_4097);
						BgL_tmpz00_5352 = ((BgL_objectz00_bglt) BgL_tmp1281z00_4096);
						BGL_OBJECT_WIDENING_SET(BgL_tmpz00_5352, BgL_auxz00_5354);
					}
					((BgL_objectz00_bglt) BgL_tmp1281z00_4096);
					{	/* SawMill/expr.scm 13 */
						long BgL_arg1986z00_4100;

						BgL_arg1986z00_4100 = BGL_CLASS_NUM(BGl_pregz00zzsaw_exprz00);
						BGL_OBJECT_CLASS_NUM_SET(
							((BgL_objectz00_bglt) BgL_tmp1281z00_4096), BgL_arg1986z00_4100);
					}
					BgL_new1283z00_4095 = ((BgL_rtl_regz00_bglt) BgL_tmp1281z00_4096);
				}
				((((BgL_rtl_regz00_bglt) COBJECT(
								((BgL_rtl_regz00_bglt) BgL_new1283z00_4095)))->BgL_typez00) =
					((BgL_typez00_bglt) ((BgL_typez00_bglt) BgL_type1165z00_3904)),
					BUNSPEC);
				((((BgL_rtl_regz00_bglt) COBJECT(((BgL_rtl_regz00_bglt)
									BgL_new1283z00_4095)))->BgL_varz00) =
					((obj_t) BgL_var1166z00_3905), BUNSPEC);
				((((BgL_rtl_regz00_bglt) COBJECT(((BgL_rtl_regz00_bglt)
									BgL_new1283z00_4095)))->BgL_onexprzf3zf3) =
					((obj_t) BgL_onexprzf31167zf3_3906), BUNSPEC);
				((((BgL_rtl_regz00_bglt) COBJECT(((BgL_rtl_regz00_bglt)
									BgL_new1283z00_4095)))->BgL_namez00) =
					((obj_t) BgL_name1168z00_3907), BUNSPEC);
				((((BgL_rtl_regz00_bglt) COBJECT(((BgL_rtl_regz00_bglt)
									BgL_new1283z00_4095)))->BgL_keyz00) =
					((obj_t) BgL_key1169z00_3908), BUNSPEC);
				((((BgL_rtl_regz00_bglt) COBJECT(((BgL_rtl_regz00_bglt)
									BgL_new1283z00_4095)))->BgL_debugnamez00) =
					((obj_t) BgL_debugname1170z00_3909), BUNSPEC);
				((((BgL_rtl_regz00_bglt) COBJECT(((BgL_rtl_regz00_bglt)
									BgL_new1283z00_4095)))->BgL_hardwarez00) =
					((obj_t) BgL_hardware1171z00_3910), BUNSPEC);
				{
					BgL_pregz00_bglt BgL_auxz00_5377;

					{
						obj_t BgL_auxz00_5378;

						{	/* SawMill/expr.scm 13 */
							BgL_objectz00_bglt BgL_tmpz00_5379;

							BgL_tmpz00_5379 = ((BgL_objectz00_bglt) BgL_new1283z00_4095);
							BgL_auxz00_5378 = BGL_OBJECT_WIDENING(BgL_tmpz00_5379);
						}
						BgL_auxz00_5377 = ((BgL_pregz00_bglt) BgL_auxz00_5378);
					}
					((((BgL_pregz00_bglt) COBJECT(BgL_auxz00_5377))->BgL_indexz00) =
						((obj_t) BgL_index1172z00_3911), BUNSPEC);
				}
				{
					BgL_pregz00_bglt BgL_auxz00_5384;

					{
						obj_t BgL_auxz00_5385;

						{	/* SawMill/expr.scm 13 */
							BgL_objectz00_bglt BgL_tmpz00_5386;

							BgL_tmpz00_5386 = ((BgL_objectz00_bglt) BgL_new1283z00_4095);
							BgL_auxz00_5385 = BGL_OBJECT_WIDENING(BgL_tmpz00_5386);
						}
						BgL_auxz00_5384 = ((BgL_pregz00_bglt) BgL_auxz00_5385);
					}
					((((BgL_pregz00_bglt) COBJECT(BgL_auxz00_5384))->BgL_statusz00) =
						((obj_t) BgL_status1173z00_3912), BUNSPEC);
				}
				return BgL_new1283z00_4095;
			}
		}

	}



/* &lambda2004 */
	obj_t BGl_z62lambda2004z62zzsaw_exprz00(obj_t BgL_envz00_3913,
		obj_t BgL_oz00_3914, obj_t BgL_vz00_3915)
	{
		{	/* SawMill/expr.scm 13 */
			{
				BgL_pregz00_bglt BgL_auxz00_5391;

				{
					obj_t BgL_auxz00_5392;

					{	/* SawMill/expr.scm 13 */
						BgL_objectz00_bglt BgL_tmpz00_5393;

						BgL_tmpz00_5393 =
							((BgL_objectz00_bglt) ((BgL_rtl_regz00_bglt) BgL_oz00_3914));
						BgL_auxz00_5392 = BGL_OBJECT_WIDENING(BgL_tmpz00_5393);
					}
					BgL_auxz00_5391 = ((BgL_pregz00_bglt) BgL_auxz00_5392);
				}
				return
					((((BgL_pregz00_bglt) COBJECT(BgL_auxz00_5391))->BgL_statusz00) =
					((obj_t) BgL_vz00_3915), BUNSPEC);
			}
		}

	}



/* &lambda2003 */
	obj_t BGl_z62lambda2003z62zzsaw_exprz00(obj_t BgL_envz00_3916,
		obj_t BgL_oz00_3917)
	{
		{	/* SawMill/expr.scm 13 */
			{
				BgL_pregz00_bglt BgL_auxz00_5399;

				{
					obj_t BgL_auxz00_5400;

					{	/* SawMill/expr.scm 13 */
						BgL_objectz00_bglt BgL_tmpz00_5401;

						BgL_tmpz00_5401 =
							((BgL_objectz00_bglt) ((BgL_rtl_regz00_bglt) BgL_oz00_3917));
						BgL_auxz00_5400 = BGL_OBJECT_WIDENING(BgL_tmpz00_5401);
					}
					BgL_auxz00_5399 = ((BgL_pregz00_bglt) BgL_auxz00_5400);
				}
				return (((BgL_pregz00_bglt) COBJECT(BgL_auxz00_5399))->BgL_statusz00);
			}
		}

	}



/* &lambda1999 */
	obj_t BGl_z62lambda1999z62zzsaw_exprz00(obj_t BgL_envz00_3918,
		obj_t BgL_oz00_3919, obj_t BgL_vz00_3920)
	{
		{	/* SawMill/expr.scm 13 */
			{
				BgL_pregz00_bglt BgL_auxz00_5407;

				{
					obj_t BgL_auxz00_5408;

					{	/* SawMill/expr.scm 13 */
						BgL_objectz00_bglt BgL_tmpz00_5409;

						BgL_tmpz00_5409 =
							((BgL_objectz00_bglt) ((BgL_rtl_regz00_bglt) BgL_oz00_3919));
						BgL_auxz00_5408 = BGL_OBJECT_WIDENING(BgL_tmpz00_5409);
					}
					BgL_auxz00_5407 = ((BgL_pregz00_bglt) BgL_auxz00_5408);
				}
				return
					((((BgL_pregz00_bglt) COBJECT(BgL_auxz00_5407))->BgL_indexz00) =
					((obj_t) BgL_vz00_3920), BUNSPEC);
			}
		}

	}



/* &lambda1998 */
	obj_t BGl_z62lambda1998z62zzsaw_exprz00(obj_t BgL_envz00_3921,
		obj_t BgL_oz00_3922)
	{
		{	/* SawMill/expr.scm 13 */
			{
				BgL_pregz00_bglt BgL_auxz00_5415;

				{
					obj_t BgL_auxz00_5416;

					{	/* SawMill/expr.scm 13 */
						BgL_objectz00_bglt BgL_tmpz00_5417;

						BgL_tmpz00_5417 =
							((BgL_objectz00_bglt) ((BgL_rtl_regz00_bglt) BgL_oz00_3922));
						BgL_auxz00_5416 = BGL_OBJECT_WIDENING(BgL_tmpz00_5417);
					}
					BgL_auxz00_5415 = ((BgL_pregz00_bglt) BgL_auxz00_5416);
				}
				return (((BgL_pregz00_bglt) COBJECT(BgL_auxz00_5415))->BgL_indexz00);
			}
		}

	}



/* &lambda1965 */
	BgL_rtl_regz00_bglt BGl_z62lambda1965z62zzsaw_exprz00(obj_t BgL_envz00_3923,
		obj_t BgL_o1163z00_3924)
	{
		{	/* SawMill/expr.scm 12 */
			{	/* SawMill/expr.scm 12 */
				long BgL_arg1966z00_4106;

				{	/* SawMill/expr.scm 12 */
					obj_t BgL_arg1967z00_4107;

					{	/* SawMill/expr.scm 12 */
						obj_t BgL_arg1968z00_4108;

						{	/* SawMill/expr.scm 12 */
							long BgL_arg1808z00_4109;

							{	/* SawMill/expr.scm 12 */
								long BgL_arg1809z00_4110;

								BgL_arg1809z00_4110 =
									BGL_OBJECT_CLASS_NUM(
									((BgL_objectz00_bglt)
										((BgL_rtl_regz00_bglt) BgL_o1163z00_3924)));
								BgL_arg1808z00_4109 = (BgL_arg1809z00_4110 - OBJECT_TYPE);
							}
							BgL_arg1968z00_4108 =
								VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
								BgL_arg1808z00_4109);
						}
						BgL_arg1967z00_4107 =
							BGl_classzd2superzd2zz__objectz00(BgL_arg1968z00_4108);
					}
					{	/* SawMill/expr.scm 12 */
						obj_t BgL_tmpz00_5429;

						BgL_tmpz00_5429 = ((obj_t) BgL_arg1967z00_4107);
						BgL_arg1966z00_4106 = BGL_CLASS_NUM(BgL_tmpz00_5429);
				}}
				BGL_OBJECT_CLASS_NUM_SET(
					((BgL_objectz00_bglt)
						((BgL_rtl_regz00_bglt) BgL_o1163z00_3924)), BgL_arg1966z00_4106);
			}
			{	/* SawMill/expr.scm 12 */
				BgL_objectz00_bglt BgL_tmpz00_5435;

				BgL_tmpz00_5435 =
					((BgL_objectz00_bglt) ((BgL_rtl_regz00_bglt) BgL_o1163z00_3924));
				BGL_OBJECT_WIDENING_SET(BgL_tmpz00_5435, BFALSE);
			}
			((BgL_objectz00_bglt) ((BgL_rtl_regz00_bglt) BgL_o1163z00_3924));
			return ((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt) BgL_o1163z00_3924));
		}

	}



/* &<@anonymous:1964> */
	obj_t BGl_z62zc3z04anonymousza31964ze3ze5zzsaw_exprz00(obj_t BgL_envz00_3925,
		obj_t BgL_new1162z00_3926)
	{
		{	/* SawMill/expr.scm 12 */
			{
				BgL_rtl_regz00_bglt BgL_auxz00_5443;

				{
					BgL_typez00_bglt BgL_auxz00_5444;

					{	/* SawMill/expr.scm 12 */
						obj_t BgL_classz00_4112;

						BgL_classz00_4112 = BGl_typez00zztype_typez00;
						{	/* SawMill/expr.scm 12 */
							obj_t BgL__ortest_1117z00_4113;

							BgL__ortest_1117z00_4113 = BGL_CLASS_NIL(BgL_classz00_4112);
							if (CBOOL(BgL__ortest_1117z00_4113))
								{	/* SawMill/expr.scm 12 */
									BgL_auxz00_5444 =
										((BgL_typez00_bglt) BgL__ortest_1117z00_4113);
								}
							else
								{	/* SawMill/expr.scm 12 */
									BgL_auxz00_5444 =
										((BgL_typez00_bglt)
										BGl_classzd2nilzd2initz12z12zz__objectz00
										(BgL_classz00_4112));
								}
						}
					}
					((((BgL_rtl_regz00_bglt) COBJECT(
									((BgL_rtl_regz00_bglt)
										((BgL_rtl_regz00_bglt) BgL_new1162z00_3926))))->
							BgL_typez00) = ((BgL_typez00_bglt) BgL_auxz00_5444), BUNSPEC);
				}
				((((BgL_rtl_regz00_bglt) COBJECT(
								((BgL_rtl_regz00_bglt)
									((BgL_rtl_regz00_bglt) BgL_new1162z00_3926))))->BgL_varz00) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_rtl_regz00_bglt)
							COBJECT(((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt)
										BgL_new1162z00_3926))))->BgL_onexprzf3zf3) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_rtl_regz00_bglt)
							COBJECT(((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt)
										BgL_new1162z00_3926))))->BgL_namez00) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_rtl_regz00_bglt)
							COBJECT(((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt)
										BgL_new1162z00_3926))))->BgL_keyz00) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_rtl_regz00_bglt)
							COBJECT(((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt)
										BgL_new1162z00_3926))))->BgL_debugnamez00) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_rtl_regz00_bglt)
							COBJECT(((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt)
										BgL_new1162z00_3926))))->BgL_hardwarez00) =
					((obj_t) BUNSPEC), BUNSPEC);
				{
					BgL_iregz00_bglt BgL_auxz00_5472;

					{
						obj_t BgL_auxz00_5473;

						{	/* SawMill/expr.scm 12 */
							BgL_objectz00_bglt BgL_tmpz00_5474;

							BgL_tmpz00_5474 =
								((BgL_objectz00_bglt)
								((BgL_rtl_regz00_bglt) BgL_new1162z00_3926));
							BgL_auxz00_5473 = BGL_OBJECT_WIDENING(BgL_tmpz00_5474);
						}
						BgL_auxz00_5472 = ((BgL_iregz00_bglt) BgL_auxz00_5473);
					}
					((((BgL_iregz00_bglt) COBJECT(BgL_auxz00_5472))->BgL_indexz00) =
						((obj_t) BUNSPEC), BUNSPEC);
				}
				{
					BgL_iregz00_bglt BgL_auxz00_5480;

					{
						obj_t BgL_auxz00_5481;

						{	/* SawMill/expr.scm 12 */
							BgL_objectz00_bglt BgL_tmpz00_5482;

							BgL_tmpz00_5482 =
								((BgL_objectz00_bglt)
								((BgL_rtl_regz00_bglt) BgL_new1162z00_3926));
							BgL_auxz00_5481 = BGL_OBJECT_WIDENING(BgL_tmpz00_5482);
						}
						BgL_auxz00_5480 = ((BgL_iregz00_bglt) BgL_auxz00_5481);
					}
					((((BgL_iregz00_bglt) COBJECT(BgL_auxz00_5480))->BgL_statusz00) =
						((obj_t) BUNSPEC), BUNSPEC);
				}
				BgL_auxz00_5443 = ((BgL_rtl_regz00_bglt) BgL_new1162z00_3926);
				return ((obj_t) BgL_auxz00_5443);
			}
		}

	}



/* &lambda1962 */
	BgL_rtl_regz00_bglt BGl_z62lambda1962z62zzsaw_exprz00(obj_t BgL_envz00_3927,
		obj_t BgL_o1159z00_3928)
	{
		{	/* SawMill/expr.scm 12 */
			{	/* SawMill/expr.scm 12 */
				BgL_iregz00_bglt BgL_wide1161z00_4115;

				BgL_wide1161z00_4115 =
					((BgL_iregz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
								BgL_iregz00_bgl))));
				{	/* SawMill/expr.scm 12 */
					obj_t BgL_auxz00_5495;
					BgL_objectz00_bglt BgL_tmpz00_5491;

					BgL_auxz00_5495 = ((obj_t) BgL_wide1161z00_4115);
					BgL_tmpz00_5491 =
						((BgL_objectz00_bglt)
						((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt) BgL_o1159z00_3928)));
					BGL_OBJECT_WIDENING_SET(BgL_tmpz00_5491, BgL_auxz00_5495);
				}
				((BgL_objectz00_bglt)
					((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt) BgL_o1159z00_3928)));
				{	/* SawMill/expr.scm 12 */
					long BgL_arg1963z00_4116;

					BgL_arg1963z00_4116 = BGL_CLASS_NUM(BGl_iregz00zzsaw_exprz00);
					BGL_OBJECT_CLASS_NUM_SET(
						((BgL_objectz00_bglt)
							((BgL_rtl_regz00_bglt)
								((BgL_rtl_regz00_bglt) BgL_o1159z00_3928))),
						BgL_arg1963z00_4116);
				}
				return
					((BgL_rtl_regz00_bglt)
					((BgL_rtl_regz00_bglt) ((BgL_rtl_regz00_bglt) BgL_o1159z00_3928)));
			}
		}

	}



/* &lambda1959 */
	BgL_rtl_regz00_bglt BGl_z62lambda1959z62zzsaw_exprz00(obj_t BgL_envz00_3929,
		obj_t BgL_type1150z00_3930, obj_t BgL_var1151z00_3931,
		obj_t BgL_onexprzf31152zf3_3932, obj_t BgL_name1153z00_3933,
		obj_t BgL_key1154z00_3934, obj_t BgL_debugname1155z00_3935,
		obj_t BgL_hardware1156z00_3936, obj_t BgL_index1157z00_3937,
		obj_t BgL_status1158z00_3938)
	{
		{	/* SawMill/expr.scm 12 */
			{	/* SawMill/expr.scm 12 */
				BgL_rtl_regz00_bglt BgL_new1278z00_4118;

				{	/* SawMill/expr.scm 12 */
					BgL_rtl_regz00_bglt BgL_tmp1276z00_4119;
					BgL_iregz00_bglt BgL_wide1277z00_4120;

					{
						BgL_rtl_regz00_bglt BgL_auxz00_5509;

						{	/* SawMill/expr.scm 12 */
							BgL_rtl_regz00_bglt BgL_new1275z00_4121;

							BgL_new1275z00_4121 =
								((BgL_rtl_regz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
											BgL_rtl_regz00_bgl))));
							{	/* SawMill/expr.scm 12 */
								long BgL_arg1961z00_4122;

								BgL_arg1961z00_4122 =
									BGL_CLASS_NUM(BGl_rtl_regz00zzsaw_defsz00);
								BGL_OBJECT_CLASS_NUM_SET(
									((BgL_objectz00_bglt) BgL_new1275z00_4121),
									BgL_arg1961z00_4122);
							}
							{	/* SawMill/expr.scm 12 */
								BgL_objectz00_bglt BgL_tmpz00_5514;

								BgL_tmpz00_5514 = ((BgL_objectz00_bglt) BgL_new1275z00_4121);
								BGL_OBJECT_WIDENING_SET(BgL_tmpz00_5514, BFALSE);
							}
							((BgL_objectz00_bglt) BgL_new1275z00_4121);
							BgL_auxz00_5509 = BgL_new1275z00_4121;
						}
						BgL_tmp1276z00_4119 = ((BgL_rtl_regz00_bglt) BgL_auxz00_5509);
					}
					BgL_wide1277z00_4120 =
						((BgL_iregz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
									BgL_iregz00_bgl))));
					{	/* SawMill/expr.scm 12 */
						obj_t BgL_auxz00_5522;
						BgL_objectz00_bglt BgL_tmpz00_5520;

						BgL_auxz00_5522 = ((obj_t) BgL_wide1277z00_4120);
						BgL_tmpz00_5520 = ((BgL_objectz00_bglt) BgL_tmp1276z00_4119);
						BGL_OBJECT_WIDENING_SET(BgL_tmpz00_5520, BgL_auxz00_5522);
					}
					((BgL_objectz00_bglt) BgL_tmp1276z00_4119);
					{	/* SawMill/expr.scm 12 */
						long BgL_arg1960z00_4123;

						BgL_arg1960z00_4123 = BGL_CLASS_NUM(BGl_iregz00zzsaw_exprz00);
						BGL_OBJECT_CLASS_NUM_SET(
							((BgL_objectz00_bglt) BgL_tmp1276z00_4119), BgL_arg1960z00_4123);
					}
					BgL_new1278z00_4118 = ((BgL_rtl_regz00_bglt) BgL_tmp1276z00_4119);
				}
				((((BgL_rtl_regz00_bglt) COBJECT(
								((BgL_rtl_regz00_bglt) BgL_new1278z00_4118)))->BgL_typez00) =
					((BgL_typez00_bglt) ((BgL_typez00_bglt) BgL_type1150z00_3930)),
					BUNSPEC);
				((((BgL_rtl_regz00_bglt) COBJECT(((BgL_rtl_regz00_bglt)
									BgL_new1278z00_4118)))->BgL_varz00) =
					((obj_t) BgL_var1151z00_3931), BUNSPEC);
				((((BgL_rtl_regz00_bglt) COBJECT(((BgL_rtl_regz00_bglt)
									BgL_new1278z00_4118)))->BgL_onexprzf3zf3) =
					((obj_t) BgL_onexprzf31152zf3_3932), BUNSPEC);
				((((BgL_rtl_regz00_bglt) COBJECT(((BgL_rtl_regz00_bglt)
									BgL_new1278z00_4118)))->BgL_namez00) =
					((obj_t) BgL_name1153z00_3933), BUNSPEC);
				((((BgL_rtl_regz00_bglt) COBJECT(((BgL_rtl_regz00_bglt)
									BgL_new1278z00_4118)))->BgL_keyz00) =
					((obj_t) BgL_key1154z00_3934), BUNSPEC);
				((((BgL_rtl_regz00_bglt) COBJECT(((BgL_rtl_regz00_bglt)
									BgL_new1278z00_4118)))->BgL_debugnamez00) =
					((obj_t) BgL_debugname1155z00_3935), BUNSPEC);
				((((BgL_rtl_regz00_bglt) COBJECT(((BgL_rtl_regz00_bglt)
									BgL_new1278z00_4118)))->BgL_hardwarez00) =
					((obj_t) BgL_hardware1156z00_3936), BUNSPEC);
				{
					BgL_iregz00_bglt BgL_auxz00_5545;

					{
						obj_t BgL_auxz00_5546;

						{	/* SawMill/expr.scm 12 */
							BgL_objectz00_bglt BgL_tmpz00_5547;

							BgL_tmpz00_5547 = ((BgL_objectz00_bglt) BgL_new1278z00_4118);
							BgL_auxz00_5546 = BGL_OBJECT_WIDENING(BgL_tmpz00_5547);
						}
						BgL_auxz00_5545 = ((BgL_iregz00_bglt) BgL_auxz00_5546);
					}
					((((BgL_iregz00_bglt) COBJECT(BgL_auxz00_5545))->BgL_indexz00) =
						((obj_t) BgL_index1157z00_3937), BUNSPEC);
				}
				{
					BgL_iregz00_bglt BgL_auxz00_5552;

					{
						obj_t BgL_auxz00_5553;

						{	/* SawMill/expr.scm 12 */
							BgL_objectz00_bglt BgL_tmpz00_5554;

							BgL_tmpz00_5554 = ((BgL_objectz00_bglt) BgL_new1278z00_4118);
							BgL_auxz00_5553 = BGL_OBJECT_WIDENING(BgL_tmpz00_5554);
						}
						BgL_auxz00_5552 = ((BgL_iregz00_bglt) BgL_auxz00_5553);
					}
					((((BgL_iregz00_bglt) COBJECT(BgL_auxz00_5552))->BgL_statusz00) =
						((obj_t) BgL_status1158z00_3938), BUNSPEC);
				}
				return BgL_new1278z00_4118;
			}
		}

	}



/* &lambda1978 */
	obj_t BGl_z62lambda1978z62zzsaw_exprz00(obj_t BgL_envz00_3939,
		obj_t BgL_oz00_3940, obj_t BgL_vz00_3941)
	{
		{	/* SawMill/expr.scm 12 */
			{
				BgL_iregz00_bglt BgL_auxz00_5559;

				{
					obj_t BgL_auxz00_5560;

					{	/* SawMill/expr.scm 12 */
						BgL_objectz00_bglt BgL_tmpz00_5561;

						BgL_tmpz00_5561 =
							((BgL_objectz00_bglt) ((BgL_rtl_regz00_bglt) BgL_oz00_3940));
						BgL_auxz00_5560 = BGL_OBJECT_WIDENING(BgL_tmpz00_5561);
					}
					BgL_auxz00_5559 = ((BgL_iregz00_bglt) BgL_auxz00_5560);
				}
				return
					((((BgL_iregz00_bglt) COBJECT(BgL_auxz00_5559))->BgL_statusz00) =
					((obj_t) BgL_vz00_3941), BUNSPEC);
			}
		}

	}



/* &lambda1977 */
	obj_t BGl_z62lambda1977z62zzsaw_exprz00(obj_t BgL_envz00_3942,
		obj_t BgL_oz00_3943)
	{
		{	/* SawMill/expr.scm 12 */
			{
				BgL_iregz00_bglt BgL_auxz00_5567;

				{
					obj_t BgL_auxz00_5568;

					{	/* SawMill/expr.scm 12 */
						BgL_objectz00_bglt BgL_tmpz00_5569;

						BgL_tmpz00_5569 =
							((BgL_objectz00_bglt) ((BgL_rtl_regz00_bglt) BgL_oz00_3943));
						BgL_auxz00_5568 = BGL_OBJECT_WIDENING(BgL_tmpz00_5569);
					}
					BgL_auxz00_5567 = ((BgL_iregz00_bglt) BgL_auxz00_5568);
				}
				return (((BgL_iregz00_bglt) COBJECT(BgL_auxz00_5567))->BgL_statusz00);
			}
		}

	}



/* &lambda1973 */
	obj_t BGl_z62lambda1973z62zzsaw_exprz00(obj_t BgL_envz00_3944,
		obj_t BgL_oz00_3945, obj_t BgL_vz00_3946)
	{
		{	/* SawMill/expr.scm 12 */
			{
				BgL_iregz00_bglt BgL_auxz00_5575;

				{
					obj_t BgL_auxz00_5576;

					{	/* SawMill/expr.scm 12 */
						BgL_objectz00_bglt BgL_tmpz00_5577;

						BgL_tmpz00_5577 =
							((BgL_objectz00_bglt) ((BgL_rtl_regz00_bglt) BgL_oz00_3945));
						BgL_auxz00_5576 = BGL_OBJECT_WIDENING(BgL_tmpz00_5577);
					}
					BgL_auxz00_5575 = ((BgL_iregz00_bglt) BgL_auxz00_5576);
				}
				return
					((((BgL_iregz00_bglt) COBJECT(BgL_auxz00_5575))->BgL_indexz00) =
					((obj_t) BgL_vz00_3946), BUNSPEC);
			}
		}

	}



/* &lambda1972 */
	obj_t BGl_z62lambda1972z62zzsaw_exprz00(obj_t BgL_envz00_3947,
		obj_t BgL_oz00_3948)
	{
		{	/* SawMill/expr.scm 12 */
			{
				BgL_iregz00_bglt BgL_auxz00_5583;

				{
					obj_t BgL_auxz00_5584;

					{	/* SawMill/expr.scm 12 */
						BgL_objectz00_bglt BgL_tmpz00_5585;

						BgL_tmpz00_5585 =
							((BgL_objectz00_bglt) ((BgL_rtl_regz00_bglt) BgL_oz00_3948));
						BgL_auxz00_5584 = BGL_OBJECT_WIDENING(BgL_tmpz00_5585);
					}
					BgL_auxz00_5583 = ((BgL_iregz00_bglt) BgL_auxz00_5584);
				}
				return (((BgL_iregz00_bglt) COBJECT(BgL_auxz00_5583))->BgL_indexz00);
			}
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zzsaw_exprz00(void)
	{
		{	/* SawMill/expr.scm 1 */
			BGl_registerzd2genericz12zc0zz__objectz00
				(BGl_acceptzd2foldingzf3zd2envzf3zzsaw_exprz00,
				BGl_proc2182z00zzsaw_exprz00, BGl_backendz00zzbackend_backendz00,
				BGl_string2183z00zzsaw_exprz00);
			return
				BGl_registerzd2genericz12zc0zz__objectz00
				(BGl_effectszd2envzd2zzsaw_exprz00, BGl_proc2184z00zzsaw_exprz00,
				BGl_rtl_funz00zzsaw_defsz00, BGl_string2185z00zzsaw_exprz00);
		}

	}



/* &effects1598 */
	obj_t BGl_z62effects1598z62zzsaw_exprz00(obj_t BgL_envz00_3951,
		obj_t BgL_funz00_3952)
	{
		{	/* SawMill/expr.scm 229 */
			return ((obj_t) BGl_za2noeffectza2z00zzsaw_exprz00);
		}

	}



/* &accept-folding?1596 */
	obj_t BGl_z62acceptzd2foldingzf31596z43zzsaw_exprz00(obj_t BgL_envz00_3953,
		obj_t BgL_bz00_3954, obj_t BgL_insz00_3955, obj_t BgL_treez00_3956)
	{
		{	/* SawMill/expr.scm 166 */
			return BBOOL(((bool_t) 1));
		}

	}



/* accept-folding? */
	BGL_EXPORTED_DEF obj_t
		BGl_acceptzd2foldingzf3z21zzsaw_exprz00(BgL_backendz00_bglt BgL_bz00_106,
		obj_t BgL_insz00_107, obj_t BgL_treez00_108)
	{
		{	/* SawMill/expr.scm 166 */
			{	/* SawMill/expr.scm 166 */
				obj_t BgL_method1597z00_2600;

				{	/* SawMill/expr.scm 166 */
					obj_t BgL_res2150z00_3662;

					{	/* SawMill/expr.scm 166 */
						long BgL_objzd2classzd2numz00_3633;

						BgL_objzd2classzd2numz00_3633 =
							BGL_OBJECT_CLASS_NUM(((BgL_objectz00_bglt) BgL_bz00_106));
						{	/* SawMill/expr.scm 166 */
							obj_t BgL_arg1805z00_3634;

							BgL_arg1805z00_3634 =
								PROCEDURE_REF(BGl_acceptzd2foldingzf3zd2envzf3zzsaw_exprz00,
								(int) (1L));
							{	/* SawMill/expr.scm 166 */
								int BgL_offsetz00_3637;

								BgL_offsetz00_3637 = (int) (BgL_objzd2classzd2numz00_3633);
								{	/* SawMill/expr.scm 166 */
									long BgL_offsetz00_3638;

									BgL_offsetz00_3638 =
										((long) (BgL_offsetz00_3637) - OBJECT_TYPE);
									{	/* SawMill/expr.scm 166 */
										long BgL_modz00_3639;

										BgL_modz00_3639 =
											(BgL_offsetz00_3638 >> (int) ((long) ((int) (4L))));
										{	/* SawMill/expr.scm 166 */
											long BgL_restz00_3641;

											BgL_restz00_3641 =
												(BgL_offsetz00_3638 &
												(long) (
													(int) (
														((long) (
																(int) (
																	(1L <<
																		(int) ((long) ((int) (4L)))))) - 1L))));
											{	/* SawMill/expr.scm 166 */

												{	/* SawMill/expr.scm 166 */
													obj_t BgL_bucketz00_3643;

													BgL_bucketz00_3643 =
														VECTOR_REF(
														((obj_t) BgL_arg1805z00_3634), BgL_modz00_3639);
													BgL_res2150z00_3662 =
														VECTOR_REF(
														((obj_t) BgL_bucketz00_3643), BgL_restz00_3641);
					}}}}}}}}
					BgL_method1597z00_2600 = BgL_res2150z00_3662;
				}
				return
					(VA_PROCEDUREP(BgL_method1597z00_2600) ? ((obj_t(*)(obj_t,
								...))
						PROCEDURE_ENTRY(BgL_method1597z00_2600)) (BgL_method1597z00_2600,
						((obj_t) BgL_bz00_106), BgL_insz00_107, BgL_treez00_108,
						BEOA) : ((obj_t(*)(obj_t, obj_t, obj_t,
								obj_t))
						PROCEDURE_ENTRY(BgL_method1597z00_2600)) (BgL_method1597z00_2600,
						((obj_t) BgL_bz00_106), BgL_insz00_107, BgL_treez00_108));
			}
		}

	}



/* &accept-folding? */
	obj_t BGl_z62acceptzd2foldingzf3z43zzsaw_exprz00(obj_t BgL_envz00_3957,
		obj_t BgL_bz00_3958, obj_t BgL_insz00_3959, obj_t BgL_treez00_3960)
	{
		{	/* SawMill/expr.scm 166 */
			return
				BGl_acceptzd2foldingzf3z21zzsaw_exprz00(
				((BgL_backendz00_bglt) BgL_bz00_3958), BgL_insz00_3959,
				BgL_treez00_3960);
		}

	}



/* effects */
	obj_t BGl_effectsz00zzsaw_exprz00(BgL_rtl_funz00_bglt BgL_funz00_117)
	{
		{	/* SawMill/expr.scm 229 */
			{	/* SawMill/expr.scm 229 */
				obj_t BgL_method1600z00_2601;

				{	/* SawMill/expr.scm 229 */
					obj_t BgL_res2155z00_3693;

					{	/* SawMill/expr.scm 229 */
						long BgL_objzd2classzd2numz00_3664;

						BgL_objzd2classzd2numz00_3664 =
							BGL_OBJECT_CLASS_NUM(((BgL_objectz00_bglt) BgL_funz00_117));
						{	/* SawMill/expr.scm 229 */
							obj_t BgL_arg1805z00_3665;

							BgL_arg1805z00_3665 =
								PROCEDURE_REF(BGl_effectszd2envzd2zzsaw_exprz00, (int) (1L));
							{	/* SawMill/expr.scm 229 */
								int BgL_offsetz00_3668;

								BgL_offsetz00_3668 = (int) (BgL_objzd2classzd2numz00_3664);
								{	/* SawMill/expr.scm 229 */
									long BgL_offsetz00_3669;

									BgL_offsetz00_3669 =
										((long) (BgL_offsetz00_3668) - OBJECT_TYPE);
									{	/* SawMill/expr.scm 229 */
										long BgL_modz00_3670;

										BgL_modz00_3670 =
											(BgL_offsetz00_3669 >> (int) ((long) ((int) (4L))));
										{	/* SawMill/expr.scm 229 */
											long BgL_restz00_3672;

											BgL_restz00_3672 =
												(BgL_offsetz00_3669 &
												(long) (
													(int) (
														((long) (
																(int) (
																	(1L <<
																		(int) ((long) ((int) (4L)))))) - 1L))));
											{	/* SawMill/expr.scm 229 */

												{	/* SawMill/expr.scm 229 */
													obj_t BgL_bucketz00_3674;

													BgL_bucketz00_3674 =
														VECTOR_REF(
														((obj_t) BgL_arg1805z00_3665), BgL_modz00_3670);
													BgL_res2155z00_3693 =
														VECTOR_REF(
														((obj_t) BgL_bucketz00_3674), BgL_restz00_3672);
					}}}}}}}}
					BgL_method1600z00_2601 = BgL_res2155z00_3693;
				}
				return
					(VA_PROCEDUREP(BgL_method1600z00_2601) ? ((obj_t(*)(obj_t,
								...))
						PROCEDURE_ENTRY(BgL_method1600z00_2601)) (BgL_method1600z00_2601,
						((obj_t) BgL_funz00_117), BEOA) : ((obj_t(*)(obj_t,
								obj_t))
						PROCEDURE_ENTRY(BgL_method1600z00_2601)) (BgL_method1600z00_2601,
						((obj_t) BgL_funz00_117)));
			}
		}

	}



/* &effects */
	obj_t BGl_z62effectsz62zzsaw_exprz00(obj_t BgL_envz00_3961,
		obj_t BgL_funz00_3962)
	{
		{	/* SawMill/expr.scm 229 */
			return
				BGl_effectsz00zzsaw_exprz00(((BgL_rtl_funz00_bglt) BgL_funz00_3962));
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zzsaw_exprz00(void)
	{
		{	/* SawMill/expr.scm 1 */
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_effectszd2envzd2zzsaw_exprz00, BGl_rtl_loadgz00zzsaw_defsz00,
				BGl_proc2186z00zzsaw_exprz00, BGl_string2187z00zzsaw_exprz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_effectszd2envzd2zzsaw_exprz00, BGl_rtl_storegz00zzsaw_defsz00,
				BGl_proc2188z00zzsaw_exprz00, BGl_string2187z00zzsaw_exprz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_effectszd2envzd2zzsaw_exprz00, BGl_rtl_vrefz00zzsaw_defsz00,
				BGl_proc2189z00zzsaw_exprz00, BGl_string2187z00zzsaw_exprz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_effectszd2envzd2zzsaw_exprz00, BGl_rtl_vsetz00zzsaw_defsz00,
				BGl_proc2190z00zzsaw_exprz00, BGl_string2187z00zzsaw_exprz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_effectszd2envzd2zzsaw_exprz00, BGl_rtl_boxrefz00zzsaw_defsz00,
				BGl_proc2191z00zzsaw_exprz00, BGl_string2187z00zzsaw_exprz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_effectszd2envzd2zzsaw_exprz00, BGl_rtl_boxsetz00zzsaw_defsz00,
				BGl_proc2192z00zzsaw_exprz00, BGl_string2187z00zzsaw_exprz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_effectszd2envzd2zzsaw_exprz00, BGl_rtl_getfieldz00zzsaw_defsz00,
				BGl_proc2193z00zzsaw_exprz00, BGl_string2187z00zzsaw_exprz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_effectszd2envzd2zzsaw_exprz00, BGl_rtl_setfieldz00zzsaw_defsz00,
				BGl_proc2194z00zzsaw_exprz00, BGl_string2187z00zzsaw_exprz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_effectszd2envzd2zzsaw_exprz00, BGl_rtl_applyz00zzsaw_defsz00,
				BGl_proc2195z00zzsaw_exprz00, BGl_string2187z00zzsaw_exprz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_effectszd2envzd2zzsaw_exprz00,
				BGl_rtl_lightfuncallz00zzsaw_defsz00, BGl_proc2196z00zzsaw_exprz00,
				BGl_string2187z00zzsaw_exprz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_effectszd2envzd2zzsaw_exprz00, BGl_rtl_funcallz00zzsaw_defsz00,
				BGl_proc2197z00zzsaw_exprz00, BGl_string2187z00zzsaw_exprz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_effectszd2envzd2zzsaw_exprz00, BGl_rtl_pragmaz00zzsaw_defsz00,
				BGl_proc2198z00zzsaw_exprz00, BGl_string2187z00zzsaw_exprz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_effectszd2envzd2zzsaw_exprz00, BGl_rtl_protectz00zzsaw_defsz00,
				BGl_proc2199z00zzsaw_exprz00, BGl_string2187z00zzsaw_exprz00);
			return
				BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_effectszd2envzd2zzsaw_exprz00, BGl_rtl_callz00zzsaw_defsz00,
				BGl_proc2200z00zzsaw_exprz00, BGl_string2187z00zzsaw_exprz00);
		}

	}



/* &effects-rtl_call1628 */
	obj_t BGl_z62effectszd2rtl_call1628zb0zzsaw_exprz00(obj_t BgL_envz00_3977,
		obj_t BgL_funz00_3978)
	{
		{	/* SawMill/expr.scm 244 */
			{	/* SawMill/expr.scm 245 */
				BgL_globalz00_bglt BgL_varz00_4131;

				BgL_varz00_4131 =
					(((BgL_rtl_callz00_bglt) COBJECT(
							((BgL_rtl_callz00_bglt) BgL_funz00_3978)))->BgL_varz00);
				{	/* SawMill/expr.scm 246 */
					obj_t BgL__ortest_1251z00_4132;

					BgL__ortest_1251z00_4132 =
						BGl_getpropz00zz__r4_symbols_6_4z00(
						(((BgL_variablez00_bglt) COBJECT(
									((BgL_variablez00_bglt) BgL_varz00_4131)))->BgL_idz00),
						(((BgL_globalz00_bglt) COBJECT(BgL_varz00_4131))->BgL_modulez00));
					if (CBOOL(BgL__ortest_1251z00_4132))
						{	/* SawMill/expr.scm 246 */
							return BgL__ortest_1251z00_4132;
						}
					else
						{	/* SawMill/expr.scm 246 */
							return BGl_manuzd2effectzd2zzsaw_exprz00(BgL_varz00_4131);
						}
				}
			}
		}

	}



/* &effects-rtl_protect1626 */
	obj_t BGl_z62effectszd2rtl_protect1626zb0zzsaw_exprz00(obj_t BgL_envz00_3979,
		obj_t BgL_funz00_3980)
	{
		{	/* SawMill/expr.scm 242 */
			return ((obj_t) BGl_za2fullza2z00zzsaw_exprz00);
		}

	}



/* &effects-rtl_pragma1624 */
	obj_t BGl_z62effectszd2rtl_pragma1624zb0zzsaw_exprz00(obj_t BgL_envz00_3981,
		obj_t BgL_funz00_3982)
	{
		{	/* SawMill/expr.scm 241 */
			return ((obj_t) BGl_za2fullza2z00zzsaw_exprz00);
		}

	}



/* &effects-rtl_funcall1622 */
	obj_t BGl_z62effectszd2rtl_funcall1622zb0zzsaw_exprz00(obj_t BgL_envz00_3983,
		obj_t BgL_funz00_3984)
	{
		{	/* SawMill/expr.scm 240 */
			return ((obj_t) BGl_za2fullza2z00zzsaw_exprz00);
		}

	}



/* &effects-rtl_lightfun1620 */
	obj_t BGl_z62effectszd2rtl_lightfun1620zb0zzsaw_exprz00(obj_t BgL_envz00_3985,
		obj_t BgL_funz00_3986)
	{
		{	/* SawMill/expr.scm 239 */
			return ((obj_t) BGl_za2fullza2z00zzsaw_exprz00);
		}

	}



/* &effects-rtl_apply1618 */
	obj_t BGl_z62effectszd2rtl_apply1618zb0zzsaw_exprz00(obj_t BgL_envz00_3987,
		obj_t BgL_funz00_3988)
	{
		{	/* SawMill/expr.scm 238 */
			return ((obj_t) BGl_za2fullza2z00zzsaw_exprz00);
		}

	}



/* &effects-rtl_setfield1616 */
	obj_t BGl_z62effectszd2rtl_setfield1616zb0zzsaw_exprz00(obj_t BgL_envz00_3989,
		obj_t BgL_funz00_3990)
	{
		{	/* SawMill/expr.scm 237 */
			return ((obj_t) BGl_za2setfza2z00zzsaw_exprz00);
		}

	}



/* &effects-rtl_getfield1614 */
	obj_t BGl_z62effectszd2rtl_getfield1614zb0zzsaw_exprz00(obj_t BgL_envz00_3991,
		obj_t BgL_funz00_3992)
	{
		{	/* SawMill/expr.scm 236 */
			return ((obj_t) BGl_za2getfza2z00zzsaw_exprz00);
		}

	}



/* &effects-rtl_boxset1612 */
	obj_t BGl_z62effectszd2rtl_boxset1612zb0zzsaw_exprz00(obj_t BgL_envz00_3993,
		obj_t BgL_funz00_3994)
	{
		{	/* SawMill/expr.scm 235 */
			return ((obj_t) BGl_za2boxsetza2z00zzsaw_exprz00);
		}

	}



/* &effects-rtl_boxref1610 */
	obj_t BGl_z62effectszd2rtl_boxref1610zb0zzsaw_exprz00(obj_t BgL_envz00_3995,
		obj_t BgL_funz00_3996)
	{
		{	/* SawMill/expr.scm 234 */
			return ((obj_t) BGl_za2boxrefza2z00zzsaw_exprz00);
		}

	}



/* &effects-rtl_vset1608 */
	obj_t BGl_z62effectszd2rtl_vset1608zb0zzsaw_exprz00(obj_t BgL_envz00_3997,
		obj_t BgL_funz00_3998)
	{
		{	/* SawMill/expr.scm 233 */
			return ((obj_t) BGl_za2vsetza2z00zzsaw_exprz00);
		}

	}



/* &effects-rtl_vref1606 */
	obj_t BGl_z62effectszd2rtl_vref1606zb0zzsaw_exprz00(obj_t BgL_envz00_3999,
		obj_t BgL_funz00_4000)
	{
		{	/* SawMill/expr.scm 232 */
			return ((obj_t) BGl_za2vrefza2z00zzsaw_exprz00);
		}

	}



/* &effects-rtl_storeg1604 */
	obj_t BGl_z62effectszd2rtl_storeg1604zb0zzsaw_exprz00(obj_t BgL_envz00_4001,
		obj_t BgL_funz00_4002)
	{
		{	/* SawMill/expr.scm 231 */
			return ((obj_t) BGl_za2storegza2z00zzsaw_exprz00);
		}

	}



/* &effects-rtl_loadg1602 */
	obj_t BGl_z62effectszd2rtl_loadg1602zb0zzsaw_exprz00(obj_t BgL_envz00_4003,
		obj_t BgL_funz00_4004)
	{
		{	/* SawMill/expr.scm 230 */
			return ((obj_t) BGl_za2loadgza2z00zzsaw_exprz00);
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zzsaw_exprz00(void)
	{
		{	/* SawMill/expr.scm 1 */
			BGl_modulezd2initializa7ationz75zztype_typez00(515343395L,
				BSTRING_TO_STRING(BGl_string2201z00zzsaw_exprz00));
			BGl_modulezd2initializa7ationz75zzast_varz00(90839984L,
				BSTRING_TO_STRING(BGl_string2201z00zzsaw_exprz00));
			BGl_modulezd2initializa7ationz75zzast_nodez00(469732712L,
				BSTRING_TO_STRING(BGl_string2201z00zzsaw_exprz00));
			BGl_modulezd2initializa7ationz75zzbackend_backendz00(216206620L,
				BSTRING_TO_STRING(BGl_string2201z00zzsaw_exprz00));
			BGl_modulezd2initializa7ationz75zzsaw_defsz00(404844772L,
				BSTRING_TO_STRING(BGl_string2201z00zzsaw_exprz00));
			return
				BGl_modulezd2initializa7ationz75zztools_shapez00(365925558L,
				BSTRING_TO_STRING(BGl_string2201z00zzsaw_exprz00));
		}

	}

#ifdef __cplusplus
}
#endif
