/*===========================================================================*/
/*   (Cfa/arithmetic.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/arithmetic.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_methodzd2initzd2zzcfa_arithmeticz00();
BGL_IMPORT obj_t open_input_string(obj_t);
BGL_IMPORT long BGl_classzd2numzd2zz__objectz00(obj_t);
static obj_t BGl_nodezd2setupz12zd2prezd2arithmeticzd2app4112z12zzcfa_arithmeticz00(obj_t, obj_t);
extern BgL_approxz00_bglt BGl_loosez12z12zzcfa_loosez00(BgL_approxz00_bglt, obj_t);
extern obj_t BGl_sfunz00zzast_varz00;
extern 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);
static obj_t BGl_unspecifiedzd2typezd2zzcfa_arithmeticz00(obj_t);
static obj_t BGl_cfaz12zd2arithmeticzd2app4114z12zzcfa_arithmeticz00(obj_t, obj_t);
extern obj_t BGl_za2_za2z00zztype_cachez00;
BGL_IMPORT obj_t BGl_za2classesza2z00zz__objectz00;
static obj_t BGl_za2arithmeticzd2nodesza2zd2zzcfa_arithmeticz00 = BUNSPEC;
extern obj_t BGl_typez00zztype_typez00;
static obj_t BGl__cleanupzd2arithmeticzd2nodesz12z12zzcfa_arithmeticz00(obj_t);
static obj_t BGl_cnstzd2initzd2zzcfa_arithmeticz00();
static obj_t BGl_importedzd2moduleszd2initz00zzcfa_arithmeticz00();
extern obj_t BGl_prezd2arithmeticzd2appz00zzcfa_info2z00;
BGL_EXPORTED_DECL obj_t BGl_cleanupzd2arithmeticzd2nodesz12z12zzcfa_arithmeticz00();
extern obj_t BGl_wideningzd2arithmeticzd2appz00zzcfa_info2z00(BgL_approxz00_bglt, obj_t);
BGL_IMPORT obj_t BGl_addzd2methodz12zc0zz__objectz00(obj_t, obj_t, obj_t);
extern BgL_approxz00_bglt BGl_cfaz12z12zzcfa_cfaz00(BgL_nodez00_bglt);
static obj_t BGl_toplevelzd2initzd2zzcfa_arithmeticz00();
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzcfa_arithmeticz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_tracez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_errorz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_infoz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_info2z00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_loosez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_iteratez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_cfaz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_setupz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_approxz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcfa_tvectorz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(long, char *);
extern BgL_approxz00_bglt BGl_makezd2typezd2approxz00zzcfa_approxz00(BgL_typez00_bglt);
BGL_IMPORT obj_t BGl_memqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
extern obj_t BGl_cfunz00zzast_varz00;
extern obj_t BGl_nodezd2setupza2z12z62zzcfa_setupz00(obj_t);
extern obj_t BGl_localz00zzast_varz00;
extern obj_t BGl_approxzd2setzd2typez12z12zzcfa_approxz00(BgL_approxz00_bglt, BgL_typez00_bglt);
extern obj_t BGl_za2objza2z00zztype_cachez00;
extern obj_t BGl_arithmeticzd2appzd2zzcfa_info2z00;
static obj_t BGl_requirezd2initializa7ationz75zzcfa_arithmeticz00 = BUNSPEC;
static obj_t BGl_cleanupzd2typezd2zzcfa_arithmeticz00(obj_t);
extern obj_t BGl_continuezd2cfaz12zc0zzcfa_iteratez00();
BGL_IMPORT obj_t BGl_classzd2superzd2zz__objectz00(obj_t);
static obj_t BGl_libraryzd2moduleszd2initz00zzcfa_arithmeticz00();
static obj_t __cnst[ 1 ] ;


DEFINE_EXPORT_PROCEDURE( BGl_cleanupzd2arithmeticzd2nodesz12zd2envzc0zzcfa_arithmeticz00, BgL_bgl__cleanupza7d2arithmeticza7d2nodesza712za712za7za7cfa_arithmeticza7005301za7, BGl__cleanupzd2arithmeticzd2nodesz12z12zzcfa_arithmeticz00, 0L, 0 );
extern obj_t BGl_cfaz12zd2envzc0zzcfa_cfaz00;
DEFINE_STATIC_PROCEDURE( BGl_proc5270z00zzcfa_arithmeticz00, BgL_bgl_nodeza7d2setupza712za7d2preza7d2arithmeticza7d2app4112za712za7za7cfa_arithmeticza7005302za7, BGl_nodezd2setupz12zd2prezd2arithmeticzd2app4112z12zzcfa_arithmeticz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc5271z00zzcfa_arithmeticz00, BgL_bgl_cfaza712za7d2arithmeticza7d2app4114za712za7za7cfa_arithmeticza7005303za7, BGl_cfaz12zd2arithmeticzd2app4114z12zzcfa_arithmeticz00, 0L, 1 );
DEFINE_STRING( BGl_string5274z00zzcfa_arithmeticz00, BgL_bgl_string5274za700za7za7cfa_arithmeticza7005304z00, "all ", 4 );
DEFINE_STRING( BGl_string5273z00zzcfa_arithmeticz00, BgL_bgl_string5273za700za7za7cfa_arithmeticza7005305z00, "Illegal arithmetic node", 23 );
DEFINE_STRING( BGl_string5272z00zzcfa_arithmeticz00, BgL_bgl_string5272za700za7za7cfa_arithmeticza7005306z00, "node-setup!", 11 );
extern obj_t BGl_nodezd2setupz12zd2envz12zzcfa_setupz00;



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzcfa_arithmeticz00(long BgL_checksumz00_1771, char * BgL_fromz00_1772)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzcfa_arithmeticz00))
{ 
BGl_requirezd2initializa7ationz75zzcfa_arithmeticz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzcfa_arithmeticz00(); 
BGl_cnstzd2initzd2zzcfa_arithmeticz00(); 
BGl_importedzd2moduleszd2initz00zzcfa_arithmeticz00(); 
BGl_methodzd2initzd2zzcfa_arithmeticz00(); 
BGl_toplevelzd2initzd2zzcfa_arithmeticz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzcfa_arithmeticz00()
{ AN_OBJECT;
{ /* ./Cfa/arithmetic.scm 28 */
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "cfa_arithmetic"); 
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "cfa_arithmetic"); 
BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(((long)0), "cfa_arithmetic"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzcfa_arithmeticz00()
{ AN_OBJECT;
{ /* ./Cfa/arithmetic.scm 28 */
{ /* ./Cfa/arithmetic.scm 28 */
obj_t BgL_cportz00_1764;
BgL_cportz00_1764 = 
open_input_string(BGl_string5274z00zzcfa_arithmeticz00); 
{ 
long BgL_iz00_1765;
BgL_iz00_1765 = ((long)0); 
BgL_loopz00_1766:
{ /* ./Cfa/arithmetic.scm 28 */
bool_t BgL_test5276z00_1767;
BgL_test5276z00_1767 = 
(BgL_iz00_1765==((long)-1)); 
if(BgL_test5276z00_1767)
{ /* ./Cfa/arithmetic.scm 28 */
return BUNSPEC;}  else 
{ /* ./Cfa/arithmetic.scm 28 */
{ /* ./Cfa/arithmetic.scm 28 */
obj_t BgL_arg5278z00_1768;
{ /* ./Cfa/arithmetic.scm 28 */
obj_t BgL_list5281z00_1769;
BgL_list5281z00_1769 = 
MAKE_PAIR(BgL_cportz00_1764, BNIL); 
BgL_arg5278z00_1768 = 
BGl_readz00zz__readerz00(BgL_list5281z00_1769); } 
{ /* ./Cfa/arithmetic.scm 28 */
int BgL_auxz00_1789;
BgL_auxz00_1789 = 
(int)(BgL_iz00_1765); 
CNST_TABLE_SET(BgL_auxz00_1789, BgL_arg5278z00_1768); } } 
{ /* ./Cfa/arithmetic.scm 28 */
int BgL_auxz00_1770;
{ /* ./Cfa/arithmetic.scm 28 */
long BgL_auxz00_1792;
BgL_auxz00_1792 = 
(BgL_iz00_1765-((long)1)); 
BgL_auxz00_1770 = 
(int)(BgL_auxz00_1792); } 
{ 
long BgL_iz00_1795;
BgL_iz00_1795 = 
(long)(BgL_auxz00_1770); 
BgL_iz00_1765 = BgL_iz00_1795; 
goto BgL_loopz00_1766;} } } } } } } 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzcfa_arithmeticz00()
{ AN_OBJECT;
{ /* ./Cfa/arithmetic.scm 28 */
BGl_za2arithmeticzd2nodesza2zd2zzcfa_arithmeticz00 = BNIL; 
return BUNSPEC;} 
}



/* cleanup-arithmetic-nodes! */
BGL_EXPORTED_DEF obj_t BGl_cleanupzd2arithmeticzd2nodesz12z12zzcfa_arithmeticz00()
{ AN_OBJECT;
{ /* ./Cfa/arithmetic.scm 52 */
{ 
obj_t BgL_l4082z00_928;
{ /* ./Cfa/arithmetic.scm 67 */
bool_t BgL_auxz00_1797;
BgL_l4082z00_928 = BGl_za2arithmeticzd2nodesza2zd2zzcfa_arithmeticz00; 
BgL_forzd2each4083zd2_929:
{ /* ./Cfa/arithmetic.scm 67 */
bool_t BgL_test4116z00_930;
BgL_test4116z00_930 = 
PAIRP(BgL_l4082z00_928); 
if(BgL_test4116z00_930)
{ /* ./Cfa/arithmetic.scm 67 */
{ /* ./Cfa/arithmetic.scm 68 */
obj_t BgL_nodez00_931;
BgL_nodez00_931 = 
CAR(BgL_l4082z00_928); 
{ /* ./Cfa/arithmetic.scm 69 */
BgL_variablez00_bglt BgL_fz00_933;
{ /* ./Cfa/arithmetic.scm 69 */
BgL_varz00_bglt BgL_arg4185z00_965;
{ /* ./Cfa/arithmetic.scm 69 */
BgL_appz00_bglt BgL_obj1719z00_1625;
BgL_obj1719z00_1625 = 
(BgL_appz00_bglt)(BgL_nodez00_931); 
BgL_arg4185z00_965 = 
(((BgL_appz00_bglt)CREF(BgL_obj1719z00_1625))->BgL_funz00); } 
BgL_fz00_933 = 
(((BgL_varz00_bglt)CREF(BgL_arg4185z00_965))->BgL_variablez00); } 
{ /* ./Cfa/arithmetic.scm 69 */
BgL_valuez00_bglt BgL_valz00_934;
BgL_valz00_934 = 
(((BgL_variablez00_bglt)CREF(BgL_fz00_933))->BgL_valuez00); 
{ /* ./Cfa/arithmetic.scm 70 */

{ /* ./Cfa/arithmetic.scm 72 */
bool_t BgL_test4117z00_935;
{ /* ./Cfa/arithmetic.scm 72 */
BgL_typez00_bglt BgL_arg4120z00_936;
BgL_arg4120z00_936 = 
(((BgL_variablez00_bglt)CREF(BgL_fz00_933))->BgL_typez00); 
{ /* ./Cfa/arithmetic.scm 72 */
obj_t BgL_auxz00_1806;
BgL_auxz00_1806 = 
(obj_t)(BgL_arg4120z00_936); 
BgL_test4117z00_935 = 
(BgL_auxz00_1806==BGl_za2_za2z00zztype_cachez00); } } 
if(BgL_test4117z00_935)
{ /* ./Cfa/arithmetic.scm 73 */
BgL_variablez00_bglt BgL_obj1099z00_1629;BgL_typez00_bglt BgL_val1098z00_1630;
BgL_obj1099z00_1629 = BgL_fz00_933; 
BgL_val1098z00_1630 = 
(BgL_typez00_bglt)(BGl_za2objza2z00zztype_cachez00); 
((((BgL_variablez00_bglt)CREF(BgL_obj1099z00_1629))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1098z00_1630), BUNSPEC); }  else 
{ /* ./Cfa/arithmetic.scm 72 */BFALSE; } } 
{ /* ./Cfa/arithmetic.scm 74 */
bool_t BgL_test4123z00_937;
{ /* ./Cfa/arithmetic.scm 74 */
BgL_typez00_bglt BgL_arg4126z00_938;
{ /* ./Cfa/arithmetic.scm 74 */
BgL_nodez00_bglt BgL_obj1561z00_1631;
BgL_obj1561z00_1631 = 
(BgL_nodez00_bglt)(BgL_nodez00_931); 
BgL_arg4126z00_938 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1561z00_1631))->BgL_typez00); } 
{ /* ./Cfa/arithmetic.scm 74 */
obj_t BgL_auxz00_1814;
BgL_auxz00_1814 = 
(obj_t)(BgL_arg4126z00_938); 
BgL_test4123z00_937 = 
(BgL_auxz00_1814==BGl_za2_za2z00zztype_cachez00); } } 
if(BgL_test4123z00_937)
{ /* ./Cfa/arithmetic.scm 75 */
BgL_nodez00_bglt BgL_obj1563z00_1632;BgL_typez00_bglt BgL_val1562z00_1633;
BgL_obj1563z00_1632 = 
(BgL_nodez00_bglt)(BgL_nodez00_931); 
BgL_val1562z00_1633 = 
(BgL_typez00_bglt)(BGl_za2objza2z00zztype_cachez00); 
((((BgL_nodez00_bglt)CREF(BgL_obj1563z00_1632))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1562z00_1633), BUNSPEC); }  else 
{ /* ./Cfa/arithmetic.scm 74 */BFALSE; } } 
{ /* ./Cfa/arithmetic.scm 77 */
bool_t BgL_test4129z00_939;
{ /* ./Cfa/arithmetic.scm 77 */
obj_t BgL_obj1425z00_1634;
BgL_obj1425z00_1634 = 
(obj_t)(BgL_valz00_934); 
BgL_test4129z00_939 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1425z00_1634, BGl_sfunz00zzast_varz00); } 
if(BgL_test4129z00_939)
{ /* ./Cfa/arithmetic.scm 77 */
{ /* ./Cfa/arithmetic.scm 79 */
obj_t BgL_arg4131z00_940;
{ /* ./Cfa/arithmetic.scm 79 */
obj_t BgL_l4086z00_941;
{ /* ./Cfa/arithmetic.scm 79 */
BgL_sfunz00_bglt BgL_obj1367z00_1635;
BgL_obj1367z00_1635 = 
(BgL_sfunz00_bglt)(BgL_valz00_934); 
BgL_l4086z00_941 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1635))->BgL_argsz00); } 
{ /* ./Cfa/arithmetic.scm 79 */
bool_t BgL_test4133z00_942;
BgL_test4133z00_942 = 
NULLP(BgL_l4086z00_941); 
if(BgL_test4133z00_942)
{ /* ./Cfa/arithmetic.scm 79 */
BgL_arg4131z00_940 = BNIL; }  else 
{ /* ./Cfa/arithmetic.scm 79 */
obj_t BgL_head4088z00_943;
{ /* ./Cfa/arithmetic.scm 79 */
obj_t BgL_arg4154z00_954;
{ /* ./Cfa/arithmetic.scm 79 */
obj_t BgL_arg4158z00_956;
BgL_arg4158z00_956 = 
CAR(BgL_l4086z00_941); 
BgL_arg4154z00_954 = 
BGl_cleanupzd2typezd2zzcfa_arithmeticz00(BgL_arg4158z00_956); } 
BgL_head4088z00_943 = 
MAKE_PAIR(BgL_arg4154z00_954, BNIL); } 
{ 
obj_t BgL_l4086z00_944;obj_t BgL_tail4089z00_945;
{ /* ./Cfa/arithmetic.scm 79 */
obj_t BgL_arg4135z00_947;
BgL_arg4135z00_947 = 
CDR(BgL_l4086z00_941); 
BgL_l4086z00_944 = BgL_arg4135z00_947; 
BgL_tail4089z00_945 = BgL_head4088z00_943; 
BgL_map4087z00_946:
{ /* ./Cfa/arithmetic.scm 79 */
bool_t BgL_test4138z00_948;
BgL_test4138z00_948 = 
NULLP(BgL_l4086z00_944); 
if(BgL_test4138z00_948)
{ /* ./Cfa/arithmetic.scm 79 */
BgL_arg4131z00_940 = BgL_head4088z00_943; }  else 
{ /* ./Cfa/arithmetic.scm 79 */
obj_t BgL_newtail4090z00_949;
{ /* ./Cfa/arithmetic.scm 79 */
obj_t BgL_arg4145z00_951;
{ /* ./Cfa/arithmetic.scm 79 */
obj_t BgL_arg4149z00_953;
BgL_arg4149z00_953 = 
CAR(BgL_l4086z00_944); 
BgL_arg4145z00_951 = 
BGl_cleanupzd2typezd2zzcfa_arithmeticz00(BgL_arg4149z00_953); } 
BgL_newtail4090z00_949 = 
MAKE_PAIR(BgL_arg4145z00_951, BNIL); } 
SET_CDR(BgL_tail4089z00_945, BgL_newtail4090z00_949); 
{ /* ./Cfa/arithmetic.scm 79 */
obj_t BgL_arg4141z00_950;
BgL_arg4141z00_950 = 
CDR(BgL_l4086z00_944); 
{ 
obj_t BgL_tail4089z00_1840;obj_t BgL_l4086z00_1839;
BgL_l4086z00_1839 = BgL_arg4141z00_950; 
BgL_tail4089z00_1840 = BgL_newtail4090z00_949; 
BgL_tail4089z00_945 = BgL_tail4089z00_1840; 
BgL_l4086z00_944 = BgL_l4086z00_1839; 
goto BgL_map4087z00_946;} } } } } } } } } 
{ /* ./Cfa/arithmetic.scm 78 */
BgL_sfunz00_bglt BgL_obj1369z00_1648;obj_t BgL_val1368z00_1649;
BgL_obj1369z00_1648 = 
(BgL_sfunz00_bglt)(BgL_valz00_934); 
BgL_val1368z00_1649 = BgL_arg4131z00_940; 
((((BgL_sfunz00_bglt)CREF(BgL_obj1369z00_1648))->BgL_argsz00) = ((obj_t)BgL_val1368z00_1649), BUNSPEC); } } }  else 
{ /* ./Cfa/arithmetic.scm 80 */
bool_t BgL_test4163z00_957;
{ /* ./Cfa/arithmetic.scm 80 */
obj_t BgL_obj1489z00_1650;
BgL_obj1489z00_1650 = 
(obj_t)(BgL_valz00_934); 
BgL_test4163z00_957 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1489z00_1650, BGl_cfunz00zzast_varz00); } 
if(BgL_test4163z00_957)
{ /* ./Cfa/arithmetic.scm 80 */
{ 
obj_t BgL_lz00_958;
{ /* ./Cfa/arithmetic.scm 81 */
obj_t BgL_arg4165z00_960;
{ /* ./Cfa/arithmetic.scm 81 */
BgL_cfunz00_bglt BgL_obj1445z00_1651;
BgL_obj1445z00_1651 = 
(BgL_cfunz00_bglt)(BgL_valz00_934); 
BgL_arg4165z00_960 = 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_1651))->BgL_argszd2typezd2); } 
{ /* ./Cfa/arithmetic.scm 81 */
bool_t BgL_auxz00_1848;
BgL_lz00_958 = BgL_arg4165z00_960; 
BgL_loopz00_959:
{ /* ./Cfa/arithmetic.scm 82 */
bool_t BgL_test4168z00_961;
BgL_test4168z00_961 = 
PAIRP(BgL_lz00_958); 
if(BgL_test4168z00_961)
{ /* ./Cfa/arithmetic.scm 82 */
{ /* ./Cfa/arithmetic.scm 84 */
obj_t BgL_arg4170z00_962;
{ /* ./Cfa/arithmetic.scm 84 */
obj_t BgL_arg4173z00_963;
BgL_arg4173z00_963 = 
CAR(BgL_lz00_958); 
BgL_arg4170z00_962 = 
BGl_cleanupzd2typezd2zzcfa_arithmeticz00(BgL_arg4173z00_963); } 
SET_CAR(BgL_lz00_958, BgL_arg4170z00_962); } 
{ /* ./Cfa/arithmetic.scm 85 */
obj_t BgL_arg4177z00_964;
BgL_arg4177z00_964 = 
CDR(BgL_lz00_958); 
{ 
obj_t BgL_lz00_1855;
BgL_lz00_1855 = BgL_arg4177z00_964; 
BgL_lz00_958 = BgL_lz00_1855; 
goto BgL_loopz00_959;} } }  else 
{ /* ./Cfa/arithmetic.scm 82 */
BgL_auxz00_1848 = ((bool_t)0)
; } } 
BBOOL(BgL_auxz00_1848); } } } }  else 
{ /* ./Cfa/arithmetic.scm 80 */BFALSE; } } } } } } } 
{ /* ./Cfa/arithmetic.scm 67 */
obj_t BgL_arg4190z00_966;
BgL_arg4190z00_966 = 
CDR(BgL_l4082z00_928); 
{ 
obj_t BgL_l4082z00_1858;
BgL_l4082z00_1858 = BgL_arg4190z00_966; 
BgL_l4082z00_928 = BgL_l4082z00_1858; 
goto BgL_forzd2each4083zd2_929;} } }  else 
{ /* ./Cfa/arithmetic.scm 67 */
BgL_auxz00_1797 = ((bool_t)1); } } 
return 
BBOOL(BgL_auxz00_1797);} } } 
}



