/*===========================================================================*/
/*   (Cfa/approx.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/approx.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;


BGL_EXPORTED_DECL obj_t BGl_nodezd2keyzd2zzcfa_approxz00(BgL_nodezf2effectzf2_bglt);
static obj_t BGl_methodzd2initzd2zzcfa_approxz00();
BGL_IMPORT obj_t open_input_string(obj_t);
extern obj_t BGl_nodez00zzast_nodez00;
BGL_EXPORTED_DECL BgL_approxz00_bglt BGl_unionzd2approxz12zc0zzcfa_approxz00(BgL_approxz00_bglt, BgL_approxz00_bglt);
BGL_EXPORTED_DECL BgL_approxz00_bglt BGl_makezd2emptyzd2approxz00zzcfa_approxz00();
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
BGL_IMPORT bool_t BGl_iszd2azf3z21zz__objectz00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_addzd2genericz12zc0zz__objectz00(obj_t, obj_t);
extern obj_t BGl_setzd2ze3vectorz31zzcfa_setz00(obj_t);
static obj_t BGl__makezd2typezd2approxz00zzcfa_approxz00(obj_t, obj_t);
static obj_t BGl__forzd2eachzd2approxzd2alloczd2zzcfa_approxz00(obj_t, obj_t, obj_t);
extern obj_t BGl_za2_za2z00zztype_cachez00;
BGL_EXPORTED_DECL BgL_approxz00_bglt BGl_makezd2typezd2alloczd2approxzd2zzcfa_approxz00(BgL_typez00_bglt, BgL_nodez00_bglt);
extern obj_t BGl_za2procedureza2z00zztype_cachez00;
BGL_EXPORTED_DECL obj_t BGl_nodezd2keyzd2setz12z12zzcfa_approxz00(BgL_nodezf2effectzf2_bglt, obj_t);
static obj_t BGl__makezd2typezd2alloczd2approxzd2zzcfa_approxz00(obj_t, obj_t, obj_t);
static obj_t BGl__approxzd2setzd2topz12z12zzcfa_approxz00(obj_t, obj_t);
extern obj_t BGl_typez00zztype_typez00;
static obj_t BGl__declarezd2approxzd2setsz12z12zzcfa_approxz00(obj_t);
static obj_t BGl__nodezd2keyzd2zzcfa_approxz00(obj_t, obj_t);
extern obj_t BGl_varz00zzast_nodez00;
static obj_t BGl_cnstzd2initzd2zzcfa_approxz00();
static obj_t BGl__getzd2nodezd2atomzd2value5014zd2zzcfa_approxz00(obj_t, obj_t);
extern obj_t BGl_atomz00zzast_nodez00;
static obj_t BGl_shapezd2approx4091zd2zzcfa_approxz00(obj_t, obj_t);
BGL_EXPORTED_DECL BgL_approxz00_bglt BGl_makezd2alloczd2approxz00zzcfa_approxz00(BgL_appz00_bglt);
extern obj_t BGl_setzd2forzd2eachz00zzcfa_setz00(obj_t, obj_t);
static obj_t BGl_getzd2nodezd2atomzd2valuezd2atom4095z00zzcfa_approxz00(obj_t, obj_t);
static obj_t BGl_importedzd2moduleszd2initz00zzcfa_approxz00();
extern obj_t BGl_reshapedzd2localzd2zzcfa_infoz00;
extern BgL_approxz00_bglt BGl_makezd2approxzd2zzcfa_infoz00(BgL_typez00_bglt, bool_t, obj_t, bool_t, long);
BGL_IMPORT obj_t make_struct(obj_t, int, obj_t);
BGL_IMPORT obj_t BGl_addzd2methodz12zc0zz__objectz00(obj_t, obj_t, obj_t);
extern obj_t BGl_getzd2allocszd2zzcfa_collectz00();
extern obj_t BGl_makezd2typedzd2formalz00zzast_identz00(obj_t);
static obj_t BGl_toplevelzd2initzd2zzcfa_approxz00();
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzcfa_approxz00(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_errorz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_miscz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_identz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_infoz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_info2z00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_collectz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_setz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_iteratez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_loosez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_procedurez00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(long, char *);
extern obj_t BGl_setzd2extendz12zc0zzcfa_setz00(obj_t, obj_t);
static obj_t BGl__getzd2nodezd2atomzd2valuezd2default4092z00zzcfa_approxz00(obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_approxzd2setzd2topz12z12zzcfa_approxz00(BgL_approxz00_bglt);
BGL_EXPORTED_DECL BgL_approxz00_bglt BGl_makezd2typezd2approxz00zzcfa_approxz00(BgL_typez00_bglt);
static obj_t BGl__approxzd2setzd2typez12z12zzcfa_approxz00(obj_t, obj_t, obj_t);
static obj_t BGl_za2alloczd2setza2zd2zzcfa_approxz00 = BUNSPEC;
BGL_EXPORTED_DECL obj_t BGl_declarezd2approxzd2setsz12z12zzcfa_approxz00();
static obj_t BGl__makezd2emptyzd2approxz00zzcfa_approxz00(obj_t);
extern obj_t BGl_setzd2unionz12zc0zzcfa_setz00(obj_t, obj_t);
extern obj_t BGl_makezd2setz12zc0zzcfa_setz00(obj_t);
BGL_EXPORTED_DECL obj_t BGl_forzd2eachzd2approxzd2alloczd2zzcfa_approxz00(obj_t, BgL_approxz00_bglt);
static obj_t BGl__unionzd2approxz12zc0zzcfa_approxz00(obj_t, obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_approxzd2setzd2typez12z12zzcfa_approxz00(BgL_approxz00_bglt, BgL_typez00_bglt);
static obj_t BGl_getzd2nodezd2atomzd2valuezd2var4097z00zzcfa_approxz00(obj_t, obj_t);
extern obj_t BGl_za2objza2z00zztype_cachez00;
static obj_t BGl__makezd2alloczd2approxz00zzcfa_approxz00(obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_getzd2nodezd2atomzd2valuezd2zzcfa_approxz00(BgL_nodez00_bglt);
extern obj_t BGl_disablezd2Xzd2Tz12z12zzcfa_procedurez00(BgL_approxz00_bglt);
static obj_t BGl_requirezd2initializa7ationz75zzcfa_approxz00 = BUNSPEC;
extern obj_t BGl_declarezd2setz12zc0zzcfa_setz00(obj_t);
static obj_t BGl__nodezd2keyzd2setz12z12zzcfa_approxz00(obj_t, obj_t, obj_t);
BGL_IMPORT obj_t BGl_listzd2ze3vectorz31zz__r4_vectors_6_8z00(obj_t);
extern obj_t BGl_continuezd2cfaz12zc0zzcfa_iteratez00();
static obj_t BGl_libraryzd2moduleszd2initz00zzcfa_approxz00();
extern obj_t BGl_approxz00zzcfa_infoz00;
static obj_t __cnst[ 2 ] ;


DEFINE_EXPORT_PROCEDURE( BGl_nodezd2keyzd2envz00zzcfa_approxz00, BgL_bgl__nodeza7d2keyza7d2za7za7cfa_approxza7005139za7, BGl__nodezd2keyzd2zzcfa_approxz00, 0L, 1 );
DEFINE_STRING( BGl_string5111z00zzcfa_approxz00, BgL_bgl_string5111za700za7za7cfa_approxza7005140z00, "top (no-atom-value) ", 20 );
extern obj_t BGl_shapezd2envzd2zztools_shapez00;
DEFINE_EXPORT_PROCEDURE( BGl_makezd2typezd2approxzd2envzd2zzcfa_approxz00, BgL_bgl__makeza7d2typeza7d2approxza700za7za7cfa_approxza7005141z00, BGl__makezd2typezd2approxz00zzcfa_approxz00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_approxzd2setzd2typez12zd2envzc0zzcfa_approxz00, BgL_bgl__approxza7d2setza7d2typeza712za712za7za7cfa_approxza7005142za7, BGl__approxzd2setzd2typez12z12zzcfa_approxz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_getzd2nodezd2atomzd2valuezd2default4092zd2envzd2zzcfa_approxz00, BgL_bgl__getza7d2nodeza7d2atomza7d2valueza7d2default4092za700za7za7cfa_approxza7005143z00, BGl__getzd2nodezd2atomzd2valuezd2default4092z00zzcfa_approxz00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_makezd2alloczd2approxzd2envzd2zzcfa_approxz00, BgL_bgl__makeza7d2allocza7d2approxza700za7za7cfa_approxza7005144z00, BGl__makezd2alloczd2approxz00zzcfa_approxz00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_nodezd2keyzd2setz12zd2envzc0zzcfa_approxz00, BgL_bgl__nodeza7d2keyza7d2setza712za712za7za7cfa_approxza7005145za7, BGl__nodezd2keyzd2setz12z12zzcfa_approxz00, 0L, 2 );
DEFINE_EXPORT_PROCEDURE( BGl_makezd2typezd2alloczd2approxzd2envz00zzcfa_approxz00, BgL_bgl__makeza7d2typeza7d2allocza7d2approxza7d2za7za7cfa_approxza7005146za7, BGl__makezd2typezd2alloczd2approxzd2zzcfa_approxz00, 0L, 2 );
DEFINE_EXPORT_PROCEDURE( BGl_declarezd2approxzd2setsz12zd2envzc0zzcfa_approxz00, BgL_bgl__declareza7d2approxza7d2setsza712za712za7za7cfa_approxza7005147za7, BGl__declarezd2approxzd2setsz12z12zzcfa_approxz00, 0L, 0 );
DEFINE_EXPORT_PROCEDURE( BGl_approxzd2setzd2topz12zd2envzc0zzcfa_approxz00, BgL_bgl__approxza7d2setza7d2topza712za712za7za7cfa_approxza7005148za7, BGl__approxzd2setzd2topz12z12zzcfa_approxz00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_makezd2emptyzd2approxzd2envzd2zzcfa_approxz00, BgL_bgl__makeza7d2emptyza7d2approxza700za7za7cfa_approxza7005149z00, BGl__makezd2emptyzd2approxz00zzcfa_approxz00, 0L, 0 );
DEFINE_EXPORT_PROCEDURE( BGl_forzd2eachzd2approxzd2alloczd2envz00zzcfa_approxz00, BgL_bgl__forza7d2eachza7d2approxza7d2allocza7d2za7za7cfa_approxza7005150za7, BGl__forzd2eachzd2approxzd2alloczd2zzcfa_approxz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_proc5108z00zzcfa_approxz00, BgL_bgl_shapeza7d2approx4091za7d2za7za7cfa_approxza7005151za7, BGl_shapezd2approx4091zd2zzcfa_approxz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc5110z00zzcfa_approxz00, BgL_bgl_getza7d2nodeza7d2atomza7d2valueza7d2var4097za700za7za7cfa_approxza7005152z00, BGl_getzd2nodezd2atomzd2valuezd2var4097z00zzcfa_approxz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc5109z00zzcfa_approxz00, BgL_bgl_getza7d2nodeza7d2atomza7d2valueza7d2atom4095za700za7za7cfa_approxza7005153z00, BGl_getzd2nodezd2atomzd2valuezd2atom4095z00zzcfa_approxz00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_unionzd2approxz12zd2envz12zzcfa_approxz00, BgL_bgl__unionza7d2approxza712za7c0za7za7cfa_approxza7005154z00, BGl__unionzd2approxz12zc0zzcfa_approxz00, 0L, 2 );
DEFINE_EXPORT_GENERIC( BGl_getzd2nodezd2atomzd2valuezd2envz00zzcfa_approxz00, BgL_bgl__getza7d2nodeza7d2atomza7d2value5014za7d2za7za7cfa_approxza7005155za7, BGl__getzd2nodezd2atomzd2value5014zd2zzcfa_approxz00, 0L, 1 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzcfa_approxz00(long BgL_checksumz00_1705, char * BgL_fromz00_1706)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzcfa_approxz00))
{ 
BGl_requirezd2initializa7ationz75zzcfa_approxz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzcfa_approxz00(); 
BGl_cnstzd2initzd2zzcfa_approxz00(); 
BGl_importedzd2moduleszd2initz00zzcfa_approxz00(); 
BGl_methodzd2initzd2zzcfa_approxz00(); 
BGl_toplevelzd2initzd2zzcfa_approxz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzcfa_approxz00()
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 15 */
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "cfa_approx"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "cfa_approx"); 
BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(((long)0), "cfa_approx"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzcfa_approxz00()
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 15 */
{ /* ./Cfa/approx.scm 15 */
obj_t BgL_cportz00_1688;
BgL_cportz00_1688 = 
open_input_string(BGl_string5111z00zzcfa_approxz00); 
{ 
long BgL_iz00_1689;
BgL_iz00_1689 = ((long)1); 
BgL_loopz00_1690:
{ /* ./Cfa/approx.scm 15 */
bool_t BgL_test5113z00_1691;
BgL_test5113z00_1691 = 
(BgL_iz00_1689==((long)-1)); 
if(BgL_test5113z00_1691)
{ /* ./Cfa/approx.scm 15 */
return BUNSPEC;}  else 
{ /* ./Cfa/approx.scm 15 */
{ /* ./Cfa/approx.scm 15 */
obj_t BgL_arg5115z00_1692;
{ /* ./Cfa/approx.scm 15 */
obj_t BgL_list5118z00_1693;
BgL_list5118z00_1693 = 
MAKE_PAIR(BgL_cportz00_1688, BNIL); 
BgL_arg5115z00_1692 = 
BGl_readz00zz__readerz00(BgL_list5118z00_1693); } 
{ /* ./Cfa/approx.scm 15 */
int BgL_auxz00_1723;
BgL_auxz00_1723 = 
(int)(BgL_iz00_1689); 
CNST_TABLE_SET(BgL_auxz00_1723, BgL_arg5115z00_1692); } } 
{ /* ./Cfa/approx.scm 15 */
int BgL_auxz00_1694;
{ /* ./Cfa/approx.scm 15 */
long BgL_auxz00_1726;
BgL_auxz00_1726 = 
(BgL_iz00_1689-((long)1)); 
BgL_auxz00_1694 = 
(int)(BgL_auxz00_1726); } 
{ 
long BgL_iz00_1729;
BgL_iz00_1729 = 
(long)(BgL_auxz00_1694); 
BgL_iz00_1689 = BgL_iz00_1729; 
goto BgL_loopz00_1690;} } } } } } } 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzcfa_approxz00()
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 15 */
BGl_za2alloczd2setza2zd2zzcfa_approxz00 = BUNSPEC; 
return BUNSPEC;} 
}



