/*===========================================================================*/
/*   (Llib/custom.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/custom.scm -indent -o objs/obj_u/Llib/custom.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___CUSTOM_TYPE_DEFINITIONS
#define BGL___CUSTOM_TYPE_DEFINITIONS
#endif													// BGL___CUSTOM_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	BGL_EXPORTED_DECL bool_t BGl_customzf3zf3zz__customz00(obj_t);
	static obj_t BGl_z62customzf3z91zz__customz00(obj_t, obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zz__customz00 = BUNSPEC;
	extern obj_t BGl_typezd2errorzd2zz__errorz00(obj_t, obj_t, obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zz__customz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
	BGL_EXPORTED_DECL obj_t
		BGl_customzd2identifierzd2setz12z12zz__customz00(obj_t, char *);
	BGL_EXPORTED_DECL obj_t BGl_customzd2nilzd2zz__customz00(void);
	static obj_t BGl_z62customzd2hashzb0zz__customz00(obj_t, obj_t, obj_t);
	static obj_t BGl_genericzd2initzd2zz__customz00(void);
	static obj_t BGl_importedzd2moduleszd2initz00zz__customz00(void);
	static obj_t BGl_gczd2rootszd2initz00zz__customz00(void);
	static obj_t BGl_objectzd2initzd2zz__customz00(void);
	extern obj_t bgl_custom_nil(void);
	static obj_t BGl_z62customzd2identifierzb0zz__customz00(obj_t, obj_t);
	static obj_t BGl_z62customzd2nilzb0zz__customz00(obj_t);
	BGL_EXPORTED_DECL bool_t BGl_customzd2equalzf3z21zz__customz00(obj_t, obj_t);
	static obj_t BGl_methodzd2initzd2zz__customz00(void);
	BGL_EXPORTED_DECL char *BGl_customzd2identifierzd2zz__customz00(obj_t);
	static obj_t BGl_z62customzd2identifierzd2setz12z70zz__customz00(obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t BGl_customzd2hashzd2zz__customz00(obj_t, int);
	static obj_t BGl_z62customzd2equalzf3z43zz__customz00(obj_t, obj_t, obj_t);
	static obj_t *__cnst;


	   
		 
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_customzd2nilzd2envz00zz__customz00,
		BgL_bgl_za762customza7d2nilza71608za7, BGl_z62customzd2nilzb0zz__customz00,
		0L, BUNSPEC, 0);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_customzd2equalzf3zd2envzf3zz__customz00,
		BgL_bgl_za762customza7d2equa1609z00,
		BGl_z62customzd2equalzf3z43zz__customz00, 0L, BUNSPEC, 2);
	      BGL_DEFINE_STRING(BGl_string1600z00zz__customz00,
		BgL_bgl_string1600za700za7za7_1610za7, "&custom-equal?", 14);
	      BGL_DEFINE_STRING(BGl_string1601z00zz__customz00,
		BgL_bgl_string1601za700za7za7_1611za7, "custom", 6);
	      BGL_DEFINE_STRING(BGl_string1602z00zz__customz00,
		BgL_bgl_string1602za700za7za7_1612za7, "&custom-identifier", 18);
	      BGL_DEFINE_STRING(BGl_string1603z00zz__customz00,
		BgL_bgl_string1603za700za7za7_1613za7, "&custom-identifier-set!", 23);
	      BGL_DEFINE_STRING(BGl_string1604z00zz__customz00,
		BgL_bgl_string1604za700za7za7_1614za7, "bstring", 7);
	      BGL_DEFINE_STRING(BGl_string1605z00zz__customz00,
		BgL_bgl_string1605za700za7za7_1615za7, "&custom-hash", 12);
	      BGL_DEFINE_STRING(BGl_string1606z00zz__customz00,
		BgL_bgl_string1606za700za7za7_1616za7, "bint", 4);
	      BGL_DEFINE_STRING(BGl_string1607z00zz__customz00,
		BgL_bgl_string1607za700za7za7_1617za7, "__custom", 8);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_customzd2identifierzd2setz12zd2envzc0zz__customz00,
		BgL_bgl_za762customza7d2iden1618z00,
		BGl_z62customzd2identifierzd2setz12z70zz__customz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_customzd2identifierzd2envz00zz__customz00,
		BgL_bgl_za762customza7d2iden1619z00,
		BGl_z62customzd2identifierzb0zz__customz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_customzf3zd2envz21zz__customz00,
		BgL_bgl_za762customza7f3za791za71620z00, BGl_z62customzf3z91zz__customz00,
		0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_customzd2hashzd2envz00zz__customz00,
		BgL_bgl_za762customza7d2hash1621z00, BGl_z62customzd2hashzb0zz__customz00,
		0L, BUNSPEC, 2);
	      BGL_DEFINE_STRING(BGl_string1599z00zz__customz00,
		BgL_bgl_string1599za700za7za7_1622za7,
		"/tmp/bigloo/runtime/Llib/custom.scm", 35);

/* contant bindings */
	static void bgl_constant_bindings()
	{
		BGL_BIND_STRING(BGl_string1599z00zz__customz00,
			BgL_bgl_string1599za700za7za7_1622za7);
		BGL_BIND_PROCEDURE(BGl_customzd2hashzd2envz00zz__customz00,
			BgL_bgl_za762customza7d2hash1621z00);
		BGL_BIND_PROCEDURE(BGl_customzf3zd2envz21zz__customz00,
			BgL_bgl_za762customza7f3za791za71620z00);
		BGL_BIND_PROCEDURE(BGl_customzd2identifierzd2envz00zz__customz00,
			BgL_bgl_za762customza7d2iden1619z00);
		BGL_BIND_PROCEDURE(BGl_customzd2identifierzd2setz12zd2envzc0zz__customz00,
			BgL_bgl_za762customza7d2iden1618z00);
		BGL_BIND_STRING(BGl_string1607z00zz__customz00,
			BgL_bgl_string1607za700za7za7_1617za7);
		BGL_BIND_STRING(BGl_string1606z00zz__customz00,
			BgL_bgl_string1606za700za7za7_1616za7);
		BGL_BIND_STRING(BGl_string1605z00zz__customz00,
			BgL_bgl_string1605za700za7za7_1615za7);
		BGL_BIND_STRING(BGl_string1604z00zz__customz00,
			BgL_bgl_string1604za700za7za7_1614za7);
		BGL_BIND_STRING(BGl_string1603z00zz__customz00,
			BgL_bgl_string1603za700za7za7_1613za7);
		BGL_BIND_STRING(BGl_string1602z00zz__customz00,
			BgL_bgl_string1602za700za7za7_1612za7);
		BGL_BIND_STRING(BGl_string1601z00zz__customz00,
			BgL_bgl_string1601za700za7za7_1611za7);
		BGL_BIND_STRING(BGl_string1600z00zz__customz00,
			BgL_bgl_string1600za700za7za7_1610za7);
		BGL_BIND_PROCEDURE(BGl_customzd2equalzf3zd2envzf3zz__customz00,
			BgL_bgl_za762customza7d2equa1609z00);
		BGL_BIND_PROCEDURE(BGl_customzd2nilzd2envz00zz__customz00,
			BgL_bgl_za762customza7d2nilza71608za7);
	}

