/*===========================================================================*/
/*   (Cfa/closure.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 Cfa/closure.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_approxz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_typez00_bgl * BgL_typez00;
   bool_t BgL_typezd2lockedzf3z21;
   obj_t BgL_allocsz00;
   bool_t BgL_topzf3zf3;
   long BgL_lostzd2stampzd2;
} *BgL_approxz00_bglt;

typedef struct BgL_cfunzf2cinfozf2_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_cfunzf2cinfozf2_bglt;

typedef struct BgL_externzd2sfunzf2cinfoz20_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_externzd2sfunzf2cinfoz20_bglt;

typedef struct BgL_internzd2sfunzf2cinfoz20_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
   long BgL_stampz00;
} *BgL_internzd2sfunzf2cinfoz20_bglt;

typedef struct BgL_scnstzf2cinfozf2_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_scnstzf2cinfozf2_bglt;

typedef struct BgL_prezd2clozd2envz00_bgl {
   char dummy;
} *BgL_prezd2clozd2envz00_bglt;

typedef struct BgL_svarzf2cinfozf2_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
   bool_t BgL_clozd2envzf3z21;
} *BgL_svarzf2cinfozf2_bglt;

typedef struct BgL_cvarzf2cinfozf2_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_cvarzf2cinfozf2_bglt;

typedef struct BgL_sexitzf2cinfozf2_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_sexitzf2cinfozf2_bglt;

typedef struct BgL_reshapedzd2localzd2_bgl {
   obj_t BgL_bindingzd2valuezd2;
} *BgL_reshapedzd2localzd2_bglt;

typedef struct BgL_reshapedzd2globalzd2_bgl {
   char dummy;
} *BgL_reshapedzd2globalzd2_bglt;

typedef struct BgL_atomzf2cinfozf2_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_atomzf2cinfozf2_bglt;

typedef struct BgL_kwotezf2nodezf2_bgl {
   struct BgL_nodez00_bgl * BgL_nodez00;
} *BgL_kwotezf2nodezf2_bglt;

typedef struct BgL_kwotezf2cinfozf2_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_kwotezf2cinfozf2_bglt;

typedef struct BgL_appzd2lyzf2cinfoz20_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_appzd2lyzf2cinfoz20_bglt;

typedef struct BgL_funcallzf2cinfozf2_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
   struct BgL_approxz00_bgl * BgL_vazd2approxzd2;
   bool_t BgL_arityzd2errorzd2noticedzf3zf3;
   bool_t BgL_typezd2errorzd2noticedzf3zf3;
} *BgL_funcallzf2cinfozf2_bglt;

typedef struct BgL_setqzf2cinfozf2_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_setqzf2cinfozf2_bglt;

typedef struct BgL_conditionalzf2cinfozf2_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_conditionalzf2cinfozf2_bglt;

typedef struct BgL_failzf2cinfozf2_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_failzf2cinfozf2_bglt;

typedef struct BgL_selectzf2cinfozf2_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_selectzf2cinfozf2_bglt;

typedef struct BgL_setzd2exzd2itzf2cinfozf2_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_setzd2exzd2itzf2cinfozf2_bglt;

typedef struct BgL_jumpzd2exzd2itzf2cinfozf2_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_jumpzd2exzd2itzf2cinfozf2_bglt;

typedef struct BgL_prezd2makezd2boxz00_bgl {
   char dummy;
} *BgL_prezd2makezd2boxz00_bglt;

typedef struct BgL_makezd2boxzf2cinfoz20_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_makezd2boxzf2cinfoz20_bglt;

typedef struct BgL_makezd2boxzf2ozd2cinfozf2_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
   struct BgL_approxz00_bgl * BgL_valuezd2approxzd2;
} *BgL_makezd2boxzf2ozd2cinfozf2_bglt;

typedef struct BgL_boxzd2setz12zf2cinfoz32_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_boxzd2setz12zf2cinfoz32_bglt;

typedef struct BgL_boxzd2refzf2cinfoz20_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_boxzd2refzf2cinfoz20_bglt;

typedef struct BgL_boxzd2setz12zf2ozd2cinfoze0_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_boxzd2setz12zf2ozd2cinfoze0_bglt;

typedef struct BgL_boxzd2refzf2ozd2cinfozf2_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_boxzd2refzf2ozd2cinfozf2_bglt;

typedef struct BgL_prezd2arithmeticzd2appz00_bgl {
   obj_t BgL_speczd2typeszd2;
} *BgL_prezd2arithmeticzd2appz00_bglt;

typedef struct BgL_arithmeticzd2appzd2_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
   obj_t BgL_speczd2typeszd2;
} *BgL_arithmeticzd2appzd2_bglt;

typedef struct BgL_prezd2makezd2procedurezd2appzd2_bgl {
   struct BgL_variablez00_bgl * BgL_ownerz00;
} *BgL_prezd2makezd2procedurezd2appzd2_bglt;

typedef struct BgL_prezd2procedurezd2refzd2appzd2_bgl {
   char dummy;
} *BgL_prezd2procedurezd2refzd2appzd2_bglt;

typedef struct BgL_prezd2procedurezd2setz12zd2appzc0_bgl {
   char dummy;
} *BgL_prezd2procedurezd2setz12zd2appzc0_bglt;

typedef struct BgL_makezd2procedurezd2appz00_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
   obj_t BgL_valueszd2approxzd2;
   long BgL_lostzd2stampzd2;
   bool_t BgL_xzd2tzf3z21;
   bool_t BgL_xz00;
   bool_t BgL_tz00;
   struct BgL_variablez00_bgl * BgL_ownerz00;
   obj_t BgL_stackzd2stampzd2;
} *BgL_makezd2procedurezd2appz00_bglt;

typedef struct BgL_procedurezd2refzd2appz00_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_procedurezd2refzd2appz00_bglt;

typedef struct BgL_procedurezd2setz12zd2appz12_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_procedurezd2setz12zd2appz12_bglt;

typedef struct BgL_prezd2makezd2vectorzd2appzd2_bgl {
   struct BgL_variablez00_bgl * BgL_ownerz00;
} *BgL_prezd2makezd2vectorzd2appzd2_bglt;

typedef struct BgL_makezd2vectorzd2appz00_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
   struct BgL_approxz00_bgl * BgL_valuezd2approxzd2;
   long BgL_lostzd2stampzd2;
   struct BgL_variablez00_bgl * BgL_ownerz00;
   obj_t BgL_stackzd2stampzd2;
   bool_t BgL_seenzf3zf3;
} *BgL_makezd2vectorzd2appz00_bglt;

typedef struct BgL_prezd2makezd2structzd2appzd2_bgl {
   struct BgL_variablez00_bgl * BgL_ownerz00;
} *BgL_prezd2makezd2structzd2appzd2_bglt;

typedef struct BgL_prezd2structzd2refzd2appzd2_bgl {
   char dummy;
} *BgL_prezd2structzd2refzd2appzd2_bglt;

typedef struct BgL_prezd2structzd2setz12zd2appzc0_bgl {
   char dummy;
} *BgL_prezd2structzd2setz12zd2appzc0_bglt;

typedef struct BgL_makezd2structzd2appz00_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
   struct BgL_approxz00_bgl * BgL_valuezd2approxzd2;
   long BgL_lostzd2stampzd2;
   struct BgL_variablez00_bgl * BgL_ownerz00;
   obj_t BgL_stackzd2stampzd2;
} *BgL_makezd2structzd2appz00_bglt;

typedef struct BgL_structzd2refzd2appz00_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_structzd2refzd2appz00_bglt;

typedef struct BgL_structzd2setz12zd2appz12_bgl {
   struct BgL_approxz00_bgl * BgL_approxz00;
} *BgL_structzd2setz12zd2appz12_bglt;


static obj_t BGl_za2makezd2elzd2procedureza2z00zzcfa_closurez00 = BUNSPEC;
static obj_t BGl_methodzd2initzd2zzcfa_closurez00();
extern obj_t BGl_setzd2ze3listz31zzcfa_setz00(obj_t);
BGL_IMPORT obj_t open_input_string(obj_t);
static obj_t BGl_za2procedurezd2lzd2refza2z00zzcfa_closurez00 = BUNSPEC;
BGL_EXPORTED_DECL obj_t BGl_addzd2makezd2procedurez12z12zzcfa_closurez00(BgL_nodez00_bglt);
static obj_t BGl_showzd2Xzd2Tz00zzcfa_closurez00(obj_t);
BGL_EXPORTED_DECL bool_t BGl_approxzd2procedurezd2elzf3zf3zzcfa_closurez00(BgL_approxz00_bglt);
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);
static obj_t BGl_za2funcallzd2listza2zd2zzcfa_closurez00 = BUNSPEC;
extern obj_t BGl_scnstz00zzast_varz00;
static obj_t BGl__closurezd2optimiza7ationz12z67zzcfa_closurez00(obj_t, obj_t);
extern obj_t BGl_za2unsafezd2typeza2zd2zzengine_paramz00;
static bool_t BGl_showz00zzcfa_closurez00(obj_t, obj_t);
static obj_t BGl__closurezd2optimiza7ationzf3z86zzcfa_closurez00(obj_t);
extern obj_t BGl_globalz00zzast_varz00;
extern obj_t BGl_za2procedureza2z00zztype_cachez00;
static obj_t BGl_za2procedurezd2refzd2listza2z00zzcfa_closurez00 = BUNSPEC;
static obj_t BGl_cnstzd2initzd2zzcfa_closurez00();
extern obj_t BGl_setzd2lengthzd2zzcfa_setz00(obj_t);
static bool_t BGl_lightzd2makezd2procedurez12z12zzcfa_closurez00();
BGL_EXPORTED_DECL obj_t BGl_closurezd2optimiza7ationzf3z86zzcfa_closurez00();
static bool_t BGl_lightzd2funcallz12zc0zzcfa_closurez00();
static obj_t BGl_importedzd2moduleszd2initz00zzcfa_closurez00();
BGL_EXPORTED_DECL obj_t BGl_closurezd2optimiza7ationz12z67zzcfa_closurez00(obj_t);
extern BgL_approxz00_bglt BGl_cfaz12z12zzcfa_cfaz00(BgL_nodez00_bglt);
static obj_t BGl__addzd2procedurezd2refz125404z12zzcfa_closurez00(obj_t, obj_t);
static obj_t BGl_toplevelzd2initzd2zzcfa_closurez00();
static obj_t BGl_za2procedurezd2elzd2setz12za2z12zzcfa_closurez00 = BUNSPEC;
extern obj_t BGl_lightzd2typez12zc0zzcfa_ltypez00(obj_t);
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzcfa_closurez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_tracez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_speekz00(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_modulezd2initializa7ationz75zzcfa_infoz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_info2z00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_cfaz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_approxz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_setz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_ltypez00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
extern obj_t BGl_verbosez00zztools_speekz00(obj_t, obj_t);
static obj_t BGl_za2makezd2elzd2procedurezd21za2zd2zzcfa_closurez00 = BUNSPEC;
static obj_t BGl_zc3anonymousza34203ze3z83zzcfa_closurez00(obj_t, obj_t);
static obj_t BGl_zc3anonymousza34193ze3z83zzcfa_closurez00(obj_t, obj_t);
extern obj_t BGl_shapez00zztools_shapez00(obj_t);
static obj_t BGl_za2procedurezd21zd2elzd2refza2zd2zzcfa_closurez00 = BUNSPEC;
static obj_t BGl_za2procedurezd21zd2elzd2setz12za2zc0zzcfa_closurez00 = BUNSPEC;
BGL_EXPORTED_DECL bool_t BGl_approxzd2procedurezd2el1zf3zf3zzcfa_closurez00(BgL_approxz00_bglt);
static obj_t BGl__addzd2funcallz125400zc0zzcfa_closurez00(obj_t, obj_t);
static obj_t BGl_za2procedurezd2refza2zd2zzcfa_closurez00 = BUNSPEC;
extern obj_t BGl_za2optimza2z00zzengine_paramz00;
extern obj_t BGl_za2sawza2z00zzengine_paramz00;
static bool_t BGl_lightzd2accessz12zc0zzcfa_closurez00();
extern obj_t BGl_forzd2eachzd2approxzd2alloczd2zzcfa_approxz00(obj_t, BgL_approxz00_bglt);
static obj_t BGl__approxzd2procedurezd2el1zf3zf3zzcfa_closurez00(obj_t, obj_t);
static obj_t BGl_za2procedurezd2elzd2refza2z00zzcfa_closurez00 = BUNSPEC;
static obj_t BGl_za2procedurezd2setz12za2zc0zzcfa_closurez00 = BUNSPEC;
static bool_t BGl_Xz12z12zzcfa_closurez00(obj_t);
static obj_t BGl_za2makezd2procedurezd2listza2z00zzcfa_closurez00 = BUNSPEC;
static obj_t BGl_stopzd2cachezd2zzcfa_closurez00();
BGL_EXPORTED_DECL obj_t BGl_addzd2procedurezd2refz12z12zzcfa_closurez00(BgL_nodez00_bglt);
extern BgL_varz00_bglt BGl_makezd2varzd2zzast_nodez00(obj_t, BgL_typez00_bglt, BgL_variablez00_bglt);
BGL_EXPORTED_DECL obj_t BGl_addzd2funcallz12zc0zzcfa_closurez00(BgL_nodez00_bglt);
static obj_t BGl__approxzd2procedurezd2elzf3zf3zzcfa_closurez00(obj_t, obj_t);
static obj_t BGl_startzd2cachezd2zzcfa_closurez00();
extern obj_t BGl_makezd2procedurezd2appz00zzcfa_info2z00;
extern obj_t BGl_getzd2nodezd2atomzd2valuezd2zzcfa_approxz00(BgL_nodez00_bglt);
static obj_t BGl_za2makezd2lzd2procedureza2z00zzcfa_closurez00 = BUNSPEC;
static obj_t BGl_requirezd2initializa7ationz75zzcfa_closurez00 = BUNSPEC;
static obj_t BGl_Tzd2fixzd2pointz12z12zzcfa_closurez00(obj_t);
static obj_t BGl__addzd2makezd2procedurez125402z12zzcfa_closurez00(obj_t, obj_t);
static obj_t BGl_za2procedurezd2lzd2setz12za2z12zzcfa_closurez00 = BUNSPEC;
static obj_t BGl_libraryzd2moduleszd2initz00zzcfa_closurez00();
static obj_t BGl_lightzd2closurez12zc0zzcfa_closurez00(obj_t);
static obj_t __cnst[ 21 ] ;


DEFINE_STATIC_PROCEDURE( BGl_proc5595z00zzcfa_closurez00, BgL_bgl_za7c3anonymousza7a34193za7e3za783za7za7cfa_closureza7005626za7, BGl_zc3anonymousza34193ze3z83zzcfa_closurez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc5596z00zzcfa_closurez00, BgL_bgl_za7c3anonymousza7a34203za7e3za783za7za7cfa_closureza7005627za7, BGl_zc3anonymousza34203ze3z83zzcfa_closurez00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_closurezd2optimiza7ationzf3zd2envz54zzcfa_closurez00, BgL_bgl__closureza7d2optimiza7a7ationza7f3za786za7za7cfa_closureza7005628za7, BGl__closurezd2optimiza7ationzf3z86zzcfa_closurez00, 0L, 0 );
DEFINE_EXPORT_PROCEDURE( BGl_addzd2procedurezd2refz12zd2envzc0zzcfa_closurez00, BgL_bgl__addza7d2procedureza7d2refza7125404za712za7za7cfa_closureza7005629za7, BGl__addzd2procedurezd2refz125404z12zzcfa_closurez00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_approxzd2procedurezd2elzf3zd2envz21zzcfa_closurez00, BgL_bgl__approxza7d2procedureza7d2elza7f3za7f3za7za7cfa_closureza7005630za7, BGl__approxzd2procedurezd2elzf3zf3zzcfa_closurez00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_addzd2funcallz12zd2envz12zzcfa_closurez00, BgL_bgl__addza7d2funcallza7125400za7c0za7za7cfa_closureza7005631z00, BGl__addzd2funcallz125400zc0zzcfa_closurez00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_closurezd2optimiza7ationz12zd2envzb5zzcfa_closurez00, BgL_bgl__closureza7d2optimiza7a7ationza712za767za7za7cfa_closureza7005632za7, BGl__closurezd2optimiza7ationz12z67zzcfa_closurez00, 0L, 1 );
DEFINE_STRING( BGl_string5599z00zzcfa_closurez00, BgL_bgl_string5599za700za7za7cfa_closureza7005633z00, "        ", 8 );
DEFINE_STRING( BGl_string5598z00zzcfa_closurez00, BgL_bgl_string5598za700za7za7cfa_closureza7005634z00, "     ", 5 );
DEFINE_STRING( BGl_string5597z00zzcfa_closurez00, BgL_bgl_string5597za700za7za7cfa_closureza7005635z00, ": ", 2 );
DEFINE_STRING( BGl_string5594z00zzcfa_closurez00, BgL_bgl_string5594za700za7za7cfa_closureza7005636z00, "   . Light closures", 19 );
DEFINE_STRING( BGl_string5600z00zzcfa_closurez00, BgL_bgl_string5600za700za7za7cfa_closureza7005637z00, "make-l-procedure make-el-procedure-1 make-el-procedure procedure-1-el-set! procedure-1-el-ref procedure-el-set! procedure-el-ref procedure-l-set! procedure-l-ref procedure-set! foreign procedure-ref T X light elight nothing-to-do selfun sefun done ok ", 251 );
DEFINE_EXPORT_PROCEDURE( BGl_addzd2makezd2procedurez12zd2envzc0zzcfa_closurez00, BgL_bgl__addza7d2makeza7d2procedureza7125402za712za7za7cfa_closureza7005638za7, BGl__addzd2makezd2procedurez125402z12zzcfa_closurez00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_approxzd2procedurezd2el1zf3zd2envz21zzcfa_closurez00, BgL_bgl__approxza7d2procedureza7d2el1za7f3za7f3za7za7cfa_closureza7005639za7, BGl__approxzd2procedurezd2el1zf3zf3zzcfa_closurez00, 0L, 1 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzcfa_closurez00(long BgL_checksumz00_1985, char * BgL_fromz00_1986)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzcfa_closurez00))
{ 
BGl_requirezd2initializa7ationz75zzcfa_closurez00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzcfa_closurez00(); 
BGl_cnstzd2initzd2zzcfa_closurez00(); 
BGl_importedzd2moduleszd2initz00zzcfa_closurez00(); 
BGl_toplevelzd2initzd2zzcfa_closurez00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzcfa_closurez00()
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 25 */
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "cfa_closure"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "cfa_closure"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzcfa_closurez00()
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 25 */
{ /* ./Cfa/closure.scm 25 */
obj_t BgL_cportz00_1978;
BgL_cportz00_1978 = 
open_input_string(BGl_string5600z00zzcfa_closurez00); 
{ 
long BgL_iz00_1979;
BgL_iz00_1979 = ((long)20); 
BgL_loopz00_1980:
{ /* ./Cfa/closure.scm 25 */
bool_t BgL_test5602z00_1981;
BgL_test5602z00_1981 = 
(BgL_iz00_1979==((long)-1)); 
if(BgL_test5602z00_1981)
{ /* ./Cfa/closure.scm 25 */
return BUNSPEC;}  else 
{ /* ./Cfa/closure.scm 25 */
{ /* ./Cfa/closure.scm 25 */
obj_t BgL_arg5604z00_1982;
{ /* ./Cfa/closure.scm 25 */
obj_t BgL_list5607z00_1983;
BgL_list5607z00_1983 = 
MAKE_PAIR(BgL_cportz00_1978, BNIL); 
BgL_arg5604z00_1982 = 
BGl_readz00zz__readerz00(BgL_list5607z00_1983); } 
{ /* ./Cfa/closure.scm 25 */
int BgL_auxz00_2001;
BgL_auxz00_2001 = 
(int)(BgL_iz00_1979); 
CNST_TABLE_SET(BgL_auxz00_2001, BgL_arg5604z00_1982); } } 
{ /* ./Cfa/closure.scm 25 */
int BgL_auxz00_1984;
{ /* ./Cfa/closure.scm 25 */
long BgL_auxz00_2004;
BgL_auxz00_2004 = 
(BgL_iz00_1979-((long)1)); 
BgL_auxz00_1984 = 
(int)(BgL_auxz00_2004); } 
{ 
long BgL_iz00_2007;
BgL_iz00_2007 = 
(long)(BgL_auxz00_1984); 
BgL_iz00_1979 = BgL_iz00_2007; 
goto BgL_loopz00_1980;} } } } } } } 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzcfa_closurez00()
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 25 */
BGl_za2funcallzd2listza2zd2zzcfa_closurez00 = BNIL; 
BGl_za2makezd2procedurezd2listza2z00zzcfa_closurez00 = BNIL; 
BGl_za2procedurezd2refzd2listza2z00zzcfa_closurez00 = BNIL; 
BGl_za2procedurezd2refza2zd2zzcfa_closurez00 = BFALSE; 
BGl_za2procedurezd2setz12za2zc0zzcfa_closurez00 = BFALSE; 
BGl_za2procedurezd2lzd2refza2z00zzcfa_closurez00 = BFALSE; 
BGl_za2procedurezd2lzd2setz12za2z12zzcfa_closurez00 = BFALSE; 
BGl_za2procedurezd2elzd2refza2z00zzcfa_closurez00 = BFALSE; 
BGl_za2procedurezd2elzd2setz12za2z12zzcfa_closurez00 = BFALSE; 
BGl_za2procedurezd21zd2elzd2refza2zd2zzcfa_closurez00 = BFALSE; 
BGl_za2procedurezd21zd2elzd2setz12za2zc0zzcfa_closurez00 = BFALSE; 
BGl_za2makezd2elzd2procedureza2z00zzcfa_closurez00 = BFALSE; 
BGl_za2makezd2elzd2procedurezd21za2zd2zzcfa_closurez00 = BFALSE; 
return ( 
BGl_za2makezd2lzd2procedureza2z00zzcfa_closurez00 = BFALSE, BUNSPEC) ;} 
}



