/*===========================================================================*/
/*   (Cfa/arithmetic.scm)                                                    */
/*   Bigloo (4.5b)                                                           */
/*   Inria -- Sophia Antipolis (c)       Fri Dec 22 05:17:06 PM CET 2023     */
/*===========================================================================*/
/* COMPILATION: (/home/serrano/prgm/project/bigloo/bigloo/bin/bigloo -ldopt -L/home/serrano/prgm/project/bigloo/bigloo/libbacktrace/home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b  -q -afile .afile -fsharing -fno-reflection -cc gcc -lib-dir /home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b -unsafev -gno-error-localization -no-hello -O2 -rm -unsafe -s -stdc -indent Cfa/arithmetic.scm) */
/* GC selection */
#define THE_GC BOEHM_GC

/* unsafe mode */
#define BIGLOO_UNSAFE 1

/* traces mode */
#define BIGLOO_TRACE 0

/* standard Bigloo include */
#include <bigloo.h>

#ifdef __cplusplus
extern "C"
{
#endif
#ifndef BGL_MODULE_TYPE_DEFINITIONS
#define BGL_MODULE_TYPE_DEFINITIONS
#ifndef BGL_CFA_ARITHMETIC_TYPE_DEFINITIONS
#define BGL_CFA_ARITHMETIC_TYPE_DEFINITIONS

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

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

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

	typedef struct BgL_globalz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_idz00;
		obj_t BgL_namez00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_valuez00_bgl *BgL_valuez00;
		obj_t BgL_accessz00;
		obj_t BgL_fastzd2alphazd2;
		obj_t BgL_removablez00;
		long BgL_occurrencez00;
		long BgL_occurrencewz00;
		bool_t BgL_userzf3zf3;
		obj_t BgL_modulez00;
		obj_t BgL_importz00;
		bool_t BgL_evaluablezf3zf3;
		bool_t BgL_evalzf3zf3;
		obj_t BgL_libraryz00;
		obj_t BgL_pragmaz00;
		obj_t BgL_srcz00;
		obj_t BgL_jvmzd2typezd2namez00;
		obj_t BgL_initz00;
		obj_t BgL_aliasz00;
	}                *BgL_globalz00_bglt;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	typedef struct BgL_approxz00_bgl
	{
		header_t header;
		obj_t widening;
		struct BgL_typez00_bgl *BgL_typez00;
		bool_t BgL_typezd2lockedzf3z21;
		obj_t BgL_allocsz00;
		bool_t BgL_topzf3zf3;
		long BgL_lostzd2stampzd2;
		obj_t BgL_dupz00;
		bool_t BgL_haszd2procedurezf3z21;
	}                *BgL_approxz00_bglt;

	typedef struct BgL_prezd2arithmeticzd2appz00_bgl
	{
		obj_t BgL_speczd2typeszd2;
	}                                *BgL_prezd2arithmeticzd2appz00_bglt;

	typedef struct BgL_arithmeticzd2appzd2_bgl
	{
		struct BgL_approxz00_bgl *BgL_approxz00;
		obj_t BgL_speczd2typeszd2;
	}                          *BgL_arithmeticzd2appzd2_bglt;


#endif													// BGL_CFA_ARITHMETIC_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	BGL_EXPORTED_DECL obj_t
		BGl_cleanupzd2arithmeticzd2nodesz12z12zzcfa_arithmeticz00(obj_t);
	extern obj_t BGl_syncz00zzast_nodez00;
	extern obj_t BGl_sfunz00zzast_varz00;
	extern obj_t BGl_continuezd2cfaz12zc0zzcfa_iteratez00(obj_t);
	static obj_t BGl_unspecifiedzd2typeze70z35zzcfa_arithmeticz00(obj_t);
	static obj_t
		BGl_z62cleanupzd2nodez12zd2funcal1590z70zzcfa_arithmeticz00(obj_t, obj_t);
	extern obj_t BGl_sequencez00zzast_nodez00;
	static obj_t
		BGl_z62cleanupzd2nodez12zd2switch1571z70zzcfa_arithmeticz00(obj_t, obj_t);
	extern obj_t BGl_letzd2varzd2zzast_nodez00;
	extern obj_t BGl_failz00zzast_nodez00;
	static obj_t BGl_objectzd2initzd2zzcfa_arithmeticz00(void);
	BGL_IMPORT obj_t BGl_memqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
	extern obj_t BGl_boxzd2refzd2zzast_nodez00;
	static obj_t BGl_methodzd2initzd2zzcfa_arithmeticz00(void);
	static obj_t
		BGl_z62cleanupzd2nodez12zd2makezd2b1582za2zzcfa_arithmeticz00(obj_t, obj_t);
	static obj_t
		BGl_z62cleanupzd2nodez12zd2jumpzd2e1580za2zzcfa_arithmeticz00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_errorz00zz__errorz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_za2_za2z00zztype_cachez00;
	extern obj_t BGl_za2objza2z00zztype_cachez00;
	static obj_t BGl_z62cleanupzd2nodez121558za2zzcfa_arithmeticz00(obj_t, obj_t);
	extern obj_t BGl_cfunz00zzast_varz00;
	extern obj_t BGl_appzd2lyzd2zzast_nodez00;
	static obj_t BGl_cleanupzd2typeze70z35zzcfa_arithmeticz00(obj_t);
	static obj_t BGl_gczd2rootszd2initz00zzcfa_arithmeticz00(void);
	extern BgL_approxz00_bglt BGl_makezd2emptyzd2approxz00zzcfa_approxz00(void);
	static obj_t BGl_z62cleanupzd2nodez12zd2setq1565z70zzcfa_arithmeticz00(obj_t,
		obj_t);
	static obj_t
		BGl_z62cleanupzd2nodez12zd2letzd2va1576za2zzcfa_arithmeticz00(obj_t, obj_t);
	static obj_t
		BGl_z62cleanupzd2nodez12zd2letzd2fu1573za2zzcfa_arithmeticz00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_genericzd2addzd2methodz12z12zz__objectz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t
		BGl_z62cleanupzd2arithmeticzd2nodesz12z70zzcfa_arithmeticz00(obj_t, obj_t);
	extern obj_t BGl_conditionalz00zzast_nodez00;
	static obj_t
		BGl_z62cleanupzd2nodez12zd2setzd2ex1578za2zzcfa_arithmeticz00(obj_t, obj_t);
	extern obj_t BGl_setqz00zzast_nodez00;
	extern obj_t BGl_za2intza2z00zztype_cachez00;
	static obj_t
		BGl_z62nodezd2setupz12zd2prezd2arit1594za2zzcfa_arithmeticz00(obj_t, obj_t);
	extern obj_t BGl_nodezd2setupza2z12z62zzcfa_setupz00(obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zzcfa_arithmeticz00 = BUNSPEC;
	static obj_t
		BGl_z62cleanupzd2nodez12zd2appzd2ly1588za2zzcfa_arithmeticz00(obj_t, obj_t);
	extern obj_t BGl_setzd2exzd2itz00zzast_nodez00;
	BGL_IMPORT obj_t BGl_za2classesza2z00zz__objectz00;
	BGL_IMPORT obj_t BGl_registerzd2genericz12zc0zz__objectz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_toplevelzd2initzd2zzcfa_arithmeticz00(void);
	static obj_t
		BGl_z62cleanupzd2nodez12zd2condit1567z70zzcfa_arithmeticz00(obj_t, obj_t);
	static obj_t BGl_genericzd2initzd2zzcfa_arithmeticz00(void);
	BGL_IMPORT obj_t BGl_za2inheritancesza2z00zz__objectz00;
	extern obj_t BGl_arithmeticzd2appzd2zzcfa_info2z00;
	extern obj_t BGl_typez00zztype_typez00;
	extern BgL_approxz00_bglt BGl_loosez12z12zzcfa_loosez00(BgL_approxz00_bglt,
		obj_t);
	extern obj_t BGl_za2longza2z00zztype_cachez00;
	static obj_t BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(BgL_nodez00_bglt);
	static obj_t
		BGl_z62cleanupzd2nodez12zd2boxzd2re1584za2zzcfa_arithmeticz00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_za2arithmeticzd2nodesza2zd2zzcfa_arithmeticz00 = BUNSPEC;
	static obj_t BGl_z62cleanupzd2nodez12zd2app1592z70zzcfa_arithmeticz00(obj_t,
		obj_t);
	static obj_t
		BGl_z62cleanupzd2nodez12zd2boxzd2se1586za2zzcfa_arithmeticz00(obj_t, obj_t);
	extern obj_t BGl_makezd2boxzd2zzast_nodez00;
	extern obj_t BGl_boxzd2setz12zc0zzast_nodez00;
	BGL_EXPORTED_DECL obj_t
		BGl_modulezd2initializa7ationz75zzcfa_arithmeticz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzcfa_tvectorz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzcfa_approxz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzcfa_setupz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzcfa_cfaz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzcfa_iteratez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzcfa_loosez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzcfa_info2z00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzcfa_infoz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_errorz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_tracez00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(long,
		char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(long, char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(long, char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__bitz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
	extern obj_t BGl_appz00zzast_nodez00;
	static obj_t
		BGl_z62cleanupzd2nodez12zd2sequen1561z70zzcfa_arithmeticz00(obj_t, obj_t);
	extern obj_t BGl_nodez00zzast_nodez00;
	extern obj_t BGl_localz00zzast_varz00;
	extern obj_t BGl_jumpzd2exzd2itz00zzast_nodez00;
	static obj_t BGl_cnstzd2initzd2zzcfa_arithmeticz00(void);
	static obj_t BGl_libraryzd2moduleszd2initz00zzcfa_arithmeticz00(void);
	static obj_t BGl_importedzd2moduleszd2initz00zzcfa_arithmeticz00(void);
	extern BgL_approxz00_bglt
		BGl_makezd2typezd2approxz00zzcfa_approxz00(BgL_typez00_bglt);
	extern obj_t BGl_prezd2arithmeticzd2appz00zzcfa_info2z00;
	static obj_t BGl_z62cleanupzd2nodez12zd2fail1569z70zzcfa_arithmeticz00(obj_t,
		obj_t);
	static obj_t BGl_z62cleanupzd2nodez12zd2sync1563z70zzcfa_arithmeticz00(obj_t,
		obj_t);
	extern obj_t BGl_letzd2funzd2zzast_nodez00;
	extern obj_t BGl_switchz00zzast_nodez00;
	extern BgL_approxz00_bglt BGl_cfaz12z12zzcfa_cfaz00(BgL_nodez00_bglt);
	BGL_IMPORT obj_t BGl_classzd2superzd2zz__objectz00(obj_t);
	static obj_t BGl_z62cleanupzd2nodez12za2zzcfa_arithmeticz00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_lastzd2pairzd2zz__r4_pairs_and_lists_6_3z00(obj_t);
	extern obj_t BGl_approxzd2setzd2typez12z12zzcfa_approxz00(BgL_approxz00_bglt,
		BgL_typez00_bglt);
	extern obj_t BGl_funcallz00zzast_nodez00;
	static BgL_approxz00_bglt
		BGl_z62cfaz12zd2arithmeticzd2app1596z70zzcfa_arithmeticz00(obj_t, obj_t);
	static obj_t __cnst[3];


	   
		 
		DEFINE_STRING(BGl_string2144z00zzcfa_arithmeticz00,
		BgL_bgl_string2144za700za7za7c2170za7, "cleanup-node!1558", 17);
	      DEFINE_STRING(BGl_string2146z00zzcfa_arithmeticz00,
		BgL_bgl_string2146za700za7za7c2171za7, "cleanup-node!", 13);
	      DEFINE_STRING(BGl_string2163z00zzcfa_arithmeticz00,
		BgL_bgl_string2163za700za7za7c2172za7, "node-setup!", 11);
	      DEFINE_STRING(BGl_string2165z00zzcfa_arithmeticz00,
		BgL_bgl_string2165za700za7za7c2173za7, "cfa!::approx", 12);
	      DEFINE_STRING(BGl_string2166z00zzcfa_arithmeticz00,
		BgL_bgl_string2166za700za7za7c2174za7, "Illegal arithmetic node", 23);
	      DEFINE_STRING(BGl_string2167z00zzcfa_arithmeticz00,
		BgL_bgl_string2167za700za7za7c2175za7, "cfa_arithmetic", 14);
	      DEFINE_STRING(BGl_string2168z00zzcfa_arithmeticz00,
		BgL_bgl_string2168za700za7za7c2176za7, "all c-eq? arithmetic-app ", 25);
	extern obj_t BGl_cfaz12zd2envzc0zzcfa_cfaz00;
	extern obj_t BGl_nodezd2setupz12zd2envz12zzcfa_setupz00;
	   
		 
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2143z00zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2177z00,
		BGl_z62cleanupzd2nodez121558za2zzcfa_arithmeticz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2145z00zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2178z00,
		BGl_z62cleanupzd2nodez12zd2sequen1561z70zzcfa_arithmeticz00, 0L, BUNSPEC,
		1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2147z00zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2179z00,
		BGl_z62cleanupzd2nodez12zd2sync1563z70zzcfa_arithmeticz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2148z00zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2180z00,
		BGl_z62cleanupzd2nodez12zd2setq1565z70zzcfa_arithmeticz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2149z00zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2181z00,
		BGl_z62cleanupzd2nodez12zd2condit1567z70zzcfa_arithmeticz00, 0L, BUNSPEC,
		1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2150z00zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2182z00,
		BGl_z62cleanupzd2nodez12zd2fail1569z70zzcfa_arithmeticz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2151z00zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2183z00,
		BGl_z62cleanupzd2nodez12zd2switch1571z70zzcfa_arithmeticz00, 0L, BUNSPEC,
		1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2152z00zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2184z00,
		BGl_z62cleanupzd2nodez12zd2letzd2fu1573za2zzcfa_arithmeticz00, 0L, BUNSPEC,
		1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2153z00zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2185z00,
		BGl_z62cleanupzd2nodez12zd2letzd2va1576za2zzcfa_arithmeticz00, 0L, BUNSPEC,
		1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2154z00zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2186z00,
		BGl_z62cleanupzd2nodez12zd2setzd2ex1578za2zzcfa_arithmeticz00, 0L, BUNSPEC,
		1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2155z00zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2187z00,
		BGl_z62cleanupzd2nodez12zd2jumpzd2e1580za2zzcfa_arithmeticz00, 0L, BUNSPEC,
		1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2156z00zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2188z00,
		BGl_z62cleanupzd2nodez12zd2makezd2b1582za2zzcfa_arithmeticz00, 0L, BUNSPEC,
		1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2157z00zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2189z00,
		BGl_z62cleanupzd2nodez12zd2boxzd2re1584za2zzcfa_arithmeticz00, 0L, BUNSPEC,
		1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2158z00zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2190z00,
		BGl_z62cleanupzd2nodez12zd2boxzd2se1586za2zzcfa_arithmeticz00, 0L, BUNSPEC,
		1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2159z00zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2191z00,
		BGl_z62cleanupzd2nodez12zd2appzd2ly1588za2zzcfa_arithmeticz00, 0L, BUNSPEC,
		1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2160z00zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2192z00,
		BGl_z62cleanupzd2nodez12zd2funcal1590z70zzcfa_arithmeticz00, 0L, BUNSPEC,
		1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2161z00zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2193z00,
		BGl_z62cleanupzd2nodez12zd2app1592z70zzcfa_arithmeticz00, 0L, BUNSPEC, 1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2162z00zzcfa_arithmeticz00,
		BgL_bgl_za762nodeza7d2setupza72194za7,
		BGl_z62nodezd2setupz12zd2prezd2arit1594za2zzcfa_arithmeticz00, 0L, BUNSPEC,
		1);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2164z00zzcfa_arithmeticz00,
		BgL_bgl_za762cfaza712za7d2arit2195za7,
		BGl_z62cfaz12zd2arithmeticzd2app1596z70zzcfa_arithmeticz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_cleanupzd2arithmeticzd2nodesz12zd2envzc0zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2ari2196z00,
		BGl_z62cleanupzd2arithmeticzd2nodesz12z70zzcfa_arithmeticz00, 0L, BUNSPEC,
		1);
	     
		DEFINE_STATIC_BGL_GENERIC(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
		BgL_bgl_za762cleanupza7d2nod2197z00,
		BGl_z62cleanupzd2nodez12za2zzcfa_arithmeticz00, 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_requirezd2initializa7ationz75zzcfa_arithmeticz00));
		     ADD_ROOT((void
				*) (&BGl_za2arithmeticzd2nodesza2zd2zzcfa_arithmeticz00));
#undef ADD_ROOT
		if   (roots_max > 0)
			     GC_add_roots(roots_min, ((void **) roots_max) + 1);
#endif
		     return BUNSPEC;
	}



