/*===========================================================================*/
/*   (Engine/heap.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 Engine/heap.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_ENGINE_HEAP_TYPE_DEFINITIONS
#define BGL_ENGINE_HEAP_TYPE_DEFINITIONS

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

	typedef struct BgL_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_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_typez00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_idz00;
		obj_t BgL_namez00;
		obj_t BgL_siza7eza7;
		obj_t BgL_classz00;
		obj_t BgL_coercezd2tozd2;
		obj_t BgL_parentsz00;
		bool_t BgL_initzf3zf3;
		bool_t BgL_magiczf3zf3;
		obj_t BgL_z42z42;
		obj_t BgL_aliasz00;
		obj_t BgL_pointedzd2tozd2byz00;
		obj_t BgL_tvectorz00;
		obj_t BgL_locationz00;
		obj_t BgL_importzd2locationzd2;
		int BgL_occurrencez00;
	}              *BgL_typez00_bglt;

	typedef struct BgL_tclassz00_bgl
	{
		obj_t BgL_itszd2superzd2;
		obj_t BgL_slotsz00;
		struct BgL_globalz00_bgl *BgL_holderz00;
		obj_t BgL_wideningz00;
		long BgL_depthz00;
		bool_t BgL_finalzf3zf3;
		obj_t BgL_constructorz00;
		obj_t BgL_virtualzd2slotszd2numberz00;
		bool_t BgL_abstractzf3zf3;
		obj_t BgL_widezd2typezd2;
		obj_t BgL_subclassesz00;
	}                *BgL_tclassz00_bglt;


#endif													// BGL_ENGINE_HEAP_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	extern obj_t BGl_initializa7ezd2Tenvz12z67zztype_envz00(void);
	extern obj_t BGl_setzd2genvz12zc0zzast_envz00(obj_t);
	extern obj_t BGl_modulezd2ze3qualifiedzd2typeze3zzread_jvmz00(obj_t);
	BGL_IMPORT obj_t BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(obj_t,
		obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zzengine_heapz00 = BUNSPEC;
	static obj_t BGl_dumpzd2Genvzd2zzengine_heapz00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_dumpzd2heapszd2zzengine_heapz00(obj_t);
	BGL_IMPORT obj_t bgl_display_obj(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_za2classesza2z00zz__objectz00;
	extern obj_t BGl_tclassz00zzobject_classz00;
	extern obj_t BGl_za2targetzd2languageza2zd2zzengine_paramz00;
	extern obj_t BGl_sfunz00zzast_varz00;
	extern obj_t BGl_setzd2backendz12zc0zzbackend_backendz00(obj_t);
	static obj_t BGl_z62dumpzd2heapszb0zzengine_heapz00(obj_t, obj_t);
	extern obj_t BGl_forzd2eachzd2globalz12z12zzast_envz00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_formatz00zz__r4_output_6_10_3z00(obj_t, obj_t);
	BGL_IMPORT obj_t input_obj(obj_t);
	static obj_t BGl_genericzd2initzd2zzengine_heapz00(void);
	static obj_t BGl_objectzd2initzd2zzengine_heapz00(void);
	extern obj_t BGl_shapez00zztools_shapez00(obj_t);
	BGL_IMPORT obj_t BGl_za2inheritancesza2z00zz__objectz00;
	extern obj_t BGl_addzd2genvz12zc0zzast_envz00(obj_t);
	BGL_IMPORT obj_t BGl_openzd2inputzd2binaryzd2filezd2zz__binaryz00(obj_t);
	extern obj_t BGl_thezd2backendzd2zzbackend_backendz00(void);
	BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t, obj_t);
	static obj_t BGl_dumpzd2Tenvzd2zzengine_heapz00(obj_t);
	static obj_t BGl_z62zc3z04anonymousza31323ze3ze5zzengine_heapz00(obj_t, 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_methodzd2initzd2zzengine_heapz00(void);
	static obj_t BGl_z62zc3z04anonymousza31251ze3ze5zzengine_heapz00(obj_t,
		obj_t);
	extern obj_t BGl_initializa7ezd2Genvz12z67zzast_envz00(void);
	BGL_IMPORT obj_t close_binary_port(obj_t);
	BGL_IMPORT obj_t BGl_errorz00zz__errorz00(obj_t, obj_t, obj_t);
	static obj_t BGl_z62zc3z04anonymousza31258ze3ze5zzengine_heapz00(obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzengine_heapz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzmodule_pragmaz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzmodule_modulez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzheap_restorez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzread_jvmz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_envz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzobject_classz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_envz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzbackend_backendz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(long,
		char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(long, char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(long, char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__binaryz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__hashz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__bexitz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__osz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
	BGL_IMPORT obj_t BGl_withzd2outputzd2tozd2portzd2zz__r4_ports_6_10_1z00(obj_t,
		obj_t);
	extern obj_t BGl_cfunz00zzast_varz00;
	BGL_IMPORT bool_t fexists(char *);
	static obj_t BGl_z62zc3z04anonymousza31292ze3ze5zzengine_heapz00(obj_t);
	extern obj_t BGl_setzd2tenvz12zc0zztype_envz00(obj_t);
	extern obj_t BGl_za2libzd2dirza2zd2zzengine_paramz00;
	static obj_t BGl_cnstzd2initzd2zzengine_heapz00(void);
	static obj_t BGl_libraryzd2moduleszd2initz00zzengine_heapz00(void);
	static obj_t BGl_importedzd2moduleszd2initz00zzengine_heapz00(void);
	static obj_t BGl_gczd2rootszd2initz00zzengine_heapz00(void);
	static obj_t BGl_z62zc3z04anonymousza31278ze3ze5zzengine_heapz00(obj_t);
	BGL_IMPORT obj_t BGl_hashtablezd2forzd2eachz00zz__hashz00(obj_t, obj_t);
	static obj_t BGl_dumpzd2heapzd2zzengine_heapz00(obj_t);
	static obj_t BGl_z62zc3z04anonymousza31734ze3ze5zzengine_heapz00(obj_t, obj_t,
		obj_t);
	BGL_IMPORT obj_t BGl_findzd2filezf2pathz20zz__osz00(obj_t, obj_t);
	extern obj_t BGl_addzd2qualifiedzd2typez12z12zzread_jvmz00(obj_t, obj_t,
		obj_t);
	extern obj_t BGl_heapzd2modulezd2listz00zzheap_restorez00(obj_t);
	static obj_t __cnst[14];


	   
		 
		DEFINE_STRING(BGl_string1844z00zzengine_heapz00,
		BgL_bgl_string1844za700za7za7e1867za7, "dump-heap", 9);
	      DEFINE_STRING(BGl_string1845z00zzengine_heapz00,
		BgL_bgl_string1845za700za7za7e1868za7, "Corrupted heap", 14);
	      DEFINE_STRING(BGl_string1848z00zzengine_heapz00,
		BgL_bgl_string1848za700za7za7e1869za7, "Cannot open heap file ~s", 24);
	      DEFINE_STRING(BGl_string1849z00zzengine_heapz00,
		BgL_bgl_string1849za700za7za7e1870za7, "(heap \"", 7);
	      DEFINE_STRING(BGl_string1850z00zzengine_heapz00,
		BgL_bgl_string1850za700za7za7e1871za7, "\"", 1);
	      DEFINE_STRING(BGl_string1851z00zzengine_heapz00,
		BgL_bgl_string1851za700za7za7e1872za7, " (variables", 11);
	      DEFINE_STRING(BGl_string1852z00zzengine_heapz00,
		BgL_bgl_string1852za700za7za7e1873za7, " )\n", 3);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1846z00zzengine_heapz00,
		BgL_bgl_za762za7c3za704anonymo1874za7,
		BGl_z62zc3z04anonymousza31251ze3ze5zzengine_heapz00, 0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string1853z00zzengine_heapz00,
		BgL_bgl_string1853za700za7za7e1875za7, " (types", 7);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1847z00zzengine_heapz00,
		BgL_bgl_za762za7c3za704anonymo1876za7,
		BGl_z62zc3z04anonymousza31258ze3ze5zzengine_heapz00, 0L, BUNSPEC, 2);
	      DEFINE_STRING(BGl_string1854z00zzengine_heapz00,
		BgL_bgl_string1854za700za7za7e1877za7, " )", 2);
	      DEFINE_STRING(BGl_string1855z00zzengine_heapz00,
		BgL_bgl_string1855za700za7za7e1878za7, " (includes", 10);
	      DEFINE_STRING(BGl_string1856z00zzengine_heapz00,
		BgL_bgl_string1856za700za7za7e1879za7, ")\n", 2);
	      DEFINE_STRING(BGl_string1858z00zzengine_heapz00,
		BgL_bgl_string1858za700za7za7e1880za7, "   ", 3);
	      DEFINE_STRING(BGl_string1859z00zzengine_heapz00,
		BgL_bgl_string1859za700za7za7e1881za7, "~s", 2);
	      DEFINE_STRING(BGl_string1860z00zzengine_heapz00,
		BgL_bgl_string1860za700za7za7e1882za7, "", 0);
	      DEFINE_STRING(BGl_string1861z00zzengine_heapz00,
		BgL_bgl_string1861za700za7za7e1883za7, "\n   ", 4);
	      DEFINE_STRING(BGl_string1862z00zzengine_heapz00,
		BgL_bgl_string1862za700za7za7e1884za7, "\n    ", 5);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1857z00zzengine_heapz00,
		BgL_bgl_za762za7c3za704anonymo1885za7,
		BGl_z62zc3z04anonymousza31323ze3ze5zzengine_heapz00, 0L, BUNSPEC, 2);
	      DEFINE_STRING(BGl_string1864z00zzengine_heapz00,
		BgL_bgl_string1864za700za7za7e1886za7, "engine_heap", 11);
	      DEFINE_STRING(BGl_string1865z00zzengine_heapz00,
		BgL_bgl_string1865za700za7za7e1887za7,
		"type super variable class native function args jvm-type-name inline sifun qualified-type name module id ",
		104);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc1863z00zzengine_heapz00,
		BgL_bgl_za762za7c3za704anonymo1888za7,
		BGl_z62zc3z04anonymousza31734ze3ze5zzengine_heapz00, 0L, BUNSPEC, 2);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_dumpzd2heapszd2envz00zzengine_heapz00,
		BgL_bgl_za762dumpza7d2heapsza71889za7,
		BGl_z62dumpzd2heapszb0zzengine_heapz00, 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_requirezd2initializa7ationz75zzengine_heapz00));
#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_modulezd2initializa7ationz75zzengine_heapz00(long
		BgL_checksumz00_1745, char *BgL_fromz00_1746)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zzengine_heapz00))
				{
					BGl_requirezd2initializa7ationz75zzengine_heapz00 =
						BBOOL(((bool_t) 0));
					BGl_gczd2rootszd2initz00zzengine_heapz00();
					BGl_libraryzd2moduleszd2initz00zzengine_heapz00();
					BGl_cnstzd2initzd2zzengine_heapz00();
					BGl_importedzd2moduleszd2initz00zzengine_heapz00();
					return BGl_methodzd2initzd2zzengine_heapz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* library-modules-init */
	obj_t BGl_libraryzd2moduleszd2initz00zzengine_heapz00(void)
	{
		{	/* Engine/heap.scm 15 */
			BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(0L,
				"engine_heap");
			BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(0L,
				"engine_heap");
			BGl_modulezd2initializa7ationz75zz__objectz00(0L, "engine_heap");
			BGl_modulezd2initializa7ationz75zz__binaryz00(0L, "engine_heap");
			BGl_modulezd2initializa7ationz75zz__readerz00(0L, "engine_heap");
			BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(0L, "engine_heap");
			BGl_modulezd2initializa7ationz75zz__errorz00(0L, "engine_heap");
			BGl_modulezd2initializa7ationz75zz__hashz00(0L, "engine_heap");
			BGl_modulezd2initializa7ationz75zz__osz00(0L, "engine_heap");
			BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(0L,
				"engine_heap");
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(0L,
				"engine_heap");
			BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(0L, "engine_heap");
			BGl_modulezd2initializa7ationz75zz__bexitz00(0L, "engine_heap");
			BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(0L, "engine_heap");
			return BUNSPEC;
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zzengine_heapz00(void)
	{
		{	/* Engine/heap.scm 15 */
			{	/* Engine/heap.scm 15 */
				obj_t BgL_cportz00_1518;

				{	/* Engine/heap.scm 15 */
					obj_t BgL_stringz00_1525;

					BgL_stringz00_1525 = BGl_string1865z00zzengine_heapz00;
					{	/* Engine/heap.scm 15 */
						obj_t BgL_startz00_1526;

						BgL_startz00_1526 = BINT(0L);
						{	/* Engine/heap.scm 15 */
							obj_t BgL_endz00_1527;

							BgL_endz00_1527 =
								BINT(STRING_LENGTH(((obj_t) BgL_stringz00_1525)));
							{	/* Engine/heap.scm 15 */

								BgL_cportz00_1518 =
									BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00
									(BgL_stringz00_1525, BgL_startz00_1526, BgL_endz00_1527);
				}}}}
				{
					long BgL_iz00_1519;

					BgL_iz00_1519 = 13L;
				BgL_loopz00_1520:
					if ((BgL_iz00_1519 == -1L))
						{	/* Engine/heap.scm 15 */
							return BUNSPEC;
						}
					else
						{	/* Engine/heap.scm 15 */
							{	/* Engine/heap.scm 15 */
								obj_t BgL_arg1866z00_1521;

								{	/* Engine/heap.scm 15 */

									{	/* Engine/heap.scm 15 */
										obj_t BgL_locationz00_1523;

										BgL_locationz00_1523 = BBOOL(((bool_t) 0));
										{	/* Engine/heap.scm 15 */

											BgL_arg1866z00_1521 =
												BGl_readz00zz__readerz00(BgL_cportz00_1518,
												BgL_locationz00_1523);
										}
									}
								}
								{	/* Engine/heap.scm 15 */
									int BgL_tmpz00_1778;

									BgL_tmpz00_1778 = (int) (BgL_iz00_1519);
									CNST_TABLE_SET(BgL_tmpz00_1778, BgL_arg1866z00_1521);
							}}
							{	/* Engine/heap.scm 15 */
								int BgL_auxz00_1524;

								BgL_auxz00_1524 = (int) ((BgL_iz00_1519 - 1L));
								{
									long BgL_iz00_1783;

									BgL_iz00_1783 = (long) (BgL_auxz00_1524);
									BgL_iz00_1519 = BgL_iz00_1783;
									goto BgL_loopz00_1520;
								}
							}
						}
				}
			}
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zzengine_heapz00(void)
	{
		{	/* Engine/heap.scm 15 */
			return bgl_gc_roots_register();
		}

	}



/* dump-heaps */
	BGL_EXPORTED_DEF obj_t BGl_dumpzd2heapszd2zzengine_heapz00(obj_t
		BgL_namesz00_3)
	{
		{	/* Engine/heap.scm 33 */
			BGl_setzd2backendz12zc0zzbackend_backendz00
				(BGl_za2targetzd2languageza2zd2zzengine_paramz00);
			BGl_initializa7ezd2Genvz12z67zzast_envz00();
			BGl_initializa7ezd2Tenvz12z67zztype_envz00();
			{
				obj_t BgL_l1183z00_769;

				{	/* Engine/heap.scm 40 */
					bool_t BgL_tmpz00_1789;

					BgL_l1183z00_769 = BgL_namesz00_3;
				BgL_zc3z04anonymousza31234ze3z87_770:
					if (PAIRP(BgL_l1183z00_769))
						{	/* Engine/heap.scm 40 */
							BGl_dumpzd2heapzd2zzengine_heapz00(CAR(BgL_l1183z00_769));
							{
								obj_t BgL_l1183z00_1794;

								BgL_l1183z00_1794 = CDR(BgL_l1183z00_769);
								BgL_l1183z00_769 = BgL_l1183z00_1794;
								goto BgL_zc3z04anonymousza31234ze3z87_770;
							}
						}
					else
						{	/* Engine/heap.scm 40 */
							BgL_tmpz00_1789 = ((bool_t) 1);
						}
					return BBOOL(BgL_tmpz00_1789);
				}
			}
		}

	}



/* &dump-heaps */
	obj_t BGl_z62dumpzd2heapszb0zzengine_heapz00(obj_t BgL_envz00_1491,
		obj_t BgL_namesz00_1492)
	{
		{	/* Engine/heap.scm 33 */
			return BGl_dumpzd2heapszd2zzengine_heapz00(BgL_namesz00_1492);
		}

	}



/* dump-heap */
	obj_t BGl_dumpzd2heapzd2zzengine_heapz00(obj_t BgL_heapz00_4)
	{
		{	/* Engine/heap.scm 45 */
			{	/* Engine/heap.scm 46 */
				obj_t BgL_fnamez00_775;

				if (fexists(BSTRING_TO_STRING(BgL_heapz00_4)))
					{	/* Engine/heap.scm 46 */
						BgL_fnamez00_775 = BgL_heapz00_4;
					}
				else
					{	/* Engine/heap.scm 46 */
						BgL_fnamez00_775 =
							BGl_findzd2filezf2pathz20zz__osz00(BgL_heapz00_4,
							BGl_za2libzd2dirza2zd2zzengine_paramz00);
					}
				if (STRINGP(BgL_fnamez00_775))
					{	/* Engine/heap.scm 50 */
						obj_t BgL_portz00_777;

						BgL_portz00_777 =
							BGl_openzd2inputzd2binaryzd2filezd2zz__binaryz00
							(BgL_fnamez00_775);
						if (BINARY_PORTP(BgL_portz00_777))
							{	/* Engine/heap.scm 55 */
								obj_t BgL_exitd1065z00_779;

								BgL_exitd1065z00_779 = BGL_EXITD_TOP_AS_OBJ();
								{	/* Engine/heap.scm 115 */
									obj_t BgL_zc3z04anonymousza31292ze3z87_1496;

									BgL_zc3z04anonymousza31292ze3z87_1496 =
										MAKE_FX_PROCEDURE
										(BGl_z62zc3z04anonymousza31292ze3ze5zzengine_heapz00,
										(int) (0L), (int) (1L));
									PROCEDURE_SET(BgL_zc3z04anonymousza31292ze3z87_1496,
										(int) (0L), BgL_portz00_777);
									{	/* Engine/heap.scm 55 */
										obj_t BgL_arg1820z00_1180;

										{	/* Engine/heap.scm 55 */
											obj_t BgL_arg1821z00_1181;

											BgL_arg1821z00_1181 =
												BGL_EXITD_PROTECT(BgL_exitd1065z00_779);
											BgL_arg1820z00_1180 =
												MAKE_YOUNG_PAIR(BgL_zc3z04anonymousza31292ze3z87_1496,
												BgL_arg1821z00_1181);
										}
										BGL_EXITD_PROTECT_SET(BgL_exitd1065z00_779,
											BgL_arg1820z00_1180);
										BUNSPEC;
									}
									{	/* Engine/heap.scm 56 */
										obj_t BgL_tmp1067z00_781;

										{	/* Engine/heap.scm 56 */
											obj_t BgL_envsz00_782;

											BgL_envsz00_782 = input_obj(BgL_portz00_777);
											{	/* Engine/heap.scm 56 */
												obj_t BgL__z00_783;

												{	/* Engine/heap.scm 57 */
													bool_t BgL_test1896z00_1817;

													{	/* Engine/heap.scm 57 */
														obj_t BgL_v1185z00_848;

														BgL_v1185z00_848 = create_vector(1L);
														VECTOR_SET(BgL_v1185z00_848, 0L, BgL_envsz00_782);
														((bool_t) 1);
													}
													{	/* Engine/heap.scm 58 */
														bool_t BgL__ortest_1079z00_845;

														BgL__ortest_1079z00_845 =
															(VECTOR_LENGTH(((obj_t) BgL_envsz00_782)) == 5L);
														if (BgL__ortest_1079z00_845)
															{	/* Engine/heap.scm 58 */
																BgL_test1896z00_1817 = BgL__ortest_1079z00_845;
															}
														else
															{	/* Engine/heap.scm 58 */
																BgL_test1896z00_1817 =
																	(VECTOR_LENGTH(
																		((obj_t) BgL_envsz00_782)) == 7L);
															}
													}
													if (BgL_test1896z00_1817)
														{	/* Engine/heap.scm 57 */
															BgL__z00_783 = BFALSE;
														}
													else
														{	/* Engine/heap.scm 57 */
															BgL__z00_783 =
																BGl_errorz00zz__errorz00
																(BGl_string1844z00zzengine_heapz00,
																BGl_string1845z00zzengine_heapz00,
																BgL_heapz00_4);
														}
												}
												{	/* Engine/heap.scm 57 */
													obj_t BgL_targetz00_784;

													BgL_targetz00_784 =
														VECTOR_REF(((obj_t) BgL_envsz00_782), 0L);
													{	/* Engine/heap.scm 61 */
														obj_t BgL_versionz00_785;

														BgL_versionz00_785 =
															VECTOR_REF(((obj_t) BgL_envsz00_782), 1L);
														{	/* Engine/heap.scm 62 */
															obj_t BgL_specificz00_786;

															BgL_specificz00_786 =
																VECTOR_REF(((obj_t) BgL_envsz00_782), 2L);
															{	/* Engine/heap.scm 63 */
																obj_t BgL_genvz00_787;

																BgL_genvz00_787 =
																	VECTOR_REF(((obj_t) BgL_envsz00_782), 3L);
																{	/* Engine/heap.scm 64 */
																	obj_t BgL_tenvz00_788;

																	BgL_tenvz00_788 =
																		VECTOR_REF(((obj_t) BgL_envsz00_782), 4L);
																	{	/* Engine/heap.scm 65 */
																		obj_t BgL_includesz00_789;

																		if (
																			(VECTOR_LENGTH(
																					((obj_t) BgL_envsz00_782)) == 6L))
																			{	/* Engine/heap.scm 66 */
																				BgL_includesz00_789 =
																					VECTOR_REF(
																					((obj_t) BgL_envsz00_782), 5L);
																			}
																		else
																			{	/* Engine/heap.scm 66 */
																				BgL_includesz00_789 = BNIL;
																			}
																		{	/* Engine/heap.scm 66 */

																			if (
																				(VECTOR_LENGTH(
																						((obj_t) BgL_envsz00_782)) == 6L))
																				{	/* Engine/heap.scm 78 */
																					BGl_addzd2genvz12zc0zzast_envz00
																						(BgL_genvz00_787);
																				}
																			else
																				{	/* Engine/heap.scm 78 */
																					BGl_setzd2tenvz12zc0zztype_envz00
																						(BgL_tenvz00_788);
																					BGl_setzd2genvz12zc0zzast_envz00
																						(BgL_genvz00_787);
																				}
																			{	/* Engine/heap.scm 87 */
																				bool_t BgL_test1900z00_1851;

																				{	/* Engine/heap.scm 87 */
																					obj_t BgL_arg1256z00_804;

																					BgL_arg1256z00_804 =
																						BGl_thezd2backendzd2zzbackend_backendz00
																						();
																					BgL_test1900z00_1851 =
																						(((BgL_backendz00_bglt)
																							COBJECT(((BgL_backendz00_bglt)
																									BgL_arg1256z00_804)))->
																						BgL_qualifiedzd2typeszd2);
																				}
																				if (BgL_test1900z00_1851)
																					{	/* Engine/heap.scm 87 */
																						BGl_forzd2eachzd2globalz12z12zzast_envz00
																							(BGl_proc1846z00zzengine_heapz00,
																							BNIL);
																					}
																				else
																					{	/* Engine/heap.scm 87 */
																						BFALSE;
																					}
																			}
																			BGl_hashtablezd2forzd2eachz00zz__hashz00
																				(BgL_genvz00_787,
																				BGl_proc1847z00zzengine_heapz00);
																			{	/* Engine/heap.scm 101 */
																				obj_t BgL_arg1276z00_820;

																				{	/* Engine/heap.scm 101 */
																					obj_t BgL_tmpz00_1857;

																					BgL_tmpz00_1857 =
																						BGL_CURRENT_DYNAMIC_ENV();
																					BgL_arg1276z00_820 =
																						BGL_ENV_CURRENT_ERROR_PORT
																						(BgL_tmpz00_1857);
																				}
																				{	/* Engine/heap.scm 103 */
																					obj_t
																						BgL_zc3z04anonymousza31278ze3z87_1493;
																					BgL_zc3z04anonymousza31278ze3z87_1493
																						=
																						MAKE_FX_PROCEDURE
																						(BGl_z62zc3z04anonymousza31278ze3ze5zzengine_heapz00,
																						(int) (0L), (int) (4L));
																					PROCEDURE_SET
																						(BgL_zc3z04anonymousza31278ze3z87_1493,
																						(int) (0L), BgL_heapz00_4);
																					PROCEDURE_SET
																						(BgL_zc3z04anonymousza31278ze3z87_1493,
																						(int) (1L), BgL_genvz00_787);
																					PROCEDURE_SET
																						(BgL_zc3z04anonymousza31278ze3z87_1493,
																						(int) (2L), BgL_tenvz00_788);
																					PROCEDURE_SET
																						(BgL_zc3z04anonymousza31278ze3z87_1493,
																						(int) (3L), BgL_includesz00_789);
																					BgL_tmp1067z00_781 =
																						BGl_withzd2outputzd2tozd2portzd2zz__r4_ports_6_10_1z00
																						(BgL_arg1276z00_820,
																						BgL_zc3z04anonymousza31278ze3z87_1493);
										}}}}}}}}}}}
										{	/* Engine/heap.scm 55 */
											bool_t BgL_test1901z00_1872;

											{	/* Engine/heap.scm 55 */
												obj_t BgL_arg1819z00_1244;

												BgL_arg1819z00_1244 =
													BGL_EXITD_PROTECT(BgL_exitd1065z00_779);
												BgL_test1901z00_1872 = PAIRP(BgL_arg1819z00_1244);
											}
											if (BgL_test1901z00_1872)
												{	/* Engine/heap.scm 55 */
													obj_t BgL_arg1817z00_1245;

													{	/* Engine/heap.scm 55 */
														obj_t BgL_arg1818z00_1246;

														BgL_arg1818z00_1246 =
															BGL_EXITD_PROTECT(BgL_exitd1065z00_779);
														BgL_arg1817z00_1245 =
															CDR(((obj_t) BgL_arg1818z00_1246));
													}
													BGL_EXITD_PROTECT_SET(BgL_exitd1065z00_779,
														BgL_arg1817z00_1245);
													BUNSPEC;
												}
											else
												{	/* Engine/heap.scm 55 */
													BFALSE;
												}
										}
										close_binary_port(BgL_portz00_777);
										return BgL_tmp1067z00_781;
									}
								}
							}
						else
							{	/* Engine/heap.scm 53 */
								obj_t BgL_arg1294z00_851;

								{	/* Engine/heap.scm 53 */
									obj_t BgL_list1295z00_852;

									BgL_list1295z00_852 = MAKE_YOUNG_PAIR(BgL_fnamez00_775, BNIL);
									BgL_arg1294z00_851 =
										BGl_formatz00zz__r4_output_6_10_3z00
										(BGl_string1848z00zzengine_heapz00, BgL_list1295z00_852);
								}
								return
									BGl_errorz00zz__errorz00(BGl_string1844z00zzengine_heapz00,
									BgL_arg1294z00_851, BGl_za2libzd2dirza2zd2zzengine_paramz00);
							}
					}
				else
					{	/* Engine/heap.scm 116 */
						obj_t BgL_mz00_853;

						{	/* Engine/heap.scm 116 */
							obj_t BgL_list1296z00_854;

							BgL_list1296z00_854 = MAKE_YOUNG_PAIR(BgL_heapz00_4, BNIL);
							BgL_mz00_853 =
								BGl_formatz00zz__r4_output_6_10_3z00
								(BGl_string1848z00zzengine_heapz00, BgL_list1296z00_854);
						}
						BGl_errorz00zz__errorz00(BGl_string1844z00zzengine_heapz00,
							BgL_mz00_853, BGl_za2libzd2dirza2zd2zzengine_paramz00);
						return BFALSE;
					}
			}
		}

	}



/* &<@anonymous:1278> */
	obj_t BGl_z62zc3z04anonymousza31278ze3ze5zzengine_heapz00(obj_t
		BgL_envz00_1497)
	{
		{	/* Engine/heap.scm 102 */
			{	/* Engine/heap.scm 103 */
				obj_t BgL_heapz00_1498;
				obj_t BgL_genvz00_1499;
				obj_t BgL_tenvz00_1500;
				obj_t BgL_includesz00_1501;

				BgL_heapz00_1498 = PROCEDURE_REF(BgL_envz00_1497, (int) (0L));
				BgL_genvz00_1499 = PROCEDURE_REF(BgL_envz00_1497, (int) (1L));
				BgL_tenvz00_1500 = PROCEDURE_REF(BgL_envz00_1497, (int) (2L));
				BgL_includesz00_1501 = PROCEDURE_REF(BgL_envz00_1497, (int) (3L));
				{	/* Engine/heap.scm 103 */
					obj_t BgL_port1189z00_1529;

					{	/* Engine/heap.scm 103 */
						obj_t BgL_tmpz00_1894;

						BgL_tmpz00_1894 = BGL_CURRENT_DYNAMIC_ENV();
						BgL_port1189z00_1529 = BGL_ENV_CURRENT_OUTPUT_PORT(BgL_tmpz00_1894);
					}
					bgl_display_string(BGl_string1849z00zzengine_heapz00,
						BgL_port1189z00_1529);
					bgl_display_obj(BgL_heapz00_1498, BgL_port1189z00_1529);
					bgl_display_string(BGl_string1850z00zzengine_heapz00,
						BgL_port1189z00_1529);
					bgl_display_char(((unsigned char) 10), BgL_port1189z00_1529);
				}
				{	/* Engine/heap.scm 104 */
					obj_t BgL_port1190z00_1530;

					{	/* Engine/heap.scm 104 */
						obj_t BgL_tmpz00_1901;

						BgL_tmpz00_1901 = BGL_CURRENT_DYNAMIC_ENV();
						BgL_port1190z00_1530 = BGL_ENV_CURRENT_OUTPUT_PORT(BgL_tmpz00_1901);
					}
					bgl_display_string(BGl_string1851z00zzengine_heapz00,
						BgL_port1190z00_1530);
					bgl_display_char(((unsigned char) 10), BgL_port1190z00_1530);
				}
				BGl_dumpzd2Genvzd2zzengine_heapz00(BgL_genvz00_1499);
				{	/* Engine/heap.scm 106 */
					obj_t BgL_port1191z00_1531;

					{	/* Engine/heap.scm 106 */
						obj_t BgL_tmpz00_1907;

						BgL_tmpz00_1907 = BGL_CURRENT_DYNAMIC_ENV();
						BgL_port1191z00_1531 = BGL_ENV_CURRENT_OUTPUT_PORT(BgL_tmpz00_1907);
					}
					bgl_display_string(BGl_string1852z00zzengine_heapz00,
						BgL_port1191z00_1531);
					bgl_display_char(((unsigned char) 10), BgL_port1191z00_1531);
				}
				{	/* Engine/heap.scm 107 */
					obj_t BgL_port1192z00_1532;

					{	/* Engine/heap.scm 107 */
						obj_t BgL_tmpz00_1912;

						BgL_tmpz00_1912 = BGL_CURRENT_DYNAMIC_ENV();
						BgL_port1192z00_1532 = BGL_ENV_CURRENT_OUTPUT_PORT(BgL_tmpz00_1912);
					}
					bgl_display_string(BGl_string1853z00zzengine_heapz00,
						BgL_port1192z00_1532);
					bgl_display_char(((unsigned char) 10), BgL_port1192z00_1532);
				}
				BGl_dumpzd2Tenvzd2zzengine_heapz00(BgL_tenvz00_1500);
				{	/* Engine/heap.scm 109 */
					obj_t BgL_port1193z00_1533;

					{	/* Engine/heap.scm 109 */
						obj_t BgL_tmpz00_1918;

						BgL_tmpz00_1918 = BGL_CURRENT_DYNAMIC_ENV();
						BgL_port1193z00_1533 = BGL_ENV_CURRENT_OUTPUT_PORT(BgL_tmpz00_1918);
					}
					bgl_display_string(BGl_string1854z00zzengine_heapz00,
						BgL_port1193z00_1533);
					bgl_display_char(((unsigned char) 10), BgL_port1193z00_1533);
				}
				if (PAIRP(BgL_includesz00_1501))
					{	/* Engine/heap.scm 110 */
						{	/* Engine/heap.scm 111 */
							obj_t BgL_port1194z00_1534;

							{	/* Engine/heap.scm 111 */
								obj_t BgL_tmpz00_1925;

								BgL_tmpz00_1925 = BGL_CURRENT_DYNAMIC_ENV();
								BgL_port1194z00_1534 =
									BGL_ENV_CURRENT_OUTPUT_PORT(BgL_tmpz00_1925);
							}
							bgl_display_string(BGl_string1855z00zzengine_heapz00,
								BgL_port1194z00_1534);
							bgl_display_char(((unsigned char) 10), BgL_port1194z00_1534);
						}
						{	/* Engine/heap.scm 112 */
							obj_t BgL_port1195z00_1535;

							{	/* Engine/heap.scm 112 */
								obj_t BgL_tmpz00_1930;

								BgL_tmpz00_1930 = BGL_CURRENT_DYNAMIC_ENV();
								BgL_port1195z00_1535 =
									BGL_ENV_CURRENT_OUTPUT_PORT(BgL_tmpz00_1930);
							}
							bgl_display_obj(BgL_includesz00_1501, BgL_port1195z00_1535);
							bgl_display_char(((unsigned char) 10), BgL_port1195z00_1535);
						}
						{	/* Engine/heap.scm 113 */
							obj_t BgL_port1196z00_1536;

							{	/* Engine/heap.scm 113 */
								obj_t BgL_tmpz00_1935;

								BgL_tmpz00_1935 = BGL_CURRENT_DYNAMIC_ENV();
								BgL_port1196z00_1536 =
									BGL_ENV_CURRENT_OUTPUT_PORT(BgL_tmpz00_1935);
							}
							bgl_display_string(BGl_string1854z00zzengine_heapz00,
								BgL_port1196z00_1536);
							bgl_display_char(((unsigned char) 10), BgL_port1196z00_1536);
					}}
				else
					{	/* Engine/heap.scm 110 */
						BFALSE;
					}
				{	/* Engine/heap.scm 114 */
					obj_t BgL_port1197z00_1537;

					{	/* Engine/heap.scm 114 */
						obj_t BgL_tmpz00_1940;

						BgL_tmpz00_1940 = BGL_CURRENT_DYNAMIC_ENV();
						BgL_port1197z00_1537 = BGL_ENV_CURRENT_OUTPUT_PORT(BgL_tmpz00_1940);
					}
					bgl_display_string(BGl_string1856z00zzengine_heapz00,
						BgL_port1197z00_1537);
					return bgl_display_char(((unsigned char) 10), BgL_port1197z00_1537);
		}}}

	}



/* &<@anonymous:1258> */
	obj_t BGl_z62zc3z04anonymousza31258ze3ze5zzengine_heapz00(obj_t
		BgL_envz00_1502, obj_t BgL_kz00_1503, obj_t BgL_bucketz00_1504)
	{
		{	/* Engine/heap.scm 97 */
			{	/* Engine/heap.scm 98 */
				bool_t BgL_tmpz00_1945;

				{	/* Engine/heap.scm 98 */
					obj_t BgL_g1188z00_1538;

					BgL_g1188z00_1538 = CDR(((obj_t) BgL_bucketz00_1504));
					{
						obj_t BgL_l1186z00_1540;

						BgL_l1186z00_1540 = BgL_g1188z00_1538;
					BgL_zc3z04anonymousza31259ze3z87_1539:
						if (PAIRP(BgL_l1186z00_1540))
							{	/* Engine/heap.scm 100 */
								{	/* Engine/heap.scm 99 */
									obj_t BgL_newz00_1541;

									BgL_newz00_1541 = CAR(BgL_l1186z00_1540);
									{	/* Engine/heap.scm 99 */
										obj_t BgL_arg1265z00_1542;

										BgL_arg1265z00_1542 =
											(((BgL_globalz00_bglt) COBJECT(
													((BgL_globalz00_bglt) BgL_newz00_1541)))->
											BgL_modulez00);
										{	/* Engine/heap.scm 99 */
											obj_t BgL_list1266z00_1543;

											BgL_list1266z00_1543 =
												MAKE_YOUNG_PAIR(BgL_arg1265z00_1542, BNIL);
											BGl_heapzd2modulezd2listz00zzheap_restorez00
												(BgL_list1266z00_1543);
										}
									}
								}
								{
									obj_t BgL_l1186z00_1955;

									BgL_l1186z00_1955 = CDR(BgL_l1186z00_1540);
									BgL_l1186z00_1540 = BgL_l1186z00_1955;
									goto BgL_zc3z04anonymousza31259ze3z87_1539;
								}
							}
						else
							{	/* Engine/heap.scm 100 */
								BgL_tmpz00_1945 = ((bool_t) 1);
							}
					}
				}
				return BBOOL(BgL_tmpz00_1945);
			}
		}

	}



/* &<@anonymous:1251> */
	obj_t BGl_z62zc3z04anonymousza31251ze3ze5zzengine_heapz00(obj_t
		BgL_envz00_1505, obj_t BgL_newz00_1506)
	{
		{	/* Engine/heap.scm 89 */
			{	/* Engine/heap.scm 91 */
				obj_t BgL_arg1252z00_1544;
				obj_t BgL_arg1253z00_1545;
				obj_t BgL_arg1254z00_1546;

				BgL_arg1252z00_1544 =
					(((BgL_globalz00_bglt) COBJECT(
							((BgL_globalz00_bglt) BgL_newz00_1506)))->BgL_modulez00);
				BgL_arg1253z00_1545 =
					(((BgL_globalz00_bglt) COBJECT(
							((BgL_globalz00_bglt) BgL_newz00_1506)))->
					BgL_jvmzd2typezd2namez00);
				BgL_arg1254z00_1546 = BGl_shapez00zztools_shapez00(BgL_newz00_1506);
				{	/* Engine/heap.scm 90 */
					obj_t BgL_list1255z00_1547;

					BgL_list1255z00_1547 = MAKE_YOUNG_PAIR(BgL_arg1254z00_1546, BNIL);
					return
						BGl_addzd2qualifiedzd2typez12z12zzread_jvmz00(BgL_arg1252z00_1544,
						BgL_arg1253z00_1545, BgL_list1255z00_1547);
				}
			}
		}

	}



/* &<@anonymous:1292> */
	obj_t BGl_z62zc3z04anonymousza31292ze3ze5zzengine_heapz00(obj_t
		BgL_envz00_1507)
	{
		{	/* Engine/heap.scm 55 */
			{	/* Engine/heap.scm 115 */
				obj_t BgL_portz00_1508;

				BgL_portz00_1508 = PROCEDURE_REF(BgL_envz00_1507, (int) (0L));
				return close_binary_port(((obj_t) BgL_portz00_1508));
			}
		}

	}



/* dump-Genv */
	obj_t BGl_dumpzd2Genvzd2zzengine_heapz00(obj_t BgL_genvz00_5)
	{
		{	/* Engine/heap.scm 123 */
			return
				BGl_hashtablezd2forzd2eachz00zz__hashz00(BgL_genvz00_5,
				BGl_proc1857z00zzengine_heapz00);
		}

	}



/* &<@anonymous:1323> */
	obj_t BGl_z62zc3z04anonymousza31323ze3ze5zzengine_heapz00(obj_t
		BgL_envz00_1510, obj_t BgL_kz00_1511, obj_t BgL_bucketz00_1512)
	{
		{	/* Engine/heap.scm 178 */
			{	/* Engine/heap.scm 178 */
				bool_t BgL_tmpz00_1970;

				{
					obj_t BgL_newz00_1549;

					{	/* Engine/heap.scm 178 */
						obj_t BgL_g1220z00_1699;

						BgL_g1220z00_1699 = CDR(((obj_t) BgL_bucketz00_1512));
						{
							obj_t BgL_l1218z00_1701;

							BgL_l1218z00_1701 = BgL_g1220z00_1699;
						BgL_zc3z04anonymousza31324ze3z87_1700:
							if (PAIRP(BgL_l1218z00_1701))
								{	/* Engine/heap.scm 178 */
									BgL_newz00_1549 = CAR(BgL_l1218z00_1701);
									{	/* Engine/heap.scm 125 */
										obj_t BgL_modulez00_1550;

										BgL_modulez00_1550 =
											(((BgL_globalz00_bglt) COBJECT(
													((BgL_globalz00_bglt) BgL_newz00_1549)))->
											BgL_modulez00);
										{	/* Engine/heap.scm 125 */
											obj_t BgL_idz00_1551;

											BgL_idz00_1551 =
												(((BgL_variablez00_bglt) COBJECT(
														((BgL_variablez00_bglt)
															((BgL_globalz00_bglt) BgL_newz00_1549))))->
												BgL_idz00);
											{	/* Engine/heap.scm 126 */
												obj_t BgL_qtz00_1552;

												BgL_qtz00_1552 =
													BGl_modulezd2ze3qualifiedzd2typeze3zzread_jvmz00
													(BgL_modulez00_1550);
												{	/* Engine/heap.scm 127 */
													obj_t BgL_jtz00_1553;

													BgL_jtz00_1553 =
														(((BgL_globalz00_bglt) COBJECT(
																((BgL_globalz00_bglt) BgL_newz00_1549)))->
														BgL_jvmzd2typezd2namez00);
													{	/* Engine/heap.scm 128 */
														BgL_valuez00_bglt BgL_valz00_1554;

														BgL_valz00_1554 =
															(((BgL_variablez00_bglt) COBJECT(
																	((BgL_variablez00_bglt)
																		((BgL_globalz00_bglt) BgL_newz00_1549))))->
															BgL_valuez00);
														{	/* Engine/heap.scm 129 */

															{	/* Engine/heap.scm 131 */
																bool_t BgL_test1905z00_1986;

																{	/* Engine/heap.scm 131 */
																	obj_t BgL_classz00_1555;

																	BgL_classz00_1555 = BGl_sfunz00zzast_varz00;
																	{	/* Engine/heap.scm 131 */
																		BgL_objectz00_bglt BgL_arg1801z00_1556;

																		{	/* Engine/heap.scm 131 */
																			obj_t BgL_tmpz00_1987;

																			BgL_tmpz00_1987 =
																				((obj_t)
																				((BgL_objectz00_bglt) BgL_valz00_1554));
																			BgL_arg1801z00_1556 =
																				(BgL_objectz00_bglt) (BgL_tmpz00_1987);
																		}
																		if (BGL_CONDEXPAND_ISA_ARCH64())
																			{	/* Engine/heap.scm 131 */
																				long BgL_idxz00_1557;

																				BgL_idxz00_1557 =
																					BGL_OBJECT_INHERITANCE_NUM
																					(BgL_arg1801z00_1556);
																				BgL_test1905z00_1986 =
																					(VECTOR_REF
																					(BGl_za2inheritancesza2z00zz__objectz00,
																						(BgL_idxz00_1557 + 3L)) ==
																					BgL_classz00_1555);
																			}
																		else
																			{	/* Engine/heap.scm 131 */
																				bool_t BgL_res1838z00_1560;

																				{	/* Engine/heap.scm 131 */
																					obj_t BgL_oclassz00_1561;

																					{	/* Engine/heap.scm 131 */
																						long BgL_arg1808z00_1562;

																						{	/* Engine/heap.scm 131 */
																							long BgL_arg1809z00_1563;

																							BgL_arg1809z00_1563 =
																								BGL_OBJECT_CLASS_NUM
																								(BgL_arg1801z00_1556);
																							BgL_arg1808z00_1562 =
																								(BgL_arg1809z00_1563 -
																								OBJECT_TYPE);
																						}
																						BgL_oclassz00_1561 =
																							VECTOR_REF
																							(BGl_za2classesza2z00zz__objectz00,
																							BgL_arg1808z00_1562);
																					}
																					{	/* Engine/heap.scm 131 */
																						bool_t BgL__ortest_1115z00_1564;

																						BgL__ortest_1115z00_1564 =
																							(BgL_classz00_1555 ==
																							BgL_oclassz00_1561);
																						if (BgL__ortest_1115z00_1564)
																							{	/* Engine/heap.scm 131 */
																								BgL_res1838z00_1560 =
																									BgL__ortest_1115z00_1564;
																							}
																						else
																							{	/* Engine/heap.scm 131 */
																								long BgL_odepthz00_1565;

																								BgL_odepthz00_1565 =
																									BGL_CLASS_DEPTH
																									(BgL_oclassz00_1561);
																								if ((3L < BgL_odepthz00_1565))
																									{	/* Engine/heap.scm 131 */
																										obj_t BgL_arg1797z00_1566;

																										BgL_arg1797z00_1566 =
																											BGL_CLASS_ANCESTORS_REF
																											(BgL_oclassz00_1561, 3L);
																										BgL_res1838z00_1560 =
																											(BgL_arg1797z00_1566 ==
																											BgL_classz00_1555);
																									}
																								else
																									{	/* Engine/heap.scm 131 */
																										BgL_res1838z00_1560 =
																											((bool_t) 0);
																									}
																							}
																					}
																				}
																				BgL_test1905z00_1986 =
																					BgL_res1838z00_1560;
																			}
																	}
																}
																if (BgL_test1905z00_1986)
																	{	/* Engine/heap.scm 132 */
																		obj_t BgL_port1209z00_1567;

																		{	/* Engine/heap.scm 132 */
																			obj_t BgL_tmpz00_2007;

																			BgL_tmpz00_2007 =
																				BGL_CURRENT_DYNAMIC_ENV();
																			BgL_port1209z00_1567 =
																				BGL_ENV_CURRENT_OUTPUT_PORT
																				(BgL_tmpz00_2007);
																		}
																		bgl_display_string
																			(BGl_string1858z00zzengine_heapz00,
																			BgL_port1209z00_1567);
																		{	/* Engine/heap.scm 133 */
																			obj_t BgL_arg1337z00_1568;

																			{	/* Engine/heap.scm 133 */
																				obj_t BgL_arg1338z00_1569;

																				{	/* Engine/heap.scm 133 */
																					obj_t BgL_arg1341z00_1570;
																					obj_t BgL_arg1343z00_1571;

																					BgL_arg1341z00_1570 =
																						BGl_shapez00zztools_shapez00
																						(BgL_newz00_1549);
																					{	/* Engine/heap.scm 135 */
																						obj_t BgL_arg1344z00_1572;

																						{	/* Engine/heap.scm 135 */
																							obj_t BgL_arg1346z00_1573;
																							obj_t BgL_arg1347z00_1574;

																							{	/* Engine/heap.scm 135 */
																								obj_t BgL_arg1348z00_1575;

																								BgL_arg1348z00_1575 =
																									MAKE_YOUNG_PAIR
																									(BgL_idz00_1551, BNIL);
																								BgL_arg1346z00_1573 =
																									MAKE_YOUNG_PAIR(CNST_TABLE_REF
																									(0L), BgL_arg1348z00_1575);
																							}
																							{	/* Engine/heap.scm 137 */
																								obj_t BgL_arg1352z00_1576;

																								{	/* Engine/heap.scm 137 */
																									obj_t BgL_arg1354z00_1577;
																									obj_t BgL_arg1361z00_1578;

																									{	/* Engine/heap.scm 137 */
																										obj_t BgL_arg1363z00_1579;

																										BgL_arg1363z00_1579 =
																											MAKE_YOUNG_PAIR
																											(BgL_modulez00_1550,
																											BNIL);
																										BgL_arg1354z00_1577 =
																											MAKE_YOUNG_PAIR
																											(CNST_TABLE_REF(1L),
																											BgL_arg1363z00_1579);
																									}
																									{	/* Engine/heap.scm 139 */
																										obj_t BgL_arg1366z00_1580;

																										{	/* Engine/heap.scm 139 */
																											obj_t BgL_arg1369z00_1581;
																											obj_t BgL_arg1372z00_1582;

																											{	/* Engine/heap.scm 139 */
																												obj_t
																													BgL_arg1373z00_1583;
																												{	/* Engine/heap.scm 139 */
																													obj_t
																														BgL_arg1374z00_1584;
																													{	/* Engine/heap.scm 139 */
																														obj_t
																															BgL_arg1375z00_1585;
																														BgL_arg1375z00_1585
																															=
																															(((BgL_variablez00_bglt) COBJECT(((BgL_variablez00_bglt) ((BgL_globalz00_bglt) BgL_newz00_1549))))->BgL_namez00);
																														{	/* Engine/heap.scm 139 */
																															obj_t
																																BgL_list1376z00_1586;
																															BgL_list1376z00_1586
																																=
																																MAKE_YOUNG_PAIR
																																(BgL_arg1375z00_1585,
																																BNIL);
																															BgL_arg1374z00_1584
																																=
																																BGl_formatz00zz__r4_output_6_10_3z00
																																(BGl_string1859z00zzengine_heapz00,
																																BgL_list1376z00_1586);
																														}
																													}
																													BgL_arg1373z00_1583 =
																														MAKE_YOUNG_PAIR
																														(BgL_arg1374z00_1584,
																														BNIL);
																												}
																												BgL_arg1369z00_1581 =
																													MAKE_YOUNG_PAIR
																													(CNST_TABLE_REF(2L),
																													BgL_arg1373z00_1583);
																											}
																											{	/* Engine/heap.scm 141 */
																												obj_t
																													BgL_arg1377z00_1587;
																												{	/* Engine/heap.scm 141 */
																													obj_t
																														BgL_arg1379z00_1588;
																													obj_t
																														BgL_arg1397z00_1589;
																													{	/* Engine/heap.scm 141 */
																														obj_t
																															BgL_arg1407z00_1590;
																														BgL_arg1407z00_1590
																															=
																															MAKE_YOUNG_PAIR
																															(BgL_qtz00_1552,
																															BNIL);
																														BgL_arg1379z00_1588
																															=
																															MAKE_YOUNG_PAIR
																															(CNST_TABLE_REF
																															(3L),
																															BgL_arg1407z00_1590);
																													}
																													{	/* Engine/heap.scm 142 */
																														obj_t
																															BgL_arg1408z00_1591;
																														obj_t
																															BgL_arg1420z00_1592;
																														if (((((BgL_sfunz00_bglt) COBJECT(((BgL_sfunz00_bglt) BgL_valz00_1554)))->BgL_classz00) == CNST_TABLE_REF(4L)))
																															{	/* Engine/heap.scm 143 */
																																obj_t
																																	BgL_arg1436z00_1593;
																																{	/* Engine/heap.scm 143 */
																																	obj_t
																																		BgL_arg1437z00_1594;
																																	{	/* Engine/heap.scm 143 */
																																		obj_t
																																			BgL_arg1450z00_1595;
																																		BgL_arg1450z00_1595
																																			=
																																			(((BgL_sfunz00_bglt) COBJECT(((BgL_sfunz00_bglt) BgL_valz00_1554)))->BgL_bodyz00);
																																		BgL_arg1437z00_1594
																																			=
																																			BGl_shapez00zztools_shapez00
																																			(BgL_arg1450z00_1595);
																																	}
																																	BgL_arg1436z00_1593
																																		=
																																		MAKE_YOUNG_PAIR
																																		(BgL_arg1437z00_1594,
																																		BNIL);
																																}
																																BgL_arg1408z00_1591
																																	=
																																	MAKE_YOUNG_PAIR
																																	(CNST_TABLE_REF
																																	(5L),
																																	BgL_arg1436z00_1593);
																															}
																														else
																															{	/* Engine/heap.scm 142 */
																																BgL_arg1408z00_1591
																																	=
																																	BGl_string1860z00zzengine_heapz00;
																															}
																														{	/* Engine/heap.scm 146 */
																															obj_t
																																BgL_arg1452z00_1596;
																															{	/* Engine/heap.scm 146 */
																																obj_t
																																	BgL_arg1453z00_1597;
																																obj_t
																																	BgL_arg1479z00_1598;
																																{	/* Engine/heap.scm 146 */
																																	obj_t
																																		BgL_arg1491z00_1599;
																																	BgL_arg1491z00_1599
																																		=
																																		MAKE_YOUNG_PAIR
																																		(BgL_jtz00_1553,
																																		BNIL);
																																	BgL_arg1453z00_1597
																																		=
																																		MAKE_YOUNG_PAIR
																																		(CNST_TABLE_REF
																																		(6L),
																																		BgL_arg1491z00_1599);
																																}
																																{	/* Engine/heap.scm 147 */
																																	obj_t
																																		BgL_arg1492z00_1600;
																																	{	/* Engine/heap.scm 147 */
																																		obj_t
																																			BgL_arg1494z00_1601;
																																		{	/* Engine/heap.scm 147 */
																																			obj_t
																																				BgL_arg1496z00_1602;
																																			{	/* Engine/heap.scm 147 */
																																				obj_t
																																					BgL_arg1497z00_1603;
																																				{	/* Engine/heap.scm 147 */
																																					obj_t
																																						BgL_l1198z00_1604;
																																					BgL_l1198z00_1604
																																						=
																																						(((BgL_sfunz00_bglt) COBJECT(((BgL_sfunz00_bglt) BgL_valz00_1554)))->BgL_argsz00);
																																					if (NULLP(BgL_l1198z00_1604))
																																						{	/* Engine/heap.scm 147 */
																																							BgL_arg1497z00_1603
																																								=
																																								BNIL;
																																						}
																																					else
																																						{	/* Engine/heap.scm 147 */
																																							obj_t
																																								BgL_head1200z00_1605;
																																							{	/* Engine/heap.scm 147 */
																																								obj_t
																																									BgL_arg1534z00_1606;
																																								{	/* Engine/heap.scm 147 */
																																									obj_t
																																										BgL_arg1541z00_1607;
																																									BgL_arg1541z00_1607
																																										=
																																										CAR
																																										(
																																										((obj_t) BgL_l1198z00_1604));
																																									BgL_arg1534z00_1606
																																										=
																																										BGl_shapez00zztools_shapez00
																																										(BgL_arg1541z00_1607);
																																								}
																																								BgL_head1200z00_1605
																																									=
																																									MAKE_YOUNG_PAIR
																																									(BgL_arg1534z00_1606,
																																									BNIL);
																																							}
																																							{	/* Engine/heap.scm 147 */
																																								obj_t
																																									BgL_g1208z00_1608;
																																								BgL_g1208z00_1608
																																									=
																																									CDR
																																									(
																																									((obj_t) BgL_l1198z00_1604));
																																								{
																																									obj_t
																																										BgL_l1198z00_1610;
																																									obj_t
																																										BgL_tail1201z00_1611;
																																									BgL_l1198z00_1610
																																										=
																																										BgL_g1208z00_1608;
																																									BgL_tail1201z00_1611
																																										=
																																										BgL_head1200z00_1605;
																																								BgL_zc3z04anonymousza31499ze3z87_1609:
																																									if (NULLP(BgL_l1198z00_1610))
																																										{	/* Engine/heap.scm 147 */
																																											BgL_arg1497z00_1603
																																												=
																																												BgL_head1200z00_1605;
																																										}
																																									else
																																										{	/* Engine/heap.scm 147 */
																																											obj_t
																																												BgL_newtail1202z00_1612;
																																											{	/* Engine/heap.scm 147 */
																																												obj_t
																																													BgL_arg1528z00_1613;
																																												{	/* Engine/heap.scm 147 */
																																													obj_t
																																														BgL_arg1532z00_1614;
																																													BgL_arg1532z00_1614
																																														=
																																														CAR
																																														(
																																														((obj_t) BgL_l1198z00_1610));
																																													BgL_arg1528z00_1613
																																														=
																																														BGl_shapez00zztools_shapez00
																																														(BgL_arg1532z00_1614);
																																												}
																																												BgL_newtail1202z00_1612
																																													=
																																													MAKE_YOUNG_PAIR
																																													(BgL_arg1528z00_1613,
																																													BNIL);
																																											}
																																											SET_CDR
																																												(BgL_tail1201z00_1611,
																																												BgL_newtail1202z00_1612);
																																											{	/* Engine/heap.scm 147 */
																																												obj_t
																																													BgL_arg1519z00_1615;
																																												BgL_arg1519z00_1615
																																													=
																																													CDR
																																													(
																																													((obj_t) BgL_l1198z00_1610));
																																												{
																																													obj_t
																																														BgL_tail1201z00_2063;
																																													obj_t
																																														BgL_l1198z00_2062;
																																													BgL_l1198z00_2062
																																														=
																																														BgL_arg1519z00_1615;
																																													BgL_tail1201z00_2063
																																														=
																																														BgL_newtail1202z00_1612;
																																													BgL_tail1201z00_1611
																																														=
																																														BgL_tail1201z00_2063;
																																													BgL_l1198z00_1610
																																														=
																																														BgL_l1198z00_2062;
																																													goto
																																														BgL_zc3z04anonymousza31499ze3z87_1609;
																																												}
																																											}
																																										}
																																								}
																																							}
																																						}
																																				}
																																				BgL_arg1496z00_1602
																																					=
																																					MAKE_YOUNG_PAIR
																																					(BgL_arg1497z00_1603,
																																					BNIL);
																																			}
																																			BgL_arg1494z00_1601
																																				=
																																				MAKE_YOUNG_PAIR
																																				(CNST_TABLE_REF
																																				(7L),
																																				BgL_arg1496z00_1602);
																																		}
																																		BgL_arg1492z00_1600
																																			=
																																			MAKE_YOUNG_PAIR
																																			(BgL_arg1494z00_1601,
																																			BNIL);
																																	}
																																	BgL_arg1479z00_1598
																																		=
																																		MAKE_YOUNG_PAIR
																																		(BGl_string1861z00zzengine_heapz00,
																																		BgL_arg1492z00_1600);
																																}
																																BgL_arg1452z00_1596
																																	=
																																	MAKE_YOUNG_PAIR
																																	(BgL_arg1453z00_1597,
																																	BgL_arg1479z00_1598);
																															}
																															BgL_arg1420z00_1592
																																=
																																MAKE_YOUNG_PAIR
																																(BGl_string1862z00zzengine_heapz00,
																																BgL_arg1452z00_1596);
																														}
																														BgL_arg1397z00_1589
																															=
																															MAKE_YOUNG_PAIR
																															(BgL_arg1408z00_1591,
																															BgL_arg1420z00_1592);
																													}
																													BgL_arg1377z00_1587 =
																														MAKE_YOUNG_PAIR
																														(BgL_arg1379z00_1588,
																														BgL_arg1397z00_1589);
																												}
																												BgL_arg1372z00_1582 =
																													MAKE_YOUNG_PAIR
																													(BGl_string1862z00zzengine_heapz00,
																													BgL_arg1377z00_1587);
																											}
																											BgL_arg1366z00_1580 =
																												MAKE_YOUNG_PAIR
																												(BgL_arg1369z00_1581,
																												BgL_arg1372z00_1582);
																										}
																										BgL_arg1361z00_1578 =
																											MAKE_YOUNG_PAIR
																											(BGl_string1862z00zzengine_heapz00,
																											BgL_arg1366z00_1580);
																									}
																									BgL_arg1352z00_1576 =
																										MAKE_YOUNG_PAIR
																										(BgL_arg1354z00_1577,
																										BgL_arg1361z00_1578);
																								}
																								BgL_arg1347z00_1574 =
																									MAKE_YOUNG_PAIR
																									(BGl_string1862z00zzengine_heapz00,
																									BgL_arg1352z00_1576);
																							}
																							BgL_arg1344z00_1572 =
																								MAKE_YOUNG_PAIR
																								(BgL_arg1346z00_1573,
																								BgL_arg1347z00_1574);
																						}
																						BgL_arg1343z00_1571 =
																							MAKE_YOUNG_PAIR
																							(BGl_string1862z00zzengine_heapz00,
																							BgL_arg1344z00_1572);
																					}
																					BgL_arg1338z00_1569 =
																						MAKE_YOUNG_PAIR(BgL_arg1341z00_1570,
																						BgL_arg1343z00_1571);
																				}
																				BgL_arg1337z00_1568 =
																					MAKE_YOUNG_PAIR(CNST_TABLE_REF(8L),
																					BgL_arg1338z00_1569);
																			}
																			bgl_display_obj(BgL_arg1337z00_1568,
																				BgL_port1209z00_1567);
																		}
																		bgl_display_char(((unsigned char) 10),
																			BgL_port1209z00_1567);
																	}
																else
																	{	/* Engine/heap.scm 148 */
																		bool_t BgL_test1912z00_2085;

																		{	/* Engine/heap.scm 148 */
																			obj_t BgL_classz00_1616;

																			BgL_classz00_1616 =
																				BGl_cfunz00zzast_varz00;
																			{	/* Engine/heap.scm 148 */
																				BgL_objectz00_bglt BgL_arg1801z00_1617;

																				{	/* Engine/heap.scm 148 */
																					obj_t BgL_tmpz00_2086;

																					BgL_tmpz00_2086 =
																						((obj_t)
																						((BgL_objectz00_bglt)
																							BgL_valz00_1554));
																					BgL_arg1801z00_1617 =
																						(BgL_objectz00_bglt)
																						(BgL_tmpz00_2086);
																				}
																				if (BGL_CONDEXPAND_ISA_ARCH64())
																					{	/* Engine/heap.scm 148 */
																						long BgL_idxz00_1618;

																						BgL_idxz00_1618 =
																							BGL_OBJECT_INHERITANCE_NUM
																							(BgL_arg1801z00_1617);
																						BgL_test1912z00_2085 =
																							(VECTOR_REF
																							(BGl_za2inheritancesza2z00zz__objectz00,
																								(BgL_idxz00_1618 + 3L)) ==
																							BgL_classz00_1616);
																					}
																				else
																					{	/* Engine/heap.scm 148 */
																						bool_t BgL_res1839z00_1621;

																						{	/* Engine/heap.scm 148 */
																							obj_t BgL_oclassz00_1622;

																							{	/* Engine/heap.scm 148 */
																								long BgL_arg1808z00_1623;

																								{	/* Engine/heap.scm 148 */
																									long BgL_arg1809z00_1624;

																									BgL_arg1809z00_1624 =
																										BGL_OBJECT_CLASS_NUM
																										(BgL_arg1801z00_1617);
																									BgL_arg1808z00_1623 =
																										(BgL_arg1809z00_1624 -
																										OBJECT_TYPE);
																								}
																								BgL_oclassz00_1622 =
																									VECTOR_REF
																									(BGl_za2classesza2z00zz__objectz00,
																									BgL_arg1808z00_1623);
																							}
																							{	/* Engine/heap.scm 148 */
																								bool_t BgL__ortest_1115z00_1625;

																								BgL__ortest_1115z00_1625 =
																									(BgL_classz00_1616 ==
																									BgL_oclassz00_1622);
																								if (BgL__ortest_1115z00_1625)
																									{	/* Engine/heap.scm 148 */
																										BgL_res1839z00_1621 =
																											BgL__ortest_1115z00_1625;
																									}
																								else
																									{	/* Engine/heap.scm 148 */
																										long BgL_odepthz00_1626;

																										BgL_odepthz00_1626 =
																											BGL_CLASS_DEPTH
																											(BgL_oclassz00_1622);
																										if ((3L <
																												BgL_odepthz00_1626))
																											{	/* Engine/heap.scm 148 */
																												obj_t
																													BgL_arg1797z00_1627;
																												BgL_arg1797z00_1627 =
																													BGL_CLASS_ANCESTORS_REF
																													(BgL_oclassz00_1622,
																													3L);
																												BgL_res1839z00_1621 =
																													(BgL_arg1797z00_1627
																													== BgL_classz00_1616);
																											}
																										else
																											{	/* Engine/heap.scm 148 */
																												BgL_res1839z00_1621 =
																													((bool_t) 0);
																											}
																									}
																							}
																						}
																						BgL_test1912z00_2085 =
																							BgL_res1839z00_1621;
																					}
																			}
																		}
																		if (BgL_test1912z00_2085)
																			{	/* Engine/heap.scm 149 */
																				obj_t BgL_port1216z00_1628;

																				{	/* Engine/heap.scm 149 */
																					obj_t BgL_tmpz00_2106;

																					BgL_tmpz00_2106 =
																						BGL_CURRENT_DYNAMIC_ENV();
																					BgL_port1216z00_1628 =
																						BGL_ENV_CURRENT_OUTPUT_PORT
																						(BgL_tmpz00_2106);
																				}
																				bgl_display_string
																					(BGl_string1858z00zzengine_heapz00,
																					BgL_port1216z00_1628);
																				{	/* Engine/heap.scm 150 */
																					obj_t BgL_arg1545z00_1629;

																					{	/* Engine/heap.scm 150 */
																						obj_t BgL_arg1546z00_1630;

																						{	/* Engine/heap.scm 150 */
																							obj_t BgL_arg1547z00_1631;
																							obj_t BgL_arg1550z00_1632;

																							BgL_arg1547z00_1631 =
																								BGl_shapez00zztools_shapez00
																								(BgL_newz00_1549);
																							{	/* Engine/heap.scm 152 */
																								obj_t BgL_arg1554z00_1633;

																								{	/* Engine/heap.scm 152 */
																									obj_t BgL_arg1555z00_1634;
																									obj_t BgL_arg1560z00_1635;

																									{	/* Engine/heap.scm 152 */
																										obj_t BgL_arg1563z00_1636;

																										BgL_arg1563z00_1636 =
																											MAKE_YOUNG_PAIR
																											(BgL_idz00_1551, BNIL);
																										BgL_arg1555z00_1634 =
																											MAKE_YOUNG_PAIR
																											(CNST_TABLE_REF(0L),
																											BgL_arg1563z00_1636);
																									}
																									{	/* Engine/heap.scm 154 */
																										obj_t BgL_arg1564z00_1637;

																										{	/* Engine/heap.scm 154 */
																											obj_t BgL_arg1565z00_1638;
																											obj_t BgL_arg1575z00_1639;

																											{	/* Engine/heap.scm 154 */
																												obj_t
																													BgL_arg1576z00_1640;
																												BgL_arg1576z00_1640 =
																													MAKE_YOUNG_PAIR
																													(BgL_modulez00_1550,
																													BNIL);
																												BgL_arg1565z00_1638 =
																													MAKE_YOUNG_PAIR
																													(CNST_TABLE_REF(1L),
																													BgL_arg1576z00_1640);
																											}
																											{	/* Engine/heap.scm 156 */
																												obj_t
																													BgL_arg1578z00_1641;
																												{	/* Engine/heap.scm 156 */
																													obj_t
																														BgL_arg1579z00_1642;
																													obj_t
																														BgL_arg1581z00_1643;
																													{	/* Engine/heap.scm 156 */
																														obj_t
																															BgL_arg1586z00_1644;
																														{	/* Engine/heap.scm 156 */
																															obj_t
																																BgL_arg1590z00_1645;
																															{	/* Engine/heap.scm 156 */
																																obj_t
																																	BgL_arg1592z00_1646;
																																BgL_arg1592z00_1646
																																	=
																																	(((BgL_variablez00_bglt) COBJECT(((BgL_variablez00_bglt) ((BgL_globalz00_bglt) BgL_newz00_1549))))->BgL_namez00);
																																{	/* Engine/heap.scm 156 */
																																	obj_t
																																		BgL_list1593z00_1647;
																																	BgL_list1593z00_1647
																																		=
																																		MAKE_YOUNG_PAIR
																																		(BgL_arg1592z00_1646,
																																		BNIL);
																																	BgL_arg1590z00_1645
																																		=
																																		BGl_formatz00zz__r4_output_6_10_3z00
																																		(BGl_string1859z00zzengine_heapz00,
																																		BgL_list1593z00_1647);
																																}
																															}
																															BgL_arg1586z00_1644
																																=
																																MAKE_YOUNG_PAIR
																																(BgL_arg1590z00_1645,
																																BNIL);
																														}
																														BgL_arg1579z00_1642
																															=
																															MAKE_YOUNG_PAIR
																															(CNST_TABLE_REF
																															(2L),
																															BgL_arg1586z00_1644);
																													}
																													{	/* Engine/heap.scm 158 */
																														obj_t
																															BgL_arg1595z00_1648;
																														{	/* Engine/heap.scm 158 */
																															obj_t
																																BgL_arg1597z00_1649;
																															obj_t
																																BgL_arg1598z00_1650;
																															{	/* Engine/heap.scm 158 */
																																obj_t
																																	BgL_arg1606z00_1651;
																																BgL_arg1606z00_1651
																																	=
																																	MAKE_YOUNG_PAIR
																																	(BgL_qtz00_1552,
																																	BNIL);
																																BgL_arg1597z00_1649
																																	=
																																	MAKE_YOUNG_PAIR
																																	(CNST_TABLE_REF
																																	(3L),
																																	BgL_arg1606z00_1651);
																															}
																															{	/* Engine/heap.scm 160 */
																																obj_t
																																	BgL_arg1608z00_1652;
																																{	/* Engine/heap.scm 160 */
																																	obj_t
																																		BgL_arg1609z00_1653;
																																	obj_t
																																		BgL_arg1613z00_1654;
																																	{	/* Engine/heap.scm 160 */
																																		obj_t
																																			BgL_arg1614z00_1655;
																																		BgL_arg1614z00_1655
																																			=
																																			MAKE_YOUNG_PAIR
																																			(BgL_jtz00_1553,
																																			BNIL);
																																		BgL_arg1609z00_1653
																																			=
																																			MAKE_YOUNG_PAIR
																																			(CNST_TABLE_REF
																																			(6L),
																																			BgL_arg1614z00_1655);
																																	}
																																	{	/* Engine/heap.scm 161 */
																																		obj_t
																																			BgL_arg1615z00_1656;
																																		{	/* Engine/heap.scm 161 */
																																			obj_t
																																				BgL_arg1616z00_1657;
																																			{	/* Engine/heap.scm 161 */
																																				obj_t
																																					BgL_arg1620z00_1658;
																																				{	/* Engine/heap.scm 161 */
																																					obj_t
																																						BgL_arg1621z00_1659;
																																					{	/* Engine/heap.scm 161 */
																																						obj_t
																																							BgL_l1210z00_1660;
																																						BgL_l1210z00_1660
																																							=
																																							(((BgL_cfunz00_bglt) COBJECT(((BgL_cfunz00_bglt) BgL_valz00_1554)))->BgL_argszd2typezd2);
																																						if (NULLP(BgL_l1210z00_1660))
																																							{	/* Engine/heap.scm 161 */
																																								BgL_arg1621z00_1659
																																									=
																																									BNIL;
																																							}
																																						else
																																							{	/* Engine/heap.scm 161 */
																																								obj_t
																																									BgL_head1212z00_1661;
																																								{	/* Engine/heap.scm 161 */
																																									obj_t
																																										BgL_arg1639z00_1662;
																																									{	/* Engine/heap.scm 161 */
																																										obj_t
																																											BgL_arg1649z00_1663;
																																										BgL_arg1649z00_1663
																																											=
																																											CAR
																																											(
																																											((obj_t) BgL_l1210z00_1660));
																																										BgL_arg1639z00_1662
																																											=
																																											BGl_shapez00zztools_shapez00
																																											(BgL_arg1649z00_1663);
																																									}
																																									BgL_head1212z00_1661
																																										=
																																										MAKE_YOUNG_PAIR
																																										(BgL_arg1639z00_1662,
																																										BNIL);
																																								}
																																								{	/* Engine/heap.scm 161 */
																																									obj_t
																																										BgL_g1215z00_1664;
																																									BgL_g1215z00_1664
																																										=
																																										CDR
																																										(
																																										((obj_t) BgL_l1210z00_1660));
																																									{
																																										obj_t
																																											BgL_l1210z00_1666;
																																										obj_t
																																											BgL_tail1213z00_1667;
																																										BgL_l1210z00_1666
																																											=
																																											BgL_g1215z00_1664;
																																										BgL_tail1213z00_1667
																																											=
																																											BgL_head1212z00_1661;
																																									BgL_zc3z04anonymousza31623ze3z87_1665:
																																										if (NULLP(BgL_l1210z00_1666))
																																											{	/* Engine/heap.scm 161 */
																																												BgL_arg1621z00_1659
																																													=
																																													BgL_head1212z00_1661;
																																											}
																																										else
																																											{	/* Engine/heap.scm 161 */
																																												obj_t
																																													BgL_newtail1214z00_1668;
																																												{	/* Engine/heap.scm 161 */
																																													obj_t
																																														BgL_arg1629z00_1669;
																																													{	/* Engine/heap.scm 161 */
																																														obj_t
																																															BgL_arg1630z00_1670;
																																														BgL_arg1630z00_1670
																																															=
																																															CAR
																																															(
																																															((obj_t) BgL_l1210z00_1666));
																																														BgL_arg1629z00_1669
																																															=
																																															BGl_shapez00zztools_shapez00
																																															(BgL_arg1630z00_1670);
																																													}
																																													BgL_newtail1214z00_1668
																																														=
																																														MAKE_YOUNG_PAIR
																																														(BgL_arg1629z00_1669,
																																														BNIL);
																																												}
																																												SET_CDR
																																													(BgL_tail1213z00_1667,
																																													BgL_newtail1214z00_1668);
																																												{	/* Engine/heap.scm 161 */
																																													obj_t
																																														BgL_arg1628z00_1671;
																																													BgL_arg1628z00_1671
																																														=
																																														CDR
																																														(
																																														((obj_t) BgL_l1210z00_1666));
																																													{
																																														obj_t
																																															BgL_tail1213z00_2151;
																																														obj_t
																																															BgL_l1210z00_2150;
																																														BgL_l1210z00_2150
																																															=
																																															BgL_arg1628z00_1671;
																																														BgL_tail1213z00_2151
																																															=
																																															BgL_newtail1214z00_1668;
																																														BgL_tail1213z00_1667
																																															=
																																															BgL_tail1213z00_2151;
																																														BgL_l1210z00_1666
																																															=
																																															BgL_l1210z00_2150;
																																														goto
																																															BgL_zc3z04anonymousza31623ze3z87_1665;
																																													}
																																												}
																																											}
																																									}
																																								}
																																							}
																																					}
																																					BgL_arg1620z00_1658
																																						=
																																						MAKE_YOUNG_PAIR
																																						(BgL_arg1621z00_1659,
																																						BNIL);
																																				}
																																				BgL_arg1616z00_1657
																																					=
																																					MAKE_YOUNG_PAIR
																																					(CNST_TABLE_REF
																																					(7L),
																																					BgL_arg1620z00_1658);
																																			}
																																			BgL_arg1615z00_1656
																																				=
																																				MAKE_YOUNG_PAIR
																																				(BgL_arg1616z00_1657,
																																				BNIL);
																																		}
																																		BgL_arg1613z00_1654
																																			=
																																			MAKE_YOUNG_PAIR
																																			(BGl_string1861z00zzengine_heapz00,
																																			BgL_arg1615z00_1656);
																																	}
																																	BgL_arg1608z00_1652
																																		=
																																		MAKE_YOUNG_PAIR
																																		(BgL_arg1609z00_1653,
																																		BgL_arg1613z00_1654);
																																}
																																BgL_arg1598z00_1650
																																	=
																																	MAKE_YOUNG_PAIR
																																	(BGl_string1862z00zzengine_heapz00,
																																	BgL_arg1608z00_1652);
																															}
																															BgL_arg1595z00_1648
																																=
																																MAKE_YOUNG_PAIR
																																(BgL_arg1597z00_1649,
																																BgL_arg1598z00_1650);
																														}
																														BgL_arg1581z00_1643
																															=
																															MAKE_YOUNG_PAIR
																															(BGl_string1862z00zzengine_heapz00,
																															BgL_arg1595z00_1648);
																													}
																													BgL_arg1578z00_1641 =
																														MAKE_YOUNG_PAIR
																														(BgL_arg1579z00_1642,
																														BgL_arg1581z00_1643);
																												}
																												BgL_arg1575z00_1639 =
																													MAKE_YOUNG_PAIR
																													(BGl_string1862z00zzengine_heapz00,
																													BgL_arg1578z00_1641);
																											}
																											BgL_arg1564z00_1637 =
																												MAKE_YOUNG_PAIR
																												(BgL_arg1565z00_1638,
																												BgL_arg1575z00_1639);
																										}
																										BgL_arg1560z00_1635 =
																											MAKE_YOUNG_PAIR
																											(BGl_string1862z00zzengine_heapz00,
																											BgL_arg1564z00_1637);
																									}
																									BgL_arg1554z00_1633 =
																										MAKE_YOUNG_PAIR
																										(BgL_arg1555z00_1634,
																										BgL_arg1560z00_1635);
																								}
																								BgL_arg1550z00_1632 =
																									MAKE_YOUNG_PAIR
																									(BGl_string1862z00zzengine_heapz00,
																									BgL_arg1554z00_1633);
																							}
																							BgL_arg1546z00_1630 =
																								MAKE_YOUNG_PAIR
																								(BgL_arg1547z00_1631,
																								BgL_arg1550z00_1632);
																						}
																						BgL_arg1545z00_1629 =
																							MAKE_YOUNG_PAIR(CNST_TABLE_REF
																							(9L), BgL_arg1546z00_1630);
																					}
																					bgl_display_obj(BgL_arg1545z00_1629,
																						BgL_port1216z00_1628);
																				}
																				bgl_display_char(((unsigned char) 10),
																					BgL_port1216z00_1628);
																			}
																		else
																			{	/* Engine/heap.scm 148 */
																				if (
																					((((BgL_typez00_bglt) COBJECT(
																									(((BgL_variablez00_bglt)
																											COBJECT((
																													(BgL_variablez00_bglt)
																													((BgL_globalz00_bglt)
																														BgL_newz00_1549))))->
																										BgL_typez00)))->
																							BgL_idz00) ==
																						CNST_TABLE_REF(10L)))
																					{	/* Engine/heap.scm 163 */
																						BFALSE;
																					}
																				else
																					{	/* Engine/heap.scm 164 */
																						obj_t BgL_port1217z00_1672;

																						{	/* Engine/heap.scm 164 */
																							obj_t BgL_tmpz00_2179;

																							BgL_tmpz00_2179 =
																								BGL_CURRENT_DYNAMIC_ENV();
																							BgL_port1217z00_1672 =
																								BGL_ENV_CURRENT_OUTPUT_PORT
																								(BgL_tmpz00_2179);
																						}
																						bgl_display_string
																							(BGl_string1858z00zzengine_heapz00,
																							BgL_port1217z00_1672);
																						{	/* Engine/heap.scm 165 */
																							obj_t BgL_arg1669z00_1673;

																							{	/* Engine/heap.scm 165 */
																								obj_t BgL_arg1673z00_1674;

																								{	/* Engine/heap.scm 165 */
																									obj_t BgL_arg1675z00_1675;
																									obj_t BgL_arg1678z00_1676;

																									BgL_arg1675z00_1675 =
																										BGl_shapez00zztools_shapez00
																										(BgL_newz00_1549);
																									{	/* Engine/heap.scm 167 */
																										obj_t BgL_arg1681z00_1677;

																										{	/* Engine/heap.scm 167 */
																											obj_t BgL_arg1684z00_1678;
																											obj_t BgL_arg1685z00_1679;

																											{	/* Engine/heap.scm 167 */
																												obj_t
																													BgL_arg1686z00_1680;
																												BgL_arg1686z00_1680 =
																													MAKE_YOUNG_PAIR
																													(BgL_idz00_1551,
																													BNIL);
																												BgL_arg1684z00_1678 =
																													MAKE_YOUNG_PAIR
																													(CNST_TABLE_REF(0L),
																													BgL_arg1686z00_1680);
																											}
																											{	/* Engine/heap.scm 169 */
																												obj_t
																													BgL_arg1690z00_1681;
																												{	/* Engine/heap.scm 169 */
																													obj_t
																														BgL_arg1693z00_1682;
																													obj_t
																														BgL_arg1695z00_1683;
																													{	/* Engine/heap.scm 169 */
																														obj_t
																															BgL_arg1696z00_1684;
																														BgL_arg1696z00_1684
																															=
																															MAKE_YOUNG_PAIR
																															(BgL_modulez00_1550,
																															BNIL);
																														BgL_arg1693z00_1682
																															=
																															MAKE_YOUNG_PAIR
																															(CNST_TABLE_REF
																															(1L),
																															BgL_arg1696z00_1684);
																													}
																													{	/* Engine/heap.scm 171 */
																														obj_t
																															BgL_arg1698z00_1685;
																														{	/* Engine/heap.scm 171 */
																															obj_t
																																BgL_arg1706z00_1686;
																															obj_t
																																BgL_arg1707z00_1687;
																															{	/* Engine/heap.scm 171 */
																																obj_t
																																	BgL_arg1708z00_1688;
																																{	/* Engine/heap.scm 171 */
																																	obj_t
																																		BgL_arg1709z00_1689;
																																	{	/* Engine/heap.scm 171 */
																																		obj_t
																																			BgL_arg1710z00_1690;
																																		BgL_arg1710z00_1690
																																			=
																																			(((BgL_variablez00_bglt) COBJECT(((BgL_variablez00_bglt) ((BgL_globalz00_bglt) BgL_newz00_1549))))->BgL_namez00);
																																		{	/* Engine/heap.scm 171 */
																																			obj_t
																																				BgL_list1711z00_1691;
																																			BgL_list1711z00_1691
																																				=
																																				MAKE_YOUNG_PAIR
																																				(BgL_arg1710z00_1690,
																																				BNIL);
																																			BgL_arg1709z00_1689
																																				=
																																				BGl_formatz00zz__r4_output_6_10_3z00
																																				(BGl_string1859z00zzengine_heapz00,
																																				BgL_list1711z00_1691);
																																		}
																																	}
																																	BgL_arg1708z00_1688
																																		=
																																		MAKE_YOUNG_PAIR
																																		(BgL_arg1709z00_1689,
																																		BNIL);
																																}
																																BgL_arg1706z00_1686
																																	=
																																	MAKE_YOUNG_PAIR
																																	(CNST_TABLE_REF
																																	(2L),
																																	BgL_arg1708z00_1688);
																															}
																															{	/* Engine/heap.scm 173 */
																																obj_t
																																	BgL_arg1712z00_1692;
																																{	/* Engine/heap.scm 173 */
																																	obj_t
																																		BgL_arg1714z00_1693;
																																	obj_t
																																		BgL_arg1715z00_1694;
																																	{	/* Engine/heap.scm 173 */
																																		obj_t
																																			BgL_arg1717z00_1695;
																																		BgL_arg1717z00_1695
																																			=
																																			MAKE_YOUNG_PAIR
																																			(BgL_qtz00_1552,
																																			BNIL);
																																		BgL_arg1714z00_1693
																																			=
																																			MAKE_YOUNG_PAIR
																																			(CNST_TABLE_REF
																																			(3L),
																																			BgL_arg1717z00_1695);
																																	}
																																	{	/* Engine/heap.scm 175 */
																																		obj_t
																																			BgL_arg1718z00_1696;
																																		{	/* Engine/heap.scm 175 */
																																			obj_t
																																				BgL_arg1729z00_1697;
																																			{	/* Engine/heap.scm 175 */
																																				obj_t
																																					BgL_arg1730z00_1698;
																																				BgL_arg1730z00_1698
																																					=
																																					MAKE_YOUNG_PAIR
																																					(BgL_jtz00_1553,
																																					BNIL);
																																				BgL_arg1729z00_1697
																																					=
																																					MAKE_YOUNG_PAIR
																																					(CNST_TABLE_REF
																																					(6L),
																																					BgL_arg1730z00_1698);
																																			}
																																			BgL_arg1718z00_1696
																																				=
																																				MAKE_YOUNG_PAIR
																																				(BgL_arg1729z00_1697,
																																				BNIL);
																																		}
																																		BgL_arg1715z00_1694
																																			=
																																			MAKE_YOUNG_PAIR
																																			(BGl_string1862z00zzengine_heapz00,
																																			BgL_arg1718z00_1696);
																																	}
																																	BgL_arg1712z00_1692
																																		=
																																		MAKE_YOUNG_PAIR
																																		(BgL_arg1714z00_1693,
																																		BgL_arg1715z00_1694);
																																}
																																BgL_arg1707z00_1687
																																	=
																																	MAKE_YOUNG_PAIR
																																	(BGl_string1862z00zzengine_heapz00,
																																	BgL_arg1712z00_1692);
																															}
																															BgL_arg1698z00_1685
																																=
																																MAKE_YOUNG_PAIR
																																(BgL_arg1706z00_1686,
																																BgL_arg1707z00_1687);
																														}
																														BgL_arg1695z00_1683
																															=
																															MAKE_YOUNG_PAIR
																															(BGl_string1862z00zzengine_heapz00,
																															BgL_arg1698z00_1685);
																													}
																													BgL_arg1690z00_1681 =
																														MAKE_YOUNG_PAIR
																														(BgL_arg1693z00_1682,
																														BgL_arg1695z00_1683);
																												}
																												BgL_arg1685z00_1679 =
																													MAKE_YOUNG_PAIR
																													(BGl_string1862z00zzengine_heapz00,
																													BgL_arg1690z00_1681);
																											}
																											BgL_arg1681z00_1677 =
																												MAKE_YOUNG_PAIR
																												(BgL_arg1684z00_1678,
																												BgL_arg1685z00_1679);
																										}
																										BgL_arg1678z00_1676 =
																											MAKE_YOUNG_PAIR
																											(BGl_string1862z00zzengine_heapz00,
																											BgL_arg1681z00_1677);
																									}
																									BgL_arg1673z00_1674 =
																										MAKE_YOUNG_PAIR
																										(BgL_arg1675z00_1675,
																										BgL_arg1678z00_1676);
																								}
																								BgL_arg1669z00_1673 =
																									MAKE_YOUNG_PAIR(CNST_TABLE_REF
																									(11L), BgL_arg1673z00_1674);
																							}
																							bgl_display_obj
																								(BgL_arg1669z00_1673,
																								BgL_port1217z00_1672);
																						}
																						bgl_display_char(((unsigned char)
																								10), BgL_port1217z00_1672);
									}}}}}}}}}}
									{
										obj_t BgL_l1218z00_2220;

										BgL_l1218z00_2220 = CDR(BgL_l1218z00_1701);
										BgL_l1218z00_1701 = BgL_l1218z00_2220;
										goto BgL_zc3z04anonymousza31324ze3z87_1700;
									}
								}
							else
								{	/* Engine/heap.scm 178 */
									BgL_tmpz00_1970 = ((bool_t) 1);
								}
						}
					}
				}
				return BBOOL(BgL_tmpz00_1970);
			}
		}

	}



/* dump-Tenv */
	obj_t BGl_dumpzd2Tenvzd2zzengine_heapz00(obj_t BgL_tenvz00_6)
	{
		{	/* Engine/heap.scm 183 */
			return
				BGl_hashtablezd2forzd2eachz00zz__hashz00(BgL_tenvz00_6,
				BGl_proc1863z00zzengine_heapz00);
		}

	}



/* &<@anonymous:1734> */
	obj_t BGl_z62zc3z04anonymousza31734ze3ze5zzengine_heapz00(obj_t
		BgL_envz00_1514, obj_t BgL_kz00_1515, obj_t BgL_newz00_1516)
	{
		{	/* Engine/heap.scm 185 */
			{	/* Engine/heap.scm 186 */
				obj_t BgL_idz00_1702;

				BgL_idz00_1702 =
					(((BgL_typez00_bglt) COBJECT(
							((BgL_typez00_bglt) BgL_newz00_1516)))->BgL_idz00);
				{	/* Engine/heap.scm 186 */
					obj_t BgL_namez00_1703;

					BgL_namez00_1703 =
						(((BgL_typez00_bglt) COBJECT(
								((BgL_typez00_bglt) BgL_newz00_1516)))->BgL_namez00);
					{	/* Engine/heap.scm 187 */

						{	/* Engine/heap.scm 188 */
							bool_t BgL_test1919z00_2228;

							{	/* Engine/heap.scm 188 */
								obj_t BgL_classz00_1704;

								BgL_classz00_1704 = BGl_tclassz00zzobject_classz00;
								if (BGL_OBJECTP(BgL_newz00_1516))
									{	/* Engine/heap.scm 188 */
										BgL_objectz00_bglt BgL_arg1801z00_1705;

										BgL_arg1801z00_1705 =
											(BgL_objectz00_bglt) (BgL_newz00_1516);
										if (BGL_CONDEXPAND_ISA_ARCH64())
											{	/* Engine/heap.scm 188 */
												long BgL_idxz00_1706;

												BgL_idxz00_1706 =
													BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_1705);
												BgL_test1919z00_2228 =
													(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
														(BgL_idxz00_1706 + 2L)) == BgL_classz00_1704);
											}
										else
											{	/* Engine/heap.scm 188 */
												bool_t BgL_res1840z00_1709;

												{	/* Engine/heap.scm 188 */
													obj_t BgL_oclassz00_1710;

													{	/* Engine/heap.scm 188 */
														long BgL_arg1808z00_1711;

														{	/* Engine/heap.scm 188 */
															long BgL_arg1809z00_1712;

															BgL_arg1809z00_1712 =
																BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_1705);
															BgL_arg1808z00_1711 =
																(BgL_arg1809z00_1712 - OBJECT_TYPE);
														}
														BgL_oclassz00_1710 =
															VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
															BgL_arg1808z00_1711);
													}
													{	/* Engine/heap.scm 188 */
														bool_t BgL__ortest_1115z00_1713;

														BgL__ortest_1115z00_1713 =
															(BgL_classz00_1704 == BgL_oclassz00_1710);
														if (BgL__ortest_1115z00_1713)
															{	/* Engine/heap.scm 188 */
																BgL_res1840z00_1709 = BgL__ortest_1115z00_1713;
															}
														else
															{	/* Engine/heap.scm 188 */
																long BgL_odepthz00_1714;

																BgL_odepthz00_1714 =
																	BGL_CLASS_DEPTH(BgL_oclassz00_1710);
																if ((2L < BgL_odepthz00_1714))
																	{	/* Engine/heap.scm 188 */
																		obj_t BgL_arg1797z00_1715;

																		BgL_arg1797z00_1715 =
																			BGL_CLASS_ANCESTORS_REF
																			(BgL_oclassz00_1710, 2L);
																		BgL_res1840z00_1709 =
																			(BgL_arg1797z00_1715 ==
																			BgL_classz00_1704);
																	}
																else
																	{	/* Engine/heap.scm 188 */
																		BgL_res1840z00_1709 = ((bool_t) 0);
																	}
															}
													}
												}
												BgL_test1919z00_2228 = BgL_res1840z00_1709;
											}
									}
								else
									{	/* Engine/heap.scm 188 */
										BgL_test1919z00_2228 = ((bool_t) 0);
									}
							}
							if (BgL_test1919z00_2228)
								{	/* Engine/heap.scm 190 */
									obj_t BgL_port1228z00_1716;

									{	/* Engine/heap.scm 190 */
										obj_t BgL_tmpz00_2248;

										BgL_tmpz00_2248 = BGL_CURRENT_DYNAMIC_ENV();
										BgL_port1228z00_1716 =
											BGL_ENV_CURRENT_OUTPUT_PORT(BgL_tmpz00_2248);
									}
									bgl_display_string(BGl_string1858z00zzengine_heapz00,
										BgL_port1228z00_1716);
									{	/* Engine/heap.scm 191 */
										obj_t BgL_arg1736z00_1717;

										{	/* Engine/heap.scm 191 */
											obj_t BgL_arg1739z00_1718;

											{	/* Engine/heap.scm 191 */
												obj_t BgL_arg1741z00_1719;
												obj_t BgL_arg1745z00_1720;

												BgL_arg1741z00_1719 =
													BGl_shapez00zztools_shapez00(BgL_newz00_1516);
												{	/* Engine/heap.scm 192 */
													obj_t BgL_arg1746z00_1721;
													obj_t BgL_arg1747z00_1722;

													{	/* Engine/heap.scm 192 */
														obj_t BgL_arg1748z00_1723;

														{	/* Engine/heap.scm 192 */
															obj_t BgL_arg1749z00_1724;

															{	/* Engine/heap.scm 192 */
																obj_t BgL_arg1750z00_1725;

																{
																	BgL_tclassz00_bglt BgL_auxz00_2253;

																	{
																		obj_t BgL_auxz00_2254;

																		{	/* Engine/heap.scm 192 */
																			BgL_objectz00_bglt BgL_tmpz00_2255;

																			BgL_tmpz00_2255 =
																				((BgL_objectz00_bglt)
																				((BgL_typez00_bglt) BgL_newz00_1516));
																			BgL_auxz00_2254 =
																				BGL_OBJECT_WIDENING(BgL_tmpz00_2255);
																		}
																		BgL_auxz00_2253 =
																			((BgL_tclassz00_bglt) BgL_auxz00_2254);
																	}
																	BgL_arg1750z00_1725 =
																		(((BgL_tclassz00_bglt)
																			COBJECT(BgL_auxz00_2253))->
																		BgL_itszd2superzd2);
																}
																BgL_arg1749z00_1724 =
																	BGl_shapez00zztools_shapez00
																	(BgL_arg1750z00_1725);
															}
															BgL_arg1748z00_1723 =
																MAKE_YOUNG_PAIR(BgL_arg1749z00_1724, BNIL);
														}
														BgL_arg1746z00_1721 =
															MAKE_YOUNG_PAIR(CNST_TABLE_REF(12L),
															BgL_arg1748z00_1723);
													}
													{	/* Engine/heap.scm 193 */
														obj_t BgL_arg1751z00_1726;

														{	/* Engine/heap.scm 193 */
															obj_t BgL_l1221z00_1727;

															{
																BgL_tclassz00_bglt BgL_auxz00_2265;

																{
																	obj_t BgL_auxz00_2266;

																	{	/* Engine/heap.scm 193 */
																		BgL_objectz00_bglt BgL_tmpz00_2267;

																		BgL_tmpz00_2267 =
																			((BgL_objectz00_bglt)
																			((BgL_typez00_bglt) BgL_newz00_1516));
																		BgL_auxz00_2266 =
																			BGL_OBJECT_WIDENING(BgL_tmpz00_2267);
																	}
																	BgL_auxz00_2265 =
																		((BgL_tclassz00_bglt) BgL_auxz00_2266);
																}
																BgL_l1221z00_1727 =
																	(((BgL_tclassz00_bglt)
																		COBJECT(BgL_auxz00_2265))->BgL_slotsz00);
															}
															if (NULLP(BgL_l1221z00_1727))
																{	/* Engine/heap.scm 193 */
																	BgL_arg1751z00_1726 = BNIL;
																}
															else
																{	/* Engine/heap.scm 193 */
																	obj_t BgL_head1223z00_1728;

																	{	/* Engine/heap.scm 193 */
																		obj_t BgL_arg1768z00_1729;

																		{	/* Engine/heap.scm 193 */
																			obj_t BgL_arg1771z00_1730;

																			BgL_arg1771z00_1730 =
																				CAR(((obj_t) BgL_l1221z00_1727));
																			BgL_arg1768z00_1729 =
																				BGl_shapez00zztools_shapez00
																				(BgL_arg1771z00_1730);
																		}
																		BgL_head1223z00_1728 =
																			MAKE_YOUNG_PAIR(BgL_arg1768z00_1729,
																			BNIL);
																	}
																	{	/* Engine/heap.scm 193 */
																		obj_t BgL_g1227z00_1731;

																		BgL_g1227z00_1731 =
																			CDR(((obj_t) BgL_l1221z00_1727));
																		{
																			obj_t BgL_l1221z00_1733;
																			obj_t BgL_tail1224z00_1734;

																			BgL_l1221z00_1733 = BgL_g1227z00_1731;
																			BgL_tail1224z00_1734 =
																				BgL_head1223z00_1728;
																		BgL_zc3z04anonymousza31753ze3z87_1732:
																			if (NULLP(BgL_l1221z00_1733))
																				{	/* Engine/heap.scm 193 */
																					BgL_arg1751z00_1726 =
																						BgL_head1223z00_1728;
																				}
																			else
																				{	/* Engine/heap.scm 193 */
																					obj_t BgL_newtail1225z00_1735;

																					{	/* Engine/heap.scm 193 */
																						obj_t BgL_arg1760z00_1736;

																						{	/* Engine/heap.scm 193 */
																							obj_t BgL_arg1763z00_1737;

																							BgL_arg1763z00_1737 =
																								CAR(
																								((obj_t) BgL_l1221z00_1733));
																							BgL_arg1760z00_1736 =
																								BGl_shapez00zztools_shapez00
																								(BgL_arg1763z00_1737);
																						}
																						BgL_newtail1225z00_1735 =
																							MAKE_YOUNG_PAIR
																							(BgL_arg1760z00_1736, BNIL);
																					}
																					SET_CDR(BgL_tail1224z00_1734,
																						BgL_newtail1225z00_1735);
																					{	/* Engine/heap.scm 193 */
																						obj_t BgL_arg1759z00_1738;

																						BgL_arg1759z00_1738 =
																							CDR(((obj_t) BgL_l1221z00_1733));
																						{
																							obj_t BgL_tail1224z00_2291;
																							obj_t BgL_l1221z00_2290;

																							BgL_l1221z00_2290 =
																								BgL_arg1759z00_1738;
																							BgL_tail1224z00_2291 =
																								BgL_newtail1225z00_1735;
																							BgL_tail1224z00_1734 =
																								BgL_tail1224z00_2291;
																							BgL_l1221z00_1733 =
																								BgL_l1221z00_2290;
																							goto
																								BgL_zc3z04anonymousza31753ze3z87_1732;
																						}
																					}
																				}
																		}
																	}
																}
														}
														BgL_arg1747z00_1722 =
															BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00
															(BgL_arg1751z00_1726, BNIL);
													}
													BgL_arg1745z00_1720 =
														MAKE_YOUNG_PAIR(BgL_arg1746z00_1721,
														BgL_arg1747z00_1722);
												}
												BgL_arg1739z00_1718 =
													MAKE_YOUNG_PAIR(BgL_arg1741z00_1719,
													BgL_arg1745z00_1720);
											}
											BgL_arg1736z00_1717 =
												MAKE_YOUNG_PAIR(CNST_TABLE_REF(10L),
												BgL_arg1739z00_1718);
										}
										bgl_display_obj(BgL_arg1736z00_1717, BgL_port1228z00_1716);
									}
									return
										bgl_display_char(((unsigned char) 10),
										BgL_port1228z00_1716);
								}
							else
								{	/* Engine/heap.scm 194 */
									obj_t BgL_port1229z00_1739;

									{	/* Engine/heap.scm 194 */
										obj_t BgL_tmpz00_2299;

										BgL_tmpz00_2299 = BGL_CURRENT_DYNAMIC_ENV();
										BgL_port1229z00_1739 =
											BGL_ENV_CURRENT_OUTPUT_PORT(BgL_tmpz00_2299);
									}
									bgl_display_string(BGl_string1858z00zzengine_heapz00,
										BgL_port1229z00_1739);
									{	/* Engine/heap.scm 194 */
										obj_t BgL_arg1773z00_1740;

										{	/* Engine/heap.scm 194 */
											obj_t BgL_arg1776z00_1741;

											{	/* Engine/heap.scm 194 */
												obj_t BgL_arg1793z00_1742;

												{	/* Engine/heap.scm 194 */
													obj_t BgL_arg1794z00_1743;

													{	/* Engine/heap.scm 194 */
														obj_t BgL_arg1798z00_1744;

														BgL_arg1798z00_1744 =
															MAKE_YOUNG_PAIR(BgL_namez00_1703, BNIL);
														BgL_arg1794z00_1743 =
															MAKE_YOUNG_PAIR(CNST_TABLE_REF(2L),
															BgL_arg1798z00_1744);
													}
													BgL_arg1793z00_1742 =
														MAKE_YOUNG_PAIR(BgL_arg1794z00_1743, BNIL);
												}
												BgL_arg1776z00_1741 =
													MAKE_YOUNG_PAIR(BgL_idz00_1702, BgL_arg1793z00_1742);
											}
											BgL_arg1773z00_1740 =
												MAKE_YOUNG_PAIR(CNST_TABLE_REF(13L),
												BgL_arg1776z00_1741);
										}
										bgl_display_obj(BgL_arg1773z00_1740, BgL_port1229z00_1739);
									}
									return
										bgl_display_char(((unsigned char) 10),
										BgL_port1229z00_1739);
		}}}}}}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zzengine_heapz00(void)
	{
		{	/* Engine/heap.scm 15 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zzengine_heapz00(void)
	{
		{	/* Engine/heap.scm 15 */
			return BUNSPEC;
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zzengine_heapz00(void)
	{
		{	/* Engine/heap.scm 15 */
			return BUNSPEC;
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zzengine_heapz00(void)
	{
		{	/* Engine/heap.scm 15 */
			BGl_modulezd2initializa7ationz75zzengine_paramz00(517137079L,
				BSTRING_TO_STRING(BGl_string1864z00zzengine_heapz00));
			BGl_modulezd2initializa7ationz75zzbackend_backendz00(216206620L,
				BSTRING_TO_STRING(BGl_string1864z00zzengine_heapz00));
			BGl_modulezd2initializa7ationz75zzast_envz00(146730773L,
				BSTRING_TO_STRING(BGl_string1864z00zzengine_heapz00));
			BGl_modulezd2initializa7ationz75zzast_varz00(90839984L,
				BSTRING_TO_STRING(BGl_string1864z00zzengine_heapz00));
			BGl_modulezd2initializa7ationz75zztype_typez00(515343395L,
				BSTRING_TO_STRING(BGl_string1864z00zzengine_heapz00));
			BGl_modulezd2initializa7ationz75zzobject_classz00(502007119L,
				BSTRING_TO_STRING(BGl_string1864z00zzengine_heapz00));
			BGl_modulezd2initializa7ationz75zztype_envz00(296457443L,
				BSTRING_TO_STRING(BGl_string1864z00zzengine_heapz00));
			BGl_modulezd2initializa7ationz75zzread_jvmz00(261574382L,
				BSTRING_TO_STRING(BGl_string1864z00zzengine_heapz00));
			BGl_modulezd2initializa7ationz75zztools_shapez00(365925558L,
				BSTRING_TO_STRING(BGl_string1864z00zzengine_heapz00));
			BGl_modulezd2initializa7ationz75zzheap_restorez00(147989063L,
				BSTRING_TO_STRING(BGl_string1864z00zzengine_heapz00));
			BGl_modulezd2initializa7ationz75zzmodule_modulez00(158397907L,
				BSTRING_TO_STRING(BGl_string1864z00zzengine_heapz00));
			return
				BGl_modulezd2initializa7ationz75zzmodule_pragmaz00(433305536L,
				BSTRING_TO_STRING(BGl_string1864z00zzengine_heapz00));
		}

	}

#ifdef __cplusplus
}
#endif