/* closure-optimization? */
BGL_EXPORTED_DEF obj_t BGl_closurezd2optimiza7ationzf3z86zzcfa_closurez00()
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 52 */
{ /* ./Cfa/closure.scm 53 */
long BgL_n1z00_1718;
BgL_n1z00_1718 = 
(long)CINT(BGl_za2optimza2z00zzengine_paramz00); 
{ /* ./Cfa/closure.scm 53 */
bool_t BgL_auxz00_2010;
BgL_auxz00_2010 = 
(BgL_n1z00_1718>=((long)2)); 
return 
BBOOL(BgL_auxz00_2010);} } } 
}



/* _closure-optimization? */
obj_t BGl__closurezd2optimiza7ationzf3z86zzcfa_closurez00(obj_t BgL_envz00_1959)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 52 */
return 
BGl_closurezd2optimiza7ationzf3z86zzcfa_closurez00();} 
}



/* closure-optimization! */
BGL_EXPORTED_DEF obj_t BGl_closurezd2optimiza7ationz12z67zzcfa_closurez00(obj_t BgL_globalsz00_1)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 58 */
{ /* ./Cfa/closure.scm 59 */
bool_t BgL_test4129z00_936;
{ /* ./Cfa/closure.scm 59 */
long BgL_n1z00_1720;
BgL_n1z00_1720 = 
(long)CINT(BGl_za2optimza2z00zzengine_paramz00); 
BgL_test4129z00_936 = 
(BgL_n1z00_1720>=((long)2)); } 
if(BgL_test4129z00_936)
{ /* ./Cfa/closure.scm 59 */
{ /* ./Cfa/closure.scm 61 */
obj_t BgL_list4131z00_937;
{ /* ./Cfa/closure.scm 61 */
obj_t BgL_arg4134z00_939;
{ /* ./Cfa/closure.scm 61 */
obj_t BgL_auxz00_2017;
BgL_auxz00_2017 = 
BCHAR(((unsigned char)'\n')); 
BgL_arg4134z00_939 = 
MAKE_PAIR(BgL_auxz00_2017, BNIL); } 
BgL_list4131z00_937 = 
MAKE_PAIR(BGl_string5594z00zzcfa_closurez00, BgL_arg4134z00_939); } 
BGl_verbosez00zztools_speekz00(
BINT(((long)1)), BgL_list4131z00_937); } 
BGl_startzd2cachezd2zzcfa_closurez00(); 
{ 
obj_t BgL_l4082z00_940;
BgL_l4082z00_940 = BGl_za2makezd2procedurezd2listza2z00zzcfa_closurez00; 
BgL_forzd2each4083zd2_941:
{ /* ./Cfa/closure.scm 70 */
bool_t BgL_test4139z00_942;
BgL_test4139z00_942 = 
PAIRP(BgL_l4082z00_940); 
if(BgL_test4139z00_942)
{ /* ./Cfa/closure.scm 70 */
{ /* ./Cfa/closure.scm 72 */
obj_t BgL_appz00_943;
BgL_appz00_943 = 
CAR(BgL_l4082z00_940); 
{ /* ./Cfa/closure.scm 73 */
BgL_variablez00_bglt BgL_funz00_945;bool_t BgL_lostzf3zf3_946;obj_t BgL_siza7eza7_947;
{ /* ./Cfa/closure.scm 73 */
BgL_varz00_bglt BgL_obj1625z00_1726;
{ /* ./Cfa/closure.scm 73 */
obj_t BgL_auxz00_2027;
{ /* ./Cfa/closure.scm 73 */
obj_t BgL_auxz00_2028;
{ /* ./Cfa/closure.scm 73 */
BgL_appz00_bglt BgL_obj1722z00_1724;
BgL_obj1722z00_1724 = 
(BgL_appz00_bglt)(BgL_appz00_943); 
BgL_auxz00_2028 = 
(((BgL_appz00_bglt)CREF(BgL_obj1722z00_1724))->BgL_argsz00); } 
BgL_auxz00_2027 = 
CAR(BgL_auxz00_2028); } 
BgL_obj1625z00_1726 = 
(BgL_varz00_bglt)(BgL_auxz00_2027); } 
BgL_funz00_945 = 
(((BgL_varz00_bglt)CREF(BgL_obj1625z00_1726))->BgL_variablez00); } 
{ /* ./Cfa/closure.scm 74 */
long BgL_auxz00_2034;
{ /* ./Cfa/closure.scm 74 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3692z00_1727;
BgL_obj3692z00_1727 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_appz00_943); 
{ 
obj_t BgL_auxz00_2036;
{ /* ./Cfa/closure.scm 74 */
BgL_objectz00_bglt BgL_auxz00_2037;
BgL_auxz00_2037 = 
(BgL_objectz00_bglt)(BgL_obj3692z00_1727); 
BgL_auxz00_2036 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2037); } 
BgL_auxz00_2034 = 
(((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2036))->BgL_lostzd2stampzd2); } } 
BgL_lostzf3zf3_946 = 
(BgL_auxz00_2034>((long)-1)); } 
{ /* ./Cfa/closure.scm 75 */
obj_t BgL_arg4170z00_959;
{ /* ./Cfa/closure.scm 75 */
obj_t BgL_auxz00_2042;
{ /* ./Cfa/closure.scm 75 */
obj_t BgL_auxz00_2043;
{ /* ./Cfa/closure.scm 75 */
obj_t BgL_auxz00_2044;
{ /* ./Cfa/closure.scm 75 */
BgL_appz00_bglt BgL_obj1722z00_1730;
BgL_obj1722z00_1730 = 
(BgL_appz00_bglt)(BgL_appz00_943); 
BgL_auxz00_2044 = 
(((BgL_appz00_bglt)CREF(BgL_obj1722z00_1730))->BgL_argsz00); } 
BgL_auxz00_2043 = 
CDR(BgL_auxz00_2044); } 
BgL_auxz00_2042 = 
CDR(BgL_auxz00_2043); } 
BgL_arg4170z00_959 = 
CAR(BgL_auxz00_2042); } 
BgL_siza7eza7_947 = 
BGl_getzd2nodezd2atomzd2valuezd2zzcfa_approxz00(
(BgL_nodez00_bglt)(BgL_arg4170z00_959)); } 
{ /* ./Cfa/closure.scm 77 */
bool_t BgL_test4140z00_948;
if(BgL_lostzf3zf3_946)
{ /* ./Cfa/closure.scm 77 */
BgL_test4140z00_948 = ((bool_t)1); }  else 
{ /* ./Cfa/closure.scm 78 */
bool_t BgL_testz00_2053;
{ /* ./Cfa/closure.scm 78 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3695z00_1737;
BgL_obj3695z00_1737 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_appz00_943); 
{ 
obj_t BgL_auxz00_2055;
{ /* ./Cfa/closure.scm 78 */
BgL_objectz00_bglt BgL_auxz00_2056;
BgL_auxz00_2056 = 
(BgL_objectz00_bglt)(BgL_obj3695z00_1737); 
BgL_auxz00_2055 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2056); } 
BgL_testz00_2053 = 
(((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2055))->BgL_xzd2tzf3z21); } } 
if(BgL_testz00_2053)
{ /* ./Cfa/closure.scm 79 */
bool_t BgL_testz00_2060;
{ /* ./Cfa/closure.scm 79 */
long BgL_auxz00_2061;
{ /* ./Cfa/closure.scm 79 */
BgL_funz00_bglt BgL_obj1301z00_1739;
{ /* ./Cfa/closure.scm 79 */
BgL_valuez00_bglt BgL_auxz00_2062;
BgL_auxz00_2062 = 
(((BgL_variablez00_bglt)CREF(BgL_funz00_945))->BgL_valuez00); 
BgL_obj1301z00_1739 = 
(BgL_funz00_bglt)(BgL_auxz00_2062); } 
BgL_auxz00_2061 = 
(((BgL_funz00_bglt)CREF(BgL_obj1301z00_1739))->BgL_arityz00); } 
BgL_testz00_2060 = 
(BgL_auxz00_2061<((long)0)); } 
if(BgL_testz00_2060)
{ /* ./Cfa/closure.scm 79 */
BgL_test4140z00_948 = ((bool_t)1); }  else 
{ /* ./Cfa/closure.scm 79 */
if(
INTEGERP(BgL_siza7eza7_947))
{ /* ./Cfa/closure.scm 85 */
long BgL_auxz00_2069;
BgL_auxz00_2069 = 
(long)CINT(BgL_siza7eza7_947); 
BgL_test4140z00_948 = 
(BgL_auxz00_2069==((long)0)); }  else 
{ /* ./Cfa/closure.scm 80 */
BgL_test4140z00_948 = ((bool_t)1); } } }  else 
{ /* ./Cfa/closure.scm 78 */
BgL_test4140z00_948 = ((bool_t)1); } } 
if(BgL_test4140z00_948)
{ /* ./Cfa/closure.scm 77 */BNIL; }  else 
{ /* ./Cfa/closure.scm 77 */
{ /* ./Cfa/closure.scm 88 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3700z00_1745;bool_t BgL_val3699z00_1746;
BgL_obj3700z00_1745 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_appz00_943); 
BgL_val3699z00_1746 = ((bool_t)1); 
{ 
obj_t BgL_auxz00_2074;
{ /* ./Cfa/closure.scm 88 */
BgL_objectz00_bglt BgL_auxz00_2075;
BgL_auxz00_2075 = 
(BgL_objectz00_bglt)(BgL_obj3700z00_1745); 
BgL_auxz00_2074 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2075); } 
((((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2074))->BgL_xz00) = ((bool_t)BgL_val3699z00_1746), BUNSPEC); } } 
{ /* ./Cfa/closure.scm 89 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3703z00_1747;bool_t BgL_val3702z00_1748;
BgL_obj3703z00_1747 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_appz00_943); 
BgL_val3702z00_1748 = ((bool_t)1); 
{ 
obj_t BgL_auxz00_2080;
{ /* ./Cfa/closure.scm 89 */
BgL_objectz00_bglt BgL_auxz00_2081;
BgL_auxz00_2081 = 
(BgL_objectz00_bglt)(BgL_obj3703z00_1747); 
BgL_auxz00_2080 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2081); } 
((((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2080))->BgL_tz00) = ((bool_t)BgL_val3702z00_1748), BUNSPEC); } } } } } } 
{ /* ./Cfa/closure.scm 70 */
obj_t BgL_arg4178z00_961;
BgL_arg4178z00_961 = 
CDR(BgL_l4082z00_940); 
{ 
obj_t BgL_l4082z00_2086;
BgL_l4082z00_2086 = BgL_arg4178z00_961; 
BgL_l4082z00_940 = BgL_l4082z00_2086; 
goto BgL_forzd2each4083zd2_941;} } }  else 
{ /* ./Cfa/closure.scm 70 */((bool_t)1); } } } 
BGl_Xz12z12zzcfa_closurez00(BGl_za2funcallzd2listza2zd2zzcfa_closurez00); 
BGl_Tzd2fixzd2pointz12z12zzcfa_closurez00(BGl_za2funcallzd2listza2zd2zzcfa_closurez00); 
BGl_showzd2Xzd2Tz00zzcfa_closurez00(BGl_za2makezd2procedurezd2listza2z00zzcfa_closurez00); 
BGl_lightzd2closurez12zc0zzcfa_closurez00(BgL_globalsz00_1); 
return 
BGl_stopzd2cachezd2zzcfa_closurez00();}  else 
{ /* ./Cfa/closure.scm 59 */
return BFALSE;} } } 
}