/* 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__customz00));
#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__customz00(long
		BgL_checksumz00_1742, char *BgL_fromz00_1743)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zz__customz00))
				{
					BGl_requirezd2initializa7ationz75zz__customz00 = BBOOL(((bool_t) 0));
					bgl_constant_bindings();
					BGl_gczd2rootszd2initz00zz__customz00();
					BGl_importedzd2moduleszd2initz00zz__customz00();
					return BGl_methodzd2initzd2zz__customz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zz__customz00(void)
	{
		{	/* Llib/custom.scm 14 */
			return bgl_gc_roots_register();
		}

	}



/* custom? */
	BGL_EXPORTED_DEF bool_t BGl_customzf3zf3zz__customz00(obj_t BgL_objz00_3)
	{
		{	/* Llib/custom.scm 84 */
			return CUSTOMP(BgL_objz00_3);
		}

	}



/* &custom? */
	obj_t BGl_z62customzf3z91zz__customz00(obj_t BgL_envz00_1715,
		obj_t BgL_objz00_1716)
	{
		{	/* Llib/custom.scm 84 */
			return BBOOL(BGl_customzf3zf3zz__customz00(BgL_objz00_1716));
		}

	}



/* custom-nil */
	BGL_EXPORTED_DEF obj_t BGl_customzd2nilzd2zz__customz00(void)
	{
		{	/* Llib/custom.scm 90 */
			BGL_TAIL return bgl_custom_nil();
		}

	}



