/*===========================================================================*/
/*   (SawMill/woodcutter.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 SawMill/woodcutter.scm)*/
/* GC selection */
#define THE_GC BOEHM_GC

#include <bigloo.h>


/* Object type definitions */
typedef struct BgL_typez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   obj_t BgL_siza7eza7;
   obj_t BgL_classz00;
   obj_t BgL_coercezd2tozd2;
   obj_t BgL_parentsz00;
   bool_t BgL_initzf3zf3;
   bool_t BgL_magiczf3zf3;
   obj_t BgL_z42z42;
   obj_t BgL_aliasz00;
   obj_t BgL_pointedzd2tozd2byz00;
   obj_t BgL_tvectorz00;
   obj_t BgL_locationz00;
   obj_t BgL_importzd2locationzd2;
} *BgL_typez00_bglt;

typedef struct BgL_valuez00_bgl {
   header_t header;
   obj_t widening;
} *BgL_valuez00_bglt;

typedef struct BgL_variablez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_valuez00_bgl * BgL_valuez00;
   obj_t BgL_accessz00;
   obj_t BgL_fastzd2alphazd2;
   obj_t BgL_removablez00;
   long BgL_occurrencez00;
} *BgL_variablez00_bglt;

typedef struct BgL_globalz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_valuez00_bgl * BgL_valuez00;
   obj_t BgL_accessz00;
   obj_t BgL_fastzd2alphazd2;
   obj_t BgL_removablez00;
   long BgL_occurrencez00;
   obj_t BgL_modulez00;
   obj_t BgL_importz00;
   bool_t BgL_evaluablezf3zf3;
   bool_t BgL_libraryzf3zf3;
   bool_t BgL_userzf3zf3;
   obj_t BgL_pragmaz00;
   obj_t BgL_srcz00;
   obj_t BgL_jvmzd2typezd2namez00;
} *BgL_globalz00_bglt;

typedef struct BgL_localz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_valuez00_bgl * BgL_valuez00;
   obj_t BgL_accessz00;
   obj_t BgL_fastzd2alphazd2;
   obj_t BgL_removablez00;
   long BgL_occurrencez00;
   bool_t BgL_userzf3zf3;
   long BgL_keyz00;
} *BgL_localz00_bglt;

typedef struct BgL_funz00_bgl {
   header_t header;
   obj_t widening;
   long BgL_arityz00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_predicatezd2ofzd2;
   obj_t BgL_stackzd2allocatorzd2;
   bool_t BgL_topzf3zf3;
   obj_t BgL_thezd2closurezd2;
   obj_t BgL_effectz00;
} *BgL_funz00_bglt;

typedef struct BgL_sfunz00_bgl {
   header_t header;
   obj_t widening;
   long BgL_arityz00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_predicatezd2ofzd2;
   obj_t BgL_stackzd2allocatorzd2;
   bool_t BgL_topzf3zf3;
   obj_t BgL_thezd2closurezd2;
   obj_t BgL_effectz00;
   obj_t BgL_propertyz00;
   obj_t BgL_argsz00;
   obj_t BgL_bodyz00;
   obj_t BgL_classz00;
   obj_t BgL_dssslzd2keywordszd2;
   obj_t BgL_locz00;
} *BgL_sfunz00_bglt;

typedef struct BgL_cfunz00_bgl {
   header_t header;
   obj_t widening;
   long BgL_arityz00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_predicatezd2ofzd2;
   obj_t BgL_stackzd2allocatorzd2;
   bool_t BgL_topzf3zf3;
   obj_t BgL_thezd2closurezd2;
   obj_t BgL_effectz00;
   obj_t BgL_argszd2typezd2;
   bool_t BgL_macrozf3zf3;
   bool_t BgL_infixzf3zf3;
   obj_t BgL_methodz00;
} *BgL_cfunz00_bglt;

typedef struct BgL_svarz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
} *BgL_svarz00_bglt;

typedef struct BgL_scnstz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_nodez00;
   obj_t BgL_classz00;
   obj_t BgL_locz00;
} *BgL_scnstz00_bglt;

