/*===========================================================================*/
/*   (Eval/expdrecord.scm)                                                   */
/*   Bigloo (4.7a)                                                           */
/*   Inria -- Sophia Antipolis (c)       Thu Feb 19 09:11:58 AM CET 2026     */
/*===========================================================================*/
/* COMPILATION: (/home/serrano/prgm/project/bigloo/4.7a/bin/bigloo -srfi bigloo-unsafe -O3 -fcfa-arithmetic -q -lib-dir /home/serrano/prgm/project/bigloo/4.7a/lib/bigloo/4.7a +rm -mklib -cc gcc -fsharing -q -no-hello -unsafe -safee -O4 -stdc -c Eval/expdrecord.scm -indent -o objs/obj_u/Eval/expdrecord.c) */
/* 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___EXPANDER_RECORD_TYPE_DEFINITIONS
#define BGL___EXPANDER_RECORD_TYPE_DEFINITIONS
#endif													// BGL___EXPANDER_RECORD_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	extern obj_t BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zz__expander_recordz00 =
		BUNSPEC;
	static obj_t BGl_expandzd2errorzd2zz__expander_recordz00(bool_t, obj_t,
		obj_t);
	static obj_t BGl_symbol1777z00zz__expander_recordz00 = BUNSPEC;
	static obj_t BGl_symbol1779z00zz__expander_recordz00 = BUNSPEC;
	extern obj_t BGl_evepairifyz00zz__prognz00(obj_t, obj_t);
	static obj_t
		BGl_z62expandzd2definezd2recordzd2typezb0zz__expander_recordz00(obj_t,
		obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_modulezd2initializa7ationz75zz__expander_recordz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__prognz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(long,
		char *);
	extern obj_t
		BGl_modulezd2initializa7ationz75zz__r4_control_features_6_9z00(long,
		char *);
	extern obj_t
		BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__r4_booleans_6_1z00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__r4_characters_6_6z00(long,
		char *);
	extern obj_t
		BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_flonum_dtoaz00(long,
		char *);
	extern obj_t
		BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_flonumz00(long, char *);
	extern obj_t
		BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5z00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__match_normaliza7eza7(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__threadz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__paramz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__bignumz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__bexitz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__structurez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__tvectorz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__biglooz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
	static obj_t BGl_symbol1781z00zz__expander_recordz00 = BUNSPEC;
	static obj_t BGl_symbol1783z00zz__expander_recordz00 = BUNSPEC;
	static obj_t BGl_symbol1785z00zz__expander_recordz00 = BUNSPEC;
	static obj_t BGl_symbol1787z00zz__expander_recordz00 = BUNSPEC;
	static obj_t BGl_symbol1789z00zz__expander_recordz00 = BUNSPEC;
	static obj_t BGl_symbol1791z00zz__expander_recordz00 = BUNSPEC;
	static obj_t BGl_symbol1793z00zz__expander_recordz00 = BUNSPEC;
	static obj_t BGl_symbol1795z00zz__expander_recordz00 = BUNSPEC;
	static obj_t BGl_symbol1797z00zz__expander_recordz00 = BUNSPEC;
	static obj_t BGl_symbol1799z00zz__expander_recordz00 = BUNSPEC;
	extern obj_t BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(obj_t);
	static obj_t BGl_cnstzd2initzd2zz__expander_recordz00(void);
	extern bool_t BGl_listzf3zf3zz__r4_pairs_and_lists_6_3z00(obj_t);
	static obj_t BGl_genericzd2initzd2zz__expander_recordz00(void);
	extern long bgl_list_length(obj_t);
	static obj_t BGl_importedzd2moduleszd2initz00zz__expander_recordz00(void);
	static obj_t BGl_gczd2rootszd2initz00zz__expander_recordz00(void);
	BGL_EXPORTED_DECL obj_t
		BGl_expandzd2definezd2recordzd2typezd2zz__expander_recordz00(obj_t, obj_t);
	static obj_t BGl_objectzd2initzd2zz__expander_recordz00(void);
	extern obj_t BGl_2zb2zb2zz__r4_numbers_6_5z00(obj_t, obj_t);
	extern obj_t BGl_memqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
	extern obj_t BGl_errorzf2locationzf2zz__errorz00(obj_t, obj_t, obj_t, obj_t,
		obj_t);
	extern obj_t bgl_bignum_add(obj_t, obj_t);
	extern obj_t bstring_to_symbol(obj_t);
	static obj_t BGl_recordzd2ze3structz31zz__expander_recordz00(obj_t, obj_t,
		obj_t, obj_t);
	extern obj_t BGl_gensymz00zz__r4_symbols_6_4z00(obj_t);
	static obj_t BGl_methodzd2initzd2zz__expander_recordz00(void);
	static obj_t BGl_loopze70ze7zz__expander_recordz00(obj_t, obj_t, obj_t,
		obj_t);
	static obj_t BGl_loopze71ze7zz__expander_recordz00(obj_t, obj_t, obj_t,
		obj_t);
	static obj_t BGl_symbol1801z00zz__expander_recordz00 = BUNSPEC;
	static obj_t BGl_symbol1803z00zz__expander_recordz00 = BUNSPEC;
	static obj_t BGl_symbol1807z00zz__expander_recordz00 = BUNSPEC;
	static obj_t BGl_symbol1809z00zz__expander_recordz00 = BUNSPEC;
	extern obj_t bgl_long_to_bignum(long);
	extern obj_t BGl_errorz00zz__errorz00(obj_t, obj_t, obj_t);
	static obj_t *__cnst;


	   
		 
		BGL_DEFINE_STRING(BGl_string1790z00zz__expander_recordz00,
		BgL_bgl_string1790za700za7za7_1813za7, "define", 6);
	      BGL_DEFINE_STRING(BGl_string1792z00zz__expander_recordz00,
		BgL_bgl_string1792za700za7za7_1814za7, "o", 1);
	      BGL_DEFINE_STRING(BGl_string1794z00zz__expander_recordz00,
		BgL_bgl_string1794za700za7za7_1815za7, "struct?", 7);
	      BGL_DEFINE_STRING(BGl_string1796z00zz__expander_recordz00,
		BgL_bgl_string1796za700za7za7_1816za7, "struct-key", 10);
	      BGL_DEFINE_STRING(BGl_string1798z00zz__expander_recordz00,
		BgL_bgl_string1798za700za7za7_1817za7, "eq?", 3);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_expandzd2definezd2recordzd2typezd2envz00zz__expander_recordz00,
		BgL_bgl_za762expandza7d2defi1818z00,
		BGl_z62expandzd2definezd2recordzd2typezb0zz__expander_recordz00, 0L,
		BUNSPEC, 2);
	      BGL_DEFINE_STRING(BGl_string1800z00zz__expander_recordz00,
		BgL_bgl_string1800za700za7za7_1819za7, "struct-length", 13);
	      BGL_DEFINE_STRING(BGl_string1802z00zz__expander_recordz00,
		BgL_bgl_string1802za700za7za7_1820za7, "=", 1);
	      BGL_DEFINE_STRING(BGl_string1804z00zz__expander_recordz00,
		BgL_bgl_string1804za700za7za7_1821za7, "and", 3);
	      BGL_DEFINE_STRING(BGl_string1805z00zz__expander_recordz00,
		BgL_bgl_string1805za700za7za7_1822za7, "invalid constructor", 19);
	      BGL_DEFINE_STRING(BGl_string1806z00zz__expander_recordz00,
		BgL_bgl_string1806za700za7za7_1823za7, "invalid fields", 14);
	      BGL_DEFINE_STRING(BGl_string1808z00zz__expander_recordz00,
		BgL_bgl_string1808za700za7za7_1824za7, "struct-set!", 11);
	      BGL_DEFINE_STRING(BGl_string1810z00zz__expander_recordz00,
		BgL_bgl_string1810za700za7za7_1825za7, "struct-ref", 10);
	      BGL_DEFINE_STRING(BGl_string1811z00zz__expander_recordz00,
		BgL_bgl_string1811za700za7za7_1826za7, "invalid field spec", 18);
	      BGL_DEFINE_STRING(BGl_string1812z00zz__expander_recordz00,
		BgL_bgl_string1812za700za7za7_1827za7, "__expander_record", 17);
	      BGL_DEFINE_STRING(BGl_string1776z00zz__expander_recordz00,
		BgL_bgl_string1776za700za7za7_1828za7, "invalid form", 12);
	      BGL_DEFINE_STRING(BGl_string1778z00zz__expander_recordz00,
		BgL_bgl_string1778za700za7za7_1829za7, ">", 1);
	      BGL_DEFINE_STRING(BGl_string1780z00zz__expander_recordz00,
		BgL_bgl_string1780za700za7za7_1830za7, "<", 1);
	      BGL_DEFINE_STRING(BGl_string1782z00zz__expander_recordz00,
		BgL_bgl_string1782za700za7za7_1831za7, "quote", 5);
	      BGL_DEFINE_STRING(BGl_string1784z00zz__expander_recordz00,
		BgL_bgl_string1784za700za7za7_1832za7, "make-struct", 11);
	      BGL_DEFINE_STRING(BGl_string1786z00zz__expander_recordz00,
		BgL_bgl_string1786za700za7za7_1833za7, "begin", 5);
	      BGL_DEFINE_STRING(BGl_string1788z00zz__expander_recordz00,
		BgL_bgl_string1788za700za7za7_1834za7, "let", 3);

/* contant bindings */
	static void bgl_constant_bindings()
	{
		BGL_BIND_STRING(BGl_string1788z00zz__expander_recordz00,
			BgL_bgl_string1788za700za7za7_1834za7);
		BGL_BIND_STRING(BGl_string1786z00zz__expander_recordz00,
			BgL_bgl_string1786za700za7za7_1833za7);
		BGL_BIND_STRING(BGl_string1784z00zz__expander_recordz00,
			BgL_bgl_string1784za700za7za7_1832za7);
		BGL_BIND_STRING(BGl_string1782z00zz__expander_recordz00,
			BgL_bgl_string1782za700za7za7_1831za7);
		BGL_BIND_STRING(BGl_string1780z00zz__expander_recordz00,
			BgL_bgl_string1780za700za7za7_1830za7);
		BGL_BIND_STRING(BGl_string1778z00zz__expander_recordz00,
			BgL_bgl_string1778za700za7za7_1829za7);
		BGL_BIND_STRING(BGl_string1776z00zz__expander_recordz00,
			BgL_bgl_string1776za700za7za7_1828za7);
		BGL_BIND_STRING(BGl_string1812z00zz__expander_recordz00,
			BgL_bgl_string1812za700za7za7_1827za7);
		BGL_BIND_STRING(BGl_string1811z00zz__expander_recordz00,
			BgL_bgl_string1811za700za7za7_1826za7);
		BGL_BIND_STRING(BGl_string1810z00zz__expander_recordz00,
			BgL_bgl_string1810za700za7za7_1825za7);
		BGL_BIND_STRING(BGl_string1808z00zz__expander_recordz00,
			BgL_bgl_string1808za700za7za7_1824za7);
		BGL_BIND_STRING(BGl_string1806z00zz__expander_recordz00,
			BgL_bgl_string1806za700za7za7_1823za7);
		BGL_BIND_STRING(BGl_string1805z00zz__expander_recordz00,
			BgL_bgl_string1805za700za7za7_1822za7);
		BGL_BIND_STRING(BGl_string1804z00zz__expander_recordz00,
			BgL_bgl_string1804za700za7za7_1821za7);
		BGL_BIND_STRING(BGl_string1802z00zz__expander_recordz00,
			BgL_bgl_string1802za700za7za7_1820za7);
		BGL_BIND_STRING(BGl_string1800z00zz__expander_recordz00,
			BgL_bgl_string1800za700za7za7_1819za7);
		BGL_BIND_PROCEDURE
			(BGl_expandzd2definezd2recordzd2typezd2envz00zz__expander_recordz00,
			BgL_bgl_za762expandza7d2defi1818z00);
		BGL_BIND_STRING(BGl_string1798z00zz__expander_recordz00,
			BgL_bgl_string1798za700za7za7_1817za7);
		BGL_BIND_STRING(BGl_string1796z00zz__expander_recordz00,
			BgL_bgl_string1796za700za7za7_1816za7);
		BGL_BIND_STRING(BGl_string1794z00zz__expander_recordz00,
			BgL_bgl_string1794za700za7za7_1815za7);
		BGL_BIND_STRING(BGl_string1792z00zz__expander_recordz00,
			BgL_bgl_string1792za700za7za7_1814za7);
		BGL_BIND_STRING(BGl_string1790z00zz__expander_recordz00,
			BgL_bgl_string1790za700za7za7_1813za7);
	}