/* declare-approx-sets! */
BGL_EXPORTED_DEF obj_t BGl_declarezd2approxzd2setsz12z12zzcfa_approxz00()
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 52 */
{ /* ./Cfa/approx.scm 53 */
obj_t BgL_arg4099z00_941;
{ /* ./Cfa/approx.scm 53 */
obj_t BgL_arg4102z00_942;
BgL_arg4102z00_942 = 
BGl_getzd2allocszd2zzcfa_collectz00(); 
BgL_arg4099z00_941 = 
BGl_listzd2ze3vectorz31zz__r4_vectors_6_8z00(BgL_arg4102z00_942); } 
return ( 
BGl_za2alloczd2setza2zd2zzcfa_approxz00 = 
BGl_declarezd2setz12zc0zzcfa_setz00(BgL_arg4099z00_941), BUNSPEC) ;} } 
}



/* _declare-approx-sets! */
obj_t BGl__declarezd2approxzd2setsz12z12zzcfa_approxz00(obj_t BgL_envz00_1648)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 52 */
return 
BGl_declarezd2approxzd2setsz12z12zzcfa_approxz00();} 
}



/* node-key */
BGL_EXPORTED_DEF obj_t BGl_nodezd2keyzd2zzcfa_approxz00(BgL_nodezf2effectzf2_bglt BgL_nodez00_1)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 58 */
return 
(((BgL_nodezf2effectzf2_bglt)CREF(BgL_nodez00_1))->BgL_keyz00);} 
}



