/*===========================================================================*/
/*   (Ast/glo-def.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 Ast/glo-def.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_tclassz00_bgl {
   obj_t BgL_itszd2superzd2;
   obj_t BgL_slotsz00;
   struct BgL_globalz00_bgl * BgL_holderz00;
   obj_t BgL_wideningz00;
   long BgL_depthz00;
   bool_t BgL_finalzf3zf3;
   obj_t BgL_constructorz00;
   obj_t BgL_virtualzd2slotszd2numberz00;
   bool_t BgL_abstractzf3zf3;
   obj_t BgL_widezd2typezd2;
} *BgL_tclassz00_bglt;

typedef struct BgL_jclassz00_bgl {
   obj_t BgL_itszd2superzd2;
   obj_t BgL_slotsz00;
   obj_t BgL_packagez00;
} *BgL_jclassz00_bglt;

typedef struct BgL_wclassz00_bgl {
   obj_t BgL_itszd2classzd2;
} *BgL_wclassz00_bglt;


extern obj_t BGl_idzd2ofzd2idz00zzast_identz00(obj_t, obj_t);
static obj_t BGl_methodzd2initzd2zzast_glozd2defzd2();
BGL_IMPORT obj_t open_input_string(obj_t);
extern obj_t BGl_sfunz00zzast_varz00;
extern obj_t BGl_findzd2globalzf2modulez20zzast_envz00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
BGL_IMPORT bool_t BGl_iszd2azf3z21zz__objectz00(obj_t, obj_t);
extern long BGl_arityz00zztools_argsz00(obj_t);
BGL_EXPORTED_DECL bool_t BGl_checkzd2methodzd2definitionz00zzast_glozd2defzd2(obj_t, obj_t, obj_t, obj_t);
BGL_EXPORTED_DECL BgL_globalz00_bglt BGl_defzd2globalzd2sfunzd2nozd2warningz12z12zzast_glozd2defzd2(obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
extern obj_t BGl_tclassz00zzobject_classz00;
BGL_IMPORT bool_t BGl_equalzf3zf3zz__r4_equivalence_6_2z00(obj_t, obj_t);
extern obj_t BGl_svarz00zzast_varz00;
extern obj_t BGl_za2_za2z00zztype_cachez00;
extern obj_t BGl_globalz00zzast_varz00;
extern BgL_typez00_bglt BGl_typezd2ofzd2idz00zzast_identz00(obj_t, obj_t);
extern obj_t BGl_findzd2locationzd2zztools_locationz00(obj_t);
extern obj_t BGl_typez00zztype_typez00;
static bool_t BGl_compatiblezd2typezf3z21zzast_glozd2defzd2(bool_t, BgL_typez00_bglt, BgL_typez00_bglt);
static BgL_globalz00_bglt BGl_checkzd2svarzd2definitionz00zzast_glozd2defzd2(obj_t, obj_t, obj_t);
extern BgL_globalz00_bglt BGl_declarezd2globalzd2sfunz12z12zzast_glozd2declzd2(obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
extern obj_t BGl_enterzd2functionzd2zztools_errorz00(obj_t);
extern obj_t BGl_za2bdbzd2debugza2zd2zzengine_paramz00;
static obj_t BGl_cnstzd2initzd2zzast_glozd2defzd2();
extern obj_t BGl_leavezd2functionzd2zztools_errorz00();
static BgL_globalz00_bglt BGl_checkzd2sfunzd2definitionz00zzast_glozd2defzd2(obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
static obj_t BGl_importedzd2moduleszd2initz00zzast_glozd2defzd2();
static obj_t BGl__defzd2globalzd2sfunzd2nozd2warningz123687z12zzast_glozd2defzd2(obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
static obj_t BGl__defzd2globalzd2scnstz123691z12zzast_glozd2defzd2(obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
extern BgL_globalz00_bglt BGl_declarezd2globalzd2svarz12z12zzast_glozd2declzd2(obj_t, obj_t, obj_t, obj_t, obj_t);
BGL_IMPORT obj_t string_append_3(obj_t, obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzast_glozd2defzd2(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_tracez00(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_modulezd2initializa7ationz75zzast_envz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_identz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_glozd2declzd2(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_removez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_envz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_argsz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_errorz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_locationz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_dssslz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzobject_classz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__errorz00(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_equivalence_6_2z00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(long, char *);
extern obj_t BGl_userzd2errorzd2zztools_errorz00(obj_t, obj_t, obj_t, obj_t);
extern obj_t BGl_findzd2globalzd2zzast_envz00(obj_t, obj_t);
BGL_IMPORT long bgl_list_length(obj_t);
BGL_EXPORTED_DECL BgL_globalz00_bglt BGl_defzd2globalzd2svarz12z12zzast_glozd2defzd2(obj_t, obj_t, obj_t, obj_t);
extern obj_t BGl_removezd2varzd2fromz12z12zzast_removez00(obj_t, BgL_variablez00_bglt);
static obj_t BGl__defzd2globalzd2svarz123693z12zzast_glozd2defzd2(obj_t, obj_t, obj_t, obj_t, obj_t);
extern obj_t BGl_shapez00zztools_shapez00(obj_t);
extern obj_t BGl_dssslzd2formalszd2encodingz00zztools_dssslz00(obj_t);
BGL_EXPORTED_DECL BgL_globalz00_bglt BGl_defzd2globalzd2sfunz12z12zzast_glozd2defzd2(obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
extern BgL_globalz00_bglt BGl_declarezd2globalzd2scnstz12z12zzast_glozd2declzd2(obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
static obj_t BGl__defzd2globalzd2sfunz123689z12zzast_glozd2defzd2(obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
static obj_t BGl__checkzd2methodzd2definitionz00zzast_glozd2defzd2(obj_t, obj_t, obj_t, obj_t, obj_t);
extern obj_t BGl_internalzd2errorzd2zztools_errorz00(obj_t, obj_t, obj_t);
extern obj_t BGl_localz00zzast_varz00;
BGL_EXPORTED_DECL BgL_globalz00_bglt BGl_defzd2globalzd2scnstz12z12zzast_glozd2defzd2(obj_t, obj_t, obj_t, obj_t, obj_t);
extern obj_t BGl_za2objza2z00zztype_cachez00;
static BgL_globalz00_bglt BGl_mismatchzd2errorzd2zzast_glozd2defzd2(BgL_globalz00_bglt, obj_t, obj_t);
static obj_t BGl_requirezd2initializa7ationz75zzast_glozd2defzd2 = BUNSPEC;
BGL_IMPORT obj_t BGl_za2warningza2z00zz__errorz00;
extern obj_t BGl_parsezd2idzd2zzast_identz00(obj_t, obj_t);
static obj_t BGl_libraryzd2moduleszd2initz00zzast_glozd2defzd2();
extern bool_t BGl_typezd2subclasszf3z21zzobject_classz00(BgL_typez00_bglt, BgL_typez00_bglt);
static obj_t __cnst[ 5 ] ;


DEFINE_EXPORT_PROCEDURE( BGl_defzd2globalzd2sfunzd2nozd2warningz12zd2envzc0zzast_glozd2defzd2, BgL_bgl__defza7d2globalza7d2sfunza7d2noza7d2warningza7123687za712za7za7ast_gloza7d2defza7d23857z00, BGl__defzd2globalzd2sfunzd2nozd2warningz123687z12zzast_glozd2defzd2, 0L, 8 );
DEFINE_EXPORT_PROCEDURE( BGl_defzd2globalzd2sfunz12zd2envzc0zzast_glozd2defzd2, BgL_bgl__defza7d2globalza7d2sfunza7123689za712za7za7ast_gloza7d2defza7d23858z00, BGl__defzd2globalzd2sfunz123689z12zzast_glozd2defzd2, 0L, 8 );
DEFINE_EXPORT_PROCEDURE( BGl_defzd2globalzd2svarz12zd2envzc0zzast_glozd2defzd2, BgL_bgl__defza7d2globalza7d2svarza7123693za712za7za7ast_gloza7d2defza7d23859z00, BGl__defzd2globalzd2svarz123693z12zzast_glozd2defzd2, 0L, 4 );
DEFINE_EXPORT_PROCEDURE( BGl_checkzd2methodzd2definitionzd2envzd2zzast_glozd2defzd2, BgL_bgl__checkza7d2methodza7d2definitionza700za7za7ast_gloza7d2defza7d23860za7, BGl__checkzd2methodzd2definitionz00zzast_glozd2defzd2, 0L, 4 );
DEFINE_STRING( BGl_string3829z00zzast_glozd2defzd2, BgL_bgl_string3829za700za7za7ast_gloza7d2defza7d23861za7, "bigloo now sgfun static export ", 31 );
DEFINE_STRING( BGl_string3828z00zzast_glozd2defzd2, BgL_bgl_string3828za700za7za7ast_gloza7d2defza7d23862za7, " ", 1 );
DEFINE_STRING( BGl_string3827z00zzast_glozd2defzd2, BgL_bgl_string3827za700za7za7ast_gloza7d2defza7d23863za7, "Prototype and definition don't match", 36 );
DEFINE_STRING( BGl_string3826z00zzast_glozd2defzd2, BgL_bgl_string3826za700za7za7ast_gloza7d2defza7d23864za7, "(incompatible variable type)", 28 );
DEFINE_STRING( BGl_string3825z00zzast_glozd2defzd2, BgL_bgl_string3825za700za7za7ast_gloza7d2defza7d23865za7, "Illegal type for global variable", 32 );
DEFINE_STRING( BGl_string3824z00zzast_glozd2defzd2, BgL_bgl_string3824za700za7za7ast_gloza7d2defza7d23866za7, "(arity differs)", 15 );
DEFINE_STRING( BGl_string3823z00zzast_glozd2defzd2, BgL_bgl_string3823za700za7za7ast_gloza7d2defza7d23867za7, "(incompatible function type result)", 35 );
DEFINE_STRING( BGl_string3822z00zzast_glozd2defzd2, BgL_bgl_string3822za700za7za7ast_gloza7d2defza7d23868za7, "(incompatible Dsssl prototype)", 30 );
DEFINE_STRING( BGl_string3821z00zzast_glozd2defzd2, BgL_bgl_string3821za700za7za7ast_gloza7d2defza7d23869za7, "(incompatible formal type)", 26 );
DEFINE_STRING( BGl_string3820z00zzast_glozd2defzd2, BgL_bgl_string3820za700za7za7ast_gloza7d2defza7d23870za7, "unexpected generic arg", 22 );
DEFINE_STRING( BGl_string3819z00zzast_glozd2defzd2, BgL_bgl_string3819za700za7za7ast_gloza7d2defza7d23871za7, "check-method-definition", 23 );
DEFINE_EXPORT_PROCEDURE( BGl_defzd2globalzd2scnstz12zd2envzc0zzast_glozd2defzd2, BgL_bgl__defza7d2globalza7d2scnstza7123691za712za7za7ast_gloza7d2defza7d23872z00, BGl__defzd2globalzd2scnstz123691z12zzast_glozd2defzd2, 0L, 5 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzast_glozd2defzd2(long BgL_checksumz00_1525, char * BgL_fromz00_1526)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzast_glozd2defzd2))
{ 
BGl_requirezd2initializa7ationz75zzast_glozd2defzd2 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzast_glozd2defzd2(); 
BGl_cnstzd2initzd2zzast_glozd2defzd2(); 
BGl_importedzd2moduleszd2initz00zzast_glozd2defzd2(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzast_glozd2defzd2()
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 15 */
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(((long)0), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(((long)0), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zz__errorz00(((long)0), "ast_glo-def"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzast_glozd2defzd2()
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 15 */
{ /* ./Ast/glo-def.scm 15 */
obj_t BgL_cportz00_1518;
BgL_cportz00_1518 = 
open_input_string(BGl_string3829z00zzast_glozd2defzd2); 
{ 
long BgL_iz00_1519;
BgL_iz00_1519 = ((long)4); 
BgL_loopz00_1520:
{ /* ./Ast/glo-def.scm 15 */
bool_t BgL_test3831z00_1521;
BgL_test3831z00_1521 = 
(BgL_iz00_1519==((long)-1)); 
if(BgL_test3831z00_1521)
{ /* ./Ast/glo-def.scm 15 */
return BUNSPEC;}  else 
{ /* ./Ast/glo-def.scm 15 */
{ /* ./Ast/glo-def.scm 15 */
obj_t BgL_arg3833z00_1522;
{ /* ./Ast/glo-def.scm 15 */
obj_t BgL_list3836z00_1523;
BgL_list3836z00_1523 = 
MAKE_PAIR(BgL_cportz00_1518, BNIL); 
BgL_arg3833z00_1522 = 
BGl_readz00zz__readerz00(BgL_list3836z00_1523); } 
{ /* ./Ast/glo-def.scm 15 */
int BgL_auxz00_1543;
BgL_auxz00_1543 = 
(int)(BgL_iz00_1519); 
CNST_TABLE_SET(BgL_auxz00_1543, BgL_arg3833z00_1522); } } 
{ /* ./Ast/glo-def.scm 15 */
int BgL_auxz00_1524;
{ /* ./Ast/glo-def.scm 15 */
long BgL_auxz00_1546;
BgL_auxz00_1546 = 
(BgL_iz00_1519-((long)1)); 
BgL_auxz00_1524 = 
(int)(BgL_auxz00_1546); } 
{ 
long BgL_iz00_1549;
BgL_iz00_1549 = 
(long)(BgL_auxz00_1524); 
BgL_iz00_1519 = BgL_iz00_1549; 
goto BgL_loopz00_1520;} } } } } } } 
}



/* def-global-sfun-no-warning! */
BGL_EXPORTED_DEF BgL_globalz00_bglt BGl_defzd2globalzd2sfunzd2nozd2warningz12z12zzast_glozd2defzd2(obj_t BgL_idz00_1, obj_t BgL_argsz00_2, obj_t BgL_locz00_3, obj_t BgL_modz00_4, obj_t BgL_classz00_5, obj_t BgL_srczd2expzd2_6, obj_t BgL_remz00_7, obj_t BgL_nodez00_8)
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 66 */
{ /* ./Ast/glo-def.scm 67 */
obj_t BgL_warningz00_1330;
BgL_warningz00_1330 = BGl_za2warningza2z00zz__errorz00; 
BGl_za2warningza2z00zz__errorz00 = BFALSE; 
{ /* ./Ast/glo-def.scm 67 */
BgL_globalz00_bglt BgL_funz00_1331;
BgL_funz00_1331 = 
BGl_defzd2globalzd2sfunz12z12zzast_glozd2defzd2(BgL_idz00_1, BgL_argsz00_2, BgL_locz00_3, BgL_modz00_4, BgL_classz00_5, BgL_srczd2expzd2_6, BgL_remz00_7, BgL_nodez00_8); 
BGl_za2warningza2z00zz__errorz00 = BgL_warningz00_1330; 
return BgL_funz00_1331;} } } 
}