/* 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_requirezd2initializa7ationz75zz__expander_recordz00));
		ADD_ROOT((void *) (&BGl_symbol1777z00zz__expander_recordz00));
		ADD_ROOT((void *) (&BGl_symbol1779z00zz__expander_recordz00));
		ADD_ROOT((void *) (&BGl_symbol1781z00zz__expander_recordz00));
		ADD_ROOT((void *) (&BGl_symbol1783z00zz__expander_recordz00));
		ADD_ROOT((void *) (&BGl_symbol1785z00zz__expander_recordz00));
		ADD_ROOT((void *) (&BGl_symbol1787z00zz__expander_recordz00));
		ADD_ROOT((void *) (&BGl_symbol1789z00zz__expander_recordz00));
		ADD_ROOT((void *) (&BGl_symbol1791z00zz__expander_recordz00));
		ADD_ROOT((void *) (&BGl_symbol1793z00zz__expander_recordz00));
		ADD_ROOT((void *) (&BGl_symbol1795z00zz__expander_recordz00));
		ADD_ROOT((void *) (&BGl_symbol1797z00zz__expander_recordz00));
		ADD_ROOT((void *) (&BGl_symbol1799z00zz__expander_recordz00));
		ADD_ROOT((void *) (&BGl_symbol1801z00zz__expander_recordz00));
		ADD_ROOT((void *) (&BGl_symbol1803z00zz__expander_recordz00));
		ADD_ROOT((void *) (&BGl_symbol1807z00zz__expander_recordz00));
		ADD_ROOT((void *) (&BGl_symbol1809z00zz__expander_recordz00));
#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_modulezd2initializa7ationz75zz__expander_recordz00(long
		BgL_checksumz00_2127, char *BgL_fromz00_2128)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zz__expander_recordz00))
				{
					BGl_requirezd2initializa7ationz75zz__expander_recordz00 =
						BBOOL(((bool_t) 0));
					bgl_constant_bindings();
					BGl_gczd2rootszd2initz00zz__expander_recordz00();
					BGl_cnstzd2initzd2zz__expander_recordz00();
					BGl_importedzd2moduleszd2initz00zz__expander_recordz00();
					return BGl_methodzd2initzd2zz__expander_recordz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zz__expander_recordz00(void)
	{
		{	/* Eval/expdrecord.scm 18 */
			BGl_symbol1777z00zz__expander_recordz00 =
				bstring_to_symbol(BGl_string1778z00zz__expander_recordz00);
			BGl_symbol1779z00zz__expander_recordz00 =
				bstring_to_symbol(BGl_string1780z00zz__expander_recordz00);
			BGl_symbol1781z00zz__expander_recordz00 =
				bstring_to_symbol(BGl_string1782z00zz__expander_recordz00);
			BGl_symbol1783z00zz__expander_recordz00 =
				bstring_to_symbol(BGl_string1784z00zz__expander_recordz00);
			BGl_symbol1785z00zz__expander_recordz00 =
				bstring_to_symbol(BGl_string1786z00zz__expander_recordz00);
			BGl_symbol1787z00zz__expander_recordz00 =
				bstring_to_symbol(BGl_string1788z00zz__expander_recordz00);
			BGl_symbol1789z00zz__expander_recordz00 =
				bstring_to_symbol(BGl_string1790z00zz__expander_recordz00);
			BGl_symbol1791z00zz__expander_recordz00 =
				bstring_to_symbol(BGl_string1792z00zz__expander_recordz00);
			BGl_symbol1793z00zz__expander_recordz00 =
				bstring_to_symbol(BGl_string1794z00zz__expander_recordz00);
			BGl_symbol1795z00zz__expander_recordz00 =
				bstring_to_symbol(BGl_string1796z00zz__expander_recordz00);
			BGl_symbol1797z00zz__expander_recordz00 =
				bstring_to_symbol(BGl_string1798z00zz__expander_recordz00);
			BGl_symbol1799z00zz__expander_recordz00 =
				bstring_to_symbol(BGl_string1800z00zz__expander_recordz00);
			BGl_symbol1801z00zz__expander_recordz00 =
				bstring_to_symbol(BGl_string1802z00zz__expander_recordz00);
			BGl_symbol1803z00zz__expander_recordz00 =
				bstring_to_symbol(BGl_string1804z00zz__expander_recordz00);
			BGl_symbol1807z00zz__expander_recordz00 =
				bstring_to_symbol(BGl_string1808z00zz__expander_recordz00);
			return (BGl_symbol1809z00zz__expander_recordz00 =
				bstring_to_symbol(BGl_string1810z00zz__expander_recordz00), BUNSPEC);
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zz__expander_recordz00(void)
	{
		{	/* Eval/expdrecord.scm 18 */
			return bgl_gc_roots_register();
		}

	}