/* _node-key */
obj_t BGl__nodezd2keyzd2zzcfa_approxz00(obj_t BgL_envz00_1649, obj_t BgL_nodez00_1650)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 58 */
{ /* ./Cfa/approx.scm 59 */
BgL_nodezf2effectzf2_bglt BgL_nodez00_1695;
BgL_nodez00_1695 = 
(BgL_nodezf2effectzf2_bglt)(BgL_nodez00_1650); 
return 
(((BgL_nodezf2effectzf2_bglt)CREF(BgL_nodez00_1695))->BgL_keyz00);} } 
}



/* node-key-set! */
BGL_EXPORTED_DEF obj_t BGl_nodezd2keyzd2setz12z12zzcfa_approxz00(BgL_nodezf2effectzf2_bglt BgL_nodez00_2, obj_t BgL_keyz00_3)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 64 */
{ /* ./Cfa/approx.scm 65 */
BgL_nodezf2effectzf2_bglt BgL_obj1583z00_1696;obj_t BgL_val1582z00_1697;
BgL_obj1583z00_1696 = BgL_nodez00_2; 
BgL_val1582z00_1697 = BgL_keyz00_3; 
return 
((((BgL_nodezf2effectzf2_bglt)CREF(BgL_obj1583z00_1696))->BgL_keyz00) = ((obj_t)BgL_val1582z00_1697), BUNSPEC);} } 
}



/* _node-key-set! */
obj_t BGl__nodezd2keyzd2setz12z12zzcfa_approxz00(obj_t BgL_envz00_1651, obj_t BgL_nodez00_1652, obj_t BgL_keyz00_1653)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 64 */
{ /* ./Cfa/approx.scm 65 */
BgL_nodezf2effectzf2_bglt BgL_nodez00_1698;
BgL_nodez00_1698 = 
(BgL_nodezf2effectzf2_bglt)(BgL_nodez00_1652); 
{ /* ./Cfa/approx.scm 65 */
BgL_nodezf2effectzf2_bglt BgL_obj1583z00_1700;obj_t BgL_val1582z00_1701;
BgL_obj1583z00_1700 = BgL_nodez00_1698; 
BgL_val1582z00_1701 = BgL_keyz00_1653; 
return 
((((BgL_nodezf2effectzf2_bglt)CREF(BgL_obj1583z00_1700))->BgL_keyz00) = ((obj_t)BgL_val1582z00_1701), BUNSPEC);} } } 
}



/* union-approx! */
BGL_EXPORTED_DEF BgL_approxz00_bglt BGl_unionzd2approxz12zc0zzcfa_approxz00(BgL_approxz00_bglt BgL_dstz00_4, BgL_approxz00_bglt BgL_srcz00_5)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 70 */
{ /* ./Cfa/approx.scm 72 */
BgL_typez00_bglt BgL_arg4108z00_943;
BgL_arg4108z00_943 = 
(((BgL_approxz00_bglt)CREF(BgL_srcz00_5))->BgL_typez00); 
BGl_approxzd2setzd2typez12z12zzcfa_approxz00(BgL_dstz00_4, BgL_arg4108z00_943); } 
{ /* ./Cfa/approx.scm 74 */
bool_t BgL_test4111z00_944;
{ /* ./Cfa/approx.scm 74 */
bool_t BgL_test4113z00_945;
{ /* ./Cfa/approx.scm 74 */
BgL_typez00_bglt BgL_arg4119z00_947;
BgL_arg4119z00_947 = 
(((BgL_approxz00_bglt)CREF(BgL_dstz00_4))->BgL_typez00); 
{ /* ./Cfa/approx.scm 74 */
obj_t BgL_auxz00_1744;
BgL_auxz00_1744 = 
(obj_t)(BgL_arg4119z00_947); 
BgL_test4113z00_945 = 
(BgL_auxz00_1744==BGl_za2procedureza2z00zztype_cachez00); } } 
if(BgL_test4113z00_945)
{ /* ./Cfa/approx.scm 74 */
BgL_test4111z00_944 = ((bool_t)1); }  else 
{ /* ./Cfa/approx.scm 75 */
BgL_typez00_bglt BgL_arg4115z00_946;
BgL_arg4115z00_946 = 
(((BgL_approxz00_bglt)CREF(BgL_dstz00_4))->BgL_typez00); 
{ /* ./Cfa/approx.scm 75 */
obj_t BgL_auxz00_1749;
BgL_auxz00_1749 = 
(obj_t)(BgL_arg4115z00_946); 
BgL_test4111z00_944 = 
(BgL_auxz00_1749==BGl_za2_za2z00zztype_cachez00); } } } 
if(BgL_test4111z00_944)
{ /* ./Cfa/approx.scm 74 */BFALSE; }  else 
{ /* ./Cfa/approx.scm 74 */
BGl_disablezd2Xzd2Tz12z12zzcfa_procedurez00(BgL_srcz00_5); } } 
{ /* ./Cfa/approx.scm 78 */
bool_t BgL_test4122z00_948;
BgL_test4122z00_948 = 
(((BgL_approxz00_bglt)CREF(BgL_srcz00_5))->BgL_topzf3zf3); 
if(BgL_test4122z00_948)
{ /* ./Cfa/approx.scm 78 */
BGl_approxzd2setzd2topz12z12zzcfa_approxz00(BgL_dstz00_4); }  else 
{ /* ./Cfa/approx.scm 78 */BFALSE; } } 
{ /* ./Cfa/approx.scm 80 */
bool_t BgL_test4125z00_949;
{ /* ./Cfa/approx.scm 80 */
obj_t BgL_arg4128z00_950;obj_t BgL_arg4129z00_951;
BgL_arg4128z00_950 = 
(((BgL_approxz00_bglt)CREF(BgL_dstz00_4))->BgL_allocsz00); 
BgL_arg4129z00_951 = 
(((BgL_approxz00_bglt)CREF(BgL_srcz00_5))->BgL_allocsz00); 
{ /* ./Cfa/approx.scm 80 */
obj_t BgL_list4131z00_952;
BgL_list4131z00_952 = 
MAKE_PAIR(BgL_arg4129z00_951, BNIL); 
{ /* ./Cfa/approx.scm 80 */
obj_t BgL_auxz00_1760;
BgL_auxz00_1760 = 
BGl_setzd2unionz12zc0zzcfa_setz00(BgL_arg4128z00_950, BgL_list4131z00_952); 
BgL_test4125z00_949 = 
CBOOL(BgL_auxz00_1760); } } } 
if(BgL_test4125z00_949)
{ /* ./Cfa/approx.scm 80 */
BGl_continuezd2cfaz12zc0zzcfa_iteratez00(); }  else 
{ /* ./Cfa/approx.scm 80 */BFALSE; } } 
return BgL_dstz00_4;} 
}