/* cleanup-type */
obj_t BGl_cleanupzd2typezd2zzcfa_arithmeticz00(obj_t BgL_tz00_967)
{ AN_OBJECT;
{ /* ./Cfa/arithmetic.scm 66 */
{ /* ./Cfa/arithmetic.scm 55 */
bool_t BgL_test4195z00_969;
BgL_test4195z00_969 = 
BGl_iszd2azf3z21zz__objectz00(BgL_tz00_967, BGl_typez00zztype_typez00); 
if(BgL_test4195z00_969)
{ /* ./Cfa/arithmetic.scm 55 */
{ /* ./Cfa/arithmetic.scm 56 */
bool_t BgL_test4196z00_970;
BgL_test4196z00_970 = 
(BgL_tz00_967==BGl_za2_za2z00zztype_cachez00); 
if(BgL_test4196z00_970)
{ /* ./Cfa/arithmetic.scm 56 */
return BGl_za2objza2z00zztype_cachez00;}  else 
{ /* ./Cfa/arithmetic.scm 56 */
return BgL_tz00_967;} } }  else 
{ /* ./Cfa/arithmetic.scm 59 */
bool_t BgL_test4198z00_971;
BgL_test4198z00_971 = 
BGl_iszd2azf3z21zz__objectz00(BgL_tz00_967, BGl_localz00zzast_varz00); 
if(BgL_test4198z00_971)
{ /* ./Cfa/arithmetic.scm 59 */
{ /* ./Cfa/arithmetic.scm 60 */
bool_t BgL_test4199z00_972;
{ /* ./Cfa/arithmetic.scm 60 */
BgL_typez00_bglt BgL_arg4202z00_973;
{ /* ./Cfa/arithmetic.scm 60 */
BgL_variablez00_bglt BgL_obj1097z00_1660;
BgL_obj1097z00_1660 = 
(BgL_variablez00_bglt)(BgL_tz00_967); 
BgL_arg4202z00_973 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_1660))->BgL_typez00); } 
{ /* ./Cfa/arithmetic.scm 60 */
obj_t BgL_auxz00_1868;
BgL_auxz00_1868 = 
(obj_t)(BgL_arg4202z00_973); 
BgL_test4199z00_972 = 
(BgL_auxz00_1868==BGl_za2_za2z00zztype_cachez00); } } 
if(BgL_test4199z00_972)
{ /* ./Cfa/arithmetic.scm 61 */
BgL_variablez00_bglt BgL_obj1099z00_1661;BgL_typez00_bglt BgL_val1098z00_1662;
BgL_obj1099z00_1661 = 
(BgL_variablez00_bglt)(BgL_tz00_967); 
BgL_val1098z00_1662 = 
(BgL_typez00_bglt)(BGl_za2objza2z00zztype_cachez00); 
((((BgL_variablez00_bglt)CREF(BgL_obj1099z00_1661))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1098z00_1662), BUNSPEC); }  else 
{ /* ./Cfa/arithmetic.scm 60 */BFALSE; } } 
return BgL_tz00_967;}  else 
{ /* ./Cfa/arithmetic.scm 59 */
return BgL_tz00_967;} } } } 
}