/* module-initialization */
	BGL_EXPORTED_DEF obj_t
		BGl_modulezd2initializa7ationz75zzcfa_arithmeticz00(long
		BgL_checksumz00_4650, char *BgL_fromz00_4651)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zzcfa_arithmeticz00))
				{
					BGl_requirezd2initializa7ationz75zzcfa_arithmeticz00 =
						BBOOL(((bool_t) 0));
					BGl_gczd2rootszd2initz00zzcfa_arithmeticz00();
					BGl_libraryzd2moduleszd2initz00zzcfa_arithmeticz00();
					BGl_cnstzd2initzd2zzcfa_arithmeticz00();
					BGl_importedzd2moduleszd2initz00zzcfa_arithmeticz00();
					BGl_genericzd2initzd2zzcfa_arithmeticz00();
					BGl_methodzd2initzd2zzcfa_arithmeticz00();
					return BGl_toplevelzd2initzd2zzcfa_arithmeticz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* library-modules-init */
	obj_t BGl_libraryzd2moduleszd2initz00zzcfa_arithmeticz00(void)
	{
		{	/* Cfa/arithmetic.scm 28 */
			BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(0L,
				"cfa_arithmetic");
			BGl_modulezd2initializa7ationz75zz__errorz00(0L, "cfa_arithmetic");
			BGl_modulezd2initializa7ationz75zz__objectz00(0L, "cfa_arithmetic");
			BGl_modulezd2initializa7ationz75zz__readerz00(0L, "cfa_arithmetic");
			BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(0L,
				"cfa_arithmetic");
			BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(0L,
				"cfa_arithmetic");
			BGl_modulezd2initializa7ationz75zz__bitz00(0L, "cfa_arithmetic");
			BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(0L,
				"cfa_arithmetic");
			BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(0L,
				"cfa_arithmetic");
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(0L,
				"cfa_arithmetic");
			return BUNSPEC;
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zzcfa_arithmeticz00(void)
	{
		{	/* Cfa/arithmetic.scm 28 */
			{	/* Cfa/arithmetic.scm 28 */
				obj_t BgL_cportz00_4477;

				{	/* Cfa/arithmetic.scm 28 */
					obj_t BgL_stringz00_4484;

					BgL_stringz00_4484 = BGl_string2168z00zzcfa_arithmeticz00;
					{	/* Cfa/arithmetic.scm 28 */
						obj_t BgL_startz00_4485;

						BgL_startz00_4485 = BINT(0L);
						{	/* Cfa/arithmetic.scm 28 */
							obj_t BgL_endz00_4486;

							BgL_endz00_4486 =
								BINT(STRING_LENGTH(((obj_t) BgL_stringz00_4484)));
							{	/* Cfa/arithmetic.scm 28 */

								BgL_cportz00_4477 =
									BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00
									(BgL_stringz00_4484, BgL_startz00_4485, BgL_endz00_4486);
				}}}}
				{
					long BgL_iz00_4478;

					BgL_iz00_4478 = 2L;
				BgL_loopz00_4479:
					if ((BgL_iz00_4478 == -1L))
						{	/* Cfa/arithmetic.scm 28 */
							return BUNSPEC;
						}
					else
						{	/* Cfa/arithmetic.scm 28 */
							{	/* Cfa/arithmetic.scm 28 */
								obj_t BgL_arg2169z00_4480;

								{	/* Cfa/arithmetic.scm 28 */

									{	/* Cfa/arithmetic.scm 28 */
										obj_t BgL_locationz00_4482;

										BgL_locationz00_4482 = BBOOL(((bool_t) 0));
										{	/* Cfa/arithmetic.scm 28 */

											BgL_arg2169z00_4480 =
												BGl_readz00zz__readerz00(BgL_cportz00_4477,
												BgL_locationz00_4482);
										}
									}
								}
								{	/* Cfa/arithmetic.scm 28 */
									int BgL_tmpz00_4681;

									BgL_tmpz00_4681 = (int) (BgL_iz00_4478);
									CNST_TABLE_SET(BgL_tmpz00_4681, BgL_arg2169z00_4480);
							}}
							{	/* Cfa/arithmetic.scm 28 */
								int BgL_auxz00_4483;

								BgL_auxz00_4483 = (int) ((BgL_iz00_4478 - 1L));
								{
									long BgL_iz00_4686;

									BgL_iz00_4686 = (long) (BgL_auxz00_4483);
									BgL_iz00_4478 = BgL_iz00_4686;
									goto BgL_loopz00_4479;
								}
							}
						}
				}
			}
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zzcfa_arithmeticz00(void)
	{
		{	/* Cfa/arithmetic.scm 28 */
			return bgl_gc_roots_register();
		}

	}



/* toplevel-init */
	obj_t BGl_toplevelzd2initzd2zzcfa_arithmeticz00(void)
	{
		{	/* Cfa/arithmetic.scm 28 */
			BGl_za2arithmeticzd2nodesza2zd2zzcfa_arithmeticz00 = BNIL;
			return BUNSPEC;
		}

	}



/* cleanup-arithmetic-nodes! */
	BGL_EXPORTED_DEF obj_t
		BGl_cleanupzd2arithmeticzd2nodesz12z12zzcfa_arithmeticz00(obj_t
		BgL_globalsz00_3)
	{
		{	/* Cfa/arithmetic.scm 52 */
			{
				obj_t BgL_l1522z00_2991;

				BgL_l1522z00_2991 = BGl_za2arithmeticzd2nodesza2zd2zzcfa_arithmeticz00;
			BgL_zc3z04anonymousza31607ze3z87_2992:
				if (PAIRP(BgL_l1522z00_2991))
					{	/* Cfa/arithmetic.scm 63 */
						{	/* Cfa/arithmetic.scm 64 */
							obj_t BgL_nodez00_2994;

							BgL_nodez00_2994 = CAR(BgL_l1522z00_2991);
							{	/* Cfa/arithmetic.scm 65 */
								BgL_variablez00_bglt BgL_fz00_2996;

								BgL_fz00_2996 =
									(((BgL_varz00_bglt) COBJECT(
											(((BgL_appz00_bglt) COBJECT(
														((BgL_appz00_bglt)
															((BgL_appz00_bglt) BgL_nodez00_2994))))->
												BgL_funz00)))->BgL_variablez00);
								{	/* Cfa/arithmetic.scm 65 */
									BgL_valuez00_bglt BgL_valz00_2997;

									BgL_valz00_2997 =
										(((BgL_variablez00_bglt) COBJECT(BgL_fz00_2996))->
										BgL_valuez00);
									{	/* Cfa/arithmetic.scm 66 */

										{	/* Cfa/arithmetic.scm 68 */
											bool_t BgL_test2201z00_4697;

											{	/* Cfa/arithmetic.scm 68 */
												BgL_typez00_bglt BgL_arg1613z00_3000;

												BgL_arg1613z00_3000 =
													(((BgL_variablez00_bglt) COBJECT(BgL_fz00_2996))->
													BgL_typez00);
												BgL_test2201z00_4697 =
													(((obj_t) BgL_arg1613z00_3000) ==
													BGl_za2_za2z00zztype_cachez00);
											}
											if (BgL_test2201z00_4697)
												{	/* Cfa/arithmetic.scm 69 */
													BgL_typez00_bglt BgL_vz00_3949;

													BgL_vz00_3949 =
														((BgL_typez00_bglt)
														BGl_za2objza2z00zztype_cachez00);
													((((BgL_variablez00_bglt) COBJECT(BgL_fz00_2996))->
															BgL_typez00) =
														((BgL_typez00_bglt) BgL_vz00_3949), BUNSPEC);
												}
											else
												{	/* Cfa/arithmetic.scm 68 */
													BFALSE;
												}
										}
										{	/* Cfa/arithmetic.scm 70 */
											bool_t BgL_test2202z00_4703;

											{	/* Cfa/arithmetic.scm 70 */
												BgL_typez00_bglt BgL_arg1616z00_3003;

												BgL_arg1616z00_3003 =
													(((BgL_nodez00_bglt) COBJECT(
															((BgL_nodez00_bglt) BgL_nodez00_2994)))->
													BgL_typez00);
												BgL_test2202z00_4703 =
													(((obj_t) BgL_arg1616z00_3003) ==
													BGl_za2_za2z00zztype_cachez00);
											}
											if (BgL_test2202z00_4703)
												{	/* Cfa/arithmetic.scm 71 */
													BgL_typez00_bglt BgL_vz00_3952;

													BgL_vz00_3952 =
														((BgL_typez00_bglt)
														BGl_za2objza2z00zztype_cachez00);
													((((BgL_nodez00_bglt) COBJECT(((BgL_nodez00_bglt)
																		BgL_nodez00_2994)))->BgL_typez00) =
														((BgL_typez00_bglt) BgL_vz00_3952), BUNSPEC);
												}
											else
												{	/* Cfa/arithmetic.scm 70 */
													BFALSE;
												}
										}
										{	/* Cfa/arithmetic.scm 73 */
											bool_t BgL_test2203z00_4711;

											{	/* Cfa/arithmetic.scm 73 */
												obj_t BgL_classz00_3953;

												BgL_classz00_3953 = BGl_sfunz00zzast_varz00;
												{	/* Cfa/arithmetic.scm 73 */
													BgL_objectz00_bglt BgL_arg1801z00_3955;

													{	/* Cfa/arithmetic.scm 73 */
														obj_t BgL_tmpz00_4712;

														BgL_tmpz00_4712 =
															((obj_t) ((BgL_objectz00_bglt) BgL_valz00_2997));
														BgL_arg1801z00_3955 =
															(BgL_objectz00_bglt) (BgL_tmpz00_4712);
													}
													if (BGL_CONDEXPAND_ISA_ARCH64())
														{	/* Cfa/arithmetic.scm 73 */
															long BgL_idxz00_3961;

															BgL_idxz00_3961 =
																BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_3955);
															BgL_test2203z00_4711 =
																(VECTOR_REF
																(BGl_za2inheritancesza2z00zz__objectz00,
																	(BgL_idxz00_3961 + 3L)) == BgL_classz00_3953);
														}
													else
														{	/* Cfa/arithmetic.scm 73 */
															bool_t BgL_res2126z00_3983;

															{	/* Cfa/arithmetic.scm 73 */
																obj_t BgL_oclassz00_3969;

																{	/* Cfa/arithmetic.scm 73 */
																	long BgL_arg1808z00_3975;

																	{	/* Cfa/arithmetic.scm 73 */
																		long BgL_arg1809z00_3976;

																		BgL_arg1809z00_3976 =
																			BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_3955);
																		BgL_arg1808z00_3975 =
																			(BgL_arg1809z00_3976 - OBJECT_TYPE);
																	}
																	BgL_oclassz00_3969 =
																		VECTOR_REF
																		(BGl_za2classesza2z00zz__objectz00,
																		BgL_arg1808z00_3975);
																}
																{	/* Cfa/arithmetic.scm 73 */
																	bool_t BgL__ortest_1115z00_3970;

																	BgL__ortest_1115z00_3970 =
																		(BgL_classz00_3953 == BgL_oclassz00_3969);
																	if (BgL__ortest_1115z00_3970)
																		{	/* Cfa/arithmetic.scm 73 */
																			BgL_res2126z00_3983 =
																				BgL__ortest_1115z00_3970;
																		}
																	else
																		{	/* Cfa/arithmetic.scm 73 */
																			long BgL_odepthz00_3971;

																			BgL_odepthz00_3971 =
																				BGL_CLASS_DEPTH(BgL_oclassz00_3969);
																			if ((3L < BgL_odepthz00_3971))
																				{	/* Cfa/arithmetic.scm 73 */
																					obj_t BgL_arg1797z00_3973;

																					BgL_arg1797z00_3973 =
																						BGL_CLASS_ANCESTORS_REF
																						(BgL_oclassz00_3969, 3L);
																					BgL_res2126z00_3983 =
																						(BgL_arg1797z00_3973 ==
																						BgL_classz00_3953);
																				}
																			else
																				{	/* Cfa/arithmetic.scm 73 */
																					BgL_res2126z00_3983 = ((bool_t) 0);
																				}
																		}
																}
															}
															BgL_test2203z00_4711 = BgL_res2126z00_3983;
														}
												}
											}
											if (BgL_test2203z00_4711)
												{	/* Cfa/arithmetic.scm 74 */
													obj_t BgL_arg1620z00_3005;

													{	/* Cfa/arithmetic.scm 74 */
														obj_t BgL_l1516z00_3006;

														BgL_l1516z00_3006 =
															(((BgL_sfunz00_bglt) COBJECT(
																	((BgL_sfunz00_bglt) BgL_valz00_2997)))->
															BgL_argsz00);
														if (NULLP(BgL_l1516z00_3006))
															{	/* Cfa/arithmetic.scm 74 */
																BgL_arg1620z00_3005 = BNIL;
															}
														else
															{	/* Cfa/arithmetic.scm 74 */
																obj_t BgL_head1518z00_3008;

																{	/* Cfa/arithmetic.scm 74 */
																	obj_t BgL_arg1639z00_3020;

																	{	/* Cfa/arithmetic.scm 74 */
																		obj_t BgL_arg1649z00_3021;

																		BgL_arg1649z00_3021 =
																			CAR(((obj_t) BgL_l1516z00_3006));
																		BgL_arg1639z00_3020 =
																			BGl_cleanupzd2typeze70z35zzcfa_arithmeticz00
																			(BgL_arg1649z00_3021);
																	}
																	BgL_head1518z00_3008 =
																		MAKE_YOUNG_PAIR(BgL_arg1639z00_3020, BNIL);
																}
																{	/* Cfa/arithmetic.scm 74 */
																	obj_t BgL_g1521z00_3009;

																	BgL_g1521z00_3009 =
																		CDR(((obj_t) BgL_l1516z00_3006));
																	{
																		obj_t BgL_l1516z00_3011;
																		obj_t BgL_tail1519z00_3012;

																		BgL_l1516z00_3011 = BgL_g1521z00_3009;
																		BgL_tail1519z00_3012 = BgL_head1518z00_3008;
																	BgL_zc3z04anonymousza31622ze3z87_3013:
																		if (NULLP(BgL_l1516z00_3011))
																			{	/* Cfa/arithmetic.scm 74 */
																				BgL_arg1620z00_3005 =
																					BgL_head1518z00_3008;
																			}
																		else
																			{	/* Cfa/arithmetic.scm 74 */
																				obj_t BgL_newtail1520z00_3015;

																				{	/* Cfa/arithmetic.scm 74 */
																					obj_t BgL_arg1629z00_3017;

																					{	/* Cfa/arithmetic.scm 74 */
																						obj_t BgL_arg1630z00_3018;

																						BgL_arg1630z00_3018 =
																							CAR(((obj_t) BgL_l1516z00_3011));
																						BgL_arg1629z00_3017 =
																							BGl_cleanupzd2typeze70z35zzcfa_arithmeticz00
																							(BgL_arg1630z00_3018);
																					}
																					BgL_newtail1520z00_3015 =
																						MAKE_YOUNG_PAIR(BgL_arg1629z00_3017,
																						BNIL);
																				}
																				SET_CDR(BgL_tail1519z00_3012,
																					BgL_newtail1520z00_3015);
																				{	/* Cfa/arithmetic.scm 74 */
																					obj_t BgL_arg1628z00_3016;

																					BgL_arg1628z00_3016 =
																						CDR(((obj_t) BgL_l1516z00_3011));
																					{
																						obj_t BgL_tail1519z00_4752;
																						obj_t BgL_l1516z00_4751;

																						BgL_l1516z00_4751 =
																							BgL_arg1628z00_3016;
																						BgL_tail1519z00_4752 =
																							BgL_newtail1520z00_3015;
																						BgL_tail1519z00_3012 =
																							BgL_tail1519z00_4752;
																						BgL_l1516z00_3011 =
																							BgL_l1516z00_4751;
																						goto
																							BgL_zc3z04anonymousza31622ze3z87_3013;
																					}
																				}
																			}
																	}
																}
															}
													}
													((((BgL_sfunz00_bglt) COBJECT(
																	((BgL_sfunz00_bglt) BgL_valz00_2997)))->
															BgL_argsz00) =
														((obj_t) BgL_arg1620z00_3005), BUNSPEC);
												}
											else
												{	/* Cfa/arithmetic.scm 75 */
													bool_t BgL_test2209z00_4755;

													{	/* Cfa/arithmetic.scm 75 */
														obj_t BgL_classz00_3991;

														BgL_classz00_3991 = BGl_cfunz00zzast_varz00;
														{	/* Cfa/arithmetic.scm 75 */
															BgL_objectz00_bglt BgL_arg1801z00_3993;

															{	/* Cfa/arithmetic.scm 75 */
																obj_t BgL_tmpz00_4756;

																BgL_tmpz00_4756 =
																	((obj_t)
																	((BgL_objectz00_bglt) BgL_valz00_2997));
																BgL_arg1801z00_3993 =
																	(BgL_objectz00_bglt) (BgL_tmpz00_4756);
															}
															if (BGL_CONDEXPAND_ISA_ARCH64())
																{	/* Cfa/arithmetic.scm 75 */
																	long BgL_idxz00_3999;

																	BgL_idxz00_3999 =
																		BGL_OBJECT_INHERITANCE_NUM
																		(BgL_arg1801z00_3993);
																	BgL_test2209z00_4755 =
																		(VECTOR_REF
																		(BGl_za2inheritancesza2z00zz__objectz00,
																			(BgL_idxz00_3999 + 3L)) ==
																		BgL_classz00_3991);
																}
															else
																{	/* Cfa/arithmetic.scm 75 */
																	bool_t BgL_res2127z00_4021;

																	{	/* Cfa/arithmetic.scm 75 */
																		obj_t BgL_oclassz00_4007;

																		{	/* Cfa/arithmetic.scm 75 */
																			long BgL_arg1808z00_4013;

																			{	/* Cfa/arithmetic.scm 75 */
																				long BgL_arg1809z00_4014;

																				BgL_arg1809z00_4014 =
																					BGL_OBJECT_CLASS_NUM
																					(BgL_arg1801z00_3993);
																				BgL_arg1808z00_4013 =
																					(BgL_arg1809z00_4014 - OBJECT_TYPE);
																			}
																			BgL_oclassz00_4007 =
																				VECTOR_REF
																				(BGl_za2classesza2z00zz__objectz00,
																				BgL_arg1808z00_4013);
																		}
																		{	/* Cfa/arithmetic.scm 75 */
																			bool_t BgL__ortest_1115z00_4008;

																			BgL__ortest_1115z00_4008 =
																				(BgL_classz00_3991 ==
																				BgL_oclassz00_4007);
																			if (BgL__ortest_1115z00_4008)
																				{	/* Cfa/arithmetic.scm 75 */
																					BgL_res2127z00_4021 =
																						BgL__ortest_1115z00_4008;
																				}
																			else
																				{	/* Cfa/arithmetic.scm 75 */
																					long BgL_odepthz00_4009;

																					BgL_odepthz00_4009 =
																						BGL_CLASS_DEPTH(BgL_oclassz00_4007);
																					if ((3L < BgL_odepthz00_4009))
																						{	/* Cfa/arithmetic.scm 75 */
																							obj_t BgL_arg1797z00_4011;

																							BgL_arg1797z00_4011 =
																								BGL_CLASS_ANCESTORS_REF
																								(BgL_oclassz00_4007, 3L);
																							BgL_res2127z00_4021 =
																								(BgL_arg1797z00_4011 ==
																								BgL_classz00_3991);
																						}
																					else
																						{	/* Cfa/arithmetic.scm 75 */
																							BgL_res2127z00_4021 =
																								((bool_t) 0);
																						}
																				}
																		}
																	}
																	BgL_test2209z00_4755 = BgL_res2127z00_4021;
																}
														}
													}
													if (BgL_test2209z00_4755)
														{	/* Cfa/arithmetic.scm 76 */
															obj_t BgL_g1166z00_3023;

															BgL_g1166z00_3023 =
																(((BgL_cfunz00_bglt) COBJECT(
																		((BgL_cfunz00_bglt) BgL_valz00_2997)))->
																BgL_argszd2typezd2);
															{
																obj_t BgL_lz00_3025;

																{	/* Cfa/arithmetic.scm 76 */
																	bool_t BgL_tmpz00_4778;

																	BgL_lz00_3025 = BgL_g1166z00_3023;
																BgL_zc3z04anonymousza31651ze3z87_3026:
																	if (PAIRP(BgL_lz00_3025))
																		{	/* Cfa/arithmetic.scm 77 */
																			{	/* Cfa/arithmetic.scm 79 */
																				obj_t BgL_tmpz00_4781;

																				BgL_tmpz00_4781 =
																					BGl_cleanupzd2typeze70z35zzcfa_arithmeticz00
																					(CAR(BgL_lz00_3025));
																				SET_CAR(BgL_lz00_3025, BgL_tmpz00_4781);
																			}
																			{
																				obj_t BgL_lz00_4785;

																				BgL_lz00_4785 = CDR(BgL_lz00_3025);
																				BgL_lz00_3025 = BgL_lz00_4785;
																				goto
																					BgL_zc3z04anonymousza31651ze3z87_3026;
																			}
																		}
																	else
																		{	/* Cfa/arithmetic.scm 77 */
																			BgL_tmpz00_4778 = ((bool_t) 0);
																		}
																	BBOOL(BgL_tmpz00_4778);
																}
															}
														}
													else
														{	/* Cfa/arithmetic.scm 75 */
															BFALSE;
														}
												}
										}
									}
								}
							}
						}
						{
							obj_t BgL_l1522z00_4788;

							BgL_l1522z00_4788 = CDR(BgL_l1522z00_2991);
							BgL_l1522z00_2991 = BgL_l1522z00_4788;
							goto BgL_zc3z04anonymousza31607ze3z87_2992;
						}
					}
				else
					{	/* Cfa/arithmetic.scm 63 */
						((bool_t) 1);
					}
			}
			{
				obj_t BgL_l1524z00_3036;

				BgL_l1524z00_3036 = BgL_globalsz00_3;
			BgL_zc3z04anonymousza31676ze3z87_3037:
				if (PAIRP(BgL_l1524z00_3036))
					{	/* Cfa/arithmetic.scm 83 */
						{	/* Cfa/arithmetic.scm 83 */
							obj_t BgL_arg1681z00_3039;

							BgL_arg1681z00_3039 = CAR(BgL_l1524z00_3036);
							{	/* Cfa/arithmetic.scm 90 */
								BgL_valuez00_bglt BgL_funz00_4028;

								BgL_funz00_4028 =
									(((BgL_variablez00_bglt) COBJECT(
											((BgL_variablez00_bglt) BgL_arg1681z00_3039)))->
									BgL_valuez00);
								{	/* Cfa/arithmetic.scm 90 */
									obj_t BgL_bodyz00_4029;

									BgL_bodyz00_4029 =
										(((BgL_sfunz00_bglt) COBJECT(
												((BgL_sfunz00_bglt) BgL_funz00_4028)))->BgL_bodyz00);
									{	/* Cfa/arithmetic.scm 91 */

										BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
											((BgL_nodez00_bglt) BgL_bodyz00_4029));
									}
								}
							}
						}
						{
							obj_t BgL_l1524z00_4799;

							BgL_l1524z00_4799 = CDR(BgL_l1524z00_3036);
							BgL_l1524z00_3036 = BgL_l1524z00_4799;
							goto BgL_zc3z04anonymousza31676ze3z87_3037;
						}
					}
				else
					{	/* Cfa/arithmetic.scm 83 */
						((bool_t) 1);
					}
			}
			return BgL_globalsz00_3;
		}

	}



/* cleanup-type~0 */
	obj_t BGl_cleanupzd2typeze70z35zzcfa_arithmeticz00(obj_t BgL_tz00_3042)
	{
		{	/* Cfa/arithmetic.scm 62 */
			{	/* Cfa/arithmetic.scm 55 */
				bool_t BgL_test2215z00_4801;

				{	/* Cfa/arithmetic.scm 55 */
					obj_t BgL_classz00_3879;

					BgL_classz00_3879 = BGl_typez00zztype_typez00;
					if (BGL_OBJECTP(BgL_tz00_3042))
						{	/* Cfa/arithmetic.scm 55 */
							BgL_objectz00_bglt BgL_arg1801z00_3881;

							BgL_arg1801z00_3881 = (BgL_objectz00_bglt) (BgL_tz00_3042);
							if (BGL_CONDEXPAND_ISA_ARCH64())
								{	/* Cfa/arithmetic.scm 55 */
									long BgL_idxz00_3887;

									BgL_idxz00_3887 =
										BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_3881);
									BgL_test2215z00_4801 =
										(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
											(BgL_idxz00_3887 + 1L)) == BgL_classz00_3879);
								}
							else
								{	/* Cfa/arithmetic.scm 55 */
									bool_t BgL_res2124z00_3909;

									{	/* Cfa/arithmetic.scm 55 */
										obj_t BgL_oclassz00_3895;

										{	/* Cfa/arithmetic.scm 55 */
											long BgL_arg1808z00_3901;

											{	/* Cfa/arithmetic.scm 55 */
												long BgL_arg1809z00_3902;

												BgL_arg1809z00_3902 =
													BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_3881);
												BgL_arg1808z00_3901 =
													(BgL_arg1809z00_3902 - OBJECT_TYPE);
											}
											BgL_oclassz00_3895 =
												VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
												BgL_arg1808z00_3901);
										}
										{	/* Cfa/arithmetic.scm 55 */
											bool_t BgL__ortest_1115z00_3896;

											BgL__ortest_1115z00_3896 =
												(BgL_classz00_3879 == BgL_oclassz00_3895);
											if (BgL__ortest_1115z00_3896)
												{	/* Cfa/arithmetic.scm 55 */
													BgL_res2124z00_3909 = BgL__ortest_1115z00_3896;
												}
											else
												{	/* Cfa/arithmetic.scm 55 */
													long BgL_odepthz00_3897;

													BgL_odepthz00_3897 =
														BGL_CLASS_DEPTH(BgL_oclassz00_3895);
													if ((1L < BgL_odepthz00_3897))
														{	/* Cfa/arithmetic.scm 55 */
															obj_t BgL_arg1797z00_3899;

															BgL_arg1797z00_3899 =
																BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_3895, 1L);
															BgL_res2124z00_3909 =
																(BgL_arg1797z00_3899 == BgL_classz00_3879);
														}
													else
														{	/* Cfa/arithmetic.scm 55 */
															BgL_res2124z00_3909 = ((bool_t) 0);
														}
												}
										}
									}
									BgL_test2215z00_4801 = BgL_res2124z00_3909;
								}
						}
					else
						{	/* Cfa/arithmetic.scm 55 */
							BgL_test2215z00_4801 = ((bool_t) 0);
						}
				}
				if (BgL_test2215z00_4801)
					{	/* Cfa/arithmetic.scm 55 */
						if ((BgL_tz00_3042 == BGl_za2_za2z00zztype_cachez00))
							{	/* Cfa/arithmetic.scm 56 */
								return BGl_za2objza2z00zztype_cachez00;
							}
						else
							{	/* Cfa/arithmetic.scm 56 */
								return BgL_tz00_3042;
							}
					}
				else
					{	/* Cfa/arithmetic.scm 57 */
						bool_t BgL_test2221z00_4823;

						{	/* Cfa/arithmetic.scm 57 */
							obj_t BgL_classz00_3910;

							BgL_classz00_3910 = BGl_localz00zzast_varz00;
							if (BGL_OBJECTP(BgL_tz00_3042))
								{	/* Cfa/arithmetic.scm 57 */
									BgL_objectz00_bglt BgL_arg1801z00_3912;

									BgL_arg1801z00_3912 = (BgL_objectz00_bglt) (BgL_tz00_3042);
									if (BGL_CONDEXPAND_ISA_ARCH64())
										{	/* Cfa/arithmetic.scm 57 */
											long BgL_idxz00_3918;

											BgL_idxz00_3918 =
												BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_3912);
											BgL_test2221z00_4823 =
												(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
													(BgL_idxz00_3918 + 2L)) == BgL_classz00_3910);
										}
									else
										{	/* Cfa/arithmetic.scm 57 */
											bool_t BgL_res2125z00_3940;

											{	/* Cfa/arithmetic.scm 57 */
												obj_t BgL_oclassz00_3926;

												{	/* Cfa/arithmetic.scm 57 */
													long BgL_arg1808z00_3932;

													{	/* Cfa/arithmetic.scm 57 */
														long BgL_arg1809z00_3933;

														BgL_arg1809z00_3933 =
															BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_3912);
														BgL_arg1808z00_3932 =
															(BgL_arg1809z00_3933 - OBJECT_TYPE);
													}
													BgL_oclassz00_3926 =
														VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
														BgL_arg1808z00_3932);
												}
												{	/* Cfa/arithmetic.scm 57 */
													bool_t BgL__ortest_1115z00_3927;

													BgL__ortest_1115z00_3927 =
														(BgL_classz00_3910 == BgL_oclassz00_3926);
													if (BgL__ortest_1115z00_3927)
														{	/* Cfa/arithmetic.scm 57 */
															BgL_res2125z00_3940 = BgL__ortest_1115z00_3927;
														}
													else
														{	/* Cfa/arithmetic.scm 57 */
															long BgL_odepthz00_3928;

															BgL_odepthz00_3928 =
																BGL_CLASS_DEPTH(BgL_oclassz00_3926);
															if ((2L < BgL_odepthz00_3928))
																{	/* Cfa/arithmetic.scm 57 */
																	obj_t BgL_arg1797z00_3930;

																	BgL_arg1797z00_3930 =
																		BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_3926,
																		2L);
																	BgL_res2125z00_3940 =
																		(BgL_arg1797z00_3930 == BgL_classz00_3910);
																}
															else
																{	/* Cfa/arithmetic.scm 57 */
																	BgL_res2125z00_3940 = ((bool_t) 0);
																}
														}
												}
											}
											BgL_test2221z00_4823 = BgL_res2125z00_3940;
										}
								}
							else
								{	/* Cfa/arithmetic.scm 57 */
									BgL_test2221z00_4823 = ((bool_t) 0);
								}
						}
						if (BgL_test2221z00_4823)
							{	/* Cfa/arithmetic.scm 57 */
								{	/* Cfa/arithmetic.scm 58 */
									bool_t BgL_test2226z00_4843;

									{	/* Cfa/arithmetic.scm 58 */
										BgL_typez00_bglt BgL_arg1693z00_3048;

										BgL_arg1693z00_3048 =
											(((BgL_variablez00_bglt) COBJECT(
													((BgL_variablez00_bglt)
														((BgL_localz00_bglt) BgL_tz00_3042))))->
											BgL_typez00);
										BgL_test2226z00_4843 =
											(((obj_t) BgL_arg1693z00_3048) ==
											BGl_za2_za2z00zztype_cachez00);
									}
									if (BgL_test2226z00_4843)
										{	/* Cfa/arithmetic.scm 59 */
											BgL_typez00_bglt BgL_vz00_3943;

											BgL_vz00_3943 =
												((BgL_typez00_bglt) BGl_za2objza2z00zztype_cachez00);
											((((BgL_variablez00_bglt) COBJECT(
															((BgL_variablez00_bglt)
																((BgL_localz00_bglt) BgL_tz00_3042))))->
													BgL_typez00) =
												((BgL_typez00_bglt) BgL_vz00_3943), BUNSPEC);
										}
									else
										{	/* Cfa/arithmetic.scm 58 */
											BFALSE;
										}
								}
								return BgL_tz00_3042;
							}
						else
							{	/* Cfa/arithmetic.scm 57 */
								return BgL_tz00_3042;
							}
					}
			}
		}

	}