/* expand-define-record-type */
	BGL_EXPORTED_DEF obj_t
		BGl_expandzd2definezd2recordzd2typezd2zz__expander_recordz00(obj_t
		BgL_xz00_3, obj_t BgL_ez00_4)
	{
		{	/* Eval/expdrecord.scm 59 */
			if (PAIRP(BgL_xz00_3))
				{	/* Eval/expdrecord.scm 60 */
					obj_t BgL_cdrzd2113zd2_1137;

					BgL_cdrzd2113zd2_1137 = CDR(((obj_t) BgL_xz00_3));
					if (PAIRP(BgL_cdrzd2113zd2_1137))
						{	/* Eval/expdrecord.scm 60 */
							obj_t BgL_cdrzd2119zd2_1139;

							BgL_cdrzd2119zd2_1139 = CDR(BgL_cdrzd2113zd2_1137);
							if (PAIRP(BgL_cdrzd2119zd2_1139))
								{	/* Eval/expdrecord.scm 60 */
									obj_t BgL_cdrzd2125zd2_1141;

									BgL_cdrzd2125zd2_1141 = CDR(BgL_cdrzd2119zd2_1139);
									if (PAIRP(BgL_cdrzd2125zd2_1141))
										{	/* Eval/expdrecord.scm 60 */
											obj_t BgL_arg1187z00_1143;
											obj_t BgL_arg1189z00_1144;
											obj_t BgL_arg1192z00_1145;
											obj_t BgL_arg1193z00_1146;

											BgL_arg1187z00_1143 = CAR(BgL_cdrzd2113zd2_1137);
											BgL_arg1189z00_1144 = CAR(BgL_cdrzd2119zd2_1139);
											BgL_arg1192z00_1145 = CAR(BgL_cdrzd2125zd2_1141);
											BgL_arg1193z00_1146 = CDR(BgL_cdrzd2125zd2_1141);
											{	/* Eval/expdrecord.scm 62 */
												obj_t BgL_arg1194z00_1743;

												{	/* Eval/expdrecord.scm 62 */
													obj_t BgL_arg1195z00_1744;

													BgL_arg1195z00_1744 =
														BGl_recordzd2ze3structz31zz__expander_recordz00
														(BgL_arg1187z00_1143, BgL_arg1189z00_1144,
														BgL_arg1192z00_1145, BgL_arg1193z00_1146);
													BgL_arg1194z00_1743 =
														BGL_PROCEDURE_CALL2(BgL_ez00_4, BgL_arg1195z00_1744,
														BgL_ez00_4);
												}
												BGL_TAIL return
													BGl_evepairifyz00zz__prognz00(BgL_arg1194z00_1743,
													BgL_xz00_3);
											}
										}
									else
										{	/* Eval/expdrecord.scm 60 */
											return
												BGl_expandzd2errorzd2zz__expander_recordz00(((bool_t)
													0), BGl_string1776z00zz__expander_recordz00,
												BgL_xz00_3);
										}
								}
							else
								{	/* Eval/expdrecord.scm 60 */
									return
										BGl_expandzd2errorzd2zz__expander_recordz00(((bool_t) 0),
										BGl_string1776z00zz__expander_recordz00, BgL_xz00_3);
								}
						}
					else
						{	/* Eval/expdrecord.scm 60 */
							return
								BGl_expandzd2errorzd2zz__expander_recordz00(((bool_t) 0),
								BGl_string1776z00zz__expander_recordz00, BgL_xz00_3);
						}
				}
			else
				{	/* Eval/expdrecord.scm 60 */
					return
						BGl_expandzd2errorzd2zz__expander_recordz00(((bool_t) 0),
						BGl_string1776z00zz__expander_recordz00, BgL_xz00_3);
				}
		}

	}



/* &expand-define-record-type */
	obj_t BGl_z62expandzd2definezd2recordzd2typezb0zz__expander_recordz00(obj_t
		BgL_envz00_2104, obj_t BgL_xz00_2105, obj_t BgL_ez00_2106)
	{
		{	/* Eval/expdrecord.scm 59 */
			return
				BGl_expandzd2definezd2recordzd2typezd2zz__expander_recordz00
				(BgL_xz00_2105, BgL_ez00_2106);
		}

	}