/* _def-global-sfun-no-warning!3687 */
obj_t BGl__defzd2globalzd2sfunzd2nozd2warningz123687z12zzast_glozd2defzd2(obj_t BgL_envz00_1484, obj_t BgL_idz00_1485, obj_t BgL_argsz00_1486, obj_t BgL_locz00_1487, obj_t BgL_modz00_1488, obj_t BgL_classz00_1489, obj_t BgL_srczd2expzd2_1490, obj_t BgL_remz00_1491, obj_t BgL_nodez00_1492)
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 66 */
{ /* ./Ast/glo-def.scm 67 */
BgL_globalz00_bglt BgL_auxz00_1552;
BgL_auxz00_1552 = 
BGl_defzd2globalzd2sfunzd2nozd2warningz12z12zzast_glozd2defzd2(BgL_idz00_1485, BgL_argsz00_1486, BgL_locz00_1487, BgL_modz00_1488, BgL_classz00_1489, BgL_srczd2expzd2_1490, BgL_remz00_1491, BgL_nodez00_1492); 
return 
(obj_t)(BgL_auxz00_1552);} } 
}



/* def-global-sfun! */
BGL_EXPORTED_DEF BgL_globalz00_bglt BGl_defzd2globalzd2sfunz12z12zzast_glozd2defzd2(obj_t BgL_idz00_9, obj_t BgL_argsz00_10, obj_t BgL_localsz00_11, obj_t BgL_modulez00_12, obj_t BgL_classz00_13, obj_t BgL_srczd2expzd2_14, obj_t BgL_remz00_15, obj_t BgL_nodez00_16)
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 79 */
BGl_enterzd2functionzd2zztools_errorz00(BgL_idz00_9); 
{ /* ./Ast/glo-def.scm 85 */
obj_t BgL_locz00_756;
BgL_locz00_756 = 
BGl_findzd2locationzd2zztools_locationz00(BgL_srczd2expzd2_14); 
{ /* ./Ast/glo-def.scm 85 */
obj_t BgL_idze2typeze2_757;
BgL_idze2typeze2_757 = 
BGl_parsezd2idzd2zzast_identz00(BgL_idz00_9, BgL_locz00_756); 
{ /* ./Ast/glo-def.scm 86 */
obj_t BgL_typezd2reszd2_758;
BgL_typezd2reszd2_758 = 
CDR(BgL_idze2typeze2_757); 
{ /* ./Ast/glo-def.scm 87 */
obj_t BgL_idz00_759;
BgL_idz00_759 = 
CAR(BgL_idze2typeze2_757); 
{ /* ./Ast/glo-def.scm 88 */
obj_t BgL_importz00_760;
{ /* ./Ast/glo-def.scm 89 */
bool_t BgL_test3026z00_802;
{ /* ./Ast/glo-def.scm 89 */
long BgL_n1z00_1334;
BgL_n1z00_1334 = 
(long)CINT(BGl_za2bdbzd2debugza2zd2zzengine_paramz00); 
BgL_test3026z00_802 = 
(BgL_n1z00_1334>=((long)3)); } 
if(BgL_test3026z00_802)
{ /* ./Ast/glo-def.scm 89 */
BgL_importz00_760 = 
CNST_TABLE_REF(((long)0)); }  else 
{ /* ./Ast/glo-def.scm 89 */
BgL_importz00_760 = 
CNST_TABLE_REF(((long)1)); } } 
{ /* ./Ast/glo-def.scm 89 */
obj_t BgL_oldzd2globalzd2_761;
BgL_oldzd2globalzd2_761 = 
BGl_findzd2globalzf2modulez20zzast_envz00(BgL_idz00_759, BgL_modulez00_12); 
{ /* ./Ast/glo-def.scm 92 */
BgL_globalz00_bglt BgL_globalz00_762;
{ /* ./Ast/glo-def.scm 94 */
bool_t BgL_test3021z00_801;
BgL_test3021z00_801 = 
BGl_iszd2azf3z21zz__objectz00(BgL_oldzd2globalzd2_761, BGl_globalz00zzast_varz00); 
if(BgL_test3021z00_801)
{ /* ./Ast/glo-def.scm 94 */
BgL_globalz00_762 = 
BGl_checkzd2sfunzd2definitionz00zzast_glozd2defzd2(BgL_oldzd2globalzd2_761, BgL_typezd2reszd2_758, BgL_argsz00_10, BgL_localsz00_11, BgL_classz00_13, BgL_srczd2expzd2_14); }  else 
{ /* ./Ast/glo-def.scm 94 */
BgL_globalz00_762 = 
BGl_declarezd2globalzd2sfunz12z12zzast_glozd2declzd2(BgL_idz00_759, BgL_argsz00_10, BgL_modulez00_12, BgL_importz00_760, BgL_classz00_13, BgL_srczd2expzd2_14, BFALSE); } } 
{ /* ./Ast/glo-def.scm 93 */
obj_t BgL_defzd2loczd2_763;
BgL_defzd2loczd2_763 = 
BGl_findzd2locationzd2zztools_locationz00(BgL_srczd2expzd2_14); 
{ /* ./Ast/glo-def.scm 109 */

{ /* ./Ast/glo-def.scm 110 */
bool_t BgL_test2939z00_764;
{ /* ./Ast/glo-def.scm 110 */
BgL_valuez00_bglt BgL_arg3017z00_800;
{ /* ./Ast/glo-def.scm 110 */
BgL_variablez00_bglt BgL_obj1100z00_1337;
BgL_obj1100z00_1337 = 
(BgL_variablez00_bglt)(BgL_globalz00_762); 
BgL_arg3017z00_800 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1337))->BgL_valuez00); } 
{ /* ./Ast/glo-def.scm 110 */
obj_t BgL_obj1425z00_1338;
BgL_obj1425z00_1338 = 
(obj_t)(BgL_arg3017z00_800); 
BgL_test2939z00_764 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1425z00_1338, BGl_sfunz00zzast_varz00); } } 
if(BgL_test2939z00_764)
{ /* ./Ast/glo-def.scm 110 */
{ /* ./Ast/glo-def.scm 117 */
BgL_variablez00_bglt BgL_varz00_1339;BgL_typez00_bglt BgL_newzd2typezd2_1340;
BgL_varz00_1339 = 
(BgL_variablez00_bglt)(BgL_globalz00_762); 
BgL_newzd2typezd2_1340 = 
(BgL_typez00_bglt)(BgL_typezd2reszd2_758); 
{ /* ./Ast/glo-def.scm 117 */
BgL_typez00_bglt BgL_oldzd2typezd2_1341;
BgL_oldzd2typezd2_1341 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_1339))->BgL_typez00); 
{ /* ./Ast/glo-def.scm 117 */
bool_t BgL_test3210z00_1342;
{ /* ./Ast/glo-def.scm 117 */
obj_t BgL_auxz00_1579;
BgL_auxz00_1579 = 
(obj_t)(BgL_oldzd2typezd2_1341); 
BgL_test3210z00_1342 = 
(BgL_auxz00_1579==BGl_za2_za2z00zztype_cachez00); } 
if(BgL_test3210z00_1342)
{ /* ./Ast/glo-def.scm 117 */
BgL_variablez00_bglt BgL_obj1099z00_1344;BgL_typez00_bglt BgL_val1098z00_1345;
BgL_obj1099z00_1344 = BgL_varz00_1339; 
BgL_val1098z00_1345 = BgL_newzd2typezd2_1340; 
((((BgL_variablez00_bglt)CREF(BgL_obj1099z00_1344))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1098z00_1345), BUNSPEC); }  else 
{ /* ./Ast/glo-def.scm 117 */BFALSE; } } } } 
{ /* ./Ast/glo-def.scm 119 */
bool_t BgL_test2941z00_765;
{ /* ./Ast/glo-def.scm 119 */
long BgL_auxz00_1586;long BgL_auxz00_1584;
{ /* ./Ast/glo-def.scm 120 */
obj_t BgL_auxz00_1587;
{ /* ./Ast/glo-def.scm 120 */
BgL_sfunz00_bglt BgL_obj1367z00_1347;
{ /* ./Ast/glo-def.scm 120 */
BgL_valuez00_bglt BgL_auxz00_1588;
{ /* ./Ast/glo-def.scm 120 */
BgL_variablez00_bglt BgL_obj1100z00_1346;
BgL_obj1100z00_1346 = 
(BgL_variablez00_bglt)(BgL_globalz00_762); 
BgL_auxz00_1588 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1346))->BgL_valuez00); } 
BgL_obj1367z00_1347 = 
(BgL_sfunz00_bglt)(BgL_auxz00_1588); } 
BgL_auxz00_1587 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1347))->BgL_argsz00); } 
BgL_auxz00_1586 = 
bgl_list_length(BgL_auxz00_1587); } 
BgL_auxz00_1584 = 
bgl_list_length(BgL_localsz00_11); 
BgL_test2941z00_765 = 
(BgL_auxz00_1584==BgL_auxz00_1586); } 
if(BgL_test2941z00_765)
{ /* ./Ast/glo-def.scm 121 */
obj_t BgL_typesz00_766;
{ /* ./Ast/glo-def.scm 121 */
obj_t BgL_l2912z00_775;
{ /* ./Ast/glo-def.scm 132 */
BgL_sfunz00_bglt BgL_obj1367z00_1351;
{ /* ./Ast/glo-def.scm 132 */
BgL_valuez00_bglt BgL_auxz00_1596;
{ /* ./Ast/glo-def.scm 132 */
BgL_variablez00_bglt BgL_obj1100z00_1350;
BgL_obj1100z00_1350 = 
(BgL_variablez00_bglt)(BgL_globalz00_762); 
BgL_auxz00_1596 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1350))->BgL_valuez00); } 
BgL_obj1367z00_1351 = 
(BgL_sfunz00_bglt)(BgL_auxz00_1596); } 
BgL_l2912z00_775 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1351))->BgL_argsz00); } 
{ /* ./Ast/glo-def.scm 121 */
bool_t BgL_test2958z00_776;
BgL_test2958z00_776 = 
NULLP(BgL_l2912z00_775); 
if(BgL_test2958z00_776)
{ /* ./Ast/glo-def.scm 121 */
BgL_typesz00_766 = BNIL; }  else 
{ /* ./Ast/glo-def.scm 121 */
obj_t BgL_head2914z00_777;
BgL_head2914z00_777 = 
MAKE_PAIR(BNIL, BNIL); 
{ 
obj_t BgL_l2912z00_778;obj_t BgL_tail2915z00_779;
BgL_l2912z00_778 = BgL_l2912z00_775; 
BgL_tail2915z00_779 = BgL_head2914z00_777; 
BgL_map2913z00_780:
{ /* ./Ast/glo-def.scm 121 */
bool_t BgL_test2960z00_781;
BgL_test2960z00_781 = 
NULLP(BgL_l2912z00_778); 
if(BgL_test2960z00_781)
{ /* ./Ast/glo-def.scm 121 */
BgL_typesz00_766 = 
CDR(BgL_head2914z00_777); }  else 
{ /* ./Ast/glo-def.scm 123 */
obj_t BgL_newtail2916z00_782;
{ /* ./Ast/glo-def.scm 123 */
obj_t BgL_arg2968z00_784;
{ /* ./Ast/glo-def.scm 123 */
obj_t BgL_az00_786;
BgL_az00_786 = 
CAR(BgL_l2912z00_778); 
{ /* ./Ast/glo-def.scm 123 */
bool_t BgL_test2971z00_787;
BgL_test2971z00_787 = 
BGl_iszd2azf3z21zz__objectz00(BgL_az00_786, BGl_localz00zzast_varz00); 
if(BgL_test2971z00_787)
{ /* ./Ast/glo-def.scm 123 */
{ /* ./Ast/glo-def.scm 124 */
BgL_variablez00_bglt BgL_obj1097z00_1359;
BgL_obj1097z00_1359 = 
(BgL_variablez00_bglt)(BgL_az00_786); 
{ /* ./Ast/glo-def.scm 124 */
BgL_typez00_bglt BgL_auxz00_1611;
BgL_auxz00_1611 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_1359))->BgL_typez00); 
BgL_arg2968z00_784 = 
(obj_t)(BgL_auxz00_1611); } } }  else 
{ /* ./Ast/glo-def.scm 125 */
bool_t BgL_test2973z00_788;
BgL_test2973z00_788 = 
BGl_iszd2azf3z21zz__objectz00(BgL_az00_786, BGl_typez00zztype_typez00); 
if(BgL_test2973z00_788)
{ /* ./Ast/glo-def.scm 125 */
BgL_arg2968z00_784 = BgL_az00_786; }  else 
{ /* ./Ast/glo-def.scm 125 */
{ /* ./Ast/glo-def.scm 128 */
obj_t BgL_arg2977z00_791;
BgL_arg2977z00_791 = 
BGl_shapez00zztools_shapez00(BgL_az00_786); 
BgL_arg2968z00_784 = 
BGl_internalzd2errorzd2zztools_errorz00(BGl_string3819z00zzast_glozd2defzd2, BGl_string3820z00zzast_glozd2defzd2, BgL_arg2977z00_791); } } } } } 
BgL_newtail2916z00_782 = 
MAKE_PAIR(BgL_arg2968z00_784, BNIL); } 
SET_CDR(BgL_tail2915z00_779, BgL_newtail2916z00_782); 
{ /* ./Ast/glo-def.scm 121 */
obj_t BgL_arg2964z00_783;
BgL_arg2964z00_783 = 
CDR(BgL_l2912z00_778); 
{ 
obj_t BgL_tail2915z00_1622;obj_t BgL_l2912z00_1621;
BgL_l2912z00_1621 = BgL_arg2964z00_783; 
BgL_tail2915z00_1622 = BgL_newtail2916z00_782; 
BgL_tail2915z00_779 = BgL_tail2915z00_1622; 
BgL_l2912z00_778 = BgL_l2912z00_1621; 
goto BgL_map2913z00_780;} } } } } } } } 
{ 
obj_t BgL_ll2917z00_767;obj_t BgL_ll2918z00_768;
BgL_ll2917z00_767 = BgL_localsz00_11; 
BgL_ll2918z00_768 = BgL_typesz00_766; 
BgL_forzd2each2919zd2_769:
{ /* ./Ast/glo-def.scm 133 */
bool_t BgL_test2943z00_770;
BgL_test2943z00_770 = 
NULLP(BgL_ll2917z00_767); 
if(BgL_test2943z00_770)
{ /* ./Ast/glo-def.scm 133 */((bool_t)1); }  else 
{ /* ./Ast/glo-def.scm 133 */
{ /* ./Ast/glo-def.scm 133 */
obj_t BgL_arg2946z00_771;obj_t BgL_arg2947z00_772;
BgL_arg2946z00_771 = 
CAR(BgL_ll2917z00_767); 
BgL_arg2947z00_772 = 
CAR(BgL_ll2918z00_768); 
{ /* ./Ast/glo-def.scm 133 */
BgL_variablez00_bglt BgL_varz00_1369;BgL_typez00_bglt BgL_newzd2typezd2_1370;
BgL_varz00_1369 = 
(BgL_variablez00_bglt)(BgL_arg2946z00_771); 
BgL_newzd2typezd2_1370 = 
(BgL_typez00_bglt)(BgL_arg2947z00_772); 
{ /* ./Ast/glo-def.scm 133 */
BgL_typez00_bglt BgL_oldzd2typezd2_1371;
BgL_oldzd2typezd2_1371 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_1369))->BgL_typez00); 
{ /* ./Ast/glo-def.scm 133 */
bool_t BgL_test3210z00_1372;
{ /* ./Ast/glo-def.scm 133 */
obj_t BgL_auxz00_1630;
BgL_auxz00_1630 = 
(obj_t)(BgL_oldzd2typezd2_1371); 
BgL_test3210z00_1372 = 
(BgL_auxz00_1630==BGl_za2_za2z00zztype_cachez00); } 
if(BgL_test3210z00_1372)
{ /* ./Ast/glo-def.scm 133 */
BgL_variablez00_bglt BgL_obj1099z00_1374;BgL_typez00_bglt BgL_val1098z00_1375;
BgL_obj1099z00_1374 = BgL_varz00_1369; 
BgL_val1098z00_1375 = BgL_newzd2typezd2_1370; 
((((BgL_variablez00_bglt)CREF(BgL_obj1099z00_1374))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1098z00_1375), BUNSPEC); }  else 
{ /* ./Ast/glo-def.scm 133 */BFALSE; } } } } } 
{ /* ./Ast/glo-def.scm 133 */
obj_t BgL_arg2952z00_773;obj_t BgL_arg2953z00_774;
BgL_arg2952z00_773 = 
CDR(BgL_ll2917z00_767); 
BgL_arg2953z00_774 = 
CDR(BgL_ll2918z00_768); 
{ 
obj_t BgL_ll2918z00_1638;obj_t BgL_ll2917z00_1637;
BgL_ll2917z00_1637 = BgL_arg2952z00_773; 
BgL_ll2918z00_1638 = BgL_arg2953z00_774; 
BgL_ll2918z00_768 = BgL_ll2918z00_1638; 
BgL_ll2917z00_767 = BgL_ll2917z00_1637; 
goto BgL_forzd2each2919zd2_769;} } } } } }  else 
{ /* ./Ast/glo-def.scm 119 */((bool_t)0); } } 
BGl_removezd2varzd2fromz12z12zzast_removez00(BgL_remz00_15, 
(BgL_variablez00_bglt)(BgL_globalz00_762)); 
{ /* ./Ast/glo-def.scm 137 */
BgL_valuez00_bglt BgL_arg3004z00_797;
{ /* ./Ast/glo-def.scm 137 */
BgL_variablez00_bglt BgL_obj1100z00_1378;
BgL_obj1100z00_1378 = 
(BgL_variablez00_bglt)(BgL_globalz00_762); 
BgL_arg3004z00_797 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1378))->BgL_valuez00); } 
{ /* ./Ast/glo-def.scm 137 */
BgL_sfunz00_bglt BgL_obj1373z00_1379;obj_t BgL_val1371z00_1380;
BgL_obj1373z00_1379 = 
(BgL_sfunz00_bglt)(BgL_arg3004z00_797); 
BgL_val1371z00_1380 = BgL_nodez00_16; 
((((BgL_sfunz00_bglt)CREF(BgL_obj1373z00_1379))->BgL_bodyz00) = ((obj_t)BgL_val1371z00_1380), BUNSPEC); } } 
{ /* ./Ast/glo-def.scm 139 */
BgL_valuez00_bglt BgL_arg3008z00_798;
{ /* ./Ast/glo-def.scm 139 */
BgL_variablez00_bglt BgL_obj1100z00_1381;
BgL_obj1100z00_1381 = 
(BgL_variablez00_bglt)(BgL_globalz00_762); 
BgL_arg3008z00_798 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1381))->BgL_valuez00); } 
{ /* ./Ast/glo-def.scm 139 */
BgL_sfunz00_bglt BgL_obj1369z00_1382;obj_t BgL_val1368z00_1383;
BgL_obj1369z00_1382 = 
(BgL_sfunz00_bglt)(BgL_arg3008z00_798); 
BgL_val1368z00_1383 = BgL_localsz00_11; 
((((BgL_sfunz00_bglt)CREF(BgL_obj1369z00_1382))->BgL_argsz00) = ((obj_t)BgL_val1368z00_1383), BUNSPEC); } } 
{ /* ./Ast/glo-def.scm 141 */
BgL_valuez00_bglt BgL_arg3012z00_799;
{ /* ./Ast/glo-def.scm 141 */
BgL_variablez00_bglt BgL_obj1100z00_1384;
BgL_obj1100z00_1384 = 
(BgL_variablez00_bglt)(BgL_globalz00_762); 
BgL_arg3012z00_799 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1384))->BgL_valuez00); } 
{ /* ./Ast/glo-def.scm 141 */
BgL_sfunz00_bglt BgL_obj1382z00_1385;obj_t BgL_val1381z00_1386;
BgL_obj1382z00_1385 = 
(BgL_sfunz00_bglt)(BgL_arg3012z00_799); 
BgL_val1381z00_1386 = BgL_defzd2loczd2_763; 
((((BgL_sfunz00_bglt)CREF(BgL_obj1382z00_1385))->BgL_locz00) = ((obj_t)BgL_val1381z00_1386), BUNSPEC); } } 
BGl_leavezd2functionzd2zztools_errorz00(); }  else 
{ /* ./Ast/glo-def.scm 110 */BFALSE; } } 
return BgL_globalz00_762;} } } } } } } } } } 
}