typedef struct BgL_cvarz00_bgl {
   header_t header;
   obj_t widening;
   bool_t BgL_macrozf3zf3;
} *BgL_cvarz00_bglt;

typedef struct BgL_sexitz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_handlerz00;
   bool_t BgL_detachedzf3zf3;
} *BgL_sexitz00_bglt;

typedef struct BgL_feffectz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_readz00;
   obj_t BgL_writez00;
} *BgL_feffectz00_bglt;

typedef struct BgL_nodez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
} *BgL_nodez00_bglt;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

typedef struct BgL_tclassz00_bgl {
   obj_t BgL_itszd2superzd2;
   obj_t BgL_slotsz00;
   struct BgL_globalz00_bgl * BgL_holderz00;
   obj_t BgL_wideningz00;
   long BgL_depthz00;
   bool_t BgL_finalzf3zf3;
   obj_t BgL_constructorz00;
   obj_t BgL_virtualzd2slotszd2numberz00;
   bool_t BgL_abstractzf3zf3;
   obj_t BgL_widezd2typezd2;
} *BgL_tclassz00_bglt;

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

typedef struct BgL_wclassz00_bgl {
   obj_t BgL_itszd2classzd2;
} *BgL_wclassz00_bglt;

typedef struct BgL_ccompz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_producerz00;
   obj_t BgL_consumerz00;
   obj_t BgL_finaliza7erza7;
} *BgL_ccompz00_bglt;

typedef struct BgL_backendz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_languagez00;
   obj_t BgL_namez00;
   obj_t BgL_externzd2variableszd2;
   obj_t BgL_externzd2functionszd2;
   obj_t BgL_externzd2typeszd2;
   obj_t BgL_variablesz00;
   obj_t BgL_functionsz00;
   obj_t BgL_typesz00;
} *BgL_backendz00_bglt;

typedef struct BgL_cvmz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_languagez00;
   obj_t BgL_namez00;
   obj_t BgL_externzd2variableszd2;
   obj_t BgL_externzd2functionszd2;
   obj_t BgL_externzd2typeszd2;
   obj_t BgL_variablesz00;
   obj_t BgL_functionsz00;
   obj_t BgL_typesz00;
} *BgL_cvmz00_bglt;

typedef struct BgL_sawcz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_languagez00;
   obj_t BgL_namez00;
   obj_t BgL_externzd2variableszd2;
   obj_t BgL_externzd2functionszd2;
   obj_t BgL_externzd2typeszd2;
   obj_t BgL_variablesz00;
   obj_t BgL_functionsz00;
   obj_t BgL_typesz00;
} *BgL_sawcz00_bglt;

typedef struct BgL_cgenz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_languagez00;
   obj_t BgL_namez00;
   obj_t BgL_externzd2variableszd2;
   obj_t BgL_externzd2functionszd2;
   obj_t BgL_externzd2typeszd2;
   obj_t BgL_variablesz00;
   obj_t BgL_functionsz00;
   obj_t BgL_typesz00;
} *BgL_cgenz00_bglt;

typedef struct BgL_jvmz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_languagez00;
   obj_t BgL_namez00;
   obj_t BgL_externzd2variableszd2;
   obj_t BgL_externzd2functionszd2;
   obj_t BgL_externzd2typeszd2;
   obj_t BgL_variablesz00;
   obj_t BgL_functionsz00;
   obj_t BgL_typesz00;
   obj_t BgL_qnamez00;
   obj_t BgL_classesz00;
   obj_t BgL_currentzd2classzd2;
   obj_t BgL_declarationsz00;
   obj_t BgL_fieldsz00;
   obj_t BgL_methodsz00;
   obj_t BgL_currentzd2methodzd2;
   obj_t BgL_codez00;
} *BgL_jvmz00_bglt;