/* record->struct */
	obj_t BGl_recordzd2ze3structz31zz__expander_recordz00(obj_t BgL_namez00_5,
		obj_t BgL_constrz00_6, obj_t BgL_predicatez00_7, obj_t BgL_fieldsz00_8)
	{
		{	/* Eval/expdrecord.scm 69 */
			if (BGl_listzf3zf3zz__r4_pairs_and_lists_6_3z00(BgL_fieldsz00_8))
				{	/* Eval/expdrecord.scm 71 */
					if (BGl_listzf3zf3zz__r4_pairs_and_lists_6_3z00(BgL_constrz00_6))
						{	/* Eval/expdrecord.scm 76 */
							obj_t BgL_tmpz00_1151;
							obj_t BgL_valz00_1152;
							obj_t BgL_keyz00_1153;

							{	/* Eval/expdrecord.scm 76 */

								{	/* Eval/expdrecord.scm 76 */

									BgL_tmpz00_1151 = BGl_gensymz00zz__r4_symbols_6_4z00(BFALSE);
								}
							}
							{	/* Eval/expdrecord.scm 77 */

								{	/* Eval/expdrecord.scm 77 */

									BgL_valz00_1152 = BGl_gensymz00zz__r4_symbols_6_4z00(BFALSE);
								}
							}
							{	/* Eval/expdrecord.scm 78 */
								obj_t BgL_list1382z00_1275;

								{	/* Eval/expdrecord.scm 78 */
									obj_t BgL_arg1383z00_1276;

									{	/* Eval/expdrecord.scm 78 */
										obj_t BgL_arg1384z00_1277;

										BgL_arg1384z00_1277 =
											MAKE_YOUNG_PAIR(BGl_symbol1777z00zz__expander_recordz00,
											BNIL);
										BgL_arg1383z00_1276 =
											MAKE_YOUNG_PAIR(BgL_namez00_5, BgL_arg1384z00_1277);
									}
									BgL_list1382z00_1275 =
										MAKE_YOUNG_PAIR(BGl_symbol1779z00zz__expander_recordz00,
										BgL_arg1383z00_1276);
								}
								BgL_keyz00_1153 =
									BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00
									(BgL_list1382z00_1275);
							}
							{	/* Eval/expdrecord.scm 81 */
								obj_t BgL_arg1201z00_1154;

								{	/* Eval/expdrecord.scm 81 */
									obj_t BgL_arg1202z00_1155;
									obj_t BgL_arg1203z00_1156;

									{	/* Eval/expdrecord.scm 81 */
										obj_t BgL_arg1206z00_1157;

										{	/* Eval/expdrecord.scm 81 */
											obj_t BgL_arg1207z00_1158;

											{	/* Eval/expdrecord.scm 81 */
												obj_t BgL_arg1208z00_1159;

												{	/* Eval/expdrecord.scm 81 */
													obj_t BgL_arg1211z00_1160;

													{	/* Eval/expdrecord.scm 81 */
														obj_t BgL_arg1213z00_1161;
														obj_t BgL_arg1215z00_1162;

														{	/* Eval/expdrecord.scm 81 */
															obj_t BgL_arg1216z00_1163;

															{	/* Eval/expdrecord.scm 81 */
																obj_t BgL_arg1217z00_1164;

																{	/* Eval/expdrecord.scm 81 */
																	obj_t BgL_arg1219z00_1165;

																	{	/* Eval/expdrecord.scm 81 */
																		obj_t BgL_arg1224z00_1166;

																		{	/* Eval/expdrecord.scm 81 */
																			obj_t BgL_arg1225z00_1167;
																			obj_t BgL_arg1226z00_1168;

																			{	/* Eval/expdrecord.scm 81 */
																				obj_t BgL_arg1230z00_1169;

																				BgL_arg1230z00_1169 =
																					MAKE_YOUNG_PAIR(BgL_keyz00_1153,
																					BNIL);
																				BgL_arg1225z00_1167 =
																					MAKE_YOUNG_PAIR
																					(BGl_symbol1781z00zz__expander_recordz00,
																					BgL_arg1230z00_1169);
																			}
																			{	/* Eval/expdrecord.scm 81 */
																				long BgL_arg1231z00_1170;
																				obj_t BgL_arg1232z00_1171;

																				BgL_arg1231z00_1170 =
																					bgl_list_length(BgL_fieldsz00_8);
																				BgL_arg1232z00_1171 =
																					MAKE_YOUNG_PAIR(BUNSPEC, BNIL);
																				BgL_arg1226z00_1168 =
																					MAKE_YOUNG_PAIR(BINT
																					(BgL_arg1231z00_1170),
																					BgL_arg1232z00_1171);
																			}
																			BgL_arg1224z00_1166 =
																				MAKE_YOUNG_PAIR(BgL_arg1225z00_1167,
																				BgL_arg1226z00_1168);
																		}
																		BgL_arg1219z00_1165 =
																			MAKE_YOUNG_PAIR
																			(BGl_symbol1783z00zz__expander_recordz00,
																			BgL_arg1224z00_1166);
																	}
																	BgL_arg1217z00_1164 =
																		MAKE_YOUNG_PAIR(BgL_arg1219z00_1165, BNIL);
																}
																BgL_arg1216z00_1163 =
																	MAKE_YOUNG_PAIR(BgL_tmpz00_1151,
																	BgL_arg1217z00_1164);
															}
															BgL_arg1213z00_1161 =
																MAKE_YOUNG_PAIR(BgL_arg1216z00_1163, BNIL);
														}
														{	/* Eval/expdrecord.scm 86 */
															obj_t BgL_arg1234z00_1172;

															{	/* Eval/expdrecord.scm 86 */
																obj_t BgL_arg1235z00_1173;

																{	/* Eval/expdrecord.scm 86 */
																	obj_t BgL_arg1236z00_1174;
																	obj_t BgL_arg1239z00_1175;

																	BgL_arg1236z00_1174 =
																		BGl_loopze70ze7zz__expander_recordz00
																		(BgL_constrz00_6, BgL_tmpz00_1151,
																		BgL_fieldsz00_8, BINT(0L));
																	BgL_arg1239z00_1175 =
																		MAKE_YOUNG_PAIR(BgL_tmpz00_1151, BNIL);
																	BgL_arg1235z00_1173 =
																		BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00
																		(BgL_arg1236z00_1174, BgL_arg1239z00_1175);
																}
																BgL_arg1234z00_1172 =
																	MAKE_YOUNG_PAIR
																	(BGl_symbol1785z00zz__expander_recordz00,
																	BgL_arg1235z00_1173);
															}
															BgL_arg1215z00_1162 =
																MAKE_YOUNG_PAIR(BgL_arg1234z00_1172, BNIL);
														}
														BgL_arg1211z00_1160 =
															MAKE_YOUNG_PAIR(BgL_arg1213z00_1161,
															BgL_arg1215z00_1162);
													}
													BgL_arg1208z00_1159 =
														MAKE_YOUNG_PAIR
														(BGl_symbol1787z00zz__expander_recordz00,
														BgL_arg1211z00_1160);
												}
												BgL_arg1207z00_1158 =
													MAKE_YOUNG_PAIR(BgL_arg1208z00_1159, BNIL);
											}
											BgL_arg1206z00_1157 =
												MAKE_YOUNG_PAIR(BgL_constrz00_6, BgL_arg1207z00_1158);
										}
										BgL_arg1202z00_1155 =
											MAKE_YOUNG_PAIR(BGl_symbol1789z00zz__expander_recordz00,
											BgL_arg1206z00_1157);
									}
									{	/* Eval/expdrecord.scm 94 */
										obj_t BgL_arg1271z00_1197;
										obj_t BgL_arg1274z00_1198;

										{	/* Eval/expdrecord.scm 94 */
											obj_t BgL_arg1276z00_1199;

											{	/* Eval/expdrecord.scm 94 */
												obj_t BgL_arg1278z00_1200;
												obj_t BgL_arg1279z00_1201;

												{	/* Eval/expdrecord.scm 94 */
													obj_t BgL_arg1280z00_1202;

													BgL_arg1280z00_1202 =
														MAKE_YOUNG_PAIR
														(BGl_symbol1791z00zz__expander_recordz00, BNIL);
													BgL_arg1278z00_1200 =
														MAKE_YOUNG_PAIR(BgL_predicatez00_7,
														BgL_arg1280z00_1202);
												}
												{	/* Eval/expdrecord.scm 95 */
													obj_t BgL_arg1281z00_1203;

													{	/* Eval/expdrecord.scm 95 */
														obj_t BgL_arg1282z00_1204;

														{	/* Eval/expdrecord.scm 95 */
															obj_t BgL_arg1283z00_1205;
															obj_t BgL_arg1285z00_1206;

															{	/* Eval/expdrecord.scm 95 */
																obj_t BgL_arg1287z00_1207;

																BgL_arg1287z00_1207 =
																	MAKE_YOUNG_PAIR
																	(BGl_symbol1791z00zz__expander_recordz00,
																	BNIL);
																BgL_arg1283z00_1205 =
																	MAKE_YOUNG_PAIR
																	(BGl_symbol1793z00zz__expander_recordz00,
																	BgL_arg1287z00_1207);
															}
															{	/* Eval/expdrecord.scm 96 */
																obj_t BgL_arg1291z00_1208;
																obj_t BgL_arg1292z00_1209;

																{	/* Eval/expdrecord.scm 96 */
																	obj_t BgL_arg1293z00_1210;

																	{	/* Eval/expdrecord.scm 96 */
																		obj_t BgL_arg1295z00_1211;
																		obj_t BgL_arg1296z00_1212;

																		{	/* Eval/expdrecord.scm 96 */
																			obj_t BgL_arg1298z00_1213;

																			BgL_arg1298z00_1213 =
																				MAKE_YOUNG_PAIR
																				(BGl_symbol1791z00zz__expander_recordz00,
																				BNIL);
																			BgL_arg1295z00_1211 =
																				MAKE_YOUNG_PAIR
																				(BGl_symbol1795z00zz__expander_recordz00,
																				BgL_arg1298z00_1213);
																		}
																		{	/* Eval/expdrecord.scm 96 */
																			obj_t BgL_arg1301z00_1214;

																			{	/* Eval/expdrecord.scm 96 */
																				obj_t BgL_arg1322z00_1215;

																				BgL_arg1322z00_1215 =
																					MAKE_YOUNG_PAIR(BgL_keyz00_1153,
																					BNIL);
																				BgL_arg1301z00_1214 =
																					MAKE_YOUNG_PAIR
																					(BGl_symbol1781z00zz__expander_recordz00,
																					BgL_arg1322z00_1215);
																			}
																			BgL_arg1296z00_1212 =
																				MAKE_YOUNG_PAIR(BgL_arg1301z00_1214,
																				BNIL);
																		}
																		BgL_arg1293z00_1210 =
																			MAKE_YOUNG_PAIR(BgL_arg1295z00_1211,
																			BgL_arg1296z00_1212);
																	}
																	BgL_arg1291z00_1208 =
																		MAKE_YOUNG_PAIR
																		(BGl_symbol1797z00zz__expander_recordz00,
																		BgL_arg1293z00_1210);
																}
																{	/* Eval/expdrecord.scm 97 */
																	obj_t BgL_arg1329z00_1216;

																	{	/* Eval/expdrecord.scm 97 */
																		obj_t BgL_arg1330z00_1217;

																		{	/* Eval/expdrecord.scm 97 */
																			obj_t BgL_arg1331z00_1218;
																			obj_t BgL_arg1332z00_1219;

																			{	/* Eval/expdrecord.scm 97 */
																				obj_t BgL_arg1333z00_1220;

																				BgL_arg1333z00_1220 =
																					MAKE_YOUNG_PAIR
																					(BGl_symbol1791z00zz__expander_recordz00,
																					BNIL);
																				BgL_arg1331z00_1218 =
																					MAKE_YOUNG_PAIR
																					(BGl_symbol1799z00zz__expander_recordz00,
																					BgL_arg1333z00_1220);
																			}
																			{	/* Eval/expdrecord.scm 97 */
																				long BgL_arg1334z00_1221;

																				BgL_arg1334z00_1221 =
																					bgl_list_length(BgL_fieldsz00_8);
																				BgL_arg1332z00_1219 =
																					MAKE_YOUNG_PAIR(BINT
																					(BgL_arg1334z00_1221), BNIL);
																			}
																			BgL_arg1330z00_1217 =
																				MAKE_YOUNG_PAIR(BgL_arg1331z00_1218,
																				BgL_arg1332z00_1219);
																		}
																		BgL_arg1329z00_1216 =
																			MAKE_YOUNG_PAIR
																			(BGl_symbol1801z00zz__expander_recordz00,
																			BgL_arg1330z00_1217);
																	}
																	BgL_arg1292z00_1209 =
																		MAKE_YOUNG_PAIR(BgL_arg1329z00_1216, BNIL);
																}
																BgL_arg1285z00_1206 =
																	MAKE_YOUNG_PAIR(BgL_arg1291z00_1208,
																	BgL_arg1292z00_1209);
															}
															BgL_arg1282z00_1204 =
																MAKE_YOUNG_PAIR(BgL_arg1283z00_1205,
																BgL_arg1285z00_1206);
														}
														BgL_arg1281z00_1203 =
															MAKE_YOUNG_PAIR
															(BGl_symbol1803z00zz__expander_recordz00,
															BgL_arg1282z00_1204);
													}
													BgL_arg1279z00_1201 =
														MAKE_YOUNG_PAIR(BgL_arg1281z00_1203, BNIL);
												}
												BgL_arg1276z00_1199 =
													MAKE_YOUNG_PAIR(BgL_arg1278z00_1200,
													BgL_arg1279z00_1201);
											}
											BgL_arg1271z00_1197 =
												MAKE_YOUNG_PAIR(BGl_symbol1789z00zz__expander_recordz00,
												BgL_arg1276z00_1199);
										}
										BgL_arg1274z00_1198 =
											BGl_loopze71ze7zz__expander_recordz00(BgL_valz00_1152,
											BgL_tmpz00_1151, BgL_fieldsz00_8, BINT(0L));
										BgL_arg1203z00_1156 =
											MAKE_YOUNG_PAIR(BgL_arg1271z00_1197, BgL_arg1274z00_1198);
									}
									BgL_arg1201z00_1154 =
										MAKE_YOUNG_PAIR(BgL_arg1202z00_1155, BgL_arg1203z00_1156);
								}
								return
									MAKE_YOUNG_PAIR(BGl_symbol1785z00zz__expander_recordz00,
									BgL_arg1201z00_1154);
							}
						}
					else
						{	/* Eval/expdrecord.scm 124 */
							obj_t BgL_locz00_1840;

							if (EPAIRP(BgL_constrz00_6))
								{	/* Eval/expdrecord.scm 124 */
									BgL_locz00_1840 = CER(((obj_t) BgL_constrz00_6));
								}
							else
								{	/* Eval/expdrecord.scm 124 */
									BgL_locz00_1840 = BFALSE;
								}
							{	/* Eval/expdrecord.scm 125 */
								bool_t BgL_test1843z00_2248;

								if (PAIRP(BgL_locz00_1840))
									{	/* Eval/expdrecord.scm 125 */
										bool_t BgL_test1845z00_2251;

										{	/* Eval/expdrecord.scm 125 */
											obj_t BgL_tmpz00_2252;

											BgL_tmpz00_2252 = CDR(BgL_locz00_1840);
											BgL_test1845z00_2251 = PAIRP(BgL_tmpz00_2252);
										}
										if (BgL_test1845z00_2251)
											{	/* Eval/expdrecord.scm 125 */
												obj_t BgL_tmpz00_2255;

												BgL_tmpz00_2255 = CDR(CDR(BgL_locz00_1840));
												BgL_test1843z00_2248 = PAIRP(BgL_tmpz00_2255);
											}
										else
											{	/* Eval/expdrecord.scm 125 */
												BgL_test1843z00_2248 = ((bool_t) 0);
											}
									}
								else
									{	/* Eval/expdrecord.scm 125 */
										BgL_test1843z00_2248 = ((bool_t) 0);
									}
								if (BgL_test1843z00_2248)
									{	/* Eval/expdrecord.scm 125 */
										return
											BGl_errorzf2locationzf2zz__errorz00(BFALSE,
											BGl_string1805z00zz__expander_recordz00, BgL_constrz00_6,
											CAR(CDR(BgL_locz00_1840)),
											CAR(CDR(CDR(BgL_locz00_1840))));
									}
								else
									{	/* Eval/expdrecord.scm 125 */
										return
											BGl_errorz00zz__errorz00(BFALSE,
											BGl_string1805z00zz__expander_recordz00, BgL_constrz00_6);
									}
							}
						}
				}
			else
				{	/* Eval/expdrecord.scm 124 */
					obj_t BgL_locz00_1865;

					if (EPAIRP(BgL_fieldsz00_8))
						{	/* Eval/expdrecord.scm 124 */
							BgL_locz00_1865 = CER(((obj_t) BgL_fieldsz00_8));
						}
					else
						{	/* Eval/expdrecord.scm 124 */
							BgL_locz00_1865 = BFALSE;
						}
					{	/* Eval/expdrecord.scm 125 */
						bool_t BgL_test1847z00_2270;

						if (PAIRP(BgL_locz00_1865))
							{	/* Eval/expdrecord.scm 125 */
								bool_t BgL_test1849z00_2273;

								{	/* Eval/expdrecord.scm 125 */
									obj_t BgL_tmpz00_2274;

									BgL_tmpz00_2274 = CDR(BgL_locz00_1865);
									BgL_test1849z00_2273 = PAIRP(BgL_tmpz00_2274);
								}
								if (BgL_test1849z00_2273)
									{	/* Eval/expdrecord.scm 125 */
										obj_t BgL_tmpz00_2277;

										BgL_tmpz00_2277 = CDR(CDR(BgL_locz00_1865));
										BgL_test1847z00_2270 = PAIRP(BgL_tmpz00_2277);
									}
								else
									{	/* Eval/expdrecord.scm 125 */
										BgL_test1847z00_2270 = ((bool_t) 0);
									}
							}
						else
							{	/* Eval/expdrecord.scm 125 */
								BgL_test1847z00_2270 = ((bool_t) 0);
							}
						if (BgL_test1847z00_2270)
							{	/* Eval/expdrecord.scm 125 */
								return
									BGl_errorzf2locationzf2zz__errorz00(BFALSE,
									BGl_string1806z00zz__expander_recordz00, BgL_fieldsz00_8,
									CAR(CDR(BgL_locz00_1865)), CAR(CDR(CDR(BgL_locz00_1865))));
							}
						else
							{	/* Eval/expdrecord.scm 125 */
								return
									BGl_errorz00zz__errorz00(BFALSE,
									BGl_string1806z00zz__expander_recordz00, BgL_fieldsz00_8);
							}
					}
				}
		}

	}