/* _def-global-sfun!3689 */
obj_t BGl__defzd2globalzd2sfunz123689z12zzast_glozd2defzd2(obj_t BgL_envz00_1493, obj_t BgL_idz00_1494, obj_t BgL_argsz00_1495, obj_t BgL_localsz00_1496, obj_t BgL_modulez00_1497, obj_t BgL_classz00_1498, obj_t BgL_srczd2expzd2_1499, obj_t BgL_remz00_1500, obj_t BgL_nodez00_1501)
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 79 */
{ /* ./Ast/glo-def.scm 80 */
BgL_globalz00_bglt BgL_auxz00_1654;
BgL_auxz00_1654 = 
BGl_defzd2globalzd2sfunz12z12zzast_glozd2defzd2(BgL_idz00_1494, BgL_argsz00_1495, BgL_localsz00_1496, BgL_modulez00_1497, BgL_classz00_1498, BgL_srczd2expzd2_1499, BgL_remz00_1500, BgL_nodez00_1501); 
return 
(obj_t)(BgL_auxz00_1654);} } 
}



/* check-sfun-definition */
BgL_globalz00_bglt BGl_checkzd2sfunzd2definitionz00zzast_glozd2defzd2(obj_t BgL_oldz00_17, obj_t BgL_typezd2reszd2_18, obj_t BgL_argsz00_19, obj_t BgL_localsz00_20, obj_t BgL_classz00_21, obj_t BgL_srczd2expzd2_22)
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 149 */
{ /* ./Ast/glo-def.scm 152 */
BgL_valuez00_bglt BgL_oldzd2valuezd2_803;
{ /* ./Ast/glo-def.scm 152 */
BgL_variablez00_bglt BgL_obj1100z00_1387;
BgL_obj1100z00_1387 = 
(BgL_variablez00_bglt)(BgL_oldz00_17); 
BgL_oldzd2valuezd2_803 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1387))->BgL_valuez00); } 
{ /* ./Ast/glo-def.scm 154 */
bool_t BgL_test3032z00_804;
{ /* ./Ast/glo-def.scm 154 */
obj_t BgL_obj1425z00_1388;
BgL_obj1425z00_1388 = 
(obj_t)(BgL_oldzd2valuezd2_803); 
BgL_test3032z00_804 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1425z00_1388, BGl_sfunz00zzast_varz00); } 
if(BgL_test3032z00_804)
{ /* ./Ast/glo-def.scm 156 */
bool_t BgL_test3033z00_805;
{ /* ./Ast/glo-def.scm 156 */
obj_t BgL_auxz00_1662;
{ /* ./Ast/glo-def.scm 156 */
BgL_sfunz00_bglt BgL_obj1374z00_1389;
BgL_obj1374z00_1389 = 
(BgL_sfunz00_bglt)(BgL_oldzd2valuezd2_803); 
BgL_auxz00_1662 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1374z00_1389))->BgL_classz00); } 
BgL_test3033z00_805 = 
(BgL_auxz00_1662==BgL_classz00_21); } 
if(BgL_test3033z00_805)
{ /* ./Ast/glo-def.scm 158 */
bool_t BgL_test3034z00_806;
{ /* ./Ast/glo-def.scm 158 */
long BgL_arg3118z00_849;long BgL_arg3119z00_850;
{ /* ./Ast/glo-def.scm 158 */
BgL_funz00_bglt BgL_obj1301z00_1390;
BgL_obj1301z00_1390 = 
(BgL_funz00_bglt)(BgL_oldzd2valuezd2_803); 
BgL_arg3118z00_849 = 
(((BgL_funz00_bglt)CREF(BgL_obj1301z00_1390))->BgL_arityz00); } 
BgL_arg3119z00_850 = 
BGl_arityz00zztools_argsz00(BgL_argsz00_19); 
BgL_test3034z00_806 = 
(BgL_arg3118z00_849==BgL_arg3119z00_850); } 
if(BgL_test3034z00_806)
{ /* ./Ast/glo-def.scm 160 */
bool_t BgL_test3035z00_807;
{ /* ./Ast/glo-def.scm 160 */
bool_t BgL_arg3109z00_846;BgL_typez00_bglt BgL_arg3110z00_847;
{ /* ./Ast/glo-def.scm 160 */
obj_t BgL_auxz00_1672;
BgL_auxz00_1672 = 
CNST_TABLE_REF(((long)2)); 
BgL_arg3109z00_846 = 
(BgL_auxz00_1672==BgL_classz00_21); } 
{ /* ./Ast/glo-def.scm 162 */
BgL_variablez00_bglt BgL_obj1097z00_1393;
BgL_obj1097z00_1393 = 
(BgL_variablez00_bglt)(BgL_oldz00_17); 
BgL_arg3110z00_847 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_1393))->BgL_typez00); } 
BgL_test3035z00_807 = 
BGl_compatiblezd2typezf3z21zzast_glozd2defzd2(BgL_arg3109z00_846, 
(BgL_typez00_bglt)(BgL_typezd2reszd2_18), BgL_arg3110z00_847); } 
if(BgL_test3035z00_807)
{ /* ./Ast/glo-def.scm 166 */
bool_t BgL_test3036z00_808;
{ /* ./Ast/glo-def.scm 166 */
obj_t BgL_arg3100z00_843;obj_t BgL_arg3101z00_844;
{ /* ./Ast/glo-def.scm 166 */
BgL_sfunz00_bglt BgL_obj1377z00_1394;
BgL_obj1377z00_1394 = 
(BgL_sfunz00_bglt)(BgL_oldzd2valuezd2_803); 
BgL_arg3100z00_843 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1377z00_1394))->BgL_dssslzd2keywordszd2); } 
BgL_arg3101z00_844 = 
BGl_dssslzd2formalszd2encodingz00zztools_dssslz00(BgL_argsz00_19); 
BgL_test3036z00_808 = 
BGl_equalzf3zf3zz__r4_equivalence_6_2z00(BgL_arg3100z00_843, BgL_arg3101z00_844); } 
if(BgL_test3036z00_808)
{ /* ./Ast/glo-def.scm 169 */
obj_t BgL__ortest_2920z00_809;
{ 
obj_t BgL_localsz00_810;obj_t BgL_typesz00_811;bool_t BgL_subzf3zf3_812;
{ /* ./Ast/glo-def.scm 170 */
obj_t BgL_arg3038z00_814;
{ /* ./Ast/glo-def.scm 170 */
obj_t BgL_l2921z00_815;
{ /* ./Ast/glo-def.scm 181 */
BgL_sfunz00_bglt BgL_obj1367z00_1395;
BgL_obj1367z00_1395 = 
(BgL_sfunz00_bglt)(BgL_oldzd2valuezd2_803); 
BgL_l2921z00_815 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1395))->BgL_argsz00); } 
{ /* ./Ast/glo-def.scm 170 */
bool_t BgL_test3040z00_816;
BgL_test3040z00_816 = 
NULLP(BgL_l2921z00_815); 
if(BgL_test3040z00_816)
{ /* ./Ast/glo-def.scm 170 */
BgL_arg3038z00_814 = BNIL; }  else 
{ /* ./Ast/glo-def.scm 170 */
obj_t BgL_head2923z00_817;
BgL_head2923z00_817 = 
MAKE_PAIR(BNIL, BNIL); 
{ 
obj_t BgL_l2921z00_818;obj_t BgL_tail2924z00_819;
BgL_l2921z00_818 = BgL_l2921z00_815; 
BgL_tail2924z00_819 = BgL_head2923z00_817; 
BgL_map2922z00_820:
{ /* ./Ast/glo-def.scm 170 */
bool_t BgL_test3042z00_821;
BgL_test3042z00_821 = 
NULLP(BgL_l2921z00_818); 
if(BgL_test3042z00_821)
{ /* ./Ast/glo-def.scm 170 */
BgL_arg3038z00_814 = 
CDR(BgL_head2923z00_817); }  else 
{ /* ./Ast/glo-def.scm 172 */
obj_t BgL_newtail2925z00_822;
{ /* ./Ast/glo-def.scm 172 */
obj_t BgL_arg3051z00_824;
{ /* ./Ast/glo-def.scm 172 */
obj_t BgL_az00_826;
BgL_az00_826 = 
CAR(BgL_l2921z00_818); 
{ /* ./Ast/glo-def.scm 172 */
bool_t BgL_test3054z00_827;
BgL_test3054z00_827 = 
BGl_iszd2azf3z21zz__objectz00(BgL_az00_826, BGl_localz00zzast_varz00); 
if(BgL_test3054z00_827)
{ /* ./Ast/glo-def.scm 172 */
{ /* ./Ast/glo-def.scm 173 */
BgL_variablez00_bglt BgL_obj1097z00_1403;
BgL_obj1097z00_1403 = 
(BgL_variablez00_bglt)(BgL_az00_826); 
{ /* ./Ast/glo-def.scm 173 */
BgL_typez00_bglt BgL_auxz00_1697;
BgL_auxz00_1697 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_1403))->BgL_typez00); 
BgL_arg3051z00_824 = 
(obj_t)(BgL_auxz00_1697); } } }  else 
{ /* ./Ast/glo-def.scm 174 */
bool_t BgL_test3056z00_828;
BgL_test3056z00_828 = 
BGl_iszd2azf3z21zz__objectz00(BgL_az00_826, BGl_typez00zztype_typez00); 
if(BgL_test3056z00_828)
{ /* ./Ast/glo-def.scm 174 */
BgL_arg3051z00_824 = BgL_az00_826; }  else 
{ /* ./Ast/glo-def.scm 174 */
{ /* ./Ast/glo-def.scm 177 */
obj_t BgL_arg3061z00_831;
BgL_arg3061z00_831 = 
BGl_shapez00zztools_shapez00(BgL_az00_826); 
BgL_arg3051z00_824 = 
BGl_internalzd2errorzd2zztools_errorz00(BGl_string3819z00zzast_glozd2defzd2, BGl_string3820z00zzast_glozd2defzd2, BgL_arg3061z00_831); } } } } } 
BgL_newtail2925z00_822 = 
MAKE_PAIR(BgL_arg3051z00_824, BNIL); } 
SET_CDR(BgL_tail2924z00_819, BgL_newtail2925z00_822); 
{ /* ./Ast/glo-def.scm 170 */
obj_t BgL_arg3047z00_823;
BgL_arg3047z00_823 = 
CDR(BgL_l2921z00_818); 
{ 
obj_t BgL_tail2924z00_1708;obj_t BgL_l2921z00_1707;
BgL_l2921z00_1707 = BgL_arg3047z00_823; 
BgL_tail2924z00_1708 = BgL_newtail2925z00_822; 
BgL_tail2924z00_819 = BgL_tail2924z00_1708; 
BgL_l2921z00_818 = BgL_l2921z00_1707; 
goto BgL_map2922z00_820;} } } } } } } } 
BgL_localsz00_810 = BgL_localsz00_20; 
BgL_typesz00_811 = BgL_arg3038z00_814; 
BgL_subzf3zf3_812 = ((bool_t)0); 
BgL_loopz00_813:
{ /* ./Ast/glo-def.scm 189 */
bool_t BgL_test3071z00_832;
BgL_test3071z00_832 = 
NULLP(BgL_localsz00_810); 
if(BgL_test3071z00_832)
{ /* ./Ast/glo-def.scm 189 */
{ /* ./Ast/glo-def.scm 192 */
BgL_globalz00_bglt BgL_obj1185z00_1411;obj_t BgL_val1184z00_1412;
BgL_obj1185z00_1411 = 
(BgL_globalz00_bglt)(BgL_oldz00_17); 
BgL_val1184z00_1412 = BgL_srczd2expzd2_22; 
((((BgL_globalz00_bglt)CREF(BgL_obj1185z00_1411))->BgL_srcz00) = ((obj_t)BgL_val1184z00_1412), BUNSPEC); } 
BgL__ortest_2920z00_809 = BgL_oldz00_17; }  else 
{ /* ./Ast/glo-def.scm 194 */
bool_t BgL_test3073z00_833;
{ /* ./Ast/glo-def.scm 194 */
bool_t BgL_test3083z00_837;
BgL_test3083z00_837 = 
NULLP(BgL_typesz00_811); 
if(BgL_test3083z00_837)
{ /* ./Ast/glo-def.scm 194 */
BgL_test3073z00_833 = ((bool_t)1); }  else 
{ /* ./Ast/glo-def.scm 195 */
bool_t BgL_test3084z00_838;
{ /* ./Ast/glo-def.scm 196 */
BgL_typez00_bglt BgL_arg3086z00_839;obj_t BgL_arg3087z00_840;
{ /* ./Ast/glo-def.scm 196 */
BgL_variablez00_bglt BgL_obj1097z00_1415;
{ /* ./Ast/glo-def.scm 196 */
obj_t BgL_auxz00_1715;
BgL_auxz00_1715 = 
CAR(BgL_localsz00_810); 
BgL_obj1097z00_1415 = 
(BgL_variablez00_bglt)(BgL_auxz00_1715); } 
BgL_arg3086z00_839 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_1415))->BgL_typez00); } 
BgL_arg3087z00_840 = 
CAR(BgL_typesz00_811); 
BgL_test3084z00_838 = 
BGl_compatiblezd2typezf3z21zzast_glozd2defzd2(BgL_subzf3zf3_812, BgL_arg3086z00_839, 
(BgL_typez00_bglt)(BgL_arg3087z00_840)); } 
if(BgL_test3084z00_838)
{ /* ./Ast/glo-def.scm 195 */
BgL_test3073z00_833 = ((bool_t)0); }  else 
{ /* ./Ast/glo-def.scm 195 */
BgL_test3073z00_833 = ((bool_t)1); } } } 
if(BgL_test3073z00_833)
{ /* ./Ast/glo-def.scm 194 */
{ /* ./Ast/glo-def.scm 198 */
obj_t BgL_list3075z00_834;
BgL_list3075z00_834 = 
MAKE_PAIR(BGl_string3821z00zzast_glozd2defzd2, BNIL); 
{ /* ./Ast/glo-def.scm 198 */
BgL_globalz00_bglt BgL_auxz00_1725;
BgL_auxz00_1725 = 
BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
(BgL_globalz00_bglt)(BgL_oldz00_17), BgL_srczd2expzd2_22, BgL_list3075z00_834); 
BgL__ortest_2920z00_809 = 
(obj_t)(BgL_auxz00_1725); } } }  else 
{ /* ./Ast/glo-def.scm 194 */
{ /* ./Ast/glo-def.scm 200 */
obj_t BgL_arg3078z00_835;obj_t BgL_arg3079z00_836;
BgL_arg3078z00_835 = 
CDR(BgL_localsz00_810); 
BgL_arg3079z00_836 = 
CDR(BgL_typesz00_811); 
{ 
bool_t BgL_subzf3zf3_1733;obj_t BgL_typesz00_1732;obj_t BgL_localsz00_1731;
BgL_localsz00_1731 = BgL_arg3078z00_835; 
BgL_typesz00_1732 = BgL_arg3079z00_836; 
BgL_subzf3zf3_1733 = ((bool_t)0); 
BgL_subzf3zf3_812 = BgL_subzf3zf3_1733; 
BgL_typesz00_811 = BgL_typesz00_1732; 
BgL_localsz00_810 = BgL_localsz00_1731; 
goto BgL_loopz00_813;} } } } } } } 
if(
CBOOL(BgL__ortest_2920z00_809))
{ /* ./Ast/glo-def.scm 169 */
return 
(BgL_globalz00_bglt)(BgL__ortest_2920z00_809);}  else 
{ /* ./Ast/glo-def.scm 169 */
return 
(BgL_globalz00_bglt)(BgL_oldz00_17);} }  else 
{ /* ./Ast/glo-def.scm 166 */
{ /* ./Ast/glo-def.scm 168 */
obj_t BgL_list3097z00_842;
BgL_list3097z00_842 = 
MAKE_PAIR(BGl_string3822z00zzast_glozd2defzd2, BNIL); 
return 
BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
(BgL_globalz00_bglt)(BgL_oldz00_17), BgL_srczd2expzd2_22, BgL_list3097z00_842);} } }  else 
{ /* ./Ast/glo-def.scm 160 */
{ /* ./Ast/glo-def.scm 163 */
obj_t BgL_list3106z00_845;
BgL_list3106z00_845 = 
MAKE_PAIR(BGl_string3823z00zzast_glozd2defzd2, BNIL); 
return 
BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
(BgL_globalz00_bglt)(BgL_oldz00_17), BgL_srczd2expzd2_22, BgL_list3106z00_845);} } }  else 
{ /* ./Ast/glo-def.scm 158 */
{ /* ./Ast/glo-def.scm 159 */
obj_t BgL_list3115z00_848;
BgL_list3115z00_848 = 
MAKE_PAIR(BGl_string3824z00zzast_glozd2defzd2, BNIL); 
return 
BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
(BgL_globalz00_bglt)(BgL_oldz00_17), BgL_srczd2expzd2_22, BgL_list3115z00_848);} } }  else 
{ /* ./Ast/glo-def.scm 156 */
return 
BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
(BgL_globalz00_bglt)(BgL_oldz00_17), BgL_srczd2expzd2_22, BNIL);} }  else 
{ /* ./Ast/glo-def.scm 154 */
return 
BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
(BgL_globalz00_bglt)(BgL_oldz00_17), BgL_srczd2expzd2_22, BNIL);} } } } 
}