/* &custom-nil */
	obj_t BGl_z62customzd2nilzb0zz__customz00(obj_t BgL_envz00_1717)
	{
		{	/* Llib/custom.scm 90 */
			return BGl_customzd2nilzd2zz__customz00();
		}

	}



/* custom-equal? */
	BGL_EXPORTED_DEF bool_t BGl_customzd2equalzf3z21zz__customz00(obj_t
		BgL_obj1z00_4, obj_t BgL_obj2z00_5)
	{
		{	/* Llib/custom.scm 96 */
			return CUSTOM_CMP(BgL_obj1z00_4, BgL_obj2z00_5);
		}

	}



/* &custom-equal? */
	obj_t BGl_z62customzd2equalzf3z43zz__customz00(obj_t BgL_envz00_1718,
		obj_t BgL_obj1z00_1719, obj_t BgL_obj2z00_1720)
	{
		{	/* Llib/custom.scm 96 */
			{	/* Llib/custom.scm 97 */
				bool_t BgL_tmpz00_1758;

				{	/* Llib/custom.scm 97 */
					obj_t BgL_auxz00_1766;
					obj_t BgL_auxz00_1759;

					if (CUSTOMP(BgL_obj2z00_1720))
						{	/* Llib/custom.scm 97 */
							BgL_auxz00_1766 = BgL_obj2z00_1720;
						}
					else
						{
							obj_t BgL_auxz00_1769;

							BgL_auxz00_1769 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string1599z00zz__customz00,
								BINT(3593L), BGl_string1600z00zz__customz00,
								BGl_string1601z00zz__customz00, BgL_obj2z00_1720);
							FAILURE(BgL_auxz00_1769, BFALSE, BFALSE);
						}
					if (CUSTOMP(BgL_obj1z00_1719))
						{	/* Llib/custom.scm 97 */
							BgL_auxz00_1759 = BgL_obj1z00_1719;
						}
					else
						{
							obj_t BgL_auxz00_1762;

							BgL_auxz00_1762 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string1599z00zz__customz00,
								BINT(3593L), BGl_string1600z00zz__customz00,
								BGl_string1601z00zz__customz00, BgL_obj1z00_1719);
							FAILURE(BgL_auxz00_1762, BFALSE, BFALSE);
						}
					BgL_tmpz00_1758 =
						BGl_customzd2equalzf3z21zz__customz00(BgL_auxz00_1759,
						BgL_auxz00_1766);
				}
				return BBOOL(BgL_tmpz00_1758);
			}
		}

	}



/* custom-identifier */
	BGL_EXPORTED_DEF char *BGl_customzd2identifierzd2zz__customz00(obj_t
		BgL_customz00_6)
	{
		{	/* Llib/custom.scm 102 */
			return CUSTOM_IDENTIFIER(BgL_customz00_6);
		}

	}