/* loop~0 */
	obj_t BGl_loopze70ze7zz__expander_recordz00(obj_t BgL_constrz00_2108,
		obj_t BgL_tmpz00_2107, obj_t BgL_fieldsz00_1177, obj_t BgL_iz00_1178)
	{
		{	/* Eval/expdrecord.scm 83 */
		BGl_loopze70ze7zz__expander_recordz00:
			if (NULLP(BgL_fieldsz00_1177))
				{	/* Eval/expdrecord.scm 86 */
					return BNIL;
				}
			else
				{	/* Eval/expdrecord.scm 88 */
					bool_t BgL_test1851z00_2290;

					{	/* Eval/expdrecord.scm 88 */
						obj_t BgL_tmpz00_2291;

						{	/* Eval/expdrecord.scm 88 */
							obj_t BgL_auxz00_2292;

							{	/* Eval/expdrecord.scm 88 */
								obj_t BgL_pairz00_1748;

								BgL_pairz00_1748 = CAR(((obj_t) BgL_fieldsz00_1177));
								BgL_auxz00_2292 = CAR(BgL_pairz00_1748);
							}
							BgL_tmpz00_2291 =
								BGl_memqz00zz__r4_pairs_and_lists_6_3z00(BgL_auxz00_2292,
								CDR(((obj_t) BgL_constrz00_2108)));
						}
						BgL_test1851z00_2290 = CBOOL(BgL_tmpz00_2291);
					}
					if (BgL_test1851z00_2290)
						{	/* Eval/expdrecord.scm 89 */
							obj_t BgL_arg1252z00_1184;
							obj_t BgL_arg1253z00_1185;

							{	/* Eval/expdrecord.scm 89 */
								obj_t BgL_arg1254z00_1186;

								{	/* Eval/expdrecord.scm 89 */
									obj_t BgL_arg1258z00_1187;

									{	/* Eval/expdrecord.scm 89 */
										obj_t BgL_arg1259z00_1188;

										{	/* Eval/expdrecord.scm 89 */
											obj_t BgL_arg1261z00_1189;

											{	/* Eval/expdrecord.scm 89 */
												obj_t BgL_pairz00_1753;

												BgL_pairz00_1753 = CAR(((obj_t) BgL_fieldsz00_1177));
												BgL_arg1261z00_1189 = CAR(BgL_pairz00_1753);
											}
											BgL_arg1259z00_1188 =
												MAKE_YOUNG_PAIR(BgL_arg1261z00_1189, BNIL);
										}
										BgL_arg1258z00_1187 =
											MAKE_YOUNG_PAIR(BgL_iz00_1178, BgL_arg1259z00_1188);
									}
									BgL_arg1254z00_1186 =
										MAKE_YOUNG_PAIR(BgL_tmpz00_2107, BgL_arg1258z00_1187);
								}
								BgL_arg1252z00_1184 =
									MAKE_YOUNG_PAIR(BGl_symbol1807z00zz__expander_recordz00,
									BgL_arg1254z00_1186);
							}
							{	/* Eval/expdrecord.scm 90 */
								obj_t BgL_arg1262z00_1190;
								obj_t BgL_arg1263z00_1191;

								BgL_arg1262z00_1190 = CDR(((obj_t) BgL_fieldsz00_1177));
								if (INTEGERP(BgL_iz00_1178))
									{	/* Eval/expdrecord.scm 90 */
										obj_t BgL_tmpz00_1757;

										BgL_tmpz00_1757 = BINT(0L);
										{	/* Eval/expdrecord.scm 90 */
											bool_t BgL_test1853z00_2312;

											{	/* Eval/expdrecord.scm 90 */
												obj_t BgL_tmpz00_2313;

												BgL_tmpz00_2313 = BINT(1L);
												BgL_test1853z00_2312 =
													BGL_ADDFX_OV(BgL_iz00_1178, BgL_tmpz00_2313,
													BgL_tmpz00_1757);
											}
											if (BgL_test1853z00_2312)
												{	/* Eval/expdrecord.scm 90 */
													BgL_arg1263z00_1191 =
														bgl_bignum_add(bgl_long_to_bignum(
															(long) CINT(BgL_iz00_1178)),
														bgl_long_to_bignum(1L));
												}
											else
												{	/* Eval/expdrecord.scm 90 */
													BgL_arg1263z00_1191 = BgL_tmpz00_1757;
												}
										}
									}
								else
									{	/* Eval/expdrecord.scm 90 */
										BgL_arg1263z00_1191 =
											BGl_2zb2zb2zz__r4_numbers_6_5z00(BgL_iz00_1178, BINT(1L));
									}
								BgL_arg1253z00_1185 =
									BGl_loopze70ze7zz__expander_recordz00(BgL_constrz00_2108,
									BgL_tmpz00_2107, BgL_arg1262z00_1190, BgL_arg1263z00_1191);
							}
							return MAKE_YOUNG_PAIR(BgL_arg1252z00_1184, BgL_arg1253z00_1185);
						}
					else
						{	/* Eval/expdrecord.scm 92 */
							obj_t BgL_arg1265z00_1192;
							obj_t BgL_arg1266z00_1193;

							BgL_arg1265z00_1192 = CDR(((obj_t) BgL_fieldsz00_1177));
							if (INTEGERP(BgL_iz00_1178))
								{	/* Eval/expdrecord.scm 92 */
									obj_t BgL_tmpz00_1768;

									BgL_tmpz00_1768 = BINT(0L);
									{	/* Eval/expdrecord.scm 92 */
										bool_t BgL_test1855z00_2329;

										{	/* Eval/expdrecord.scm 92 */
											obj_t BgL_tmpz00_2330;

											BgL_tmpz00_2330 = BINT(1L);
											BgL_test1855z00_2329 =
												BGL_ADDFX_OV(BgL_iz00_1178, BgL_tmpz00_2330,
												BgL_tmpz00_1768);
										}
										if (BgL_test1855z00_2329)
											{	/* Eval/expdrecord.scm 92 */
												BgL_arg1266z00_1193 =
													bgl_bignum_add(bgl_long_to_bignum(
														(long) CINT(BgL_iz00_1178)),
													bgl_long_to_bignum(1L));
											}
										else
											{	/* Eval/expdrecord.scm 92 */
												BgL_arg1266z00_1193 = BgL_tmpz00_1768;
											}
									}
								}
							else
								{	/* Eval/expdrecord.scm 92 */
									BgL_arg1266z00_1193 =
										BGl_2zb2zb2zz__r4_numbers_6_5z00(BgL_iz00_1178, BINT(1L));
								}
							{
								obj_t BgL_iz00_2340;
								obj_t BgL_fieldsz00_2339;

								BgL_fieldsz00_2339 = BgL_arg1265z00_1192;
								BgL_iz00_2340 = BgL_arg1266z00_1193;
								BgL_iz00_1178 = BgL_iz00_2340;
								BgL_fieldsz00_1177 = BgL_fieldsz00_2339;
								goto BGl_loopze70ze7zz__expander_recordz00;
							}
						}
				}
		}

	}