/* _union-approx! */
obj_t BGl__unionzd2approxz12zc0zzcfa_approxz00(obj_t BgL_envz00_1654, obj_t BgL_dstz00_1655, obj_t BgL_srcz00_1656)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 70 */
{ /* ./Cfa/approx.scm 72 */
BgL_approxz00_bglt BgL_auxz00_1765;
BgL_auxz00_1765 = 
BGl_unionzd2approxz12zc0zzcfa_approxz00(
(BgL_approxz00_bglt)(BgL_dstz00_1655), 
(BgL_approxz00_bglt)(BgL_srcz00_1656)); 
return 
(obj_t)(BgL_auxz00_1765);} } 
}



/* approx-set-type! */
BGL_EXPORTED_DEF obj_t BGl_approxzd2setzd2typez12z12zzcfa_approxz00(BgL_approxz00_bglt BgL_dstz00_6, BgL_typez00_bglt BgL_typez00_7)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 87 */
{ /* ./Cfa/approx.scm 89 */
bool_t BgL_test4135z00_953;
BgL_test4135z00_953 = 
(((BgL_approxz00_bglt)CREF(BgL_dstz00_6))->BgL_typezd2lockedzf3z21); 
if(BgL_test4135z00_953)
{ /* ./Cfa/approx.scm 89 */
return BFALSE;}  else 
{ /* ./Cfa/approx.scm 91 */
bool_t BgL_test4136z00_954;
{ /* ./Cfa/approx.scm 91 */
obj_t BgL_auxz00_1772;
BgL_auxz00_1772 = 
(obj_t)(BgL_typez00_7); 
BgL_test4136z00_954 = 
(BgL_auxz00_1772==BGl_za2_za2z00zztype_cachez00); } 
if(BgL_test4136z00_954)
{ /* ./Cfa/approx.scm 91 */
return BFALSE;}  else 
{ /* ./Cfa/approx.scm 93 */
bool_t BgL_test4137z00_955;
{ /* ./Cfa/approx.scm 93 */
obj_t BgL_auxz00_1780;obj_t BgL_auxz00_1776;
BgL_auxz00_1780 = 
(obj_t)(BgL_typez00_7); 
{ /* ./Cfa/approx.scm 93 */
BgL_typez00_bglt BgL_auxz00_1777;
BgL_auxz00_1777 = 
(((BgL_approxz00_bglt)CREF(BgL_dstz00_6))->BgL_typez00); 
BgL_auxz00_1776 = 
(obj_t)(BgL_auxz00_1777); } 
BgL_test4137z00_955 = 
(BgL_auxz00_1776==BgL_auxz00_1780); } 
if(BgL_test4137z00_955)
{ /* ./Cfa/approx.scm 93 */
return BFALSE;}  else 
{ /* ./Cfa/approx.scm 95 */
bool_t BgL_test4138z00_956;
{ /* ./Cfa/approx.scm 95 */
BgL_typez00_bglt BgL_arg4149z00_959;
BgL_arg4149z00_959 = 
(((BgL_approxz00_bglt)CREF(BgL_dstz00_6))->BgL_typez00); 
{ /* ./Cfa/approx.scm 95 */
obj_t BgL_auxz00_1785;
BgL_auxz00_1785 = 
(obj_t)(BgL_arg4149z00_959); 
BgL_test4138z00_956 = 
(BgL_auxz00_1785==BGl_za2objza2z00zztype_cachez00); } } 
if(BgL_test4138z00_956)
{ /* ./Cfa/approx.scm 95 */
return BFALSE;}  else 
{ /* ./Cfa/approx.scm 97 */
bool_t BgL_test4139z00_957;
{ /* ./Cfa/approx.scm 97 */
BgL_typez00_bglt BgL_arg4145z00_958;
BgL_arg4145z00_958 = 
(((BgL_approxz00_bglt)CREF(BgL_dstz00_6))->BgL_typez00); 
{ /* ./Cfa/approx.scm 97 */
obj_t BgL_auxz00_1790;
BgL_auxz00_1790 = 
(obj_t)(BgL_arg4145z00_958); 
BgL_test4139z00_957 = 
(BgL_auxz00_1790==BGl_za2_za2z00zztype_cachez00); } } 
if(BgL_test4139z00_957)
{ /* ./Cfa/approx.scm 97 */
{ /* ./Cfa/approx.scm 98 */
BgL_approxz00_bglt BgL_obj2664z00_1553;BgL_typez00_bglt BgL_val2663z00_1554;
BgL_obj2664z00_1553 = BgL_dstz00_6; 
BgL_val2663z00_1554 = BgL_typez00_7; 
((((BgL_approxz00_bglt)CREF(BgL_obj2664z00_1553))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val2663z00_1554), BUNSPEC); } 
return 
BGl_continuezd2cfaz12zc0zzcfa_iteratez00();}  else 
{ /* ./Cfa/approx.scm 97 */
{ /* ./Cfa/approx.scm 101 */
BgL_approxz00_bglt BgL_obj2664z00_1555;BgL_typez00_bglt BgL_val2663z00_1556;
BgL_obj2664z00_1555 = BgL_dstz00_6; 
BgL_val2663z00_1556 = 
(BgL_typez00_bglt)(BGl_za2objza2z00zztype_cachez00); 
((((BgL_approxz00_bglt)CREF(BgL_obj2664z00_1555))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val2663z00_1556), BUNSPEC); } 
return 
BGl_continuezd2cfaz12zc0zzcfa_iteratez00();} } } } } } } 
}



/* _approx-set-type! */
obj_t BGl__approxzd2setzd2typez12z12zzcfa_approxz00(obj_t BgL_envz00_1657, obj_t BgL_dstz00_1658, obj_t BgL_typez00_1659)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 87 */
return 
BGl_approxzd2setzd2typez12z12zzcfa_approxz00(
(BgL_approxz00_bglt)(BgL_dstz00_1658), 
(BgL_typez00_bglt)(BgL_typez00_1659));} 
}



/* approx-set-top! */
BGL_EXPORTED_DEF obj_t BGl_approxzd2setzd2topz12z12zzcfa_approxz00(BgL_approxz00_bglt BgL_dstz00_8)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 107 */
{ /* ./Cfa/approx.scm 108 */
bool_t BgL_test4158z00_961;
BgL_test4158z00_961 = 
(((BgL_approxz00_bglt)CREF(BgL_dstz00_8))->BgL_topzf3zf3); 
if(BgL_test4158z00_961)
{ /* ./Cfa/approx.scm 108 */
return BFALSE;}  else 
{ /* ./Cfa/approx.scm 108 */
{ /* ./Cfa/approx.scm 110 */
BgL_approxz00_bglt BgL_obj2669z00_1558;bool_t BgL_val2668z00_1559;
BgL_obj2669z00_1558 = BgL_dstz00_8; 
BgL_val2668z00_1559 = ((bool_t)1); 
((((BgL_approxz00_bglt)CREF(BgL_obj2669z00_1558))->BgL_topzf3zf3) = ((bool_t)BgL_val2668z00_1559), BUNSPEC); } 
return 
BGl_continuezd2cfaz12zc0zzcfa_iteratez00();} } } 
}



/* _approx-set-top! */
obj_t BGl__approxzd2setzd2topz12z12zzcfa_approxz00(obj_t BgL_envz00_1660, obj_t BgL_dstz00_1661)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 107 */
return 
BGl_approxzd2setzd2topz12z12zzcfa_approxz00(
(BgL_approxz00_bglt)(BgL_dstz00_1661));} 
}