/* _closure-optimization! */
obj_t BGl__closurezd2optimiza7ationz12z67zzcfa_closurez00(obj_t BgL_envz00_1960, obj_t BgL_globalsz00_1961)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 58 */
return 
BGl_closurezd2optimiza7ationz12z67zzcfa_closurez00(BgL_globalsz00_1961);} 
}



/* X! */
bool_t BGl_Xz12z12zzcfa_closurez00(obj_t BgL_funcallzd2listzd2_2)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 120 */
{ 
obj_t BgL_l4086z00_962;
BgL_l4086z00_962 = BgL_funcallzd2listzd2_2; 
BgL_forzd2each4087zd2_963:
{ /* ./Cfa/closure.scm 122 */
bool_t BgL_test4189z00_964;
BgL_test4189z00_964 = 
PAIRP(BgL_l4086z00_962); 
if(BgL_test4189z00_964)
{ /* ./Cfa/closure.scm 122 */
{ /* ./Cfa/closure.scm 123 */
BgL_funcallz00_bglt BgL_appz00_965;
{ /* ./Cfa/closure.scm 123 */
obj_t BgL_auxz00_2095;
BgL_auxz00_2095 = 
CAR(BgL_l4086z00_962); 
BgL_appz00_965 = 
(BgL_funcallz00_bglt)(BgL_auxz00_2095); } 
{ /* ./Cfa/closure.scm 124 */
BgL_nodez00_bglt BgL_funz00_966;
BgL_funz00_966 = 
(((BgL_funcallz00_bglt)CREF(BgL_appz00_965))->BgL_funz00); 
{ /* ./Cfa/closure.scm 124 */
BgL_approxz00_bglt BgL_approxz00_967;
BgL_approxz00_967 = 
BGl_cfaz12z12zzcfa_cfaz00(BgL_funz00_966); 
{ /* ./Cfa/closure.scm 125 */
obj_t BgL_allocz00_968;
BgL_allocz00_968 = 
(((BgL_approxz00_bglt)CREF(BgL_approxz00_967))->BgL_allocsz00); 
{ /* ./Cfa/closure.scm 126 */
BgL_typez00_bglt BgL_typez00_969;
BgL_typez00_969 = 
(((BgL_approxz00_bglt)CREF(BgL_approxz00_967))->BgL_typez00); 
{ /* ./Cfa/closure.scm 127 */
bool_t BgL_topzf3zf3_970;
BgL_topzf3zf3_970 = 
(((BgL_approxz00_bglt)CREF(BgL_approxz00_967))->BgL_topzf3zf3); 
{ /* ./Cfa/closure.scm 128 */

if(BgL_topzf3zf3_970)
{ /* ./Cfa/closure.scm 130 */
BGl_forzd2eachzd2approxzd2alloczd2zzcfa_approxz00(BGl_proc5595z00zzcfa_closurez00, BgL_approxz00_967); }  else 
{ /* ./Cfa/closure.scm 141 */
bool_t BgL_test4198z00_976;
{ /* ./Cfa/closure.scm 141 */
obj_t BgL_arg4215z00_987;
BgL_arg4215z00_987 = 
BGl_setzd2lengthzd2zzcfa_setz00(BgL_allocz00_968); 
{ /* ./Cfa/closure.scm 141 */
long BgL_auxz00_2106;
BgL_auxz00_2106 = 
(long)CINT(BgL_arg4215z00_987); 
BgL_test4198z00_976 = 
(BgL_auxz00_2106==((long)0)); } } 
if(BgL_test4198z00_976)
{ /* ./Cfa/closure.scm 141 */
CNST_TABLE_REF(((long)0)); }  else 
{ /* ./Cfa/closure.scm 144 */
bool_t BgL_test4199z00_977;
{ /* ./Cfa/closure.scm 144 */
bool_t BgL_test4207z00_983;
{ /* ./Cfa/closure.scm 144 */
obj_t BgL_arg4210z00_985;
BgL_arg4210z00_985 = 
BGl_setzd2lengthzd2zzcfa_setz00(BgL_allocz00_968); 
{ /* ./Cfa/closure.scm 144 */
long BgL_auxz00_2112;
BgL_auxz00_2112 = 
(long)CINT(BgL_arg4210z00_985); 
BgL_test4207z00_983 = 
(BgL_auxz00_2112==((long)1)); } } 
if(BgL_test4207z00_983)
{ /* ./Cfa/closure.scm 145 */
obj_t BgL__ortest_4088z00_984;
BgL__ortest_4088z00_984 = BGl_za2unsafezd2typeza2zd2zzengine_paramz00; 
if(
CBOOL(BgL__ortest_4088z00_984))
{ /* ./Cfa/closure.scm 145 */
BgL_test4199z00_977 = 
CBOOL(BgL__ortest_4088z00_984); }  else 
{ /* ./Cfa/closure.scm 145 */
obj_t BgL_auxz00_2119;
BgL_auxz00_2119 = 
(obj_t)(BgL_typez00_969); 
BgL_test4199z00_977 = 
(BgL_auxz00_2119==BGl_za2procedureza2z00zztype_cachez00); } }  else 
{ /* ./Cfa/closure.scm 144 */
BgL_test4199z00_977 = ((bool_t)0); } } 
if(BgL_test4199z00_977)
{ /* ./Cfa/closure.scm 144 */
CNST_TABLE_REF(((long)0)); }  else 
{ /* ./Cfa/closure.scm 144 */
BGl_forzd2eachzd2approxzd2alloczd2zzcfa_approxz00(BGl_proc5596z00zzcfa_closurez00, BgL_approxz00_967); } } } } } } } } } } 
{ /* ./Cfa/closure.scm 122 */
obj_t BgL_arg4226z00_989;
BgL_arg4226z00_989 = 
CDR(BgL_l4086z00_962); 
{ 
obj_t BgL_l4086z00_2126;
BgL_l4086z00_2126 = BgL_arg4226z00_989; 
BgL_l4086z00_962 = BgL_l4086z00_2126; 
goto BgL_forzd2each4087zd2_963;} } }  else 
{ /* ./Cfa/closure.scm 122 */
return ((bool_t)1);} } } } 
}



/* <anonymous:4193> */
obj_t BGl_zc3anonymousza34193ze3z83zzcfa_closurez00(obj_t BgL_envz00_1964, obj_t BgL_allocz00_1965)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 133 */
{ 
obj_t BgL_allocz00_972;
BgL_allocz00_972 = BgL_allocz00_1965; 
{ /* ./Cfa/closure.scm 134 */
bool_t BgL_test4194z00_974;
BgL_test4194z00_974 = 
BGl_iszd2azf3z21zz__objectz00(BgL_allocz00_972, BGl_makezd2procedurezd2appz00zzcfa_info2z00); 
if(BgL_test4194z00_974)
{ /* ./Cfa/closure.scm 134 */
{ /* ./Cfa/closure.scm 138 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3703z00_1757;bool_t BgL_val3702z00_1758;
BgL_obj3703z00_1757 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_allocz00_972); 
BgL_val3702z00_1758 = ((bool_t)0); 
{ 
obj_t BgL_auxz00_2130;
{ /* ./Cfa/closure.scm 138 */
BgL_objectz00_bglt BgL_auxz00_2131;
BgL_auxz00_2131 = 
(BgL_objectz00_bglt)(BgL_obj3703z00_1757); 
BgL_auxz00_2130 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2131); } 
((((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2130))->BgL_tz00) = ((bool_t)BgL_val3702z00_1758), BUNSPEC); } } 
{ /* ./Cfa/closure.scm 139 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3700z00_1759;bool_t BgL_val3699z00_1760;
BgL_obj3700z00_1759 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_allocz00_972); 
BgL_val3699z00_1760 = ((bool_t)0); 
{ 
obj_t BgL_auxz00_2136;
{ /* ./Cfa/closure.scm 139 */
BgL_objectz00_bglt BgL_auxz00_2137;
BgL_auxz00_2137 = 
(BgL_objectz00_bglt)(BgL_obj3700z00_1759); 
BgL_auxz00_2136 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2137); } 
return 
((((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2136))->BgL_xz00) = ((bool_t)BgL_val3699z00_1760), BUNSPEC);} } }  else 
{ /* ./Cfa/closure.scm 134 */
return BFALSE;} } } } 
}



/* <anonymous:4203> */
obj_t BGl_zc3anonymousza34203ze3z83zzcfa_closurez00(obj_t BgL_envz00_1966, obj_t BgL_allocz00_1967)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 152 */
{ 
obj_t BgL_allocz00_979;
BgL_allocz00_979 = BgL_allocz00_1967; 
{ /* ./Cfa/closure.scm 153 */
bool_t BgL_test4204z00_981;
BgL_test4204z00_981 = 
BGl_iszd2azf3z21zz__objectz00(BgL_allocz00_979, BGl_makezd2procedurezd2appz00zzcfa_info2z00); 
if(BgL_test4204z00_981)
{ /* ./Cfa/closure.scm 153 */
{ /* ./Cfa/closure.scm 157 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3700z00_1766;bool_t BgL_val3699z00_1767;
BgL_obj3700z00_1766 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_allocz00_979); 
BgL_val3699z00_1767 = ((bool_t)0); 
{ 
obj_t BgL_auxz00_2144;
{ /* ./Cfa/closure.scm 157 */
BgL_objectz00_bglt BgL_auxz00_2145;
BgL_auxz00_2145 = 
(BgL_objectz00_bglt)(BgL_obj3700z00_1766); 
BgL_auxz00_2144 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2145); } 
return 
((((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2144))->BgL_xz00) = ((bool_t)BgL_val3699z00_1767), BUNSPEC);} } }  else 
{ /* ./Cfa/closure.scm 153 */
return BFALSE;} } } } 
}



/* T-fix-point! */
obj_t BGl_Tzd2fixzd2pointz12z12zzcfa_closurez00(obj_t BgL_funcallzd2listzd2_3)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 170 */
{ 
bool_t BgL_continuezf3zf3_990;
BgL_continuezf3zf3_990 = ((bool_t)1); 
BgL_loopz00_991:
if(BgL_continuezf3zf3_990)
{ /* ./Cfa/closure.scm 175 */
bool_t BgL_continuezf3zf3_992;
BgL_continuezf3zf3_992 = ((bool_t)0); 
{ 
obj_t BgL_l4089z00_993;
BgL_l4089z00_993 = BgL_funcallzd2listzd2_3; 
BgL_forzd2each4090zd2_994:
{ /* ./Cfa/closure.scm 176 */
bool_t BgL_test4232z00_995;
BgL_test4232z00_995 = 
PAIRP(BgL_l4089z00_993); 
if(BgL_test4232z00_995)
{ /* ./Cfa/closure.scm 176 */
{ /* ./Cfa/closure.scm 178 */
obj_t BgL_appz00_996;
BgL_appz00_996 = 
CAR(BgL_l4089z00_993); 
{ /* ./Cfa/closure.scm 179 */
BgL_nodez00_bglt BgL_funz00_997;
{ /* ./Cfa/closure.scm 179 */
BgL_funcallz00_bglt BgL_obj1779z00_1771;
BgL_obj1779z00_1771 = 
(BgL_funcallz00_bglt)(BgL_appz00_996); 
BgL_funz00_997 = 
(((BgL_funcallz00_bglt)CREF(BgL_obj1779z00_1771))->BgL_funz00); } 
{ /* ./Cfa/closure.scm 179 */
BgL_approxz00_bglt BgL_approxz00_998;
BgL_approxz00_998 = 
BGl_cfaz12z12zzcfa_cfaz00(BgL_funz00_997); 
{ /* ./Cfa/closure.scm 180 */
obj_t BgL_allocz00_999;
{ /* ./Cfa/closure.scm 181 */
obj_t BgL_arg4273z00_1023;
BgL_arg4273z00_1023 = 
(((BgL_approxz00_bglt)CREF(BgL_approxz00_998))->BgL_allocsz00); 
BgL_allocz00_999 = 
BGl_setzd2ze3listz31zzcfa_setz00(BgL_arg4273z00_1023); } 
{ /* ./Cfa/closure.scm 181 */
BgL_typez00_bglt BgL_typez00_1000;
BgL_typez00_1000 = 
(((BgL_approxz00_bglt)CREF(BgL_approxz00_998))->BgL_typez00); 
{ /* ./Cfa/closure.scm 182 */
bool_t BgL_tzd2initzf3z21_1001;
{ /* ./Cfa/closure.scm 183 */
bool_t BgL__ortest_4091z00_1020;
BgL__ortest_4091z00_1020 = 
(((BgL_approxz00_bglt)CREF(BgL_approxz00_998))->BgL_topzf3zf3); 
if(BgL__ortest_4091z00_1020)
{ /* ./Cfa/closure.scm 183 */
BgL_tzd2initzf3z21_1001 = BgL__ortest_4091z00_1020; }  else 
{ /* ./Cfa/closure.scm 184 */
bool_t BgL_test4267z00_1021;
{ /* ./Cfa/closure.scm 184 */
bool_t BgL_test4268z00_1022;
{ /* ./Cfa/closure.scm 184 */
obj_t BgL_auxz00_2161;
BgL_auxz00_2161 = 
(obj_t)(BgL_typez00_1000); 
BgL_test4268z00_1022 = 
(BgL_auxz00_2161==BGl_za2procedureza2z00zztype_cachez00); } 
if(BgL_test4268z00_1022)
{ /* ./Cfa/closure.scm 184 */
BgL_test4267z00_1021 = ((bool_t)1); }  else 
{ /* ./Cfa/closure.scm 184 */
BgL_test4267z00_1021 = 
CBOOL(BGl_za2unsafezd2typeza2zd2zzengine_paramz00); } } 
if(BgL_test4267z00_1021)
{ /* ./Cfa/closure.scm 184 */
BgL_tzd2initzf3z21_1001 = ((bool_t)0); }  else 
{ /* ./Cfa/closure.scm 184 */
BgL_tzd2initzf3z21_1001 = ((bool_t)1); } } } 
{ /* ./Cfa/closure.scm 183 */

{ 
bool_t BgL_onezd2nonzd2tzf3zf3_1002;obj_t BgL_allocsz00_1003;
BgL_onezd2nonzd2tzf3zf3_1002 = BgL_tzd2initzf3z21_1001; 
BgL_allocsz00_1003 = BgL_allocz00_999; 
BgL_loopz00_1004:
{ /* ./Cfa/closure.scm 192 */
bool_t BgL_test4234z00_1005;
BgL_test4234z00_1005 = 
NULLP(BgL_allocsz00_1003); 
if(BgL_test4234z00_1005)
{ /* ./Cfa/closure.scm 192 */
CNST_TABLE_REF(((long)1)); }  else 
{ /* ./Cfa/closure.scm 192 */
if(BgL_onezd2nonzd2tzf3zf3_1002)
{ /* ./Cfa/closure.scm 194 */
{ 
obj_t BgL_l4092z00_1006;
{ /* ./Cfa/closure.scm 195 */
bool_t BgL_auxz00_2171;
BgL_l4092z00_1006 = BgL_allocz00_999; 
BgL_forzd2each4093zd2_1007:
{ /* ./Cfa/closure.scm 195 */
bool_t BgL_test4236z00_1008;
BgL_test4236z00_1008 = 
PAIRP(BgL_l4092z00_1006); 
if(BgL_test4236z00_1008)
{ /* ./Cfa/closure.scm 195 */
{ /* ./Cfa/closure.scm 197 */
obj_t BgL_allocz00_1009;
BgL_allocz00_1009 = 
CAR(BgL_l4092z00_1006); 
{ /* ./Cfa/closure.scm 197 */
bool_t BgL_test4237z00_1010;
BgL_test4237z00_1010 = 
BGl_iszd2azf3z21zz__objectz00(BgL_allocz00_1009, BGl_makezd2procedurezd2appz00zzcfa_info2z00); 
if(BgL_test4237z00_1010)
{ /* ./Cfa/closure.scm 199 */
bool_t BgL_test4238z00_1012;
{ /* ./Cfa/closure.scm 199 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3701z00_1779;
BgL_obj3701z00_1779 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_allocz00_1009); 
{ 
obj_t BgL_auxz00_2178;
{ /* ./Cfa/closure.scm 199 */
BgL_objectz00_bglt BgL_auxz00_2179;
BgL_auxz00_2179 = 
(BgL_objectz00_bglt)(BgL_obj3701z00_1779); 
BgL_auxz00_2178 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2179); } 
BgL_test4238z00_1012 = 
(((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2178))->BgL_tz00); } } 
if(BgL_test4238z00_1012)
{ /* ./Cfa/closure.scm 199 */
{ /* ./Cfa/closure.scm 201 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3703z00_1780;bool_t BgL_val3702z00_1781;
BgL_obj3703z00_1780 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_allocz00_1009); 
BgL_val3702z00_1781 = ((bool_t)0); 
{ 
obj_t BgL_auxz00_2185;
{ /* ./Cfa/closure.scm 201 */
BgL_objectz00_bglt BgL_auxz00_2186;
BgL_auxz00_2186 = 
(BgL_objectz00_bglt)(BgL_obj3703z00_1780); 
BgL_auxz00_2185 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2186); } 
((((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2185))->BgL_tz00) = ((bool_t)BgL_val3702z00_1781), BUNSPEC); } } 
BgL_continuezf3zf3_992 = ((bool_t)1); }  else 
{ /* ./Cfa/closure.scm 199 */BFALSE; } }  else 
{ /* ./Cfa/closure.scm 197 */BFALSE; } } } 
{ /* ./Cfa/closure.scm 195 */
obj_t BgL_arg4244z00_1013;
BgL_arg4244z00_1013 = 
CDR(BgL_l4092z00_1006); 
{ 
obj_t BgL_l4092z00_2191;
BgL_l4092z00_2191 = BgL_arg4244z00_1013; 
BgL_l4092z00_1006 = BgL_l4092z00_2191; 
goto BgL_forzd2each4093zd2_1007;} } }  else 
{ /* ./Cfa/closure.scm 195 */
BgL_auxz00_2171 = ((bool_t)1); } } 
BBOOL(BgL_auxz00_2171); } } }  else 
{ /* ./Cfa/closure.scm 204 */
bool_t BgL_test4248z00_1014;
{ /* ./Cfa/closure.scm 204 */
obj_t BgL_arg4263z00_1019;
BgL_arg4263z00_1019 = 
CAR(BgL_allocsz00_1003); 
BgL_test4248z00_1014 = 
BGl_iszd2azf3z21zz__objectz00(BgL_arg4263z00_1019, BGl_makezd2procedurezd2appz00zzcfa_info2z00); } 
if(BgL_test4248z00_1014)
{ /* ./Cfa/closure.scm 204 */
{ /* ./Cfa/closure.scm 205 */
obj_t BgL_instance4096z00_1015;
BgL_instance4096z00_1015 = 
CAR(BgL_allocsz00_1003); 
{ /* ./Cfa/closure.scm 206 */
bool_t BgL_test4249z00_1016;
{ /* ./Cfa/closure.scm 206 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3701z00_1786;
BgL_obj3701z00_1786 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_instance4096z00_1015); 
{ 
obj_t BgL_auxz00_2198;
{ /* ./Cfa/closure.scm 206 */
BgL_objectz00_bglt BgL_auxz00_2199;
BgL_auxz00_2199 = 
(BgL_objectz00_bglt)(BgL_obj3701z00_1786); 
BgL_auxz00_2198 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2199); } 
BgL_test4249z00_1016 = 
(((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2198))->BgL_tz00); } } 
if(BgL_test4249z00_1016)
{ /* ./Cfa/closure.scm 207 */
obj_t BgL_arg4251z00_1017;
BgL_arg4251z00_1017 = 
CDR(BgL_allocsz00_1003); 
{ 
obj_t BgL_allocsz00_2205;
BgL_allocsz00_2205 = BgL_arg4251z00_1017; 
BgL_allocsz00_1003 = BgL_allocsz00_2205; 
goto BgL_loopz00_1004;} }  else 
{ 
bool_t BgL_onezd2nonzd2tzf3zf3_2206;
BgL_onezd2nonzd2tzf3zf3_2206 = ((bool_t)1); 
BgL_onezd2nonzd2tzf3zf3_1002 = BgL_onezd2nonzd2tzf3zf3_2206; 
goto BgL_loopz00_1004;} } } }  else 
{ /* ./Cfa/closure.scm 204 */
if(
CBOOL(BGl_za2unsafezd2typeza2zd2zzengine_paramz00))
{ /* ./Cfa/closure.scm 211 */
obj_t BgL_arg4258z00_1018;
BgL_arg4258z00_1018 = 
CDR(BgL_allocsz00_1003); 
{ 
obj_t BgL_allocsz00_2210;
BgL_allocsz00_2210 = BgL_arg4258z00_1018; 
BgL_allocsz00_1003 = BgL_allocsz00_2210; 
goto BgL_loopz00_1004;} }  else 
{ 
bool_t BgL_onezd2nonzd2tzf3zf3_2211;
BgL_onezd2nonzd2tzf3zf3_2211 = ((bool_t)1); 
BgL_onezd2nonzd2tzf3zf3_1002 = BgL_onezd2nonzd2tzf3zf3_2211; 
goto BgL_loopz00_1004;} } } } } } } } } } } } } 
{ /* ./Cfa/closure.scm 176 */
obj_t BgL_arg4280z00_1024;
BgL_arg4280z00_1024 = 
CDR(BgL_l4089z00_993); 
{ 
obj_t BgL_l4089z00_2213;
BgL_l4089z00_2213 = BgL_arg4280z00_1024; 
BgL_l4089z00_993 = BgL_l4089z00_2213; 
goto BgL_forzd2each4090zd2_994;} } }  else 
{ /* ./Cfa/closure.scm 176 */((bool_t)1); } } } 
{ 
bool_t BgL_continuezf3zf3_2214;
BgL_continuezf3zf3_2214 = BgL_continuezf3zf3_992; 
BgL_continuezf3zf3_990 = BgL_continuezf3zf3_2214; 
goto BgL_loopz00_991;} }  else 
{ /* ./Cfa/closure.scm 173 */
return BUNSPEC;} } } 
}



