/*===========================================================================*/
/*   (Llib/struct.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 Llib/struct.scm -indent -o objs/obj_u/Llib/struct.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___STRUCTURE_TYPE_DEFINITIONS
#define BGL___STRUCTURE_TYPE_DEFINITIONS
#endif													// BGL___STRUCTURE_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	BGL_EXPORTED_DECL obj_t BGl_structzd2refzd2zz__structurez00(obj_t, int);
	static obj_t BGl_z62makezd2structzb0zz__structurez00(obj_t, obj_t, obj_t,
		obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zz__structurez00 = BUNSPEC;
	static obj_t BGl_z62listzd2ze3structz53zz__structurez00(obj_t, obj_t);
	BGL_EXPORTED_DECL int BGl_structzd2lengthzd2zz__structurez00(obj_t);
	static obj_t BGl_z62structzd2refzb0zz__structurez00(obj_t, obj_t, obj_t);
	extern obj_t BGl_typezd2errorzd2zz__errorz00(obj_t, obj_t, obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zz__structurez00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
	BGL_EXPORTED_DECL obj_t BGl_structzd2keyzd2zz__structurez00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_listzd2ze3structz31zz__structurez00(obj_t);
	static obj_t BGl_z62structzd2keyzb0zz__structurez00(obj_t, obj_t);
	static obj_t BGl_cnstzd2initzd2zz__structurez00(void);
	extern long bgl_list_length(obj_t);
	static obj_t BGl_importedzd2moduleszd2initz00zz__structurez00(void);
	static obj_t BGl_gczd2rootszd2initz00zz__structurez00(void);
	static obj_t BGl_z62structzd2lengthzb0zz__structurez00(obj_t, obj_t);
	static obj_t BGl_z62structzd2updatez12za2zz__structurez00(obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL bool_t BGl_recordzf3zf3zz__structurez00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_structzd2setz12zc0zz__structurez00(obj_t, int,
		obj_t);
	static obj_t BGl_z62recordzf3z91zz__structurez00(obj_t, obj_t);
	static obj_t BGl_symbol1518z00zz__structurez00 = BUNSPEC;
	BGL_EXPORTED_DECL obj_t BGl_makezd2structzd2zz__structurez00(obj_t, int,
		obj_t);
	BGL_EXPORTED_DECL bool_t BGl_structzf3zf3zz__structurez00(obj_t);
	static obj_t BGl_z62structzf3z91zz__structurez00(obj_t, obj_t);
	extern obj_t bstring_to_symbol(obj_t);
	static obj_t BGl_z62structzd2ze3listz53zz__structurez00(obj_t, obj_t);
	extern obj_t make_struct(obj_t, int, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_structzd2keyzd2setz12z12zz__structurez00(obj_t,
		obj_t);
	static obj_t BGl_z62structzd2keyzd2setz12z70zz__structurez00(obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t BGl_structzd2ze3listz31zz__structurez00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_structzd2updatez12zc0zz__structurez00(obj_t,
		obj_t);
	static obj_t BGl_z62structzd2setz12za2zz__structurez00(obj_t, obj_t, obj_t,
		obj_t);
	extern obj_t BGl_errorz00zz__errorz00(obj_t, obj_t, obj_t);
	static obj_t *__cnst;


	   
		 
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_structzd2lengthzd2envz00zz__structurez00,
		BgL_bgl_za762structza7d2leng1524z00,
		BGl_z62structzd2lengthzb0zz__structurez00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_structzd2setz12zd2envz12zz__structurez00,
		BgL_bgl_za762structza7d2setza71525za7,
		BGl_z62structzd2setz12za2zz__structurez00, 0L, BUNSPEC, 3);
	      BGL_DEFINE_STRING(BGl_string1504z00zz__structurez00,
		BgL_bgl_string1504za700za7za7_1526za7,
		"/tmp/bigloo/runtime/Llib/struct.scm", 35);
	      BGL_DEFINE_STRING(BGl_string1505z00zz__structurez00,
		BgL_bgl_string1505za700za7za7_1527za7, "&make-struct", 12);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_listzd2ze3structzd2envze3zz__structurez00,
		BgL_bgl_za762listza7d2za7e3str1528za7,
		BGl_z62listzd2ze3structz53zz__structurez00, 0L, BUNSPEC, 1);
	      BGL_DEFINE_STRING(BGl_string1506z00zz__structurez00,
		BgL_bgl_string1506za700za7za7_1529za7, "symbol", 6);
	      BGL_DEFINE_STRING(BGl_string1507z00zz__structurez00,
		BgL_bgl_string1507za700za7za7_1530za7, "bint", 4);
	      BGL_DEFINE_STRING(BGl_string1508z00zz__structurez00,
		BgL_bgl_string1508za700za7za7_1531za7, "&struct-key", 11);
	      BGL_DEFINE_STRING(BGl_string1509z00zz__structurez00,
		BgL_bgl_string1509za700za7za7_1532za7, "struct", 6);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_structzd2updatez12zd2envz12zz__structurez00,
		BgL_bgl_za762structza7d2upda1533z00,
		BGl_z62structzd2updatez12za2zz__structurez00, 0L, BUNSPEC, 2);
	      BGL_DEFINE_STRING(BGl_string1510z00zz__structurez00,
		BgL_bgl_string1510za700za7za7_1534za7, "&struct-key-set!", 16);
	      BGL_DEFINE_STRING(BGl_string1511z00zz__structurez00,
		BgL_bgl_string1511za700za7za7_1535za7, "&struct-length", 14);
	      BGL_DEFINE_STRING(BGl_string1512z00zz__structurez00,
		BgL_bgl_string1512za700za7za7_1536za7, "&struct-ref", 11);
	      BGL_DEFINE_STRING(BGl_string1513z00zz__structurez00,
		BgL_bgl_string1513za700za7za7_1537za7, "&struct-set!", 12);
	      BGL_DEFINE_STRING(BGl_string1514z00zz__structurez00,
		BgL_bgl_string1514za700za7za7_1538za7, "struct-update!", 14);
	      BGL_DEFINE_STRING(BGl_string1515z00zz__structurez00,
		BgL_bgl_string1515za700za7za7_1539za7, "Incompatible structures", 23);
	      BGL_DEFINE_STRING(BGl_string1516z00zz__structurez00,
		BgL_bgl_string1516za700za7za7_1540za7, "&struct-update!", 15);
	      BGL_DEFINE_STRING(BGl_string1517z00zz__structurez00,
		BgL_bgl_string1517za700za7za7_1541za7, "&struct->list", 13);
	      BGL_DEFINE_STRING(BGl_string1519z00zz__structurez00,
		BgL_bgl_string1519za700za7za7_1542za7, "list->struct", 12);
	      BGL_DEFINE_STRING(BGl_string1520z00zz__structurez00,
		BgL_bgl_string1520za700za7za7_1543za7, "Illegal struct key", 18);
	      BGL_DEFINE_STRING(BGl_string1521z00zz__structurez00,
		BgL_bgl_string1521za700za7za7_1544za7, "&list->struct", 13);
	      BGL_DEFINE_STRING(BGl_string1522z00zz__structurez00,
		BgL_bgl_string1522za700za7za7_1545za7, "pair", 4);
	      BGL_DEFINE_STRING(BGl_string1523z00zz__structurez00,
		BgL_bgl_string1523za700za7za7_1546za7, "__structure", 11);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_makezd2structzd2envz00zz__structurez00,
		BgL_bgl_za762makeza7d2struct1547z00,
		BGl_z62makezd2structzb0zz__structurez00, 0L, BUNSPEC, 3);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_structzf3zd2envz21zz__structurez00,
		BgL_bgl_za762structza7f3za791za71548z00,
		BGl_z62structzf3z91zz__structurez00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_structzd2ze3listzd2envze3zz__structurez00,
		BgL_bgl_za762structza7d2za7e3l1549za7,
		BGl_z62structzd2ze3listz53zz__structurez00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_structzd2refzd2envz00zz__structurez00,
		BgL_bgl_za762structza7d2refza71550za7,
		BGl_z62structzd2refzb0zz__structurez00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_structzd2keyzd2setz12zd2envzc0zz__structurez00,
		BgL_bgl_za762structza7d2keyza71551za7,
		BGl_z62structzd2keyzd2setz12z70zz__structurez00, 0L, BUNSPEC, 2);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_structzd2keyzd2envz00zz__structurez00,
		BgL_bgl_za762structza7d2keyza71552za7,
		BGl_z62structzd2keyzb0zz__structurez00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_recordzf3zd2envz21zz__structurez00,
		BgL_bgl_za762recordza7f3za791za71553z00,
		BGl_z62recordzf3z91zz__structurez00, 0L, BUNSPEC, 1);

/* contant bindings */
	static void bgl_constant_bindings()
	{
		BGL_BIND_PROCEDURE(BGl_recordzf3zd2envz21zz__structurez00,
			BgL_bgl_za762recordza7f3za791za71553z00);
		BGL_BIND_PROCEDURE(BGl_structzd2keyzd2envz00zz__structurez00,
			BgL_bgl_za762structza7d2keyza71552za7);
		BGL_BIND_PROCEDURE(BGl_structzd2keyzd2setz12zd2envzc0zz__structurez00,
			BgL_bgl_za762structza7d2keyza71551za7);
		BGL_BIND_PROCEDURE(BGl_structzd2refzd2envz00zz__structurez00,
			BgL_bgl_za762structza7d2refza71550za7);
		BGL_BIND_PROCEDURE(BGl_structzd2ze3listzd2envze3zz__structurez00,
			BgL_bgl_za762structza7d2za7e3l1549za7);
		BGL_BIND_PROCEDURE(BGl_structzf3zd2envz21zz__structurez00,
			BgL_bgl_za762structza7f3za791za71548z00);
		BGL_BIND_PROCEDURE(BGl_makezd2structzd2envz00zz__structurez00,
			BgL_bgl_za762makeza7d2struct1547z00);
		BGL_BIND_STRING(BGl_string1523z00zz__structurez00,
			BgL_bgl_string1523za700za7za7_1546za7);
		BGL_BIND_STRING(BGl_string1522z00zz__structurez00,
			BgL_bgl_string1522za700za7za7_1545za7);
		BGL_BIND_STRING(BGl_string1521z00zz__structurez00,
			BgL_bgl_string1521za700za7za7_1544za7);
		BGL_BIND_STRING(BGl_string1520z00zz__structurez00,
			BgL_bgl_string1520za700za7za7_1543za7);
		BGL_BIND_STRING(BGl_string1519z00zz__structurez00,
			BgL_bgl_string1519za700za7za7_1542za7);
		BGL_BIND_STRING(BGl_string1517z00zz__structurez00,
			BgL_bgl_string1517za700za7za7_1541za7);
		BGL_BIND_STRING(BGl_string1516z00zz__structurez00,
			BgL_bgl_string1516za700za7za7_1540za7);
		BGL_BIND_STRING(BGl_string1515z00zz__structurez00,
			BgL_bgl_string1515za700za7za7_1539za7);
		BGL_BIND_STRING(BGl_string1514z00zz__structurez00,
			BgL_bgl_string1514za700za7za7_1538za7);
		BGL_BIND_STRING(BGl_string1513z00zz__structurez00,
			BgL_bgl_string1513za700za7za7_1537za7);
		BGL_BIND_STRING(BGl_string1512z00zz__structurez00,
			BgL_bgl_string1512za700za7za7_1536za7);
		BGL_BIND_STRING(BGl_string1511z00zz__structurez00,
			BgL_bgl_string1511za700za7za7_1535za7);
		BGL_BIND_STRING(BGl_string1510z00zz__structurez00,
			BgL_bgl_string1510za700za7za7_1534za7);
		BGL_BIND_PROCEDURE(BGl_structzd2updatez12zd2envz12zz__structurez00,
			BgL_bgl_za762structza7d2upda1533z00);
		BGL_BIND_STRING(BGl_string1509z00zz__structurez00,
			BgL_bgl_string1509za700za7za7_1532za7);
		BGL_BIND_STRING(BGl_string1508z00zz__structurez00,
			BgL_bgl_string1508za700za7za7_1531za7);
		BGL_BIND_STRING(BGl_string1507z00zz__structurez00,
			BgL_bgl_string1507za700za7za7_1530za7);
		BGL_BIND_STRING(BGl_string1506z00zz__structurez00,
			BgL_bgl_string1506za700za7za7_1529za7);
		BGL_BIND_PROCEDURE(BGl_listzd2ze3structzd2envze3zz__structurez00,
			BgL_bgl_za762listza7d2za7e3str1528za7);
		BGL_BIND_STRING(BGl_string1505z00zz__structurez00,
			BgL_bgl_string1505za700za7za7_1527za7);
		BGL_BIND_STRING(BGl_string1504z00zz__structurez00,
			BgL_bgl_string1504za700za7za7_1526za7);
		BGL_BIND_PROCEDURE(BGl_structzd2setz12zd2envz12zz__structurez00,
			BgL_bgl_za762structza7d2setza71525za7);
		BGL_BIND_PROCEDURE(BGl_structzd2lengthzd2envz00zz__structurez00,
			BgL_bgl_za762structza7d2leng1524z00);
	}