/* &cleanup-arithmetic-nodes! */
	obj_t BGl_z62cleanupzd2arithmeticzd2nodesz12z70zzcfa_arithmeticz00(obj_t
		BgL_envz00_4411, obj_t BgL_globalsz00_4412)
	{
		{	/* Cfa/arithmetic.scm 52 */
			return
				BGl_cleanupzd2arithmeticzd2nodesz12z12zzcfa_arithmeticz00
				(BgL_globalsz00_4412);
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zzcfa_arithmeticz00(void)
	{
		{	/* Cfa/arithmetic.scm 28 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zzcfa_arithmeticz00(void)
	{
		{	/* Cfa/arithmetic.scm 28 */
			return
				BGl_registerzd2genericz12zc0zz__objectz00
				(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
				BGl_proc2143z00zzcfa_arithmeticz00, BGl_nodez00zzast_nodez00,
				BGl_string2144z00zzcfa_arithmeticz00);
		}

	}



/* &cleanup-node!1558 */
	obj_t BGl_z62cleanupzd2nodez121558za2zzcfa_arithmeticz00(obj_t
		BgL_envz00_4414, obj_t BgL_nodez00_4415)
	{
		{	/* Cfa/arithmetic.scm 97 */
			return BUNSPEC;
		}

	}



/* cleanup-node! */
	obj_t BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(BgL_nodez00_bglt
		BgL_nodez00_5)
	{
		{	/* Cfa/arithmetic.scm 97 */
			{	/* Cfa/arithmetic.scm 97 */
				obj_t BgL_method1559z00_3056;

				{	/* Cfa/arithmetic.scm 97 */
					obj_t BgL_res2132z00_4067;

					{	/* Cfa/arithmetic.scm 97 */
						long BgL_objzd2classzd2numz00_4038;

						BgL_objzd2classzd2numz00_4038 =
							BGL_OBJECT_CLASS_NUM(((BgL_objectz00_bglt) BgL_nodez00_5));
						{	/* Cfa/arithmetic.scm 97 */
							obj_t BgL_arg1805z00_4039;

							BgL_arg1805z00_4039 =
								PROCEDURE_REF(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
								(int) (1L));
							{	/* Cfa/arithmetic.scm 97 */
								int BgL_offsetz00_4042;

								BgL_offsetz00_4042 = (int) (BgL_objzd2classzd2numz00_4038);
								{	/* Cfa/arithmetic.scm 97 */
									long BgL_offsetz00_4043;

									BgL_offsetz00_4043 =
										((long) (BgL_offsetz00_4042) - OBJECT_TYPE);
									{	/* Cfa/arithmetic.scm 97 */
										long BgL_modz00_4044;

										BgL_modz00_4044 =
											(BgL_offsetz00_4043 >> (int) ((long) ((int) (4L))));
										{	/* Cfa/arithmetic.scm 97 */
											long BgL_restz00_4046;

											BgL_restz00_4046 =
												(BgL_offsetz00_4043 &
												(long) (
													(int) (
														((long) (
																(int) (
																	(1L <<
																		(int) ((long) ((int) (4L)))))) - 1L))));
											{	/* Cfa/arithmetic.scm 97 */

												{	/* Cfa/arithmetic.scm 97 */
													obj_t BgL_bucketz00_4048;

													BgL_bucketz00_4048 =
														VECTOR_REF(
														((obj_t) BgL_arg1805z00_4039), BgL_modz00_4044);
													BgL_res2132z00_4067 =
														VECTOR_REF(
														((obj_t) BgL_bucketz00_4048), BgL_restz00_4046);
					}}}}}}}}
					BgL_method1559z00_3056 = BgL_res2132z00_4067;
				}
				return
					(VA_PROCEDUREP(BgL_method1559z00_3056) ? ((obj_t(*)(obj_t,
								...))
						PROCEDURE_ENTRY(BgL_method1559z00_3056)) (BgL_method1559z00_3056,
						((obj_t) BgL_nodez00_5), BEOA) : ((obj_t(*)(obj_t,
								obj_t))
						PROCEDURE_ENTRY(BgL_method1559z00_3056)) (BgL_method1559z00_3056,
						((obj_t) BgL_nodez00_5)));
			}
		}

	}



/* &cleanup-node! */
	obj_t BGl_z62cleanupzd2nodez12za2zzcfa_arithmeticz00(obj_t BgL_envz00_4416,
		obj_t BgL_nodez00_4417)
	{
		{	/* Cfa/arithmetic.scm 97 */
			return
				BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				((BgL_nodez00_bglt) BgL_nodez00_4417));
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zzcfa_arithmeticz00(void)
	{
		{	/* Cfa/arithmetic.scm 28 */
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
				BGl_sequencez00zzast_nodez00, BGl_proc2145z00zzcfa_arithmeticz00,
				BGl_string2146z00zzcfa_arithmeticz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
				BGl_syncz00zzast_nodez00, BGl_proc2147z00zzcfa_arithmeticz00,
				BGl_string2146z00zzcfa_arithmeticz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
				BGl_setqz00zzast_nodez00, BGl_proc2148z00zzcfa_arithmeticz00,
				BGl_string2146z00zzcfa_arithmeticz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
				BGl_conditionalz00zzast_nodez00, BGl_proc2149z00zzcfa_arithmeticz00,
				BGl_string2146z00zzcfa_arithmeticz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
				BGl_failz00zzast_nodez00, BGl_proc2150z00zzcfa_arithmeticz00,
				BGl_string2146z00zzcfa_arithmeticz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
				BGl_switchz00zzast_nodez00, BGl_proc2151z00zzcfa_arithmeticz00,
				BGl_string2146z00zzcfa_arithmeticz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
				BGl_letzd2funzd2zzast_nodez00, BGl_proc2152z00zzcfa_arithmeticz00,
				BGl_string2146z00zzcfa_arithmeticz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
				BGl_letzd2varzd2zzast_nodez00, BGl_proc2153z00zzcfa_arithmeticz00,
				BGl_string2146z00zzcfa_arithmeticz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
				BGl_setzd2exzd2itz00zzast_nodez00, BGl_proc2154z00zzcfa_arithmeticz00,
				BGl_string2146z00zzcfa_arithmeticz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
				BGl_jumpzd2exzd2itz00zzast_nodez00, BGl_proc2155z00zzcfa_arithmeticz00,
				BGl_string2146z00zzcfa_arithmeticz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
				BGl_makezd2boxzd2zzast_nodez00, BGl_proc2156z00zzcfa_arithmeticz00,
				BGl_string2146z00zzcfa_arithmeticz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
				BGl_boxzd2refzd2zzast_nodez00, BGl_proc2157z00zzcfa_arithmeticz00,
				BGl_string2146z00zzcfa_arithmeticz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
				BGl_boxzd2setz12zc0zzast_nodez00, BGl_proc2158z00zzcfa_arithmeticz00,
				BGl_string2146z00zzcfa_arithmeticz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
				BGl_appzd2lyzd2zzast_nodez00, BGl_proc2159z00zzcfa_arithmeticz00,
				BGl_string2146z00zzcfa_arithmeticz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
				BGl_funcallz00zzast_nodez00, BGl_proc2160z00zzcfa_arithmeticz00,
				BGl_string2146z00zzcfa_arithmeticz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_cleanupzd2nodez12zd2envz12zzcfa_arithmeticz00,
				BGl_appz00zzast_nodez00, BGl_proc2161z00zzcfa_arithmeticz00,
				BGl_string2146z00zzcfa_arithmeticz00);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_nodezd2setupz12zd2envz12zzcfa_setupz00,
				BGl_prezd2arithmeticzd2appz00zzcfa_info2z00,
				BGl_proc2162z00zzcfa_arithmeticz00,
				BGl_string2163z00zzcfa_arithmeticz00);
			return
				BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_cfaz12zd2envzc0zzcfa_cfaz00, BGl_arithmeticzd2appzd2zzcfa_info2z00,
				BGl_proc2164z00zzcfa_arithmeticz00,
				BGl_string2165z00zzcfa_arithmeticz00);
		}

	}