/* loop~1 */
	obj_t BGl_loopze71ze7zz__expander_recordz00(obj_t BgL_valz00_2110,
		obj_t BgL_tmpz00_2109, obj_t BgL_fieldsz00_1223, obj_t BgL_iz00_1224)
	{
		{	/* Eval/expdrecord.scm 98 */
			if (NULLP(BgL_fieldsz00_1223))
				{	/* Eval/expdrecord.scm 100 */
					return BNIL;
				}
			else
				{	/* Eval/expdrecord.scm 102 */
					obj_t BgL_fieldz00_1227;

					BgL_fieldz00_1227 = CAR(((obj_t) BgL_fieldsz00_1223));
					if ((bgl_list_length(BgL_fieldz00_1227) == 2L))
						{	/* Eval/expdrecord.scm 105 */
							obj_t BgL_arg1338z00_1230;
							obj_t BgL_arg1339z00_1231;

							{	/* Eval/expdrecord.scm 105 */
								obj_t BgL_arg1341z00_1232;

								{	/* Eval/expdrecord.scm 105 */
									obj_t BgL_arg1342z00_1233;
									obj_t BgL_arg1343z00_1234;

									{	/* Eval/expdrecord.scm 105 */
										obj_t BgL_arg1345z00_1235;
										obj_t BgL_arg1346z00_1236;

										{	/* Eval/expdrecord.scm 105 */
											obj_t BgL_pairz00_1781;

											BgL_pairz00_1781 = CDR(((obj_t) BgL_fieldz00_1227));
											BgL_arg1345z00_1235 = CAR(BgL_pairz00_1781);
										}
										BgL_arg1346z00_1236 =
											MAKE_YOUNG_PAIR(BgL_tmpz00_2109, BNIL);
										BgL_arg1342z00_1233 =
											MAKE_YOUNG_PAIR(BgL_arg1345z00_1235, BgL_arg1346z00_1236);
									}
									{	/* Eval/expdrecord.scm 106 */
										obj_t BgL_arg1347z00_1237;

										{	/* Eval/expdrecord.scm 106 */
											obj_t BgL_arg1349z00_1238;

											{	/* Eval/expdrecord.scm 106 */
												obj_t BgL_arg1351z00_1239;

												BgL_arg1351z00_1239 =
													MAKE_YOUNG_PAIR(BgL_iz00_1224, BNIL);
												BgL_arg1349z00_1238 =
													MAKE_YOUNG_PAIR(BgL_tmpz00_2109, BgL_arg1351z00_1239);
											}
											BgL_arg1347z00_1237 =
												MAKE_YOUNG_PAIR(BGl_symbol1809z00zz__expander_recordz00,
												BgL_arg1349z00_1238);
										}
										BgL_arg1343z00_1234 =
											MAKE_YOUNG_PAIR(BgL_arg1347z00_1237, BNIL);
									}
									BgL_arg1341z00_1232 =
										MAKE_YOUNG_PAIR(BgL_arg1342z00_1233, BgL_arg1343z00_1234);
								}
								BgL_arg1338z00_1230 =
									MAKE_YOUNG_PAIR(BGl_symbol1789z00zz__expander_recordz00,
									BgL_arg1341z00_1232);
							}
							{	/* Eval/expdrecord.scm 107 */
								obj_t BgL_arg1352z00_1240;
								obj_t BgL_arg1353z00_1241;

								BgL_arg1352z00_1240 = CDR(((obj_t) BgL_fieldsz00_1223));
								if (INTEGERP(BgL_iz00_1224))
									{	/* Eval/expdrecord.scm 107 */
										obj_t BgL_tmpz00_1785;

										BgL_tmpz00_1785 = BINT(0L);
										{	/* Eval/expdrecord.scm 107 */
											bool_t BgL_test1859z00_2364;

											{	/* Eval/expdrecord.scm 107 */
												obj_t BgL_tmpz00_2365;

												BgL_tmpz00_2365 = BINT(1L);
												BgL_test1859z00_2364 =
													BGL_ADDFX_OV(BgL_iz00_1224, BgL_tmpz00_2365,
													BgL_tmpz00_1785);
											}
											if (BgL_test1859z00_2364)
												{	/* Eval/expdrecord.scm 107 */
													BgL_arg1353z00_1241 =
														bgl_bignum_add(bgl_long_to_bignum(
															(long) CINT(BgL_iz00_1224)),
														bgl_long_to_bignum(1L));
												}
											else
												{	/* Eval/expdrecord.scm 107 */
													BgL_arg1353z00_1241 = BgL_tmpz00_1785;
												}
										}
									}
								else
									{	/* Eval/expdrecord.scm 107 */
										BgL_arg1353z00_1241 =
											BGl_2zb2zb2zz__r4_numbers_6_5z00(BgL_iz00_1224, BINT(1L));
									}
								BgL_arg1339z00_1231 =
									BGl_loopze71ze7zz__expander_recordz00(BgL_valz00_2110,
									BgL_tmpz00_2109, BgL_arg1352z00_1240, BgL_arg1353z00_1241);
							}
							return MAKE_YOUNG_PAIR(BgL_arg1338z00_1230, BgL_arg1339z00_1231);
						}
					else
						{	/* Eval/expdrecord.scm 104 */
							if ((bgl_list_length(BgL_fieldz00_1227) == 3L))
								{	/* Eval/expdrecord.scm 110 */
									obj_t BgL_arg1355z00_1244;
									obj_t BgL_arg1356z00_1245;

									{	/* Eval/expdrecord.scm 110 */
										obj_t BgL_arg1357z00_1246;

										{	/* Eval/expdrecord.scm 110 */
											obj_t BgL_arg1358z00_1247;
											obj_t BgL_arg1359z00_1248;

											{	/* Eval/expdrecord.scm 110 */
												obj_t BgL_arg1360z00_1249;

												{	/* Eval/expdrecord.scm 110 */
													obj_t BgL_arg1361z00_1250;
													obj_t BgL_arg1362z00_1251;

													{	/* Eval/expdrecord.scm 110 */
														obj_t BgL_arg1363z00_1252;
														obj_t BgL_arg1364z00_1253;

														{	/* Eval/expdrecord.scm 110 */
															obj_t BgL_pairz00_1797;

															BgL_pairz00_1797 =
																CDR(((obj_t) BgL_fieldz00_1227));
															BgL_arg1363z00_1252 = CAR(BgL_pairz00_1797);
														}
														BgL_arg1364z00_1253 =
															MAKE_YOUNG_PAIR(BgL_tmpz00_2109, BNIL);
														BgL_arg1361z00_1250 =
															MAKE_YOUNG_PAIR(BgL_arg1363z00_1252,
															BgL_arg1364z00_1253);
													}
													{	/* Eval/expdrecord.scm 111 */
														obj_t BgL_arg1365z00_1254;

														{	/* Eval/expdrecord.scm 111 */
															obj_t BgL_arg1366z00_1255;

															{	/* Eval/expdrecord.scm 111 */
																obj_t BgL_arg1367z00_1256;

																BgL_arg1367z00_1256 =
																	MAKE_YOUNG_PAIR(BgL_iz00_1224, BNIL);
																BgL_arg1366z00_1255 =
																	MAKE_YOUNG_PAIR(BgL_tmpz00_2109,
																	BgL_arg1367z00_1256);
															}
															BgL_arg1365z00_1254 =
																MAKE_YOUNG_PAIR
																(BGl_symbol1809z00zz__expander_recordz00,
																BgL_arg1366z00_1255);
														}
														BgL_arg1362z00_1251 =
															MAKE_YOUNG_PAIR(BgL_arg1365z00_1254, BNIL);
													}
													BgL_arg1360z00_1249 =
														MAKE_YOUNG_PAIR(BgL_arg1361z00_1250,
														BgL_arg1362z00_1251);
												}
												BgL_arg1358z00_1247 =
													MAKE_YOUNG_PAIR
													(BGl_symbol1789z00zz__expander_recordz00,
													BgL_arg1360z00_1249);
											}
											{	/* Eval/expdrecord.scm 112 */
												obj_t BgL_arg1368z00_1257;

												{	/* Eval/expdrecord.scm 112 */
													obj_t BgL_arg1369z00_1258;

													{	/* Eval/expdrecord.scm 112 */
														obj_t BgL_arg1370z00_1259;
														obj_t BgL_arg1371z00_1260;

														{	/* Eval/expdrecord.scm 112 */
															obj_t BgL_arg1372z00_1261;
															obj_t BgL_arg1373z00_1262;

															{	/* Eval/expdrecord.scm 112 */
																obj_t BgL_pairz00_1803;

																{	/* Eval/expdrecord.scm 112 */
																	obj_t BgL_pairz00_1802;

																	BgL_pairz00_1802 =
																		CDR(((obj_t) BgL_fieldz00_1227));
																	BgL_pairz00_1803 = CDR(BgL_pairz00_1802);
																}
																BgL_arg1372z00_1261 = CAR(BgL_pairz00_1803);
															}
															{	/* Eval/expdrecord.scm 112 */
																obj_t BgL_arg1374z00_1263;

																BgL_arg1374z00_1263 =
																	MAKE_YOUNG_PAIR(BgL_valz00_2110, BNIL);
																BgL_arg1373z00_1262 =
																	MAKE_YOUNG_PAIR(BgL_tmpz00_2109,
																	BgL_arg1374z00_1263);
															}
															BgL_arg1370z00_1259 =
																MAKE_YOUNG_PAIR(BgL_arg1372z00_1261,
																BgL_arg1373z00_1262);
														}
														{	/* Eval/expdrecord.scm 113 */
															obj_t BgL_arg1376z00_1264;

															{	/* Eval/expdrecord.scm 113 */
																obj_t BgL_arg1377z00_1265;

																{	/* Eval/expdrecord.scm 113 */
																	obj_t BgL_arg1378z00_1266;

																	{	/* Eval/expdrecord.scm 113 */
																		obj_t BgL_arg1379z00_1267;

																		BgL_arg1379z00_1267 =
																			MAKE_YOUNG_PAIR(BgL_valz00_2110, BNIL);
																		BgL_arg1378z00_1266 =
																			MAKE_YOUNG_PAIR(BgL_iz00_1224,
																			BgL_arg1379z00_1267);
																	}
																	BgL_arg1377z00_1265 =
																		MAKE_YOUNG_PAIR(BgL_tmpz00_2109,
																		BgL_arg1378z00_1266);
																}
																BgL_arg1376z00_1264 =
																	MAKE_YOUNG_PAIR
																	(BGl_symbol1807z00zz__expander_recordz00,
																	BgL_arg1377z00_1265);
															}
															BgL_arg1371z00_1260 =
																MAKE_YOUNG_PAIR(BgL_arg1376z00_1264, BNIL);
														}
														BgL_arg1369z00_1258 =
															MAKE_YOUNG_PAIR(BgL_arg1370z00_1259,
															BgL_arg1371z00_1260);
													}
													BgL_arg1368z00_1257 =
														MAKE_YOUNG_PAIR
														(BGl_symbol1789z00zz__expander_recordz00,
														BgL_arg1369z00_1258);
												}
												BgL_arg1359z00_1248 =
													MAKE_YOUNG_PAIR(BgL_arg1368z00_1257, BNIL);
											}
											BgL_arg1357z00_1246 =
												MAKE_YOUNG_PAIR(BgL_arg1358z00_1247,
												BgL_arg1359z00_1248);
										}
										BgL_arg1355z00_1244 =
											MAKE_YOUNG_PAIR(BGl_symbol1785z00zz__expander_recordz00,
											BgL_arg1357z00_1246);
									}
									{	/* Eval/expdrecord.scm 114 */
										obj_t BgL_arg1380z00_1268;
										obj_t BgL_arg1381z00_1269;

										BgL_arg1380z00_1268 = CDR(((obj_t) BgL_fieldsz00_1223));
										if (INTEGERP(BgL_iz00_1224))
											{	/* Eval/expdrecord.scm 114 */
												obj_t BgL_tmpz00_1807;

												BgL_tmpz00_1807 = BINT(0L);
												{	/* Eval/expdrecord.scm 114 */
													bool_t BgL_test1862z00_2412;

													{	/* Eval/expdrecord.scm 114 */
														obj_t BgL_tmpz00_2413;

														BgL_tmpz00_2413 = BINT(1L);
														BgL_test1862z00_2412 =
															BGL_ADDFX_OV(BgL_iz00_1224, BgL_tmpz00_2413,
															BgL_tmpz00_1807);
													}
													if (BgL_test1862z00_2412)
														{	/* Eval/expdrecord.scm 114 */
															BgL_arg1381z00_1269 =
																bgl_bignum_add(bgl_long_to_bignum(
																	(long) CINT(BgL_iz00_1224)),
																bgl_long_to_bignum(1L));
														}
													else
														{	/* Eval/expdrecord.scm 114 */
															BgL_arg1381z00_1269 = BgL_tmpz00_1807;
														}
												}
											}
										else
											{	/* Eval/expdrecord.scm 114 */
												BgL_arg1381z00_1269 =
													BGl_2zb2zb2zz__r4_numbers_6_5z00(BgL_iz00_1224,
													BINT(1L));
											}
										BgL_arg1356z00_1245 =
											BGl_loopze71ze7zz__expander_recordz00(BgL_valz00_2110,
											BgL_tmpz00_2109, BgL_arg1380z00_1268,
											BgL_arg1381z00_1269);
									}
									return
										MAKE_YOUNG_PAIR(BgL_arg1355z00_1244, BgL_arg1356z00_1245);
								}
							else
								{	/* Eval/expdrecord.scm 124 */
									obj_t BgL_locz00_1815;

									if (EPAIRP(BgL_fieldz00_1227))
										{	/* Eval/expdrecord.scm 124 */
											BgL_locz00_1815 = CER(((obj_t) BgL_fieldz00_1227));
										}
									else
										{	/* Eval/expdrecord.scm 124 */
											BgL_locz00_1815 = BFALSE;
										}
									{	/* Eval/expdrecord.scm 125 */
										bool_t BgL_test1864z00_2428;

										if (PAIRP(BgL_locz00_1815))
											{	/* Eval/expdrecord.scm 125 */
												bool_t BgL_test1866z00_2431;

												{	/* Eval/expdrecord.scm 125 */
													obj_t BgL_tmpz00_2432;

													BgL_tmpz00_2432 = CDR(BgL_locz00_1815);
													BgL_test1866z00_2431 = PAIRP(BgL_tmpz00_2432);
												}
												if (BgL_test1866z00_2431)
													{	/* Eval/expdrecord.scm 125 */
														obj_t BgL_tmpz00_2435;

														BgL_tmpz00_2435 = CDR(CDR(BgL_locz00_1815));
														BgL_test1864z00_2428 = PAIRP(BgL_tmpz00_2435);
													}
												else
													{	/* Eval/expdrecord.scm 125 */
														BgL_test1864z00_2428 = ((bool_t) 0);
													}
											}
										else
											{	/* Eval/expdrecord.scm 125 */
												BgL_test1864z00_2428 = ((bool_t) 0);
											}
										if (BgL_test1864z00_2428)
											{	/* Eval/expdrecord.scm 125 */
												return
													BGl_errorzf2locationzf2zz__errorz00(BFALSE,
													BGl_string1811z00zz__expander_recordz00,
													BgL_fieldz00_1227, CAR(CDR(BgL_locz00_1815)),
													CAR(CDR(CDR(BgL_locz00_1815))));
											}
										else
											{	/* Eval/expdrecord.scm 125 */
												return
													BGl_errorz00zz__errorz00(BFALSE,
													BGl_string1811z00zz__expander_recordz00,
													BgL_fieldz00_1227);
											}
									}
								}
						}
				}
		}

	}