/* light-closure! */
obj_t BGl_lightzd2closurez12zc0zzcfa_closurez00(obj_t BgL_globalsz00_5)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 226 */
BGl_lightzd2funcallz12zc0zzcfa_closurez00(); 
BGl_lightzd2accessz12zc0zzcfa_closurez00(); 
BGl_lightzd2makezd2procedurez12z12zzcfa_closurez00(); 
if(
CBOOL(BGl_za2sawza2z00zzengine_paramz00))
{ /* ./Cfa/closure.scm 230 */
return 
BGl_lightzd2typez12zc0zzcfa_ltypez00(BgL_globalsz00_5);}  else 
{ /* ./Cfa/closure.scm 230 */
return BFALSE;} } 
}



/* light-make-procedure! */
bool_t BGl_lightzd2makezd2procedurez12z12zzcfa_closurez00()
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 240 */
{ 
obj_t BgL_appz00_1061;obj_t BgL_appz00_1038;
{ 
obj_t BgL_l4104z00_1030;
BgL_l4104z00_1030 = BGl_za2makezd2procedurezd2listza2z00zzcfa_closurez00; 
BgL_forzd2each4105zd2_1031:
{ /* ./Cfa/closure.scm 272 */
bool_t BgL_test4297z00_1032;
BgL_test4297z00_1032 = 
PAIRP(BgL_l4104z00_1030); 
if(BgL_test4297z00_1032)
{ /* ./Cfa/closure.scm 272 */
{ /* ./Cfa/closure.scm 273 */
obj_t BgL_appz00_1033;
BgL_appz00_1033 = 
CAR(BgL_l4104z00_1030); 
{ /* ./Cfa/closure.scm 275 */
bool_t BgL_test4298z00_1035;
{ /* ./Cfa/closure.scm 275 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3698z00_1792;
BgL_obj3698z00_1792 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_appz00_1033); 
{ 
obj_t BgL_auxz00_2225;
{ /* ./Cfa/closure.scm 275 */
BgL_objectz00_bglt BgL_auxz00_2226;
BgL_auxz00_2226 = 
(BgL_objectz00_bglt)(BgL_obj3698z00_1792); 
BgL_auxz00_2225 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2226); } 
BgL_test4298z00_1035 = 
(((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2225))->BgL_xz00); } } 
if(BgL_test4298z00_1035)
{ /* ./Cfa/closure.scm 275 */
BgL_appz00_1061 = BgL_appz00_1033; 
{ /* ./Cfa/closure.scm 243 */
obj_t BgL_siza7eza7_1064;
{ /* ./Cfa/closure.scm 243 */
obj_t BgL_arg4406z00_1081;
{ /* ./Cfa/closure.scm 243 */
obj_t BgL_auxz00_2231;
{ /* ./Cfa/closure.scm 243 */
obj_t BgL_auxz00_2232;
{ /* ./Cfa/closure.scm 243 */
obj_t BgL_auxz00_2233;
{ /* ./Cfa/closure.scm 243 */
BgL_appz00_bglt BgL_obj1722z00_1827;
BgL_obj1722z00_1827 = 
(BgL_appz00_bglt)(BgL_appz00_1061); 
BgL_auxz00_2233 = 
(((BgL_appz00_bglt)CREF(BgL_obj1722z00_1827))->BgL_argsz00); } 
BgL_auxz00_2232 = 
CDR(BgL_auxz00_2233); } 
BgL_auxz00_2231 = 
CDR(BgL_auxz00_2232); } 
BgL_arg4406z00_1081 = 
CAR(BgL_auxz00_2231); } 
BgL_siza7eza7_1064 = 
BGl_getzd2nodezd2atomzd2valuezd2zzcfa_approxz00(
(BgL_nodez00_bglt)(BgL_arg4406z00_1081)); } 
{ /* ./Cfa/closure.scm 243 */
BgL_variablez00_bglt BgL_ffunz00_1065;
{ /* ./Cfa/closure.scm 244 */
BgL_varz00_bglt BgL_obj1625z00_1836;
{ /* ./Cfa/closure.scm 244 */
obj_t BgL_auxz00_2241;
{ /* ./Cfa/closure.scm 244 */
obj_t BgL_auxz00_2242;
{ /* ./Cfa/closure.scm 244 */
BgL_appz00_bglt BgL_obj1722z00_1834;
BgL_obj1722z00_1834 = 
(BgL_appz00_bglt)(BgL_appz00_1061); 
BgL_auxz00_2242 = 
(((BgL_appz00_bglt)CREF(BgL_obj1722z00_1834))->BgL_argsz00); } 
BgL_auxz00_2241 = 
CAR(BgL_auxz00_2242); } 
BgL_obj1625z00_1836 = 
(BgL_varz00_bglt)(BgL_auxz00_2241); } 
BgL_ffunz00_1065 = 
(((BgL_varz00_bglt)CREF(BgL_obj1625z00_1836))->BgL_variablez00); } 
{ /* ./Cfa/closure.scm 244 */
BgL_valuez00_bglt BgL_sfunz00_1066;
BgL_sfunz00_1066 = 
(((BgL_variablez00_bglt)CREF(BgL_ffunz00_1065))->BgL_valuez00); 
{ /* ./Cfa/closure.scm 245 */

{ /* ./Cfa/closure.scm 247 */
bool_t BgL_test4364z00_1067;
{ /* ./Cfa/closure.scm 247 */
long BgL_auxz00_2249;
BgL_auxz00_2249 = 
(long)CINT(BgL_siza7eza7_1064); 
BgL_test4364z00_1067 = 
(BgL_auxz00_2249==((long)1)); } 
if(BgL_test4364z00_1067)
{ /* ./Cfa/closure.scm 247 */
{ /* ./Cfa/closure.scm 248 */
bool_t BgL_test4365z00_1068;
{ /* ./Cfa/closure.scm 248 */
bool_t BgL_test4374z00_1072;
{ /* ./Cfa/closure.scm 248 */
obj_t BgL_obj1240z00_1840;
BgL_obj1240z00_1840 = 
(obj_t)(BgL_ffunz00_1065); 
BgL_test4374z00_1072 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1240z00_1840, BGl_globalz00zzast_varz00); } 
if(BgL_test4374z00_1072)
{ /* ./Cfa/closure.scm 249 */
bool_t BgL_test4375z00_1073;
{ /* ./Cfa/closure.scm 249 */
obj_t BgL_arg4384z00_1076;
{ /* ./Cfa/closure.scm 249 */
BgL_funz00_bglt BgL_obj1314z00_1841;
BgL_obj1314z00_1841 = 
(BgL_funz00_bglt)(BgL_sfunz00_1066); 
BgL_arg4384z00_1076 = 
(((BgL_funz00_bglt)CREF(BgL_obj1314z00_1841))->BgL_thezd2closurezd2); } 
BgL_test4375z00_1073 = 
BGl_iszd2azf3z21zz__objectz00(BgL_arg4384z00_1076, BGl_globalz00zzast_varz00); } 
if(BgL_test4375z00_1073)
{ /* ./Cfa/closure.scm 250 */
BgL_valuez00_bglt BgL_arg4377z00_1074;
{ /* ./Cfa/closure.scm 250 */
BgL_variablez00_bglt BgL_obj1100z00_1844;
{ /* ./Cfa/closure.scm 250 */
obj_t BgL_auxz00_2260;
{ /* ./Cfa/closure.scm 250 */
BgL_funz00_bglt BgL_obj1314z00_1843;
BgL_obj1314z00_1843 = 
(BgL_funz00_bglt)(BgL_sfunz00_1066); 
BgL_auxz00_2260 = 
(((BgL_funz00_bglt)CREF(BgL_obj1314z00_1843))->BgL_thezd2closurezd2); } 
BgL_obj1100z00_1844 = 
(BgL_variablez00_bglt)(BgL_auxz00_2260); } 
BgL_arg4377z00_1074 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1844))->BgL_valuez00); } 
{ /* ./Cfa/closure.scm 250 */
obj_t BgL_obj1519z00_1845;
BgL_obj1519z00_1845 = 
(obj_t)(BgL_arg4377z00_1074); 
BgL_test4365z00_1068 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1519z00_1845, BGl_scnstz00zzast_varz00); } }  else 
{ /* ./Cfa/closure.scm 249 */
BgL_test4365z00_1068 = ((bool_t)0); } }  else 
{ /* ./Cfa/closure.scm 248 */
BgL_test4365z00_1068 = ((bool_t)0); } } 
if(BgL_test4365z00_1068)
{ /* ./Cfa/closure.scm 251 */
BgL_valuez00_bglt BgL_arg4367z00_1069;obj_t BgL_arg4368z00_1070;
{ /* ./Cfa/closure.scm 251 */
BgL_variablez00_bglt BgL_obj1100z00_1847;
{ /* ./Cfa/closure.scm 251 */
obj_t BgL_auxz00_2268;
{ /* ./Cfa/closure.scm 251 */
BgL_funz00_bglt BgL_obj1314z00_1846;
BgL_obj1314z00_1846 = 
(BgL_funz00_bglt)(BgL_sfunz00_1066); 
BgL_auxz00_2268 = 
(((BgL_funz00_bglt)CREF(BgL_obj1314z00_1846))->BgL_thezd2closurezd2); } 
BgL_obj1100z00_1847 = 
(BgL_variablez00_bglt)(BgL_auxz00_2268); } 
BgL_arg4367z00_1069 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1847))->BgL_valuez00); } 
BgL_arg4368z00_1070 = 
CNST_TABLE_REF(((long)3)); 
{ /* ./Cfa/closure.scm 251 */
BgL_scnstz00_bglt BgL_obj1503z00_1848;obj_t BgL_val1502z00_1849;
BgL_obj1503z00_1848 = 
(BgL_scnstz00_bglt)(BgL_arg4367z00_1069); 
BgL_val1502z00_1849 = BgL_arg4368z00_1070; 
((((BgL_scnstz00_bglt)CREF(BgL_obj1503z00_1848))->BgL_classz00) = ((obj_t)BgL_val1502z00_1849), BUNSPEC); } }  else 
{ /* ./Cfa/closure.scm 248 */BFALSE; } } 
{ /* ./Cfa/closure.scm 253 */
BgL_varz00_bglt BgL_arg4389z00_1077;
{ /* ./Cfa/closure.scm 253 */
BgL_appz00_bglt BgL_obj1719z00_1850;
BgL_obj1719z00_1850 = 
(BgL_appz00_bglt)(BgL_appz00_1061); 
BgL_arg4389z00_1077 = 
(((BgL_appz00_bglt)CREF(BgL_obj1719z00_1850))->BgL_funz00); } 
{ /* ./Cfa/closure.scm 253 */
BgL_varz00_bglt BgL_obj1627z00_1851;BgL_variablez00_bglt BgL_val1626z00_1852;
BgL_obj1627z00_1851 = BgL_arg4389z00_1077; 
BgL_val1626z00_1852 = 
(BgL_variablez00_bglt)(BGl_za2makezd2elzd2procedurezd21za2zd2zzcfa_closurez00); 
((((BgL_varz00_bglt)CREF(BgL_obj1627z00_1851))->BgL_variablez00) = ((BgL_variablez00_bglt)BgL_val1626z00_1852), BUNSPEC); } } }  else 
{ /* ./Cfa/closure.scm 247 */
{ /* ./Cfa/closure.scm 255 */
BgL_varz00_bglt BgL_arg4393z00_1078;
{ /* ./Cfa/closure.scm 255 */
BgL_appz00_bglt BgL_obj1719z00_1853;
BgL_obj1719z00_1853 = 
(BgL_appz00_bglt)(BgL_appz00_1061); 
BgL_arg4393z00_1078 = 
(((BgL_appz00_bglt)CREF(BgL_obj1719z00_1853))->BgL_funz00); } 
{ /* ./Cfa/closure.scm 255 */
BgL_varz00_bglt BgL_obj1627z00_1854;BgL_variablez00_bglt BgL_val1626z00_1855;
BgL_obj1627z00_1854 = BgL_arg4393z00_1078; 
BgL_val1626z00_1855 = 
(BgL_variablez00_bglt)(BGl_za2makezd2elzd2procedureza2z00zzcfa_closurez00); 
((((BgL_varz00_bglt)CREF(BgL_obj1627z00_1854))->BgL_variablez00) = ((BgL_variablez00_bglt)BgL_val1626z00_1855), BUNSPEC); } } } } } } } } 
{ /* ./Cfa/closure.scm 256 */
obj_t BgL_arg4413z00_1083;
{ /* ./Cfa/closure.scm 256 */
obj_t BgL_auxz00_2284;
{ /* ./Cfa/closure.scm 256 */
obj_t BgL_auxz00_2285;
{ /* ./Cfa/closure.scm 256 */
BgL_appz00_bglt BgL_obj1722z00_1856;
BgL_obj1722z00_1856 = 
(BgL_appz00_bglt)(BgL_appz00_1061); 
BgL_auxz00_2285 = 
(((BgL_appz00_bglt)CREF(BgL_obj1722z00_1856))->BgL_argsz00); } 
BgL_auxz00_2284 = 
CDR(BgL_auxz00_2285); } 
BgL_arg4413z00_1083 = 
CDR(BgL_auxz00_2284); } 
{ /* ./Cfa/closure.scm 256 */
BgL_appz00_bglt BgL_obj1724z00_1861;obj_t BgL_val1723z00_1862;
BgL_obj1724z00_1861 = 
(BgL_appz00_bglt)(BgL_appz00_1061); 
BgL_val1723z00_1862 = BgL_arg4413z00_1083; 
((((BgL_appz00_bglt)CREF(BgL_obj1724z00_1861))->BgL_argsz00) = ((obj_t)BgL_val1723z00_1862), BUNSPEC); } } BgL_appz00_1061; }  else 
{ /* ./Cfa/closure.scm 276 */
bool_t BgL_test4300z00_1036;
{ /* ./Cfa/closure.scm 276 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3701z00_1793;
BgL_obj3701z00_1793 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_appz00_1033); 
{ 
obj_t BgL_auxz00_2293;
{ /* ./Cfa/closure.scm 276 */
BgL_objectz00_bglt BgL_auxz00_2294;
BgL_auxz00_2294 = 
(BgL_objectz00_bglt)(BgL_obj3701z00_1793); 
BgL_auxz00_2293 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2294); } 
BgL_test4300z00_1036 = 
(((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2293))->BgL_tz00); } } 
if(BgL_test4300z00_1036)
{ /* ./Cfa/closure.scm 276 */
BgL_appz00_1038 = BgL_appz00_1033; 
{ /* ./Cfa/closure.scm 260 */
obj_t BgL_siza7eza7_1041;
{ /* ./Cfa/closure.scm 260 */
obj_t BgL_arg4357z00_1059;
{ /* ./Cfa/closure.scm 260 */
obj_t BgL_auxz00_2299;
{ /* ./Cfa/closure.scm 260 */
obj_t BgL_auxz00_2300;
{ /* ./Cfa/closure.scm 260 */
obj_t BgL_auxz00_2301;
{ /* ./Cfa/closure.scm 260 */
BgL_appz00_bglt BgL_obj1722z00_1795;
BgL_obj1722z00_1795 = 
(BgL_appz00_bglt)(BgL_appz00_1038); 
BgL_auxz00_2301 = 
(((BgL_appz00_bglt)CREF(BgL_obj1722z00_1795))->BgL_argsz00); } 
BgL_auxz00_2300 = 
CDR(BgL_auxz00_2301); } 
BgL_auxz00_2299 = 
CDR(BgL_auxz00_2300); } 
BgL_arg4357z00_1059 = 
CAR(BgL_auxz00_2299); } 
BgL_siza7eza7_1041 = 
BGl_getzd2nodezd2atomzd2valuezd2zzcfa_approxz00(
(BgL_nodez00_bglt)(BgL_arg4357z00_1059)); } 
{ /* ./Cfa/closure.scm 260 */
BgL_variablez00_bglt BgL_ffunz00_1042;
{ /* ./Cfa/closure.scm 261 */
BgL_varz00_bglt BgL_obj1625z00_1804;
{ /* ./Cfa/closure.scm 261 */
obj_t BgL_auxz00_2309;
{ /* ./Cfa/closure.scm 261 */
obj_t BgL_auxz00_2310;
{ /* ./Cfa/closure.scm 261 */
BgL_appz00_bglt BgL_obj1722z00_1802;
BgL_obj1722z00_1802 = 
(BgL_appz00_bglt)(BgL_appz00_1038); 
BgL_auxz00_2310 = 
(((BgL_appz00_bglt)CREF(BgL_obj1722z00_1802))->BgL_argsz00); } 
BgL_auxz00_2309 = 
CAR(BgL_auxz00_2310); } 
BgL_obj1625z00_1804 = 
(BgL_varz00_bglt)(BgL_auxz00_2309); } 
BgL_ffunz00_1042 = 
(((BgL_varz00_bglt)CREF(BgL_obj1625z00_1804))->BgL_variablez00); } 
{ /* ./Cfa/closure.scm 261 */
BgL_valuez00_bglt BgL_sfunz00_1043;
BgL_sfunz00_1043 = 
(((BgL_variablez00_bglt)CREF(BgL_ffunz00_1042))->BgL_valuez00); 
{ /* ./Cfa/closure.scm 262 */

{ /* ./Cfa/closure.scm 263 */
bool_t BgL_test4311z00_1044;
{ /* ./Cfa/closure.scm 263 */
bool_t BgL_test4320z00_1048;
{ /* ./Cfa/closure.scm 263 */
obj_t BgL_obj1240z00_1806;
BgL_obj1240z00_1806 = 
(obj_t)(BgL_ffunz00_1042); 
BgL_test4320z00_1048 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1240z00_1806, BGl_globalz00zzast_varz00); } 
if(BgL_test4320z00_1048)
{ /* ./Cfa/closure.scm 264 */
bool_t BgL_test4321z00_1049;
{ /* ./Cfa/closure.scm 264 */
obj_t BgL_arg4330z00_1052;
{ /* ./Cfa/closure.scm 264 */
BgL_funz00_bglt BgL_obj1314z00_1807;
BgL_obj1314z00_1807 = 
(BgL_funz00_bglt)(BgL_sfunz00_1043); 
BgL_arg4330z00_1052 = 
(((BgL_funz00_bglt)CREF(BgL_obj1314z00_1807))->BgL_thezd2closurezd2); } 
BgL_test4321z00_1049 = 
BGl_iszd2azf3z21zz__objectz00(BgL_arg4330z00_1052, BGl_globalz00zzast_varz00); } 
if(BgL_test4321z00_1049)
{ /* ./Cfa/closure.scm 265 */
BgL_valuez00_bglt BgL_arg4323z00_1050;
{ /* ./Cfa/closure.scm 265 */
BgL_variablez00_bglt BgL_obj1100z00_1810;
{ /* ./Cfa/closure.scm 265 */
obj_t BgL_auxz00_2324;
{ /* ./Cfa/closure.scm 265 */
BgL_funz00_bglt BgL_obj1314z00_1809;
BgL_obj1314z00_1809 = 
(BgL_funz00_bglt)(BgL_sfunz00_1043); 
BgL_auxz00_2324 = 
(((BgL_funz00_bglt)CREF(BgL_obj1314z00_1809))->BgL_thezd2closurezd2); } 
BgL_obj1100z00_1810 = 
(BgL_variablez00_bglt)(BgL_auxz00_2324); } 
BgL_arg4323z00_1050 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1810))->BgL_valuez00); } 
{ /* ./Cfa/closure.scm 265 */
obj_t BgL_obj1519z00_1811;
BgL_obj1519z00_1811 = 
(obj_t)(BgL_arg4323z00_1050); 
BgL_test4311z00_1044 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1519z00_1811, BGl_scnstz00zzast_varz00); } }  else 
{ /* ./Cfa/closure.scm 264 */
BgL_test4311z00_1044 = ((bool_t)0); } }  else 
{ /* ./Cfa/closure.scm 263 */
BgL_test4311z00_1044 = ((bool_t)0); } } 
if(BgL_test4311z00_1044)
{ /* ./Cfa/closure.scm 266 */
BgL_valuez00_bglt BgL_arg4313z00_1045;obj_t BgL_arg4314z00_1046;
{ /* ./Cfa/closure.scm 266 */
BgL_variablez00_bglt BgL_obj1100z00_1813;
{ /* ./Cfa/closure.scm 266 */
obj_t BgL_auxz00_2332;
{ /* ./Cfa/closure.scm 266 */
BgL_funz00_bglt BgL_obj1314z00_1812;
BgL_obj1314z00_1812 = 
(BgL_funz00_bglt)(BgL_sfunz00_1043); 
BgL_auxz00_2332 = 
(((BgL_funz00_bglt)CREF(BgL_obj1314z00_1812))->BgL_thezd2closurezd2); } 
BgL_obj1100z00_1813 = 
(BgL_variablez00_bglt)(BgL_auxz00_2332); } 
BgL_arg4313z00_1045 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1813))->BgL_valuez00); } 
BgL_arg4314z00_1046 = 
CNST_TABLE_REF(((long)2)); 
{ /* ./Cfa/closure.scm 266 */
BgL_scnstz00_bglt BgL_obj1503z00_1814;obj_t BgL_val1502z00_1815;
BgL_obj1503z00_1814 = 
(BgL_scnstz00_bglt)(BgL_arg4313z00_1045); 
BgL_val1502z00_1815 = BgL_arg4314z00_1046; 
((((BgL_scnstz00_bglt)CREF(BgL_obj1503z00_1814))->BgL_classz00) = ((obj_t)BgL_val1502z00_1815), BUNSPEC); } }  else 
{ /* ./Cfa/closure.scm 263 */BFALSE; } } 
{ /* ./Cfa/closure.scm 268 */
BgL_varz00_bglt BgL_arg4335z00_1053;
{ /* ./Cfa/closure.scm 268 */
BgL_appz00_bglt BgL_obj1719z00_1816;
BgL_obj1719z00_1816 = 
(BgL_appz00_bglt)(BgL_appz00_1038); 
BgL_arg4335z00_1053 = 
(((BgL_appz00_bglt)CREF(BgL_obj1719z00_1816))->BgL_funz00); } 
{ /* ./Cfa/closure.scm 268 */
BgL_varz00_bglt BgL_obj1627z00_1817;BgL_variablez00_bglt BgL_val1626z00_1818;
BgL_obj1627z00_1817 = BgL_arg4335z00_1053; 
BgL_val1626z00_1818 = 
(BgL_variablez00_bglt)(BGl_za2makezd2lzd2procedureza2z00zzcfa_closurez00); 
((((BgL_varz00_bglt)CREF(BgL_obj1627z00_1817))->BgL_variablez00) = ((BgL_variablez00_bglt)BgL_val1626z00_1818), BUNSPEC); } } 
{ /* ./Cfa/closure.scm 269 */
obj_t BgL_arg4339z00_1054;obj_t BgL_arg4340z00_1055;
{ /* ./Cfa/closure.scm 269 */
BgL_appz00_bglt BgL_obj1722z00_1819;
BgL_obj1722z00_1819 = 
(BgL_appz00_bglt)(BgL_appz00_1038); 
BgL_arg4339z00_1054 = 
(((BgL_appz00_bglt)CREF(BgL_obj1722z00_1819))->BgL_argsz00); } 
{ /* ./Cfa/closure.scm 269 */
obj_t BgL_auxz00_2346;
{ /* ./Cfa/closure.scm 269 */
obj_t BgL_auxz00_2347;
{ /* ./Cfa/closure.scm 269 */
BgL_appz00_bglt BgL_obj1722z00_1820;
BgL_obj1722z00_1820 = 
(BgL_appz00_bglt)(BgL_appz00_1038); 
BgL_auxz00_2347 = 
(((BgL_appz00_bglt)CREF(BgL_obj1722z00_1820))->BgL_argsz00); } 
BgL_auxz00_2346 = 
CDR(BgL_auxz00_2347); } 
BgL_arg4340z00_1055 = 
CDR(BgL_auxz00_2346); } 
SET_CDR(BgL_arg4339z00_1054, BgL_arg4340z00_1055); } BgL_appz00_1038; } } } } }  else 
{ /* ./Cfa/closure.scm 276 */BFALSE; } } } } 
{ /* ./Cfa/closure.scm 272 */
obj_t BgL_arg4306z00_1037;
BgL_arg4306z00_1037 = 
CDR(BgL_l4104z00_1030); 
{ 
obj_t BgL_l4104z00_2354;
BgL_l4104z00_2354 = BgL_arg4306z00_1037; 
BgL_l4104z00_1030 = BgL_l4104z00_2354; 
goto BgL_forzd2each4105zd2_1031;} } }  else 
{ /* ./Cfa/closure.scm 272 */
return ((bool_t)1);} } } } } 
}