/* &cfa!-arithmetic-app1596 */
	BgL_approxz00_bglt
		BGl_z62cfaz12zd2arithmeticzd2app1596z70zzcfa_arithmeticz00(obj_t
		BgL_envz00_4436, obj_t BgL_nodez00_4437)
	{
		{	/* Cfa/arithmetic.scm 288 */
			{
				obj_t BgL_argszd2approxzd2_4510;
				obj_t BgL_argszd2approxzd2_4500;
				obj_t BgL_typez00_4501;
				obj_t BgL_speczd2typeszd2_4502;
				obj_t BgL_argszd2approxzd2_4493;
				obj_t BgL_speczd2typeszd2_4494;

				{	/* Cfa/arithmetic.scm 329 */
					obj_t BgL_argszd2approxzd2_4516;

					{	/* Cfa/arithmetic.scm 329 */
						obj_t BgL_l1550z00_4517;

						BgL_l1550z00_4517 =
							(((BgL_appz00_bglt) COBJECT(
									((BgL_appz00_bglt)
										((BgL_appz00_bglt) BgL_nodez00_4437))))->BgL_argsz00);
						if (NULLP(BgL_l1550z00_4517))
							{	/* Cfa/arithmetic.scm 329 */
								BgL_argszd2approxzd2_4516 = BNIL;
							}
						else
							{	/* Cfa/arithmetic.scm 329 */
								obj_t BgL_head1552z00_4518;

								{	/* Cfa/arithmetic.scm 329 */
									BgL_approxz00_bglt BgL_arg1923z00_4519;

									{	/* Cfa/arithmetic.scm 329 */
										obj_t BgL_arg1924z00_4520;

										BgL_arg1924z00_4520 = CAR(((obj_t) BgL_l1550z00_4517));
										BgL_arg1923z00_4519 =
											BGl_cfaz12z12zzcfa_cfaz00(
											((BgL_nodez00_bglt) BgL_arg1924z00_4520));
									}
									BgL_head1552z00_4518 =
										MAKE_YOUNG_PAIR(((obj_t) BgL_arg1923z00_4519), BNIL);
								}
								{	/* Cfa/arithmetic.scm 329 */
									obj_t BgL_g1555z00_4521;

									BgL_g1555z00_4521 = CDR(((obj_t) BgL_l1550z00_4517));
									{
										obj_t BgL_l1550z00_4523;
										obj_t BgL_tail1553z00_4524;

										BgL_l1550z00_4523 = BgL_g1555z00_4521;
										BgL_tail1553z00_4524 = BgL_head1552z00_4518;
									BgL_zc3z04anonymousza31917ze3z87_4522:
										if (NULLP(BgL_l1550z00_4523))
											{	/* Cfa/arithmetic.scm 329 */
												BgL_argszd2approxzd2_4516 = BgL_head1552z00_4518;
											}
										else
											{	/* Cfa/arithmetic.scm 329 */
												obj_t BgL_newtail1554z00_4525;

												{	/* Cfa/arithmetic.scm 329 */
													BgL_approxz00_bglt BgL_arg1921z00_4526;

													{	/* Cfa/arithmetic.scm 329 */
														obj_t BgL_arg1922z00_4527;

														BgL_arg1922z00_4527 =
															CAR(((obj_t) BgL_l1550z00_4523));
														BgL_arg1921z00_4526 =
															BGl_cfaz12z12zzcfa_cfaz00(
															((BgL_nodez00_bglt) BgL_arg1922z00_4527));
													}
													BgL_newtail1554z00_4525 =
														MAKE_YOUNG_PAIR(
														((obj_t) BgL_arg1921z00_4526), BNIL);
												}
												SET_CDR(BgL_tail1553z00_4524, BgL_newtail1554z00_4525);
												{	/* Cfa/arithmetic.scm 329 */
													obj_t BgL_arg1920z00_4528;

													BgL_arg1920z00_4528 =
														CDR(((obj_t) BgL_l1550z00_4523));
													{
														obj_t BgL_tail1553z00_4930;
														obj_t BgL_l1550z00_4929;

														BgL_l1550z00_4929 = BgL_arg1920z00_4528;
														BgL_tail1553z00_4930 = BgL_newtail1554z00_4525;
														BgL_tail1553z00_4524 = BgL_tail1553z00_4930;
														BgL_l1550z00_4523 = BgL_l1550z00_4929;
														goto BgL_zc3z04anonymousza31917ze3z87_4522;
													}
												}
											}
									}
								}
							}
					}
					{	/* Cfa/arithmetic.scm 331 */
						obj_t BgL_tyz00_4529;

						BgL_argszd2approxzd2_4510 = BgL_argszd2approxzd2_4516;
						{
							obj_t BgL_argsz00_4512;

							BgL_argsz00_4512 = BgL_argszd2approxzd2_4510;
						BgL_loopz00_4511:
							if (NULLP(BgL_argsz00_4512))
								{	/* Cfa/arithmetic.scm 297 */
									BgL_tyz00_4529 = BFALSE;
								}
							else
								{	/* Cfa/arithmetic.scm 299 */
									obj_t BgL_tz00_4513;

									{	/* Cfa/arithmetic.scm 299 */
										BgL_typez00_bglt BgL_arg1930z00_4514;

										BgL_arg1930z00_4514 =
											(((BgL_approxz00_bglt) COBJECT(
													((BgL_approxz00_bglt)
														CAR(((obj_t) BgL_argsz00_4512)))))->BgL_typez00);
										if (
											(((obj_t) BgL_arg1930z00_4514) ==
												BGl_za2intza2z00zztype_cachez00))
											{	/* Cfa/arithmetic.scm 291 */
												BgL_tz00_4513 = BGl_za2longza2z00zztype_cachez00;
											}
										else
											{	/* Cfa/arithmetic.scm 291 */
												BgL_tz00_4513 = ((obj_t) BgL_arg1930z00_4514);
											}
									}
									if ((BgL_tz00_4513 == BGl_za2_za2z00zztype_cachez00))
										{	/* Cfa/arithmetic.scm 301 */
											obj_t BgL_arg1929z00_4515;

											BgL_arg1929z00_4515 = CDR(((obj_t) BgL_argsz00_4512));
											{
												obj_t BgL_argsz00_4945;

												BgL_argsz00_4945 = BgL_arg1929z00_4515;
												BgL_argsz00_4512 = BgL_argsz00_4945;
												goto BgL_loopz00_4511;
											}
										}
									else
										{	/* Cfa/arithmetic.scm 300 */
											BgL_tyz00_4529 = BgL_tz00_4513;
										}
								}
						}
						{	/* Cfa/arithmetic.scm 337 */
							bool_t BgL_test2232z00_4946;

							{	/* Cfa/arithmetic.scm 337 */
								obj_t BgL_arg1915z00_4530;

								{
									BgL_arithmeticzd2appzd2_bglt BgL_auxz00_4947;

									{
										obj_t BgL_auxz00_4948;

										{	/* Cfa/arithmetic.scm 337 */
											BgL_objectz00_bglt BgL_tmpz00_4949;

											BgL_tmpz00_4949 =
												((BgL_objectz00_bglt)
												((BgL_appz00_bglt) BgL_nodez00_4437));
											BgL_auxz00_4948 = BGL_OBJECT_WIDENING(BgL_tmpz00_4949);
										}
										BgL_auxz00_4947 =
											((BgL_arithmeticzd2appzd2_bglt) BgL_auxz00_4948);
									}
									BgL_arg1915z00_4530 =
										(((BgL_arithmeticzd2appzd2_bglt) COBJECT(BgL_auxz00_4947))->
										BgL_speczd2typeszd2);
								}
								BgL_argszd2approxzd2_4500 = BgL_argszd2approxzd2_4516;
								BgL_typez00_4501 = BgL_tyz00_4529;
								BgL_speczd2typeszd2_4502 = BgL_arg1915z00_4530;
								{	/* Cfa/arithmetic.scm 306 */
									bool_t BgL__ortest_1190z00_4503;

									if (CBOOL(BgL_typez00_4501))
										{	/* Cfa/arithmetic.scm 306 */
											BgL__ortest_1190z00_4503 = ((bool_t) 0);
										}
									else
										{	/* Cfa/arithmetic.scm 306 */
											BgL__ortest_1190z00_4503 = ((bool_t) 1);
										}
									if (BgL__ortest_1190z00_4503)
										{	/* Cfa/arithmetic.scm 306 */
											BgL_test2232z00_4946 = BgL__ortest_1190z00_4503;
										}
									else
										{	/* Cfa/arithmetic.scm 307 */
											obj_t BgL__andtest_1191z00_4504;

											BgL__andtest_1191z00_4504 =
												BGl_memqz00zz__r4_pairs_and_lists_6_3z00
												(BgL_typez00_4501, BgL_speczd2typeszd2_4502);
											if (CBOOL(BgL__andtest_1191z00_4504))
												{
													obj_t BgL_argsz00_4506;

													BgL_argsz00_4506 = BgL_argszd2approxzd2_4500;
												BgL_loopz00_4505:
													if (NULLP(BgL_argsz00_4506))
														{	/* Cfa/arithmetic.scm 309 */
															BgL_test2232z00_4946 = ((bool_t) 1);
														}
													else
														{	/* Cfa/arithmetic.scm 311 */
															obj_t BgL_tz00_4507;

															{	/* Cfa/arithmetic.scm 311 */
																BgL_typez00_bglt BgL_arg1937z00_4508;

																BgL_arg1937z00_4508 =
																	(((BgL_approxz00_bglt) COBJECT(
																			((BgL_approxz00_bglt)
																				CAR(
																					((obj_t) BgL_argsz00_4506)))))->
																	BgL_typez00);
																if ((((obj_t) BgL_arg1937z00_4508) ==
																		BGl_za2intza2z00zztype_cachez00))
																	{	/* Cfa/arithmetic.scm 291 */
																		BgL_tz00_4507 =
																			BGl_za2longza2z00zztype_cachez00;
																	}
																else
																	{	/* Cfa/arithmetic.scm 291 */
																		BgL_tz00_4507 =
																			((obj_t) BgL_arg1937z00_4508);
																	}
															}
															{	/* Cfa/arithmetic.scm 312 */
																bool_t BgL_test2238z00_4971;

																if ((BgL_tz00_4507 == BgL_typez00_4501))
																	{	/* Cfa/arithmetic.scm 312 */
																		BgL_test2238z00_4971 = ((bool_t) 1);
																	}
																else
																	{	/* Cfa/arithmetic.scm 312 */
																		BgL_test2238z00_4971 =
																			(BgL_tz00_4507 ==
																			BGl_za2_za2z00zztype_cachez00);
																	}
																if (BgL_test2238z00_4971)
																	{	/* Cfa/arithmetic.scm 313 */
																		obj_t BgL_arg1936z00_4509;

																		BgL_arg1936z00_4509 =
																			CDR(((obj_t) BgL_argsz00_4506));
																		{
																			obj_t BgL_argsz00_4977;

																			BgL_argsz00_4977 = BgL_arg1936z00_4509;
																			BgL_argsz00_4506 = BgL_argsz00_4977;
																			goto BgL_loopz00_4505;
																		}
																	}
																else
																	{	/* Cfa/arithmetic.scm 312 */
																		BgL_test2232z00_4946 = ((bool_t) 0);
																	}
															}
														}
												}
											else
												{	/* Cfa/arithmetic.scm 307 */
													BgL_test2232z00_4946 = ((bool_t) 0);
												}
										}
								}
							}
							if (BgL_test2232z00_4946)
								{	/* Cfa/arithmetic.scm 337 */
									{	/* Cfa/arithmetic.scm 340 */
										bool_t BgL_test2240z00_4978;

										{	/* Cfa/arithmetic.scm 340 */
											bool_t BgL_test2241z00_4979;

											{	/* Cfa/arithmetic.scm 340 */
												obj_t BgL_arg1894z00_4531;

												{
													BgL_arithmeticzd2appzd2_bglt BgL_auxz00_4980;

													{
														obj_t BgL_auxz00_4981;

														{	/* Cfa/arithmetic.scm 340 */
															BgL_objectz00_bglt BgL_tmpz00_4982;

															BgL_tmpz00_4982 =
																((BgL_objectz00_bglt)
																((BgL_appz00_bglt) BgL_nodez00_4437));
															BgL_auxz00_4981 =
																BGL_OBJECT_WIDENING(BgL_tmpz00_4982);
														}
														BgL_auxz00_4980 =
															((BgL_arithmeticzd2appzd2_bglt) BgL_auxz00_4981);
													}
													BgL_arg1894z00_4531 =
														(((BgL_arithmeticzd2appzd2_bglt)
															COBJECT(BgL_auxz00_4980))->BgL_speczd2typeszd2);
												}
												BgL_argszd2approxzd2_4493 = BgL_argszd2approxzd2_4516;
												BgL_speczd2typeszd2_4494 = BgL_arg1894z00_4531;
												{
													obj_t BgL_argsz00_4496;

													BgL_argsz00_4496 = BgL_argszd2approxzd2_4493;
												BgL_loopz00_4495:
													if (NULLP(BgL_argsz00_4496))
														{	/* Cfa/arithmetic.scm 319 */
															BgL_test2241z00_4979 = ((bool_t) 1);
														}
													else
														{	/* Cfa/arithmetic.scm 321 */
															bool_t BgL_test2243z00_4990;

															{	/* Cfa/arithmetic.scm 321 */
																obj_t BgL_arg1947z00_4497;

																{	/* Cfa/arithmetic.scm 321 */
																	BgL_typez00_bglt BgL_arg1948z00_4498;

																	BgL_arg1948z00_4498 =
																		(((BgL_approxz00_bglt) COBJECT(
																				((BgL_approxz00_bglt)
																					CAR(
																						((obj_t) BgL_argsz00_4496)))))->
																		BgL_typez00);
																	if ((((obj_t) BgL_arg1948z00_4498) ==
																			BGl_za2intza2z00zztype_cachez00))
																		{	/* Cfa/arithmetic.scm 291 */
																			BgL_arg1947z00_4497 =
																				BGl_za2longza2z00zztype_cachez00;
																		}
																	else
																		{	/* Cfa/arithmetic.scm 291 */
																			BgL_arg1947z00_4497 =
																				((obj_t) BgL_arg1948z00_4498);
																		}
																}
																BgL_test2243z00_4990 =
																	CBOOL(BGl_memqz00zz__r4_pairs_and_lists_6_3z00
																	(BgL_arg1947z00_4497,
																		BgL_speczd2typeszd2_4494));
															}
															if (BgL_test2243z00_4990)
																{	/* Cfa/arithmetic.scm 322 */
																	obj_t BgL_arg1946z00_4499;

																	BgL_arg1946z00_4499 =
																		CDR(((obj_t) BgL_argsz00_4496));
																	{
																		obj_t BgL_argsz00_5003;

																		BgL_argsz00_5003 = BgL_arg1946z00_4499;
																		BgL_argsz00_4496 = BgL_argsz00_5003;
																		goto BgL_loopz00_4495;
																	}
																}
															else
																{	/* Cfa/arithmetic.scm 321 */
																	BgL_test2241z00_4979 = ((bool_t) 0);
																}
														}
												}
											}
											if (BgL_test2241z00_4979)
												{	/* Cfa/arithmetic.scm 341 */
													BgL_typez00_bglt BgL_arg1892z00_4532;

													{	/* Cfa/arithmetic.scm 341 */
														BgL_approxz00_bglt BgL_arg1893z00_4533;

														{
															BgL_arithmeticzd2appzd2_bglt BgL_auxz00_5004;

															{
																obj_t BgL_auxz00_5005;

																{	/* Cfa/arithmetic.scm 341 */
																	BgL_objectz00_bglt BgL_tmpz00_5006;

																	BgL_tmpz00_5006 =
																		((BgL_objectz00_bglt)
																		((BgL_appz00_bglt) BgL_nodez00_4437));
																	BgL_auxz00_5005 =
																		BGL_OBJECT_WIDENING(BgL_tmpz00_5006);
																}
																BgL_auxz00_5004 =
																	((BgL_arithmeticzd2appzd2_bglt)
																	BgL_auxz00_5005);
															}
															BgL_arg1893z00_4533 =
																(((BgL_arithmeticzd2appzd2_bglt)
																	COBJECT(BgL_auxz00_5004))->BgL_approxz00);
														}
														BgL_arg1892z00_4532 =
															(((BgL_approxz00_bglt)
																COBJECT(BgL_arg1893z00_4533))->BgL_typez00);
													}
													BgL_test2240z00_4978 =
														(
														((obj_t) BgL_arg1892z00_4532) ==
														BGl_za2_za2z00zztype_cachez00);
												}
											else
												{	/* Cfa/arithmetic.scm 340 */
													BgL_test2240z00_4978 = ((bool_t) 0);
												}
										}
										if (BgL_test2240z00_4978)
											{	/* Cfa/arithmetic.scm 340 */
												{	/* Cfa/arithmetic.scm 344 */
													BgL_approxz00_bglt BgL_arg1890z00_4534;

													{
														BgL_arithmeticzd2appzd2_bglt BgL_auxz00_5015;

														{
															obj_t BgL_auxz00_5016;

															{	/* Cfa/arithmetic.scm 344 */
																BgL_objectz00_bglt BgL_tmpz00_5017;

																BgL_tmpz00_5017 =
																	((BgL_objectz00_bglt)
																	((BgL_appz00_bglt) BgL_nodez00_4437));
																BgL_auxz00_5016 =
																	BGL_OBJECT_WIDENING(BgL_tmpz00_5017);
															}
															BgL_auxz00_5015 =
																((BgL_arithmeticzd2appzd2_bglt)
																BgL_auxz00_5016);
														}
														BgL_arg1890z00_4534 =
															(((BgL_arithmeticzd2appzd2_bglt)
																COBJECT(BgL_auxz00_5015))->BgL_approxz00);
													}
													BGl_approxzd2setzd2typez12z12zzcfa_approxz00
														(BgL_arg1890z00_4534,
														((BgL_typez00_bglt) BgL_tyz00_4529));
												}
												BGl_continuezd2cfaz12zc0zzcfa_iteratez00(CNST_TABLE_REF
													(0L));
											}
										else
											{	/* Cfa/arithmetic.scm 340 */
												BFALSE;
											}
									}
								}
							else
								{	/* Cfa/arithmetic.scm 346 */
									bool_t BgL_test2245z00_5027;

									if (
										((((BgL_variablez00_bglt) COBJECT(
														((BgL_variablez00_bglt)
															((BgL_globalz00_bglt)
																(((BgL_varz00_bglt) COBJECT(
																			(((BgL_appz00_bglt) COBJECT(
																						((BgL_appz00_bglt)
																							((BgL_appz00_bglt)
																								BgL_nodez00_4437))))->
																				BgL_funz00)))->BgL_variablez00)))))->
												BgL_idz00) == CNST_TABLE_REF(1L)))
										{	/* Cfa/arithmetic.scm 346 */
											BgL_test2245z00_5027 = ((bool_t) 0);
										}
									else
										{	/* Cfa/arithmetic.scm 346 */
											BgL_test2245z00_5027 = ((bool_t) 1);
										}
									if (BgL_test2245z00_5027)
										{	/* Cfa/arithmetic.scm 346 */
											{
												obj_t BgL_l1556z00_4536;

												BgL_l1556z00_4536 = BgL_argszd2approxzd2_4516;
											BgL_zc3z04anonymousza31903ze3z87_4535:
												if (PAIRP(BgL_l1556z00_4536))
													{	/* Cfa/arithmetic.scm 347 */
														{	/* Cfa/arithmetic.scm 347 */
															obj_t BgL_az00_4537;

															BgL_az00_4537 = CAR(BgL_l1556z00_4536);
															BGl_loosez12z12zzcfa_loosez00(
																((BgL_approxz00_bglt) BgL_az00_4537),
																CNST_TABLE_REF(2L));
														}
														{
															obj_t BgL_l1556z00_5044;

															BgL_l1556z00_5044 = CDR(BgL_l1556z00_4536);
															BgL_l1556z00_4536 = BgL_l1556z00_5044;
															goto BgL_zc3z04anonymousza31903ze3z87_4535;
														}
													}
												else
													{	/* Cfa/arithmetic.scm 347 */
														((bool_t) 1);
													}
											}
											{	/* Cfa/arithmetic.scm 348 */
												BgL_approxz00_bglt BgL_arg1908z00_4538;

												{
													BgL_arithmeticzd2appzd2_bglt BgL_auxz00_5046;

													{
														obj_t BgL_auxz00_5047;

														{	/* Cfa/arithmetic.scm 348 */
															BgL_objectz00_bglt BgL_tmpz00_5048;

															BgL_tmpz00_5048 =
																((BgL_objectz00_bglt)
																((BgL_appz00_bglt) BgL_nodez00_4437));
															BgL_auxz00_5047 =
																BGL_OBJECT_WIDENING(BgL_tmpz00_5048);
														}
														BgL_auxz00_5046 =
															((BgL_arithmeticzd2appzd2_bglt) BgL_auxz00_5047);
													}
													BgL_arg1908z00_4538 =
														(((BgL_arithmeticzd2appzd2_bglt)
															COBJECT(BgL_auxz00_5046))->BgL_approxz00);
												}
												BGl_approxzd2setzd2typez12z12zzcfa_approxz00
													(BgL_arg1908z00_4538,
													((BgL_typez00_bglt) BGl_za2objza2z00zztype_cachez00));
											}
										}
									else
										{	/* Cfa/arithmetic.scm 346 */
											BFALSE;
										}
								}
						}
					}
				}
				{
					BgL_arithmeticzd2appzd2_bglt BgL_auxz00_5056;

					{
						obj_t BgL_auxz00_5057;

						{	/* Cfa/arithmetic.scm 351 */
							BgL_objectz00_bglt BgL_tmpz00_5058;

							BgL_tmpz00_5058 =
								((BgL_objectz00_bglt) ((BgL_appz00_bglt) BgL_nodez00_4437));
							BgL_auxz00_5057 = BGL_OBJECT_WIDENING(BgL_tmpz00_5058);
						}
						BgL_auxz00_5056 = ((BgL_arithmeticzd2appzd2_bglt) BgL_auxz00_5057);
					}
					return
						(((BgL_arithmeticzd2appzd2_bglt) COBJECT(BgL_auxz00_5056))->
						BgL_approxz00);
				}
			}
		}

	}