typedef struct BgL_dotnetz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_languagez00;
   obj_t BgL_namez00;
   obj_t BgL_externzd2variableszd2;
   obj_t BgL_externzd2functionszd2;
   obj_t BgL_externzd2typeszd2;
   obj_t BgL_variablesz00;
   obj_t BgL_functionsz00;
   obj_t BgL_typesz00;
   obj_t BgL_outz00;
   obj_t BgL_qnamez00;
} *BgL_dotnetz00_bglt;

typedef struct BgL_rtl_regz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_varz00;
} *BgL_rtl_regz00_bglt;

typedef struct BgL_rtl_funz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_funz00_bglt;

typedef struct BgL_rtl_lastz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_lastz00_bglt;

typedef struct BgL_rtl_returnz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_typez00_bgl * BgL_typez00;
} *BgL_rtl_returnz00_bglt;

typedef struct BgL_rtl_jumpexitz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_jumpexitz00_bglt;

typedef struct BgL_rtl_failz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_failz00_bglt;

typedef struct BgL_rtl_notseqz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_notseqz00_bglt;

typedef struct BgL_rtl_ifz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_ifz00_bglt;

typedef struct BgL_rtl_selectz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_patternsz00;
} *BgL_rtl_selectz00_bglt;

typedef struct BgL_rtl_switchz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_patternsz00;
   obj_t BgL_labelsz00;
} *BgL_rtl_switchz00_bglt;

typedef struct BgL_rtl_ifeqz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_blockz00_bgl * BgL_thenz00;
} *BgL_rtl_ifeqz00_bglt;

typedef struct BgL_rtl_ifnez00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_blockz00_bgl * BgL_thenz00;
} *BgL_rtl_ifnez00_bglt;

typedef struct BgL_rtl_goz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_blockz00_bgl * BgL_toz00;
} *BgL_rtl_goz00_bglt;

typedef struct BgL_rtl_purez00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_purez00_bglt;

typedef struct BgL_rtl_nopz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_nopz00_bglt;

typedef struct BgL_rtl_movz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_movz00_bglt;

typedef struct BgL_rtl_loadiz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_atomz00_bgl * BgL_constantz00;
} *BgL_rtl_loadiz00_bglt;

typedef struct BgL_rtl_loadgz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_globalz00_bgl * BgL_varz00;
} *BgL_rtl_loadgz00_bglt;

typedef struct BgL_rtl_loadfunz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_globalz00_bgl * BgL_varz00;
} *BgL_rtl_loadfunz00_bglt;

typedef struct BgL_rtl_globalrefz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_globalz00_bgl * BgL_varz00;
} *BgL_rtl_globalrefz00_bglt;

typedef struct BgL_rtl_getfieldz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_namez00;
   struct BgL_typez00_bgl * BgL_objtypez00;
   struct BgL_typez00_bgl * BgL_typez00;
} *BgL_rtl_getfieldz00_bglt;

typedef struct BgL_rtl_vallocz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_typez00_bgl * BgL_vtypez00;
} *BgL_rtl_vallocz00_bglt;

typedef struct BgL_rtl_vrefz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_typez00_bgl * BgL_vtypez00;
} *BgL_rtl_vrefz00_bglt;

typedef struct BgL_rtl_vlengthz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_typez00_bgl * BgL_typez00;
} *BgL_rtl_vlengthz00_bglt;

typedef struct BgL_rtl_isaz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_typez00_bgl * BgL_typez00;
} *BgL_rtl_isaz00_bglt;

typedef struct BgL_rtl_makeboxz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_makeboxz00_bglt;

typedef struct BgL_rtl_boxrefz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_boxrefz00_bglt;

typedef struct BgL_rtl_effectz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_effectz00_bglt;

typedef struct BgL_rtl_storegz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_globalz00_bgl * BgL_varz00;
} *BgL_rtl_storegz00_bglt;

typedef struct BgL_rtl_setfieldz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_namez00;
   struct BgL_typez00_bgl * BgL_objtypez00;
   struct BgL_typez00_bgl * BgL_typez00;
} *BgL_rtl_setfieldz00_bglt;

typedef struct BgL_rtl_vsetz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_typez00_bgl * BgL_vtypez00;
} *BgL_rtl_vsetz00_bglt;

