/*===========================================================================*/
/*   (Globalize/integration.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 Globalize/integration.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_nodez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
} *BgL_nodez00_bglt;

typedef struct BgL_nodezf2effectzf2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
} *BgL_nodezf2effectzf2_bglt;

typedef struct BgL_atomz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_valuez00;
} *BgL_atomz00_bglt;

typedef struct BgL_varz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_variablez00_bgl * BgL_variablez00;
} *BgL_varz00_bglt;

typedef struct BgL_closurez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_variablez00_bgl * BgL_variablez00;
} *BgL_closurez00_bglt;

typedef struct BgL_kwotez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_valuez00;
} *BgL_kwotez00_bglt;

typedef struct BgL_sequencez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_nodesz00;
} *BgL_sequencez00_bglt;

typedef struct BgL_appz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   struct BgL_varz00_bgl * BgL_funz00;
   obj_t BgL_argsz00;
} *BgL_appz00_bglt;

typedef struct BgL_appzd2lyzd2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_nodez00_bgl * BgL_funz00;
   struct BgL_nodez00_bgl * BgL_argz00;
} *BgL_appzd2lyzd2_bglt;

typedef struct BgL_funcallz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_nodez00_bgl * BgL_funz00;
   obj_t BgL_argsz00;
   obj_t BgL_strengthz00;
} *BgL_funcallz00_bglt;

typedef struct BgL_externz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
} *BgL_externz00_bglt;

typedef struct BgL_pragmaz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_formatz00;
} *BgL_pragmaz00_bglt;

typedef struct BgL_getfieldz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_fnamez00;
   struct BgL_typez00_bgl * BgL_ftypez00;
   struct BgL_typez00_bgl * BgL_otypez00;
} *BgL_getfieldz00_bglt;

typedef struct BgL_setfieldz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_fnamez00;
   struct BgL_typez00_bgl * BgL_ftypez00;
   struct BgL_typez00_bgl * BgL_otypez00;
} *BgL_setfieldz00_bglt;

typedef struct BgL_newz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
} *BgL_newz00_bglt;

typedef struct BgL_vallocz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_czd2heapzd2formatz00;
   struct BgL_typez00_bgl * BgL_ftypez00;
   struct BgL_typez00_bgl * BgL_otypez00;
} *BgL_vallocz00_bglt;

typedef struct BgL_vrefz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_czd2formatzd2;
   struct BgL_typez00_bgl * BgL_ftypez00;
   struct BgL_typez00_bgl * BgL_otypez00;
   struct BgL_typez00_bgl * BgL_vtypez00;
} *BgL_vrefz00_bglt;

typedef struct BgL_vsetz12z12_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_czd2formatzd2;
   struct BgL_typez00_bgl * BgL_ftypez00;
   struct BgL_typez00_bgl * BgL_otypez00;
   struct BgL_typez00_bgl * BgL_vtypez00;
} *BgL_vsetz12z12_bglt;

typedef struct BgL_vlengthz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_czd2formatzd2;
   struct BgL_typez00_bgl * BgL_vtypez00;
} *BgL_vlengthz00_bglt;

typedef struct BgL_isaz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   struct BgL_typez00_bgl * BgL_classz00;
} *BgL_isaz00_bglt;

typedef struct BgL_castz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_nodez00_bgl * BgL_argz00;
} *BgL_castz00_bglt;

typedef struct BgL_setqz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_varz00_bgl * BgL_varz00;
   struct BgL_nodez00_bgl * BgL_valuez00;
} *BgL_setqz00_bglt;

typedef struct BgL_conditionalz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   struct BgL_nodez00_bgl * BgL_testz00;
   struct BgL_nodez00_bgl * BgL_truez00;
   struct BgL_nodez00_bgl * BgL_falsez00;
} *BgL_conditionalz00_bglt;

typedef struct BgL_failz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_nodez00_bgl * BgL_procz00;
   struct BgL_nodez00_bgl * BgL_msgz00;
   struct BgL_nodez00_bgl * BgL_objz00;
} *BgL_failz00_bglt;

typedef struct BgL_selectz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   struct BgL_nodez00_bgl * BgL_testz00;
   obj_t BgL_clausesz00;
   struct BgL_typez00_bgl * BgL_itemzd2typezd2;
} *BgL_selectz00_bglt;

typedef struct BgL_letzd2funzd2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_localsz00;
   struct BgL_nodez00_bgl * BgL_bodyz00;
} *BgL_letzd2funzd2_bglt;

typedef struct BgL_letzd2varzd2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_bindingsz00;
   struct BgL_nodez00_bgl * BgL_bodyz00;
   bool_t BgL_removablezf3zf3;
} *BgL_letzd2varzd2_bglt;

typedef struct BgL_setzd2exzd2itz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_varz00_bgl * BgL_varz00;
   struct BgL_nodez00_bgl * BgL_bodyz00;
} *BgL_setzd2exzd2itz00_bglt;

typedef struct BgL_jumpzd2exzd2itz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_nodez00_bgl * BgL_exitz00;
   struct BgL_nodez00_bgl * BgL_valuez00;
} *BgL_jumpzd2exzd2itz00_bglt;

typedef struct BgL_makezd2boxzd2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   struct BgL_nodez00_bgl * BgL_valuez00;
} *BgL_makezd2boxzd2_bglt;

typedef struct BgL_boxzd2refzd2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   struct BgL_varz00_bgl * BgL_varz00;
} *BgL_boxzd2refzd2_bglt;

typedef struct BgL_boxzd2setz12zc0_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_varz00_bgl * BgL_varz00;
   struct BgL_nodez00_bgl * BgL_valuez00;
} *BgL_boxzd2setz12zc0_bglt;

typedef struct BgL_sfunzf2ginfozf2_bgl {
   bool_t BgL_gzf3zf3;
   obj_t BgL_cfromz00;
   obj_t BgL_cfromza2za2;
   obj_t BgL_ctoz00;
   obj_t BgL_ctoza2za2;
   obj_t BgL_cfunctionz00;
   obj_t BgL_integratorz00;
   obj_t BgL_imarkz00;
   obj_t BgL_ownerz00;
   obj_t BgL_integratedz00;
   obj_t BgL_pluggedzd2inzd2;
   long BgL_markz00;
   obj_t BgL_freezd2markzd2;
   obj_t BgL_thezd2globalzd2;
   obj_t BgL_kapturedz00;
   obj_t BgL_newzd2bodyzd2;
   long BgL_bmarkz00;
   long BgL_umarkz00;
   obj_t BgL_freez00;
   obj_t BgL_boundz00;
} *BgL_sfunzf2ginfozf2_bglt;

typedef struct BgL_svarzf2ginfozf2_bgl {
   bool_t BgL_kapturedzf3zf3;
   long BgL_freezd2markzd2;
   long BgL_markz00;
   bool_t BgL_celledzf3zf3;
} *BgL_svarzf2ginfozf2_bglt;

typedef struct BgL_sexitzf2ginfozf2_bgl {
   bool_t BgL_gzf3zf3;
   bool_t BgL_kapturedzf3zf3;
   long BgL_freezd2markzd2;
   long BgL_markz00;
} *BgL_sexitzf2ginfozf2_bglt;

typedef struct BgL_localzf2ginfozf2_bgl {
   bool_t BgL_escapezf3zf3;
} *BgL_localzf2ginfozf2_bglt;

typedef struct BgL_globalzf2ginfozf2_bgl {
   bool_t BgL_escapezf3zf3;
   obj_t BgL_globalzd2closurezd2;
} *BgL_globalzf2ginfozf2_bglt;


static obj_t BGl_methodzd2initzd2zzglobaliza7e_integrationza7();
BGL_IMPORT obj_t open_input_string(obj_t);
static long BGl_za2escapezd2markza2zd2zzglobaliza7e_integrationza7;
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
BGL_IMPORT bool_t BGl_iszd2azf3z21zz__objectz00(obj_t, obj_t);
static long BGl_za2integratezd2markza2zd2zzglobaliza7e_integrationza7;
extern obj_t BGl_globalz00zzast_varz00;
static bool_t BGl_integratorzf3zf3zzglobaliza7e_integrationza7(obj_t);
static obj_t BGl_cnstzd2initzd2zzglobaliza7e_integrationza7();
static obj_t BGl_importedzd2moduleszd2initz00zzglobaliza7e_integrationza7();
static bool_t BGl_visiblezf3zf3zzglobaliza7e_integrationza7(BgL_localz00_bglt, obj_t);
static obj_t BGl_integratezd2inz12zc0zzglobaliza7e_integrationza7(obj_t, obj_t);
extern obj_t BGl_za2optimzd2integratezf3za2z21zzengine_paramz00;
static bool_t BGl_integratezf3zf3zzglobaliza7e_integrationza7(BgL_variablez00_bglt, BgL_localz00_bglt);
extern obj_t BGl_variablez00zzast_varz00;
static obj_t BGl_toplevelzd2initzd2zzglobaliza7e_integrationza7();
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzglobaliza7e_integrationza7(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_tracez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(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_modulezd2initializa7ationz75zzglobaliza7e_ginfoza7(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzglobaliza7e_globaliza7ez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzglobaliza7e_kaptureza7(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_errorz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
static obj_t BGl_findzd2integratorzd2zzglobaliza7e_integrationza7(BgL_localz00_bglt);
BGL_EXPORTED_DECL obj_t BGl_setzd2integrationz12zc0zzglobaliza7e_integrationza7();
static obj_t BGl_loopz00zzglobaliza7e_integrationza7(obj_t, obj_t);
extern obj_t BGl_internalzd2errorzd2zztools_errorz00(obj_t, obj_t, obj_t);
static obj_t BGl__setzd2integrationz12zc0zzglobaliza7e_integrationza7(obj_t);
extern obj_t BGl_localz00zzast_varz00;
static obj_t BGl_requirezd2initializa7ationz75zzglobaliza7e_integrationza7 = BUNSPEC;
static obj_t BGl_libraryzd2moduleszd2initz00zzglobaliza7e_integrationza7();
static obj_t BGl_findzd2integratorza2z70zzglobaliza7e_integrationza7(BgL_localz00_bglt);
static bool_t BGl_integratezf3z72z81zzglobaliza7e_integrationza7(BgL_localz00_bglt, obj_t);
extern obj_t BGl_za2G1za2z00zzglobaliza7e_globaliza7ez00;
static obj_t __cnst[ 1 ] ;


DEFINE_STRING( BGl_string3715z00zzglobaliza7e_integrationza7, BgL_bgl_string3715za700za7za7globaliza7a7e_integrationza7a73741za7, "find-integrator ", 16 );
DEFINE_STRING( BGl_string3714z00zzglobaliza7e_integrationza7, BgL_bgl_string3714za700za7za7globaliza7a7e_integrationza7a73742za7, "empty integrator*", 17 );
DEFINE_EXPORT_PROCEDURE( BGl_setzd2integrationz12zd2envz12zzglobaliza7e_integrationza7, BgL_bgl__setza7d2integrationza712za7c0za7za7globaliza7a7e_integrationza7a73743za7, BGl__setzd2integrationz12zc0zzglobaliza7e_integrationza7, 0L, 0 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzglobaliza7e_integrationza7(long BgL_checksumz00_1367, char * BgL_fromz00_1368)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzglobaliza7e_integrationza7))
{ 
BGl_requirezd2initializa7ationz75zzglobaliza7e_integrationza7 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzglobaliza7e_integrationza7(); 
BGl_cnstzd2initzd2zzglobaliza7e_integrationza7(); 
BGl_importedzd2moduleszd2initz00zzglobaliza7e_integrationza7(); 
BGl_toplevelzd2initzd2zzglobaliza7e_integrationza7(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzglobaliza7e_integrationza7()
{ AN_OBJECT;
{ /* ./Globalize/integration.scm 15 */
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "globalize_integration"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "globalize_integration"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzglobaliza7e_integrationza7()
{ AN_OBJECT;
{ /* ./Globalize/integration.scm 15 */
{ /* ./Globalize/integration.scm 15 */
obj_t BgL_cportz00_1360;
BgL_cportz00_1360 = 
open_input_string(BGl_string3715z00zzglobaliza7e_integrationza7); 
{ 
long BgL_iz00_1361;
BgL_iz00_1361 = ((long)0); 
BgL_loopz00_1362:
{ /* ./Globalize/integration.scm 15 */
bool_t BgL_test3717z00_1363;
BgL_test3717z00_1363 = 
(BgL_iz00_1361==((long)-1)); 
if(BgL_test3717z00_1363)
{ /* ./Globalize/integration.scm 15 */
return BUNSPEC;}  else 
{ /* ./Globalize/integration.scm 15 */
{ /* ./Globalize/integration.scm 15 */
obj_t BgL_arg3719z00_1364;
{ /* ./Globalize/integration.scm 15 */
obj_t BgL_list3722z00_1365;
BgL_list3722z00_1365 = 
MAKE_PAIR(BgL_cportz00_1360, BNIL); 
BgL_arg3719z00_1364 = 
BGl_readz00zz__readerz00(BgL_list3722z00_1365); } 
{ /* ./Globalize/integration.scm 15 */
int BgL_auxz00_1383;
BgL_auxz00_1383 = 
(int)(BgL_iz00_1361); 
CNST_TABLE_SET(BgL_auxz00_1383, BgL_arg3719z00_1364); } } 
{ /* ./Globalize/integration.scm 15 */
int BgL_auxz00_1366;
{ /* ./Globalize/integration.scm 15 */
long BgL_auxz00_1386;
BgL_auxz00_1386 = 
(BgL_iz00_1361-((long)1)); 
BgL_auxz00_1366 = 
(int)(BgL_auxz00_1386); } 
{ 
long BgL_iz00_1389;
BgL_iz00_1389 = 
(long)(BgL_auxz00_1366); 
BgL_iz00_1361 = BgL_iz00_1389; 
goto BgL_loopz00_1362;} } } } } } } 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzglobaliza7e_integrationza7()
{ AN_OBJECT;
{ /* ./Globalize/integration.scm 15 */
BGl_za2escapezd2markza2zd2zzglobaliza7e_integrationza7 = ((long)0); 
return ( 
BGl_za2integratezd2markza2zd2zzglobaliza7e_integrationza7 = ((long)0), BUNSPEC) ;} 
}



/* set-integration! */
BGL_EXPORTED_DEF obj_t BGl_setzd2integrationz12zc0zzglobaliza7e_integrationza7()
{ AN_OBJECT;
{ /* ./Globalize/integration.scm 31 */
{ 
obj_t BgL_l3035z00_800;
{ /* ./Globalize/integration.scm 32 */
bool_t BgL_auxz00_1391;
BgL_l3035z00_800 = BGl_za2G1za2z00zzglobaliza7e_globaliza7ez00; 
BgL_forzd2each3036zd2_801:
{ /* ./Globalize/integration.scm 32 */
bool_t BgL_test3062z00_802;
BgL_test3062z00_802 = 
PAIRP(BgL_l3035z00_800); 
if(BgL_test3062z00_802)
{ /* ./Globalize/integration.scm 32 */
{ /* ./Globalize/integration.scm 33 */
obj_t BgL_fz00_803;
BgL_fz00_803 = 
CAR(BgL_l3035z00_800); 
{ /* ./Globalize/integration.scm 33 */
obj_t BgL_gz00_804;
BgL_gz00_804 = 
BGl_findzd2integratorzd2zzglobaliza7e_integrationza7(
(BgL_localz00_bglt)(BgL_fz00_803)); 
{ /* ./Globalize/integration.scm 34 */
bool_t BgL_test3063z00_805;
BgL_test3063z00_805 = 
BGl_iszd2azf3z21zz__objectz00(BgL_gz00_804, BGl_variablez00zzast_varz00); 
if(BgL_test3063z00_805)
{ /* ./Globalize/integration.scm 34 */
BGl_integratezd2inz12zc0zzglobaliza7e_integrationza7(BgL_fz00_803, BgL_gz00_804); }  else 
{ /* ./Globalize/integration.scm 34 */
{ /* ./Globalize/integration.scm 36 */
BgL_valuez00_bglt BgL_arg3091z00_1287;
{ /* ./Globalize/integration.scm 36 */
BgL_variablez00_bglt BgL_obj1100z00_1288;
BgL_obj1100z00_1288 = 
(BgL_variablez00_bglt)(BgL_fz00_803); 
BgL_arg3091z00_1287 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1288))->BgL_valuez00); } 
{ /* ./Globalize/integration.scm 36 */
BgL_sfunzf2ginfozf2_bglt BgL_obj2762z00_1289;obj_t BgL_val2761z00_1290;
BgL_obj2762z00_1289 = 
(BgL_sfunzf2ginfozf2_bglt)(BgL_arg3091z00_1287); 
BgL_val2761z00_1290 = BFALSE; 
{ 
obj_t BgL_auxz00_1403;
{ /* ./Globalize/integration.scm 36 */
BgL_objectz00_bglt BgL_auxz00_1404;
BgL_auxz00_1404 = 
(BgL_objectz00_bglt)(BgL_obj2762z00_1289); 
BgL_auxz00_1403 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1404); } 
((((BgL_sfunzf2ginfozf2_bglt)CREF(BgL_auxz00_1403))->BgL_integratorz00) = ((obj_t)BgL_val2761z00_1290), BUNSPEC); } } } } } } } 
{ /* ./Globalize/integration.scm 32 */
obj_t BgL_arg3070z00_806;
BgL_arg3070z00_806 = 
CDR(BgL_l3035z00_800); 
{ 
obj_t BgL_l3035z00_1409;
BgL_l3035z00_1409 = BgL_arg3070z00_806; 
BgL_l3035z00_800 = BgL_l3035z00_1409; 
goto BgL_forzd2each3036zd2_801;} } }  else 
{ /* ./Globalize/integration.scm 32 */
BgL_auxz00_1391 = ((bool_t)1); } } 
return 
BBOOL(BgL_auxz00_1391);} } } 
}



