/*===========================================================================*/
/*   (Module/library.scm)                                                    */
/*   Bigloo (2.6b)                                                           */
/*   Inria -- Sophia Antipolis (c)       Mon Dec 15 12:14:36 CET 2003        */
/*===========================================================================*/
/* COMPILATION: (/users/serrano/prgm/project/bigloo/bin/bigloo -q -afile .afile -fsharing -fno-reflection -cc gcc-2.95 -lib-dir /users/serrano/prgm/project/bigloo/lib/2.6b -unsafev -no-hello -O2 -rm -unsafe -s -indent Module/library.scm)*/
/* GC selection */
#define THE_GC BOEHM_GC

#include <bigloo.h>


/* Object type definitions */
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;
} *BgL_typez00_bglt;

typedef struct BgL_valuez00_bgl {
   header_t header;
   obj_t widening;
} *BgL_valuez00_bglt;

typedef struct BgL_variablez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_valuez00_bgl * BgL_valuez00;
   obj_t BgL_accessz00;
   obj_t BgL_fastzd2alphazd2;
   obj_t BgL_removablez00;
   long BgL_occurrencez00;
} *BgL_variablez00_bglt;

typedef struct BgL_globalz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_valuez00_bgl * BgL_valuez00;
   obj_t BgL_accessz00;
   obj_t BgL_fastzd2alphazd2;
   obj_t BgL_removablez00;
   long BgL_occurrencez00;
   obj_t BgL_modulez00;
   obj_t BgL_importz00;
   bool_t BgL_evaluablezf3zf3;
   bool_t BgL_libraryzf3zf3;
   bool_t BgL_userzf3zf3;
   obj_t BgL_pragmaz00;
   obj_t BgL_srcz00;
   obj_t BgL_jvmzd2typezd2namez00;
} *BgL_globalz00_bglt;

typedef struct BgL_localz00_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;
   bool_t BgL_userzf3zf3;
   long BgL_keyz00;
} *BgL_localz00_bglt;

typedef struct BgL_funz00_bgl {
   header_t header;
   obj_t widening;
   long BgL_arityz00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_predicatezd2ofzd2;
   obj_t BgL_stackzd2allocatorzd2;
   bool_t BgL_topzf3zf3;
   obj_t BgL_thezd2closurezd2;
   obj_t BgL_effectz00;
} *BgL_funz00_bglt;

typedef struct BgL_sfunz00_bgl {
   header_t header;
   obj_t widening;
   long BgL_arityz00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_predicatezd2ofzd2;
   obj_t BgL_stackzd2allocatorzd2;
   bool_t BgL_topzf3zf3;
   obj_t BgL_thezd2closurezd2;
   obj_t BgL_effectz00;
   obj_t BgL_propertyz00;
   obj_t BgL_argsz00;
   obj_t BgL_bodyz00;
   obj_t BgL_classz00;
   obj_t BgL_dssslzd2keywordszd2;
   obj_t BgL_locz00;
} *BgL_sfunz00_bglt;

typedef struct BgL_cfunz00_bgl {
   header_t header;
   obj_t widening;
   long BgL_arityz00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_predicatezd2ofzd2;
   obj_t BgL_stackzd2allocatorzd2;
   bool_t BgL_topzf3zf3;
   obj_t BgL_thezd2closurezd2;
   obj_t BgL_effectz00;
   obj_t BgL_argszd2typezd2;
   bool_t BgL_macrozf3zf3;
   bool_t BgL_infixzf3zf3;
   obj_t BgL_methodz00;
} *BgL_cfunz00_bglt;

typedef struct BgL_svarz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
} *BgL_svarz00_bglt;

typedef struct BgL_scnstz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_nodez00;
   obj_t BgL_classz00;
   obj_t BgL_locz00;
} *BgL_scnstz00_bglt;

typedef struct BgL_cvarz00_bgl {
   header_t header;
   obj_t widening;
   bool_t BgL_macrozf3zf3;
} *BgL_cvarz00_bglt;

typedef struct BgL_sexitz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_handlerz00;
   bool_t BgL_detachedzf3zf3;
} *BgL_sexitz00_bglt;

typedef struct BgL_feffectz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_readz00;
   obj_t BgL_writez00;
} *BgL_feffectz00_bglt;

typedef struct BgL_ccompz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_producerz00;
   obj_t BgL_consumerz00;
   obj_t BgL_finaliza7erza7;
} *BgL_ccompz00_bglt;


BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzmodule_libraryz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_envz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzmodule_modulez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzmodule_impusez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzbdb_settingz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(long, char *);
BGL_IMPORT obj_t BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
static obj_t BGl_za2withzd2keyza2zd2zzmodule_libraryz00 = BUNSPEC;
static obj_t BGl_methodzd2initzd2zzmodule_libraryz00();
extern obj_t BGl_za2bdbzd2moduleza2zd2zzbdb_settingz00;
BGL_IMPORT obj_t open_input_string(obj_t);
static obj_t BGl_zc3anonymousza31650ze3z83zzmodule_libraryz00(obj_t, obj_t);
static obj_t BGl_za2neededzd2modulesza2zd2zzmodule_libraryz00 = BUNSPEC;
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
BGL_IMPORT bool_t BGl_iszd2azf3z21zz__objectz00(obj_t, obj_t);
static obj_t BGl_needzd2libraryzd2modulez12z12zzmodule_libraryz00(obj_t);
BGL_IMPORT obj_t BGl_memqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
extern obj_t BGl_getzd2importedzd2modulesz00zzmodule_impusez00();
extern obj_t BGl_za2moduleza2z00zzmodule_modulez00;
extern obj_t BGl_forzd2eachzd2globalz12z12zzast_envz00(obj_t);
extern obj_t BGl_cfunz00zzast_varz00;
static obj_t BGl__withzd2libraryzd2modulez121912z12zzmodule_libraryz00(obj_t, obj_t);
extern obj_t BGl_za2targetzd2languageza2zd2zzengine_paramz00;
BGL_IMPORT obj_t BGl_gensymz00zz__r4_symbols_6_4z00;
extern obj_t BGl_za2jvmzd2debugzd2moduleza2z00zzbdb_settingz00;
BGL_IMPORT obj_t BGl_putpropz12z12zz__r4_symbols_6_4z00(obj_t, obj_t, obj_t);
static obj_t BGl__libraryzd2finaliza7erz75zzmodule_libraryz00(obj_t);
BGL_IMPORT obj_t BGl_getpropz00zz__r4_symbols_6_4z00(obj_t, obj_t);
extern obj_t BGl_za2libzd2modeza2zd2zzengine_paramz00;
BGL_IMPORT obj_t create_struct(obj_t, int);
extern obj_t BGl_cvarz00zzast_varz00;
extern obj_t BGl_modulezd2initializa7ationzd2idza7zzmodule_modulez00(obj_t);
BGL_EXPORTED_DECL obj_t BGl_withzd2libraryzd2modulez12z12zzmodule_libraryz00(obj_t);
extern obj_t BGl_za2bdbzd2debugza2zd2zzengine_paramz00;
static obj_t BGl_cnstzd2initzd2zzmodule_libraryz00();
static obj_t BGl_za2withzd2libraryzd2modulesza2z00zzmodule_libraryz00 = BUNSPEC;
static obj_t BGl_importedzd2moduleszd2initz00zzmodule_libraryz00();
static obj_t BGl_za2keyza2z00zzmodule_libraryz00 = BUNSPEC;
static obj_t BGl_requirezd2initializa7ationz75zzmodule_libraryz00 = BUNSPEC;
extern obj_t BGl_za2jvmzd2debugza2zd2zzengine_paramz00;
BGL_EXPORTED_DECL obj_t BGl_libraryzd2finaliza7erz75zzmodule_libraryz00();
static obj_t BGl_libraryzd2moduleszd2initz00zzmodule_libraryz00();
extern obj_t BGl_za2debugzd2moduleza2zd2zzengine_paramz00;
static obj_t BGl_toplevelzd2initzd2zzmodule_libraryz00();
BGL_IMPORT obj_t string_append_3(obj_t, obj_t, obj_t);
static obj_t __cnst[ 9 ] ;