/* &node-setup!-pre-arit1594 */
	obj_t BGl_z62nodezd2setupz12zd2prezd2arit1594za2zzcfa_arithmeticz00(obj_t
		BgL_envz00_4438, obj_t BgL_nodez00_4439)
	{
		{	/* Cfa/arithmetic.scm 245 */
			{	/* Cfa/arithmetic.scm 256 */
				BgL_variablez00_bglt BgL_fz00_4540;

				BgL_fz00_4540 =
					(((BgL_varz00_bglt) COBJECT(
							(((BgL_appz00_bglt) COBJECT(
										((BgL_appz00_bglt)
											((BgL_appz00_bglt) BgL_nodez00_4439))))->BgL_funz00)))->
					BgL_variablez00);
				{	/* Cfa/arithmetic.scm 256 */
					BgL_valuez00_bglt BgL_valz00_4541;

					BgL_valz00_4541 =
						(((BgL_variablez00_bglt) COBJECT(BgL_fz00_4540))->BgL_valuez00);
					{	/* Cfa/arithmetic.scm 257 */

						{	/* Cfa/arithmetic.scm 259 */
							bool_t BgL_test2248z00_5069;

							{	/* Cfa/arithmetic.scm 259 */
								BgL_typez00_bglt BgL_arg1845z00_4542;

								BgL_arg1845z00_4542 =
									(((BgL_variablez00_bglt) COBJECT(BgL_fz00_4540))->
									BgL_typez00);
								BgL_test2248z00_5069 =
									(((obj_t) BgL_arg1845z00_4542) ==
									BGl_za2objza2z00zztype_cachez00);
							}
							if (BgL_test2248z00_5069)
								{	/* Cfa/arithmetic.scm 259 */
									{	/* Cfa/arithmetic.scm 262 */
										BgL_typez00_bglt BgL_vz00_4543;

										BgL_vz00_4543 =
											((BgL_typez00_bglt) BGl_za2_za2z00zztype_cachez00);
										((((BgL_variablez00_bglt) COBJECT(BgL_fz00_4540))->
												BgL_typez00) =
											((BgL_typez00_bglt) BgL_vz00_4543), BUNSPEC);
									}
									{	/* Cfa/arithmetic.scm 263 */
										BgL_typez00_bglt BgL_vz00_4544;

										BgL_vz00_4544 =
											((BgL_typez00_bglt) BGl_za2_za2z00zztype_cachez00);
										((((BgL_nodez00_bglt) COBJECT(
														((BgL_nodez00_bglt)
															((BgL_appz00_bglt) BgL_nodez00_4439))))->
												BgL_typez00) =
											((BgL_typez00_bglt) BgL_vz00_4544), BUNSPEC);
									}
								}
							else
								{	/* Cfa/arithmetic.scm 259 */
									BFALSE;
								}
						}
						{	/* Cfa/arithmetic.scm 265 */
							bool_t BgL_test2249z00_5079;

							{	/* Cfa/arithmetic.scm 265 */
								obj_t BgL_classz00_4545;

								BgL_classz00_4545 = BGl_sfunz00zzast_varz00;
								{	/* Cfa/arithmetic.scm 265 */
									BgL_objectz00_bglt BgL_arg1801z00_4546;

									{	/* Cfa/arithmetic.scm 265 */
										obj_t BgL_tmpz00_5080;

										BgL_tmpz00_5080 =
											((obj_t) ((BgL_objectz00_bglt) BgL_valz00_4541));
										BgL_arg1801z00_4546 =
											(BgL_objectz00_bglt) (BgL_tmpz00_5080);
									}
									if (BGL_CONDEXPAND_ISA_ARCH64())
										{	/* Cfa/arithmetic.scm 265 */
											long BgL_idxz00_4547;

											BgL_idxz00_4547 =
												BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_4546);
											BgL_test2249z00_5079 =
												(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
													(BgL_idxz00_4547 + 3L)) == BgL_classz00_4545);
										}
									else
										{	/* Cfa/arithmetic.scm 265 */
											bool_t BgL_res2135z00_4550;

											{	/* Cfa/arithmetic.scm 265 */
												obj_t BgL_oclassz00_4551;

												{	/* Cfa/arithmetic.scm 265 */
													long BgL_arg1808z00_4552;

													{	/* Cfa/arithmetic.scm 265 */
														long BgL_arg1809z00_4553;

														BgL_arg1809z00_4553 =
															BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_4546);
														BgL_arg1808z00_4552 =
															(BgL_arg1809z00_4553 - OBJECT_TYPE);
													}
													BgL_oclassz00_4551 =
														VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
														BgL_arg1808z00_4552);
												}
												{	/* Cfa/arithmetic.scm 265 */
													bool_t BgL__ortest_1115z00_4554;

													BgL__ortest_1115z00_4554 =
														(BgL_classz00_4545 == BgL_oclassz00_4551);
													if (BgL__ortest_1115z00_4554)
														{	/* Cfa/arithmetic.scm 265 */
															BgL_res2135z00_4550 = BgL__ortest_1115z00_4554;
														}
													else
														{	/* Cfa/arithmetic.scm 265 */
															long BgL_odepthz00_4555;

															BgL_odepthz00_4555 =
																BGL_CLASS_DEPTH(BgL_oclassz00_4551);
															if ((3L < BgL_odepthz00_4555))
																{	/* Cfa/arithmetic.scm 265 */
																	obj_t BgL_arg1797z00_4556;

																	BgL_arg1797z00_4556 =
																		BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_4551,
																		3L);
																	BgL_res2135z00_4550 =
																		(BgL_arg1797z00_4556 == BgL_classz00_4545);
																}
															else
																{	/* Cfa/arithmetic.scm 265 */
																	BgL_res2135z00_4550 = ((bool_t) 0);
																}
														}
												}
											}
											BgL_test2249z00_5079 = BgL_res2135z00_4550;
										}
								}
							}
							if (BgL_test2249z00_5079)
								{	/* Cfa/arithmetic.scm 266 */
									obj_t BgL_arg1848z00_4557;

									{	/* Cfa/arithmetic.scm 266 */
										obj_t BgL_l1544z00_4558;

										BgL_l1544z00_4558 =
											(((BgL_sfunz00_bglt) COBJECT(
													((BgL_sfunz00_bglt) BgL_valz00_4541)))->BgL_argsz00);
										if (NULLP(BgL_l1544z00_4558))
											{	/* Cfa/arithmetic.scm 266 */
												BgL_arg1848z00_4557 = BNIL;
											}
										else
											{	/* Cfa/arithmetic.scm 266 */
												obj_t BgL_head1546z00_4559;

												{	/* Cfa/arithmetic.scm 266 */
													obj_t BgL_arg1855z00_4560;

													{	/* Cfa/arithmetic.scm 266 */
														obj_t BgL_arg1856z00_4561;

														BgL_arg1856z00_4561 =
															CAR(((obj_t) BgL_l1544z00_4558));
														BgL_arg1855z00_4560 =
															BGl_unspecifiedzd2typeze70z35zzcfa_arithmeticz00
															(BgL_arg1856z00_4561);
													}
													BgL_head1546z00_4559 =
														MAKE_YOUNG_PAIR(BgL_arg1855z00_4560, BNIL);
												}
												{	/* Cfa/arithmetic.scm 266 */
													obj_t BgL_g1549z00_4562;

													BgL_g1549z00_4562 = CDR(((obj_t) BgL_l1544z00_4558));
													{
														obj_t BgL_l1544z00_4564;
														obj_t BgL_tail1547z00_4565;

														BgL_l1544z00_4564 = BgL_g1549z00_4562;
														BgL_tail1547z00_4565 = BgL_head1546z00_4559;
													BgL_zc3z04anonymousza31850ze3z87_4563:
														if (NULLP(BgL_l1544z00_4564))
															{	/* Cfa/arithmetic.scm 266 */
																BgL_arg1848z00_4557 = BgL_head1546z00_4559;
															}
														else
															{	/* Cfa/arithmetic.scm 266 */
																obj_t BgL_newtail1548z00_4566;

																{	/* Cfa/arithmetic.scm 266 */
																	obj_t BgL_arg1853z00_4567;

																	{	/* Cfa/arithmetic.scm 266 */
																		obj_t BgL_arg1854z00_4568;

																		BgL_arg1854z00_4568 =
																			CAR(((obj_t) BgL_l1544z00_4564));
																		BgL_arg1853z00_4567 =
																			BGl_unspecifiedzd2typeze70z35zzcfa_arithmeticz00
																			(BgL_arg1854z00_4568);
																	}
																	BgL_newtail1548z00_4566 =
																		MAKE_YOUNG_PAIR(BgL_arg1853z00_4567, BNIL);
																}
																SET_CDR(BgL_tail1547z00_4565,
																	BgL_newtail1548z00_4566);
																{	/* Cfa/arithmetic.scm 266 */
																	obj_t BgL_arg1852z00_4569;

																	BgL_arg1852z00_4569 =
																		CDR(((obj_t) BgL_l1544z00_4564));
																	{
																		obj_t BgL_tail1547z00_5120;
																		obj_t BgL_l1544z00_5119;

																		BgL_l1544z00_5119 = BgL_arg1852z00_4569;
																		BgL_tail1547z00_5120 =
																			BgL_newtail1548z00_4566;
																		BgL_tail1547z00_4565 = BgL_tail1547z00_5120;
																		BgL_l1544z00_4564 = BgL_l1544z00_5119;
																		goto BgL_zc3z04anonymousza31850ze3z87_4563;
																	}
																}
															}
													}
												}
											}
									}
									((((BgL_sfunz00_bglt) COBJECT(
													((BgL_sfunz00_bglt) BgL_valz00_4541)))->BgL_argsz00) =
										((obj_t) BgL_arg1848z00_4557), BUNSPEC);
								}
							else
								{	/* Cfa/arithmetic.scm 267 */
									bool_t BgL_test2255z00_5123;

									{	/* Cfa/arithmetic.scm 267 */
										obj_t BgL_classz00_4570;

										BgL_classz00_4570 = BGl_cfunz00zzast_varz00;
										{	/* Cfa/arithmetic.scm 267 */
											BgL_objectz00_bglt BgL_arg1801z00_4571;

											{	/* Cfa/arithmetic.scm 267 */
												obj_t BgL_tmpz00_5124;

												BgL_tmpz00_5124 =
													((obj_t) ((BgL_objectz00_bglt) BgL_valz00_4541));
												BgL_arg1801z00_4571 =
													(BgL_objectz00_bglt) (BgL_tmpz00_5124);
											}
											if (BGL_CONDEXPAND_ISA_ARCH64())
												{	/* Cfa/arithmetic.scm 267 */
													long BgL_idxz00_4572;

													BgL_idxz00_4572 =
														BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_4571);
													BgL_test2255z00_5123 =
														(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
															(BgL_idxz00_4572 + 3L)) == BgL_classz00_4570);
												}
											else
												{	/* Cfa/arithmetic.scm 267 */
													bool_t BgL_res2136z00_4575;

													{	/* Cfa/arithmetic.scm 267 */
														obj_t BgL_oclassz00_4576;

														{	/* Cfa/arithmetic.scm 267 */
															long BgL_arg1808z00_4577;

															{	/* Cfa/arithmetic.scm 267 */
																long BgL_arg1809z00_4578;

																BgL_arg1809z00_4578 =
																	BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_4571);
																BgL_arg1808z00_4577 =
																	(BgL_arg1809z00_4578 - OBJECT_TYPE);
															}
															BgL_oclassz00_4576 =
																VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
																BgL_arg1808z00_4577);
														}
														{	/* Cfa/arithmetic.scm 267 */
															bool_t BgL__ortest_1115z00_4579;

															BgL__ortest_1115z00_4579 =
																(BgL_classz00_4570 == BgL_oclassz00_4576);
															if (BgL__ortest_1115z00_4579)
																{	/* Cfa/arithmetic.scm 267 */
																	BgL_res2136z00_4575 =
																		BgL__ortest_1115z00_4579;
																}
															else
																{	/* Cfa/arithmetic.scm 267 */
																	long BgL_odepthz00_4580;

																	BgL_odepthz00_4580 =
																		BGL_CLASS_DEPTH(BgL_oclassz00_4576);
																	if ((3L < BgL_odepthz00_4580))
																		{	/* Cfa/arithmetic.scm 267 */
																			obj_t BgL_arg1797z00_4581;

																			BgL_arg1797z00_4581 =
																				BGL_CLASS_ANCESTORS_REF
																				(BgL_oclassz00_4576, 3L);
																			BgL_res2136z00_4575 =
																				(BgL_arg1797z00_4581 ==
																				BgL_classz00_4570);
																		}
																	else
																		{	/* Cfa/arithmetic.scm 267 */
																			BgL_res2136z00_4575 = ((bool_t) 0);
																		}
																}
														}
													}
													BgL_test2255z00_5123 = BgL_res2136z00_4575;
												}
										}
									}
									if (BgL_test2255z00_5123)
										{	/* Cfa/arithmetic.scm 268 */
											obj_t BgL_g1184z00_4582;

											BgL_g1184z00_4582 =
												(((BgL_cfunz00_bglt) COBJECT(
														((BgL_cfunz00_bglt) BgL_valz00_4541)))->
												BgL_argszd2typezd2);
											{
												obj_t BgL_lz00_4584;

												BgL_lz00_4584 = BgL_g1184z00_4582;
											BgL_loopz00_4583:
												if (PAIRP(BgL_lz00_4584))
													{	/* Cfa/arithmetic.scm 270 */
														obj_t BgL_tmpz00_5148;

														BgL_tmpz00_5148 =
															BGl_unspecifiedzd2typeze70z35zzcfa_arithmeticz00
															(CAR(BgL_lz00_4584));
														SET_CAR(BgL_lz00_4584, BgL_tmpz00_5148);
													}
												else
													{	/* Cfa/arithmetic.scm 271 */
														obj_t BgL_arg1864z00_4585;

														BgL_arg1864z00_4585 = CDR(((obj_t) BgL_lz00_4584));
														{
															obj_t BgL_lz00_5154;

															BgL_lz00_5154 = BgL_arg1864z00_4585;
															BgL_lz00_4584 = BgL_lz00_5154;
															goto BgL_loopz00_4583;
														}
													}
											}
										}
									else
										{	/* Cfa/arithmetic.scm 267 */
											BGl_errorz00zz__errorz00
												(BGl_string2163z00zzcfa_arithmeticz00,
												BGl_string2166z00zzcfa_arithmeticz00,
												((obj_t) ((BgL_appz00_bglt) BgL_nodez00_4439)));
										}
								}
						}
						BGl_za2arithmeticzd2nodesza2zd2zzcfa_arithmeticz00 =
							MAKE_YOUNG_PAIR(
							((obj_t)
								((BgL_appz00_bglt) BgL_nodez00_4439)),
							BGl_za2arithmeticzd2nodesza2zd2zzcfa_arithmeticz00);
						{	/* Cfa/arithmetic.scm 276 */
							obj_t BgL_arg1866z00_4586;

							BgL_arg1866z00_4586 =
								(((BgL_appz00_bglt) COBJECT(
										((BgL_appz00_bglt)
											((BgL_appz00_bglt) BgL_nodez00_4439))))->BgL_argsz00);
							BGl_nodezd2setupza2z12z62zzcfa_setupz00(BgL_arg1866z00_4586);
						}
						{	/* Cfa/arithmetic.scm 277 */
							obj_t BgL_speczd2typeszd2_4587;

							{
								BgL_prezd2arithmeticzd2appz00_bglt BgL_auxz00_5165;

								{
									obj_t BgL_auxz00_5166;

									{	/* Cfa/arithmetic.scm 277 */
										BgL_objectz00_bglt BgL_tmpz00_5167;

										BgL_tmpz00_5167 =
											((BgL_objectz00_bglt)
											((BgL_appz00_bglt) BgL_nodez00_4439));
										BgL_auxz00_5166 = BGL_OBJECT_WIDENING(BgL_tmpz00_5167);
									}
									BgL_auxz00_5165 =
										((BgL_prezd2arithmeticzd2appz00_bglt) BgL_auxz00_5166);
								}
								BgL_speczd2typeszd2_4587 =
									(((BgL_prezd2arithmeticzd2appz00_bglt)
										COBJECT(BgL_auxz00_5165))->BgL_speczd2typeszd2);
							}
							{	/* Cfa/arithmetic.scm 277 */
								BgL_appz00_bglt BgL_nodez00_4588;

								{	/* Cfa/arithmetic.scm 278 */
									long BgL_arg1873z00_4589;

									{	/* Cfa/arithmetic.scm 278 */
										obj_t BgL_arg1875z00_4590;

										{	/* Cfa/arithmetic.scm 278 */
											obj_t BgL_arg1876z00_4591;

											{	/* Cfa/arithmetic.scm 278 */
												long BgL_arg1808z00_4592;

												{	/* Cfa/arithmetic.scm 278 */
													long BgL_arg1809z00_4593;

													BgL_arg1809z00_4593 =
														BGL_OBJECT_CLASS_NUM(
														((BgL_objectz00_bglt)
															((BgL_appz00_bglt) BgL_nodez00_4439)));
													BgL_arg1808z00_4592 =
														(BgL_arg1809z00_4593 - OBJECT_TYPE);
												}
												BgL_arg1876z00_4591 =
													VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
													BgL_arg1808z00_4592);
											}
											BgL_arg1875z00_4590 =
												BGl_classzd2superzd2zz__objectz00(BgL_arg1876z00_4591);
										}
										{	/* Cfa/arithmetic.scm 278 */
											obj_t BgL_tmpz00_5179;

											BgL_tmpz00_5179 = ((obj_t) BgL_arg1875z00_4590);
											BgL_arg1873z00_4589 = BGL_CLASS_NUM(BgL_tmpz00_5179);
									}}
									BGL_OBJECT_CLASS_NUM_SET(
										((BgL_objectz00_bglt)
											((BgL_appz00_bglt) BgL_nodez00_4439)),
										BgL_arg1873z00_4589);
								}
								{	/* Cfa/arithmetic.scm 278 */
									BgL_objectz00_bglt BgL_tmpz00_5185;

									BgL_tmpz00_5185 =
										((BgL_objectz00_bglt) ((BgL_appz00_bglt) BgL_nodez00_4439));
									BGL_OBJECT_WIDENING_SET(BgL_tmpz00_5185, BFALSE);
								}
								((BgL_objectz00_bglt) ((BgL_appz00_bglt) BgL_nodez00_4439));
								BgL_nodez00_4588 = ((BgL_appz00_bglt) BgL_nodez00_4439);
								{	/* Cfa/arithmetic.scm 278 */

									{	/* Cfa/arithmetic.scm 279 */
										BgL_arithmeticzd2appzd2_bglt BgL_wide1188z00_4594;

										BgL_wide1188z00_4594 =
											((BgL_arithmeticzd2appzd2_bglt)
											BOBJECT(GC_MALLOC(sizeof(struct
														BgL_arithmeticzd2appzd2_bgl))));
										{	/* Cfa/arithmetic.scm 279 */
											obj_t BgL_auxz00_5197;
											BgL_objectz00_bglt BgL_tmpz00_5193;

											BgL_auxz00_5197 = ((obj_t) BgL_wide1188z00_4594);
											BgL_tmpz00_5193 =
												((BgL_objectz00_bglt)
												((BgL_appz00_bglt)
													((BgL_appz00_bglt) BgL_nodez00_4588)));
											BGL_OBJECT_WIDENING_SET(BgL_tmpz00_5193, BgL_auxz00_5197);
										}
										((BgL_objectz00_bglt)
											((BgL_appz00_bglt) ((BgL_appz00_bglt) BgL_nodez00_4588)));
										{	/* Cfa/arithmetic.scm 279 */
											long BgL_arg1867z00_4595;

											BgL_arg1867z00_4595 =
												BGL_CLASS_NUM(BGl_arithmeticzd2appzd2zzcfa_info2z00);
											BGL_OBJECT_CLASS_NUM_SET(
												((BgL_objectz00_bglt)
													((BgL_appz00_bglt)
														((BgL_appz00_bglt) BgL_nodez00_4588))),
												BgL_arg1867z00_4595);
										}
										((BgL_appz00_bglt)
											((BgL_appz00_bglt) ((BgL_appz00_bglt) BgL_nodez00_4588)));
									}
									{
										BgL_approxz00_bglt BgL_auxz00_5219;
										BgL_arithmeticzd2appzd2_bglt BgL_auxz00_5211;

										{	/* Cfa/arithmetic.scm 281 */
											bool_t BgL_test2260z00_5220;

											{	/* Cfa/arithmetic.scm 281 */
												BgL_typez00_bglt BgL_arg1872z00_4596;

												BgL_arg1872z00_4596 =
													(((BgL_variablez00_bglt) COBJECT(BgL_fz00_4540))->
													BgL_typez00);
												BgL_test2260z00_5220 =
													(((obj_t) BgL_arg1872z00_4596) ==
													BGl_za2_za2z00zztype_cachez00);
											}
											if (BgL_test2260z00_5220)
												{	/* Cfa/arithmetic.scm 281 */
													BgL_auxz00_5219 =
														BGl_makezd2emptyzd2approxz00zzcfa_approxz00();
												}
											else
												{	/* Cfa/arithmetic.scm 283 */
													BgL_typez00_bglt BgL_arg1870z00_4597;

													BgL_arg1870z00_4597 =
														(((BgL_variablez00_bglt) COBJECT(BgL_fz00_4540))->
														BgL_typez00);
													BgL_auxz00_5219 =
														BGl_makezd2typezd2approxz00zzcfa_approxz00
														(BgL_arg1870z00_4597);
												}
										}
										{
											obj_t BgL_auxz00_5212;

											{	/* Cfa/arithmetic.scm 281 */
												BgL_objectz00_bglt BgL_tmpz00_5213;

												BgL_tmpz00_5213 =
													((BgL_objectz00_bglt)
													((BgL_appz00_bglt)
														((BgL_appz00_bglt) BgL_nodez00_4588)));
												BgL_auxz00_5212 = BGL_OBJECT_WIDENING(BgL_tmpz00_5213);
											}
											BgL_auxz00_5211 =
												((BgL_arithmeticzd2appzd2_bglt) BgL_auxz00_5212);
										}
										((((BgL_arithmeticzd2appzd2_bglt)
													COBJECT(BgL_auxz00_5211))->BgL_approxz00) =
											((BgL_approxz00_bglt) BgL_auxz00_5219), BUNSPEC);
									}
									{
										BgL_arithmeticzd2appzd2_bglt BgL_auxz00_5228;

										{
											obj_t BgL_auxz00_5229;

											{	/* Cfa/arithmetic.scm 280 */
												BgL_objectz00_bglt BgL_tmpz00_5230;

												BgL_tmpz00_5230 =
													((BgL_objectz00_bglt)
													((BgL_appz00_bglt)
														((BgL_appz00_bglt) BgL_nodez00_4588)));
												BgL_auxz00_5229 = BGL_OBJECT_WIDENING(BgL_tmpz00_5230);
											}
											BgL_auxz00_5228 =
												((BgL_arithmeticzd2appzd2_bglt) BgL_auxz00_5229);
										}
										((((BgL_arithmeticzd2appzd2_bglt)
													COBJECT(BgL_auxz00_5228))->BgL_speczd2typeszd2) =
											((obj_t) BgL_speczd2typeszd2_4587), BUNSPEC);
									}
									return
										((obj_t)
										((BgL_appz00_bglt) ((BgL_appz00_bglt) BgL_nodez00_4588)));
								}
							}
						}
					}
				}
			}
		}

	}