/* 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__structurez00));
		ADD_ROOT((void *) (&BGl_symbol1518z00zz__structurez00));
#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__structurez00(long
		BgL_checksumz00_1285, char *BgL_fromz00_1286)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zz__structurez00))
				{
					BGl_requirezd2initializa7ationz75zz__structurez00 =
						BBOOL(((bool_t) 0));
					bgl_constant_bindings();
					BGl_gczd2rootszd2initz00zz__structurez00();
					BGl_cnstzd2initzd2zz__structurez00();
					return BGl_importedzd2moduleszd2initz00zz__structurez00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zz__structurez00(void)
	{
		{	/* Llib/struct.scm 18 */
			return (BGl_symbol1518z00zz__structurez00 =
				bstring_to_symbol(BGl_string1519z00zz__structurez00), BUNSPEC);
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zz__structurez00(void)
	{
		{	/* Llib/struct.scm 18 */
			return bgl_gc_roots_register();
		}

	}



/* make-struct */
	BGL_EXPORTED_DEF obj_t BGl_makezd2structzd2zz__structurez00(obj_t
		BgL_keyz00_3, int BgL_lenz00_4, obj_t BgL_initz00_5)
	{
		{	/* Llib/struct.scm 119 */
			BGL_TAIL return make_struct(BgL_keyz00_3, BgL_lenz00_4, BgL_initz00_5);
		}

	}