DEFINE_STATIC_PROCEDURE( BGl_proc1948z00zzmodule_libraryz00, BgL_bgl_za7c3anonymousza7a31650za7e3za783za7za7module_libraryza7001979za7, BGl_zc3anonymousza31650ze3z83zzmodule_libraryz00, 0L, 1 );
DEFINE_STRING( BGl_string1951z00zzmodule_libraryz00, BgL_bgl_string1951za700za7za7module_libraryza7001980z00, "(#unspecified) @ unit library-modules pragma::int begin (jvm .net) foreign with-key ", 84 );
DEFINE_STRING( BGl_string1950z00zzmodule_libraryz00, BgL_bgl_string1950za700za7za7module_libraryza7001981z00, "\")", 2 );
DEFINE_STRING( BGl_string1949z00zzmodule_libraryz00, BgL_bgl_string1949za700za7za7module_libraryza7001982z00, "puts(\"   Module init (library): ", 32 );
DEFINE_EXPORT_PROCEDURE( BGl_withzd2libraryzd2modulez12zd2envzc0zzmodule_libraryz00, BgL_bgl__withza7d2libraryza7d2moduleza7121912za712za7za7module_libraryza7001983za7, BGl__withzd2libraryzd2modulez121912z12zzmodule_libraryz00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_libraryzd2finaliza7erzd2envza7zzmodule_libraryz00, BgL_bgl__libraryza7d2finaliza7a7erza775za7za7module_libraryza7001984z00, BGl__libraryzd2finaliza7erz75zzmodule_libraryz00, 0L, 0 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzmodule_libraryz00(long BgL_checksumz00_613, char * BgL_fromz00_614)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzmodule_libraryz00))
{ 
BGl_requirezd2initializa7ationz75zzmodule_libraryz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzmodule_libraryz00(); 
BGl_cnstzd2initzd2zzmodule_libraryz00(); 
BGl_importedzd2moduleszd2initz00zzmodule_libraryz00(); 
BGl_toplevelzd2initzd2zzmodule_libraryz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzmodule_libraryz00()
{ AN_OBJECT;
{ /* ./Module/library.scm 15 */
BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(((long)0), "module_library"); 
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "module_library"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "module_library"); 
BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(((long)0), "module_library"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzmodule_libraryz00()
{ AN_OBJECT;
{ /* ./Module/library.scm 15 */
{ /* ./Module/library.scm 15 */
obj_t BgL_cportz00_606;
BgL_cportz00_606 = 
open_input_string(BGl_string1951z00zzmodule_libraryz00); 
{ 
long BgL_iz00_607;
BgL_iz00_607 = ((long)8); 
BgL_loopz00_608:
{ /* ./Module/library.scm 15 */
bool_t BgL_test1953z00_609;
BgL_test1953z00_609 = 
(BgL_iz00_607==((long)-1)); 
if(BgL_test1953z00_609)
{ /* ./Module/library.scm 15 */
return BUNSPEC;}  else 
{ /* ./Module/library.scm 15 */
{ /* ./Module/library.scm 15 */
obj_t BgL_arg1955z00_610;
{ /* ./Module/library.scm 15 */
obj_t BgL_list1958z00_611;
BgL_list1958z00_611 = 
MAKE_PAIR(BgL_cportz00_606, BNIL); 
BgL_arg1955z00_610 = 
BGl_readz00zz__readerz00(BgL_list1958z00_611); } 
{ /* ./Module/library.scm 15 */
int BgL_auxz00_631;
BgL_auxz00_631 = 
(int)(BgL_iz00_607); 
CNST_TABLE_SET(BgL_auxz00_631, BgL_arg1955z00_610); } } 
{ /* ./Module/library.scm 15 */
int BgL_auxz00_612;
{ /* ./Module/library.scm 15 */
long BgL_auxz00_634;
BgL_auxz00_634 = 
(BgL_iz00_607-((long)1)); 
BgL_auxz00_612 = 
(int)(BgL_auxz00_634); } 
{ 
long BgL_iz00_637;
BgL_iz00_637 = 
(long)(BgL_auxz00_612); 
BgL_iz00_607 = BgL_iz00_637; 
goto BgL_loopz00_608;} } } } } } } 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzmodule_libraryz00()
{ AN_OBJECT;
{ /* ./Module/library.scm 15 */
BGl_za2neededzd2modulesza2zd2zzmodule_libraryz00 = BNIL; 
BGl_za2keyza2z00zzmodule_libraryz00 = BUNSPEC; 
BGl_za2withzd2keyza2zd2zzmodule_libraryz00 = 
PROCEDURE_ENTRY(BGl_gensymz00zz__r4_symbols_6_4z00)(BGl_gensymz00zz__r4_symbols_6_4z00, 
CNST_TABLE_REF(((long)0)), BEOA); 
return ( 
BGl_za2withzd2libraryzd2modulesza2z00zzmodule_libraryz00 = BNIL, BUNSPEC) ;} 
}



/* library-finalizer */
BGL_EXPORTED_DEF obj_t BGl_libraryzd2finaliza7erz75zzmodule_libraryz00()
{ AN_OBJECT;
{ /* ./Module/library.scm 30 */
BGl_za2keyza2z00zzmodule_libraryz00 = 
PROCEDURE_ENTRY(BGl_gensymz00zz__r4_symbols_6_4z00)(BGl_gensymz00zz__r4_symbols_6_4z00, BEOA); 
{ 
obj_t BgL_l1580z00_313;
{ /* ./Module/library.scm 35 */
obj_t BgL_arg1632z00_315;
BgL_arg1632z00_315 = 
BGl_getzd2importedzd2modulesz00zzmodule_impusez00(); 
BgL_l1580z00_313 = BgL_arg1632z00_315; 
BgL_forzd2each1581zd2_314:
{ /* ./Module/library.scm 34 */
bool_t BgL_test1635z00_316;
BgL_test1635z00_316 = 
PAIRP(BgL_l1580z00_313); 
if(BgL_test1635z00_316)
{ /* ./Module/library.scm 34 */
{ /* ./Module/library.scm 34 */
obj_t BgL_modulez00_317;
BgL_modulez00_317 = 
CAR(BgL_l1580z00_313); 
BGl_putpropz12z12zz__r4_symbols_6_4z00(BgL_modulez00_317, BGl_za2keyza2z00zzmodule_libraryz00, BTRUE); } 
{ /* ./Module/library.scm 34 */
obj_t BgL_arg1641z00_318;
BgL_arg1641z00_318 = 
CDR(BgL_l1580z00_313); 
{ 
obj_t BgL_l1580z00_650;
BgL_l1580z00_650 = BgL_arg1641z00_318; 
BgL_l1580z00_313 = BgL_l1580z00_650; 
goto BgL_forzd2each1581zd2_314;} } }  else 
{ /* ./Module/library.scm 34 */((bool_t)1); } } } } 
BGl_putpropz12z12zz__r4_symbols_6_4z00(
CNST_TABLE_REF(((long)1)), BGl_za2keyza2z00zzmodule_libraryz00, BTRUE); 
BGl_putpropz12z12zz__r4_symbols_6_4z00(BGl_za2moduleza2z00zzmodule_modulez00, BGl_za2keyza2z00zzmodule_libraryz00, BTRUE); 
BGl_forzd2eachzd2globalz12z12zzast_envz00(BGl_proc1948z00zzmodule_libraryz00); 
{ /* ./Module/library.scm 49 */
bool_t BgL_test1676z00_334;
{ /* ./Module/library.scm 49 */
long BgL_n1z00_555;
BgL_n1z00_555 = 
(long)CINT(BGl_za2bdbzd2debugza2zd2zzengine_paramz00); 
BgL_test1676z00_334 = 
(BgL_n1z00_555>((long)0)); } 
if(BgL_test1676z00_334)
{ 
obj_t BgL_l1584z00_335;
BgL_l1584z00_335 = BGl_za2bdbzd2moduleza2zd2zzbdb_settingz00; 
BgL_forzd2each1585zd2_336:
{ /* ./Module/library.scm 50 */
bool_t BgL_test1678z00_337;
BgL_test1678z00_337 = 
PAIRP(BgL_l1584z00_335); 
if(BgL_test1678z00_337)
{ /* ./Module/library.scm 50 */
{ /* ./Module/library.scm 50 */
obj_t BgL_arg1680z00_338;
BgL_arg1680z00_338 = 
CAR(BgL_l1584z00_335); 
BGl_needzd2libraryzd2modulez12z12zzmodule_libraryz00(BgL_arg1680z00_338); } 
{ /* ./Module/library.scm 50 */
obj_t BgL_arg1684z00_339;
BgL_arg1684z00_339 = 
CDR(BgL_l1584z00_335); 
{ 
obj_t BgL_l1584z00_663;
BgL_l1584z00_663 = BgL_arg1684z00_339; 
BgL_l1584z00_335 = BgL_l1584z00_663; 
goto BgL_forzd2each1585zd2_336;} } }  else 
{ /* ./Module/library.scm 50 */((bool_t)1); } } }  else 
{ /* ./Module/library.scm 49 */((bool_t)0); } } 
{ /* ./Module/library.scm 51 */
bool_t BgL_test1689z00_340;
if(
CBOOL(BGl_za2jvmzd2debugza2zd2zzengine_paramz00))
{ /* ./Module/library.scm 51 */
bool_t BgL_test1703z00_346;
{ /* ./Module/library.scm 51 */
obj_t BgL_auxz00_666;
BgL_auxz00_666 = 
BGl_memqz00zz__r4_pairs_and_lists_6_3z00(BGl_za2targetzd2languageza2zd2zzengine_paramz00, 
CNST_TABLE_REF(((long)2))); 
BgL_test1703z00_346 = 
CBOOL(BgL_auxz00_666); } 
if(BgL_test1703z00_346)
{ /* ./Module/library.scm 51 */
if(
CBOOL(BGl_za2libzd2modeza2zd2zzengine_paramz00))
{ /* ./Module/library.scm 51 */
BgL_test1689z00_340 = ((bool_t)0); }  else 
{ /* ./Module/library.scm 51 */
BgL_test1689z00_340 = ((bool_t)1); } }  else 
{ /* ./Module/library.scm 51 */
BgL_test1689z00_340 = ((bool_t)0); } }  else 
{ /* ./Module/library.scm 51 */
BgL_test1689z00_340 = ((bool_t)0); } 
if(BgL_test1689z00_340)
{ 
obj_t BgL_l1586z00_341;
BgL_l1586z00_341 = BGl_za2jvmzd2debugzd2moduleza2z00zzbdb_settingz00; 
BgL_forzd2each1587zd2_342:
{ /* ./Module/library.scm 52 */
bool_t BgL_test1692z00_343;
BgL_test1692z00_343 = 
PAIRP(BgL_l1586z00_341); 
if(BgL_test1692z00_343)
{ /* ./Module/library.scm 52 */
{ /* ./Module/library.scm 52 */
obj_t BgL_arg1695z00_344;
BgL_arg1695z00_344 = 
CAR(BgL_l1586z00_341); 
BGl_needzd2libraryzd2modulez12z12zzmodule_libraryz00(BgL_arg1695z00_344); } 
{ /* ./Module/library.scm 52 */
obj_t BgL_arg1699z00_345;
BgL_arg1699z00_345 = 
CDR(BgL_l1586z00_341); 
{ 
obj_t BgL_l1586z00_679;
BgL_l1586z00_679 = BgL_arg1699z00_345; 
BgL_l1586z00_341 = BgL_l1586z00_679; 
goto BgL_forzd2each1587zd2_342;} } }  else 
{ /* ./Module/library.scm 52 */((bool_t)1); } } }  else 
{ /* ./Module/library.scm 51 */((bool_t)0); } } 
{ 
obj_t BgL_l1588z00_347;
BgL_l1588z00_347 = BGl_za2withzd2libraryzd2modulesza2z00zzmodule_libraryz00; 
BgL_forzd2each1589zd2_348:
{ /* ./Module/library.scm 55 */
bool_t BgL_test1706z00_349;
BgL_test1706z00_349 = 
PAIRP(BgL_l1588z00_347); 
if(BgL_test1706z00_349)
{ /* ./Module/library.scm 55 */
{ /* ./Module/library.scm 55 */
obj_t BgL_arg1709z00_350;
BgL_arg1709z00_350 = 
CAR(BgL_l1588z00_347); 
BGl_needzd2libraryzd2modulez12z12zzmodule_libraryz00(BgL_arg1709z00_350); } 
{ /* ./Module/library.scm 55 */
obj_t BgL_arg1713z00_351;
BgL_arg1713z00_351 = 
CDR(BgL_l1588z00_347); 
{ 
obj_t BgL_l1588z00_685;
BgL_l1588z00_685 = BgL_arg1713z00_351; 
BgL_l1588z00_347 = BgL_l1588z00_685; 
goto BgL_forzd2each1589zd2_348;} } }  else 
{ /* ./Module/library.scm 55 */((bool_t)1); } } } 
{ /* ./Module/library.scm 57 */
obj_t BgL_modulesz00_352;
BgL_modulesz00_352 = BGl_za2neededzd2modulesza2zd2zzmodule_libraryz00; 
{ /* ./Module/library.scm 58 */
bool_t BgL_test1717z00_353;
BgL_test1717z00_353 = 
NULLP(BgL_modulesz00_352); 
if(BgL_test1717z00_353)
{ /* ./Module/library.scm 58 */
return BNIL;}  else 
{ 
obj_t BgL_modulesz00_354;obj_t BgL_initzd2callza2z70_355;
BgL_modulesz00_354 = BgL_modulesz00_352; 
BgL_initzd2callza2z70_355 = 
CNST_TABLE_REF(((long)8)); 
BgL_loopz00_356:
{ /* ./Module/library.scm 62 */
bool_t BgL_test1719z00_357;
BgL_test1719z00_357 = 
NULLP(BgL_modulesz00_354); 
if(BgL_test1719z00_357)
{ /* ./Module/library.scm 63 */
obj_t BgL_bodyz00_358;
{ /* ./Module/library.scm 63 */
bool_t BgL_test1721z00_359;
{ /* ./Module/library.scm 63 */
long BgL_n1z00_568;
BgL_n1z00_568 = 
(long)CINT(BGl_za2debugzd2moduleza2zd2zzengine_paramz00); 
BgL_test1721z00_359 = 
(BgL_n1z00_568>((long)0)); } 
if(BgL_test1721z00_359)
{ /* ./Module/library.scm 64 */
obj_t BgL_arg1723z00_360;
{ /* ./Module/library.scm 64 */
obj_t BgL_arg1727z00_362;obj_t BgL_arg1728z00_363;
BgL_arg1727z00_362 = 
CNST_TABLE_REF(((long)3)); 
{ /* ./Module/library.scm 65 */
obj_t BgL_arg1731z00_364;obj_t BgL_arg1732z00_365;
{ /* ./Module/library.scm 65 */
obj_t BgL_arg1735z00_366;obj_t BgL_arg1736z00_367;
BgL_arg1735z00_366 = 
CNST_TABLE_REF(((long)4)); 
{ /* ./Module/library.scm 66 */
obj_t BgL_arg1741z00_368;
{ /* ./Module/library.scm 66 */
obj_t BgL_arg1749z00_371;
{ /* ./Module/library.scm 68 */
obj_t BgL_symbolz00_570;
BgL_symbolz00_570 = BGl_za2moduleza2z00zzmodule_modulez00; 
BgL_arg1749z00_371 = 
SYMBOL_TO_STRING(BgL_symbolz00_570); } 
BgL_arg1741z00_368 = 
string_append_3(BGl_string1949z00zzmodule_libraryz00, BgL_arg1749z00_371, BGl_string1950z00zzmodule_libraryz00); } 
BgL_arg1736z00_367 = 
MAKE_PAIR(BgL_arg1741z00_368, BNIL); } 
BgL_arg1731z00_364 = 
MAKE_PAIR(BgL_arg1735z00_366, BgL_arg1736z00_367); } 
BgL_arg1732z00_365 = 
BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(BgL_initzd2callza2z70_355, BNIL); 
BgL_arg1728z00_363 = 
MAKE_PAIR(BgL_arg1731z00_364, BgL_arg1732z00_365); } 
BgL_arg1723z00_360 = 
MAKE_PAIR(BgL_arg1727z00_362, BgL_arg1728z00_363); } 
BgL_bodyz00_358 = 
MAKE_PAIR(BgL_arg1723z00_360, BNIL); }  else 
{ /* ./Module/library.scm 63 */
BgL_bodyz00_358 = BgL_initzd2callza2z70_355; } } 
{ /* ./Module/library.scm 72 */
obj_t BgL_idz00_571;
BgL_idz00_571 = 
CNST_TABLE_REF(((long)5)); 
{ /* ./Module/library.scm 72 */
obj_t BgL_newz00_575;
{ /* ./Module/library.scm 72 */
int BgL_auxz00_706;obj_t BgL_auxz00_704;
BgL_auxz00_706 = 
(int)(((long)4)); 
BgL_auxz00_704 = 
CNST_TABLE_REF(((long)6)); 
BgL_newz00_575 = 
create_struct(BgL_auxz00_704, BgL_auxz00_706); } 
{ /* ./Module/library.scm 72 */
int BgL_kz00_579;
BgL_kz00_579 = 
(int)(((long)3)); 
STRUCT_SET(BgL_newz00_575, BgL_kz00_579, BTRUE); } 
{ /* ./Module/library.scm 72 */
int BgL_kz00_584;
BgL_kz00_584 = 
(int)(((long)2)); 
STRUCT_SET(BgL_newz00_575, BgL_kz00_584, BgL_bodyz00_358); } 
{ /* ./Module/library.scm 72 */
int BgL_kz00_589;obj_t BgL_oz00_590;
BgL_kz00_589 = 
(int)(((long)1)); 
BgL_oz00_590 = 
BINT(((long)2)); 
STRUCT_SET(BgL_newz00_575, BgL_kz00_589, BgL_oz00_590); } 
{ /* ./Module/library.scm 72 */
int BgL_kz00_594;
BgL_kz00_594 = 
(int)(((long)0)); 
STRUCT_SET(BgL_newz00_575, BgL_kz00_594, BgL_idz00_571); } 
return BgL_newz00_575;} } }  else 
{ /* ./Module/library.scm 73 */
obj_t BgL_idz00_373;
BgL_idz00_373 = 
CAR(BgL_modulesz00_354); 
{ /* ./Module/library.scm 73 */
obj_t BgL_initzd2funzd2idz00_374;
BgL_initzd2funzd2idz00_374 = 
BGl_modulezd2initializa7ationzd2idza7zzmodule_modulez00(BgL_idz00_373); 
{ /* ./Module/library.scm 74 */

{ /* ./Module/library.scm 75 */
obj_t BgL_arg1756z00_375;obj_t BgL_arg1757z00_376;
BgL_arg1756z00_375 = 
CDR(BgL_modulesz00_354); 
{ /* ./Module/library.scm 76 */
obj_t BgL_arg1761z00_377;
{ /* ./Module/library.scm 76 */
obj_t BgL_arg1766z00_378;obj_t BgL_arg1767z00_379;
{ /* ./Module/library.scm 76 */
obj_t BgL_arg1771z00_380;obj_t BgL_arg1772z00_381;
BgL_arg1771z00_380 = 
CNST_TABLE_REF(((long)7)); 
{ /* ./Module/library.scm 76 */
obj_t BgL_arg1775z00_382;
BgL_arg1775z00_382 = 
MAKE_PAIR(BgL_idz00_373, BNIL); 
BgL_arg1772z00_381 = 
MAKE_PAIR(BgL_initzd2funzd2idz00_374, BgL_arg1775z00_382); } 
BgL_arg1766z00_378 = 
MAKE_PAIR(BgL_arg1771z00_380, BgL_arg1772z00_381); } 
{ /* ./Module/library.scm 76 */
obj_t BgL_arg1780z00_384;
{ /* ./Module/library.scm 80 */
obj_t BgL_arg1783z00_385;
{ /* ./Module/library.scm 80 */
obj_t BgL_symbolz00_598;
BgL_symbolz00_598 = BGl_za2moduleza2z00zzmodule_modulez00; 
BgL_arg1783z00_385 = 
SYMBOL_TO_STRING(BgL_symbolz00_598); } 
BgL_arg1780z00_384 = 
MAKE_PAIR(BgL_arg1783z00_385, BNIL); } 
{ /* ./Module/library.scm 76 */
obj_t BgL_auxz00_727;
BgL_auxz00_727 = 
BINT(((long)0)); 
BgL_arg1767z00_379 = 
MAKE_PAIR(BgL_auxz00_727, BgL_arg1780z00_384); } } 
BgL_arg1761z00_377 = 
MAKE_PAIR(BgL_arg1766z00_378, BgL_arg1767z00_379); } 
BgL_arg1757z00_376 = 
MAKE_PAIR(BgL_arg1761z00_377, BgL_initzd2callza2z70_355); } 
{ 
obj_t BgL_initzd2callza2z70_733;obj_t BgL_modulesz00_732;
BgL_modulesz00_732 = BgL_arg1756z00_375; 
BgL_initzd2callza2z70_733 = BgL_arg1757z00_376; 
BgL_initzd2callza2z70_355 = BgL_initzd2callza2z70_733; 
BgL_modulesz00_354 = BgL_modulesz00_732; 
goto BgL_loopz00_356;} } } } } } } } } } 
}



/* _library-finalizer */
obj_t BGl__libraryzd2finaliza7erz75zzmodule_libraryz00(obj_t BgL_envz00_600)
{ AN_OBJECT;
{ /* ./Module/library.scm 30 */
return 
BGl_libraryzd2finaliza7erz75zzmodule_libraryz00();} 
}



/* <anonymous:1650> */
obj_t BGl_zc3anonymousza31650ze3z83zzmodule_libraryz00(obj_t BgL_envz00_601, obj_t BgL_globalz00_602)
{ AN_OBJECT;
{ /* ./Module/library.scm 41 */
{ 
obj_t BgL_globalz00_320;
BgL_globalz00_320 = BgL_globalz00_602; 
{ /* ./Module/library.scm 44 */
bool_t BgL_test1651z00_323;
{ /* ./Module/library.scm 44 */
bool_t BgL_test1657z00_325;
{ /* ./Module/library.scm 44 */
long BgL_auxz00_736;
{ /* ./Module/library.scm 44 */
BgL_variablez00_bglt BgL_obj1112z00_546;
BgL_obj1112z00_546 = 
(BgL_variablez00_bglt)(BgL_globalz00_320); 
BgL_auxz00_736 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1112z00_546))->BgL_occurrencez00); } 
BgL_test1657z00_325 = 
(BgL_auxz00_736>((long)0)); } 
if(BgL_test1657z00_325)
{ /* ./Module/library.scm 45 */
bool_t BgL_test1658z00_326;
{ /* ./Module/library.scm 45 */
BgL_globalz00_bglt BgL_obj1174z00_549;
BgL_obj1174z00_549 = 
(BgL_globalz00_bglt)(BgL_globalz00_320); 
BgL_test1658z00_326 = 
(((BgL_globalz00_bglt)CREF(BgL_obj1174z00_549))->BgL_libraryzf3zf3); } 
if(BgL_test1658z00_326)
{ /* ./Module/library.scm 46 */
bool_t BgL_test1659z00_327;
{ /* ./Module/library.scm 46 */
bool_t BgL_test1660z00_328;
{ /* ./Module/library.scm 46 */
BgL_valuez00_bglt BgL_arg1666z00_330;
{ /* ./Module/library.scm 46 */
BgL_variablez00_bglt BgL_obj1100z00_550;
BgL_obj1100z00_550 = 
(BgL_variablez00_bglt)(BgL_globalz00_320); 
BgL_arg1666z00_330 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_550))->BgL_valuez00); } 
{ /* ./Module/library.scm 46 */
obj_t BgL_obj1489z00_551;
BgL_obj1489z00_551 = 
(obj_t)(BgL_arg1666z00_330); 
BgL_test1660z00_328 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1489z00_551, BGl_cfunz00zzast_varz00); } } 
if(BgL_test1660z00_328)
{ /* ./Module/library.scm 46 */
BgL_test1659z00_327 = ((bool_t)1); }  else 
{ /* ./Module/library.scm 46 */
BgL_valuez00_bglt BgL_arg1662z00_329;
{ /* ./Module/library.scm 46 */
BgL_variablez00_bglt BgL_obj1100z00_552;
BgL_obj1100z00_552 = 
(BgL_variablez00_bglt)(BgL_globalz00_320); 
BgL_arg1662z00_329 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_552))->BgL_valuez00); } 
{ /* ./Module/library.scm 46 */
obj_t BgL_obj1527z00_553;
BgL_obj1527z00_553 = 
(obj_t)(BgL_arg1662z00_329); 
BgL_test1659z00_327 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1527z00_553, BGl_cvarz00zzast_varz00); } } } 
if(BgL_test1659z00_327)
{ /* ./Module/library.scm 46 */
BgL_test1651z00_323 = ((bool_t)0); }  else 
{ /* ./Module/library.scm 46 */
BgL_test1651z00_323 = ((bool_t)1); } }  else 
{ /* ./Module/library.scm 45 */
BgL_test1651z00_323 = ((bool_t)0); } }  else 
{ /* ./Module/library.scm 44 */
BgL_test1651z00_323 = ((bool_t)0); } } 
if(BgL_test1651z00_323)
{ /* ./Module/library.scm 47 */
obj_t BgL_arg1654z00_324;
{ /* ./Module/library.scm 47 */
BgL_globalz00_bglt BgL_obj1165z00_554;
BgL_obj1165z00_554 = 
(BgL_globalz00_bglt)(BgL_globalz00_320); 
BgL_arg1654z00_324 = 
(((BgL_globalz00_bglt)CREF(BgL_obj1165z00_554))->BgL_modulez00); } 
return 
BGl_needzd2libraryzd2modulez12z12zzmodule_libraryz00(BgL_arg1654z00_324);}  else 
{ /* ./Module/library.scm 44 */
return BFALSE;} } } } 
}