/* _cleanup-arithmetic-nodes! */
obj_t BGl__cleanupzd2arithmeticzd2nodesz12z12zzcfa_arithmeticz00(obj_t BgL_envz00_1753)
{ AN_OBJECT;
{ /* ./Cfa/arithmetic.scm 52 */
return 
BGl_cleanupzd2arithmeticzd2nodesz12z12zzcfa_arithmeticz00();} 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzcfa_arithmeticz00()
{ AN_OBJECT;
{ /* ./Cfa/arithmetic.scm 28 */
BGl_addzd2methodz12zc0zz__objectz00(BGl_nodezd2setupz12zd2envz12zzcfa_setupz00, BGl_prezd2arithmeticzd2appz00zzcfa_info2z00, BGl_proc5270z00zzcfa_arithmeticz00); 
return 
BGl_addzd2methodz12zc0zz__objectz00(BGl_cfaz12zd2envzc0zzcfa_cfaz00, BGl_arithmeticzd2appzd2zzcfa_info2z00, BGl_proc5271z00zzcfa_arithmeticz00);} 
}



/* cfa!-arithmetic-app4114 */
obj_t BGl_cfaz12zd2arithmeticzd2app4114z12zzcfa_arithmeticz00(obj_t BgL_envz00_1756, obj_t BgL_nodez00_1757)
{ AN_OBJECT;
{ /* ./Cfa/arithmetic.scm 141 */
{ 
BgL_arithmeticzd2appzd2_bglt BgL_nodez00_1546;
{ /* ./Cfa/arithmetic.scm 150 */
BgL_approxz00_bglt BgL_auxz00_1878;
BgL_nodez00_1546 = 
(BgL_arithmeticzd2appzd2_bglt)(BgL_nodez00_1757); 
{ 
obj_t BgL_argszd2approxzd2_1585;obj_t BgL_speczd2typeszd2_1586;obj_t BgL_argszd2approxzd2_1595;obj_t BgL_typez00_1596;obj_t BgL_speczd2typeszd2_1597;obj_t BgL_argszd2approxzd2_1609;
{ /* ./Cfa/arithmetic.scm 177 */
obj_t BgL_argszd2approxzd2_1553;
{ /* ./Cfa/arithmetic.scm 177 */
obj_t BgL_l4104z00_1569;
{ /* ./Cfa/arithmetic.scm 177 */
BgL_appz00_bglt BgL_obj1722z00_1718;
BgL_obj1722z00_1718 = 
(BgL_appz00_bglt)(BgL_nodez00_1546); 
BgL_l4104z00_1569 = 
(((BgL_appz00_bglt)CREF(BgL_obj1722z00_1718))->BgL_argsz00); } 
{ /* ./Cfa/arithmetic.scm 177 */
bool_t BgL_test5075z00_1570;
BgL_test5075z00_1570 = 
NULLP(BgL_l4104z00_1569); 
if(BgL_test5075z00_1570)
{ /* ./Cfa/arithmetic.scm 177 */
BgL_argszd2approxzd2_1553 = BNIL; }  else 
{ /* ./Cfa/arithmetic.scm 177 */
obj_t BgL_head4106z00_1571;
{ /* ./Cfa/arithmetic.scm 177 */
BgL_approxz00_bglt BgL_arg5096z00_1582;
{ /* ./Cfa/arithmetic.scm 177 */
obj_t BgL_arg5100z00_1584;
BgL_arg5100z00_1584 = 
CAR(BgL_l4104z00_1569); 
BgL_arg5096z00_1582 = 
BGl_cfaz12z12zzcfa_cfaz00(
(BgL_nodez00_bglt)(BgL_arg5100z00_1584)); } 
{ /* ./Cfa/arithmetic.scm 177 */
obj_t BgL_obj1z00_1721;
BgL_obj1z00_1721 = 
(obj_t)(BgL_arg5096z00_1582); 
BgL_head4106z00_1571 = 
MAKE_PAIR(BgL_obj1z00_1721, BNIL); } } 
{ 
obj_t BgL_l4104z00_1572;obj_t BgL_tail4107z00_1573;
{ /* ./Cfa/arithmetic.scm 177 */
obj_t BgL_arg5077z00_1575;
BgL_arg5077z00_1575 = 
CDR(BgL_l4104z00_1569); 
BgL_l4104z00_1572 = BgL_arg5077z00_1575; 
BgL_tail4107z00_1573 = BgL_head4106z00_1571; 
BgL_map4105z00_1574:
{ /* ./Cfa/arithmetic.scm 177 */
bool_t BgL_test5080z00_1576;
BgL_test5080z00_1576 = 
NULLP(BgL_l4104z00_1572); 
if(BgL_test5080z00_1576)
{ /* ./Cfa/arithmetic.scm 177 */
BgL_argszd2approxzd2_1553 = BgL_head4106z00_1571; }  else 
{ /* ./Cfa/arithmetic.scm 177 */
obj_t BgL_newtail4108z00_1577;
{ /* ./Cfa/arithmetic.scm 177 */
BgL_approxz00_bglt BgL_arg5087z00_1579;
{ /* ./Cfa/arithmetic.scm 177 */
obj_t BgL_arg5091z00_1581;
BgL_arg5091z00_1581 = 
CAR(BgL_l4104z00_1572); 
BgL_arg5087z00_1579 = 
BGl_cfaz12z12zzcfa_cfaz00(
(BgL_nodez00_bglt)(BgL_arg5091z00_1581)); } 
{ /* ./Cfa/arithmetic.scm 177 */
obj_t BgL_obj1z00_1726;
BgL_obj1z00_1726 = 
(obj_t)(BgL_arg5087z00_1579); 
BgL_newtail4108z00_1577 = 
MAKE_PAIR(BgL_obj1z00_1726, BNIL); } } 
SET_CDR(BgL_tail4107z00_1573, BgL_newtail4108z00_1577); 
{ /* ./Cfa/arithmetic.scm 177 */
obj_t BgL_arg5083z00_1578;
BgL_arg5083z00_1578 = 
CDR(BgL_l4104z00_1572); 
{ 
obj_t BgL_tail4107z00_1899;obj_t BgL_l4104z00_1898;
BgL_l4104z00_1898 = BgL_arg5083z00_1578; 
BgL_tail4107z00_1899 = BgL_newtail4108z00_1577; 
BgL_tail4107z00_1573 = BgL_tail4107z00_1899; 
BgL_l4104z00_1572 = BgL_l4104z00_1898; 
goto BgL_map4105z00_1574;} } } } } } } } } 
{ /* ./Cfa/arithmetic.scm 179 */
obj_t BgL_tyz00_1554;
BgL_argszd2approxzd2_1609 = BgL_argszd2approxzd2_1553; 
{ 
obj_t BgL_argsz00_1611;
BgL_argsz00_1611 = BgL_argszd2approxzd2_1609; 
BgL_loopz00_1612:
{ /* ./Cfa/arithmetic.scm 145 */
bool_t BgL_test5141z00_1613;
BgL_test5141z00_1613 = 
NULLP(BgL_argsz00_1611); 
if(BgL_test5141z00_1613)
{ /* ./Cfa/arithmetic.scm 145 */
BgL_tyz00_1554 = BFALSE; }  else 
{ /* ./Cfa/arithmetic.scm 147 */
BgL_typez00_bglt BgL_tz00_1614;
{ /* ./Cfa/arithmetic.scm 147 */
BgL_approxz00_bglt BgL_obj2662z00_1751;
{ /* ./Cfa/arithmetic.scm 147 */
obj_t BgL_auxz00_1902;
BgL_auxz00_1902 = 
CAR(BgL_argsz00_1611); 
BgL_obj2662z00_1751 = 
(BgL_approxz00_bglt)(BgL_auxz00_1902); } 
BgL_tz00_1614 = 
(((BgL_approxz00_bglt)CREF(BgL_obj2662z00_1751))->BgL_typez00); } 
{ /* ./Cfa/arithmetic.scm 148 */
bool_t BgL_test5142z00_1615;
{ /* ./Cfa/arithmetic.scm 148 */
obj_t BgL_auxz00_1906;
BgL_auxz00_1906 = 
(obj_t)(BgL_tz00_1614); 
BgL_test5142z00_1615 = 
(BgL_auxz00_1906==BGl_za2_za2z00zztype_cachez00); } 
if(BgL_test5142z00_1615)
{ 
obj_t BgL_argsz00_1910;
BgL_argsz00_1910 = 
CDR(BgL_argsz00_1611); 
BgL_argsz00_1611 = BgL_argsz00_1910; 
goto BgL_loopz00_1612;}  else 
{ /* ./Cfa/arithmetic.scm 148 */
BgL_tyz00_1554 = 
(obj_t)(BgL_tz00_1614); } } } } } 
{ /* ./Cfa/arithmetic.scm 180 */
bool_t BgL_test5038z00_1555;
BgL_argszd2approxzd2_1595 = BgL_argszd2approxzd2_1553; 
BgL_typez00_1596 = BgL_tyz00_1554; 
{ 
obj_t BgL_auxz00_1936;
{ /* ./Cfa/arithmetic.scm 180 */
BgL_objectz00_bglt BgL_auxz00_1937;
BgL_auxz00_1937 = 
(BgL_objectz00_bglt)(BgL_nodez00_1546); 
BgL_auxz00_1936 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1937); } 
BgL_speczd2typeszd2_1597 = 
(((BgL_arithmeticzd2appzd2_bglt)CREF(BgL_auxz00_1936))->BgL_speczd2typeszd2); } 
{ /* ./Cfa/arithmetic.scm 154 */
bool_t BgL__ortest_4100z00_1599;
if(
CBOOL(BgL_typez00_1596))
{ /* ./Cfa/arithmetic.scm 154 */
BgL__ortest_4100z00_1599 = ((bool_t)0); }  else 
{ /* ./Cfa/arithmetic.scm 154 */
BgL__ortest_4100z00_1599 = ((bool_t)1); } 
if(BgL__ortest_4100z00_1599)
{ /* ./Cfa/arithmetic.scm 154 */
BgL_test5038z00_1555 = BgL__ortest_4100z00_1599; }  else 
{ /* ./Cfa/arithmetic.scm 155 */
bool_t BgL_testz00_1916;
{ /* ./Cfa/arithmetic.scm 155 */
obj_t BgL_auxz00_1917;
BgL_auxz00_1917 = 
BGl_memqz00zz__r4_pairs_and_lists_6_3z00(BgL_typez00_1596, BgL_speczd2typeszd2_1597); 
BgL_testz00_1916 = 
CBOOL(BgL_auxz00_1917); } 
if(BgL_testz00_1916)
{ 
obj_t BgL_argsz00_1601;
BgL_argsz00_1601 = BgL_argszd2approxzd2_1595; 
BgL_loopz00_1602:
{ /* ./Cfa/arithmetic.scm 157 */
bool_t BgL_test5124z00_1603;
BgL_test5124z00_1603 = 
NULLP(BgL_argsz00_1601); 
if(BgL_test5124z00_1603)
{ /* ./Cfa/arithmetic.scm 157 */
BgL_test5038z00_1555 = ((bool_t)1); }  else 
{ /* ./Cfa/arithmetic.scm 159 */
BgL_typez00_bglt BgL_tz00_1604;
{ /* ./Cfa/arithmetic.scm 159 */
BgL_approxz00_bglt BgL_obj2662z00_1747;
{ /* ./Cfa/arithmetic.scm 159 */
obj_t BgL_auxz00_1922;
BgL_auxz00_1922 = 
CAR(BgL_argsz00_1601); 
BgL_obj2662z00_1747 = 
(BgL_approxz00_bglt)(BgL_auxz00_1922); } 
BgL_tz00_1604 = 
(((BgL_approxz00_bglt)CREF(BgL_obj2662z00_1747))->BgL_typez00); } 
{ /* ./Cfa/arithmetic.scm 160 */
bool_t BgL_test5125z00_1605;
{ /* ./Cfa/arithmetic.scm 160 */
bool_t BgL_test5130z00_1607;
{ /* ./Cfa/arithmetic.scm 160 */
obj_t BgL_auxz00_1926;
BgL_auxz00_1926 = 
(obj_t)(BgL_tz00_1604); 
BgL_test5130z00_1607 = 
(BgL_auxz00_1926==BgL_typez00_1596); } 
if(BgL_test5130z00_1607)
{ /* ./Cfa/arithmetic.scm 160 */
BgL_test5125z00_1605 = ((bool_t)1); }  else 
{ /* ./Cfa/arithmetic.scm 160 */
obj_t BgL_auxz00_1930;
BgL_auxz00_1930 = 
(obj_t)(BgL_tz00_1604); 
BgL_test5125z00_1605 = 
(BgL_auxz00_1930==BGl_za2_za2z00zztype_cachez00); } } 
if(BgL_test5125z00_1605)
{ 
obj_t BgL_argsz00_1934;
BgL_argsz00_1934 = 
CDR(BgL_argsz00_1601); 
BgL_argsz00_1601 = BgL_argsz00_1934; 
goto BgL_loopz00_1602;}  else 
{ /* ./Cfa/arithmetic.scm 160 */
BgL_test5038z00_1555 = ((bool_t)0); } } } } }  else 
{ /* ./Cfa/arithmetic.scm 155 */
BgL_test5038z00_1555 = ((bool_t)0); } } } 
if(BgL_test5038z00_1555)
{ /* ./Cfa/arithmetic.scm 182 */
bool_t BgL_test5039z00_1556;
BgL_argszd2approxzd2_1585 = BgL_argszd2approxzd2_1553; 
{ 
obj_t BgL_auxz00_1957;
{ /* ./Cfa/arithmetic.scm 182 */
BgL_objectz00_bglt BgL_auxz00_1958;
BgL_auxz00_1958 = 
(BgL_objectz00_bglt)(BgL_nodez00_1546); 
BgL_auxz00_1957 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1958); } 
BgL_speczd2typeszd2_1586 = 
(((BgL_arithmeticzd2appzd2_bglt)CREF(BgL_auxz00_1957))->BgL_speczd2typeszd2); } 
{ 
obj_t BgL_argsz00_1588;
BgL_argsz00_1588 = BgL_argszd2approxzd2_1585; 
BgL_loopz00_1589:
if(
NULLP(BgL_argsz00_1588))
{ /* ./Cfa/arithmetic.scm 167 */
BgL_test5039z00_1556 = ((bool_t)1); }  else 
{ /* ./Cfa/arithmetic.scm 169 */
bool_t BgL_testz00_1944;
{ /* ./Cfa/arithmetic.scm 169 */
obj_t BgL_auxz00_1945;
{ /* ./Cfa/arithmetic.scm 169 */
obj_t BgL_auxz00_1946;
{ /* ./Cfa/arithmetic.scm 169 */
BgL_typez00_bglt BgL_auxz00_1947;
{ /* ./Cfa/arithmetic.scm 169 */
BgL_approxz00_bglt BgL_obj2662z00_1743;
{ /* ./Cfa/arithmetic.scm 169 */
obj_t BgL_auxz00_1948;
BgL_auxz00_1948 = 
CAR(BgL_argsz00_1588); 
BgL_obj2662z00_1743 = 
(BgL_approxz00_bglt)(BgL_auxz00_1948); } 
BgL_auxz00_1947 = 
(((BgL_approxz00_bglt)CREF(BgL_obj2662z00_1743))->BgL_typez00); } 
BgL_auxz00_1946 = 
(obj_t)(BgL_auxz00_1947); } 
BgL_auxz00_1945 = 
BGl_memqz00zz__r4_pairs_and_lists_6_3z00(BgL_auxz00_1946, BgL_speczd2typeszd2_1586); } 
BgL_testz00_1944 = 
CBOOL(BgL_auxz00_1945); } 
if(BgL_testz00_1944)
{ /* ./Cfa/arithmetic.scm 169 */
{ 
obj_t BgL_argsz00_1955;
BgL_argsz00_1955 = 
CDR(BgL_argsz00_1588); 
BgL_argsz00_1588 = BgL_argsz00_1955; 
goto BgL_loopz00_1589;} }  else 
{ /* ./Cfa/arithmetic.scm 169 */
BgL_test5039z00_1556 = ((bool_t)0); } } } 
if(BgL_test5039z00_1556)
{ /* ./Cfa/arithmetic.scm 185 */
bool_t BgL_test5040z00_1557;
{ /* ./Cfa/arithmetic.scm 185 */
BgL_typez00_bglt BgL_arg5047z00_1559;
{ /* ./Cfa/arithmetic.scm 185 */
BgL_approxz00_bglt BgL_arg5050z00_1560;
{ 
obj_t BgL_auxz00_1963;
{ /* ./Cfa/arithmetic.scm 185 */
BgL_objectz00_bglt BgL_auxz00_1964;
BgL_auxz00_1964 = 
(BgL_objectz00_bglt)(BgL_nodez00_1546); 
BgL_auxz00_1963 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1964); } 
BgL_arg5050z00_1560 = 
(((BgL_arithmeticzd2appzd2_bglt)CREF(BgL_auxz00_1963))->BgL_approxz00); } 
BgL_arg5047z00_1559 = 
(((BgL_approxz00_bglt)CREF(BgL_arg5050z00_1560))->BgL_typez00); } 
{ /* ./Cfa/arithmetic.scm 185 */
obj_t BgL_auxz00_1969;
BgL_auxz00_1969 = 
(obj_t)(BgL_arg5047z00_1559); 
BgL_test5040z00_1557 = 
(BgL_auxz00_1969==BGl_za2_za2z00zztype_cachez00); } } 
if(BgL_test5040z00_1557)
{ /* ./Cfa/arithmetic.scm 185 */
{ /* ./Cfa/arithmetic.scm 188 */
BgL_approxz00_bglt BgL_arg5042z00_1558;
{ 
obj_t BgL_auxz00_1973;
{ /* ./Cfa/arithmetic.scm 188 */
BgL_objectz00_bglt BgL_auxz00_1974;
BgL_auxz00_1974 = 
(BgL_objectz00_bglt)(BgL_nodez00_1546); 
BgL_auxz00_1973 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1974); } 
BgL_arg5042z00_1558 = 
(((BgL_arithmeticzd2appzd2_bglt)CREF(BgL_auxz00_1973))->BgL_approxz00); } 
BGl_approxzd2setzd2typez12z12zzcfa_approxz00(BgL_arg5042z00_1558, 
(BgL_typez00_bglt)(BgL_tyz00_1554)); } 
BGl_continuezd2cfaz12zc0zzcfa_iteratez00(); }  else 
{ /* ./Cfa/arithmetic.scm 185 */BFALSE; } }  else 
{ /* ./Cfa/arithmetic.scm 182 */BFALSE; } }  else 
{ /* ./Cfa/arithmetic.scm 180 */
{ 
obj_t BgL_l4109z00_1562;
BgL_l4109z00_1562 = BgL_argszd2approxzd2_1553; 
BgL_forzd2each4110zd2_1563:
{ /* ./Cfa/arithmetic.scm 192 */
bool_t BgL_test5058z00_1564;
BgL_test5058z00_1564 = 
PAIRP(BgL_l4109z00_1562); 
if(BgL_test5058z00_1564)
{ /* ./Cfa/arithmetic.scm 192 */
{ /* ./Cfa/arithmetic.scm 192 */
obj_t BgL_az00_1565;
BgL_az00_1565 = 
CAR(BgL_l4109z00_1562); 
BGl_loosez12z12zzcfa_loosez00(
(BgL_approxz00_bglt)(BgL_az00_1565), 
CNST_TABLE_REF(((long)0))); } 
{ /* ./Cfa/arithmetic.scm 192 */
obj_t BgL_arg5062z00_1566;
BgL_arg5062z00_1566 = 
CDR(BgL_l4109z00_1562); 
{ 
obj_t BgL_l4109z00_1988;
BgL_l4109z00_1988 = BgL_arg5062z00_1566; 
BgL_l4109z00_1562 = BgL_l4109z00_1988; 
goto BgL_forzd2each4110zd2_1563;} } }  else 
{ /* ./Cfa/arithmetic.scm 192 */((bool_t)1); } } } 
{ /* ./Cfa/arithmetic.scm 193 */
BgL_approxz00_bglt BgL_arg5067z00_1567;
{ 
obj_t BgL_auxz00_1989;
{ /* ./Cfa/arithmetic.scm 193 */
BgL_objectz00_bglt BgL_auxz00_1990;
BgL_auxz00_1990 = 
(BgL_objectz00_bglt)(BgL_nodez00_1546); 
BgL_auxz00_1989 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1990); } 
BgL_arg5067z00_1567 = 
(((BgL_arithmeticzd2appzd2_bglt)CREF(BgL_auxz00_1989))->BgL_approxz00); } 
BGl_approxzd2setzd2typez12z12zzcfa_approxz00(BgL_arg5067z00_1567, 
(BgL_typez00_bglt)(BGl_za2objza2z00zztype_cachez00)); } } } } } 
{ 
obj_t BgL_auxz00_1996;
{ /* ./Cfa/arithmetic.scm 195 */
BgL_objectz00_bglt BgL_auxz00_1997;
BgL_auxz00_1997 = 
(BgL_objectz00_bglt)(BgL_nodez00_1546); 
BgL_auxz00_1996 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1997); } 
BgL_auxz00_1878 = 
(((BgL_arithmeticzd2appzd2_bglt)CREF(BgL_auxz00_1996))->BgL_approxz00); } } 
return 
(obj_t)(BgL_auxz00_1878);} } } 
}