/* &make-struct */
	obj_t BGl_z62makezd2structzb0zz__structurez00(obj_t BgL_envz00_1230,
		obj_t BgL_keyz00_1231, obj_t BgL_lenz00_1232, obj_t BgL_initz00_1233)
	{
		{	/* Llib/struct.scm 119 */
			{	/* Llib/struct.scm 120 */
				int BgL_auxz00_1304;
				obj_t BgL_auxz00_1297;

				{	/* Llib/struct.scm 120 */
					obj_t BgL_tmpz00_1305;

					if (INTEGERP(BgL_lenz00_1232))
						{	/* Llib/struct.scm 120 */
							BgL_tmpz00_1305 = BgL_lenz00_1232;
						}
					else
						{
							obj_t BgL_auxz00_1308;

							BgL_auxz00_1308 =
								BGl_typezd2errorzd2zz__errorz00
								(BGl_string1504z00zz__structurez00, BINT(5088L),
								BGl_string1505z00zz__structurez00,
								BGl_string1507z00zz__structurez00, BgL_lenz00_1232);
							FAILURE(BgL_auxz00_1308, BFALSE, BFALSE);
						}
					BgL_auxz00_1304 = CINT(BgL_tmpz00_1305);
				}
				if (SYMBOLP(BgL_keyz00_1231))
					{	/* Llib/struct.scm 120 */
						BgL_auxz00_1297 = BgL_keyz00_1231;
					}
				else
					{
						obj_t BgL_auxz00_1300;

						BgL_auxz00_1300 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1504z00zz__structurez00,
							BINT(5088L), BGl_string1505z00zz__structurez00,
							BGl_string1506z00zz__structurez00, BgL_keyz00_1231);
						FAILURE(BgL_auxz00_1300, BFALSE, BFALSE);
					}
				return
					BGl_makezd2structzd2zz__structurez00(BgL_auxz00_1297, BgL_auxz00_1304,
					BgL_initz00_1233);
			}
		}

	}