/* need-library-module! */
obj_t BGl_needzd2libraryzd2modulez12z12zzmodule_libraryz00(obj_t BgL_modulez00_19)
{ AN_OBJECT;
{ /* ./Module/library.scm 96 */
{ /* ./Module/library.scm 97 */
bool_t BgL_test1791z00_387;
{ /* ./Module/library.scm 97 */
obj_t BgL_auxz00_758;
BgL_auxz00_758 = 
BGl_getpropz00zz__r4_symbols_6_4z00(BgL_modulez00_19, BGl_za2keyza2z00zzmodule_libraryz00); 
BgL_test1791z00_387 = 
CBOOL(BgL_auxz00_758); } 
if(BgL_test1791z00_387)
{ /* ./Module/library.scm 97 */
return BFALSE;}  else 
{ /* ./Module/library.scm 97 */
BGl_putpropz12z12zz__r4_symbols_6_4z00(BgL_modulez00_19, BGl_za2keyza2z00zzmodule_libraryz00, BTRUE); 
return ( 
BGl_za2neededzd2modulesza2zd2zzmodule_libraryz00 = 
MAKE_PAIR(BgL_modulez00_19, BGl_za2neededzd2modulesza2zd2zzmodule_libraryz00), BUNSPEC) ;} } } 
}