/* expand-error */
	obj_t BGl_expandzd2errorzd2zz__expander_recordz00(bool_t BgL_pz00_9,
		obj_t BgL_mz00_10, obj_t BgL_xz00_11)
	{
		{	/* Eval/expdrecord.scm 123 */
			{	/* Eval/expdrecord.scm 124 */
				obj_t BgL_locz00_1278;

				if (EPAIRP(BgL_xz00_11))
					{	/* Eval/expdrecord.scm 124 */
						BgL_locz00_1278 = CER(((obj_t) BgL_xz00_11));
					}
				else
					{	/* Eval/expdrecord.scm 124 */
						BgL_locz00_1278 = BFALSE;
					}
				{	/* Eval/expdrecord.scm 125 */
					bool_t BgL_test1868z00_2450;

					if (PAIRP(BgL_locz00_1278))
						{	/* Eval/expdrecord.scm 125 */
							bool_t BgL_test1870z00_2453;

							{	/* Eval/expdrecord.scm 125 */
								obj_t BgL_tmpz00_2454;

								BgL_tmpz00_2454 = CDR(BgL_locz00_1278);
								BgL_test1870z00_2453 = PAIRP(BgL_tmpz00_2454);
							}
							if (BgL_test1870z00_2453)
								{	/* Eval/expdrecord.scm 125 */
									obj_t BgL_tmpz00_2457;

									BgL_tmpz00_2457 = CDR(CDR(BgL_locz00_1278));
									BgL_test1868z00_2450 = PAIRP(BgL_tmpz00_2457);
								}
							else
								{	/* Eval/expdrecord.scm 125 */
									BgL_test1868z00_2450 = ((bool_t) 0);
								}
						}
					else
						{	/* Eval/expdrecord.scm 125 */
							BgL_test1868z00_2450 = ((bool_t) 0);
						}
					if (BgL_test1868z00_2450)
						{	/* Eval/expdrecord.scm 125 */
							return
								BGl_errorzf2locationzf2zz__errorz00(BBOOL(BgL_pz00_9),
								BgL_mz00_10, BgL_xz00_11, CAR(CDR(BgL_locz00_1278)),
								CAR(CDR(CDR(BgL_locz00_1278))));
						}
					else
						{	/* Eval/expdrecord.scm 125 */
							return
								BGl_errorz00zz__errorz00(BBOOL(BgL_pz00_9), BgL_mz00_10,
								BgL_xz00_11);
						}
				}
			}
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zz__expander_recordz00(void)
	{
		{	/* Eval/expdrecord.scm 18 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zz__expander_recordz00(void)
	{
		{	/* Eval/expdrecord.scm 18 */
			return BUNSPEC;
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zz__expander_recordz00(void)
	{
		{	/* Eval/expdrecord.scm 18 */
			return BUNSPEC;
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zz__expander_recordz00(void)
	{
		{	/* Eval/expdrecord.scm 18 */
			BGl_modulezd2initializa7ationz75zz__errorz00(88804785L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__biglooz00(348684831L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__tvectorz00(135276775L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__structurez00(128205792L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__bexitz00(443005284L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__bignumz00(289561787L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__paramz00(453939141L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__objectz00(475449627L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__threadz00(149516032L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__match_normaliza7eza7(515155867L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5z00(26840973L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(457511469L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_flonumz00(362050511L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_flonum_dtoaz00
				(268155843L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__r4_characters_6_6z00(198620800L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(111613887L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__r4_booleans_6_1z00(459519430L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(115192690L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00((-44273703L),
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(9614678L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__r4_control_features_6_9z00(376927882L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(43892022L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(185672289L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(86988580L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
			return BGl_modulezd2initializa7ationz75zz__prognz00(177147622L,
				BSTRING_TO_STRING(BGl_string1812z00zz__expander_recordz00));
		}

	}

#ifdef __cplusplus
}
#endif