/* unspecified-type~0 */
	obj_t BGl_unspecifiedzd2typeze70z35zzcfa_arithmeticz00(obj_t BgL_lz00_3289)
	{
		{	/* Cfa/arithmetic.scm 254 */
			{	/* Cfa/arithmetic.scm 248 */
				bool_t BgL_test2261z00_5240;

				{	/* Cfa/arithmetic.scm 248 */
					obj_t BgL_classz00_4097;

					BgL_classz00_4097 = BGl_typez00zztype_typez00;
					if (BGL_OBJECTP(BgL_lz00_3289))
						{	/* Cfa/arithmetic.scm 248 */
							BgL_objectz00_bglt BgL_arg1801z00_4099;

							BgL_arg1801z00_4099 = (BgL_objectz00_bglt) (BgL_lz00_3289);
							if (BGL_CONDEXPAND_ISA_ARCH64())
								{	/* Cfa/arithmetic.scm 248 */
									long BgL_idxz00_4105;

									BgL_idxz00_4105 =
										BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_4099);
									BgL_test2261z00_5240 =
										(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
											(BgL_idxz00_4105 + 1L)) == BgL_classz00_4097);
								}
							else
								{	/* Cfa/arithmetic.scm 248 */
									bool_t BgL_res2133z00_4127;

									{	/* Cfa/arithmetic.scm 248 */
										obj_t BgL_oclassz00_4113;

										{	/* Cfa/arithmetic.scm 248 */
											long BgL_arg1808z00_4119;

											{	/* Cfa/arithmetic.scm 248 */
												long BgL_arg1809z00_4120;

												BgL_arg1809z00_4120 =
													BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_4099);
												BgL_arg1808z00_4119 =
													(BgL_arg1809z00_4120 - OBJECT_TYPE);
											}
											BgL_oclassz00_4113 =
												VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
												BgL_arg1808z00_4119);
										}
										{	/* Cfa/arithmetic.scm 248 */
											bool_t BgL__ortest_1115z00_4114;

											BgL__ortest_1115z00_4114 =
												(BgL_classz00_4097 == BgL_oclassz00_4113);
											if (BgL__ortest_1115z00_4114)
												{	/* Cfa/arithmetic.scm 248 */
													BgL_res2133z00_4127 = BgL__ortest_1115z00_4114;
												}
											else
												{	/* Cfa/arithmetic.scm 248 */
													long BgL_odepthz00_4115;

													BgL_odepthz00_4115 =
														BGL_CLASS_DEPTH(BgL_oclassz00_4113);
													if ((1L < BgL_odepthz00_4115))
														{	/* Cfa/arithmetic.scm 248 */
															obj_t BgL_arg1797z00_4117;

															BgL_arg1797z00_4117 =
																BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_4113, 1L);
															BgL_res2133z00_4127 =
																(BgL_arg1797z00_4117 == BgL_classz00_4097);
														}
													else
														{	/* Cfa/arithmetic.scm 248 */
															BgL_res2133z00_4127 = ((bool_t) 0);
														}
												}
										}
									}
									BgL_test2261z00_5240 = BgL_res2133z00_4127;
								}
						}
					else
						{	/* Cfa/arithmetic.scm 248 */
							BgL_test2261z00_5240 = ((bool_t) 0);
						}
				}
				if (BgL_test2261z00_5240)
					{	/* Cfa/arithmetic.scm 248 */
						return BGl_za2_za2z00zztype_cachez00;
					}
				else
					{	/* Cfa/arithmetic.scm 250 */
						bool_t BgL_test2266z00_5260;

						{	/* Cfa/arithmetic.scm 250 */
							obj_t BgL_classz00_4128;

							BgL_classz00_4128 = BGl_localz00zzast_varz00;
							if (BGL_OBJECTP(BgL_lz00_3289))
								{	/* Cfa/arithmetic.scm 250 */
									BgL_objectz00_bglt BgL_arg1801z00_4130;

									BgL_arg1801z00_4130 = (BgL_objectz00_bglt) (BgL_lz00_3289);
									if (BGL_CONDEXPAND_ISA_ARCH64())
										{	/* Cfa/arithmetic.scm 250 */
											long BgL_idxz00_4136;

											BgL_idxz00_4136 =
												BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_4130);
											BgL_test2266z00_5260 =
												(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
													(BgL_idxz00_4136 + 2L)) == BgL_classz00_4128);
										}
									else
										{	/* Cfa/arithmetic.scm 250 */
											bool_t BgL_res2134z00_4158;

											{	/* Cfa/arithmetic.scm 250 */
												obj_t BgL_oclassz00_4144;

												{	/* Cfa/arithmetic.scm 250 */
													long BgL_arg1808z00_4150;

													{	/* Cfa/arithmetic.scm 250 */
														long BgL_arg1809z00_4151;

														BgL_arg1809z00_4151 =
															BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_4130);
														BgL_arg1808z00_4150 =
															(BgL_arg1809z00_4151 - OBJECT_TYPE);
													}
													BgL_oclassz00_4144 =
														VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
														BgL_arg1808z00_4150);
												}
												{	/* Cfa/arithmetic.scm 250 */
													bool_t BgL__ortest_1115z00_4145;

													BgL__ortest_1115z00_4145 =
														(BgL_classz00_4128 == BgL_oclassz00_4144);
													if (BgL__ortest_1115z00_4145)
														{	/* Cfa/arithmetic.scm 250 */
															BgL_res2134z00_4158 = BgL__ortest_1115z00_4145;
														}
													else
														{	/* Cfa/arithmetic.scm 250 */
															long BgL_odepthz00_4146;

															BgL_odepthz00_4146 =
																BGL_CLASS_DEPTH(BgL_oclassz00_4144);
															if ((2L < BgL_odepthz00_4146))
																{	/* Cfa/arithmetic.scm 250 */
																	obj_t BgL_arg1797z00_4148;

																	BgL_arg1797z00_4148 =
																		BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_4144,
																		2L);
																	BgL_res2134z00_4158 =
																		(BgL_arg1797z00_4148 == BgL_classz00_4128);
																}
															else
																{	/* Cfa/arithmetic.scm 250 */
																	BgL_res2134z00_4158 = ((bool_t) 0);
																}
														}
												}
											}
											BgL_test2266z00_5260 = BgL_res2134z00_4158;
										}
								}
							else
								{	/* Cfa/arithmetic.scm 250 */
									BgL_test2266z00_5260 = ((bool_t) 0);
								}
						}
						if (BgL_test2266z00_5260)
							{	/* Cfa/arithmetic.scm 250 */
								{	/* Cfa/arithmetic.scm 251 */
									BgL_typez00_bglt BgL_vz00_4160;

									BgL_vz00_4160 =
										((BgL_typez00_bglt) BGl_za2_za2z00zztype_cachez00);
									((((BgL_variablez00_bglt) COBJECT(
													((BgL_variablez00_bglt)
														((BgL_localz00_bglt) BgL_lz00_3289))))->
											BgL_typez00) =
										((BgL_typez00_bglt) BgL_vz00_4160), BUNSPEC);
								}
								return BgL_lz00_3289;
							}
						else
							{	/* Cfa/arithmetic.scm 250 */
								return BgL_lz00_3289;
							}
					}
			}
		}

	}