/* def-global-scnst! */
BGL_EXPORTED_DEF BgL_globalz00_bglt BGl_defzd2globalzd2scnstz12z12zzast_glozd2defzd2(obj_t BgL_idz00_23, obj_t BgL_modulez00_24, obj_t BgL_nodez00_25, obj_t BgL_classz00_26, obj_t BgL_locz00_27)
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 209 */
BGl_enterzd2functionzd2zztools_errorz00(BgL_idz00_23); 
{ /* ./Ast/glo-def.scm 211 */
obj_t BgL_idze2typeze2_1419;
BgL_idze2typeze2_1419 = 
BGl_parsezd2idzd2zzast_identz00(BgL_idz00_23, BgL_locz00_27); 
{ /* ./Ast/glo-def.scm 211 */
obj_t BgL_idze2idze2_1420;
BgL_idze2idze2_1420 = 
CAR(BgL_idze2typeze2_1419); 
{ /* ./Ast/glo-def.scm 211 */
obj_t BgL_oldzd2globalzd2_1421;
BgL_oldzd2globalzd2_1421 = 
BGl_findzd2globalzf2modulez20zzast_envz00(BgL_idze2idze2_1420, BgL_modulez00_24); 
{ /* ./Ast/glo-def.scm 211 */
BgL_globalz00_bglt BgL_globalz00_1422;
BgL_globalz00_1422 = 
BGl_declarezd2globalzd2scnstz12z12zzast_glozd2declzd2(BgL_idz00_23, BgL_modulez00_24, 
CNST_TABLE_REF(((long)1)), BgL_nodez00_25, BgL_classz00_26, BgL_locz00_27); 
{ /* ./Ast/glo-def.scm 211 */

BGl_removezd2varzd2fromz12z12zzast_removez00(
CNST_TABLE_REF(((long)3)), 
(BgL_variablez00_bglt)(BgL_globalz00_1422)); 
BGl_leavezd2functionzd2zztools_errorz00(); 
return BgL_globalz00_1422;} } } } } } 
}