/* &custom-identifier */
	obj_t BGl_z62customzd2identifierzb0zz__customz00(obj_t BgL_envz00_1721,
		obj_t BgL_customz00_1722)
	{
		{	/* Llib/custom.scm 102 */
			{	/* Llib/custom.scm 103 */
				char *BgL_tmpz00_1776;

				{	/* Llib/custom.scm 103 */
					obj_t BgL_auxz00_1777;

					if (CUSTOMP(BgL_customz00_1722))
						{	/* Llib/custom.scm 103 */
							BgL_auxz00_1777 = BgL_customz00_1722;
						}
					else
						{
							obj_t BgL_auxz00_1780;

							BgL_auxz00_1780 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string1599z00zz__customz00,
								BINT(3906L), BGl_string1602z00zz__customz00,
								BGl_string1601z00zz__customz00, BgL_customz00_1722);
							FAILURE(BgL_auxz00_1780, BFALSE, BFALSE);
						}
					BgL_tmpz00_1776 =
						BGl_customzd2identifierzd2zz__customz00(BgL_auxz00_1777);
				}
				return string_to_bstring(BgL_tmpz00_1776);
			}
		}

	}



/* custom-identifier-set! */
	BGL_EXPORTED_DEF obj_t BGl_customzd2identifierzd2setz12z12zz__customz00(obj_t
		BgL_customz00_7, char *BgL_strz00_8)
	{
		{	/* Llib/custom.scm 108 */
			return CUSTOM_IDENTIFIER_SET(BgL_customz00_7, BgL_strz00_8);
		}

	}



/* &custom-identifier-set! */
	obj_t BGl_z62customzd2identifierzd2setz12z70zz__customz00(obj_t
		BgL_envz00_1723, obj_t BgL_customz00_1724, obj_t BgL_strz00_1725)
	{
		{	/* Llib/custom.scm 108 */
			{	/* Llib/custom.scm 109 */
				char *BgL_auxz00_1794;
				obj_t BgL_auxz00_1787;

				{	/* Llib/custom.scm 109 */
					obj_t BgL_tmpz00_1795;

					if (STRINGP(BgL_strz00_1725))
						{	/* Llib/custom.scm 109 */
							BgL_tmpz00_1795 = BgL_strz00_1725;
						}
					else
						{
							obj_t BgL_auxz00_1798;

							BgL_auxz00_1798 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string1599z00zz__customz00,
								BINT(4229L), BGl_string1603z00zz__customz00,
								BGl_string1604z00zz__customz00, BgL_strz00_1725);
							FAILURE(BgL_auxz00_1798, BFALSE, BFALSE);
						}
					BgL_auxz00_1794 = BSTRING_TO_STRING(BgL_tmpz00_1795);
				}
				if (CUSTOMP(BgL_customz00_1724))
					{	/* Llib/custom.scm 109 */
						BgL_auxz00_1787 = BgL_customz00_1724;
					}
				else
					{
						obj_t BgL_auxz00_1790;

						BgL_auxz00_1790 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1599z00zz__customz00,
							BINT(4229L), BGl_string1603z00zz__customz00,
							BGl_string1601z00zz__customz00, BgL_customz00_1724);
						FAILURE(BgL_auxz00_1790, BFALSE, BFALSE);
					}
				return
					BGl_customzd2identifierzd2setz12z12zz__customz00(BgL_auxz00_1787,
					BgL_auxz00_1794);
			}
		}

	}