typedef struct BgL_rtl_boxsetz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_boxsetz00_bglt;

typedef struct BgL_rtl_newz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_typez00_bgl * BgL_typez00;
} *BgL_rtl_newz00_bglt;

typedef struct BgL_rtl_callz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_globalz00_bgl * BgL_varz00;
} *BgL_rtl_callz00_bglt;

typedef struct BgL_rtl_applyz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_applyz00_bglt;

typedef struct BgL_rtl_lightfuncallz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_lightfuncallz00_bglt;

typedef struct BgL_rtl_funcallz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_funcallz00_bglt;

typedef struct BgL_rtl_pragmaz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_formatz00;
} *BgL_rtl_pragmaz00_bglt;

typedef struct BgL_rtl_castz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_typez00_bgl * BgL_typez00;
} *BgL_rtl_castz00_bglt;

typedef struct BgL_rtl_protectz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_protectz00_bglt;

typedef struct BgL_rtl_protectedz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_rtl_protectedz00_bglt;

typedef struct BgL_stl_loadrz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_rtl_regz00_bgl * BgL_regz00;
} *BgL_stl_loadrz00_bglt;

typedef struct BgL_stl_storerz00_bgl {
   header_t header;
   obj_t widening;
   struct BgL_rtl_regz00_bgl * BgL_regz00;
} *BgL_stl_storerz00_bglt;

typedef struct BgL_stl_popz00_bgl {
   header_t header;
   obj_t widening;
} *BgL_stl_popz00_bglt;

typedef struct BgL_rtl_insz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   obj_t BgL_destz00;
   struct BgL_rtl_funz00_bgl * BgL_funz00;
   obj_t BgL_argsz00;
} *BgL_rtl_insz00_bglt;

typedef struct BgL_blockz00_bgl {
   header_t header;
   obj_t widening;
   int BgL_labelz00;
   obj_t BgL_predsz00;
   obj_t BgL_succsz00;
   obj_t BgL_firstz00;
} *BgL_blockz00_bglt;


static obj_t BGl_methodzd2initzd2zzsaw_woodcutterz00();
extern BgL_blockz00_bglt BGl_globalzd2ze3rtlz31zzsaw_node2rtlz00(BgL_globalz00_bglt);
static bool_t BGl_za2collapseza2z00zzsaw_woodcutterz00;
static obj_t BGl__globalzd2ze3blocks4466z31zzsaw_woodcutterz00(obj_t, obj_t, obj_t);
static bool_t BGl_za2saw_inline_returnsza2z00zzsaw_woodcutterz00;
extern obj_t BGl_collapsez00zzsaw_collapsez00(BgL_blockz00_bglt);
static bool_t BGl_za2backendza2z00zzsaw_woodcutterz00;
extern obj_t BGl_blockzd2orderingzd2zzsaw_blockorderz00(BgL_blockz00_bglt);
static obj_t BGl_importedzd2moduleszd2initz00zzsaw_woodcutterz00();
extern obj_t BGl_addzd2gotoszd2zzsaw_gotosz00(obj_t);
extern BgL_blockz00_bglt BGl_removez00zzsaw_removez00(BgL_blockz00_bglt);
static bool_t BGl_za2castza2z00zzsaw_woodcutterz00;
static obj_t BGl_toplevelzd2initzd2zzsaw_woodcutterz00();
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzsaw_woodcutterz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_envz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzobject_classz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzmodule_modulez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzbackend_backendz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzsaw_defsz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzsaw_node2rtlz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzsaw_collapsez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzsaw_removez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzsaw_inline_returnz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzsaw_blockorderz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzsaw_gotosz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzsaw_castz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
static bool_t BGl_za2removeza2z00zzsaw_woodcutterz00;
BGL_EXPORTED_DECL obj_t BGl_globalzd2ze3blocksz31zzsaw_woodcutterz00(BgL_backendz00_bglt, BgL_globalz00_bglt);
extern obj_t BGl_inlinezd2returnszd2zzsaw_inline_returnz00(BgL_blockz00_bglt);
extern obj_t BGl_addzd2castszd2zzsaw_castz00(BgL_backendz00_bglt, obj_t);
static obj_t BGl_requirezd2initializa7ationz75zzsaw_woodcutterz00 = BUNSPEC;
static obj_t BGl_libraryzd2moduleszd2initz00zzsaw_woodcutterz00();
static obj_t *__cnst;