/* _set-integration! */
obj_t BGl__setzd2integrationz12zc0zzglobaliza7e_integrationza7(obj_t BgL_envz00_1357)
{ AN_OBJECT;
{ /* ./Globalize/integration.scm 31 */
return 
BGl_setzd2integrationz12zc0zzglobaliza7e_integrationza7();} 
}



/* integrate-in! */
obj_t BGl_integratezd2inz12zc0zzglobaliza7e_integrationza7(obj_t BgL_fz00_1, obj_t BgL_gz00_2)
{ AN_OBJECT;
{ /* ./Globalize/integration.scm 42 */
{ /* ./Globalize/integration.scm 46 */
BgL_valuez00_bglt BgL_arg3075z00_808;
{ /* ./Globalize/integration.scm 46 */
BgL_variablez00_bglt BgL_obj1100z00_1292;
BgL_obj1100z00_1292 = 
(BgL_variablez00_bglt)(BgL_fz00_1); 
BgL_arg3075z00_808 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1292))->BgL_valuez00); } 
{ /* ./Globalize/integration.scm 46 */
BgL_sfunzf2ginfozf2_bglt BgL_obj2762z00_1293;obj_t BgL_val2761z00_1294;
BgL_obj2762z00_1293 = 
(BgL_sfunzf2ginfozf2_bglt)(BgL_arg3075z00_808); 
BgL_val2761z00_1294 = BgL_gz00_2; 
{ 
obj_t BgL_auxz00_1415;
{ /* ./Globalize/integration.scm 46 */
BgL_objectz00_bglt BgL_auxz00_1416;
BgL_auxz00_1416 = 
(BgL_objectz00_bglt)(BgL_obj2762z00_1293); 
BgL_auxz00_1415 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1416); } 
((((BgL_sfunzf2ginfozf2_bglt)CREF(BgL_auxz00_1415))->BgL_integratorz00) = ((obj_t)BgL_val2761z00_1294), BUNSPEC); } } } 
{ /* ./Globalize/integration.scm 47 */
BgL_valuez00_bglt BgL_arg3079z00_809;
{ /* ./Globalize/integration.scm 47 */
BgL_variablez00_bglt BgL_obj1100z00_1295;
BgL_obj1100z00_1295 = 
(BgL_variablez00_bglt)(BgL_fz00_1); 
BgL_arg3079z00_809 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1295))->BgL_valuez00); } 
{ /* ./Globalize/integration.scm 47 */
BgL_sfunzf2ginfozf2_bglt BgL_obj2742z00_1296;bool_t BgL_val2741z00_1297;
BgL_obj2742z00_1296 = 
(BgL_sfunzf2ginfozf2_bglt)(BgL_arg3079z00_809); 
BgL_val2741z00_1297 = ((bool_t)0); 
{ 
obj_t BgL_auxz00_1423;
{ /* ./Globalize/integration.scm 47 */
BgL_objectz00_bglt BgL_auxz00_1424;
BgL_auxz00_1424 = 
(BgL_objectz00_bglt)(BgL_obj2742z00_1296); 
BgL_auxz00_1423 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1424); } 
((((BgL_sfunzf2ginfozf2_bglt)CREF(BgL_auxz00_1423))->BgL_gzf3zf3) = ((bool_t)BgL_val2741z00_1297), BUNSPEC); } } } 
{ /* ./Globalize/integration.scm 48 */
BgL_valuez00_bglt BgL_instance3039z00_810;
{ /* ./Globalize/integration.scm 48 */
BgL_variablez00_bglt BgL_obj1100z00_1298;
BgL_obj1100z00_1298 = 
(BgL_variablez00_bglt)(BgL_gz00_2); 
BgL_instance3039z00_810 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1298))->BgL_valuez00); } 
{ /* ./Globalize/integration.scm 49 */
obj_t BgL_arg3083z00_811;
{ /* ./Globalize/integration.scm 49 */
obj_t BgL_arg3086z00_812;
{ /* ./Globalize/integration.scm 49 */
BgL_sfunzf2ginfozf2_bglt BgL_obj2769z00_1299;
BgL_obj2769z00_1299 = 
(BgL_sfunzf2ginfozf2_bglt)(BgL_instance3039z00_810); 
{ 
obj_t BgL_auxz00_1431;
{ /* ./Globalize/integration.scm 49 */
BgL_objectz00_bglt BgL_auxz00_1432;
BgL_auxz00_1432 = 
(BgL_objectz00_bglt)(BgL_obj2769z00_1299); 
BgL_auxz00_1431 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1432); } 
BgL_arg3086z00_812 = 
(((BgL_sfunzf2ginfozf2_bglt)CREF(BgL_auxz00_1431))->BgL_integratedz00); } } 
BgL_arg3083z00_811 = 
MAKE_PAIR(BgL_fz00_1, BgL_arg3086z00_812); } 
{ /* ./Globalize/integration.scm 49 */
BgL_sfunzf2ginfozf2_bglt BgL_obj2771z00_1300;obj_t BgL_val2770z00_1301;
BgL_obj2771z00_1300 = 
(BgL_sfunzf2ginfozf2_bglt)(BgL_instance3039z00_810); 
BgL_val2770z00_1301 = BgL_arg3083z00_811; 
{ 
obj_t BgL_auxz00_1438;
{ /* ./Globalize/integration.scm 49 */
BgL_objectz00_bglt BgL_auxz00_1439;
BgL_auxz00_1439 = 
(BgL_objectz00_bglt)(BgL_obj2771z00_1300); 
BgL_auxz00_1438 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1439); } 
return 
((((BgL_sfunzf2ginfozf2_bglt)CREF(BgL_auxz00_1438))->BgL_integratedz00) = ((obj_t)BgL_val2770z00_1301), BUNSPEC);} } } } } 
}