/* custom-hash */
	BGL_EXPORTED_DEF obj_t BGl_customzd2hashzd2zz__customz00(obj_t
		BgL_customz00_9, int BgL_modz00_10)
	{
		{	/* Llib/custom.scm 114 */
			{	/* Llib/custom.scm 115 */
				int BgL_numz00_1512;

				BgL_numz00_1512 = CUSTOM_HASH_NUMBER(BgL_customz00_9);
				{	/* Llib/custom.scm 116 */
					long BgL_n1z00_1513;
					long BgL_n2z00_1514;

					BgL_n1z00_1513 = (long) (BgL_numz00_1512);
					BgL_n2z00_1514 = (long) (BgL_modz00_10);
					{	/* Llib/custom.scm 116 */
						bool_t BgL_test1629z00_1807;

						{	/* Llib/custom.scm 116 */
							long BgL_arg1390z00_1516;

							BgL_arg1390z00_1516 =
								(((BgL_n1z00_1513) | (BgL_n2z00_1514)) & -2147483648);
							BgL_test1629z00_1807 = (BgL_arg1390z00_1516 == 0L);
						}
						if (BgL_test1629z00_1807)
							{	/* Llib/custom.scm 116 */
								int32_t BgL_arg1387z00_1517;

								{	/* Llib/custom.scm 116 */
									int32_t BgL_arg1388z00_1518;
									int32_t BgL_arg1389z00_1519;

									BgL_arg1388z00_1518 = (int32_t) (BgL_n1z00_1513);
									BgL_arg1389z00_1519 = (int32_t) (BgL_n2z00_1514);
									BgL_arg1387z00_1517 =
										(BgL_arg1388z00_1518 % BgL_arg1389z00_1519);
								}
								{	/* Llib/custom.scm 116 */
									long BgL_arg1500z00_1524;

									BgL_arg1500z00_1524 = (long) (BgL_arg1387z00_1517);
									return BINT((long) (BgL_arg1500z00_1524));
							}}
						else
							{	/* Llib/custom.scm 116 */
								return BINT((BgL_n1z00_1513 % BgL_n2z00_1514));
							}
					}
				}
			}
		}

	}



/* &custom-hash */
	obj_t BGl_z62customzd2hashzb0zz__customz00(obj_t BgL_envz00_1726,
		obj_t BgL_customz00_1727, obj_t BgL_modz00_1728)
	{
		{	/* Llib/custom.scm 114 */
			{	/* Llib/custom.scm 115 */
				int BgL_auxz00_1825;
				obj_t BgL_auxz00_1818;

				{	/* Llib/custom.scm 115 */
					obj_t BgL_tmpz00_1826;

					if (INTEGERP(BgL_modz00_1728))
						{	/* Llib/custom.scm 115 */
							BgL_tmpz00_1826 = BgL_modz00_1728;
						}
					else
						{
							obj_t BgL_auxz00_1829;

							BgL_auxz00_1829 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string1599z00zz__customz00,
								BINT(4540L), BGl_string1605z00zz__customz00,
								BGl_string1606z00zz__customz00, BgL_modz00_1728);
							FAILURE(BgL_auxz00_1829, BFALSE, BFALSE);
						}
					BgL_auxz00_1825 = CINT(BgL_tmpz00_1826);
				}
				if (CUSTOMP(BgL_customz00_1727))
					{	/* Llib/custom.scm 115 */
						BgL_auxz00_1818 = BgL_customz00_1727;
					}
				else
					{
						obj_t BgL_auxz00_1821;

						BgL_auxz00_1821 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1599z00zz__customz00,
							BINT(4540L), BGl_string1605z00zz__customz00,
							BGl_string1601z00zz__customz00, BgL_customz00_1727);
						FAILURE(BgL_auxz00_1821, BFALSE, BFALSE);
					}
				return
					BGl_customzd2hashzd2zz__customz00(BgL_auxz00_1818, BgL_auxz00_1825);
			}
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zz__customz00(void)
	{
		{	/* Llib/custom.scm 14 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zz__customz00(void)
	{
		{	/* Llib/custom.scm 14 */
			return BUNSPEC;
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zz__customz00(void)
	{
		{	/* Llib/custom.scm 14 */
			return BUNSPEC;
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zz__customz00(void)
	{
		{	/* Llib/custom.scm 14 */
			return
				BGl_modulezd2initializa7ationz75zz__errorz00(88804785L,
				BSTRING_TO_STRING(BGl_string1607z00zz__customz00));
		}

	}

#ifdef __cplusplus
}
#endif