/* with-library-module! */
BGL_EXPORTED_DEF obj_t BGl_withzd2libraryzd2modulez12z12zzmodule_libraryz00(obj_t BgL_modulez00_20)
{ AN_OBJECT;
{ /* ./Module/library.scm 115 */
{ /* ./Module/library.scm 116 */
bool_t BgL_test1795z00_388;
{ /* ./Module/library.scm 116 */
obj_t BgL_auxz00_764;
BgL_auxz00_764 = 
BGl_getpropz00zz__r4_symbols_6_4z00(BgL_modulez00_20, BGl_za2withzd2keyza2zd2zzmodule_libraryz00); 
BgL_test1795z00_388 = 
CBOOL(BgL_auxz00_764); } 
if(BgL_test1795z00_388)
{ /* ./Module/library.scm 116 */
return BFALSE;}  else 
{ /* ./Module/library.scm 116 */
BGl_putpropz12z12zz__r4_symbols_6_4z00(BgL_modulez00_20, BGl_za2withzd2keyza2zd2zzmodule_libraryz00, BTRUE); 
return ( 
BGl_za2withzd2libraryzd2modulesza2z00zzmodule_libraryz00 = 
MAKE_PAIR(BgL_modulez00_20, BGl_za2withzd2libraryzd2modulesza2z00zzmodule_libraryz00), BUNSPEC) ;} } } 
}



/* _with-library-module!1912 */
obj_t BGl__withzd2libraryzd2modulez121912z12zzmodule_libraryz00(obj_t BgL_envz00_603, obj_t BgL_modulez00_604)
{ AN_OBJECT;
{ /* ./Module/library.scm 115 */
return 
BGl_withzd2libraryzd2modulez12z12zzmodule_libraryz00(BgL_modulez00_604);} 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzmodule_libraryz00()
{ AN_OBJECT;
{ /* ./Module/library.scm 15 */
return BUNSPEC;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzmodule_libraryz00()
{ AN_OBJECT;
{ /* ./Module/library.scm 15 */
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "module_library"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "module_library"); 
BGl_modulezd2initializa7ationz75zzast_envz00(((long)62031), "module_library"); 
BGl_modulezd2initializa7ationz75zzmodule_modulez00(((long)8699), "module_library"); 
BGl_modulezd2initializa7ationz75zzmodule_impusez00(((long)12782), "module_library"); 
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "module_library"); 
return 
BGl_modulezd2initializa7ationz75zzbdb_settingz00(((long)20468), "module_library");} 
}