/* struct? */
	BGL_EXPORTED_DEF bool_t BGl_structzf3zf3zz__structurez00(obj_t BgL_oz00_6)
	{
		{	/* Llib/struct.scm 125 */
			return STRUCTP(BgL_oz00_6);
		}

	}



/* &struct? */
	obj_t BGl_z62structzf3z91zz__structurez00(obj_t BgL_envz00_1234,
		obj_t BgL_oz00_1235)
	{
		{	/* Llib/struct.scm 125 */
			return BBOOL(BGl_structzf3zf3zz__structurez00(BgL_oz00_1235));
		}

	}



/* record? */
	BGL_EXPORTED_DEF bool_t BGl_recordzf3zf3zz__structurez00(obj_t BgL_oz00_7)
	{
		{	/* Llib/struct.scm 131 */
			return STRUCTP(BgL_oz00_7);
		}

	}



/* &record? */
	obj_t BGl_z62recordzf3z91zz__structurez00(obj_t BgL_envz00_1236,
		obj_t BgL_oz00_1237)
	{
		{	/* Llib/struct.scm 131 */
			return BBOOL(BGl_recordzf3zf3zz__structurez00(BgL_oz00_1237));
		}

	}



/* struct-key */
	BGL_EXPORTED_DEF obj_t BGl_structzd2keyzd2zz__structurez00(obj_t BgL_sz00_8)
	{
		{	/* Llib/struct.scm 137 */
			return STRUCT_KEY(BgL_sz00_8);
		}

	}



/* &struct-key */
	obj_t BGl_z62structzd2keyzb0zz__structurez00(obj_t BgL_envz00_1238,
		obj_t BgL_sz00_1239)
	{
		{	/* Llib/struct.scm 137 */
			{	/* Llib/struct.scm 138 */
				obj_t BgL_auxz00_1321;

				if (STRUCTP(BgL_sz00_1239))
					{	/* Llib/struct.scm 138 */
						BgL_auxz00_1321 = BgL_sz00_1239;
					}
				else
					{
						obj_t BgL_auxz00_1324;

						BgL_auxz00_1324 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1504z00zz__structurez00,
							BINT(5907L), BGl_string1508z00zz__structurez00,
							BGl_string1509z00zz__structurez00, BgL_sz00_1239);
						FAILURE(BgL_auxz00_1324, BFALSE, BFALSE);
					}
				return BGl_structzd2keyzd2zz__structurez00(BgL_auxz00_1321);
			}
		}

	}



/* struct-key-set! */
	BGL_EXPORTED_DEF obj_t BGl_structzd2keyzd2setz12z12zz__structurez00(obj_t
		BgL_sz00_9, obj_t BgL_kz00_10)
	{
		{	/* Llib/struct.scm 143 */
			return STRUCT_KEY_SET(BgL_sz00_9, BgL_kz00_10);
		}

	}