/* _def-global-scnst!3691 */
obj_t BGl__defzd2globalzd2scnstz123691z12zzast_glozd2defzd2(obj_t BgL_envz00_1502, obj_t BgL_idz00_1503, obj_t BgL_modulez00_1504, obj_t BgL_nodez00_1505, obj_t BgL_classz00_1506, obj_t BgL_locz00_1507)
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 209 */
{ /* ./Ast/glo-def.scm 210 */
BgL_globalz00_bglt BgL_auxz00_1761;
BgL_auxz00_1761 = 
BGl_defzd2globalzd2scnstz12z12zzast_glozd2defzd2(BgL_idz00_1503, BgL_modulez00_1504, BgL_nodez00_1505, BgL_classz00_1506, BgL_locz00_1507); 
return 
(obj_t)(BgL_auxz00_1761);} } 
}



/* def-global-svar! */
BGL_EXPORTED_DEF BgL_globalz00_bglt BGl_defzd2globalzd2svarz12z12zzast_glozd2defzd2(obj_t BgL_idz00_28, obj_t BgL_modulez00_29, obj_t BgL_srczd2expzd2_30, obj_t BgL_remz00_31)
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 229 */
{ /* ./Ast/glo-def.scm 230 */
obj_t BgL_locz00_858;
BgL_locz00_858 = 
BGl_findzd2locationzd2zztools_locationz00(BgL_srczd2expzd2_30); 
{ /* ./Ast/glo-def.scm 230 */
obj_t BgL_idze2typeze2_859;
BgL_idze2typeze2_859 = 
BGl_parsezd2idzd2zzast_identz00(BgL_idz00_28, BgL_locz00_858); 
{ /* ./Ast/glo-def.scm 231 */
obj_t BgL_idze2idze2_860;
BgL_idze2idze2_860 = 
CAR(BgL_idze2typeze2_859); 
{ /* ./Ast/glo-def.scm 232 */
obj_t BgL_oldzd2globalzd2_861;
BgL_oldzd2globalzd2_861 = 
BGl_findzd2globalzf2modulez20zzast_envz00(BgL_idze2idze2_860, BgL_modulez00_29); 
{ /* ./Ast/glo-def.scm 233 */
obj_t BgL_importz00_862;
{ /* ./Ast/glo-def.scm 234 */
bool_t BgL_test3169z00_877;
{ /* ./Ast/glo-def.scm 234 */
long BgL_n1z00_1425;
BgL_n1z00_1425 = 
(long)CINT(BGl_za2bdbzd2debugza2zd2zzengine_paramz00); 
BgL_test3169z00_877 = 
(BgL_n1z00_1425>=((long)3)); } 
if(BgL_test3169z00_877)
{ /* ./Ast/glo-def.scm 234 */
BgL_importz00_862 = 
CNST_TABLE_REF(((long)0)); }  else 
{ /* ./Ast/glo-def.scm 234 */
BgL_importz00_862 = 
CNST_TABLE_REF(((long)1)); } } 
{ /* ./Ast/glo-def.scm 234 */
obj_t BgL_typez00_863;
{ /* ./Ast/glo-def.scm 237 */
obj_t BgL_typez00_870;
BgL_typez00_870 = 
CDR(BgL_idze2typeze2_859); 
{ /* ./Ast/glo-def.scm 240 */
bool_t BgL_test3156z00_871;
{ /* ./Ast/glo-def.scm 240 */
obj_t BgL_auxz00_1777;obj_t BgL_auxz00_1774;
BgL_auxz00_1777 = 
CNST_TABLE_REF(((long)4)); 
{ /* ./Ast/glo-def.scm 240 */
BgL_typez00_bglt BgL_obj1010z00_1428;
BgL_obj1010z00_1428 = 
(BgL_typez00_bglt)(BgL_typez00_870); 
BgL_auxz00_1774 = 
(((BgL_typez00_bglt)CREF(BgL_obj1010z00_1428))->BgL_classz00); } 
BgL_test3156z00_871 = 
(BgL_auxz00_1774==BgL_auxz00_1777); } 
if(BgL_test3156z00_871)
{ /* ./Ast/glo-def.scm 240 */
BgL_typez00_863 = BgL_typez00_870; }  else 
{ /* ./Ast/glo-def.scm 241 */
obj_t BgL_arg3159z00_873;
BgL_arg3159z00_873 = 
BGl_shapez00zztools_shapez00(BgL_typez00_870); 
BgL_typez00_863 = 
BGl_userzd2errorzd2zztools_errorz00(BgL_idze2idze2_860, BGl_string3825z00zzast_glozd2defzd2, BgL_arg3159z00_873, BNIL); } } } 
{ /* ./Ast/glo-def.scm 237 */
BgL_globalz00_bglt BgL_globalz00_864;
{ /* ./Ast/glo-def.scm 246 */
bool_t BgL_test3152z00_869;
BgL_test3152z00_869 = 
BGl_iszd2azf3z21zz__objectz00(BgL_oldzd2globalzd2_861, BGl_globalz00zzast_varz00); 
if(BgL_test3152z00_869)
{ /* ./Ast/glo-def.scm 246 */
BgL_globalz00_864 = 
BGl_checkzd2svarzd2definitionz00zzast_glozd2defzd2(BgL_oldzd2globalzd2_861, BgL_typez00_863, BgL_srczd2expzd2_30); }  else 
{ /* ./Ast/glo-def.scm 246 */
BgL_globalz00_864 = 
BGl_declarezd2globalzd2svarz12z12zzast_glozd2declzd2(BgL_idz00_28, BgL_modulez00_29, BgL_importz00_862, BgL_srczd2expzd2_30, BFALSE); } } 
{ /* ./Ast/glo-def.scm 245 */
obj_t BgL_defzd2loczd2_865;
BgL_defzd2loczd2_865 = 
BGl_findzd2locationzd2zztools_locationz00(BgL_srczd2expzd2_30); 
{ /* ./Ast/glo-def.scm 256 */

{ /* ./Ast/glo-def.scm 258 */
BgL_variablez00_bglt BgL_varz00_1430;BgL_typez00_bglt BgL_newzd2typezd2_1431;
BgL_varz00_1430 = 
(BgL_variablez00_bglt)(BgL_globalz00_864); 
BgL_newzd2typezd2_1431 = 
(BgL_typez00_bglt)(BgL_typez00_863); 
{ /* ./Ast/glo-def.scm 258 */
BgL_typez00_bglt BgL_oldzd2typezd2_1432;
BgL_oldzd2typezd2_1432 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_1430))->BgL_typez00); 
{ /* ./Ast/glo-def.scm 258 */
bool_t BgL_test3210z00_1433;
{ /* ./Ast/glo-def.scm 258 */
obj_t BgL_auxz00_1791;
BgL_auxz00_1791 = 
(obj_t)(BgL_oldzd2typezd2_1432); 
BgL_test3210z00_1433 = 
(BgL_auxz00_1791==BGl_za2_za2z00zztype_cachez00); } 
if(BgL_test3210z00_1433)
{ /* ./Ast/glo-def.scm 258 */
BgL_variablez00_bglt BgL_obj1099z00_1435;BgL_typez00_bglt BgL_val1098z00_1436;
BgL_obj1099z00_1435 = BgL_varz00_1430; 
BgL_val1098z00_1436 = BgL_newzd2typezd2_1431; 
((((BgL_variablez00_bglt)CREF(BgL_obj1099z00_1435))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1098z00_1436), BUNSPEC); }  else 
{ /* ./Ast/glo-def.scm 258 */BFALSE; } } } } 
{ /* ./Ast/glo-def.scm 260 */
bool_t BgL_test3141z00_866;
{ /* ./Ast/glo-def.scm 260 */
BgL_valuez00_bglt BgL_arg3147z00_868;
{ /* ./Ast/glo-def.scm 260 */
BgL_variablez00_bglt BgL_obj1100z00_1437;
BgL_obj1100z00_1437 = 
(BgL_variablez00_bglt)(BgL_globalz00_864); 
BgL_arg3147z00_868 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1437))->BgL_valuez00); } 
{ /* ./Ast/glo-def.scm 260 */
obj_t BgL_obj1499z00_1438;
BgL_obj1499z00_1438 = 
(obj_t)(BgL_arg3147z00_868); 
BgL_test3141z00_866 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1499z00_1438, BGl_svarz00zzast_varz00); } } 
if(BgL_test3141z00_866)
{ /* ./Ast/glo-def.scm 262 */
BgL_valuez00_bglt BgL_arg3143z00_867;
{ /* ./Ast/glo-def.scm 262 */
BgL_variablez00_bglt BgL_obj1100z00_1439;
BgL_obj1100z00_1439 = 
(BgL_variablez00_bglt)(BgL_globalz00_864); 
BgL_arg3143z00_867 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1439))->BgL_valuez00); } 
{ /* ./Ast/glo-def.scm 262 */
BgL_svarz00_bglt BgL_obj1492z00_1440;obj_t BgL_val1491z00_1441;
BgL_obj1492z00_1440 = 
(BgL_svarz00_bglt)(BgL_arg3143z00_867); 
BgL_val1491z00_1441 = BgL_defzd2loczd2_865; 
((((BgL_svarz00_bglt)CREF(BgL_obj1492z00_1440))->BgL_locz00) = ((obj_t)BgL_val1491z00_1441), BUNSPEC); } }  else 
{ /* ./Ast/glo-def.scm 260 */BFALSE; } } 
BGl_removezd2varzd2fromz12z12zzast_removez00(BgL_remz00_31, 
(BgL_variablez00_bglt)(BgL_globalz00_864)); 
return BgL_globalz00_864;} } } } } } } } } } 
}