/* find-integrator */
obj_t BGl_findzd2integratorzd2zzglobaliza7e_integrationza7(BgL_localz00_bglt BgL_fz00_4)
{ AN_OBJECT;
{ /* ./Globalize/integration.scm 62 */
{ /* ./Globalize/integration.scm 73 */
obj_t BgL__andtest_3043z00_815;
BgL__andtest_3043z00_815 = BGl_za2optimzd2integratezf3za2z21zzengine_paramz00; 
if(
CBOOL(BgL__andtest_3043z00_815))
{ /* ./Globalize/integration.scm 74 */
obj_t BgL_guessz00_816;
BgL_guessz00_816 = 
BGl_findzd2integratorza2z70zzglobaliza7e_integrationza7(BgL_fz00_4); 
{ /* ./Globalize/integration.scm 76 */
bool_t BgL_test3094z00_817;
BgL_test3094z00_817 = 
NULLP(BgL_guessz00_816); 
if(BgL_test3094z00_817)
{ /* ./Globalize/integration.scm 76 */
BGl_internalzd2errorzd2zztools_errorz00(
CNST_TABLE_REF(((long)0)), BGl_string3714z00zzglobaliza7e_integrationza7, 
(obj_t)(BgL_fz00_4)); 
return BFALSE;}  else 
{ /* ./Globalize/integration.scm 82 */
bool_t BgL_test3096z00_818;
{ /* ./Globalize/integration.scm 82 */
obj_t BgL_auxz00_1451;
BgL_auxz00_1451 = 
CDR(BgL_guessz00_816); 
BgL_test3096z00_818 = 
PAIRP(BgL_auxz00_1451); } 
if(BgL_test3096z00_818)
{ /* ./Globalize/integration.scm 82 */
return BFALSE;}  else 
{ /* ./Globalize/integration.scm 86 */
bool_t BgL_test3097z00_819;
{ /* ./Globalize/integration.scm 86 */
obj_t BgL_arg3100z00_820;
BgL_arg3100z00_820 = 
CAR(BgL_guessz00_816); 
BgL_test3097z00_819 = 
BGl_integratezf3zf3zzglobaliza7e_integrationza7(
(BgL_variablez00_bglt)(BgL_fz00_4), 
(BgL_localz00_bglt)(BgL_arg3100z00_820)); } 
if(BgL_test3097z00_819)
{ /* ./Globalize/integration.scm 86 */
return 
CAR(BgL_guessz00_816);}  else 
{ /* ./Globalize/integration.scm 86 */
return BFALSE;} } } } }  else 
{ /* ./Globalize/integration.scm 73 */
return BFALSE;} } } 
}