/* &struct-key-set! */
	obj_t BGl_z62structzd2keyzd2setz12z70zz__structurez00(obj_t BgL_envz00_1240,
		obj_t BgL_sz00_1241, obj_t BgL_kz00_1242)
	{
		{	/* Llib/struct.scm 143 */
			{	/* Llib/struct.scm 144 */
				obj_t BgL_auxz00_1337;
				obj_t BgL_auxz00_1330;

				if (SYMBOLP(BgL_kz00_1242))
					{	/* Llib/struct.scm 144 */
						BgL_auxz00_1337 = BgL_kz00_1242;
					}
				else
					{
						obj_t BgL_auxz00_1340;

						BgL_auxz00_1340 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1504z00zz__structurez00,
							BINT(6187L), BGl_string1510z00zz__structurez00,
							BGl_string1506z00zz__structurez00, BgL_kz00_1242);
						FAILURE(BgL_auxz00_1340, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_sz00_1241))
					{	/* Llib/struct.scm 144 */
						BgL_auxz00_1330 = BgL_sz00_1241;
					}
				else
					{
						obj_t BgL_auxz00_1333;

						BgL_auxz00_1333 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1504z00zz__structurez00,
							BINT(6187L), BGl_string1510z00zz__structurez00,
							BGl_string1509z00zz__structurez00, BgL_sz00_1241);
						FAILURE(BgL_auxz00_1333, BFALSE, BFALSE);
					}
				return
					BGl_structzd2keyzd2setz12z12zz__structurez00(BgL_auxz00_1330,
					BgL_auxz00_1337);
			}
		}

	}



/* struct-length */
	BGL_EXPORTED_DEF int BGl_structzd2lengthzd2zz__structurez00(obj_t BgL_sz00_11)
	{
		{	/* Llib/struct.scm 149 */
			return STRUCT_LENGTH(BgL_sz00_11);
		}

	}



/* &struct-length */
	obj_t BGl_z62structzd2lengthzb0zz__structurez00(obj_t BgL_envz00_1243,
		obj_t BgL_sz00_1244)
	{
		{	/* Llib/struct.scm 149 */
			{	/* Llib/struct.scm 150 */
				int BgL_tmpz00_1346;

				{	/* Llib/struct.scm 150 */
					obj_t BgL_auxz00_1347;

					if (STRUCTP(BgL_sz00_1244))
						{	/* Llib/struct.scm 150 */
							BgL_auxz00_1347 = BgL_sz00_1244;
						}
					else
						{
							obj_t BgL_auxz00_1350;

							BgL_auxz00_1350 =
								BGl_typezd2errorzd2zz__errorz00
								(BGl_string1504z00zz__structurez00, BINT(6471L),
								BGl_string1511z00zz__structurez00,
								BGl_string1509z00zz__structurez00, BgL_sz00_1244);
							FAILURE(BgL_auxz00_1350, BFALSE, BFALSE);
						}
					BgL_tmpz00_1346 =
						BGl_structzd2lengthzd2zz__structurez00(BgL_auxz00_1347);
				}
				return BINT(BgL_tmpz00_1346);
			}
		}

	}



/* struct-ref */
	BGL_EXPORTED_DEF obj_t BGl_structzd2refzd2zz__structurez00(obj_t BgL_sz00_12,
		int BgL_kz00_13)
	{
		{	/* Llib/struct.scm 155 */
			return STRUCT_REF(BgL_sz00_12, BgL_kz00_13);
		}

	}



/* &struct-ref */
	obj_t BGl_z62structzd2refzb0zz__structurez00(obj_t BgL_envz00_1245,
		obj_t BgL_sz00_1246, obj_t BgL_kz00_1247)
	{
		{	/* Llib/struct.scm 155 */
			{	/* Llib/struct.scm 156 */
				int BgL_auxz00_1364;
				obj_t BgL_auxz00_1357;

				{	/* Llib/struct.scm 156 */
					obj_t BgL_tmpz00_1365;

					if (INTEGERP(BgL_kz00_1247))
						{	/* Llib/struct.scm 156 */
							BgL_tmpz00_1365 = BgL_kz00_1247;
						}
					else
						{
							obj_t BgL_auxz00_1368;

							BgL_auxz00_1368 =
								BGl_typezd2errorzd2zz__errorz00
								(BGl_string1504z00zz__structurez00, BINT(6753L),
								BGl_string1512z00zz__structurez00,
								BGl_string1507z00zz__structurez00, BgL_kz00_1247);
							FAILURE(BgL_auxz00_1368, BFALSE, BFALSE);
						}
					BgL_auxz00_1364 = CINT(BgL_tmpz00_1365);
				}
				if (STRUCTP(BgL_sz00_1246))
					{	/* Llib/struct.scm 156 */
						BgL_auxz00_1357 = BgL_sz00_1246;
					}
				else
					{
						obj_t BgL_auxz00_1360;

						BgL_auxz00_1360 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1504z00zz__structurez00,
							BINT(6753L), BGl_string1512z00zz__structurez00,
							BGl_string1509z00zz__structurez00, BgL_sz00_1246);
						FAILURE(BgL_auxz00_1360, BFALSE, BFALSE);
					}
				return
					BGl_structzd2refzd2zz__structurez00(BgL_auxz00_1357, BgL_auxz00_1364);
			}
		}

	}