/* _def-global-svar!3693 */
obj_t BGl__defzd2globalzd2svarz123693z12zzast_glozd2defzd2(obj_t BgL_envz00_1508, obj_t BgL_idz00_1509, obj_t BgL_modulez00_1510, obj_t BgL_srczd2expzd2_1511, obj_t BgL_remz00_1512)
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 229 */
{ /* ./Ast/glo-def.scm 230 */
BgL_globalz00_bglt BgL_auxz00_1807;
BgL_auxz00_1807 = 
BGl_defzd2globalzd2svarz12z12zzast_glozd2defzd2(BgL_idz00_1509, BgL_modulez00_1510, BgL_srczd2expzd2_1511, BgL_remz00_1512); 
return 
(obj_t)(BgL_auxz00_1807);} } 
}



/* check-svar-definition */
BgL_globalz00_bglt BGl_checkzd2svarzd2definitionz00zzast_glozd2defzd2(obj_t BgL_oldz00_32, obj_t BgL_typez00_33, obj_t BgL_srczd2expzd2_34)
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 270 */
{ /* ./Ast/glo-def.scm 271 */
BgL_valuez00_bglt BgL_oldzd2valuezd2_878;
{ /* ./Ast/glo-def.scm 271 */
BgL_variablez00_bglt BgL_obj1100z00_1442;
BgL_obj1100z00_1442 = 
(BgL_variablez00_bglt)(BgL_oldz00_32); 
BgL_oldzd2valuezd2_878 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1442))->BgL_valuez00); } 
{ /* ./Ast/glo-def.scm 273 */
bool_t BgL_test3175z00_879;
{ /* ./Ast/glo-def.scm 273 */
obj_t BgL_obj1499z00_1443;
BgL_obj1499z00_1443 = 
(obj_t)(BgL_oldzd2valuezd2_878); 
BgL_test3175z00_879 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1499z00_1443, BGl_svarz00zzast_varz00); } 
if(BgL_test3175z00_879)
{ /* ./Ast/glo-def.scm 275 */
bool_t BgL_test3176z00_880;
{ /* ./Ast/glo-def.scm 275 */
BgL_typez00_bglt BgL_arg3181z00_882;
{ /* ./Ast/glo-def.scm 275 */
BgL_variablez00_bglt BgL_obj1097z00_1444;
BgL_obj1097z00_1444 = 
(BgL_variablez00_bglt)(BgL_oldz00_32); 
BgL_arg3181z00_882 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_1444))->BgL_typez00); } 
BgL_test3176z00_880 = 
BGl_compatiblezd2typezf3z21zzast_glozd2defzd2(((bool_t)0), 
(BgL_typez00_bglt)(BgL_typez00_33), BgL_arg3181z00_882); } 
if(BgL_test3176z00_880)
{ /* ./Ast/glo-def.scm 275 */
return 
(BgL_globalz00_bglt)(BgL_oldz00_32);}  else 
{ /* ./Ast/glo-def.scm 275 */
{ /* ./Ast/glo-def.scm 276 */
obj_t BgL_list3178z00_881;
BgL_list3178z00_881 = 
MAKE_PAIR(BGl_string3826z00zzast_glozd2defzd2, BNIL); 
return 
BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
(BgL_globalz00_bglt)(BgL_oldz00_32), BgL_srczd2expzd2_34, BgL_list3178z00_881);} } }  else 
{ /* ./Ast/glo-def.scm 273 */
return 
BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
(BgL_globalz00_bglt)(BgL_oldz00_32), BgL_srczd2expzd2_34, BNIL);} } } } 
}