/* make-empty-approx */
BGL_EXPORTED_DEF BgL_approxz00_bglt BGl_makezd2emptyzd2approxz00zzcfa_approxz00()
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 116 */
{ /* ./Cfa/approx.scm 117 */
obj_t BgL_allocsz00_962;
BgL_allocsz00_962 = 
BGl_makezd2setz12zc0zzcfa_setz00(BGl_za2alloczd2setza2zd2zzcfa_approxz00); 
{ /* ./Cfa/approx.scm 119 */
obj_t BgL_arg4163z00_963;obj_t BgL_arg4164z00_964;
BgL_arg4163z00_963 = BGl_za2_za2z00zztype_cachez00; 
BgL_arg4164z00_964 = BgL_allocsz00_962; 
return 
BGl_makezd2approxzd2zzcfa_infoz00(
(BgL_typez00_bglt)(BgL_arg4163z00_963), ((bool_t)0), BgL_arg4164z00_964, ((bool_t)0), ((long)-1));} } } 
}



/* _make-empty-approx */
obj_t BGl__makezd2emptyzd2approxz00zzcfa_approxz00(obj_t BgL_envz00_1662)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 116 */
{ /* ./Cfa/approx.scm 117 */
BgL_approxz00_bglt BgL_auxz00_1811;
BgL_auxz00_1811 = 
BGl_makezd2emptyzd2approxz00zzcfa_approxz00(); 
return 
(obj_t)(BgL_auxz00_1811);} } 
}



/* make-type-approx */
BGL_EXPORTED_DEF BgL_approxz00_bglt BGl_makezd2typezd2approxz00zzcfa_approxz00(BgL_typez00_bglt BgL_typez00_9)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 125 */
{ /* ./Cfa/approx.scm 126 */
obj_t BgL_allocsz00_966;
BgL_allocsz00_966 = 
BGl_makezd2setz12zc0zzcfa_setz00(BGl_za2alloczd2setza2zd2zzcfa_approxz00); 
{ /* ./Cfa/approx.scm 129 */
BgL_typez00_bglt BgL_arg4169z00_967;bool_t BgL_arg4170z00_968;obj_t BgL_arg4171z00_969;
BgL_arg4169z00_967 = BgL_typez00_9; 
{ /* ./Cfa/approx.scm 128 */
bool_t BgL_test4174z00_971;
{ /* ./Cfa/approx.scm 128 */
obj_t BgL_auxz00_1815;
BgL_auxz00_1815 = 
(obj_t)(BgL_typez00_9); 
BgL_test4174z00_971 = 
(BgL_auxz00_1815==BGl_za2_za2z00zztype_cachez00); } 
if(BgL_test4174z00_971)
{ /* ./Cfa/approx.scm 128 */
BgL_arg4170z00_968 = ((bool_t)0); }  else 
{ /* ./Cfa/approx.scm 128 */
BgL_arg4170z00_968 = ((bool_t)1); } } 
BgL_arg4171z00_969 = BgL_allocsz00_966; 
return 
BGl_makezd2approxzd2zzcfa_infoz00(BgL_arg4169z00_967, BgL_arg4170z00_968, BgL_arg4171z00_969, ((bool_t)0), ((long)-1));} } } 
}



/* _make-type-approx */
obj_t BGl__makezd2typezd2approxz00zzcfa_approxz00(obj_t BgL_envz00_1663, obj_t BgL_typez00_1664)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 125 */
{ /* ./Cfa/approx.scm 126 */
BgL_approxz00_bglt BgL_auxz00_1820;
BgL_auxz00_1820 = 
BGl_makezd2typezd2approxz00zzcfa_approxz00(
(BgL_typez00_bglt)(BgL_typez00_1664)); 
return 
(obj_t)(BgL_auxz00_1820);} } 
}



/* make-alloc-approx */
BGL_EXPORTED_DEF BgL_approxz00_bglt BGl_makezd2alloczd2approxz00zzcfa_approxz00(BgL_appz00_bglt BgL_allocz00_10)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 135 */
{ /* ./Cfa/approx.scm 136 */
obj_t BgL_allocsz00_972;
BgL_allocsz00_972 = 
BGl_makezd2setz12zc0zzcfa_setz00(BGl_za2alloczd2setza2zd2zzcfa_approxz00); 
BGl_setzd2extendz12zc0zzcfa_setz00(BgL_allocsz00_972, 
(obj_t)(BgL_allocz00_10)); 
{ /* ./Cfa/approx.scm 139 */
obj_t BgL_arg4179z00_973;obj_t BgL_arg4180z00_974;
BgL_arg4179z00_973 = BGl_typez00zztype_typez00; 
BgL_arg4180z00_974 = BgL_allocsz00_972; 
return 
BGl_makezd2approxzd2zzcfa_infoz00(
(BgL_typez00_bglt)(BgL_arg4179z00_973), ((bool_t)0), BgL_arg4180z00_974, ((bool_t)0), ((long)-1));} } } 
}



/* _make-alloc-approx */
obj_t BGl__makezd2alloczd2approxz00zzcfa_approxz00(obj_t BgL_envz00_1665, obj_t BgL_allocz00_1666)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 135 */
{ /* ./Cfa/approx.scm 136 */
BgL_approxz00_bglt BgL_auxz00_1829;
BgL_auxz00_1829 = 
BGl_makezd2alloczd2approxz00zzcfa_approxz00(
(BgL_appz00_bglt)(BgL_allocz00_1666)); 
return 
(obj_t)(BgL_auxz00_1829);} } 
}



/* make-type-alloc-approx */
BGL_EXPORTED_DEF BgL_approxz00_bglt BGl_makezd2typezd2alloczd2approxzd2zzcfa_approxz00(BgL_typez00_bglt BgL_typez00_11, BgL_nodez00_bglt BgL_allocz00_12)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 145 */
{ /* ./Cfa/approx.scm 146 */
obj_t BgL_allocsz00_976;
BgL_allocsz00_976 = 
BGl_makezd2setz12zc0zzcfa_setz00(BGl_za2alloczd2setza2zd2zzcfa_approxz00); 
BGl_setzd2extendz12zc0zzcfa_setz00(BgL_allocsz00_976, 
(obj_t)(BgL_allocz00_12)); 
{ /* ./Cfa/approx.scm 150 */
BgL_typez00_bglt BgL_arg4186z00_977;bool_t BgL_arg4187z00_978;obj_t BgL_arg4188z00_979;
BgL_arg4186z00_977 = BgL_typez00_11; 
{ /* ./Cfa/approx.scm 149 */
bool_t BgL_test4191z00_981;
{ /* ./Cfa/approx.scm 149 */
obj_t BgL_auxz00_1836;
BgL_auxz00_1836 = 
(obj_t)(BgL_typez00_11); 
BgL_test4191z00_981 = 
(BgL_auxz00_1836==BGl_za2_za2z00zztype_cachez00); } 
if(BgL_test4191z00_981)
{ /* ./Cfa/approx.scm 149 */
BgL_arg4187z00_978 = ((bool_t)0); }  else 
{ /* ./Cfa/approx.scm 149 */
BgL_arg4187z00_978 = ((bool_t)1); } } 
BgL_arg4188z00_979 = BgL_allocsz00_976; 
return 
BGl_makezd2approxzd2zzcfa_infoz00(BgL_arg4186z00_977, BgL_arg4187z00_978, BgL_arg4188z00_979, ((bool_t)0), ((long)-1));} } } 
}



/* _make-type-alloc-approx */
obj_t BGl__makezd2typezd2alloczd2approxzd2zzcfa_approxz00(obj_t BgL_envz00_1667, obj_t BgL_typez00_1668, obj_t BgL_allocz00_1669)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 145 */
{ /* ./Cfa/approx.scm 146 */
BgL_approxz00_bglt BgL_auxz00_1841;
BgL_auxz00_1841 = 
BGl_makezd2typezd2alloczd2approxzd2zzcfa_approxz00(
(BgL_typez00_bglt)(BgL_typez00_1668), 
(BgL_nodez00_bglt)(BgL_allocz00_1669)); 
return 
(obj_t)(BgL_auxz00_1841);} } 
}