/* struct-set! */
	BGL_EXPORTED_DEF obj_t BGl_structzd2setz12zc0zz__structurez00(obj_t
		BgL_sz00_14, int BgL_kz00_15, obj_t BgL_oz00_16)
	{
		{	/* Llib/struct.scm 161 */
			return STRUCT_SET(BgL_sz00_14, BgL_kz00_15, BgL_oz00_16);
		}

	}



/* &struct-set! */
	obj_t BGl_z62structzd2setz12za2zz__structurez00(obj_t BgL_envz00_1248,
		obj_t BgL_sz00_1249, obj_t BgL_kz00_1250, obj_t BgL_oz00_1251)
	{
		{	/* Llib/struct.scm 161 */
			{	/* Llib/struct.scm 162 */
				int BgL_auxz00_1382;
				obj_t BgL_auxz00_1375;

				{	/* Llib/struct.scm 162 */
					obj_t BgL_tmpz00_1383;

					if (INTEGERP(BgL_kz00_1250))
						{	/* Llib/struct.scm 162 */
							BgL_tmpz00_1383 = BgL_kz00_1250;
						}
					else
						{
							obj_t BgL_auxz00_1386;

							BgL_auxz00_1386 =
								BGl_typezd2errorzd2zz__errorz00
								(BGl_string1504z00zz__structurez00, BINT(7034L),
								BGl_string1513z00zz__structurez00,
								BGl_string1507z00zz__structurez00, BgL_kz00_1250);
							FAILURE(BgL_auxz00_1386, BFALSE, BFALSE);
						}
					BgL_auxz00_1382 = CINT(BgL_tmpz00_1383);
				}
				if (STRUCTP(BgL_sz00_1249))
					{	/* Llib/struct.scm 162 */
						BgL_auxz00_1375 = BgL_sz00_1249;
					}
				else
					{
						obj_t BgL_auxz00_1378;

						BgL_auxz00_1378 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1504z00zz__structurez00,
							BINT(7034L), BGl_string1513z00zz__structurez00,
							BGl_string1509z00zz__structurez00, BgL_sz00_1249);
						FAILURE(BgL_auxz00_1378, BFALSE, BFALSE);
					}
				return
					BGl_structzd2setz12zc0zz__structurez00(BgL_auxz00_1375,
					BgL_auxz00_1382, BgL_oz00_1251);
			}
		}

	}



/* struct-update! */
	BGL_EXPORTED_DEF obj_t BGl_structzd2updatez12zc0zz__structurez00(obj_t
		BgL_dstz00_17, obj_t BgL_srcz00_18)
	{
		{	/* Llib/struct.scm 167 */
			{	/* Llib/struct.scm 168 */
				bool_t BgL_test1565z00_1392;

				if ((STRUCT_KEY(BgL_dstz00_17) == STRUCT_KEY(BgL_srcz00_18)))
					{	/* Llib/struct.scm 168 */
						BgL_test1565z00_1392 =
							(
							(long) (STRUCT_LENGTH(BgL_dstz00_17)) ==
							(long) (STRUCT_LENGTH(BgL_srcz00_18)));
					}
				else
					{	/* Llib/struct.scm 168 */
						BgL_test1565z00_1392 = ((bool_t) 0);
					}
				if (BgL_test1565z00_1392)
					{	/* Llib/struct.scm 170 */
						long BgL_g1012z00_763;

						BgL_g1012z00_763 = ((long) (STRUCT_LENGTH(BgL_dstz00_17)) - 1L);
						{
							long BgL_iz00_765;

							BgL_iz00_765 = BgL_g1012z00_763;
						BgL_zc3z04anonymousza31069ze3z87_766:
							if ((BgL_iz00_765 == (-1L)))
								{	/* Llib/struct.scm 171 */
									return BgL_dstz00_17;
								}
							else
								{	/* Llib/struct.scm 171 */
									{	/* Llib/struct.scm 162 */
										obj_t BgL_auxz00_1409;
										int BgL_tmpz00_1407;

										BgL_auxz00_1409 =
											STRUCT_REF(BgL_srcz00_18, (int) (BgL_iz00_765));
										BgL_tmpz00_1407 = (int) (BgL_iz00_765);
										STRUCT_SET(BgL_dstz00_17, BgL_tmpz00_1407, BgL_auxz00_1409);
									}
									{
										long BgL_iz00_1413;

										BgL_iz00_1413 = (BgL_iz00_765 - 1L);
										BgL_iz00_765 = BgL_iz00_1413;
										goto BgL_zc3z04anonymousza31069ze3z87_766;
									}
								}
						}
					}
				else
					{	/* Llib/struct.scm 176 */
						obj_t BgL_arg1079z00_772;

						{	/* Llib/struct.scm 176 */
							obj_t BgL_list1080z00_773;

							{	/* Llib/struct.scm 176 */
								obj_t BgL_arg1081z00_774;

								BgL_arg1081z00_774 = MAKE_YOUNG_PAIR(BgL_srcz00_18, BNIL);
								BgL_list1080z00_773 =
									MAKE_YOUNG_PAIR(BgL_dstz00_17, BgL_arg1081z00_774);
							}
							BgL_arg1079z00_772 = BgL_list1080z00_773;
						}
						return
							BGl_errorz00zz__errorz00(BGl_string1514z00zz__structurez00,
							BGl_string1515z00zz__structurez00, BgL_arg1079z00_772);
					}
			}
		}

	}