/* &cleanup-node!-app1592 */
	obj_t BGl_z62cleanupzd2nodez12zd2app1592z70zzcfa_arithmeticz00(obj_t
		BgL_envz00_4440, obj_t BgL_nodez00_4441)
	{
		{	/* Cfa/arithmetic.scm 232 */
			{	/* Cfa/arithmetic.scm 233 */
				bool_t BgL_tmpz00_5284;

				{	/* Cfa/arithmetic.scm 234 */
					BgL_varz00_bglt BgL_arg1838z00_4599;

					BgL_arg1838z00_4599 =
						(((BgL_appz00_bglt) COBJECT(
								((BgL_appz00_bglt) BgL_nodez00_4441)))->BgL_funz00);
					BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
						((BgL_nodez00_bglt) BgL_arg1838z00_4599));
				}
				{	/* Cfa/arithmetic.scm 235 */
					obj_t BgL_g1543z00_4600;

					BgL_g1543z00_4600 =
						(((BgL_appz00_bglt) COBJECT(
								((BgL_appz00_bglt) BgL_nodez00_4441)))->BgL_argsz00);
					{
						obj_t BgL_l1541z00_4602;

						BgL_l1541z00_4602 = BgL_g1543z00_4600;
					BgL_zc3z04anonymousza31839ze3z87_4601:
						if (PAIRP(BgL_l1541z00_4602))
							{	/* Cfa/arithmetic.scm 235 */
								{	/* Cfa/arithmetic.scm 235 */
									obj_t BgL_arg1841z00_4603;

									BgL_arg1841z00_4603 = CAR(BgL_l1541z00_4602);
									BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
										((BgL_nodez00_bglt) BgL_arg1841z00_4603));
								}
								{
									obj_t BgL_l1541z00_5296;

									BgL_l1541z00_5296 = CDR(BgL_l1541z00_4602);
									BgL_l1541z00_4602 = BgL_l1541z00_5296;
									goto BgL_zc3z04anonymousza31839ze3z87_4601;
								}
							}
						else
							{	/* Cfa/arithmetic.scm 235 */
								BgL_tmpz00_5284 = ((bool_t) 1);
							}
					}
				}
				return BBOOL(BgL_tmpz00_5284);
			}
		}

	}



/* &cleanup-node!-funcal1590 */
	obj_t BGl_z62cleanupzd2nodez12zd2funcal1590z70zzcfa_arithmeticz00(obj_t
		BgL_envz00_4442, obj_t BgL_nodez00_4443)
	{
		{	/* Cfa/arithmetic.scm 224 */
			{	/* Cfa/arithmetic.scm 225 */
				bool_t BgL_tmpz00_5299;

				BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
					(((BgL_funcallz00_bglt) COBJECT(
								((BgL_funcallz00_bglt) BgL_nodez00_4443)))->BgL_funz00));
				{	/* Cfa/arithmetic.scm 227 */
					obj_t BgL_g1540z00_4605;

					BgL_g1540z00_4605 =
						(((BgL_funcallz00_bglt) COBJECT(
								((BgL_funcallz00_bglt) BgL_nodez00_4443)))->BgL_argsz00);
					{
						obj_t BgL_l1538z00_4607;

						BgL_l1538z00_4607 = BgL_g1540z00_4605;
					BgL_zc3z04anonymousza31834ze3z87_4606:
						if (PAIRP(BgL_l1538z00_4607))
							{	/* Cfa/arithmetic.scm 227 */
								{	/* Cfa/arithmetic.scm 227 */
									obj_t BgL_arg1836z00_4608;

									BgL_arg1836z00_4608 = CAR(BgL_l1538z00_4607);
									BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
										((BgL_nodez00_bglt) BgL_arg1836z00_4608));
								}
								{
									obj_t BgL_l1538z00_5310;

									BgL_l1538z00_5310 = CDR(BgL_l1538z00_4607);
									BgL_l1538z00_4607 = BgL_l1538z00_5310;
									goto BgL_zc3z04anonymousza31834ze3z87_4606;
								}
							}
						else
							{	/* Cfa/arithmetic.scm 227 */
								BgL_tmpz00_5299 = ((bool_t) 1);
							}
					}
				}
				return BBOOL(BgL_tmpz00_5299);
			}
		}

	}



/* &cleanup-node!-app-ly1588 */
	obj_t BGl_z62cleanupzd2nodez12zd2appzd2ly1588za2zzcfa_arithmeticz00(obj_t
		BgL_envz00_4444, obj_t BgL_nodez00_4445)
	{
		{	/* Cfa/arithmetic.scm 216 */
			BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_appzd2lyzd2_bglt) COBJECT(
							((BgL_appzd2lyzd2_bglt) BgL_nodez00_4445)))->BgL_funz00));
			return
				BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_appzd2lyzd2_bglt) COBJECT(
							((BgL_appzd2lyzd2_bglt) BgL_nodez00_4445)))->BgL_argz00));
		}

	}



/* &cleanup-node!-box-se1586 */
	obj_t BGl_z62cleanupzd2nodez12zd2boxzd2se1586za2zzcfa_arithmeticz00(obj_t
		BgL_envz00_4446, obj_t BgL_nodez00_4447)
	{
		{	/* Cfa/arithmetic.scm 208 */
			{	/* Cfa/arithmetic.scm 210 */
				BgL_varz00_bglt BgL_arg1829z00_4611;

				BgL_arg1829z00_4611 =
					(((BgL_boxzd2setz12zc0_bglt) COBJECT(
							((BgL_boxzd2setz12zc0_bglt) BgL_nodez00_4447)))->BgL_varz00);
				BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
					((BgL_nodez00_bglt) BgL_arg1829z00_4611));
			}
			return
				BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_boxzd2setz12zc0_bglt) COBJECT(
							((BgL_boxzd2setz12zc0_bglt) BgL_nodez00_4447)))->BgL_valuez00));
		}

	}



/* &cleanup-node!-box-re1584 */
	obj_t BGl_z62cleanupzd2nodez12zd2boxzd2re1584za2zzcfa_arithmeticz00(obj_t
		BgL_envz00_4448, obj_t BgL_nodez00_4449)
	{
		{	/* Cfa/arithmetic.scm 201 */
			{	/* Cfa/arithmetic.scm 203 */
				BgL_varz00_bglt BgL_arg1828z00_4613;

				BgL_arg1828z00_4613 =
					(((BgL_boxzd2refzd2_bglt) COBJECT(
							((BgL_boxzd2refzd2_bglt) BgL_nodez00_4449)))->BgL_varz00);
				return
					BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
					((BgL_nodez00_bglt) BgL_arg1828z00_4613));
			}
		}

	}



/* &cleanup-node!-make-b1582 */
	obj_t BGl_z62cleanupzd2nodez12zd2makezd2b1582za2zzcfa_arithmeticz00(obj_t
		BgL_envz00_4450, obj_t BgL_nodez00_4451)
	{
		{	/* Cfa/arithmetic.scm 194 */
			return
				BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_makezd2boxzd2_bglt) COBJECT(
							((BgL_makezd2boxzd2_bglt) BgL_nodez00_4451)))->BgL_valuez00));
		}

	}



/* &cleanup-node!-jump-e1580 */
	obj_t BGl_z62cleanupzd2nodez12zd2jumpzd2e1580za2zzcfa_arithmeticz00(obj_t
		BgL_envz00_4452, obj_t BgL_nodez00_4453)
	{
		{	/* Cfa/arithmetic.scm 186 */
			BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_jumpzd2exzd2itz00_bglt) COBJECT(
							((BgL_jumpzd2exzd2itz00_bglt) BgL_nodez00_4453)))->BgL_exitz00));
			return
				BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_jumpzd2exzd2itz00_bglt) COBJECT(
							((BgL_jumpzd2exzd2itz00_bglt) BgL_nodez00_4453)))->BgL_valuez00));
		}

	}



/* &cleanup-node!-set-ex1578 */
	obj_t BGl_z62cleanupzd2nodez12zd2setzd2ex1578za2zzcfa_arithmeticz00(obj_t
		BgL_envz00_4454, obj_t BgL_nodez00_4455)
	{
		{	/* Cfa/arithmetic.scm 177 */
			{	/* Cfa/arithmetic.scm 179 */
				BgL_varz00_bglt BgL_arg1822z00_4617;

				BgL_arg1822z00_4617 =
					(((BgL_setzd2exzd2itz00_bglt) COBJECT(
							((BgL_setzd2exzd2itz00_bglt) BgL_nodez00_4455)))->BgL_varz00);
				BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
					((BgL_nodez00_bglt) BgL_arg1822z00_4617));
			}
			BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_setzd2exzd2itz00_bglt) COBJECT(
							((BgL_setzd2exzd2itz00_bglt) BgL_nodez00_4455)))->BgL_onexitz00));
			return
				BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_setzd2exzd2itz00_bglt) COBJECT(
							((BgL_setzd2exzd2itz00_bglt) BgL_nodez00_4455)))->BgL_bodyz00));
		}

	}



/* &cleanup-node!-let-va1576 */
	obj_t BGl_z62cleanupzd2nodez12zd2letzd2va1576za2zzcfa_arithmeticz00(obj_t
		BgL_envz00_4456, obj_t BgL_nodez00_4457)
	{
		{	/* Cfa/arithmetic.scm 167 */
			{	/* Cfa/arithmetic.scm 169 */
				obj_t BgL_g1537z00_4619;

				BgL_g1537z00_4619 =
					(((BgL_letzd2varzd2_bglt) COBJECT(
							((BgL_letzd2varzd2_bglt) BgL_nodez00_4457)))->BgL_bindingsz00);
				{
					obj_t BgL_l1535z00_4621;

					BgL_l1535z00_4621 = BgL_g1537z00_4619;
				BgL_zc3z04anonymousza31774ze3z87_4620:
					if (PAIRP(BgL_l1535z00_4621))
						{	/* Cfa/arithmetic.scm 169 */
							{	/* Cfa/arithmetic.scm 169 */
								obj_t BgL_bz00_4622;

								BgL_bz00_4622 = CAR(BgL_l1535z00_4621);
								{	/* Cfa/arithmetic.scm 169 */
									obj_t BgL_arg1776z00_4623;

									BgL_arg1776z00_4623 = CDR(((obj_t) BgL_bz00_4622));
									BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
										((BgL_nodez00_bglt) BgL_arg1776z00_4623));
								}
							}
							{
								obj_t BgL_l1535z00_5358;

								BgL_l1535z00_5358 = CDR(BgL_l1535z00_4621);
								BgL_l1535z00_4621 = BgL_l1535z00_5358;
								goto BgL_zc3z04anonymousza31774ze3z87_4620;
							}
						}
					else
						{	/* Cfa/arithmetic.scm 169 */
							((bool_t) 1);
						}
				}
			}
			BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_letzd2varzd2_bglt) COBJECT(
							((BgL_letzd2varzd2_bglt) BgL_nodez00_4457)))->BgL_bodyz00));
			{	/* Cfa/arithmetic.scm 171 */
				bool_t BgL_test2274z00_5363;

				{	/* Cfa/arithmetic.scm 171 */
					BgL_typez00_bglt BgL_arg1816z00_4624;

					BgL_arg1816z00_4624 =
						(((BgL_nodez00_bglt) COBJECT(
								((BgL_nodez00_bglt)
									((BgL_letzd2varzd2_bglt) BgL_nodez00_4457))))->BgL_typez00);
					BgL_test2274z00_5363 =
						(((obj_t) BgL_arg1816z00_4624) == BGl_za2_za2z00zztype_cachez00);
				}
				if (BgL_test2274z00_5363)
					{	/* Cfa/arithmetic.scm 171 */
						return
							((((BgL_nodez00_bglt) COBJECT(
										((BgL_nodez00_bglt)
											((BgL_letzd2varzd2_bglt) BgL_nodez00_4457))))->
								BgL_typez00) =
							((BgL_typez00_bglt) (((BgL_nodez00_bglt)
										COBJECT((((BgL_letzd2varzd2_bglt)
													COBJECT(((BgL_letzd2varzd2_bglt) BgL_nodez00_4457)))->
												BgL_bodyz00)))->BgL_typez00)), BUNSPEC);
					}
				else
					{	/* Cfa/arithmetic.scm 171 */
						return BFALSE;
					}
			}
		}

	}