/* for-each-approx-alloc */
BGL_EXPORTED_DEF obj_t BGl_forzd2eachzd2approxzd2alloczd2zzcfa_approxz00(obj_t BgL_procz00_14, BgL_approxz00_bglt BgL_approxz00_15)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 175 */
{ /* ./Cfa/approx.scm 176 */
obj_t BgL_arg4195z00_1561;
BgL_arg4195z00_1561 = 
(((BgL_approxz00_bglt)CREF(BgL_approxz00_15))->BgL_allocsz00); 
return 
BGl_setzd2forzd2eachz00zzcfa_setz00(BgL_procz00_14, BgL_arg4195z00_1561);} } 
}



/* _for-each-approx-alloc */
obj_t BGl__forzd2eachzd2approxzd2alloczd2zzcfa_approxz00(obj_t BgL_envz00_1670, obj_t BgL_procz00_1671, obj_t BgL_approxz00_1672)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 175 */
return 
BGl_forzd2eachzd2approxzd2alloczd2zzcfa_approxz00(BgL_procz00_1671, 
(BgL_approxz00_bglt)(BgL_approxz00_1672));} 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzcfa_approxz00()
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 15 */
BGl_addzd2methodz12zc0zz__objectz00(BGl_shapezd2envzd2zztools_shapez00, BGl_approxz00zzcfa_infoz00, BGl_proc5108z00zzcfa_approxz00); 
BGl_addzd2genericz12zc0zz__objectz00(BGl_getzd2nodezd2atomzd2valuezd2envz00zzcfa_approxz00, BGl_getzd2nodezd2atomzd2valuezd2default4092zd2envzd2zzcfa_approxz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_getzd2nodezd2atomzd2valuezd2envz00zzcfa_approxz00, BGl_atomz00zzast_nodez00, BGl_proc5109z00zzcfa_approxz00); 
return 
BGl_addzd2methodz12zc0zz__objectz00(BGl_getzd2nodezd2atomzd2valuezd2envz00zzcfa_approxz00, BGl_varz00zzast_nodez00, BGl_proc5110z00zzcfa_approxz00);} 
}



/* get-node-atom-value-var4097 */
obj_t BGl_getzd2nodezd2atomzd2valuezd2var4097z00zzcfa_approxz00(obj_t BgL_envz00_1678, obj_t BgL_nodez00_1679)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 196 */
{ 
BgL_varz00_bglt BgL_nodez00_1529;
BgL_nodez00_1529 = 
(BgL_varz00_bglt)(BgL_nodez00_1679); 
{ /* ./Cfa/approx.scm 197 */
BgL_variablez00_bglt BgL_vz00_1532;
BgL_vz00_1532 = 
(((BgL_varz00_bglt)CREF(BgL_nodez00_1529))->BgL_variablez00); 
{ /* ./Cfa/approx.scm 198 */
bool_t BgL_test4965z00_1533;
{ /* ./Cfa/approx.scm 198 */
bool_t BgL_test4970z00_1535;
{ /* ./Cfa/approx.scm 198 */
obj_t BgL_obj2951z00_1593;
BgL_obj2951z00_1593 = 
(obj_t)(BgL_vz00_1532); 
BgL_test4970z00_1535 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj2951z00_1593, BGl_reshapedzd2localzd2zzcfa_infoz00); } 
if(BgL_test4970z00_1535)
{ /* ./Cfa/approx.scm 198 */
obj_t BgL_arg4972z00_1536;
{ /* ./Cfa/approx.scm 198 */
BgL_reshapedzd2localzd2_bglt BgL_obj2952z00_1594;
BgL_obj2952z00_1594 = 
(BgL_reshapedzd2localzd2_bglt)(BgL_vz00_1532); 
{ 
obj_t BgL_auxz00_1859;
{ /* ./Cfa/approx.scm 198 */
BgL_objectz00_bglt BgL_auxz00_1860;
BgL_auxz00_1860 = 
(BgL_objectz00_bglt)(BgL_obj2952z00_1594); 
BgL_auxz00_1859 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1860); } 
BgL_arg4972z00_1536 = 
(((BgL_reshapedzd2localzd2_bglt)CREF(BgL_auxz00_1859))->BgL_bindingzd2valuezd2); } } 
BgL_test4965z00_1533 = 
BGl_iszd2azf3z21zz__objectz00(BgL_arg4972z00_1536, BGl_nodez00zzast_nodez00); }  else 
{ /* ./Cfa/approx.scm 198 */
BgL_test4965z00_1533 = ((bool_t)0); } } 
if(BgL_test4965z00_1533)
{ /* ./Cfa/approx.scm 199 */
obj_t BgL_arg4967z00_1534;
{ /* ./Cfa/approx.scm 199 */
BgL_reshapedzd2localzd2_bglt BgL_obj2952z00_1596;
BgL_obj2952z00_1596 = 
(BgL_reshapedzd2localzd2_bglt)(BgL_vz00_1532); 
{ 
obj_t BgL_auxz00_1867;
{ /* ./Cfa/approx.scm 199 */
BgL_objectz00_bglt BgL_auxz00_1868;
BgL_auxz00_1868 = 
(BgL_objectz00_bglt)(BgL_obj2952z00_1596); 
BgL_auxz00_1867 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1868); } 
BgL_arg4967z00_1534 = 
(((BgL_reshapedzd2localzd2_bglt)CREF(BgL_auxz00_1867))->BgL_bindingzd2valuezd2); } } 
{ /* ./Cfa/approx.scm 199 */
BgL_nodez00_bglt BgL_nodez00_1597;
BgL_nodez00_1597 = 
(BgL_nodez00_bglt)(BgL_arg4967z00_1534); 
{ /* ./Cfa/approx.scm 199 */
obj_t BgL_method4093z00_1598;
{ /* ./Cfa/approx.scm 199 */
BgL_objectz00_bglt BgL_objz00_1599;
BgL_objz00_1599 = 
(BgL_objectz00_bglt)(BgL_nodez00_1597); 
{ /* ./Cfa/approx.scm 199 */
long BgL_objzd2classzd2numz00_1600;
BgL_objzd2classzd2numz00_1600 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1599); 
{ /* ./Cfa/approx.scm 199 */
obj_t BgL_arg2017z00_1601;
{ /* ./Cfa/approx.scm 199 */
int BgL_auxz00_1875;
BgL_auxz00_1875 = 
(int)(((long)1)); 
BgL_arg2017z00_1601 = 
PROCEDURE_REF(BGl_getzd2nodezd2atomzd2valuezd2envz00zzcfa_approxz00, BgL_auxz00_1875); } 
{ /* ./Cfa/approx.scm 199 */
int BgL_offsetz00_1604;
BgL_offsetz00_1604 = 
(int)(BgL_objzd2classzd2numz00_1600); 
{ /* ./Cfa/approx.scm 199 */
long BgL_offsetz00_1605;
{ /* ./Cfa/approx.scm 199 */
long BgL_auxz00_1879;
BgL_auxz00_1879 = 
(long)(BgL_offsetz00_1604); 
BgL_offsetz00_1605 = 
(BgL_auxz00_1879-OBJECT_TYPE); } 
{ /* ./Cfa/approx.scm 199 */
long BgL_modz00_1606;
{ /* ./Cfa/approx.scm 199 */
int BgL_arg2028z00_1607;
BgL_arg2028z00_1607 = 
(int)(((long)8)); 
{ /* ./Cfa/approx.scm 199 */
long BgL_n2z00_1615;
BgL_n2z00_1615 = 
(long)(BgL_arg2028z00_1607); 
BgL_modz00_1606 = 
(BgL_offsetz00_1605/BgL_n2z00_1615); } } 
{ /* ./Cfa/approx.scm 199 */
long BgL_restz00_1608;
{ /* ./Cfa/approx.scm 199 */
int BgL_arg2024z00_1609;
BgL_arg2024z00_1609 = 
(int)(((long)8)); 
{ /* ./Cfa/approx.scm 199 */
long BgL_n2z00_1618;
BgL_n2z00_1618 = 
(long)(BgL_arg2024z00_1609); 
BgL_restz00_1608 = 
(BgL_offsetz00_1605%BgL_n2z00_1618); } } 
{ /* ./Cfa/approx.scm 199 */

{ /* ./Cfa/approx.scm 199 */
obj_t BgL_bucketz00_1610;
{ /* ./Cfa/approx.scm 199 */
int BgL_kz00_1620;
BgL_kz00_1620 = 
(int)(BgL_modz00_1606); 
BgL_bucketz00_1610 = 
VECTOR_REF(BgL_arg2017z00_1601,BgL_kz00_1620); } 
{ /* ./Cfa/approx.scm 199 */
int BgL_kz00_1622;
BgL_kz00_1622 = 
(int)(BgL_restz00_1608); 
BgL_method4093z00_1598 = 
VECTOR_REF(BgL_bucketz00_1610,BgL_kz00_1622); } } } } } } } } } } 
return 
PROCEDURE_ENTRY(BgL_method4093z00_1598)(BgL_method4093z00_1598, 
(obj_t)(BgL_nodez00_1597), BEOA);} } }  else 
{ /* ./Cfa/approx.scm 198 */
return 
CNST_TABLE_REF(((long)0));} } } } } 
}