/* light-funcall! */
bool_t BGl_lightzd2funcallz12zc0zzcfa_closurez00()
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 282 */
{ 
obj_t BgL_l4108z00_1087;
BgL_l4108z00_1087 = BGl_za2funcallzd2listza2zd2zzcfa_closurez00; 
BgL_forzd2each4109zd2_1088:
{ /* ./Cfa/closure.scm 283 */
bool_t BgL_test4420z00_1089;
BgL_test4420z00_1089 = 
PAIRP(BgL_l4108z00_1087); 
if(BgL_test4420z00_1089)
{ /* ./Cfa/closure.scm 283 */
{ /* ./Cfa/closure.scm 284 */
BgL_funcallz00_bglt BgL_appz00_1090;
{ /* ./Cfa/closure.scm 284 */
obj_t BgL_auxz00_2357;
BgL_auxz00_2357 = 
CAR(BgL_l4108z00_1087); 
BgL_appz00_1090 = 
(BgL_funcallz00_bglt)(BgL_auxz00_2357); } 
{ /* ./Cfa/closure.scm 285 */
BgL_nodez00_bglt BgL_funz00_1091;
BgL_funz00_1091 = 
(((BgL_funcallz00_bglt)CREF(BgL_appz00_1090))->BgL_funz00); 
{ /* ./Cfa/closure.scm 285 */
BgL_approxz00_bglt BgL_approxz00_1092;
BgL_approxz00_1092 = 
BGl_cfaz12z12zzcfa_cfaz00(BgL_funz00_1091); 
{ /* ./Cfa/closure.scm 286 */
obj_t BgL_alloczd2listzd2_1093;
{ /* ./Cfa/closure.scm 287 */
obj_t BgL_arg4452z00_1109;
BgL_arg4452z00_1109 = 
(((BgL_approxz00_bglt)CREF(BgL_approxz00_1092))->BgL_allocsz00); 
BgL_alloczd2listzd2_1093 = 
BGl_setzd2ze3listz31zzcfa_setz00(BgL_arg4452z00_1109); } 
{ /* ./Cfa/closure.scm 287 */

{ /* ./Cfa/closure.scm 288 */
bool_t BgL_test4421z00_1094;
{ /* ./Cfa/closure.scm 288 */
bool_t BgL_test4444z00_1106;
BgL_test4444z00_1106 = 
PAIRP(BgL_alloczd2listzd2_1093); 
if(BgL_test4444z00_1106)
{ /* ./Cfa/closure.scm 289 */
bool_t BgL_test4445z00_1107;
{ /* ./Cfa/closure.scm 289 */
obj_t BgL_arg4447z00_1108;
BgL_arg4447z00_1108 = 
CAR(BgL_alloczd2listzd2_1093); 
BgL_test4445z00_1107 = 
BGl_iszd2azf3z21zz__objectz00(BgL_arg4447z00_1108, BGl_makezd2procedurezd2appz00zzcfa_info2z00); } 
if(BgL_test4445z00_1107)
{ /* ./Cfa/closure.scm 289 */
BgL_test4421z00_1094 = ((bool_t)0); }  else 
{ /* ./Cfa/closure.scm 289 */
BgL_test4421z00_1094 = ((bool_t)1); } }  else 
{ /* ./Cfa/closure.scm 288 */
BgL_test4421z00_1094 = ((bool_t)1); } } 
if(BgL_test4421z00_1094)
{ /* ./Cfa/closure.scm 288 */
CNST_TABLE_REF(((long)4)); }  else 
{ /* ./Cfa/closure.scm 293 */
BgL_appz00_bglt BgL_allocz00_1095;
{ /* ./Cfa/closure.scm 293 */
obj_t BgL_auxz00_2371;
BgL_auxz00_2371 = 
CAR(BgL_alloczd2listzd2_1093); 
BgL_allocz00_1095 = 
(BgL_appz00_bglt)(BgL_auxz00_2371); } 
{ /* ./Cfa/closure.scm 296 */
bool_t BgL_test4422z00_1097;
{ /* ./Cfa/closure.scm 296 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3698z00_1871;
BgL_obj3698z00_1871 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_allocz00_1095); 
{ 
obj_t BgL_auxz00_2375;
{ /* ./Cfa/closure.scm 296 */
BgL_objectz00_bglt BgL_auxz00_2376;
BgL_auxz00_2376 = 
(BgL_objectz00_bglt)(BgL_obj3698z00_1871); 
BgL_auxz00_2375 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2376); } 
BgL_test4422z00_1097 = 
(((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2375))->BgL_xz00); } } 
if(BgL_test4422z00_1097)
{ /* ./Cfa/closure.scm 296 */
{ /* ./Cfa/closure.scm 300 */
BgL_varz00_bglt BgL_arg4424z00_1098;
{ /* ./Cfa/closure.scm 300 */
BgL_varz00_bglt BgL_duplicated4112z00_1099;
{ /* ./Cfa/closure.scm 300 */
obj_t BgL_auxz00_2381;
{ /* ./Cfa/closure.scm 300 */
obj_t BgL_auxz00_2382;
BgL_auxz00_2382 = 
(((BgL_appz00_bglt)CREF(BgL_allocz00_1095))->BgL_argsz00); 
BgL_auxz00_2381 = 
CAR(BgL_auxz00_2382); } 
BgL_duplicated4112z00_1099 = 
(BgL_varz00_bglt)(BgL_auxz00_2381); } 
{ /* ./Cfa/closure.scm 300 */
BgL_varz00_bglt BgL_new4113z00_1100;
{ /* ./Cfa/closure.scm 300 */
obj_t BgL_arg4427z00_1101;BgL_typez00_bglt BgL_arg4428z00_1102;BgL_variablez00_bglt BgL_arg4429z00_1103;
{ /* ./Cfa/closure.scm 300 */
BgL_nodez00_bglt BgL_obj1560z00_1874;
BgL_obj1560z00_1874 = 
(BgL_nodez00_bglt)(BgL_duplicated4112z00_1099); 
BgL_arg4427z00_1101 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1560z00_1874))->BgL_locz00); } 
{ /* ./Cfa/closure.scm 300 */
BgL_nodez00_bglt BgL_obj1561z00_1875;
BgL_obj1561z00_1875 = 
(BgL_nodez00_bglt)(BgL_duplicated4112z00_1099); 
BgL_arg4428z00_1102 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1561z00_1875))->BgL_typez00); } 
BgL_arg4429z00_1103 = 
(((BgL_varz00_bglt)CREF(BgL_duplicated4112z00_1099))->BgL_variablez00); 
BgL_new4113z00_1100 = 
BGl_makezd2varzd2zzast_nodez00(BgL_arg4427z00_1101, BgL_arg4428z00_1102, BgL_arg4429z00_1103); } 
{ /* ./Cfa/closure.scm 300 */

BgL_arg4424z00_1098 = BgL_new4113z00_1100; } } } 
{ /* ./Cfa/closure.scm 298 */
BgL_funcallz00_bglt BgL_obj1781z00_1877;BgL_nodez00_bglt BgL_val1780z00_1878;
BgL_obj1781z00_1877 = BgL_appz00_1090; 
BgL_val1780z00_1878 = 
(BgL_nodez00_bglt)(BgL_arg4424z00_1098); 
((((BgL_funcallz00_bglt)CREF(BgL_obj1781z00_1877))->BgL_funz00) = ((BgL_nodez00_bglt)BgL_val1780z00_1878), BUNSPEC); } } 
{ /* ./Cfa/closure.scm 301 */
BgL_funcallz00_bglt BgL_obj1787z00_1879;obj_t BgL_val1786z00_1880;
BgL_obj1787z00_1879 = BgL_appz00_1090; 
BgL_val1786z00_1880 = 
CNST_TABLE_REF(((long)5)); 
((((BgL_funcallz00_bglt)CREF(BgL_obj1787z00_1879))->BgL_strengthz00) = ((obj_t)BgL_val1786z00_1880), BUNSPEC); } }  else 
{ /* ./Cfa/closure.scm 302 */
bool_t BgL_test4439z00_1105;
{ /* ./Cfa/closure.scm 302 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3701z00_1881;
BgL_obj3701z00_1881 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_allocz00_1095); 
{ 
obj_t BgL_auxz00_2397;
{ /* ./Cfa/closure.scm 302 */
BgL_objectz00_bglt BgL_auxz00_2398;
BgL_auxz00_2398 = 
(BgL_objectz00_bglt)(BgL_obj3701z00_1881); 
BgL_auxz00_2397 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2398); } 
BgL_test4439z00_1105 = 
(((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2397))->BgL_tz00); } } 
if(BgL_test4439z00_1105)
{ /* ./Cfa/closure.scm 302 */
{ /* ./Cfa/closure.scm 304 */
BgL_funcallz00_bglt BgL_obj1787z00_1882;obj_t BgL_val1786z00_1883;
BgL_obj1787z00_1882 = BgL_appz00_1090; 
BgL_val1786z00_1883 = 
CNST_TABLE_REF(((long)6)); 
((((BgL_funcallz00_bglt)CREF(BgL_obj1787z00_1882))->BgL_strengthz00) = ((obj_t)BgL_val1786z00_1883), BUNSPEC); } }  else 
{ /* ./Cfa/closure.scm 302 */
CNST_TABLE_REF(((long)4)); } } } } } } } } } } 
{ /* ./Cfa/closure.scm 283 */
obj_t BgL_arg4459z00_1110;
BgL_arg4459z00_1110 = 
CDR(BgL_l4108z00_1087); 
{ 
obj_t BgL_l4108z00_2407;
BgL_l4108z00_2407 = BgL_arg4459z00_1110; 
BgL_l4108z00_1087 = BgL_l4108z00_2407; 
goto BgL_forzd2each4109zd2_1088;} } }  else 
{ /* ./Cfa/closure.scm 283 */
return ((bool_t)1);} } } } 
}