/* integrator? */
bool_t BGl_integratorzf3zf3zzglobaliza7e_integrationza7(obj_t BgL_gz00_5)
{ AN_OBJECT;
{ /* ./Globalize/integration.scm 95 */
{ /* ./Globalize/integration.scm 96 */
bool_t BgL__ortest_3044z00_822;
BgL__ortest_3044z00_822 = 
BGl_iszd2azf3z21zz__objectz00(BgL_gz00_5, BGl_globalz00zzast_varz00); 
if(BgL__ortest_3044z00_822)
{ /* ./Globalize/integration.scm 96 */
return BgL__ortest_3044z00_822;}  else 
{ /* ./Globalize/integration.scm 97 */
bool_t BgL__andtest_3045z00_823;
BgL__andtest_3045z00_823 = 
BGl_iszd2azf3z21zz__objectz00(BgL_gz00_5, BGl_localz00zzast_varz00); 
if(BgL__andtest_3045z00_823)
{ /* ./Globalize/integration.scm 97 */
BgL_localzf2ginfozf2_bglt BgL_obj2925z00_1314;
BgL_obj2925z00_1314 = 
(BgL_localzf2ginfozf2_bglt)(BgL_gz00_5); 
{ 
obj_t BgL_auxz00_1466;
{ /* ./Globalize/integration.scm 97 */
BgL_objectz00_bglt BgL_auxz00_1467;
BgL_auxz00_1467 = 
(BgL_objectz00_bglt)(BgL_obj2925z00_1314); 
BgL_auxz00_1466 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1467); } 
return 
(((BgL_localzf2ginfozf2_bglt)CREF(BgL_auxz00_1466))->BgL_escapezf3zf3);} }  else 
{ /* ./Globalize/integration.scm 97 */
return ((bool_t)0);} } } } 
}