/* node-setup!-pre-arithmetic-app4112 */
obj_t BGl_nodezd2setupz12zd2prezd2arithmeticzd2app4112z12zzcfa_arithmeticz00(obj_t BgL_envz00_1758, obj_t BgL_nodez00_1759)
{ AN_OBJECT;
{ /* ./Cfa/arithmetic.scm 96 */
{ 
BgL_prezd2arithmeticzd2appz00_bglt BgL_nodez00_1488;
{ /* ./Cfa/arithmetic.scm 105 */
BgL_appz00_bglt BgL_auxz00_2003;
BgL_nodez00_1488 = 
(BgL_prezd2arithmeticzd2appz00_bglt)(BgL_nodez00_1759); 
{ /* ./Cfa/arithmetic.scm 107 */
BgL_variablez00_bglt BgL_fz00_1493;
{ /* ./Cfa/arithmetic.scm 107 */
BgL_varz00_bglt BgL_arg5023z00_1538;
{ /* ./Cfa/arithmetic.scm 107 */
BgL_appz00_bglt BgL_obj1719z00_1663;
BgL_obj1719z00_1663 = 
(BgL_appz00_bglt)(BgL_nodez00_1488); 
BgL_arg5023z00_1538 = 
(((BgL_appz00_bglt)CREF(BgL_obj1719z00_1663))->BgL_funz00); } 
BgL_fz00_1493 = 
(((BgL_varz00_bglt)CREF(BgL_arg5023z00_1538))->BgL_variablez00); } 
{ /* ./Cfa/arithmetic.scm 107 */
BgL_valuez00_bglt BgL_valz00_1494;
BgL_valz00_1494 = 
(((BgL_variablez00_bglt)CREF(BgL_fz00_1493))->BgL_valuez00); 
{ /* ./Cfa/arithmetic.scm 108 */

{ /* ./Cfa/arithmetic.scm 110 */
bool_t BgL_test4920z00_1495;
{ /* ./Cfa/arithmetic.scm 110 */
BgL_typez00_bglt BgL_arg4924z00_1496;
BgL_arg4924z00_1496 = 
(((BgL_variablez00_bglt)CREF(BgL_fz00_1493))->BgL_typez00); 
{ /* ./Cfa/arithmetic.scm 110 */
obj_t BgL_auxz00_2009;
BgL_auxz00_2009 = 
(obj_t)(BgL_arg4924z00_1496); 
BgL_test4920z00_1495 = 
(BgL_auxz00_2009==BGl_za2objza2z00zztype_cachez00); } } 
if(BgL_test4920z00_1495)
{ /* ./Cfa/arithmetic.scm 110 */
{ /* ./Cfa/arithmetic.scm 114 */
BgL_variablez00_bglt BgL_obj1099z00_1667;BgL_typez00_bglt BgL_val1098z00_1668;
BgL_obj1099z00_1667 = BgL_fz00_1493; 
BgL_val1098z00_1668 = 
(BgL_typez00_bglt)(BGl_za2_za2z00zztype_cachez00); 
((((BgL_variablez00_bglt)CREF(BgL_obj1099z00_1667))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1098z00_1668), BUNSPEC); } 
{ /* ./Cfa/arithmetic.scm 115 */
BgL_nodez00_bglt BgL_obj1563z00_1669;BgL_typez00_bglt BgL_val1562z00_1670;
BgL_obj1563z00_1669 = 
(BgL_nodez00_bglt)(BgL_nodez00_1488); 
BgL_val1562z00_1670 = 
(BgL_typez00_bglt)(BGl_za2_za2z00zztype_cachez00); 
((((BgL_nodez00_bglt)CREF(BgL_obj1563z00_1669))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1562z00_1670), BUNSPEC); } }  else 
{ /* ./Cfa/arithmetic.scm 110 */BFALSE; } } 
{ /* ./Cfa/arithmetic.scm 117 */
bool_t BgL_test4927z00_1497;
{ /* ./Cfa/arithmetic.scm 117 */
obj_t BgL_obj1425z00_1671;
BgL_obj1425z00_1671 = 
(obj_t)(BgL_valz00_1494); 
BgL_test4927z00_1497 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1425z00_1671, BGl_sfunz00zzast_varz00); } 
if(BgL_test4927z00_1497)
{ /* ./Cfa/arithmetic.scm 117 */
{ /* ./Cfa/arithmetic.scm 119 */
obj_t BgL_arg4929z00_1498;
{ /* ./Cfa/arithmetic.scm 119 */
obj_t BgL_l4093z00_1499;
{ /* ./Cfa/arithmetic.scm 119 */
BgL_sfunz00_bglt BgL_obj1367z00_1672;
BgL_obj1367z00_1672 = 
(BgL_sfunz00_bglt)(BgL_valz00_1494); 
BgL_l4093z00_1499 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1672))->BgL_argsz00); } 
{ /* ./Cfa/arithmetic.scm 119 */
bool_t BgL_test4931z00_1500;
BgL_test4931z00_1500 = 
NULLP(BgL_l4093z00_1499); 
if(BgL_test4931z00_1500)
{ /* ./Cfa/arithmetic.scm 119 */
BgL_arg4929z00_1498 = BNIL; }  else 
{ /* ./Cfa/arithmetic.scm 119 */
obj_t BgL_head4095z00_1501;
{ /* ./Cfa/arithmetic.scm 119 */
obj_t BgL_arg4952z00_1512;
{ /* ./Cfa/arithmetic.scm 119 */
obj_t BgL_arg4956z00_1514;
BgL_arg4956z00_1514 = 
CAR(BgL_l4093z00_1499); 
BgL_arg4952z00_1512 = 
BGl_unspecifiedzd2typezd2zzcfa_arithmeticz00(BgL_arg4956z00_1514); } 
BgL_head4095z00_1501 = 
MAKE_PAIR(BgL_arg4952z00_1512, BNIL); } 
{ 
obj_t BgL_l4093z00_1502;obj_t BgL_tail4096z00_1503;
{ /* ./Cfa/arithmetic.scm 119 */
obj_t BgL_arg4933z00_1505;
BgL_arg4933z00_1505 = 
CDR(BgL_l4093z00_1499); 
BgL_l4093z00_1502 = BgL_arg4933z00_1505; 
BgL_tail4096z00_1503 = BgL_head4095z00_1501; 
BgL_map4094z00_1504:
{ /* ./Cfa/arithmetic.scm 119 */
bool_t BgL_test4936z00_1506;
BgL_test4936z00_1506 = 
NULLP(BgL_l4093z00_1502); 
if(BgL_test4936z00_1506)
{ /* ./Cfa/arithmetic.scm 119 */
BgL_arg4929z00_1498 = BgL_head4095z00_1501; }  else 
{ /* ./Cfa/arithmetic.scm 119 */
obj_t BgL_newtail4097z00_1507;
{ /* ./Cfa/arithmetic.scm 119 */
obj_t BgL_arg4943z00_1509;
{ /* ./Cfa/arithmetic.scm 119 */
obj_t BgL_arg4947z00_1511;
BgL_arg4947z00_1511 = 
CAR(BgL_l4093z00_1502); 
BgL_arg4943z00_1509 = 
BGl_unspecifiedzd2typezd2zzcfa_arithmeticz00(BgL_arg4947z00_1511); } 
BgL_newtail4097z00_1507 = 
MAKE_PAIR(BgL_arg4943z00_1509, BNIL); } 
SET_CDR(BgL_tail4096z00_1503, BgL_newtail4097z00_1507); 
{ /* ./Cfa/arithmetic.scm 119 */
obj_t BgL_arg4939z00_1508;
BgL_arg4939z00_1508 = 
CDR(BgL_l4093z00_1502); 
{ 
obj_t BgL_tail4096z00_2037;obj_t BgL_l4093z00_2036;
BgL_l4093z00_2036 = BgL_arg4939z00_1508; 
BgL_tail4096z00_2037 = BgL_newtail4097z00_1507; 
BgL_tail4096z00_1503 = BgL_tail4096z00_2037; 
BgL_l4093z00_1502 = BgL_l4093z00_2036; 
goto BgL_map4094z00_1504;} } } } } } } } } 
{ /* ./Cfa/arithmetic.scm 118 */
BgL_sfunz00_bglt BgL_obj1369z00_1685;obj_t BgL_val1368z00_1686;
BgL_obj1369z00_1685 = 
(BgL_sfunz00_bglt)(BgL_valz00_1494); 
BgL_val1368z00_1686 = BgL_arg4929z00_1498; 
((((BgL_sfunz00_bglt)CREF(BgL_obj1369z00_1685))->BgL_argsz00) = ((obj_t)BgL_val1368z00_1686), BUNSPEC); } } }  else 
{ /* ./Cfa/arithmetic.scm 120 */
bool_t BgL_test4961z00_1515;
{ /* ./Cfa/arithmetic.scm 120 */
obj_t BgL_obj1489z00_1687;
BgL_obj1489z00_1687 = 
(obj_t)(BgL_valz00_1494); 
BgL_test4961z00_1515 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1489z00_1687, BGl_cfunz00zzast_varz00); } 
if(BgL_test4961z00_1515)
{ /* ./Cfa/arithmetic.scm 120 */
{ 
obj_t BgL_lz00_1516;
{ /* ./Cfa/arithmetic.scm 121 */
obj_t BgL_arg4963z00_1518;
{ /* ./Cfa/arithmetic.scm 121 */
BgL_cfunz00_bglt BgL_obj1445z00_1688;
BgL_obj1445z00_1688 = 
(BgL_cfunz00_bglt)(BgL_valz00_1494); 
BgL_arg4963z00_1518 = 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_1688))->BgL_argszd2typezd2); } 
BgL_lz00_1516 = BgL_arg4963z00_1518; 
BgL_loopz00_1517:
{ /* ./Cfa/arithmetic.scm 122 */
bool_t BgL_test4966z00_1519;
BgL_test4966z00_1519 = 
PAIRP(BgL_lz00_1516); 
if(BgL_test4966z00_1519)
{ /* ./Cfa/arithmetic.scm 123 */
obj_t BgL_arg4968z00_1520;
{ /* ./Cfa/arithmetic.scm 123 */
obj_t BgL_arg4971z00_1521;
BgL_arg4971z00_1521 = 
CAR(BgL_lz00_1516); 
BgL_arg4968z00_1520 = 
BGl_unspecifiedzd2typezd2zzcfa_arithmeticz00(BgL_arg4971z00_1521); } 
SET_CAR(BgL_lz00_1516, BgL_arg4968z00_1520); }  else 
{ /* ./Cfa/arithmetic.scm 124 */
obj_t BgL_arg4975z00_1522;
BgL_arg4975z00_1522 = 
CDR(BgL_lz00_1516); 
{ 
obj_t BgL_lz00_2051;
BgL_lz00_2051 = BgL_arg4975z00_1522; 
BgL_lz00_1516 = BgL_lz00_2051; 
goto BgL_loopz00_1517;} } } } } }  else 
{ /* ./Cfa/arithmetic.scm 120 */
{ /* ./Cfa/arithmetic.scm 126 */
obj_t BgL_objectz00_1696;
BgL_objectz00_1696 = 
(obj_t)(BgL_nodez00_1488); 
FAILURE(BGl_string5272z00zzcfa_arithmeticz00,BGl_string5273z00zzcfa_arithmeticz00,BgL_objectz00_1696);} } } } 
{ /* ./Cfa/arithmetic.scm 127 */
obj_t BgL_auxz00_2054;
BgL_auxz00_2054 = 
(obj_t)(BgL_nodez00_1488); 
BGl_za2arithmeticzd2nodesza2zd2zzcfa_arithmeticz00 = 
MAKE_PAIR(BgL_auxz00_2054, BGl_za2arithmeticzd2nodesza2zd2zzcfa_arithmeticz00); } 
{ /* ./Cfa/arithmetic.scm 129 */
obj_t BgL_arg4984z00_1523;
{ /* ./Cfa/arithmetic.scm 129 */
BgL_appz00_bglt BgL_obj1722z00_1697;
BgL_obj1722z00_1697 = 
(BgL_appz00_bglt)(BgL_nodez00_1488); 
BgL_arg4984z00_1523 = 
(((BgL_appz00_bglt)CREF(BgL_obj1722z00_1697))->BgL_argsz00); } 
BGl_nodezd2setupza2z12z62zzcfa_setupz00(BgL_arg4984z00_1523); } 
{ /* ./Cfa/arithmetic.scm 130 */
obj_t BgL_speczd2typeszd2_1524;
{ 
obj_t BgL_auxz00_2060;
{ /* ./Cfa/arithmetic.scm 130 */
BgL_objectz00_bglt BgL_auxz00_2061;
BgL_auxz00_2061 = 
(BgL_objectz00_bglt)(BgL_nodez00_1488); 
BgL_auxz00_2060 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2061); } 
BgL_speczd2typeszd2_1524 = 
(((BgL_prezd2arithmeticzd2appz00_bglt)CREF(BgL_auxz00_2060))->BgL_speczd2typeszd2); } 
{ /* ./Cfa/arithmetic.scm 130 */
BgL_prezd2arithmeticzd2appz00_bglt BgL_nodez00_1525;
{ /* ./Cfa/arithmetic.scm 131 */
long BgL_arg5010z00_1535;
{ /* ./Cfa/arithmetic.scm 131 */
obj_t BgL_arg5013z00_1536;
{ /* ./Cfa/arithmetic.scm 131 */
obj_t BgL_arg5016z00_1537;
{ /* ./Cfa/arithmetic.scm 131 */
BgL_objectz00_bglt BgL_objectz00_1699;
BgL_objectz00_1699 = 
(BgL_objectz00_bglt)(BgL_nodez00_1488); 
{ /* ./Cfa/arithmetic.scm 131 */
long BgL_arg2036z00_1700;
{ /* ./Cfa/arithmetic.scm 131 */
long BgL_arg2039z00_1701;
BgL_arg2039z00_1701 = 
BGL_OBJECT_CLASS_NUM(BgL_objectz00_1699); 
BgL_arg2036z00_1700 = 
(BgL_arg2039z00_1701-OBJECT_TYPE); } 
{ /* ./Cfa/arithmetic.scm 131 */
obj_t BgL_vectorz00_1705;int BgL_kz00_1706;
BgL_vectorz00_1705 = BGl_za2classesza2z00zz__objectz00; 
BgL_kz00_1706 = 
(int)(BgL_arg2036z00_1700); 
BgL_arg5016z00_1537 = 
VECTOR_REF(BgL_vectorz00_1705,BgL_kz00_1706); } } } 
BgL_arg5013z00_1536 = 
BGl_classzd2superzd2zz__objectz00(BgL_arg5016z00_1537); } 
BgL_arg5010z00_1535 = 
BGl_classzd2numzd2zz__objectz00(BgL_arg5013z00_1536); } 
{ /* ./Cfa/arithmetic.scm 131 */
BgL_objectz00_bglt BgL_objz00_1707;
BgL_objz00_1707 = 
(BgL_objectz00_bglt)(BgL_nodez00_1488); 
BGL_OBJECT_CLASS_NUM_SET(BgL_objz00_1707, BgL_arg5010z00_1535); } } 
{ /* ./Cfa/arithmetic.scm 131 */
BgL_objectz00_bglt BgL_auxz00_2074;
BgL_auxz00_2074 = 
(BgL_objectz00_bglt)(BgL_nodez00_1488); 
BGL_OBJECT_WIDENING_SET(BgL_auxz00_2074, BFALSE); } 
BgL_nodez00_1525 = BgL_nodez00_1488; 
{ /* ./Cfa/arithmetic.scm 131 */

{ /* ./Cfa/arithmetic.scm 132 */
BgL_appz00_bglt BgL_obj4099z00_1526;
{ 
BgL_appz00_bglt BgL_auxz00_2077;
BgL_auxz00_2077 = 
(BgL_appz00_bglt)(BgL_nodez00_1525); 
BgL_obj4099z00_1526 = 
((BgL_appz00_bglt)BgL_auxz00_2077); } 
{ /* ./Cfa/arithmetic.scm 134 */
obj_t BgL_arg4988z00_1527;
{ /* ./Cfa/arithmetic.scm 134 */
BgL_approxz00_bglt BgL_arg4991z00_1528;obj_t BgL_arg4992z00_1529;
{ /* ./Cfa/arithmetic.scm 134 */
bool_t BgL_test4994z00_1530;
{ /* ./Cfa/arithmetic.scm 134 */
BgL_typez00_bglt BgL_arg5001z00_1532;
BgL_arg5001z00_1532 = 
(((BgL_variablez00_bglt)CREF(BgL_fz00_1493))->BgL_typez00); 
{ /* ./Cfa/arithmetic.scm 134 */
obj_t BgL_auxz00_2081;
BgL_auxz00_2081 = 
(obj_t)(BgL_arg5001z00_1532); 
BgL_test4994z00_1530 = 
(BgL_auxz00_2081==BGl_za2_za2z00zztype_cachez00); } } 
if(BgL_test4994z00_1530)
{ /* ./Cfa/arithmetic.scm 134 */
BgL_arg4991z00_1528 = 
BGl_makezd2emptyzd2approxz00zzcfa_approxz00(); }  else 
{ /* ./Cfa/arithmetic.scm 136 */
BgL_typez00_bglt BgL_arg4997z00_1531;
BgL_arg4997z00_1531 = 
(((BgL_variablez00_bglt)CREF(BgL_fz00_1493))->BgL_typez00); 
BgL_arg4991z00_1528 = 
BGl_makezd2typezd2approxz00zzcfa_approxz00(BgL_arg4997z00_1531); } } 
BgL_arg4992z00_1529 = BgL_speczd2typeszd2_1524; 
BgL_arg4988z00_1527 = 
BGl_wideningzd2arithmeticzd2appz00zzcfa_info2z00(BgL_arg4991z00_1528, BgL_arg4992z00_1529); } 
{ /* ./Cfa/arithmetic.scm 132 */
BgL_objectz00_bglt BgL_auxz00_2089;
BgL_auxz00_2089 = 
(BgL_objectz00_bglt)(BgL_obj4099z00_1526); 
BGL_OBJECT_WIDENING_SET(BgL_auxz00_2089, BgL_arg4988z00_1527); } } 
{ /* ./Cfa/arithmetic.scm 132 */
long BgL_arg5005z00_1533;
BgL_arg5005z00_1533 = 
BGl_classzd2numzd2zz__objectz00(BGl_arithmeticzd2appzd2zzcfa_info2z00); 
{ /* ./Cfa/arithmetic.scm 132 */
BgL_objectz00_bglt BgL_objz00_1711;
BgL_objz00_1711 = 
(BgL_objectz00_bglt)(BgL_obj4099z00_1526); 
BGL_OBJECT_CLASS_NUM_SET(BgL_objz00_1711, BgL_arg5005z00_1533); } } 
{ /* ./Cfa/arithmetic.scm 132 */
obj_t BgL_objz00_1713;
BgL_objz00_1713 = 
(obj_t)(BgL_obj4099z00_1526); 
BGL_HEAP_DEBUG_MARK_OBJ(BgL_objz00_1713); BUNSPEC; } 
BgL_auxz00_2003 = BgL_obj4099z00_1526; } } } } } } } 
return 
(obj_t)(BgL_auxz00_2003);} } } 
}