/* &cleanup-node!-let-fu1573 */
	obj_t BGl_z62cleanupzd2nodez12zd2letzd2fu1573za2zzcfa_arithmeticz00(obj_t
		BgL_envz00_4458, obj_t BgL_nodez00_4459)
	{
		{	/* Cfa/arithmetic.scm 157 */
			{	/* Cfa/arithmetic.scm 159 */
				obj_t BgL_g1534z00_4626;

				BgL_g1534z00_4626 =
					(((BgL_letzd2funzd2_bglt) COBJECT(
							((BgL_letzd2funzd2_bglt) BgL_nodez00_4459)))->BgL_localsz00);
				{
					obj_t BgL_l1532z00_4628;

					BgL_l1532z00_4628 = BgL_g1534z00_4626;
				BgL_zc3z04anonymousza31753ze3z87_4627:
					if (PAIRP(BgL_l1532z00_4628))
						{	/* Cfa/arithmetic.scm 159 */
							{	/* Cfa/arithmetic.scm 159 */
								obj_t BgL_arg1759z00_4629;

								BgL_arg1759z00_4629 = CAR(BgL_l1532z00_4628);
								{	/* Cfa/arithmetic.scm 90 */
									BgL_valuez00_bglt BgL_funz00_4630;

									BgL_funz00_4630 =
										(((BgL_variablez00_bglt) COBJECT(
												((BgL_variablez00_bglt) BgL_arg1759z00_4629)))->
										BgL_valuez00);
									{	/* Cfa/arithmetic.scm 90 */
										obj_t BgL_bodyz00_4631;

										BgL_bodyz00_4631 =
											(((BgL_sfunz00_bglt) COBJECT(
													((BgL_sfunz00_bglt) BgL_funz00_4630)))->BgL_bodyz00);
										{	/* Cfa/arithmetic.scm 91 */

											BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
												((BgL_nodez00_bglt) BgL_bodyz00_4631));
										}
									}
								}
							}
							{
								obj_t BgL_l1532z00_5386;

								BgL_l1532z00_5386 = CDR(BgL_l1532z00_4628);
								BgL_l1532z00_4628 = BgL_l1532z00_5386;
								goto BgL_zc3z04anonymousza31753ze3z87_4627;
							}
						}
					else
						{	/* Cfa/arithmetic.scm 159 */
							((bool_t) 1);
						}
				}
			}
			BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_letzd2funzd2_bglt) COBJECT(
							((BgL_letzd2funzd2_bglt) BgL_nodez00_4459)))->BgL_bodyz00));
			{	/* Cfa/arithmetic.scm 161 */
				bool_t BgL_test2276z00_5391;

				{	/* Cfa/arithmetic.scm 161 */
					BgL_typez00_bglt BgL_arg1773z00_4632;

					BgL_arg1773z00_4632 =
						(((BgL_nodez00_bglt) COBJECT(
								((BgL_nodez00_bglt)
									((BgL_letzd2funzd2_bglt) BgL_nodez00_4459))))->BgL_typez00);
					BgL_test2276z00_5391 =
						(((obj_t) BgL_arg1773z00_4632) == BGl_za2_za2z00zztype_cachez00);
				}
				if (BgL_test2276z00_5391)
					{	/* Cfa/arithmetic.scm 161 */
						return
							((((BgL_nodez00_bglt) COBJECT(
										((BgL_nodez00_bglt)
											((BgL_letzd2funzd2_bglt) BgL_nodez00_4459))))->
								BgL_typez00) =
							((BgL_typez00_bglt) (((BgL_nodez00_bglt)
										COBJECT((((BgL_letzd2funzd2_bglt)
													COBJECT(((BgL_letzd2funzd2_bglt) BgL_nodez00_4459)))->
												BgL_bodyz00)))->BgL_typez00)), BUNSPEC);
					}
				else
					{	/* Cfa/arithmetic.scm 161 */
						return BFALSE;
					}
			}
		}

	}



/* &cleanup-node!-switch1571 */
	obj_t BGl_z62cleanupzd2nodez12zd2switch1571z70zzcfa_arithmeticz00(obj_t
		BgL_envz00_4460, obj_t BgL_nodez00_4461)
	{
		{	/* Cfa/arithmetic.scm 149 */
			{	/* Cfa/arithmetic.scm 150 */
				bool_t BgL_tmpz00_5403;

				BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
					(((BgL_switchz00_bglt) COBJECT(
								((BgL_switchz00_bglt) BgL_nodez00_4461)))->BgL_testz00));
				{	/* Cfa/arithmetic.scm 152 */
					obj_t BgL_g1531z00_4634;

					BgL_g1531z00_4634 =
						(((BgL_switchz00_bglt) COBJECT(
								((BgL_switchz00_bglt) BgL_nodez00_4461)))->BgL_clausesz00);
					{
						obj_t BgL_l1529z00_4636;

						BgL_l1529z00_4636 = BgL_g1531z00_4634;
					BgL_zc3z04anonymousza31749ze3z87_4635:
						if (PAIRP(BgL_l1529z00_4636))
							{	/* Cfa/arithmetic.scm 152 */
								{	/* Cfa/arithmetic.scm 152 */
									obj_t BgL_clausez00_4637;

									BgL_clausez00_4637 = CAR(BgL_l1529z00_4636);
									{	/* Cfa/arithmetic.scm 152 */
										obj_t BgL_arg1751z00_4638;

										BgL_arg1751z00_4638 = CDR(((obj_t) BgL_clausez00_4637));
										BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
											((BgL_nodez00_bglt) BgL_arg1751z00_4638));
									}
								}
								{
									obj_t BgL_l1529z00_5416;

									BgL_l1529z00_5416 = CDR(BgL_l1529z00_4636);
									BgL_l1529z00_4636 = BgL_l1529z00_5416;
									goto BgL_zc3z04anonymousza31749ze3z87_4635;
								}
							}
						else
							{	/* Cfa/arithmetic.scm 152 */
								BgL_tmpz00_5403 = ((bool_t) 1);
							}
					}
				}
				return BBOOL(BgL_tmpz00_5403);
			}
		}

	}



/* &cleanup-node!-fail1569 */
	obj_t BGl_z62cleanupzd2nodez12zd2fail1569z70zzcfa_arithmeticz00(obj_t
		BgL_envz00_4462, obj_t BgL_nodez00_4463)
	{
		{	/* Cfa/arithmetic.scm 140 */
			BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_failz00_bglt) COBJECT(
							((BgL_failz00_bglt) BgL_nodez00_4463)))->BgL_procz00));
			BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_failz00_bglt) COBJECT(
							((BgL_failz00_bglt) BgL_nodez00_4463)))->BgL_msgz00));
			return
				BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_failz00_bglt) COBJECT(
							((BgL_failz00_bglt) BgL_nodez00_4463)))->BgL_objz00));
		}

	}



/* &cleanup-node!-condit1567 */
	obj_t BGl_z62cleanupzd2nodez12zd2condit1567z70zzcfa_arithmeticz00(obj_t
		BgL_envz00_4464, obj_t BgL_nodez00_4465)
	{
		{	/* Cfa/arithmetic.scm 131 */
			BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_conditionalz00_bglt) COBJECT(
							((BgL_conditionalz00_bglt) BgL_nodez00_4465)))->BgL_testz00));
			BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_conditionalz00_bglt) COBJECT(
							((BgL_conditionalz00_bglt) BgL_nodez00_4465)))->BgL_truez00));
			return
				BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_conditionalz00_bglt) COBJECT(
							((BgL_conditionalz00_bglt) BgL_nodez00_4465)))->BgL_falsez00));
		}

	}



/* &cleanup-node!-setq1565 */
	obj_t BGl_z62cleanupzd2nodez12zd2setq1565z70zzcfa_arithmeticz00(obj_t
		BgL_envz00_4466, obj_t BgL_nodez00_4467)
	{
		{	/* Cfa/arithmetic.scm 124 */
			return
				BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_setqz00_bglt) COBJECT(
							((BgL_setqz00_bglt) BgL_nodez00_4467)))->BgL_valuez00));
		}

	}



/* &cleanup-node!-sync1563 */
	obj_t BGl_z62cleanupzd2nodez12zd2sync1563z70zzcfa_arithmeticz00(obj_t
		BgL_envz00_4468, obj_t BgL_nodez00_4469)
	{
		{	/* Cfa/arithmetic.scm 113 */
			BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_syncz00_bglt) COBJECT(
							((BgL_syncz00_bglt) BgL_nodez00_4469)))->BgL_mutexz00));
			BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_syncz00_bglt) COBJECT(
							((BgL_syncz00_bglt) BgL_nodez00_4469)))->BgL_prelockz00));
			BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
				(((BgL_syncz00_bglt) COBJECT(
							((BgL_syncz00_bglt) BgL_nodez00_4469)))->BgL_bodyz00));
			{	/* Cfa/arithmetic.scm 118 */
				bool_t BgL_test2278z00_5449;

				{	/* Cfa/arithmetic.scm 118 */
					BgL_typez00_bglt BgL_arg1734z00_4643;

					BgL_arg1734z00_4643 =
						(((BgL_nodez00_bglt) COBJECT(
								((BgL_nodez00_bglt)
									((BgL_syncz00_bglt) BgL_nodez00_4469))))->BgL_typez00);
					BgL_test2278z00_5449 =
						(((obj_t) BgL_arg1734z00_4643) == BGl_za2_za2z00zztype_cachez00);
				}
				if (BgL_test2278z00_5449)
					{	/* Cfa/arithmetic.scm 118 */
						return
							((((BgL_nodez00_bglt) COBJECT(
										((BgL_nodez00_bglt)
											((BgL_syncz00_bglt) BgL_nodez00_4469))))->BgL_typez00) =
							((BgL_typez00_bglt) (((BgL_nodez00_bglt)
										COBJECT((((BgL_syncz00_bglt) COBJECT(((BgL_syncz00_bglt)
															BgL_nodez00_4469)))->BgL_bodyz00)))->
									BgL_typez00)), BUNSPEC);
					}
				else
					{	/* Cfa/arithmetic.scm 118 */
						return BFALSE;
					}
			}
		}

	}



/* &cleanup-node!-sequen1561 */
	obj_t BGl_z62cleanupzd2nodez12zd2sequen1561z70zzcfa_arithmeticz00(obj_t
		BgL_envz00_4470, obj_t BgL_nodez00_4471)
	{
		{	/* Cfa/arithmetic.scm 103 */
			if (NULLP(
					(((BgL_sequencez00_bglt) COBJECT(
								((BgL_sequencez00_bglt) BgL_nodez00_4471)))->BgL_nodesz00)))
				{	/* Cfa/arithmetic.scm 105 */
					return BFALSE;
				}
			else
				{	/* Cfa/arithmetic.scm 105 */
					{	/* Cfa/arithmetic.scm 106 */
						obj_t BgL_g1528z00_4645;

						BgL_g1528z00_4645 =
							(((BgL_sequencez00_bglt) COBJECT(
									((BgL_sequencez00_bglt) BgL_nodez00_4471)))->BgL_nodesz00);
						{
							obj_t BgL_l1526z00_4647;

							BgL_l1526z00_4647 = BgL_g1528z00_4645;
						BgL_zc3z04anonymousza31698ze3z87_4646:
							if (PAIRP(BgL_l1526z00_4647))
								{	/* Cfa/arithmetic.scm 106 */
									{	/* Cfa/arithmetic.scm 106 */
										obj_t BgL_arg1706z00_4648;

										BgL_arg1706z00_4648 = CAR(BgL_l1526z00_4647);
										BGl_cleanupzd2nodez12zc0zzcfa_arithmeticz00(
											((BgL_nodez00_bglt) BgL_arg1706z00_4648));
									}
									{
										obj_t BgL_l1526z00_5472;

										BgL_l1526z00_5472 = CDR(BgL_l1526z00_4647);
										BgL_l1526z00_4647 = BgL_l1526z00_5472;
										goto BgL_zc3z04anonymousza31698ze3z87_4646;
									}
								}
							else
								{	/* Cfa/arithmetic.scm 106 */
									((bool_t) 1);
								}
						}
					}
					{	/* Cfa/arithmetic.scm 107 */
						bool_t BgL_test2281z00_5474;

						{	/* Cfa/arithmetic.scm 107 */
							BgL_typez00_bglt BgL_arg1715z00_4649;

							BgL_arg1715z00_4649 =
								(((BgL_nodez00_bglt) COBJECT(
										((BgL_nodez00_bglt)
											((BgL_sequencez00_bglt) BgL_nodez00_4471))))->
								BgL_typez00);
							BgL_test2281z00_5474 =
								(((obj_t) BgL_arg1715z00_4649) ==
								BGl_za2_za2z00zztype_cachez00);
						}
						if (BgL_test2281z00_5474)
							{	/* Cfa/arithmetic.scm 107 */
								return
									((((BgL_nodez00_bglt) COBJECT(
												((BgL_nodez00_bglt)
													((BgL_sequencez00_bglt) BgL_nodez00_4471))))->
										BgL_typez00) =
									((BgL_typez00_bglt) (((BgL_nodez00_bglt)
												COBJECT(((BgL_nodez00_bglt)
														CAR(BGl_lastzd2pairzd2zz__r4_pairs_and_lists_6_3z00(
																(((BgL_sequencez00_bglt)
																		COBJECT(((BgL_sequencez00_bglt)
																				BgL_nodez00_4471)))->
																	BgL_nodesz00))))))->BgL_typez00)), BUNSPEC);
							}
						else
							{	/* Cfa/arithmetic.scm 107 */
								return BFALSE;
							}
					}
				}
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zzcfa_arithmeticz00(void)
	{
		{	/* Cfa/arithmetic.scm 28 */
			BGl_modulezd2initializa7ationz75zztools_tracez00(54713316L,
				BSTRING_TO_STRING(BGl_string2167z00zzcfa_arithmeticz00));
			BGl_modulezd2initializa7ationz75zztools_errorz00(300504031L,
				BSTRING_TO_STRING(BGl_string2167z00zzcfa_arithmeticz00));
			BGl_modulezd2initializa7ationz75zztools_shapez00(365925558L,
				BSTRING_TO_STRING(BGl_string2167z00zzcfa_arithmeticz00));
			BGl_modulezd2initializa7ationz75zztype_typez00(515343395L,
				BSTRING_TO_STRING(BGl_string2167z00zzcfa_arithmeticz00));
			BGl_modulezd2initializa7ationz75zztype_cachez00(346491734L,
				BSTRING_TO_STRING(BGl_string2167z00zzcfa_arithmeticz00));
			BGl_modulezd2initializa7ationz75zzast_varz00(90839984L,
				BSTRING_TO_STRING(BGl_string2167z00zzcfa_arithmeticz00));
			BGl_modulezd2initializa7ationz75zzast_nodez00(469732712L,
				BSTRING_TO_STRING(BGl_string2167z00zzcfa_arithmeticz00));
			BGl_modulezd2initializa7ationz75zzcfa_infoz00(3788352L,
				BSTRING_TO_STRING(BGl_string2167z00zzcfa_arithmeticz00));
			BGl_modulezd2initializa7ationz75zzcfa_info2z00(0L,
				BSTRING_TO_STRING(BGl_string2167z00zzcfa_arithmeticz00));
			BGl_modulezd2initializa7ationz75zzcfa_loosez00(471177480L,
				BSTRING_TO_STRING(BGl_string2167z00zzcfa_arithmeticz00));
			BGl_modulezd2initializa7ationz75zzcfa_iteratez00(131412063L,
				BSTRING_TO_STRING(BGl_string2167z00zzcfa_arithmeticz00));
			BGl_modulezd2initializa7ationz75zzcfa_cfaz00(400853817L,
				BSTRING_TO_STRING(BGl_string2167z00zzcfa_arithmeticz00));
			BGl_modulezd2initializa7ationz75zzcfa_setupz00(168272122L,
				BSTRING_TO_STRING(BGl_string2167z00zzcfa_arithmeticz00));
			BGl_modulezd2initializa7ationz75zzcfa_approxz00(54924680L,
				BSTRING_TO_STRING(BGl_string2167z00zzcfa_arithmeticz00));
			return
				BGl_modulezd2initializa7ationz75zzcfa_tvectorz00(324810626L,
				BSTRING_TO_STRING(BGl_string2167z00zzcfa_arithmeticz00));
		}

	}

#ifdef __cplusplus
}
#endif