/* find-integrator* */
obj_t BGl_findzd2integratorza2z70zzglobaliza7e_integrationza7(BgL_localz00_bglt BgL_fz00_6)
{ AN_OBJECT;
{ /* ./Globalize/integration.scm 107 */
{ /* ./Globalize/integration.scm 108 */
long BgL_za72za7_1316;
BgL_za72za7_1316 = BGl_za2escapezd2markza2zd2zzglobaliza7e_integrationza7; 
BGl_za2escapezd2markza2zd2zzglobaliza7e_integrationza7 = 
(((long)1)+BgL_za72za7_1316); } 
{ /* ./Globalize/integration.scm 109 */
obj_t BgL_arg3115z00_827;
{ /* ./Globalize/integration.scm 109 */
BgL_sfunzf2ginfozf2_bglt BgL_obj2743z00_1318;
{ /* ./Globalize/integration.scm 109 */
BgL_valuez00_bglt BgL_auxz00_1472;
{ /* ./Globalize/integration.scm 109 */
BgL_variablez00_bglt BgL_obj1100z00_1317;
BgL_obj1100z00_1317 = 
(BgL_variablez00_bglt)(BgL_fz00_6); 
BgL_auxz00_1472 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1317))->BgL_valuez00); } 
BgL_obj2743z00_1318 = 
(BgL_sfunzf2ginfozf2_bglt)(BgL_auxz00_1472); } 
{ 
obj_t BgL_auxz00_1476;
{ /* ./Globalize/integration.scm 109 */
BgL_objectz00_bglt BgL_auxz00_1477;
BgL_auxz00_1477 = 
(BgL_objectz00_bglt)(BgL_obj2743z00_1318); 
BgL_auxz00_1476 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1477); } 
BgL_arg3115z00_827 = 
(((BgL_sfunzf2ginfozf2_bglt)CREF(BgL_auxz00_1476))->BgL_cfromz00); } } 
return 
BGl_loopz00zzglobaliza7e_integrationza7(BgL_arg3115z00_827, BNIL);} } 
}



/* loop */
obj_t BGl_loopz00zzglobaliza7e_integrationza7(obj_t BgL_cfromz00_824, obj_t BgL_escapeza2za2_825)
{ AN_OBJECT;
{ /* ./Globalize/integration.scm 109 */
BGl_loopz00zzglobaliza7e_integrationza7:
{ /* ./Globalize/integration.scm 111 */
bool_t BgL_test3122z00_830;
BgL_test3122z00_830 = 
NULLP(BgL_cfromz00_824); 
if(BgL_test3122z00_830)
{ /* ./Globalize/integration.scm 111 */
return BgL_escapeza2za2_825;}  else 
{ /* ./Globalize/integration.scm 113 */
obj_t BgL_fz00_831;
BgL_fz00_831 = 
CAR(BgL_cfromz00_824); 
{ /* ./Globalize/integration.scm 114 */
bool_t BgL_test3123z00_832;
{ /* ./Globalize/integration.scm 114 */
obj_t BgL_arg3153z00_842;
{ /* ./Globalize/integration.scm 114 */
BgL_sfunzf2ginfozf2_bglt BgL_obj2746z00_1322;
{ /* ./Globalize/integration.scm 114 */
BgL_valuez00_bglt BgL_auxz00_1485;
{ /* ./Globalize/integration.scm 114 */
BgL_variablez00_bglt BgL_obj1100z00_1321;
BgL_obj1100z00_1321 = 
(BgL_variablez00_bglt)(BgL_fz00_831); 
BgL_auxz00_1485 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1321))->BgL_valuez00); } 
BgL_obj2746z00_1322 = 
(BgL_sfunzf2ginfozf2_bglt)(BgL_auxz00_1485); } 
{ 
obj_t BgL_auxz00_1489;
{ /* ./Globalize/integration.scm 114 */
BgL_objectz00_bglt BgL_auxz00_1490;
BgL_auxz00_1490 = 
(BgL_objectz00_bglt)(BgL_obj2746z00_1322); 
BgL_auxz00_1489 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1490); } 
BgL_arg3153z00_842 = 
(((BgL_sfunzf2ginfozf2_bglt)CREF(BgL_auxz00_1489))->BgL_cfromza2za2); } } 
{ /* ./Globalize/integration.scm 114 */
obj_t BgL_auxz00_1494;
BgL_auxz00_1494 = 
BINT(BGl_za2escapezd2markza2zd2zzglobaliza7e_integrationza7); 
BgL_test3123z00_832 = 
(BgL_arg3153z00_842==BgL_auxz00_1494); } } 
if(BgL_test3123z00_832)
{ /* ./Globalize/integration.scm 115 */
obj_t BgL_arg3125z00_833;
BgL_arg3125z00_833 = 
CDR(BgL_cfromz00_824); 
{ 
obj_t BgL_cfromz00_1499;
BgL_cfromz00_1499 = BgL_arg3125z00_833; 
BgL_cfromz00_824 = BgL_cfromz00_1499; 
goto BGl_loopz00zzglobaliza7e_integrationza7;} }  else 
{ /* ./Globalize/integration.scm 114 */
{ /* ./Globalize/integration.scm 117 */
BgL_valuez00_bglt BgL_arg3129z00_834;
{ /* ./Globalize/integration.scm 117 */
BgL_variablez00_bglt BgL_obj1100z00_1324;
BgL_obj1100z00_1324 = 
(BgL_variablez00_bglt)(BgL_fz00_831); 
BgL_arg3129z00_834 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1324))->BgL_valuez00); } 
{ /* ./Globalize/integration.scm 117 */
BgL_sfunzf2ginfozf2_bglt BgL_obj2748z00_1325;obj_t BgL_val2747z00_1326;
BgL_obj2748z00_1325 = 
(BgL_sfunzf2ginfozf2_bglt)(BgL_arg3129z00_834); 
BgL_val2747z00_1326 = 
BINT(BGl_za2escapezd2markza2zd2zzglobaliza7e_integrationza7); 
{ 
obj_t BgL_auxz00_1504;
{ /* ./Globalize/integration.scm 117 */
BgL_objectz00_bglt BgL_auxz00_1505;
BgL_auxz00_1505 = 
(BgL_objectz00_bglt)(BgL_obj2748z00_1325); 
BgL_auxz00_1504 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1505); } 
((((BgL_sfunzf2ginfozf2_bglt)CREF(BgL_auxz00_1504))->BgL_cfromza2za2) = ((obj_t)BgL_val2747z00_1326), BUNSPEC); } } } 
{ /* ./Globalize/integration.scm 118 */
bool_t BgL_test3132z00_835;
BgL_test3132z00_835 = 
BGl_integratorzf3zf3zzglobaliza7e_integrationza7(BgL_fz00_831); 
if(BgL_test3132z00_835)
{ /* ./Globalize/integration.scm 118 */
{ /* ./Globalize/integration.scm 122 */
obj_t BgL_arg3134z00_836;obj_t BgL_arg3135z00_837;
BgL_arg3134z00_836 = 
CDR(BgL_cfromz00_824); 
BgL_arg3135z00_837 = 
MAKE_PAIR(BgL_fz00_831, BgL_escapeza2za2_825); 
{ 
obj_t BgL_escapeza2za2_1514;obj_t BgL_cfromz00_1513;
BgL_cfromz00_1513 = BgL_arg3134z00_836; 
BgL_escapeza2za2_1514 = BgL_arg3135z00_837; 
BgL_escapeza2za2_825 = BgL_escapeza2za2_1514; 
BgL_cfromz00_824 = BgL_cfromz00_1513; 
goto BGl_loopz00zzglobaliza7e_integrationza7;} } }  else 
{ /* ./Globalize/integration.scm 118 */
{ /* ./Globalize/integration.scm 122 */
obj_t BgL_arg3140z00_838;obj_t BgL_arg3141z00_839;
BgL_arg3140z00_838 = 
CDR(BgL_cfromz00_824); 
{ /* ./Globalize/integration.scm 123 */
obj_t BgL_arg3145z00_840;
{ /* ./Globalize/integration.scm 123 */
BgL_sfunzf2ginfozf2_bglt BgL_obj2743z00_1330;
{ /* ./Globalize/integration.scm 123 */
BgL_valuez00_bglt BgL_auxz00_1516;
{ /* ./Globalize/integration.scm 123 */
BgL_variablez00_bglt BgL_obj1100z00_1329;
BgL_obj1100z00_1329 = 
(BgL_variablez00_bglt)(BgL_fz00_831); 
BgL_auxz00_1516 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1329))->BgL_valuez00); } 
BgL_obj2743z00_1330 = 
(BgL_sfunzf2ginfozf2_bglt)(BgL_auxz00_1516); } 
{ 
obj_t BgL_auxz00_1520;
{ /* ./Globalize/integration.scm 123 */
BgL_objectz00_bglt BgL_auxz00_1521;
BgL_auxz00_1521 = 
(BgL_objectz00_bglt)(BgL_obj2743z00_1330); 
BgL_auxz00_1520 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1521); } 
BgL_arg3145z00_840 = 
(((BgL_sfunzf2ginfozf2_bglt)CREF(BgL_auxz00_1520))->BgL_cfromz00); } } 
BgL_arg3141z00_839 = 
BGl_loopz00zzglobaliza7e_integrationza7(BgL_arg3145z00_840, BgL_escapeza2za2_825); } 
{ 
obj_t BgL_escapeza2za2_1527;obj_t BgL_cfromz00_1526;
BgL_cfromz00_1526 = BgL_arg3140z00_838; 
BgL_escapeza2za2_1527 = BgL_arg3141z00_839; 
BgL_escapeza2za2_825 = BgL_escapeza2za2_1527; 
BgL_cfromz00_824 = BgL_cfromz00_1526; 
goto BGl_loopz00zzglobaliza7e_integrationza7;} } } } } } } } } 
}