/* unspecified-type */
obj_t BGl_unspecifiedzd2typezd2zzcfa_arithmeticz00(obj_t BgL_lz00_1539)
{ AN_OBJECT;
{ /* ./Cfa/arithmetic.scm 105 */
{ /* ./Cfa/arithmetic.scm 99 */
bool_t BgL_test5027z00_1541;
BgL_test5027z00_1541 = 
BGl_iszd2azf3z21zz__objectz00(BgL_lz00_1539, BGl_typez00zztype_typez00); 
if(BgL_test5027z00_1541)
{ /* ./Cfa/arithmetic.scm 99 */
return BGl_za2_za2z00zztype_cachez00;}  else 
{ /* ./Cfa/arithmetic.scm 101 */
bool_t BgL_test5028z00_1542;
BgL_test5028z00_1542 = 
BGl_iszd2azf3z21zz__objectz00(BgL_lz00_1539, BGl_localz00zzast_varz00); 
if(BgL_test5028z00_1542)
{ /* ./Cfa/arithmetic.scm 101 */
{ /* ./Cfa/arithmetic.scm 102 */
BgL_variablez00_bglt BgL_obj1099z00_1716;BgL_typez00_bglt BgL_val1098z00_1717;
BgL_obj1099z00_1716 = 
(BgL_variablez00_bglt)(BgL_lz00_1539); 
BgL_val1098z00_1717 = 
(BgL_typez00_bglt)(BGl_za2_za2z00zztype_cachez00); 
((((BgL_variablez00_bglt)CREF(BgL_obj1099z00_1716))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1098z00_1717), BUNSPEC); } 
return BgL_lz00_1539;}  else 
{ /* ./Cfa/arithmetic.scm 101 */
return BgL_lz00_1539;} } } } 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzcfa_arithmeticz00()
{ AN_OBJECT;
{ /* ./Cfa/arithmetic.scm 28 */
BGl_modulezd2initializa7ationz75zztools_tracez00(((long)59211), "cfa_arithmetic"); 
BGl_modulezd2initializa7ationz75zztools_errorz00(((long)25566), "cfa_arithmetic"); 
BGl_modulezd2initializa7ationz75zztools_shapez00(((long)30833), "cfa_arithmetic"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "cfa_arithmetic"); 
BGl_modulezd2initializa7ationz75zztype_cachez00(((long)25848), "cfa_arithmetic"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "cfa_arithmetic"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "cfa_arithmetic"); 
BGl_modulezd2initializa7ationz75zzcfa_infoz00(((long)2565), "cfa_arithmetic"); 
BGl_modulezd2initializa7ationz75zzcfa_info2z00(((long)0), "cfa_arithmetic"); 
BGl_modulezd2initializa7ationz75zzcfa_loosez00(((long)78579), "cfa_arithmetic"); 
BGl_modulezd2initializa7ationz75zzcfa_iteratez00(((long)17824), "cfa_arithmetic"); 
BGl_modulezd2initializa7ationz75zzcfa_cfaz00(((long)65191), "cfa_arithmetic"); 
BGl_modulezd2initializa7ationz75zzcfa_setupz00(((long)47065), "cfa_arithmetic"); 
BGl_modulezd2initializa7ationz75zzcfa_approxz00(((long)43477), "cfa_arithmetic"); 
return 
BGl_modulezd2initializa7ationz75zzcfa_tvectorz00(((long)20474), "cfa_arithmetic");} 
}