/* get-node-atom-value-atom4095 */
obj_t BGl_getzd2nodezd2atomzd2valuezd2atom4095z00zzcfa_approxz00(obj_t BgL_envz00_1680, obj_t BgL_nodez00_1681)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 190 */
{ /* ./Cfa/approx.scm 191 */
BgL_atomz00_bglt BgL_nodez00_1702;
BgL_nodez00_1702 = 
(BgL_atomz00_bglt)(BgL_nodez00_1681); 
return 
(((BgL_atomz00_bglt)CREF(BgL_nodez00_1702))->BgL_valuez00);} } 
}



/* shape-approx4091 */
obj_t BGl_shapezd2approx4091zd2zzcfa_approxz00(obj_t BgL_envz00_1682, obj_t BgL_expz00_1683)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 156 */
{ 
BgL_approxz00_bglt BgL_expz00_1497;
BgL_expz00_1497 = 
(BgL_approxz00_bglt)(BgL_expz00_1683); 
{ /* ./Cfa/approx.scm 158 */
obj_t BgL_typezd2idzd2_1501;
{ /* ./Cfa/approx.scm 158 */
obj_t BgL_arg4945z00_1520;
{ /* ./Cfa/approx.scm 158 */
BgL_typez00_bglt BgL_arg4948z00_1521;
BgL_arg4948z00_1521 = 
(((BgL_approxz00_bglt)CREF(BgL_expz00_1497))->BgL_typez00); 
BgL_arg4945z00_1520 = 
(((BgL_typez00_bglt)CREF(BgL_arg4948z00_1521))->BgL_idz00); } 
BgL_typezd2idzd2_1501 = 
BGl_makezd2typedzd2formalz00zzast_identz00(BgL_arg4945z00_1520); } 
{ /* ./Cfa/approx.scm 159 */
obj_t BgL_keysz00_1502;
{ /* ./Cfa/approx.scm 159 */
obj_t BgL_arg4941z00_1519;
BgL_arg4941z00_1519 = 
(((BgL_approxz00_bglt)CREF(BgL_expz00_1497))->BgL_allocsz00); 
BgL_keysz00_1502 = 
BGl_setzd2ze3vectorz31zzcfa_setz00(BgL_arg4941z00_1519); } 
{ /* ./Cfa/approx.scm 159 */
int BgL_lenz00_1503;
BgL_lenz00_1503 = 
VECTOR_LENGTH(BgL_keysz00_1502); 
{ /* ./Cfa/approx.scm 160 */
obj_t BgL_slenz00_1504;
if(
(((BgL_approxz00_bglt)CREF(BgL_expz00_1497))->BgL_topzf3zf3))
{ /* ./Cfa/approx.scm 161 */
long BgL_auxz00_1907;
{ /* ./Cfa/approx.scm 161 */
long BgL_auxz00_1908;
BgL_auxz00_1908 = 
(long)(BgL_lenz00_1503); 
BgL_auxz00_1907 = 
(BgL_auxz00_1908+((long)1)); } 
BgL_slenz00_1504 = 
BINT(BgL_auxz00_1907); }  else 
{ /* ./Cfa/approx.scm 161 */
BgL_slenz00_1504 = 
BINT(BgL_lenz00_1503); } 
{ /* ./Cfa/approx.scm 161 */
obj_t BgL_structz00_1505;
{ /* ./Cfa/approx.scm 162 */
int BgL_lenz00_1571;
BgL_lenz00_1571 = 
CINT(BgL_slenz00_1504); 
BgL_structz00_1505 = 
make_struct(BgL_typezd2idzd2_1501, BgL_lenz00_1571, BUNSPEC); } 
{ /* ./Cfa/approx.scm 162 */

{ /* ./Cfa/approx.scm 163 */
bool_t BgL_test4911z00_1506;
BgL_test4911z00_1506 = 
(((BgL_approxz00_bglt)CREF(BgL_expz00_1497))->BgL_topzf3zf3); 
if(BgL_test4911z00_1506)
{ /* ./Cfa/approx.scm 163 */
int BgL_kz00_1575;obj_t BgL_oz00_1576;
BgL_kz00_1575 = 
(int)(((long)0)); 
BgL_oz00_1576 = 
CNST_TABLE_REF(((long)1)); 
STRUCT_SET(BgL_structz00_1505, BgL_kz00_1575, BgL_oz00_1576); }  else 
{ /* ./Cfa/approx.scm 163 */BFALSE; } } 
{ 
long BgL_rz00_1507;long BgL_wz00_1508;
{ /* ./Cfa/approx.scm 164 */
long BgL_arg4915z00_1510;
if(
(((BgL_approxz00_bglt)CREF(BgL_expz00_1497))->BgL_topzf3zf3))
{ /* ./Cfa/approx.scm 164 */
BgL_arg4915z00_1510 = ((long)1); }  else 
{ /* ./Cfa/approx.scm 164 */
BgL_arg4915z00_1510 = ((long)0); } 
BgL_rz00_1507 = BgL_arg4915z00_1510; 
BgL_wz00_1508 = ((long)0); 
BgL_loopz00_1509:
{ /* ./Cfa/approx.scm 166 */
bool_t BgL_test4920z00_1513;
{ /* ./Cfa/approx.scm 166 */
long BgL_auxz00_1922;
BgL_auxz00_1922 = 
(long)(BgL_lenz00_1503); 
BgL_test4920z00_1513 = 
(BgL_wz00_1508==BgL_auxz00_1922); } 
if(BgL_test4920z00_1513)
{ /* ./Cfa/approx.scm 166 */
return BgL_structz00_1505;}  else 
{ /* ./Cfa/approx.scm 166 */
{ /* ./Cfa/approx.scm 169 */
obj_t BgL_arg4922z00_1514;
{ /* ./Cfa/approx.scm 169 */
obj_t BgL_arg4925z00_1515;
{ /* ./Cfa/approx.scm 169 */
int BgL_kz00_1581;
BgL_kz00_1581 = 
(int)(BgL_wz00_1508); 
BgL_arg4925z00_1515 = 
VECTOR_REF(BgL_keysz00_1502,BgL_kz00_1581); } 
{ /* ./Cfa/approx.scm 169 */
BgL_nodezf2effectzf2_bglt BgL_nodez00_1582;
BgL_nodez00_1582 = 
(BgL_nodezf2effectzf2_bglt)(BgL_arg4925z00_1515); 
BgL_arg4922z00_1514 = 
(((BgL_nodezf2effectzf2_bglt)CREF(BgL_nodez00_1582))->BgL_keyz00); } } 
{ /* ./Cfa/approx.scm 169 */
int BgL_kz00_1585;
BgL_kz00_1585 = 
(int)(BgL_rz00_1507); 
STRUCT_SET(BgL_structz00_1505, BgL_kz00_1585, BgL_arg4922z00_1514); } } 
{ /* ./Cfa/approx.scm 170 */
long BgL_arg4929z00_1516;long BgL_arg4930z00_1517;
BgL_arg4929z00_1516 = 
(BgL_rz00_1507+((long)1)); 
BgL_arg4930z00_1517 = 
(BgL_wz00_1508+((long)1)); 
{ 
long BgL_wz00_1935;long BgL_rz00_1934;
BgL_rz00_1934 = BgL_arg4929z00_1516; 
BgL_wz00_1935 = BgL_arg4930z00_1517; 
BgL_wz00_1508 = BgL_wz00_1935; 
BgL_rz00_1507 = BgL_rz00_1934; 
goto BgL_loopz00_1509;} } } } } } } } } } } } } } 
}