/* light-access! */
bool_t BGl_lightzd2accessz12zc0zzcfa_closurez00()
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 313 */
{ 
obj_t BgL_l4114z00_1111;
BgL_l4114z00_1111 = BGl_za2procedurezd2refzd2listza2z00zzcfa_closurez00; 
BgL_forzd2each4115zd2_1112:
{ /* ./Cfa/closure.scm 314 */
bool_t BgL_test4464z00_1113;
BgL_test4464z00_1113 = 
PAIRP(BgL_l4114z00_1111); 
if(BgL_test4464z00_1113)
{ /* ./Cfa/closure.scm 314 */
{ /* ./Cfa/closure.scm 316 */
obj_t BgL_appz00_1114;
BgL_appz00_1114 = 
CAR(BgL_l4114z00_1111); 
{ /* ./Cfa/closure.scm 316 */
BgL_approxz00_bglt BgL_approxz00_1116;
{ /* ./Cfa/closure.scm 317 */
obj_t BgL_arg4509z00_1137;
{ /* ./Cfa/closure.scm 317 */
obj_t BgL_auxz00_2411;
{ /* ./Cfa/closure.scm 317 */
BgL_appz00_bglt BgL_obj1722z00_1888;
BgL_obj1722z00_1888 = 
(BgL_appz00_bglt)(BgL_appz00_1114); 
BgL_auxz00_2411 = 
(((BgL_appz00_bglt)CREF(BgL_obj1722z00_1888))->BgL_argsz00); } 
BgL_arg4509z00_1137 = 
CAR(BgL_auxz00_2411); } 
BgL_approxz00_1116 = 
BGl_cfaz12z12zzcfa_cfaz00(
(BgL_nodez00_bglt)(BgL_arg4509z00_1137)); } 
{ /* ./Cfa/closure.scm 317 */
obj_t BgL_alloczd2listzd2_1117;
{ /* ./Cfa/closure.scm 318 */
obj_t BgL_arg4505z00_1136;
BgL_arg4505z00_1136 = 
(((BgL_approxz00_bglt)CREF(BgL_approxz00_1116))->BgL_allocsz00); 
BgL_alloczd2listzd2_1117 = 
BGl_setzd2ze3listz31zzcfa_setz00(BgL_arg4505z00_1136); } 
{ /* ./Cfa/closure.scm 318 */
BgL_varz00_bglt BgL_funz00_1118;
{ /* ./Cfa/closure.scm 319 */
BgL_appz00_bglt BgL_obj1719z00_1891;
BgL_obj1719z00_1891 = 
(BgL_appz00_bglt)(BgL_appz00_1114); 
BgL_funz00_1118 = 
(((BgL_appz00_bglt)CREF(BgL_obj1719z00_1891))->BgL_funz00); } 
{ /* ./Cfa/closure.scm 319 */
BgL_variablez00_bglt BgL_vfunz00_1119;
BgL_vfunz00_1119 = 
(((BgL_varz00_bglt)CREF(BgL_funz00_1118))->BgL_variablez00); 
{ /* ./Cfa/closure.scm 320 */

{ /* ./Cfa/closure.scm 321 */
bool_t BgL_test4465z00_1120;
{ /* ./Cfa/closure.scm 321 */
bool_t BgL_test4495z00_1133;
BgL_test4495z00_1133 = 
PAIRP(BgL_alloczd2listzd2_1117); 
if(BgL_test4495z00_1133)
{ /* ./Cfa/closure.scm 322 */
bool_t BgL_test4496z00_1134;
{ /* ./Cfa/closure.scm 322 */
obj_t BgL_arg4498z00_1135;
BgL_arg4498z00_1135 = 
CAR(BgL_alloczd2listzd2_1117); 
BgL_test4496z00_1134 = 
BGl_iszd2azf3z21zz__objectz00(BgL_arg4498z00_1135, BGl_makezd2procedurezd2appz00zzcfa_info2z00); } 
if(BgL_test4496z00_1134)
{ /* ./Cfa/closure.scm 322 */
BgL_test4465z00_1120 = ((bool_t)0); }  else 
{ /* ./Cfa/closure.scm 322 */
BgL_test4465z00_1120 = ((bool_t)1); } }  else 
{ /* ./Cfa/closure.scm 321 */
BgL_test4465z00_1120 = ((bool_t)1); } } 
if(BgL_test4465z00_1120)
{ /* ./Cfa/closure.scm 321 */
CNST_TABLE_REF(((long)4)); }  else 
{ /* ./Cfa/closure.scm 324 */
BgL_appz00_bglt BgL_allocz00_1121;
{ /* ./Cfa/closure.scm 324 */
obj_t BgL_auxz00_2429;
BgL_auxz00_2429 = 
CAR(BgL_alloczd2listzd2_1117); 
BgL_allocz00_1121 = 
(BgL_appz00_bglt)(BgL_auxz00_2429); } 
{ /* ./Cfa/closure.scm 327 */
bool_t BgL_test4466z00_1123;
{ /* ./Cfa/closure.scm 327 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3698z00_1897;
BgL_obj3698z00_1897 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_allocz00_1121); 
{ 
obj_t BgL_auxz00_2433;
{ /* ./Cfa/closure.scm 327 */
BgL_objectz00_bglt BgL_auxz00_2434;
BgL_auxz00_2434 = 
(BgL_objectz00_bglt)(BgL_obj3698z00_1897); 
BgL_auxz00_2433 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2434); } 
BgL_test4466z00_1123 = 
(((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2433))->BgL_xz00); } } 
if(BgL_test4466z00_1123)
{ /* ./Cfa/closure.scm 327 */
{ /* ./Cfa/closure.scm 328 */
bool_t BgL_test4467z00_1124;
{ /* ./Cfa/closure.scm 328 */
obj_t BgL_arg4477z00_1127;
{ /* ./Cfa/closure.scm 328 */
obj_t BgL_arg4481z00_1129;
{ /* ./Cfa/closure.scm 328 */
obj_t BgL_auxz00_2439;
{ /* ./Cfa/closure.scm 328 */
obj_t BgL_auxz00_2440;
{ /* ./Cfa/closure.scm 328 */
obj_t BgL_auxz00_2441;
BgL_auxz00_2441 = 
(((BgL_appz00_bglt)CREF(BgL_allocz00_1121))->BgL_argsz00); 
BgL_auxz00_2440 = 
CDR(BgL_auxz00_2441); } 
BgL_auxz00_2439 = 
CDR(BgL_auxz00_2440); } 
BgL_arg4481z00_1129 = 
CAR(BgL_auxz00_2439); } 
BgL_arg4477z00_1127 = 
BGl_getzd2nodezd2atomzd2valuezd2zzcfa_approxz00(
(BgL_nodez00_bglt)(BgL_arg4481z00_1129)); } 
{ /* ./Cfa/closure.scm 328 */
long BgL_auxz00_2448;
BgL_auxz00_2448 = 
(long)CINT(BgL_arg4477z00_1127); 
BgL_test4467z00_1124 = 
(BgL_auxz00_2448==((long)1)); } } 
if(BgL_test4467z00_1124)
{ /* ./Cfa/closure.scm 329 */
bool_t BgL_test4468z00_1125;
{ /* ./Cfa/closure.scm 329 */
obj_t BgL_auxz00_2452;
BgL_auxz00_2452 = 
(obj_t)(BgL_vfunz00_1119); 
BgL_test4468z00_1125 = 
(BgL_auxz00_2452==BGl_za2procedurezd2refza2zd2zzcfa_closurez00); } 
if(BgL_test4468z00_1125)
{ /* ./Cfa/closure.scm 330 */
BgL_varz00_bglt BgL_obj1627z00_1907;BgL_variablez00_bglt BgL_val1626z00_1908;
BgL_obj1627z00_1907 = BgL_funz00_1118; 
BgL_val1626z00_1908 = 
(BgL_variablez00_bglt)(BGl_za2procedurezd21zd2elzd2refza2zd2zzcfa_closurez00); 
((((BgL_varz00_bglt)CREF(BgL_obj1627z00_1907))->BgL_variablez00) = ((BgL_variablez00_bglt)BgL_val1626z00_1908), BUNSPEC); }  else 
{ /* ./Cfa/closure.scm 331 */
BgL_varz00_bglt BgL_obj1627z00_1909;BgL_variablez00_bglt BgL_val1626z00_1910;
BgL_obj1627z00_1909 = BgL_funz00_1118; 
BgL_val1626z00_1910 = 
(BgL_variablez00_bglt)(BGl_za2procedurezd21zd2elzd2setz12za2zc0zzcfa_closurez00); 
((((BgL_varz00_bglt)CREF(BgL_obj1627z00_1909))->BgL_variablez00) = ((BgL_variablez00_bglt)BgL_val1626z00_1910), BUNSPEC); } }  else 
{ /* ./Cfa/closure.scm 332 */
bool_t BgL_test4472z00_1126;
{ /* ./Cfa/closure.scm 332 */
obj_t BgL_auxz00_2460;
BgL_auxz00_2460 = 
(obj_t)(BgL_vfunz00_1119); 
BgL_test4472z00_1126 = 
(BgL_auxz00_2460==BGl_za2procedurezd2refza2zd2zzcfa_closurez00); } 
if(BgL_test4472z00_1126)
{ /* ./Cfa/closure.scm 333 */
BgL_varz00_bglt BgL_obj1627z00_1911;BgL_variablez00_bglt BgL_val1626z00_1912;
BgL_obj1627z00_1911 = BgL_funz00_1118; 
BgL_val1626z00_1912 = 
(BgL_variablez00_bglt)(BGl_za2procedurezd2elzd2refza2z00zzcfa_closurez00); 
((((BgL_varz00_bglt)CREF(BgL_obj1627z00_1911))->BgL_variablez00) = ((BgL_variablez00_bglt)BgL_val1626z00_1912), BUNSPEC); }  else 
{ /* ./Cfa/closure.scm 334 */
BgL_varz00_bglt BgL_obj1627z00_1913;BgL_variablez00_bglt BgL_val1626z00_1914;
BgL_obj1627z00_1913 = BgL_funz00_1118; 
BgL_val1626z00_1914 = 
(BgL_variablez00_bglt)(BGl_za2procedurezd2elzd2setz12za2z12zzcfa_closurez00); 
((((BgL_varz00_bglt)CREF(BgL_obj1627z00_1913))->BgL_variablez00) = ((BgL_variablez00_bglt)BgL_val1626z00_1914), BUNSPEC); } } } }  else 
{ /* ./Cfa/closure.scm 335 */
bool_t BgL_test4487z00_1131;
{ /* ./Cfa/closure.scm 335 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3701z00_1915;
BgL_obj3701z00_1915 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_allocz00_1121); 
{ 
obj_t BgL_auxz00_2469;
{ /* ./Cfa/closure.scm 335 */
BgL_objectz00_bglt BgL_auxz00_2470;
BgL_auxz00_2470 = 
(BgL_objectz00_bglt)(BgL_obj3701z00_1915); 
BgL_auxz00_2469 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2470); } 
BgL_test4487z00_1131 = 
(((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2469))->BgL_tz00); } } 
if(BgL_test4487z00_1131)
{ /* ./Cfa/closure.scm 335 */
{ /* ./Cfa/closure.scm 336 */
bool_t BgL_test4488z00_1132;
{ /* ./Cfa/closure.scm 336 */
obj_t BgL_auxz00_2475;
BgL_auxz00_2475 = 
(obj_t)(BgL_vfunz00_1119); 
BgL_test4488z00_1132 = 
(BgL_auxz00_2475==BGl_za2procedurezd2refza2zd2zzcfa_closurez00); } 
if(BgL_test4488z00_1132)
{ /* ./Cfa/closure.scm 337 */
BgL_varz00_bglt BgL_obj1627z00_1916;BgL_variablez00_bglt BgL_val1626z00_1917;
BgL_obj1627z00_1916 = BgL_funz00_1118; 
BgL_val1626z00_1917 = 
(BgL_variablez00_bglt)(BGl_za2procedurezd2lzd2refza2z00zzcfa_closurez00); 
((((BgL_varz00_bglt)CREF(BgL_obj1627z00_1916))->BgL_variablez00) = ((BgL_variablez00_bglt)BgL_val1626z00_1917), BUNSPEC); }  else 
{ /* ./Cfa/closure.scm 338 */
BgL_varz00_bglt BgL_obj1627z00_1918;BgL_variablez00_bglt BgL_val1626z00_1919;
BgL_obj1627z00_1918 = BgL_funz00_1118; 
BgL_val1626z00_1919 = 
(BgL_variablez00_bglt)(BGl_za2procedurezd2lzd2setz12za2z12zzcfa_closurez00); 
((((BgL_varz00_bglt)CREF(BgL_obj1627z00_1918))->BgL_variablez00) = ((BgL_variablez00_bglt)BgL_val1626z00_1919), BUNSPEC); } } }  else 
{ /* ./Cfa/closure.scm 335 */BFALSE; } } } } } } } } } } } 
{ /* ./Cfa/closure.scm 314 */
obj_t BgL_arg4518z00_1139;
BgL_arg4518z00_1139 = 
CDR(BgL_l4114z00_1111); 
{ 
obj_t BgL_l4114z00_2484;
BgL_l4114z00_2484 = BgL_arg4518z00_1139; 
BgL_l4114z00_1111 = BgL_l4114z00_2484; 
goto BgL_forzd2each4115zd2_1112;} } }  else 
{ /* ./Cfa/closure.scm 314 */
return ((bool_t)1);} } } } 
}