/* compatible-type? */
bool_t BGl_compatiblezd2typezf3z21zzast_glozd2defzd2(bool_t BgL_subzf3zf3_35, BgL_typez00_bglt BgL_newz00_36, BgL_typez00_bglt BgL_oldz00_37)
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 283 */
{ /* ./Ast/glo-def.scm 284 */
bool_t BgL__ortest_2926z00_884;
{ /* ./Ast/glo-def.scm 284 */
obj_t BgL_auxz00_1826;
BgL_auxz00_1826 = 
(obj_t)(BgL_newz00_36); 
BgL__ortest_2926z00_884 = 
(BgL_auxz00_1826==BGl_za2_za2z00zztype_cachez00); } 
if(BgL__ortest_2926z00_884)
{ /* ./Ast/glo-def.scm 284 */
return BgL__ortest_2926z00_884;}  else 
{ /* ./Ast/glo-def.scm 285 */
bool_t BgL__ortest_2927z00_885;
{ /* ./Ast/glo-def.scm 285 */
obj_t BgL_auxz00_1832;obj_t BgL_auxz00_1830;
BgL_auxz00_1832 = 
(obj_t)(BgL_newz00_36); 
BgL_auxz00_1830 = 
(obj_t)(BgL_oldz00_37); 
BgL__ortest_2927z00_885 = 
(BgL_auxz00_1830==BgL_auxz00_1832); } 
if(BgL__ortest_2927z00_885)
{ /* ./Ast/glo-def.scm 285 */
return BgL__ortest_2927z00_885;}  else 
{ /* ./Ast/glo-def.scm 285 */
if(BgL_subzf3zf3_35)
{ /* ./Ast/glo-def.scm 287 */
bool_t BgL__ortest_2929z00_887;
BgL__ortest_2929z00_887 = 
BGl_typezd2subclasszf3z21zzobject_classz00(BgL_newz00_36, BgL_oldz00_37); 
if(BgL__ortest_2929z00_887)
{ /* ./Ast/glo-def.scm 287 */
return BgL__ortest_2929z00_887;}  else 
{ /* ./Ast/glo-def.scm 288 */
bool_t BgL__andtest_2930z00_888;
{ /* ./Ast/glo-def.scm 288 */
obj_t BgL_obj2709z00_1445;
BgL_obj2709z00_1445 = 
(obj_t)(BgL_newz00_36); 
BgL__andtest_2930z00_888 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj2709z00_1445, BGl_tclassz00zzobject_classz00); } 
if(BgL__andtest_2930z00_888)
{ /* ./Ast/glo-def.scm 288 */
obj_t BgL_auxz00_1842;
BgL_auxz00_1842 = 
(obj_t)(BgL_oldz00_37); 
return 
(BgL_auxz00_1842==BGl_za2objza2z00zztype_cachez00);}  else 
{ /* ./Ast/glo-def.scm 288 */
return ((bool_t)0);} } }  else 
{ /* ./Ast/glo-def.scm 286 */
return ((bool_t)0);} } } } } 
}



/* mismatch-error */
BgL_globalz00_bglt BGl_mismatchzd2errorzd2zzast_glozd2defzd2(BgL_globalz00_bglt BgL_globalz00_38, obj_t BgL_srczd2expzd2_39, obj_t BgL_addzd2msgzd2_40)
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 293 */
{ /* ./Ast/glo-def.scm 295 */
obj_t BgL_arg3194z00_890;obj_t BgL_arg3195z00_891;
{ /* ./Ast/glo-def.scm 295 */
bool_t BgL_test3199z00_893;
BgL_test3199z00_893 = 
PAIRP(BgL_addzd2msgzd2_40); 
if(BgL_test3199z00_893)
{ /* ./Ast/glo-def.scm 296 */
obj_t BgL_arg3202z00_895;
BgL_arg3202z00_895 = 
CAR(BgL_addzd2msgzd2_40); 
BgL_arg3194z00_890 = 
string_append_3(BGl_string3827z00zzast_glozd2defzd2, BGl_string3828z00zzast_glozd2defzd2, BgL_arg3202z00_895); }  else 
{ /* ./Ast/glo-def.scm 295 */
BgL_arg3194z00_890 = BGl_string3827z00zzast_glozd2defzd2; } } 
{ /* ./Ast/glo-def.scm 298 */
obj_t BgL_arg3207z00_896;
BgL_arg3207z00_896 = 
(((BgL_globalz00_bglt)CREF(BgL_globalz00_38))->BgL_srcz00); 
BgL_arg3195z00_891 = 
BGl_shapez00zztools_shapez00(BgL_arg3207z00_896); } 
{ /* ./Ast/glo-def.scm 295 */
obj_t BgL_list3197z00_892;
{ /* ./Ast/glo-def.scm 295 */
obj_t BgL_auxz00_1851;
BgL_auxz00_1851 = 
(obj_t)(BgL_globalz00_38); 
BgL_list3197z00_892 = 
MAKE_PAIR(BgL_auxz00_1851, BNIL); } 
{ /* ./Ast/glo-def.scm 295 */
obj_t BgL_auxz00_1854;
BgL_auxz00_1854 = 
BGl_userzd2errorzd2zztools_errorz00(BgL_arg3194z00_890, BgL_arg3195z00_891, BgL_srczd2expzd2_39, BgL_list3197z00_892); 
return 
(BgL_globalz00_bglt)(BgL_auxz00_1854);} } } } 
}