/* &struct-update! */
	obj_t BGl_z62structzd2updatez12za2zz__structurez00(obj_t BgL_envz00_1252,
		obj_t BgL_dstz00_1253, obj_t BgL_srcz00_1254)
	{
		{	/* Llib/struct.scm 167 */
			{	/* Llib/struct.scm 168 */
				obj_t BgL_auxz00_1425;
				obj_t BgL_auxz00_1418;

				if (STRUCTP(BgL_srcz00_1254))
					{	/* Llib/struct.scm 168 */
						BgL_auxz00_1425 = BgL_srcz00_1254;
					}
				else
					{
						obj_t BgL_auxz00_1428;

						BgL_auxz00_1428 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1504z00zz__structurez00,
							BINT(7315L), BGl_string1516z00zz__structurez00,
							BGl_string1509z00zz__structurez00, BgL_srcz00_1254);
						FAILURE(BgL_auxz00_1428, BFALSE, BFALSE);
					}
				if (STRUCTP(BgL_dstz00_1253))
					{	/* Llib/struct.scm 168 */
						BgL_auxz00_1418 = BgL_dstz00_1253;
					}
				else
					{
						obj_t BgL_auxz00_1421;

						BgL_auxz00_1421 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1504z00zz__structurez00,
							BINT(7315L), BGl_string1516z00zz__structurez00,
							BGl_string1509z00zz__structurez00, BgL_dstz00_1253);
						FAILURE(BgL_auxz00_1421, BFALSE, BFALSE);
					}
				return
					BGl_structzd2updatez12zc0zz__structurez00(BgL_auxz00_1418,
					BgL_auxz00_1425);
			}
		}

	}



/* struct->list */
	BGL_EXPORTED_DEF obj_t BGl_structzd2ze3listz31zz__structurez00(obj_t
		BgL_structz00_19)
	{
		{	/* Llib/struct.scm 181 */
			{	/* Llib/struct.scm 182 */
				long BgL_g1013z00_780;

				BgL_g1013z00_780 = ((long) (STRUCT_LENGTH(BgL_structz00_19)) - 1L);
				{
					long BgL_iz00_1118;
					obj_t BgL_rz00_1119;

					BgL_iz00_1118 = BgL_g1013z00_780;
					BgL_rz00_1119 = BNIL;
				BgL_loopz00_1117:
					if ((BgL_iz00_1118 == (-1L)))
						{	/* Llib/struct.scm 184 */
							return
								MAKE_YOUNG_PAIR(STRUCT_KEY(BgL_structz00_19), BgL_rz00_1119);
						}
					else
						{	/* Llib/struct.scm 186 */
							long BgL_arg1096z00_1127;
							obj_t BgL_arg1097z00_1128;

							BgL_arg1096z00_1127 = (BgL_iz00_1118 - 1L);
							BgL_arg1097z00_1128 =
								MAKE_YOUNG_PAIR(STRUCT_REF(BgL_structz00_19,
									(int) (BgL_iz00_1118)), BgL_rz00_1119);
							{
								obj_t BgL_rz00_1445;
								long BgL_iz00_1444;

								BgL_iz00_1444 = BgL_arg1096z00_1127;
								BgL_rz00_1445 = BgL_arg1097z00_1128;
								BgL_rz00_1119 = BgL_rz00_1445;
								BgL_iz00_1118 = BgL_iz00_1444;
								goto BgL_loopz00_1117;
							}
						}
				}
			}
		}

	}



/* &struct->list */
	obj_t BGl_z62structzd2ze3listz53zz__structurez00(obj_t BgL_envz00_1255,
		obj_t BgL_structz00_1256)
	{
		{	/* Llib/struct.scm 181 */
			{	/* Llib/struct.scm 182 */
				obj_t BgL_auxz00_1446;

				if (STRUCTP(BgL_structz00_1256))
					{	/* Llib/struct.scm 182 */
						BgL_auxz00_1446 = BgL_structz00_1256;
					}
				else
					{
						obj_t BgL_auxz00_1449;

						BgL_auxz00_1449 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1504z00zz__structurez00,
							BINT(7906L), BGl_string1517z00zz__structurez00,
							BGl_string1509z00zz__structurez00, BgL_structz00_1256);
						FAILURE(BgL_auxz00_1449, BFALSE, BFALSE);
					}
				return BGl_structzd2ze3listz31zz__structurez00(BgL_auxz00_1446);
			}
		}

	}