/* show-X-T */
obj_t BGl_showzd2Xzd2Tz00zzcfa_closurez00(obj_t BgL_allocsz00_6)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 344 */
{ 
obj_t BgL_xpz00_1141;obj_t BgL_tpz00_1142;obj_t BgL_allocsz00_1143;
BgL_xpz00_1141 = BNIL; 
BgL_tpz00_1142 = BNIL; 
BgL_allocsz00_1143 = BgL_allocsz00_6; 
BgL_loopz00_1144:
{ /* ./Cfa/closure.scm 355 */
bool_t BgL_test4523z00_1145;
BgL_test4523z00_1145 = 
NULLP(BgL_allocsz00_1143); 
if(BgL_test4523z00_1145)
{ /* ./Cfa/closure.scm 355 */
BGl_showz00zzcfa_closurez00(
CNST_TABLE_REF(((long)7)), BgL_xpz00_1141); 
BGl_showz00zzcfa_closurez00(
CNST_TABLE_REF(((long)8)), BgL_tpz00_1142); 
return BUNSPEC;}  else 
{ /* ./Cfa/closure.scm 360 */
obj_t BgL_instance4120z00_1146;
BgL_instance4120z00_1146 = 
CAR(BgL_allocsz00_1143); 
{ /* ./Cfa/closure.scm 362 */
bool_t BgL_test4526z00_1147;
{ /* ./Cfa/closure.scm 362 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3698z00_1923;
BgL_obj3698z00_1923 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_instance4120z00_1146); 
{ 
obj_t BgL_auxz00_2493;
{ /* ./Cfa/closure.scm 362 */
BgL_objectz00_bglt BgL_auxz00_2494;
BgL_auxz00_2494 = 
(BgL_objectz00_bglt)(BgL_obj3698z00_1923); 
BgL_auxz00_2493 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2494); } 
BgL_test4526z00_1147 = 
(((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2493))->BgL_xz00); } } 
if(BgL_test4526z00_1147)
{ /* ./Cfa/closure.scm 362 */
{ /* ./Cfa/closure.scm 363 */
obj_t BgL_arg4528z00_1148;obj_t BgL_arg4529z00_1149;
{ /* ./Cfa/closure.scm 363 */
BgL_variablez00_bglt BgL_arg4532z00_1150;
{ /* ./Cfa/closure.scm 363 */
BgL_varz00_bglt BgL_obj1625z00_1926;
{ /* ./Cfa/closure.scm 363 */
obj_t BgL_auxz00_2499;
{ /* ./Cfa/closure.scm 363 */
obj_t BgL_auxz00_2500;
{ /* ./Cfa/closure.scm 363 */
BgL_appz00_bglt BgL_obj1722z00_1924;
BgL_obj1722z00_1924 = 
(BgL_appz00_bglt)(BgL_instance4120z00_1146); 
BgL_auxz00_2500 = 
(((BgL_appz00_bglt)CREF(BgL_obj1722z00_1924))->BgL_argsz00); } 
BgL_auxz00_2499 = 
CAR(BgL_auxz00_2500); } 
BgL_obj1625z00_1926 = 
(BgL_varz00_bglt)(BgL_auxz00_2499); } 
BgL_arg4532z00_1150 = 
(((BgL_varz00_bglt)CREF(BgL_obj1625z00_1926))->BgL_variablez00); } 
{ /* ./Cfa/closure.scm 363 */
obj_t BgL_auxz00_2506;
BgL_auxz00_2506 = 
(obj_t)(BgL_arg4532z00_1150); 
BgL_arg4528z00_1148 = 
MAKE_PAIR(BgL_auxz00_2506, BgL_xpz00_1141); } } 
BgL_arg4529z00_1149 = 
CDR(BgL_allocsz00_1143); 
{ 
obj_t BgL_allocsz00_2511;obj_t BgL_xpz00_2510;
BgL_xpz00_2510 = BgL_arg4528z00_1148; 
BgL_allocsz00_2511 = BgL_arg4529z00_1149; 
BgL_allocsz00_1143 = BgL_allocsz00_2511; 
BgL_xpz00_1141 = BgL_xpz00_2510; 
goto BgL_loopz00_1144;} } }  else 
{ /* ./Cfa/closure.scm 364 */
bool_t BgL_test4542z00_1153;
{ /* ./Cfa/closure.scm 364 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3701z00_1928;
BgL_obj3701z00_1928 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_instance4120z00_1146); 
{ 
obj_t BgL_auxz00_2513;
{ /* ./Cfa/closure.scm 364 */
BgL_objectz00_bglt BgL_auxz00_2514;
BgL_auxz00_2514 = 
(BgL_objectz00_bglt)(BgL_obj3701z00_1928); 
BgL_auxz00_2513 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2514); } 
BgL_test4542z00_1153 = 
(((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2513))->BgL_tz00); } } 
if(BgL_test4542z00_1153)
{ /* ./Cfa/closure.scm 364 */
{ /* ./Cfa/closure.scm 365 */
obj_t BgL_arg4544z00_1154;obj_t BgL_arg4545z00_1155;
{ /* ./Cfa/closure.scm 365 */
BgL_variablez00_bglt BgL_arg4548z00_1156;
{ /* ./Cfa/closure.scm 365 */
BgL_varz00_bglt BgL_obj1625z00_1931;
{ /* ./Cfa/closure.scm 365 */
obj_t BgL_auxz00_2519;
{ /* ./Cfa/closure.scm 365 */
obj_t BgL_auxz00_2520;
{ /* ./Cfa/closure.scm 365 */
BgL_appz00_bglt BgL_obj1722z00_1929;
BgL_obj1722z00_1929 = 
(BgL_appz00_bglt)(BgL_instance4120z00_1146); 
BgL_auxz00_2520 = 
(((BgL_appz00_bglt)CREF(BgL_obj1722z00_1929))->BgL_argsz00); } 
BgL_auxz00_2519 = 
CAR(BgL_auxz00_2520); } 
BgL_obj1625z00_1931 = 
(BgL_varz00_bglt)(BgL_auxz00_2519); } 
BgL_arg4548z00_1156 = 
(((BgL_varz00_bglt)CREF(BgL_obj1625z00_1931))->BgL_variablez00); } 
{ /* ./Cfa/closure.scm 365 */
obj_t BgL_auxz00_2526;
BgL_auxz00_2526 = 
(obj_t)(BgL_arg4548z00_1156); 
BgL_arg4544z00_1154 = 
MAKE_PAIR(BgL_auxz00_2526, BgL_tpz00_1142); } } 
BgL_arg4545z00_1155 = 
CDR(BgL_allocsz00_1143); 
{ 
obj_t BgL_allocsz00_2531;obj_t BgL_tpz00_2530;
BgL_tpz00_2530 = BgL_arg4544z00_1154; 
BgL_allocsz00_2531 = BgL_arg4545z00_1155; 
BgL_allocsz00_1143 = BgL_allocsz00_2531; 
BgL_tpz00_1142 = BgL_tpz00_2530; 
goto BgL_loopz00_1144;} } }  else 
{ /* ./Cfa/closure.scm 364 */
{ /* ./Cfa/closure.scm 367 */
obj_t BgL_arg4559z00_1159;
BgL_arg4559z00_1159 = 
CDR(BgL_allocsz00_1143); 
{ 
obj_t BgL_allocsz00_2533;
BgL_allocsz00_2533 = BgL_arg4559z00_1159; 
BgL_allocsz00_1143 = BgL_allocsz00_2533; 
goto BgL_loopz00_1144;} } } } } } } } } 
}



/* show */
bool_t BGl_showz00zzcfa_closurez00(obj_t BgL_propz00_1160, obj_t BgL_lz00_1161)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 351 */
{ /* ./Cfa/closure.scm 346 */
bool_t BgL_test4567z00_1163;
BgL_test4567z00_1163 = 
PAIRP(BgL_lz00_1161); 
if(BgL_test4567z00_1163)
{ /* ./Cfa/closure.scm 346 */
{ /* ./Cfa/closure.scm 348 */
obj_t BgL_arg4572z00_1167;
{ /* ./Cfa/closure.scm 348 */
obj_t BgL_arg4589z00_1173;
BgL_arg4589z00_1173 = 
CAR(BgL_lz00_1161); 
BgL_arg4572z00_1167 = 
BGl_shapez00zztools_shapez00(BgL_arg4589z00_1173); } 
{ /* ./Cfa/closure.scm 348 */
obj_t BgL_list4574z00_1168;
{ /* ./Cfa/closure.scm 348 */
obj_t BgL_arg4576z00_1169;
{ /* ./Cfa/closure.scm 348 */
obj_t BgL_arg4579z00_1170;
{ /* ./Cfa/closure.scm 348 */
obj_t BgL_arg4582z00_1171;
{ /* ./Cfa/closure.scm 348 */
obj_t BgL_arg4585z00_1172;
{ /* ./Cfa/closure.scm 348 */
obj_t BgL_auxz00_2538;
BgL_auxz00_2538 = 
BCHAR(((unsigned char)'\n')); 
BgL_arg4585z00_1172 = 
MAKE_PAIR(BgL_auxz00_2538, BNIL); } 
BgL_arg4582z00_1171 = 
MAKE_PAIR(BgL_arg4572z00_1167, BgL_arg4585z00_1172); } 
BgL_arg4579z00_1170 = 
MAKE_PAIR(BGl_string5597z00zzcfa_closurez00, BgL_arg4582z00_1171); } 
BgL_arg4576z00_1169 = 
MAKE_PAIR(BgL_propz00_1160, BgL_arg4579z00_1170); } 
BgL_list4574z00_1168 = 
MAKE_PAIR(BGl_string5598z00zzcfa_closurez00, BgL_arg4576z00_1169); } 
BGl_verbosez00zztools_speekz00(
BINT(((long)2)), BgL_list4574z00_1168); } } 
{ 
obj_t BgL_l4118z00_1174;
{ /* ./Cfa/closure.scm 351 */
obj_t BgL_arg4593z00_1176;
BgL_arg4593z00_1176 = 
CDR(BgL_lz00_1161); 
BgL_l4118z00_1174 = BgL_arg4593z00_1176; 
BgL_forzd2each4119zd2_1175:
{ /* ./Cfa/closure.scm 349 */
bool_t BgL_test4596z00_1177;
BgL_test4596z00_1177 = 
PAIRP(BgL_l4118z00_1174); 
if(BgL_test4596z00_1177)
{ /* ./Cfa/closure.scm 349 */
{ /* ./Cfa/closure.scm 350 */
obj_t BgL_xz00_1178;
BgL_xz00_1178 = 
CAR(BgL_l4118z00_1174); 
{ /* ./Cfa/closure.scm 350 */
obj_t BgL_arg4600z00_1181;
BgL_arg4600z00_1181 = 
BGl_shapez00zztools_shapez00(BgL_xz00_1178); 
{ /* ./Cfa/closure.scm 350 */
obj_t BgL_list4602z00_1182;
{ /* ./Cfa/closure.scm 350 */
obj_t BgL_arg4604z00_1183;
{ /* ./Cfa/closure.scm 350 */
obj_t BgL_arg4607z00_1184;
{ /* ./Cfa/closure.scm 350 */
obj_t BgL_auxz00_2552;
BgL_auxz00_2552 = 
BCHAR(((unsigned char)'\n')); 
BgL_arg4607z00_1184 = 
MAKE_PAIR(BgL_auxz00_2552, BNIL); } 
BgL_arg4604z00_1183 = 
MAKE_PAIR(BgL_arg4600z00_1181, BgL_arg4607z00_1184); } 
BgL_list4602z00_1182 = 
MAKE_PAIR(BGl_string5599z00zzcfa_closurez00, BgL_arg4604z00_1183); } 
BGl_verbosez00zztools_speekz00(
BINT(((long)2)), BgL_list4602z00_1182); } } } 
{ /* ./Cfa/closure.scm 349 */
obj_t BgL_arg4613z00_1185;
BgL_arg4613z00_1185 = 
CDR(BgL_l4118z00_1174); 
{ 
obj_t BgL_l4118z00_2560;
BgL_l4118z00_2560 = BgL_arg4613z00_1185; 
BgL_l4118z00_1174 = BgL_l4118z00_2560; 
goto BgL_forzd2each4119zd2_1175;} } }  else 
{ /* ./Cfa/closure.scm 349 */
return ((bool_t)1);} } } } }  else 
{ /* ./Cfa/closure.scm 346 */
return ((bool_t)0);} } } 
}



/* add-funcall! */
BGL_EXPORTED_DEF obj_t BGl_addzd2funcallz12zc0zzcfa_closurez00(BgL_nodez00_bglt BgL_astz00_7)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 379 */
{ /* ./Cfa/closure.scm 380 */
bool_t BgL_test4618z00_1187;
{ /* ./Cfa/closure.scm 380 */
long BgL_n1z00_1940;
BgL_n1z00_1940 = 
(long)CINT(BGl_za2optimza2z00zzengine_paramz00); 
BgL_test4618z00_1187 = 
(BgL_n1z00_1940>=((long)2)); } 
if(BgL_test4618z00_1187)
{ /* ./Cfa/closure.scm 381 */
obj_t BgL_auxz00_2564;
BgL_auxz00_2564 = 
(obj_t)(BgL_astz00_7); 
return ( 
BGl_za2funcallzd2listza2zd2zzcfa_closurez00 = 
MAKE_PAIR(BgL_auxz00_2564, BGl_za2funcallzd2listza2zd2zzcfa_closurez00), BUNSPEC) ;}  else 
{ /* ./Cfa/closure.scm 380 */
return BFALSE;} } } 
}