DEFINE_EXPORT_PROCEDURE( BGl_globalzd2ze3blockszd2envze3zzsaw_woodcutterz00, BgL_bgl__globalza7d2za7e3blocks4466za731za7za7saw_woodcutterza7004484z00, BGl__globalzd2ze3blocks4466z31zzsaw_woodcutterz00, 0L, 2 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzsaw_woodcutterz00(long BgL_checksumz00_1677, char * BgL_fromz00_1678)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzsaw_woodcutterz00))
{ 
BGl_requirezd2initializa7ationz75zzsaw_woodcutterz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzsaw_woodcutterz00(); 
BGl_importedzd2moduleszd2initz00zzsaw_woodcutterz00(); 
BGl_toplevelzd2initzd2zzsaw_woodcutterz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzsaw_woodcutterz00()
{ AN_OBJECT;
{ /* ./SawMill/woodcutter.scm 1 */
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "saw_woodcutter"); 
return BUNSPEC;} 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzsaw_woodcutterz00()
{ AN_OBJECT;
{ /* ./SawMill/woodcutter.scm 1 */
BGl_za2backendza2z00zzsaw_woodcutterz00 = ((bool_t)0); 
BGl_za2collapseza2z00zzsaw_woodcutterz00 = ((bool_t)1); 
BGl_za2removeza2z00zzsaw_woodcutterz00 = ((bool_t)1); 
BGl_za2saw_inline_returnsza2z00zzsaw_woodcutterz00 = ((bool_t)1); 
return ( 
BGl_za2castza2z00zzsaw_woodcutterz00 = ((bool_t)1), BUNSPEC) ;} 
}



/* global->blocks */
BGL_EXPORTED_DEF obj_t BGl_globalzd2ze3blocksz31zzsaw_woodcutterz00(BgL_backendz00_bglt BgL_backz00_1, BgL_globalz00_bglt BgL_vz00_2)
{ AN_OBJECT;
{ /* ./SawMill/woodcutter.scm 35 */
{ /* ./SawMill/woodcutter.scm 38 */
BgL_blockz00_bglt BgL_bz00_1088;
BgL_bz00_1088 = 
BGl_globalzd2ze3rtlz31zzsaw_node2rtlz00(BgL_vz00_2); 
BGl_collapsez00zzsaw_collapsez00(BgL_bz00_1088); 
BgL_bz00_1088 = 
BGl_removez00zzsaw_removez00(BgL_bz00_1088); 
BGl_inlinezd2returnszd2zzsaw_inline_returnz00(BgL_bz00_1088); 
{ /* ./SawMill/woodcutter.scm 42 */
obj_t BgL_lz00_1089;
BgL_lz00_1089 = 
BGl_blockzd2orderingzd2zzsaw_blockorderz00(BgL_bz00_1088); 
{ 
long BgL_iz00_1090;obj_t BgL_lz00_1091;
BgL_iz00_1090 = ((long)0); 
BgL_lz00_1091 = BgL_lz00_1089; 
BgL_markz00_1092:
{ /* ./SawMill/woodcutter.scm 44 */
bool_t BgL_test3715z00_1093;
BgL_test3715z00_1093 = 
PAIRP(BgL_lz00_1091); 
if(BgL_test3715z00_1093)
{ /* ./SawMill/woodcutter.scm 44 */
{ /* ./SawMill/woodcutter.scm 45 */
obj_t BgL_arg3717z00_1094;
BgL_arg3717z00_1094 = 
CAR(BgL_lz00_1091); 
{ /* ./SawMill/woodcutter.scm 45 */
BgL_blockz00_bglt BgL_obj3685z00_1669;int BgL_val3684z00_1670;
BgL_obj3685z00_1669 = 
(BgL_blockz00_bglt)(BgL_arg3717z00_1094); 
BgL_val3684z00_1670 = 
(int)(BgL_iz00_1090); 
((((BgL_blockz00_bglt)CREF(BgL_obj3685z00_1669))->BgL_labelz00) = ((int)BgL_val3684z00_1670), BUNSPEC); } } 
{ /* ./SawMill/woodcutter.scm 46 */
long BgL_arg3721z00_1095;obj_t BgL_arg3722z00_1096;
BgL_arg3721z00_1095 = 
(BgL_iz00_1090+((long)1)); 
BgL_arg3722z00_1096 = 
CDR(BgL_lz00_1091); 
{ 
obj_t BgL_lz00_1700;long BgL_iz00_1699;
BgL_iz00_1699 = BgL_arg3721z00_1095; 
BgL_lz00_1700 = BgL_arg3722z00_1096; 
BgL_lz00_1091 = BgL_lz00_1700; 
BgL_iz00_1090 = BgL_iz00_1699; 
goto BgL_markz00_1092;} } }  else 
{ /* ./SawMill/woodcutter.scm 44 */((bool_t)0); } } } 
BGl_addzd2gotoszd2zzsaw_gotosz00(BgL_lz00_1089); 
BGl_addzd2castszd2zzsaw_castz00(BgL_backz00_1, BgL_lz00_1089); 
return BgL_lz00_1089;} } } 
}



/* _global->blocks4466 */
obj_t BGl__globalzd2ze3blocks4466z31zzsaw_woodcutterz00(obj_t BgL_envz00_1674, obj_t BgL_backz00_1675, obj_t BgL_vz00_1676)
{ AN_OBJECT;
{ /* ./SawMill/woodcutter.scm 35 */
return 
BGl_globalzd2ze3blocksz31zzsaw_woodcutterz00(
(BgL_backendz00_bglt)(BgL_backz00_1675), 
(BgL_globalz00_bglt)(BgL_vz00_1676));} 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzsaw_woodcutterz00()
{ AN_OBJECT;
{ /* ./SawMill/woodcutter.scm 1 */
return BUNSPEC;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzsaw_woodcutterz00()
{ AN_OBJECT;
{ /* ./SawMill/woodcutter.scm 1 */
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "saw_woodcutter"); 
BGl_modulezd2initializa7ationz75zztype_cachez00(((long)25848), "saw_woodcutter"); 
BGl_modulezd2initializa7ationz75zzast_envz00(((long)62031), "saw_woodcutter"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "saw_woodcutter"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "saw_woodcutter"); 
BGl_modulezd2initializa7ationz75zzobject_classz00(((long)30791), "saw_woodcutter"); 
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "saw_woodcutter"); 
BGl_modulezd2initializa7ationz75zzmodule_modulez00(((long)8699), "saw_woodcutter"); 
BGl_modulezd2initializa7ationz75zzbackend_backendz00(((long)3428), "saw_woodcutter"); 
BGl_modulezd2initializa7ationz75zzsaw_defsz00(((long)12736), "saw_woodcutter"); 
BGl_modulezd2initializa7ationz75zzsaw_node2rtlz00(((long)27814), "saw_woodcutter"); 
BGl_modulezd2initializa7ationz75zzsaw_collapsez00(((long)37933), "saw_woodcutter"); 
BGl_modulezd2initializa7ationz75zzsaw_removez00(((long)18672), "saw_woodcutter"); 
BGl_modulezd2initializa7ationz75zzsaw_inline_returnz00(((long)45684), "saw_woodcutter"); 
BGl_modulezd2initializa7ationz75zzsaw_blockorderz00(((long)10554), "saw_woodcutter"); 
BGl_modulezd2initializa7ationz75zzsaw_gotosz00(((long)62492), "saw_woodcutter"); 
return 
BGl_modulezd2initializa7ationz75zzsaw_castz00(((long)61771), "saw_woodcutter");} 
}