/* integrate? */
bool_t BGl_integratezf3zf3zzglobaliza7e_integrationza7(BgL_variablez00_bglt BgL_fz00_7, BgL_localz00_bglt BgL_gz00_8)
{ AN_OBJECT;
{ /* ./Globalize/integration.scm 136 */
{ /* ./Globalize/integration.scm 140 */
long BgL_za71za7_1331;
BgL_za71za7_1331 = BGl_za2integratezd2markza2zd2zzglobaliza7e_integrationza7; 
BGl_za2integratezd2markza2zd2zzglobaliza7e_integrationza7 = 
(BgL_za71za7_1331+((long)1)); } 
{ /* ./Globalize/integration.scm 162 */
bool_t BgL_rz00_846;
BgL_rz00_846 = 
BGl_integratezf3z72z81zzglobaliza7e_integrationza7(BgL_gz00_8, 
(obj_t)(BgL_fz00_7)); 
return BgL_rz00_846;} } 
}



/* visible? */
bool_t BGl_visiblezf3zf3zzglobaliza7e_integrationza7(BgL_localz00_bglt BgL_gz00_1358, obj_t BgL_hz00_875)
{ AN_OBJECT;
{ /* ./Globalize/integration.scm 146 */
{ /* ./Globalize/integration.scm 143 */
bool_t BgL__ortest_3046z00_877;
{ /* ./Globalize/integration.scm 143 */
obj_t BgL_auxz00_1531;
BgL_auxz00_1531 = 
(obj_t)(BgL_gz00_1358); 
BgL__ortest_3046z00_877 = 
(BgL_hz00_875==BgL_auxz00_1531); } 
if(BgL__ortest_3046z00_877)
{ /* ./Globalize/integration.scm 143 */
return BgL__ortest_3046z00_877;}  else 
{ /* ./Globalize/integration.scm 144 */
bool_t BgL__andtest_3047z00_878;
{ /* ./Globalize/integration.scm 144 */
bool_t BgL_test3216z00_881;
BgL_test3216z00_881 = 
BGl_iszd2azf3z21zz__objectz00(BgL_hz00_875, BGl_globalz00zzast_varz00); 
if(BgL_test3216z00_881)
{ /* ./Globalize/integration.scm 144 */
BgL__andtest_3047z00_878 = ((bool_t)0); }  else 
{ /* ./Globalize/integration.scm 144 */
BgL__andtest_3047z00_878 = ((bool_t)1); } } 
if(BgL__andtest_3047z00_878)
{ /* ./Globalize/integration.scm 145 */
bool_t BgL__andtest_3048z00_879;
{ /* ./Globalize/integration.scm 145 */
bool_t BgL_testz00_1538;
{ /* ./Globalize/integration.scm 145 */
BgL_localzf2ginfozf2_bglt BgL_obj2925z00_1356;
BgL_obj2925z00_1356 = 
(BgL_localzf2ginfozf2_bglt)(BgL_hz00_875); 
{ 
obj_t BgL_auxz00_1540;
{ /* ./Globalize/integration.scm 145 */
BgL_objectz00_bglt BgL_auxz00_1541;
BgL_auxz00_1541 = 
(BgL_objectz00_bglt)(BgL_obj2925z00_1356); 
BgL_auxz00_1540 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1541); } 
BgL_testz00_1538 = 
(((BgL_localzf2ginfozf2_bglt)CREF(BgL_auxz00_1540))->BgL_escapezf3zf3); } } 
if(BgL_testz00_1538)
{ /* ./Globalize/integration.scm 145 */
BgL__andtest_3048z00_879 = ((bool_t)0); }  else 
{ /* ./Globalize/integration.scm 145 */
BgL__andtest_3048z00_879 = ((bool_t)1); } } 
if(BgL__andtest_3048z00_879)
{ /* ./Globalize/integration.scm 145 */
return 
BGl_integratezf3z72z81zzglobaliza7e_integrationza7(BgL_gz00_1358, BgL_hz00_875);}  else 
{ /* ./Globalize/integration.scm 145 */
return ((bool_t)0);} }  else 
{ /* ./Globalize/integration.scm 144 */
return ((bool_t)0);} } } } 
}