/* get-node-atom-value */
BGL_EXPORTED_DEF obj_t BGl_getzd2nodezd2atomzd2valuezd2zzcfa_approxz00(BgL_nodez00_bglt BgL_nodez00_16)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 184 */
{ /* ./Cfa/approx.scm 184 */
obj_t BgL_method4093z00_1623;
{ /* ./Cfa/approx.scm 184 */
BgL_objectz00_bglt BgL_objz00_1624;
BgL_objz00_1624 = 
(BgL_objectz00_bglt)(BgL_nodez00_16); 
{ /* ./Cfa/approx.scm 184 */
long BgL_objzd2classzd2numz00_1625;
BgL_objzd2classzd2numz00_1625 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1624); 
{ /* ./Cfa/approx.scm 184 */
obj_t BgL_arg2017z00_1626;
{ /* ./Cfa/approx.scm 184 */
int BgL_auxz00_1939;
BgL_auxz00_1939 = 
(int)(((long)1)); 
BgL_arg2017z00_1626 = 
PROCEDURE_REF(BGl_getzd2nodezd2atomzd2valuezd2envz00zzcfa_approxz00, BgL_auxz00_1939); } 
{ /* ./Cfa/approx.scm 184 */
int BgL_offsetz00_1629;
BgL_offsetz00_1629 = 
(int)(BgL_objzd2classzd2numz00_1625); 
{ /* ./Cfa/approx.scm 184 */
long BgL_offsetz00_1630;
{ /* ./Cfa/approx.scm 184 */
long BgL_auxz00_1943;
BgL_auxz00_1943 = 
(long)(BgL_offsetz00_1629); 
BgL_offsetz00_1630 = 
(BgL_auxz00_1943-OBJECT_TYPE); } 
{ /* ./Cfa/approx.scm 184 */
long BgL_modz00_1631;
{ /* ./Cfa/approx.scm 184 */
int BgL_arg2028z00_1632;
BgL_arg2028z00_1632 = 
(int)(((long)8)); 
{ /* ./Cfa/approx.scm 184 */
long BgL_n2z00_1640;
BgL_n2z00_1640 = 
(long)(BgL_arg2028z00_1632); 
BgL_modz00_1631 = 
(BgL_offsetz00_1630/BgL_n2z00_1640); } } 
{ /* ./Cfa/approx.scm 184 */
long BgL_restz00_1633;
{ /* ./Cfa/approx.scm 184 */
int BgL_arg2024z00_1634;
BgL_arg2024z00_1634 = 
(int)(((long)8)); 
{ /* ./Cfa/approx.scm 184 */
long BgL_n2z00_1643;
BgL_n2z00_1643 = 
(long)(BgL_arg2024z00_1634); 
BgL_restz00_1633 = 
(BgL_offsetz00_1630%BgL_n2z00_1643); } } 
{ /* ./Cfa/approx.scm 184 */

{ /* ./Cfa/approx.scm 184 */
obj_t BgL_bucketz00_1635;
{ /* ./Cfa/approx.scm 184 */
int BgL_kz00_1645;
BgL_kz00_1645 = 
(int)(BgL_modz00_1631); 
BgL_bucketz00_1635 = 
VECTOR_REF(BgL_arg2017z00_1626,BgL_kz00_1645); } 
{ /* ./Cfa/approx.scm 184 */
int BgL_kz00_1647;
BgL_kz00_1647 = 
(int)(BgL_restz00_1633); 
BgL_method4093z00_1623 = 
VECTOR_REF(BgL_bucketz00_1635,BgL_kz00_1647); } } } } } } } } } } 
return 
PROCEDURE_ENTRY(BgL_method4093z00_1623)(BgL_method4093z00_1623, 
(obj_t)(BgL_nodez00_16), BEOA);} } 
}



/* _get-node-atom-value5014 */
obj_t BGl__getzd2nodezd2atomzd2value5014zd2zzcfa_approxz00(obj_t BgL_envz00_1674, obj_t BgL_nodez00_1675)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 184 */
return 
BGl_getzd2nodezd2atomzd2valuezd2zzcfa_approxz00(
(BgL_nodez00_bglt)(BgL_nodez00_1675));} 
}



/* _get-node-atom-value-default4092 */
obj_t BGl__getzd2nodezd2atomzd2valuezd2default4092z00zzcfa_approxz00(obj_t BgL_envz00_1686, obj_t BgL_nodez00_1687)
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 15 */
{ /* ./Cfa/approx.scm 185 */
obj_t BgL_res5127z00_1704;
BgL_res5127z00_1704 = 
CNST_TABLE_REF(((long)0)); 
return BgL_res5127z00_1704;} } 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzcfa_approxz00()
{ AN_OBJECT;
{ /* ./Cfa/approx.scm 15 */
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "cfa_approx"); 
BGl_modulezd2initializa7ationz75zztype_cachez00(((long)25848), "cfa_approx"); 
BGl_modulezd2initializa7ationz75zztools_shapez00(((long)30833), "cfa_approx"); 
BGl_modulezd2initializa7ationz75zztools_errorz00(((long)25566), "cfa_approx"); 
BGl_modulezd2initializa7ationz75zztools_miscz00(((long)64117), "cfa_approx"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "cfa_approx"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "cfa_approx"); 
BGl_modulezd2initializa7ationz75zzast_identz00(((long)51504), "cfa_approx"); 
BGl_modulezd2initializa7ationz75zzcfa_infoz00(((long)2565), "cfa_approx"); 
BGl_modulezd2initializa7ationz75zzcfa_info2z00(((long)0), "cfa_approx"); 
BGl_modulezd2initializa7ationz75zzcfa_collectz00(((long)25521), "cfa_approx"); 
BGl_modulezd2initializa7ationz75zzcfa_setz00(((long)21480), "cfa_approx"); 
BGl_modulezd2initializa7ationz75zzcfa_iteratez00(((long)17824), "cfa_approx"); 
BGl_modulezd2initializa7ationz75zzcfa_loosez00(((long)78579), "cfa_approx"); 
return 
BGl_modulezd2initializa7ationz75zzcfa_procedurez00(((long)5948), "cfa_approx");} 
}