/* _add-funcall!5400 */
obj_t BGl__addzd2funcallz125400zc0zzcfa_closurez00(obj_t BgL_envz00_1968, obj_t BgL_astz00_1969)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 379 */
return 
BGl_addzd2funcallz12zc0zzcfa_closurez00(
(BgL_nodez00_bglt)(BgL_astz00_1969));} 
}



/* add-make-procedure! */
BGL_EXPORTED_DEF obj_t BGl_addzd2makezd2procedurez12z12zzcfa_closurez00(BgL_nodez00_bglt BgL_astz00_8)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 386 */
{ /* ./Cfa/closure.scm 387 */
bool_t BgL_test4621z00_1188;
{ /* ./Cfa/closure.scm 387 */
long BgL_n1z00_1942;
BgL_n1z00_1942 = 
(long)CINT(BGl_za2optimza2z00zzengine_paramz00); 
BgL_test4621z00_1188 = 
(BgL_n1z00_1942>=((long)2)); } 
if(BgL_test4621z00_1188)
{ /* ./Cfa/closure.scm 388 */
obj_t BgL_auxz00_2572;
BgL_auxz00_2572 = 
(obj_t)(BgL_astz00_8); 
return ( 
BGl_za2makezd2procedurezd2listza2z00zzcfa_closurez00 = 
MAKE_PAIR(BgL_auxz00_2572, BGl_za2makezd2procedurezd2listza2z00zzcfa_closurez00), BUNSPEC) ;}  else 
{ /* ./Cfa/closure.scm 387 */
return BFALSE;} } } 
}



/* _add-make-procedure!5402 */
obj_t BGl__addzd2makezd2procedurez125402z12zzcfa_closurez00(obj_t BgL_envz00_1970, obj_t BgL_astz00_1971)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 386 */
return 
BGl_addzd2makezd2procedurez12z12zzcfa_closurez00(
(BgL_nodez00_bglt)(BgL_astz00_1971));} 
}



/* add-procedure-ref! */
BGL_EXPORTED_DEF obj_t BGl_addzd2procedurezd2refz12z12zzcfa_closurez00(BgL_nodez00_bglt BgL_astz00_9)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 393 */
{ /* ./Cfa/closure.scm 394 */
bool_t BgL_test4624z00_1189;
{ /* ./Cfa/closure.scm 394 */
long BgL_n1z00_1944;
BgL_n1z00_1944 = 
(long)CINT(BGl_za2optimza2z00zzengine_paramz00); 
BgL_test4624z00_1189 = 
(BgL_n1z00_1944>=((long)2)); } 
if(BgL_test4624z00_1189)
{ /* ./Cfa/closure.scm 395 */
obj_t BgL_auxz00_2580;
BgL_auxz00_2580 = 
(obj_t)(BgL_astz00_9); 
return ( 
BGl_za2procedurezd2refzd2listza2z00zzcfa_closurez00 = 
MAKE_PAIR(BgL_auxz00_2580, BGl_za2procedurezd2refzd2listza2z00zzcfa_closurez00), BUNSPEC) ;}  else 
{ /* ./Cfa/closure.scm 394 */
return BFALSE;} } } 
}



/* _add-procedure-ref!5404 */
obj_t BGl__addzd2procedurezd2refz125404z12zzcfa_closurez00(obj_t BgL_envz00_1972, obj_t BgL_astz00_1973)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 393 */
return 
BGl_addzd2procedurezd2refz12z12zzcfa_closurez00(
(BgL_nodez00_bglt)(BgL_astz00_1973));} 
}



/* approx-procedure-el? */
BGL_EXPORTED_DEF bool_t BGl_approxzd2procedurezd2elzf3zf3zzcfa_closurez00(BgL_approxz00_bglt BgL_approxz00_10)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 400 */
{ /* ./Cfa/closure.scm 401 */
BgL_typez00_bglt BgL_typez00_1190;obj_t BgL_alloczd2listzd2_1191;
BgL_typez00_1190 = 
(((BgL_approxz00_bglt)CREF(BgL_approxz00_10))->BgL_typez00); 
{ /* ./Cfa/closure.scm 402 */
obj_t BgL_arg4644z00_1199;
BgL_arg4644z00_1199 = 
(((BgL_approxz00_bglt)CREF(BgL_approxz00_10))->BgL_allocsz00); 
BgL_alloczd2listzd2_1191 = 
BGl_setzd2ze3listz31zzcfa_setz00(BgL_arg4644z00_1199); } 
{ /* ./Cfa/closure.scm 403 */
bool_t BgL__andtest_4122z00_1192;
{ /* ./Cfa/closure.scm 403 */
obj_t BgL_auxz00_2588;
BgL_auxz00_2588 = 
(obj_t)(BgL_typez00_1190); 
BgL__andtest_4122z00_1192 = 
(BgL_auxz00_2588==BGl_za2procedureza2z00zztype_cachez00); } 
if(BgL__andtest_4122z00_1192)
{ /* ./Cfa/closure.scm 404 */
bool_t BgL__andtest_4123z00_1193;
BgL__andtest_4123z00_1193 = 
PAIRP(BgL_alloczd2listzd2_1191); 
if(BgL__andtest_4123z00_1193)
{ /* ./Cfa/closure.scm 405 */
bool_t BgL__andtest_4124z00_1194;
{ /* ./Cfa/closure.scm 405 */
obj_t BgL_auxz00_2594;
BgL_auxz00_2594 = 
CDR(BgL_alloczd2listzd2_1191); 
BgL__andtest_4124z00_1194 = 
NULLP(BgL_auxz00_2594); } 
if(BgL__andtest_4124z00_1194)
{ /* ./Cfa/closure.scm 406 */
bool_t BgL__andtest_4125z00_1195;
{ /* ./Cfa/closure.scm 406 */
obj_t BgL_arg4632z00_1197;
BgL_arg4632z00_1197 = 
CAR(BgL_alloczd2listzd2_1191); 
BgL__andtest_4125z00_1195 = 
BGl_iszd2azf3z21zz__objectz00(BgL_arg4632z00_1197, BGl_makezd2procedurezd2appz00zzcfa_info2z00); } 
if(BgL__andtest_4125z00_1195)
{ /* ./Cfa/closure.scm 407 */
BgL_makezd2procedurezd2appz00_bglt BgL_obj3698z00_1954;
{ /* ./Cfa/closure.scm 407 */
obj_t BgL_auxz00_2601;
BgL_auxz00_2601 = 
CAR(BgL_alloczd2listzd2_1191); 
BgL_obj3698z00_1954 = 
(BgL_makezd2procedurezd2appz00_bglt)(BgL_auxz00_2601); } 
{ 
obj_t BgL_auxz00_2604;
{ /* ./Cfa/closure.scm 407 */
BgL_objectz00_bglt BgL_auxz00_2605;
BgL_auxz00_2605 = 
(BgL_objectz00_bglt)(BgL_obj3698z00_1954); 
BgL_auxz00_2604 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2605); } 
return 
(((BgL_makezd2procedurezd2appz00_bglt)CREF(BgL_auxz00_2604))->BgL_xz00);} }  else 
{ /* ./Cfa/closure.scm 406 */
return ((bool_t)0);} }  else 
{ /* ./Cfa/closure.scm 405 */
return ((bool_t)0);} }  else 
{ /* ./Cfa/closure.scm 404 */
return ((bool_t)0);} }  else 
{ /* ./Cfa/closure.scm 403 */
return ((bool_t)0);} } } } 
}



/* _approx-procedure-el? */
obj_t BGl__approxzd2procedurezd2elzf3zf3zzcfa_closurez00(obj_t BgL_envz00_1974, obj_t BgL_approxz00_1975)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 400 */
{ /* ./Cfa/closure.scm 401 */
bool_t BgL_auxz00_2609;
BgL_auxz00_2609 = 
BGl_approxzd2procedurezd2elzf3zf3zzcfa_closurez00(
(BgL_approxz00_bglt)(BgL_approxz00_1975)); 
return 
BBOOL(BgL_auxz00_2609);} } 
}



/* approx-procedure-el1? */
BGL_EXPORTED_DEF bool_t BGl_approxzd2procedurezd2el1zf3zf3zzcfa_closurez00(BgL_approxz00_bglt BgL_approxz00_11)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 412 */
{ /* ./Cfa/closure.scm 413 */
obj_t BgL_alloczd2listzd2_1200;
{ /* ./Cfa/closure.scm 413 */
obj_t BgL_arg4657z00_1204;
BgL_arg4657z00_1204 = 
(((BgL_approxz00_bglt)CREF(BgL_approxz00_11))->BgL_allocsz00); 
BgL_alloczd2listzd2_1200 = 
BGl_setzd2ze3listz31zzcfa_setz00(BgL_arg4657z00_1204); } 
{ /* ./Cfa/closure.scm 414 */
obj_t BgL_instance4126z00_1201;
BgL_instance4126z00_1201 = 
CAR(BgL_alloczd2listzd2_1200); 
{ /* ./Cfa/closure.scm 415 */
BgL_variablez00_bglt BgL_arg4648z00_1202;
{ /* ./Cfa/closure.scm 415 */
BgL_varz00_bglt BgL_arg4652z00_1203;
{ /* ./Cfa/closure.scm 415 */
BgL_appz00_bglt BgL_obj1719z00_1957;
BgL_obj1719z00_1957 = 
(BgL_appz00_bglt)(BgL_instance4126z00_1201); 
BgL_arg4652z00_1203 = 
(((BgL_appz00_bglt)CREF(BgL_obj1719z00_1957))->BgL_funz00); } 
BgL_arg4648z00_1202 = 
(((BgL_varz00_bglt)CREF(BgL_arg4652z00_1203))->BgL_variablez00); } 
{ /* ./Cfa/closure.scm 415 */
obj_t BgL_auxz00_2619;
BgL_auxz00_2619 = 
(obj_t)(BgL_arg4648z00_1202); 
return 
(BgL_auxz00_2619==BGl_za2makezd2elzd2procedurezd21za2zd2zzcfa_closurez00);} } } } } 
}



/* _approx-procedure-el1? */
obj_t BGl__approxzd2procedurezd2el1zf3zf3zzcfa_closurez00(obj_t BgL_envz00_1976, obj_t BgL_approxz00_1977)
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 412 */
{ /* ./Cfa/closure.scm 413 */
bool_t BgL_auxz00_2622;
BgL_auxz00_2622 = 
BGl_approxzd2procedurezd2el1zf3zf3zzcfa_closurez00(
(BgL_approxz00_bglt)(BgL_approxz00_1977)); 
return 
BBOOL(BgL_auxz00_2622);} } 
}



/* start-cache */
obj_t BGl_startzd2cachezd2zzcfa_closurez00()
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 435 */
BGl_za2procedurezd2refza2zd2zzcfa_closurez00 = 
BGl_findzd2globalzf2modulez20zzast_envz00(
CNST_TABLE_REF(((long)9)), 
CNST_TABLE_REF(((long)10))); 
BGl_za2procedurezd2setz12za2zc0zzcfa_closurez00 = 
BGl_findzd2globalzf2modulez20zzast_envz00(
CNST_TABLE_REF(((long)11)), 
CNST_TABLE_REF(((long)10))); 
BGl_za2procedurezd2lzd2refza2z00zzcfa_closurez00 = 
BGl_findzd2globalzf2modulez20zzast_envz00(
CNST_TABLE_REF(((long)12)), 
CNST_TABLE_REF(((long)10))); 
BGl_za2procedurezd2lzd2setz12za2z12zzcfa_closurez00 = 
BGl_findzd2globalzf2modulez20zzast_envz00(
CNST_TABLE_REF(((long)13)), 
CNST_TABLE_REF(((long)10))); 
BGl_za2procedurezd2elzd2refza2z00zzcfa_closurez00 = 
BGl_findzd2globalzf2modulez20zzast_envz00(
CNST_TABLE_REF(((long)14)), 
CNST_TABLE_REF(((long)10))); 
BGl_za2procedurezd2elzd2setz12za2z12zzcfa_closurez00 = 
BGl_findzd2globalzf2modulez20zzast_envz00(
CNST_TABLE_REF(((long)15)), 
CNST_TABLE_REF(((long)10))); 
BGl_za2procedurezd21zd2elzd2refza2zd2zzcfa_closurez00 = 
BGl_findzd2globalzf2modulez20zzast_envz00(
CNST_TABLE_REF(((long)16)), 
CNST_TABLE_REF(((long)10))); 
BGl_za2procedurezd21zd2elzd2setz12za2zc0zzcfa_closurez00 = 
BGl_findzd2globalzf2modulez20zzast_envz00(
CNST_TABLE_REF(((long)17)), 
CNST_TABLE_REF(((long)10))); 
BGl_za2makezd2elzd2procedureza2z00zzcfa_closurez00 = 
BGl_findzd2globalzf2modulez20zzast_envz00(
CNST_TABLE_REF(((long)18)), 
CNST_TABLE_REF(((long)10))); 
BGl_za2makezd2elzd2procedurezd21za2zd2zzcfa_closurez00 = 
BGl_findzd2globalzf2modulez20zzast_envz00(
CNST_TABLE_REF(((long)19)), 
CNST_TABLE_REF(((long)10))); 
return ( 
BGl_za2makezd2lzd2procedureza2z00zzcfa_closurez00 = 
BGl_findzd2globalzf2modulez20zzast_envz00(
CNST_TABLE_REF(((long)20)), 
CNST_TABLE_REF(((long)10))), BUNSPEC) ;} 
}



/* stop-cache */
obj_t BGl_stopzd2cachezd2zzcfa_closurez00()
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 451 */
BGl_za2procedurezd2refza2zd2zzcfa_closurez00 = BFALSE; 
BGl_za2procedurezd2setz12za2zc0zzcfa_closurez00 = BFALSE; 
BGl_za2procedurezd2lzd2refza2z00zzcfa_closurez00 = BFALSE; 
BGl_za2procedurezd2lzd2setz12za2z12zzcfa_closurez00 = BFALSE; 
BGl_za2procedurezd2elzd2refza2z00zzcfa_closurez00 = BFALSE; 
BGl_za2procedurezd2elzd2setz12za2z12zzcfa_closurez00 = BFALSE; 
BGl_za2procedurezd21zd2elzd2refza2zd2zzcfa_closurez00 = BFALSE; 
BGl_za2procedurezd21zd2elzd2setz12za2zc0zzcfa_closurez00 = BFALSE; 
BGl_za2makezd2elzd2procedureza2z00zzcfa_closurez00 = BFALSE; 
BGl_za2makezd2elzd2procedurezd21za2zd2zzcfa_closurez00 = BFALSE; 
return ( 
BGl_za2makezd2lzd2procedureza2z00zzcfa_closurez00 = BFALSE, BUNSPEC) ;} 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzcfa_closurez00()
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 25 */
return BUNSPEC;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzcfa_closurez00()
{ AN_OBJECT;
{ /* ./Cfa/closure.scm 25 */
BGl_modulezd2initializa7ationz75zztools_tracez00(((long)59211), "cfa_closure"); 
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "cfa_closure"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "cfa_closure"); 
BGl_modulezd2initializa7ationz75zztype_cachez00(((long)25848), "cfa_closure"); 
BGl_modulezd2initializa7ationz75zztools_shapez00(((long)30833), "cfa_closure"); 
BGl_modulezd2initializa7ationz75zztools_speekz00(((long)23537), "cfa_closure"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "cfa_closure"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "cfa_closure"); 
BGl_modulezd2initializa7ationz75zzast_envz00(((long)62031), "cfa_closure"); 
BGl_modulezd2initializa7ationz75zzcfa_infoz00(((long)2565), "cfa_closure"); 
BGl_modulezd2initializa7ationz75zzcfa_info2z00(((long)0), "cfa_closure"); 
BGl_modulezd2initializa7ationz75zzcfa_cfaz00(((long)65191), "cfa_closure"); 
BGl_modulezd2initializa7ationz75zzcfa_approxz00(((long)43477), "cfa_closure"); 
BGl_modulezd2initializa7ationz75zzcfa_setz00(((long)21480), "cfa_closure"); 
return 
BGl_modulezd2initializa7ationz75zzcfa_ltypez00(((long)19995), "cfa_closure");} 
}