/* integrate?' */
bool_t BGl_integratezf3z72z81zzglobaliza7e_integrationza7(BgL_localz00_bglt BgL_gz00_1359, obj_t BgL_fz00_847)
{ AN_OBJECT;
{ /* ./Globalize/integration.scm 161 */
{ /* ./Globalize/integration.scm 149 */
bool_t BgL__ortest_3049z00_849;
{ /* ./Globalize/integration.scm 149 */
obj_t BgL_auxz00_1547;
BgL_auxz00_1547 = 
(obj_t)(BgL_gz00_1359); 
BgL__ortest_3049z00_849 = 
(BgL_fz00_847==BgL_auxz00_1547); } 
if(BgL__ortest_3049z00_849)
{ /* ./Globalize/integration.scm 149 */
return BgL__ortest_3049z00_849;}  else 
{ /* ./Globalize/integration.scm 150 */
bool_t BgL__andtest_3050z00_850;
{ /* ./Globalize/integration.scm 150 */
obj_t BgL_obj1300z00_1333;
BgL_obj1300z00_1333 = 
(obj_t)(BgL_gz00_1359); 
BgL__andtest_3050z00_850 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1300z00_1333, BGl_localz00zzast_varz00); } 
if(BgL__andtest_3050z00_850)
{ /* ./Globalize/integration.scm 151 */
BgL_valuez00_bglt BgL_vz00_851;
{ /* ./Globalize/integration.scm 151 */
BgL_variablez00_bglt BgL_obj1100z00_1334;
BgL_obj1100z00_1334 = 
(BgL_variablez00_bglt)(BgL_fz00_847); 
BgL_vz00_851 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1334))->BgL_valuez00); } 
{ /* ./Globalize/integration.scm 153 */
bool_t BgL__andtest_3053z00_853;
{ /* ./Globalize/integration.scm 153 */
obj_t BgL_auxz00_1556;
{ /* ./Globalize/integration.scm 153 */
BgL_sfunzf2ginfozf2_bglt BgL_obj2763z00_1335;
BgL_obj2763z00_1335 = 
(BgL_sfunzf2ginfozf2_bglt)(BgL_vz00_851); 
{ 
obj_t BgL_auxz00_1558;
{ /* ./Globalize/integration.scm 153 */
BgL_objectz00_bglt BgL_auxz00_1559;
BgL_auxz00_1559 = 
(BgL_objectz00_bglt)(BgL_obj2763z00_1335); 
BgL_auxz00_1558 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1559); } 
BgL_auxz00_1556 = 
(((BgL_sfunzf2ginfozf2_bglt)CREF(BgL_auxz00_1558))->BgL_imarkz00); } } 
BgL__andtest_3053z00_853 = 
INTEGERP(BgL_auxz00_1556); } 
if(BgL__andtest_3053z00_853)
{ /* ./Globalize/integration.scm 154 */
bool_t BgL__ortest_3054z00_854;
{ /* ./Globalize/integration.scm 154 */
obj_t BgL_arg3202z00_873;
{ /* ./Globalize/integration.scm 154 */
BgL_sfunzf2ginfozf2_bglt BgL_obj2763z00_1337;
BgL_obj2763z00_1337 = 
(BgL_sfunzf2ginfozf2_bglt)(BgL_vz00_851); 
{ 
obj_t BgL_auxz00_1566;
{ /* ./Globalize/integration.scm 154 */
BgL_objectz00_bglt BgL_auxz00_1567;
BgL_auxz00_1567 = 
(BgL_objectz00_bglt)(BgL_obj2763z00_1337); 
BgL_auxz00_1566 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1567); } 
BgL_arg3202z00_873 = 
(((BgL_sfunzf2ginfozf2_bglt)CREF(BgL_auxz00_1566))->BgL_imarkz00); } } 
{ /* ./Globalize/integration.scm 154 */
long BgL_n2z00_1339;
BgL_n2z00_1339 = BGl_za2integratezd2markza2zd2zzglobaliza7e_integrationza7; 
{ /* ./Globalize/integration.scm 154 */
long BgL_auxz00_1571;
BgL_auxz00_1571 = 
(long)CINT(BgL_arg3202z00_873); 
BgL__ortest_3054z00_854 = 
(BgL_auxz00_1571==BgL_n2z00_1339); } } } 
if(BgL__ortest_3054z00_854)
{ /* ./Globalize/integration.scm 154 */
return BgL__ortest_3054z00_854;}  else 
{ /* ./Globalize/integration.scm 155 */
bool_t BgL__andtest_3055z00_855;
{ /* ./Globalize/integration.scm 155 */
obj_t BgL_arg3198z00_872;
{ /* ./Globalize/integration.scm 155 */
BgL_sfunzf2ginfozf2_bglt BgL_obj2763z00_1340;
BgL_obj2763z00_1340 = 
(BgL_sfunzf2ginfozf2_bglt)(BgL_vz00_851); 
{ 
obj_t BgL_auxz00_1576;
{ /* ./Globalize/integration.scm 155 */
BgL_objectz00_bglt BgL_auxz00_1577;
BgL_auxz00_1577 = 
(BgL_objectz00_bglt)(BgL_obj2763z00_1340); 
BgL_auxz00_1576 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1577); } 
BgL_arg3198z00_872 = 
(((BgL_sfunzf2ginfozf2_bglt)CREF(BgL_auxz00_1576))->BgL_imarkz00); } } 
{ /* ./Globalize/integration.scm 155 */
long BgL_n2z00_1342;
BgL_n2z00_1342 = BGl_za2integratezd2markza2zd2zzglobaliza7e_integrationza7; 
{ /* ./Globalize/integration.scm 155 */
long BgL_auxz00_1581;
BgL_auxz00_1581 = 
(long)CINT(BgL_arg3198z00_872); 
BgL__andtest_3055z00_855 = 
(BgL_auxz00_1581<BgL_n2z00_1342); } } } 
if(BgL__andtest_3055z00_855)
{ /* ./Globalize/integration.scm 155 */
{ /* ./Globalize/integration.scm 157 */
BgL_sfunzf2ginfozf2_bglt BgL_obj2765z00_1343;obj_t BgL_val2764z00_1344;
BgL_obj2765z00_1343 = 
(BgL_sfunzf2ginfozf2_bglt)(BgL_vz00_851); 
BgL_val2764z00_1344 = 
BINT(BGl_za2integratezd2markza2zd2zzglobaliza7e_integrationza7); 
{ 
obj_t BgL_auxz00_1587;
{ /* ./Globalize/integration.scm 157 */
BgL_objectz00_bglt BgL_auxz00_1588;
BgL_auxz00_1588 = 
(BgL_objectz00_bglt)(BgL_obj2765z00_1343); 
BgL_auxz00_1587 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1588); } 
((((BgL_sfunzf2ginfozf2_bglt)CREF(BgL_auxz00_1587))->BgL_imarkz00) = ((obj_t)BgL_val2764z00_1344), BUNSPEC); } } 
{ /* ./Globalize/integration.scm 158 */
bool_t BgL_rz00_856;
{ /* ./Globalize/integration.scm 158 */
bool_t BgL__andtest_3056z00_857;
{ 
obj_t BgL_l3057z00_865;
{ /* ./Globalize/integration.scm 158 */
obj_t BgL_arg3183z00_867;
{ /* ./Globalize/integration.scm 158 */
BgL_sfunzf2ginfozf2_bglt BgL_obj2743z00_1345;
BgL_obj2743z00_1345 = 
(BgL_sfunzf2ginfozf2_bglt)(BgL_vz00_851); 
{ 
obj_t BgL_auxz00_1593;
{ /* ./Globalize/integration.scm 158 */
BgL_objectz00_bglt BgL_auxz00_1594;
BgL_auxz00_1594 = 
(BgL_objectz00_bglt)(BgL_obj2743z00_1345); 
BgL_auxz00_1593 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1594); } 
BgL_arg3183z00_867 = 
(((BgL_sfunzf2ginfozf2_bglt)CREF(BgL_auxz00_1593))->BgL_cfromz00); } } 
BgL_l3057z00_865 = BgL_arg3183z00_867; 
BgL_every3058z00_866:
{ /* ./Globalize/integration.scm 158 */
bool_t BgL_test3186z00_868;
BgL_test3186z00_868 = 
NULLP(BgL_l3057z00_865); 
if(BgL_test3186z00_868)
{ /* ./Globalize/integration.scm 158 */
BgL__andtest_3056z00_857 = ((bool_t)1); }  else 
{ /* ./Globalize/integration.scm 158 */
bool_t BgL_test3187z00_869;
{ /* ./Globalize/integration.scm 158 */
obj_t BgL_arg3193z00_871;
BgL_arg3193z00_871 = 
CAR(BgL_l3057z00_865); 
BgL_test3187z00_869 = 
BGl_visiblezf3zf3zzglobaliza7e_integrationza7(BgL_gz00_1359, BgL_arg3193z00_871); } 
if(BgL_test3187z00_869)
{ /* ./Globalize/integration.scm 158 */
{ /* ./Globalize/integration.scm 158 */
obj_t BgL_arg3189z00_870;
BgL_arg3189z00_870 = 
CDR(BgL_l3057z00_865); 
{ 
obj_t BgL_l3057z00_1604;
BgL_l3057z00_1604 = BgL_arg3189z00_870; 
BgL_l3057z00_865 = BgL_l3057z00_1604; 
goto BgL_every3058z00_866;} } }  else 
{ /* ./Globalize/integration.scm 158 */
BgL__andtest_3056z00_857 = ((bool_t)0); } } } } } 
if(BgL__andtest_3056z00_857)
{ 
obj_t BgL_l3059z00_858;
{ /* ./Globalize/integration.scm 159 */
obj_t BgL_arg3167z00_860;
{ /* ./Globalize/integration.scm 159 */
BgL_sfunzf2ginfozf2_bglt BgL_obj2750z00_1349;
BgL_obj2750z00_1349 = 
(BgL_sfunzf2ginfozf2_bglt)(BgL_vz00_851); 
{ 
obj_t BgL_auxz00_1607;
{ /* ./Globalize/integration.scm 159 */
BgL_objectz00_bglt BgL_auxz00_1608;
BgL_auxz00_1608 = 
(BgL_objectz00_bglt)(BgL_obj2750z00_1349); 
BgL_auxz00_1607 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1608); } 
BgL_arg3167z00_860 = 
(((BgL_sfunzf2ginfozf2_bglt)CREF(BgL_auxz00_1607))->BgL_ctoz00); } } 
BgL_l3059z00_858 = BgL_arg3167z00_860; 
BgL_every3060z00_859:
{ /* ./Globalize/integration.scm 159 */
bool_t BgL_test3170z00_861;
BgL_test3170z00_861 = 
NULLP(BgL_l3059z00_858); 
if(BgL_test3170z00_861)
{ /* ./Globalize/integration.scm 159 */
BgL_rz00_856 = ((bool_t)1); }  else 
{ /* ./Globalize/integration.scm 159 */
bool_t BgL_test3171z00_862;
{ /* ./Globalize/integration.scm 159 */
obj_t BgL_arg3177z00_864;
BgL_arg3177z00_864 = 
CAR(BgL_l3059z00_858); 
BgL_test3171z00_862 = 
BGl_visiblezf3zf3zzglobaliza7e_integrationza7(BgL_gz00_1359, BgL_arg3177z00_864); } 
if(BgL_test3171z00_862)
{ /* ./Globalize/integration.scm 159 */
{ /* ./Globalize/integration.scm 159 */
obj_t BgL_arg3173z00_863;
BgL_arg3173z00_863 = 
CDR(BgL_l3059z00_858); 
{ 
obj_t BgL_l3059z00_1618;
BgL_l3059z00_1618 = BgL_arg3173z00_863; 
BgL_l3059z00_858 = BgL_l3059z00_1618; 
goto BgL_every3060z00_859;} } }  else 
{ /* ./Globalize/integration.scm 159 */
BgL_rz00_856 = ((bool_t)0); } } } } }  else 
{ /* ./Globalize/integration.scm 158 */
BgL_rz00_856 = ((bool_t)0); } } 
if(BgL_rz00_856)
{ /* ./Globalize/integration.scm 160 */BFALSE; }  else 
{ /* ./Globalize/integration.scm 160 */
BgL_sfunzf2ginfozf2_bglt BgL_obj2765z00_1353;obj_t BgL_val2764z00_1354;
BgL_obj2765z00_1353 = 
(BgL_sfunzf2ginfozf2_bglt)(BgL_vz00_851); 
BgL_val2764z00_1354 = BFALSE; 
{ 
obj_t BgL_auxz00_1621;
{ /* ./Globalize/integration.scm 160 */
BgL_objectz00_bglt BgL_auxz00_1622;
BgL_auxz00_1622 = 
(BgL_objectz00_bglt)(BgL_obj2765z00_1353); 
BgL_auxz00_1621 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1622); } 
((((BgL_sfunzf2ginfozf2_bglt)CREF(BgL_auxz00_1621))->BgL_imarkz00) = ((obj_t)BgL_val2764z00_1354), BUNSPEC); } } 
return BgL_rz00_856;} }  else 
{ /* ./Globalize/integration.scm 155 */
return ((bool_t)0);} } }  else 
{ /* ./Globalize/integration.scm 153 */
return ((bool_t)0);} } }  else 
{ /* ./Globalize/integration.scm 150 */
return ((bool_t)0);} } } } 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzglobaliza7e_integrationza7()
{ AN_OBJECT;
{ /* ./Globalize/integration.scm 15 */
return BUNSPEC;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzglobaliza7e_integrationza7()
{ AN_OBJECT;
{ /* ./Globalize/integration.scm 15 */
BGl_modulezd2initializa7ationz75zztools_tracez00(((long)59211), "globalize_integration"); 
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "globalize_integration"); 
BGl_modulezd2initializa7ationz75zztools_shapez00(((long)30833), "globalize_integration"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "globalize_integration"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "globalize_integration"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "globalize_integration"); 
BGl_modulezd2initializa7ationz75zzglobaliza7e_ginfoza7(((long)0), "globalize_integration"); 
BGl_modulezd2initializa7ationz75zzglobaliza7e_globaliza7ez00(((long)47811), "globalize_integration"); 
BGl_modulezd2initializa7ationz75zzglobaliza7e_kaptureza7(((long)59660), "globalize_integration"); 
return 
BGl_modulezd2initializa7ationz75zztools_errorz00(((long)25566), "globalize_integration");} 
}

