/*===========================================================================*/
/*   (Foreign/library.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 Foreign/library.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_FOREIGN_LIBRARY_TYPE_DEFINITIONS
#define BGL_FOREIGN_LIBRARY_TYPE_DEFINITIONS

/* object type definitions */
	typedef struct BgL_valuez00_bgl
	{
		header_t header;
		obj_t widening;
	}               *BgL_valuez00_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_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;


#endif													// BGL_FOREIGN_LIBRARY_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	BGL_IMPORT obj_t BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(obj_t,
		obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zzforeign_libraryz00 = BUNSPEC;
	BGL_IMPORT obj_t BGl_za2classesza2z00zz__objectz00;
	static obj_t BGl_toplevelzd2initzd2zzforeign_libraryz00(void);
	static obj_t BGl_genericzd2initzd2zzforeign_libraryz00(void);
	static obj_t BGl_za2registeredzd2identza2zd2zzforeign_libraryz00 = BUNSPEC;
	static obj_t BGl_objectzd2initzd2zzforeign_libraryz00(void);
	BGL_IMPORT obj_t BGl_za2inheritancesza2z00zz__objectz00;
	static obj_t
		BGl_z62preparezd2foreignzd2accessz12z70zzforeign_libraryz00(obj_t);
	BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t, obj_t);
	static obj_t BGl_z62makezd2definezd2inlinez62zzforeign_libraryz00(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_appendzd221011zd2zzforeign_libraryz00(obj_t, obj_t);
	static obj_t BGl_methodzd2initzd2zzforeign_libraryz00(void);
	BGL_EXPORTED_DECL obj_t
		BGl_registerzd2foreignzd2accesszd2identsz12zc0zzforeign_libraryz00(obj_t);
	static obj_t
		BGl_z62registerzd2foreignzd2accesszd2identsz12za2zzforeign_libraryz00(obj_t,
		obj_t);
	extern obj_t BGl_findzd2globalzd2zzast_envz00(obj_t, obj_t);
	BGL_IMPORT obj_t BGl_errorz00zz__errorz00(obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_modulezd2initializa7ationz75zzforeign_libraryz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_envz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(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__errorz00(long, char *);
	BGL_EXPORTED_DECL obj_t
		BGl_makezd2protozd2inlinez00zzforeign_libraryz00(obj_t);
	static obj_t BGl_cnstzd2initzd2zzforeign_libraryz00(void);
	static obj_t BGl_libraryzd2moduleszd2initz00zzforeign_libraryz00(void);
	static obj_t BGl_importedzd2moduleszd2initz00zzforeign_libraryz00(void);
	static obj_t BGl_gczd2rootszd2initz00zzforeign_libraryz00(void);
	BGL_EXPORTED_DECL obj_t
		BGl_makezd2definezd2inlinez00zzforeign_libraryz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_preparezd2foreignzd2accessz12z12zzforeign_libraryz00(void);
	extern obj_t BGl_globalz00zzast_varz00;
	static obj_t BGl_z62makezd2protozd2inlinez62zzforeign_libraryz00(obj_t,
		obj_t);
	static obj_t __cnst[4];


	   
		 
		DEFINE_STRING(BGl_string1376z00zzforeign_libraryz00,
		BgL_bgl_string1376za700za7za7f1398za7, "prepare-foreign-access!", 23);
	      DEFINE_STRING(BGl_string1377z00zzforeign_libraryz00,
		BgL_bgl_string1377za700za7za7f1399za7, "Can't find global", 17);
	      DEFINE_STRING(BGl_string1378z00zzforeign_libraryz00,
		BgL_bgl_string1378za700za7za7f1400za7, "foreign_library", 15);
	      DEFINE_STRING(BGl_string1379z00zzforeign_libraryz00,
		BgL_bgl_string1379za700za7za7f1401za7,
		"foreign export inline define-inline ", 36);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_registerzd2foreignzd2accesszd2identsz12zd2envz12zzforeign_libraryz00,
		BgL_bgl_za762registerza7d2fo1402z00, va_generic_entry,
		BGl_z62registerzd2foreignzd2accesszd2identsz12za2zzforeign_libraryz00,
		BUNSPEC, -1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_preparezd2foreignzd2accessz12zd2envzc0zzforeign_libraryz00,
		BgL_bgl_za762prepareza7d2for1403z00,
		BGl_z62preparezd2foreignzd2accessz12z70zzforeign_libraryz00, 0L, BUNSPEC,
		0);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_makezd2protozd2inlinezd2envzd2zzforeign_libraryz00,
		BgL_bgl_za762makeza7d2protoza71404za7,
		BGl_z62makezd2protozd2inlinez62zzforeign_libraryz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_makezd2definezd2inlinezd2envzd2zzforeign_libraryz00,
		BgL_bgl_za762makeza7d2define1405z00,
		BGl_z62makezd2definezd2inlinez62zzforeign_libraryz00, 0L, BUNSPEC, 2);

/* 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_requirezd2initializa7ationz75zzforeign_libraryz00));
		     ADD_ROOT((void
				*) (&BGl_za2registeredzd2identza2zd2zzforeign_libraryz00));
#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_modulezd2initializa7ationz75zzforeign_libraryz00(long
		BgL_checksumz00_1623, char *BgL_fromz00_1624)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zzforeign_libraryz00))
				{
					BGl_requirezd2initializa7ationz75zzforeign_libraryz00 =
						BBOOL(((bool_t) 0));
					BGl_gczd2rootszd2initz00zzforeign_libraryz00();
					BGl_libraryzd2moduleszd2initz00zzforeign_libraryz00();
					BGl_cnstzd2initzd2zzforeign_libraryz00();
					BGl_importedzd2moduleszd2initz00zzforeign_libraryz00();
					return BGl_toplevelzd2initzd2zzforeign_libraryz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* library-modules-init */
	obj_t BGl_libraryzd2moduleszd2initz00zzforeign_libraryz00(void)
	{
		{	/* Foreign/library.scm 15 */
			BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(0L,
				"foreign_library");
			BGl_modulezd2initializa7ationz75zz__objectz00(0L, "foreign_library");
			BGl_modulezd2initializa7ationz75zz__readerz00(0L, "foreign_library");
			BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(0L,
				"foreign_library");
			BGl_modulezd2initializa7ationz75zz__errorz00(0L, "foreign_library");
			BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(0L,
				"foreign_library");
			BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(0L,
				"foreign_library");
			BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(0L,
				"foreign_library");
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(0L,
				"foreign_library");
			return BUNSPEC;
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zzforeign_libraryz00(void)
	{
		{	/* Foreign/library.scm 15 */
			{	/* Foreign/library.scm 15 */
				obj_t BgL_cportz00_1612;

				{	/* Foreign/library.scm 15 */
					obj_t BgL_stringz00_1619;

					BgL_stringz00_1619 = BGl_string1379z00zzforeign_libraryz00;
					{	/* Foreign/library.scm 15 */
						obj_t BgL_startz00_1620;

						BgL_startz00_1620 = BINT(0L);
						{	/* Foreign/library.scm 15 */
							obj_t BgL_endz00_1621;

							BgL_endz00_1621 =
								BINT(STRING_LENGTH(((obj_t) BgL_stringz00_1619)));
							{	/* Foreign/library.scm 15 */

								BgL_cportz00_1612 =
									BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00
									(BgL_stringz00_1619, BgL_startz00_1620, BgL_endz00_1621);
				}}}}
				{
					long BgL_iz00_1613;

					BgL_iz00_1613 = 3L;
				BgL_loopz00_1614:
					if ((BgL_iz00_1613 == -1L))
						{	/* Foreign/library.scm 15 */
							return BUNSPEC;
						}
					else
						{	/* Foreign/library.scm 15 */
							{	/* Foreign/library.scm 15 */
								obj_t BgL_arg1397z00_1615;

								{	/* Foreign/library.scm 15 */

									{	/* Foreign/library.scm 15 */
										obj_t BgL_locationz00_1617;

										BgL_locationz00_1617 = BBOOL(((bool_t) 0));
										{	/* Foreign/library.scm 15 */

											BgL_arg1397z00_1615 =
												BGl_readz00zz__readerz00(BgL_cportz00_1612,
												BgL_locationz00_1617);
										}
									}
								}
								{	/* Foreign/library.scm 15 */
									int BgL_tmpz00_1651;

									BgL_tmpz00_1651 = (int) (BgL_iz00_1613);
									CNST_TABLE_SET(BgL_tmpz00_1651, BgL_arg1397z00_1615);
							}}
							{	/* Foreign/library.scm 15 */
								int BgL_auxz00_1618;

								BgL_auxz00_1618 = (int) ((BgL_iz00_1613 - 1L));
								{
									long BgL_iz00_1656;

									BgL_iz00_1656 = (long) (BgL_auxz00_1618);
									BgL_iz00_1613 = BgL_iz00_1656;
									goto BgL_loopz00_1614;
								}
							}
						}
				}
			}
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zzforeign_libraryz00(void)
	{
		{	/* Foreign/library.scm 15 */
			return bgl_gc_roots_register();
		}

	}



/* toplevel-init */
	obj_t BGl_toplevelzd2initzd2zzforeign_libraryz00(void)
	{
		{	/* Foreign/library.scm 15 */
			return (BGl_za2registeredzd2identza2zd2zzforeign_libraryz00 =
				BNIL, BUNSPEC);
		}

	}



/* append-21011 */
	obj_t BGl_appendzd221011zd2zzforeign_libraryz00(obj_t BgL_l1z00_1,
		obj_t BgL_l2z00_2)
	{
		{
			{
				obj_t BgL_headz00_1348;

				BgL_headz00_1348 = MAKE_YOUNG_PAIR(BNIL, BgL_l2z00_2);
				{
					obj_t BgL_prevz00_1349;
					obj_t BgL_tailz00_1350;

					BgL_prevz00_1349 = BgL_headz00_1348;
					BgL_tailz00_1350 = BgL_l1z00_1;
				BgL_loopz00_1351:
					if (PAIRP(BgL_tailz00_1350))
						{
							obj_t BgL_newzd2prevzd2_1353;

							BgL_newzd2prevzd2_1353 =
								MAKE_YOUNG_PAIR(CAR(BgL_tailz00_1350), BgL_l2z00_2);
							SET_CDR(BgL_prevz00_1349, BgL_newzd2prevzd2_1353);
							{
								obj_t BgL_tailz00_1666;
								obj_t BgL_prevz00_1665;

								BgL_prevz00_1665 = BgL_newzd2prevzd2_1353;
								BgL_tailz00_1666 = CDR(BgL_tailz00_1350);
								BgL_tailz00_1350 = BgL_tailz00_1666;
								BgL_prevz00_1349 = BgL_prevz00_1665;
								goto BgL_loopz00_1351;
							}
						}
					else
						{
							BNIL;
						}
					return CDR(BgL_headz00_1348);
				}
			}
		}

	}



/* make-define-inline */
	BGL_EXPORTED_DEF obj_t BGl_makezd2definezd2inlinez00zzforeign_libraryz00(obj_t
		BgL_protoz00_3, obj_t BgL_bodyz00_4)
	{
		{	/* Foreign/library.scm 37 */
			{	/* Foreign/library.scm 39 */
				obj_t BgL_arg1225z00_1357;

				{	/* Foreign/library.scm 39 */
					obj_t BgL_arg1226z00_1358;

					BgL_arg1226z00_1358 = MAKE_YOUNG_PAIR(BgL_bodyz00_4, BNIL);
					BgL_arg1225z00_1357 =
						MAKE_YOUNG_PAIR(BgL_protoz00_3, BgL_arg1226z00_1358);
				}
				return MAKE_YOUNG_PAIR(CNST_TABLE_REF(0L), BgL_arg1225z00_1357);
			}
		}

	}



/* &make-define-inline */
	obj_t BGl_z62makezd2definezd2inlinez62zzforeign_libraryz00(obj_t
		BgL_envz00_1604, obj_t BgL_protoz00_1605, obj_t BgL_bodyz00_1606)
	{
		{	/* Foreign/library.scm 37 */
			return
				BGl_makezd2definezd2inlinez00zzforeign_libraryz00(BgL_protoz00_1605,
				BgL_bodyz00_1606);
		}

	}



/* make-proto-inline */
	BGL_EXPORTED_DEF obj_t BGl_makezd2protozd2inlinez00zzforeign_libraryz00(obj_t
		BgL_protoz00_5)
	{
		{	/* Foreign/library.scm 45 */
			{	/* Foreign/library.scm 47 */
				obj_t BgL_arg1234z00_1362;

				BgL_arg1234z00_1362 =
					BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(BgL_protoz00_5, BNIL);
				return MAKE_YOUNG_PAIR(CNST_TABLE_REF(1L), BgL_arg1234z00_1362);
			}
		}

	}



/* &make-proto-inline */
	obj_t BGl_z62makezd2protozd2inlinez62zzforeign_libraryz00(obj_t
		BgL_envz00_1607, obj_t BgL_protoz00_1608)
	{
		{	/* Foreign/library.scm 45 */
			return
				BGl_makezd2protozd2inlinez00zzforeign_libraryz00(BgL_protoz00_1608);
		}

	}



/* register-foreign-access-idents! */
	BGL_EXPORTED_DEF obj_t
		BGl_registerzd2foreignzd2accesszd2identsz12zc0zzforeign_libraryz00(obj_t
		BgL_idsz00_6)
	{
		{	/* Foreign/library.scm 58 */
			return (BGl_za2registeredzd2identza2zd2zzforeign_libraryz00 =
				BGl_appendzd221011zd2zzforeign_libraryz00(BgL_idsz00_6,
					BGl_za2registeredzd2identza2zd2zzforeign_libraryz00), BUNSPEC);
		}

	}



/* &register-foreign-access-idents! */
	obj_t
		BGl_z62registerzd2foreignzd2accesszd2identsz12za2zzforeign_libraryz00(obj_t
		BgL_envz00_1609, obj_t BgL_idsz00_1610)
	{
		{	/* Foreign/library.scm 58 */
			return
				BGl_registerzd2foreignzd2accesszd2identsz12zc0zzforeign_libraryz00
				(BgL_idsz00_1610);
		}

	}



/* prepare-foreign-access! */
	BGL_EXPORTED_DEF obj_t
		BGl_preparezd2foreignzd2accessz12z12zzforeign_libraryz00(void)
	{
		{	/* Foreign/library.scm 75 */
			{
				obj_t BgL_l1219z00_1364;

				BgL_l1219z00_1364 = BGl_za2registeredzd2identza2zd2zzforeign_libraryz00;
			BgL_zc3z04anonymousza31235ze3z87_1365:
				if (PAIRP(BgL_l1219z00_1364))
					{	/* Foreign/library.scm 76 */
						{	/* Foreign/library.scm 77 */
							obj_t BgL_idz00_1367;

							BgL_idz00_1367 = CAR(BgL_l1219z00_1364);
							{	/* Foreign/library.scm 77 */
								obj_t BgL_gz00_1368;

								BgL_gz00_1368 =
									BGl_findzd2globalzd2zzast_envz00(BgL_idz00_1367, BNIL);
								{	/* Foreign/library.scm 78 */
									bool_t BgL_test1412z00_1684;

									{	/* Foreign/library.scm 78 */
										obj_t BgL_classz00_1537;

										BgL_classz00_1537 = BGl_globalz00zzast_varz00;
										if (BGL_OBJECTP(BgL_gz00_1368))
											{	/* Foreign/library.scm 78 */
												BgL_objectz00_bglt BgL_arg1801z00_1539;

												BgL_arg1801z00_1539 =
													(BgL_objectz00_bglt) (BgL_gz00_1368);
												if (BGL_CONDEXPAND_ISA_ARCH64())
													{	/* Foreign/library.scm 78 */
														long BgL_idxz00_1545;

														BgL_idxz00_1545 =
															BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_1539);
														BgL_test1412z00_1684 =
															(VECTOR_REF
															(BGl_za2inheritancesza2z00zz__objectz00,
																(BgL_idxz00_1545 + 2L)) == BgL_classz00_1537);
													}
												else
													{	/* Foreign/library.scm 78 */
														bool_t BgL_res1374z00_1567;

														{	/* Foreign/library.scm 78 */
															obj_t BgL_oclassz00_1553;

															{	/* Foreign/library.scm 78 */
																long BgL_arg1808z00_1559;

																{	/* Foreign/library.scm 78 */
																	long BgL_arg1809z00_1560;

																	BgL_arg1809z00_1560 =
																		BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_1539);
																	BgL_arg1808z00_1559 =
																		(BgL_arg1809z00_1560 - OBJECT_TYPE);
																}
																BgL_oclassz00_1553 =
																	VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
																	BgL_arg1808z00_1559);
															}
															{	/* Foreign/library.scm 78 */
																bool_t BgL__ortest_1115z00_1554;

																BgL__ortest_1115z00_1554 =
																	(BgL_classz00_1537 == BgL_oclassz00_1553);
																if (BgL__ortest_1115z00_1554)
																	{	/* Foreign/library.scm 78 */
																		BgL_res1374z00_1567 =
																			BgL__ortest_1115z00_1554;
																	}
																else
																	{	/* Foreign/library.scm 78 */
																		long BgL_odepthz00_1555;

																		BgL_odepthz00_1555 =
																			BGL_CLASS_DEPTH(BgL_oclassz00_1553);
																		if ((2L < BgL_odepthz00_1555))
																			{	/* Foreign/library.scm 78 */
																				obj_t BgL_arg1797z00_1557;

																				BgL_arg1797z00_1557 =
																					BGL_CLASS_ANCESTORS_REF
																					(BgL_oclassz00_1553, 2L);
																				BgL_res1374z00_1567 =
																					(BgL_arg1797z00_1557 ==
																					BgL_classz00_1537);
																			}
																		else
																			{	/* Foreign/library.scm 78 */
																				BgL_res1374z00_1567 = ((bool_t) 0);
																			}
																	}
															}
														}
														BgL_test1412z00_1684 = BgL_res1374z00_1567;
													}
											}
										else
											{	/* Foreign/library.scm 78 */
												BgL_test1412z00_1684 = ((bool_t) 0);
											}
									}
									if (BgL_test1412z00_1684)
										{	/* Foreign/library.scm 78 */
											{	/* Foreign/library.scm 80 */
												obj_t BgL_vz00_1569;

												BgL_vz00_1569 = CNST_TABLE_REF(2L);
												((((BgL_globalz00_bglt) COBJECT(
																((BgL_globalz00_bglt) BgL_gz00_1368)))->
														BgL_importz00) = ((obj_t) BgL_vz00_1569), BUNSPEC);
											}
											{	/* Foreign/library.scm 82 */
												obj_t BgL_vz00_1571;

												BgL_vz00_1571 = CNST_TABLE_REF(3L);
												((((BgL_globalz00_bglt) COBJECT(
																((BgL_globalz00_bglt) BgL_gz00_1368)))->
														BgL_modulez00) = ((obj_t) BgL_vz00_1571), BUNSPEC);
											}
										}
									else
										{	/* Foreign/library.scm 78 */
											BGl_errorz00zz__errorz00
												(BGl_string1376z00zzforeign_libraryz00,
												BGl_string1377z00zzforeign_libraryz00, BgL_idz00_1367);
										}
								}
							}
						}
						{
							obj_t BgL_l1219z00_1711;

							BgL_l1219z00_1711 = CDR(BgL_l1219z00_1364);
							BgL_l1219z00_1364 = BgL_l1219z00_1711;
							goto BgL_zc3z04anonymousza31235ze3z87_1365;
						}
					}
				else
					{	/* Foreign/library.scm 76 */
						((bool_t) 1);
					}
			}
			return (BGl_za2registeredzd2identza2zd2zzforeign_libraryz00 =
				BNIL, BUNSPEC);
		}

	}



/* &prepare-foreign-access! */
	obj_t BGl_z62preparezd2foreignzd2accessz12z70zzforeign_libraryz00(obj_t
		BgL_envz00_1611)
	{
		{	/* Foreign/library.scm 75 */
			return BGl_preparezd2foreignzd2accessz12z12zzforeign_libraryz00();
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zzforeign_libraryz00(void)
	{
		{	/* Foreign/library.scm 15 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zzforeign_libraryz00(void)
	{
		{	/* Foreign/library.scm 15 */
			return BUNSPEC;
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zzforeign_libraryz00(void)
	{
		{	/* Foreign/library.scm 15 */
			return BUNSPEC;
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zzforeign_libraryz00(void)
	{
		{	/* Foreign/library.scm 15 */
			BGl_modulezd2initializa7ationz75zzengine_paramz00(517137079L,
				BSTRING_TO_STRING(BGl_string1378z00zzforeign_libraryz00));
			BGl_modulezd2initializa7ationz75zzast_nodez00(469732712L,
				BSTRING_TO_STRING(BGl_string1378z00zzforeign_libraryz00));
			BGl_modulezd2initializa7ationz75zzast_varz00(90839984L,
				BSTRING_TO_STRING(BGl_string1378z00zzforeign_libraryz00));
			BGl_modulezd2initializa7ationz75zztype_typez00(515343395L,
				BSTRING_TO_STRING(BGl_string1378z00zzforeign_libraryz00));
			return
				BGl_modulezd2initializa7ationz75zzast_envz00(146730773L,
				BSTRING_TO_STRING(BGl_string1378z00zzforeign_libraryz00));
		}

	}

#ifdef __cplusplus
}
#endif