/* list->struct */
	BGL_EXPORTED_DEF obj_t BGl_listzd2ze3structz31zz__structurez00(obj_t
		BgL_lstz00_20)
	{
		{	/* Llib/struct.scm 191 */
			{	/* Llib/struct.scm 195 */
				bool_t BgL_test1572z00_1454;

				{	/* Llib/struct.scm 195 */
					obj_t BgL_tmpz00_1455;

					BgL_tmpz00_1455 = CAR(BgL_lstz00_20);
					BgL_test1572z00_1454 = SYMBOLP(BgL_tmpz00_1455);
				}
				if (BgL_test1572z00_1454)
					{	/* Llib/struct.scm 198 */
						long BgL_lenz00_796;

						BgL_lenz00_796 = bgl_list_length(CDR(BgL_lstz00_20));
						{	/* Llib/struct.scm 198 */
							obj_t BgL_structz00_797;

							{	/* Llib/struct.scm 199 */
								obj_t BgL_arg1118z00_808;

								BgL_arg1118z00_808 = CAR(BgL_lstz00_20);
								{	/* Llib/struct.scm 199 */
									int BgL_lenz00_1140;

									BgL_lenz00_1140 = (int) (BgL_lenz00_796);
									BgL_structz00_797 =
										make_struct(
										((obj_t) BgL_arg1118z00_808), BgL_lenz00_1140, BUNSPEC);
							}}
							{	/* Llib/struct.scm 199 */

								{	/* Llib/struct.scm 200 */
									obj_t BgL_g1015z00_798;

									BgL_g1015z00_798 = CDR(BgL_lstz00_20);
									{
										long BgL_iz00_1161;
										obj_t BgL_lz00_1162;

										BgL_iz00_1161 = 0L;
										BgL_lz00_1162 = BgL_g1015z00_798;
									BgL_loopz00_1160:
										if (NULLP(BgL_lz00_1162))
											{	/* Llib/struct.scm 202 */
												return BgL_structz00_797;
											}
										else
											{	/* Llib/struct.scm 202 */
												{	/* Llib/struct.scm 205 */
													obj_t BgL_arg1115z00_1168;

													BgL_arg1115z00_1168 = CAR(((obj_t) BgL_lz00_1162));
													{	/* Llib/struct.scm 162 */
														int BgL_tmpz00_1469;

														BgL_tmpz00_1469 = (int) (BgL_iz00_1161);
														STRUCT_SET(BgL_structz00_797, BgL_tmpz00_1469,
															BgL_arg1115z00_1168);
												}}
												{	/* Llib/struct.scm 206 */
													long BgL_arg1116z00_1169;
													obj_t BgL_arg1117z00_1170;

													BgL_arg1116z00_1169 = (BgL_iz00_1161 + 1L);
													BgL_arg1117z00_1170 = CDR(((obj_t) BgL_lz00_1162));
													{
														obj_t BgL_lz00_1476;
														long BgL_iz00_1475;

														BgL_iz00_1475 = BgL_arg1116z00_1169;
														BgL_lz00_1476 = BgL_arg1117z00_1170;
														BgL_lz00_1162 = BgL_lz00_1476;
														BgL_iz00_1161 = BgL_iz00_1475;
														goto BgL_loopz00_1160;
													}
												}
											}
									}
								}
							}
						}
					}
				else
					{	/* Llib/struct.scm 196 */
						obj_t BgL_arg1121z00_810;

						BgL_arg1121z00_810 = CAR(BgL_lstz00_20);
						return
							BGl_errorz00zz__errorz00(BGl_symbol1518z00zz__structurez00,
							BGl_string1520z00zz__structurez00, BgL_arg1121z00_810);
					}
			}
		}

	}



/* &list->struct */
	obj_t BGl_z62listzd2ze3structz53zz__structurez00(obj_t BgL_envz00_1257,
		obj_t BgL_lstz00_1258)
	{
		{	/* Llib/struct.scm 191 */
			{	/* Llib/struct.scm 195 */
				obj_t BgL_auxz00_1479;

				if (PAIRP(BgL_lstz00_1258))
					{	/* Llib/struct.scm 195 */
						BgL_auxz00_1479 = BgL_lstz00_1258;
					}
				else
					{
						obj_t BgL_auxz00_1482;

						BgL_auxz00_1482 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1504z00zz__structurez00,
							BINT(8414L), BGl_string1521z00zz__structurez00,
							BGl_string1522z00zz__structurez00, BgL_lstz00_1258);
						FAILURE(BgL_auxz00_1482, BFALSE, BFALSE);
					}
				return BGl_listzd2ze3structz31zz__structurez00(BgL_auxz00_1479);
			}
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zz__structurez00(void)
	{
		{	/* Llib/struct.scm 18 */
			return
				BGl_modulezd2initializa7ationz75zz__errorz00(88804785L,
				BSTRING_TO_STRING(BGl_string1523z00zz__structurez00));
		}

	}

#ifdef __cplusplus
}
#endif