/* check-method-definition */
BGL_EXPORTED_DEF bool_t BGl_checkzd2methodzd2definitionz00zzast_glozd2defzd2(obj_t BgL_idz00_43, obj_t BgL_argsz00_44, obj_t BgL_localsz00_45, obj_t BgL_srcz00_46)
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 313 */
{ /* ./Ast/glo-def.scm 314 */
obj_t BgL_locz00_899;
BgL_locz00_899 = 
BGl_findzd2locationzd2zztools_locationz00(BgL_srcz00_46); 
{ /* ./Ast/glo-def.scm 314 */
BgL_typez00_bglt BgL_typezd2reszd2_900;
BgL_typezd2reszd2_900 = 
BGl_typezd2ofzd2idz00zzast_identz00(BgL_idz00_43, BgL_locz00_899); 
{ /* ./Ast/glo-def.scm 315 */
obj_t BgL_methodzd2idzd2_901;
BgL_methodzd2idzd2_901 = 
BGl_idzd2ofzd2idz00zzast_identz00(BgL_idz00_43, BgL_locz00_899); 
{ /* ./Ast/glo-def.scm 316 */
obj_t BgL_genericz00_902;
BgL_genericz00_902 = 
BGl_findzd2globalzd2zzast_envz00(BgL_idz00_43, BNIL); 
{ /* ./Ast/glo-def.scm 317 */

{ /* ./Ast/glo-def.scm 318 */
bool_t BgL_test3214z00_903;
BgL_test3214z00_903 = 
BGl_iszd2azf3z21zz__objectz00(BgL_genericz00_902, BGl_globalz00zzast_varz00); 
if(BgL_test3214z00_903)
{ /* ./Ast/glo-def.scm 322 */
BgL_valuez00_bglt BgL_genericzd2valuezd2_904;
{ /* ./Ast/glo-def.scm 322 */
BgL_variablez00_bglt BgL_obj1100z00_1455;
BgL_obj1100z00_1455 = 
(BgL_variablez00_bglt)(BgL_genericz00_902); 
BgL_genericzd2valuezd2_904 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1455))->BgL_valuez00); } 
{ /* ./Ast/glo-def.scm 324 */
bool_t BgL_test3215z00_905;
{ /* ./Ast/glo-def.scm 324 */
obj_t BgL_obj1425z00_1456;
BgL_obj1425z00_1456 = 
(obj_t)(BgL_genericzd2valuezd2_904); 
BgL_test3215z00_905 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1425z00_1456, BGl_sfunz00zzast_varz00); } 
if(BgL_test3215z00_905)
{ /* ./Ast/glo-def.scm 327 */
bool_t BgL_test3216z00_906;
{ /* ./Ast/glo-def.scm 327 */
obj_t BgL_auxz00_1871;obj_t BgL_auxz00_1868;
BgL_auxz00_1871 = 
CNST_TABLE_REF(((long)2)); 
{ /* ./Ast/glo-def.scm 327 */
BgL_sfunz00_bglt BgL_obj1374z00_1457;
BgL_obj1374z00_1457 = 
(BgL_sfunz00_bglt)(BgL_genericzd2valuezd2_904); 
BgL_auxz00_1868 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1374z00_1457))->BgL_classz00); } 
BgL_test3216z00_906 = 
(BgL_auxz00_1868==BgL_auxz00_1871); } 
if(BgL_test3216z00_906)
{ /* ./Ast/glo-def.scm 330 */
bool_t BgL_test3217z00_907;
{ /* ./Ast/glo-def.scm 330 */
long BgL_arg3289z00_945;long BgL_arg3290z00_946;
{ /* ./Ast/glo-def.scm 330 */
BgL_funz00_bglt BgL_obj1301z00_1458;
BgL_obj1301z00_1458 = 
(BgL_funz00_bglt)(BgL_genericzd2valuezd2_904); 
BgL_arg3289z00_945 = 
(((BgL_funz00_bglt)CREF(BgL_obj1301z00_1458))->BgL_arityz00); } 
BgL_arg3290z00_946 = 
BGl_arityz00zztools_argsz00(BgL_argsz00_44); 
BgL_test3217z00_907 = 
(BgL_arg3289z00_945==BgL_arg3290z00_946); } 
if(BgL_test3217z00_907)
{ /* ./Ast/glo-def.scm 333 */
bool_t BgL_test3218z00_908;
{ /* ./Ast/glo-def.scm 333 */
BgL_typez00_bglt BgL_arg3282z00_943;
{ /* ./Ast/glo-def.scm 333 */
BgL_variablez00_bglt BgL_obj1097z00_1461;
BgL_obj1097z00_1461 = 
(BgL_variablez00_bglt)(BgL_genericz00_902); 
BgL_arg3282z00_943 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_1461))->BgL_typez00); } 
BgL_test3218z00_908 = 
BGl_compatiblezd2typezf3z21zzast_glozd2defzd2(((bool_t)1), BgL_typezd2reszd2_900, BgL_arg3282z00_943); } 
if(BgL_test3218z00_908)
{ /* ./Ast/glo-def.scm 338 */
obj_t BgL__ortest_2931z00_909;
{ 
obj_t BgL_localsz00_910;obj_t BgL_typesz00_911;bool_t BgL_subzf3zf3_912;
{ /* ./Ast/glo-def.scm 339 */
obj_t BgL_arg3220z00_914;
{ /* ./Ast/glo-def.scm 339 */
obj_t BgL_l2932z00_915;
{ /* ./Ast/glo-def.scm 350 */
BgL_sfunz00_bglt BgL_obj1367z00_1462;
BgL_obj1367z00_1462 = 
(BgL_sfunz00_bglt)(BgL_genericzd2valuezd2_904); 
BgL_l2932z00_915 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1462))->BgL_argsz00); } 
{ /* ./Ast/glo-def.scm 339 */
bool_t BgL_test3222z00_916;
BgL_test3222z00_916 = 
NULLP(BgL_l2932z00_915); 
if(BgL_test3222z00_916)
{ /* ./Ast/glo-def.scm 339 */
BgL_arg3220z00_914 = BNIL; }  else 
{ /* ./Ast/glo-def.scm 339 */
obj_t BgL_head2934z00_917;
BgL_head2934z00_917 = 
MAKE_PAIR(BNIL, BNIL); 
{ 
obj_t BgL_l2932z00_918;obj_t BgL_tail2935z00_919;
BgL_l2932z00_918 = BgL_l2932z00_915; 
BgL_tail2935z00_919 = BgL_head2934z00_917; 
BgL_map2933z00_920:
{ /* ./Ast/glo-def.scm 339 */
bool_t BgL_test3224z00_921;
BgL_test3224z00_921 = 
NULLP(BgL_l2932z00_918); 
if(BgL_test3224z00_921)
{ /* ./Ast/glo-def.scm 339 */
BgL_arg3220z00_914 = 
CDR(BgL_head2934z00_917); }  else 
{ /* ./Ast/glo-def.scm 341 */
obj_t BgL_newtail2936z00_922;
{ /* ./Ast/glo-def.scm 341 */
obj_t BgL_arg3232z00_924;
{ /* ./Ast/glo-def.scm 341 */
obj_t BgL_az00_926;
BgL_az00_926 = 
CAR(BgL_l2932z00_918); 
{ /* ./Ast/glo-def.scm 341 */
bool_t BgL_test3235z00_927;
BgL_test3235z00_927 = 
BGl_iszd2azf3z21zz__objectz00(BgL_az00_926, BGl_localz00zzast_varz00); 
if(BgL_test3235z00_927)
{ /* ./Ast/glo-def.scm 341 */
{ /* ./Ast/glo-def.scm 342 */
BgL_variablez00_bglt BgL_obj1097z00_1470;
BgL_obj1097z00_1470 = 
(BgL_variablez00_bglt)(BgL_az00_926); 
{ /* ./Ast/glo-def.scm 342 */
BgL_typez00_bglt BgL_auxz00_1896;
BgL_auxz00_1896 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_1470))->BgL_typez00); 
BgL_arg3232z00_924 = 
(obj_t)(BgL_auxz00_1896); } } }  else 
{ /* ./Ast/glo-def.scm 343 */
bool_t BgL_test3237z00_928;
BgL_test3237z00_928 = 
BGl_iszd2azf3z21zz__objectz00(BgL_az00_926, BGl_typez00zztype_typez00); 
if(BgL_test3237z00_928)
{ /* ./Ast/glo-def.scm 343 */
BgL_arg3232z00_924 = BgL_az00_926; }  else 
{ /* ./Ast/glo-def.scm 343 */
{ /* ./Ast/glo-def.scm 346 */
obj_t BgL_arg3241z00_931;
BgL_arg3241z00_931 = 
BGl_shapez00zztools_shapez00(BgL_az00_926); 
BgL_arg3232z00_924 = 
BGl_internalzd2errorzd2zztools_errorz00(BGl_string3819z00zzast_glozd2defzd2, BGl_string3820z00zzast_glozd2defzd2, BgL_arg3241z00_931); } } } } } 
BgL_newtail2936z00_922 = 
MAKE_PAIR(BgL_arg3232z00_924, BNIL); } 
SET_CDR(BgL_tail2935z00_919, BgL_newtail2936z00_922); 
{ /* ./Ast/glo-def.scm 339 */
obj_t BgL_arg3228z00_923;
BgL_arg3228z00_923 = 
CDR(BgL_l2932z00_918); 
{ 
obj_t BgL_tail2935z00_1907;obj_t BgL_l2932z00_1906;
BgL_l2932z00_1906 = BgL_arg3228z00_923; 
BgL_tail2935z00_1907 = BgL_newtail2936z00_922; 
BgL_tail2935z00_919 = BgL_tail2935z00_1907; 
BgL_l2932z00_918 = BgL_l2932z00_1906; 
goto BgL_map2933z00_920;} } } } } } } } 
BgL_localsz00_910 = BgL_localsz00_45; 
BgL_typesz00_911 = BgL_arg3220z00_914; 
BgL_subzf3zf3_912 = ((bool_t)1); 
BgL_loopz00_913:
{ /* ./Ast/glo-def.scm 353 */
bool_t BgL_test3251z00_932;
BgL_test3251z00_932 = 
NULLP(BgL_localsz00_910); 
if(BgL_test3251z00_932)
{ /* ./Ast/glo-def.scm 353 */
BgL__ortest_2931z00_909 = BTRUE; }  else 
{ /* ./Ast/glo-def.scm 355 */
bool_t BgL_test3252z00_933;
BgL_test3252z00_933 = 
NULLP(BgL_typesz00_911); 
if(BgL_test3252z00_933)
{ /* ./Ast/glo-def.scm 355 */
{ /* ./Ast/glo-def.scm 356 */
obj_t BgL_list3254z00_934;
BgL_list3254z00_934 = 
MAKE_PAIR(BGl_string3821z00zzast_glozd2defzd2, BNIL); 
{ /* ./Ast/glo-def.scm 356 */
BgL_globalz00_bglt BgL_auxz00_1913;
BgL_auxz00_1913 = 
BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
(BgL_globalz00_bglt)(BgL_genericz00_902), BgL_srcz00_46, BgL_list3254z00_934); 
BgL__ortest_2931z00_909 = 
(obj_t)(BgL_auxz00_1913); } } }  else 
{ /* ./Ast/glo-def.scm 359 */
bool_t BgL_test3256z00_935;
{ /* ./Ast/glo-def.scm 360 */
BgL_typez00_bglt BgL_arg3268z00_939;obj_t BgL_arg3269z00_940;
{ /* ./Ast/glo-def.scm 360 */
BgL_variablez00_bglt BgL_obj1097z00_1480;
{ /* ./Ast/glo-def.scm 360 */
obj_t BgL_auxz00_1917;
BgL_auxz00_1917 = 
CAR(BgL_localsz00_910); 
BgL_obj1097z00_1480 = 
(BgL_variablez00_bglt)(BgL_auxz00_1917); } 
BgL_arg3268z00_939 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_1480))->BgL_typez00); } 
BgL_arg3269z00_940 = 
CAR(BgL_typesz00_911); 
BgL_test3256z00_935 = 
BGl_compatiblezd2typezf3z21zzast_glozd2defzd2(BgL_subzf3zf3_912, BgL_arg3268z00_939, 
(BgL_typez00_bglt)(BgL_arg3269z00_940)); } 
if(BgL_test3256z00_935)
{ /* ./Ast/glo-def.scm 359 */
{ /* ./Ast/glo-def.scm 367 */
obj_t BgL_arg3259z00_936;obj_t BgL_arg3260z00_937;
BgL_arg3259z00_936 = 
CDR(BgL_localsz00_910); 
BgL_arg3260z00_937 = 
CDR(BgL_typesz00_911); 
{ 
bool_t BgL_subzf3zf3_1929;obj_t BgL_typesz00_1928;obj_t BgL_localsz00_1927;
BgL_localsz00_1927 = BgL_arg3259z00_936; 
BgL_typesz00_1928 = BgL_arg3260z00_937; 
BgL_subzf3zf3_1929 = ((bool_t)0); 
BgL_subzf3zf3_912 = BgL_subzf3zf3_1929; 
BgL_typesz00_911 = BgL_typesz00_1928; 
BgL_localsz00_910 = BgL_localsz00_1927; 
goto BgL_loopz00_913;} } }  else 
{ /* ./Ast/glo-def.scm 359 */
{ /* ./Ast/glo-def.scm 362 */
obj_t BgL_list3265z00_938;
BgL_list3265z00_938 = 
MAKE_PAIR(BGl_string3821z00zzast_glozd2defzd2, BNIL); 
BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
(BgL_globalz00_bglt)(BgL_genericz00_902), BgL_srcz00_46, BgL_list3265z00_938); } 
BgL__ortest_2931z00_909 = BFALSE; } } } } } } 
if(
CBOOL(BgL__ortest_2931z00_909))
{ /* ./Ast/glo-def.scm 338 */
return 
CBOOL(BgL__ortest_2931z00_909);}  else 
{ /* ./Ast/glo-def.scm 338 */
return ((bool_t)1);} }  else 
{ /* ./Ast/glo-def.scm 333 */
{ /* ./Ast/glo-def.scm 334 */
obj_t BgL_list3279z00_942;
BgL_list3279z00_942 = 
MAKE_PAIR(BGl_string3823z00zzast_glozd2defzd2, BNIL); 
BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
(BgL_globalz00_bglt)(BgL_genericz00_902), BgL_srcz00_46, BgL_list3279z00_942); } 
return ((bool_t)0);} }  else 
{ /* ./Ast/glo-def.scm 330 */
{ /* ./Ast/glo-def.scm 331 */
obj_t BgL_list3286z00_944;
BgL_list3286z00_944 = 
MAKE_PAIR(BGl_string3824z00zzast_glozd2defzd2, BNIL); 
BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
(BgL_globalz00_bglt)(BgL_genericz00_902), BgL_srcz00_46, BgL_list3286z00_944); } 
return ((bool_t)0);} }  else 
{ /* ./Ast/glo-def.scm 327 */
BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
(BgL_globalz00_bglt)(BgL_genericz00_902), BgL_srcz00_46, BNIL); 
return ((bool_t)0);} }  else 
{ /* ./Ast/glo-def.scm 324 */
BGl_mismatchzd2errorzd2zzast_glozd2defzd2(
(BgL_globalz00_bglt)(BgL_genericz00_902), BgL_srcz00_46, BNIL); 
return ((bool_t)0);} } }  else 
{ /* ./Ast/glo-def.scm 318 */
return ((bool_t)1);} } } } } } } } 
}



/* _check-method-definition */
obj_t BGl__checkzd2methodzd2definitionz00zzast_glozd2defzd2(obj_t BgL_envz00_1513, obj_t BgL_idz00_1514, obj_t BgL_argsz00_1515, obj_t BgL_localsz00_1516, obj_t BgL_srcz00_1517)
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 313 */
{ /* ./Ast/glo-def.scm 314 */
bool_t BgL_auxz00_1946;
BgL_auxz00_1946 = 
BGl_checkzd2methodzd2definitionz00zzast_glozd2defzd2(BgL_idz00_1514, BgL_argsz00_1515, BgL_localsz00_1516, BgL_srcz00_1517); 
return 
BBOOL(BgL_auxz00_1946);} } 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzast_glozd2defzd2()
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 15 */
return BUNSPEC;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzast_glozd2defzd2()
{ AN_OBJECT;
{ /* ./Ast/glo-def.scm 15 */
BGl_modulezd2initializa7ationz75zztools_tracez00(((long)59211), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zzast_envz00(((long)62031), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zzast_identz00(((long)51504), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zzast_glozd2declzd2(((long)31087), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zzast_removez00(((long)12493), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zztype_envz00(((long)25186), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zztype_cachez00(((long)25848), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zztools_argsz00(((long)42726), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zztools_errorz00(((long)25566), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zztools_shapez00(((long)30833), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zztools_locationz00(((long)32118), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zztools_dssslz00(((long)55629), "ast_glo-def"); 
BGl_modulezd2initializa7ationz75zzobject_classz00(((long)30791), "ast_glo-def"); 
return 
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "ast_glo-def");} 
}

