/*===========================================================================*/
/*   (SawMill/cast.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/cast.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_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_addzd2castzd2argsz00zzsaw_castz00(BgL_backendz00_bglt, BgL_rtl_funz00_bglt, obj_t, obj_t, obj_t);
static obj_t BGl_methodzd2initzd2zzsaw_castz00();
static obj_t BGl__typezd2destzd2default3706z00zzsaw_castz00(obj_t, obj_t, obj_t);
BGL_IMPORT obj_t open_input_string(obj_t);
extern obj_t BGl_rtl_vlengthz00zzsaw_defsz00;
extern obj_t BGl_rtl_castz00zzsaw_defsz00;
static obj_t BGl__typezd2argszd2default3734z00zzsaw_castz00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
BGL_IMPORT bool_t BGl_iszd2azf3z21zz__objectz00(obj_t, obj_t);
static obj_t BGl_typezd2argszd2rtl_vlength3745z00zzsaw_castz00(obj_t, obj_t);
static obj_t BGl_typezd2argszd2rtl_boxref3759z00zzsaw_castz00(obj_t, obj_t);
static obj_t BGl_typezd2argszd2rtl_apply3757z00zzsaw_castz00(obj_t, obj_t);
static obj_t BGl__typezd2argszd2zzsaw_castz00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_addzd2genericz12zc0zz__objectz00(obj_t, obj_t);
extern obj_t BGl_tclassz00zzobject_classz00;
static obj_t BGl_typezd2destzd2rtl_mov3711z00zzsaw_castz00(obj_t, obj_t, obj_t);
extern obj_t BGl_backendzd2subtypezf3z21zzbackend_backendz00(BgL_backendz00_bglt, BgL_typez00_bglt, BgL_typez00_bglt);
extern BgL_rtl_regz00_bglt BGl_makezd2rtl_regzd2zzsaw_defsz00(BgL_typez00_bglt, obj_t);
extern obj_t BGl_rtl_vallocz00zzsaw_defsz00;
extern BgL_rtl_castz00_bglt BGl_makezd2rtl_castzd2zzsaw_defsz00(BgL_typez00_bglt);
static obj_t BGl_addzd2castszd2insz00zzsaw_castz00(BgL_backendz00_bglt, obj_t);
static obj_t BGl_typezd2destzd2rtl_vlength3727z00zzsaw_castz00(obj_t, obj_t, obj_t);
extern obj_t BGl_rtl_applyz00zzsaw_defsz00;
static obj_t BGl_typezd2argszd2rtl_lightfuncall3755z00zzsaw_castz00(obj_t, obj_t);
static obj_t BGl_typezd2argszd2rtl_vset3743z00zzsaw_castz00(obj_t, obj_t);
extern obj_t BGl_typez00zztype_typez00;
BGL_IMPORT obj_t BGl_lastzd2pairzd2zz__r4_pairs_and_lists_6_3z00(obj_t);
static obj_t BGl_cnstzd2initzd2zzsaw_castz00();
static obj_t BGl_typezd2argszd2zzsaw_castz00(BgL_rtl_funz00_bglt);
static obj_t BGl_importedzd2moduleszd2initz00zzsaw_castz00();
extern obj_t BGl_rtl_loadfunz00zzsaw_defsz00;
static obj_t BGl_typezd2destzd2rtl_vref3725z00zzsaw_castz00(obj_t, obj_t, obj_t);
static obj_t BGl_typezd2destzd2rtl_new3721z00zzsaw_castz00(obj_t, obj_t, obj_t);
extern obj_t BGl_rtl_getfieldz00zzsaw_defsz00;
static obj_t BGl_typezd2argszd2rtl_call3749z00zzsaw_castz00(obj_t, obj_t);
static obj_t BGl_typezd2destzd2rtl_loadfun3715z00zzsaw_castz00(obj_t, obj_t, obj_t);
BGL_IMPORT obj_t BGl_addzd2methodz12zc0zz__objectz00(obj_t, obj_t, obj_t);
extern obj_t BGl_rtl_lightfuncallz00zzsaw_defsz00;
static obj_t BGl_toplevelzd2initzd2zzsaw_castz00();
extern obj_t BGl_rtl_isaz00zzsaw_defsz00;
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzsaw_castz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_envz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzobject_classz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzbackend_backendz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzsaw_defsz00(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 *);
static obj_t BGl_typezd2argszd2rtl_return3751z00zzsaw_castz00(obj_t, obj_t);
static obj_t BGl_typezd2destzd2rtl_call3731z00zzsaw_castz00(obj_t, obj_t, obj_t);
static obj_t BGl_typezd2argszd2rtl_vref3741z00zzsaw_castz00(obj_t, obj_t);
static obj_t BGl_typezd2destzd2rtl_getfield3719z00zzsaw_castz00(obj_t, obj_t, obj_t);
extern obj_t BGl_rtl_funcallz00zzsaw_defsz00;
static BgL_typez00_bglt BGl_typezd2destzd2zzsaw_castz00(BgL_rtl_funz00_bglt, obj_t);
extern BgL_typez00_bglt BGl_findzd2typezd2zztype_envz00(obj_t);
static obj_t BGl_typezd2destzd2rtl_nop3709z00zzsaw_castz00(obj_t, obj_t, obj_t);
static obj_t BGl_typezd2destzd2rtl_cast3733z00zzsaw_castz00(obj_t, obj_t, obj_t);
BGL_IMPORT obj_t BGl_memqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
static obj_t BGl_typezd2argszd2rtl_getfield3737z00zzsaw_castz00(obj_t, obj_t);
extern obj_t BGl_cfunz00zzast_varz00;
static obj_t BGl__addzd2castszd2zzsaw_castz00(obj_t, obj_t, obj_t);
extern obj_t BGl_rtl_loadgz00zzsaw_defsz00;
extern obj_t BGl_rtl_loadiz00zzsaw_defsz00;
extern obj_t BGl_rtl_boxsetz00zzsaw_defsz00;
extern obj_t BGl_rtl_returnz00zzsaw_defsz00;
static obj_t BGl_typezd2destzd2rtl_loadg3717z00zzsaw_castz00(obj_t, obj_t, obj_t);
extern BgL_rtl_insz00_bglt BGl_makezd2rtl_inszd2zzsaw_defsz00(obj_t, obj_t, BgL_rtl_funz00_bglt, obj_t);
static obj_t BGl_typezd2argszd2rtl_storeg3747z00zzsaw_castz00(obj_t, obj_t);
static obj_t BGl_typezd2destzd2rtl_valloc3723z00zzsaw_castz00(obj_t, obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_addzd2castszd2zzsaw_castz00(BgL_backendz00_bglt, obj_t);
static obj_t BGl_addzd2castzd2destz00zzsaw_castz00(BgL_backendz00_bglt, obj_t);
extern obj_t BGl_rtl_newz00zzsaw_defsz00;
extern obj_t BGl_rtl_vrefz00zzsaw_defsz00;
static obj_t BGl_typezd2argszd2rtl_boxset3761z00zzsaw_castz00(obj_t, obj_t);
extern obj_t BGl_rtl_movz00zzsaw_defsz00;
extern bool_t BGl_subzd2typezf3z21zztype_envz00(BgL_typez00_bglt, BgL_typez00_bglt);
static obj_t BGl_assignzd2typezf3z21zzsaw_castz00(BgL_backendz00_bglt, BgL_typez00_bglt, obj_t);
extern obj_t BGl_rtl_boxrefz00zzsaw_defsz00;
static BgL_rtl_insz00_bglt BGl_addzd2castzd2zzsaw_castz00(obj_t, obj_t);
extern obj_t BGl_rtl_nopz00zzsaw_defsz00;
extern obj_t BGl_rtl_vsetz00zzsaw_defsz00;
extern obj_t BGl_rtl_storegz00zzsaw_defsz00;
static obj_t BGl_requirezd2initializa7ationz75zzsaw_castz00 = BUNSPEC;
static obj_t BGl__typezd2destzd2zzsaw_castz00(obj_t, obj_t, obj_t);
static obj_t BGl_typezd2argszd2rtl_funcall3753z00zzsaw_castz00(obj_t, obj_t);
static obj_t BGl_libraryzd2moduleszd2initz00zzsaw_castz00();
static obj_t BGl_typezd2argszd2rtl_setfield3739z00zzsaw_castz00(obj_t, obj_t);
static obj_t BGl_typezd2destzd2rtl_isa3729z00zzsaw_castz00(obj_t, obj_t, obj_t);
static obj_t BGl_typezd2destzd2rtl_loadi3713z00zzsaw_castz00(obj_t, obj_t, obj_t);
extern obj_t BGl_rtl_setfieldz00zzsaw_defsz00;
extern obj_t BGl_rtl_callz00zzsaw_defsz00;
static obj_t __cnst[ 8 ] ;


DEFINE_STRING( BGl_string5155z00zzsaw_castz00, BgL_bgl_string5155za700za7za7saw_castza7005182z00, "obj unspecified int procedure cell object (bool char uchar ucs2 void int long ulong elong llong float double) hook ", 115 );
DEFINE_STATIC_PROCEDURE( BGl_typezd2destzd2default3706zd2envzd2zzsaw_castz00, BgL_bgl__typeza7d2destza7d2default3706za700za7za7saw_castza7005183z00, BGl__typezd2destzd2default3706z00zzsaw_castz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_typezd2argszd2default3734zd2envzd2zzsaw_castz00, BgL_bgl__typeza7d2argsza7d2default3734za700za7za7saw_castza7005184z00, BGl__typezd2argszd2default3734z00zzsaw_castz00, 0L, 1 );
DEFINE_STATIC_GENERIC( BGl_typezd2destzd2envz00zzsaw_castz00, BgL_bgl__typeza7d2destza7d2za7za7saw_castza7005185za7, BGl__typezd2destzd2zzsaw_castz00, 0L, 2 );
DEFINE_EXPORT_PROCEDURE( BGl_addzd2castszd2envz00zzsaw_castz00, BgL_bgl__addza7d2castsza7d2za7za7saw_castza7005186za7, BGl__addzd2castszd2zzsaw_castz00, 0L, 2 );
DEFINE_STATIC_GENERIC( BGl_typezd2argszd2envz00zzsaw_castz00, BgL_bgl__typeza7d2argsza7d2za7za7saw_castza7005187za7, BGl__typezd2argszd2zzsaw_castz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc5130z00zzsaw_castz00, BgL_bgl_typeza7d2destza7d2rtl_mov3711za700za7za7saw_castza7005188z00, BGl_typezd2destzd2rtl_mov3711z00zzsaw_castz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_proc5129z00zzsaw_castz00, BgL_bgl_typeza7d2destza7d2rtl_nop3709za700za7za7saw_castza7005189z00, BGl_typezd2destzd2rtl_nop3709z00zzsaw_castz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_proc5131z00zzsaw_castz00, BgL_bgl_typeza7d2destza7d2rtl_loadi3713za700za7za7saw_castza7005190z00, BGl_typezd2destzd2rtl_loadi3713z00zzsaw_castz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_proc5132z00zzsaw_castz00, BgL_bgl_typeza7d2destza7d2rtl_loadfun3715za700za7za7saw_castza7005191z00, BGl_typezd2destzd2rtl_loadfun3715z00zzsaw_castz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_proc5133z00zzsaw_castz00, BgL_bgl_typeza7d2destza7d2rtl_loadg3717za700za7za7saw_castza7005192z00, BGl_typezd2destzd2rtl_loadg3717z00zzsaw_castz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_proc5134z00zzsaw_castz00, BgL_bgl_typeza7d2destza7d2rtl_getfield3719za700za7za7saw_castza7005193z00, BGl_typezd2destzd2rtl_getfield3719z00zzsaw_castz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_proc5135z00zzsaw_castz00, BgL_bgl_typeza7d2destza7d2rtl_new3721za700za7za7saw_castza7005194z00, BGl_typezd2destzd2rtl_new3721z00zzsaw_castz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_proc5136z00zzsaw_castz00, BgL_bgl_typeza7d2destza7d2rtl_valloc3723za700za7za7saw_castza7005195z00, BGl_typezd2destzd2rtl_valloc3723z00zzsaw_castz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_proc5137z00zzsaw_castz00, BgL_bgl_typeza7d2destza7d2rtl_vref3725za700za7za7saw_castza7005196z00, BGl_typezd2destzd2rtl_vref3725z00zzsaw_castz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_proc5138z00zzsaw_castz00, BgL_bgl_typeza7d2destza7d2rtl_vlength3727za700za7za7saw_castza7005197z00, BGl_typezd2destzd2rtl_vlength3727z00zzsaw_castz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_proc5140z00zzsaw_castz00, BgL_bgl_typeza7d2destza7d2rtl_call3731za700za7za7saw_castza7005198z00, BGl_typezd2destzd2rtl_call3731z00zzsaw_castz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_proc5139z00zzsaw_castz00, BgL_bgl_typeza7d2destza7d2rtl_isa3729za700za7za7saw_castza7005199z00, BGl_typezd2destzd2rtl_isa3729z00zzsaw_castz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_proc5141z00zzsaw_castz00, BgL_bgl_typeza7d2destza7d2rtl_cast3733za700za7za7saw_castza7005200z00, BGl_typezd2destzd2rtl_cast3733z00zzsaw_castz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_proc5142z00zzsaw_castz00, BgL_bgl_typeza7d2argsza7d2rtl_getfield3737za700za7za7saw_castza7005201z00, BGl_typezd2argszd2rtl_getfield3737z00zzsaw_castz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc5143z00zzsaw_castz00, BgL_bgl_typeza7d2argsza7d2rtl_setfield3739za700za7za7saw_castza7005202z00, BGl_typezd2argszd2rtl_setfield3739z00zzsaw_castz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc5144z00zzsaw_castz00, BgL_bgl_typeza7d2argsza7d2rtl_vref3741za700za7za7saw_castza7005203z00, BGl_typezd2argszd2rtl_vref3741z00zzsaw_castz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc5145z00zzsaw_castz00, BgL_bgl_typeza7d2argsza7d2rtl_vset3743za700za7za7saw_castza7005204z00, BGl_typezd2argszd2rtl_vset3743z00zzsaw_castz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc5146z00zzsaw_castz00, BgL_bgl_typeza7d2argsza7d2rtl_vlength3745za700za7za7saw_castza7005205z00, BGl_typezd2argszd2rtl_vlength3745z00zzsaw_castz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc5147z00zzsaw_castz00, BgL_bgl_typeza7d2argsza7d2rtl_storeg3747za700za7za7saw_castza7005206z00, BGl_typezd2argszd2rtl_storeg3747z00zzsaw_castz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc5148z00zzsaw_castz00, BgL_bgl_typeza7d2argsza7d2rtl_call3749za700za7za7saw_castza7005207z00, BGl_typezd2argszd2rtl_call3749z00zzsaw_castz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc5150z00zzsaw_castz00, BgL_bgl_typeza7d2argsza7d2rtl_funcall3753za700za7za7saw_castza7005208z00, BGl_typezd2argszd2rtl_funcall3753z00zzsaw_castz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc5149z00zzsaw_castz00, BgL_bgl_typeza7d2argsza7d2rtl_return3751za700za7za7saw_castza7005209z00, BGl_typezd2argszd2rtl_return3751z00zzsaw_castz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc5151z00zzsaw_castz00, BgL_bgl_typeza7d2argsza7d2rtl_lightfuncall3755za700za7za7saw_castza7005210z00, BGl_typezd2argszd2rtl_lightfuncall3755z00zzsaw_castz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc5152z00zzsaw_castz00, BgL_bgl_typeza7d2argsza7d2rtl_apply3757za700za7za7saw_castza7005211z00, BGl_typezd2argszd2rtl_apply3757z00zzsaw_castz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc5153z00zzsaw_castz00, BgL_bgl_typeza7d2argsza7d2rtl_boxref3759za700za7za7saw_castza7005212z00, BGl_typezd2argszd2rtl_boxref3759z00zzsaw_castz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc5154z00zzsaw_castz00, BgL_bgl_typeza7d2argsza7d2rtl_boxset3761za700za7za7saw_castza7005213z00, BGl_typezd2argszd2rtl_boxset3761z00zzsaw_castz00, 0L, 1 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzsaw_castz00(long BgL_checksumz00_2316, char * BgL_fromz00_2317)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzsaw_castz00))
{ 
BGl_requirezd2initializa7ationz75zzsaw_castz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzsaw_castz00(); 
BGl_cnstzd2initzd2zzsaw_castz00(); 
BGl_importedzd2moduleszd2initz00zzsaw_castz00(); 
BGl_methodzd2initzd2zzsaw_castz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzsaw_castz00()
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 1 */
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "saw_cast"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "saw_cast"); 
BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(((long)0), "saw_cast"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzsaw_castz00()
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 1 */
{ /* ./SawMill/cast.scm 1 */
obj_t BgL_cportz00_2288;
BgL_cportz00_2288 = 
open_input_string(BGl_string5155z00zzsaw_castz00); 
{ 
long BgL_iz00_2289;
BgL_iz00_2289 = ((long)7); 
BgL_loopz00_2290:
{ /* ./SawMill/cast.scm 1 */
bool_t BgL_test5157z00_2291;
BgL_test5157z00_2291 = 
(BgL_iz00_2289==((long)-1)); 
if(BgL_test5157z00_2291)
{ /* ./SawMill/cast.scm 1 */
return BUNSPEC;}  else 
{ /* ./SawMill/cast.scm 1 */
{ /* ./SawMill/cast.scm 1 */
obj_t BgL_arg5159z00_2292;
{ /* ./SawMill/cast.scm 1 */
obj_t BgL_list5162z00_2293;
BgL_list5162z00_2293 = 
MAKE_PAIR(BgL_cportz00_2288, BNIL); 
BgL_arg5159z00_2292 = 
BGl_readz00zz__readerz00(BgL_list5162z00_2293); } 
{ /* ./SawMill/cast.scm 1 */
int BgL_auxz00_2333;
BgL_auxz00_2333 = 
(int)(BgL_iz00_2289); 
CNST_TABLE_SET(BgL_auxz00_2333, BgL_arg5159z00_2292); } } 
{ /* ./SawMill/cast.scm 1 */
int BgL_auxz00_2294;
{ /* ./SawMill/cast.scm 1 */
long BgL_auxz00_2336;
BgL_auxz00_2336 = 
(BgL_iz00_2289-((long)1)); 
BgL_auxz00_2294 = 
(int)(BgL_auxz00_2336); } 
{ 
long BgL_iz00_2339;
BgL_iz00_2339 = 
(long)(BgL_auxz00_2294); 
BgL_iz00_2289 = BgL_iz00_2339; 
goto BgL_loopz00_2290;} } } } } } } 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzsaw_castz00()
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 1 */
return BUNSPEC;} 
}



/* add-casts */
BGL_EXPORTED_DEF obj_t BGl_addzd2castszd2zzsaw_castz00(BgL_backendz00_bglt BgL_backz00_1, obj_t BgL_lz00_2)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 11 */
{ 
obj_t BgL_l3685z00_1138;
{ /* ./SawMill/cast.scm 12 */
bool_t BgL_auxz00_2341;
BgL_l3685z00_1138 = BgL_lz00_2; 
BgL_forzd2each3686zd2_1139:
{ /* ./SawMill/cast.scm 12 */
bool_t BgL_test3763z00_1140;
BgL_test3763z00_1140 = 
PAIRP(BgL_l3685z00_1138); 
if(BgL_test3763z00_1140)
{ /* ./SawMill/cast.scm 12 */
{ /* ./SawMill/cast.scm 13 */
obj_t BgL_bz00_1141;
BgL_bz00_1141 = 
CAR(BgL_l3685z00_1138); 
{ /* ./SawMill/cast.scm 13 */
obj_t BgL_hookz00_1142;
{ /* ./SawMill/cast.scm 13 */
obj_t BgL_auxz00_2345;
BgL_auxz00_2345 = 
CNST_TABLE_REF(((long)0)); 
BgL_hookz00_1142 = 
MAKE_PAIR(BgL_auxz00_2345, BNIL); } 
{ 
obj_t BgL_lz00_1143;obj_t BgL_lastz00_1144;
{ /* ./SawMill/cast.scm 14 */
obj_t BgL_arg3765z00_1146;
{ /* ./SawMill/cast.scm 14 */
BgL_blockz00_bglt BgL_obj3666z00_1968;
BgL_obj3666z00_1968 = 
(BgL_blockz00_bglt)(BgL_bz00_1141); 
BgL_arg3765z00_1146 = 
(((BgL_blockz00_bglt)CREF(BgL_obj3666z00_1968))->BgL_firstz00); } 
BgL_lz00_1143 = BgL_arg3765z00_1146; 
BgL_lastz00_1144 = BgL_hookz00_1142; 
BgL_loopz00_1145:
{ /* ./SawMill/cast.scm 15 */
bool_t BgL_test3768z00_1147;
BgL_test3768z00_1147 = 
NULLP(BgL_lz00_1143); 
if(BgL_test3768z00_1147)
{ /* ./SawMill/cast.scm 16 */
obj_t BgL_arg3770z00_1148;
BgL_arg3770z00_1148 = 
CDR(BgL_hookz00_1142); 
{ /* ./SawMill/cast.scm 16 */
BgL_blockz00_bglt BgL_obj3668z00_1971;obj_t BgL_val3667z00_1972;
BgL_obj3668z00_1971 = 
(BgL_blockz00_bglt)(BgL_bz00_1141); 
BgL_val3667z00_1972 = BgL_arg3770z00_1148; 
((((BgL_blockz00_bglt)CREF(BgL_obj3668z00_1971))->BgL_firstz00) = ((obj_t)BgL_val3667z00_1972), BUNSPEC); } }  else 
{ /* ./SawMill/cast.scm 17 */
obj_t BgL_insz00_1149;
BgL_insz00_1149 = 
CAR(BgL_lz00_1143); 
{ /* ./SawMill/cast.scm 18 */
obj_t BgL_cinsz00_1151;
BgL_cinsz00_1151 = 
BGl_addzd2castszd2insz00zzsaw_castz00(BgL_backz00_1, BgL_insz00_1149); 
SET_CDR(BgL_lastz00_1144, BgL_cinsz00_1151); 
{ /* ./SawMill/cast.scm 20 */
obj_t BgL_arg3775z00_1152;obj_t BgL_arg3777z00_1153;
BgL_arg3775z00_1152 = 
CDR(BgL_lz00_1143); 
BgL_arg3777z00_1153 = 
BGl_lastzd2pairzd2zz__r4_pairs_and_lists_6_3z00(BgL_cinsz00_1151); 
{ 
obj_t BgL_lastz00_2361;obj_t BgL_lz00_2360;
BgL_lz00_2360 = BgL_arg3775z00_1152; 
BgL_lastz00_2361 = BgL_arg3777z00_1153; 
BgL_lastz00_1144 = BgL_lastz00_2361; 
BgL_lz00_1143 = BgL_lz00_2360; 
goto BgL_loopz00_1145;} } } } } } } } } 
{ /* ./SawMill/cast.scm 12 */
obj_t BgL_arg3788z00_1154;
BgL_arg3788z00_1154 = 
CDR(BgL_l3685z00_1138); 
{ 
obj_t BgL_l3685z00_2363;
BgL_l3685z00_2363 = BgL_arg3788z00_1154; 
BgL_l3685z00_1138 = BgL_l3685z00_2363; 
goto BgL_forzd2each3686zd2_1139;} } }  else 
{ /* ./SawMill/cast.scm 12 */
BgL_auxz00_2341 = ((bool_t)1); } } 
return 
BBOOL(BgL_auxz00_2341);} } } 
}



/* _add-casts */
obj_t BGl__addzd2castszd2zzsaw_castz00(obj_t BgL_envz00_2184, obj_t BgL_backz00_2185, obj_t BgL_lz00_2186)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 11 */
return 
BGl_addzd2castszd2zzsaw_castz00(
(BgL_backendz00_bglt)(BgL_backz00_2185), BgL_lz00_2186);} 
}



/* add-cast */
BgL_rtl_insz00_bglt BGl_addzd2castzd2zzsaw_castz00(obj_t BgL_fromz00_3, obj_t BgL_toz00_4)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 23 */
{ /* ./SawMill/cast.scm 24 */
BgL_typez00_bglt BgL_typez00_1155;
{ /* ./SawMill/cast.scm 24 */
BgL_rtl_regz00_bglt BgL_obj3235z00_1979;
BgL_obj3235z00_1979 = 
(BgL_rtl_regz00_bglt)(BgL_toz00_4); 
BgL_typez00_1155 = 
(((BgL_rtl_regz00_bglt)CREF(BgL_obj3235z00_1979))->BgL_typez00); } 
{ /* ./SawMill/cast.scm 25 */
obj_t BgL_arg3793z00_1156;BgL_rtl_castz00_bglt BgL_arg3794z00_1157;obj_t BgL_arg3795z00_1158;
BgL_arg3793z00_1156 = BgL_toz00_4; 
{ /* ./SawMill/cast.scm 26 */
BgL_typez00_bglt BgL_arg3798z00_1159;
BgL_arg3798z00_1159 = BgL_typez00_1155; 
BgL_arg3794z00_1157 = 
BGl_makezd2rtl_castzd2zzsaw_defsz00(BgL_arg3798z00_1159); } 
BgL_arg3795z00_1158 = 
MAKE_PAIR(BgL_fromz00_3, BNIL); 
return 
BGl_makezd2rtl_inszd2zzsaw_defsz00(BFALSE, BgL_arg3793z00_1156, 
(BgL_rtl_funz00_bglt)(BgL_arg3794z00_1157), BgL_arg3795z00_1158);} } } 
}



/* add-casts-ins */
obj_t BGl_addzd2castszd2insz00zzsaw_castz00(BgL_backendz00_bglt BgL_backz00_5, obj_t BgL_insz00_6)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 29 */
{ /* ./SawMill/cast.scm 31 */
obj_t BgL_castsz00_1161;
BgL_castsz00_1161 = 
BGl_addzd2castzd2destz00zzsaw_castz00(BgL_backz00_5, BgL_insz00_6); 
{ /* ./SawMill/cast.scm 32 */
BgL_rtl_funz00_bglt BgL_arg3803z00_1162;obj_t BgL_arg3804z00_1163;obj_t BgL_arg3805z00_1164;obj_t BgL_arg3806z00_1165;
{ /* ./SawMill/cast.scm 32 */
BgL_rtl_insz00_bglt BgL_obj3635z00_1980;
BgL_obj3635z00_1980 = 
(BgL_rtl_insz00_bglt)(BgL_insz00_6); 
BgL_arg3803z00_1162 = 
(((BgL_rtl_insz00_bglt)CREF(BgL_obj3635z00_1980))->BgL_funz00); } 
{ /* ./SawMill/cast.scm 32 */
BgL_rtl_insz00_bglt BgL_obj3638z00_1981;
BgL_obj3638z00_1981 = 
(BgL_rtl_insz00_bglt)(BgL_insz00_6); 
BgL_arg3804z00_1163 = 
(((BgL_rtl_insz00_bglt)CREF(BgL_obj3638z00_1981))->BgL_argsz00); } 
{ /* ./SawMill/cast.scm 32 */
BgL_rtl_funz00_bglt BgL_arg3811z00_1166;
{ /* ./SawMill/cast.scm 32 */
BgL_rtl_insz00_bglt BgL_obj3635z00_1982;
BgL_obj3635z00_1982 = 
(BgL_rtl_insz00_bglt)(BgL_insz00_6); 
BgL_arg3811z00_1166 = 
(((BgL_rtl_insz00_bglt)CREF(BgL_obj3635z00_1982))->BgL_funz00); } 
{ /* ./SawMill/cast.scm 32 */
obj_t BgL_method3735z00_1984;
{ /* ./SawMill/cast.scm 32 */
BgL_objectz00_bglt BgL_objz00_1985;
BgL_objz00_1985 = 
(BgL_objectz00_bglt)(BgL_arg3811z00_1166); 
{ /* ./SawMill/cast.scm 32 */
long BgL_objzd2classzd2numz00_1986;
BgL_objzd2classzd2numz00_1986 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1985); 
{ /* ./SawMill/cast.scm 32 */
obj_t BgL_arg2017z00_1987;
{ /* ./SawMill/cast.scm 32 */
int BgL_auxz00_2382;
BgL_auxz00_2382 = 
(int)(((long)1)); 
BgL_arg2017z00_1987 = 
PROCEDURE_REF(BGl_typezd2argszd2envz00zzsaw_castz00, BgL_auxz00_2382); } 
{ /* ./SawMill/cast.scm 32 */
int BgL_offsetz00_1990;
BgL_offsetz00_1990 = 
(int)(BgL_objzd2classzd2numz00_1986); 
{ /* ./SawMill/cast.scm 32 */
long BgL_offsetz00_1991;
{ /* ./SawMill/cast.scm 32 */
long BgL_auxz00_2386;
BgL_auxz00_2386 = 
(long)(BgL_offsetz00_1990); 
BgL_offsetz00_1991 = 
(BgL_auxz00_2386-OBJECT_TYPE); } 
{ /* ./SawMill/cast.scm 32 */
long BgL_modz00_1992;
{ /* ./SawMill/cast.scm 32 */
int BgL_arg2028z00_1993;
BgL_arg2028z00_1993 = 
(int)(((long)8)); 
{ /* ./SawMill/cast.scm 32 */
long BgL_n2z00_2001;
BgL_n2z00_2001 = 
(long)(BgL_arg2028z00_1993); 
BgL_modz00_1992 = 
(BgL_offsetz00_1991/BgL_n2z00_2001); } } 
{ /* ./SawMill/cast.scm 32 */
long BgL_restz00_1994;
{ /* ./SawMill/cast.scm 32 */
int BgL_arg2024z00_1995;
BgL_arg2024z00_1995 = 
(int)(((long)8)); 
{ /* ./SawMill/cast.scm 32 */
long BgL_n2z00_2004;
BgL_n2z00_2004 = 
(long)(BgL_arg2024z00_1995); 
BgL_restz00_1994 = 
(BgL_offsetz00_1991%BgL_n2z00_2004); } } 
{ /* ./SawMill/cast.scm 32 */

{ /* ./SawMill/cast.scm 32 */
obj_t BgL_bucketz00_1996;
{ /* ./SawMill/cast.scm 32 */
int BgL_kz00_2006;
BgL_kz00_2006 = 
(int)(BgL_modz00_1992); 
BgL_bucketz00_1996 = 
VECTOR_REF(BgL_arg2017z00_1987,BgL_kz00_2006); } 
{ /* ./SawMill/cast.scm 32 */
int BgL_kz00_2008;
BgL_kz00_2008 = 
(int)(BgL_restz00_1994); 
BgL_method3735z00_1984 = 
VECTOR_REF(BgL_bucketz00_1996,BgL_kz00_2008); } } } } } } } } } } 
BgL_arg3805z00_1164 = 
PROCEDURE_ENTRY(BgL_method3735z00_1984)(BgL_method3735z00_1984, 
(obj_t)(BgL_arg3811z00_1166), BEOA); } } 
BgL_arg3806z00_1165 = 
MAKE_PAIR(BgL_insz00_6, BgL_castsz00_1161); 
return 
BGl_addzd2castzd2argsz00zzsaw_castz00(BgL_backz00_5, BgL_arg3803z00_1162, BgL_arg3804z00_1163, BgL_arg3805z00_1164, BgL_arg3806z00_1165);} } } 
}



/* add-cast-dest */
obj_t BGl_addzd2castzd2destz00zzsaw_castz00(BgL_backendz00_bglt BgL_backz00_7, obj_t BgL_insz00_8)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 34 */
{ /* ./SawMill/cast.scm 36 */
bool_t BgL_test3816z00_1168;
{ /* ./SawMill/cast.scm 36 */
BgL_rtl_insz00_bglt BgL_obj3632z00_2009;
BgL_obj3632z00_2009 = 
(BgL_rtl_insz00_bglt)(BgL_insz00_8); 
{ /* ./SawMill/cast.scm 36 */
obj_t BgL_auxz00_2405;
BgL_auxz00_2405 = 
(((BgL_rtl_insz00_bglt)CREF(BgL_obj3632z00_2009))->BgL_destz00); 
BgL_test3816z00_1168 = 
CBOOL(BgL_auxz00_2405); } } 
if(BgL_test3816z00_1168)
{ /* ./SawMill/cast.scm 37 */
BgL_typez00_bglt BgL_realz00_1169;BgL_typez00_bglt BgL_declaredz00_1170;
{ /* ./SawMill/cast.scm 37 */
BgL_rtl_funz00_bglt BgL_arg3832z00_1178;obj_t BgL_arg3833z00_1179;
{ /* ./SawMill/cast.scm 37 */
BgL_rtl_insz00_bglt BgL_obj3635z00_2010;
BgL_obj3635z00_2010 = 
(BgL_rtl_insz00_bglt)(BgL_insz00_8); 
BgL_arg3832z00_1178 = 
(((BgL_rtl_insz00_bglt)CREF(BgL_obj3635z00_2010))->BgL_funz00); } 
{ /* ./SawMill/cast.scm 37 */
BgL_rtl_insz00_bglt BgL_obj3638z00_2011;
BgL_obj3638z00_2011 = 
(BgL_rtl_insz00_bglt)(BgL_insz00_8); 
BgL_arg3833z00_1179 = 
(((BgL_rtl_insz00_bglt)CREF(BgL_obj3638z00_2011))->BgL_argsz00); } 
{ /* ./SawMill/cast.scm 37 */
BgL_typez00_bglt BgL_res4908z00_2039;
{ /* ./SawMill/cast.scm 37 */
obj_t BgL_method3707z00_2014;
{ /* ./SawMill/cast.scm 37 */
BgL_objectz00_bglt BgL_objz00_2015;
BgL_objz00_2015 = 
(BgL_objectz00_bglt)(BgL_arg3832z00_1178); 
{ /* ./SawMill/cast.scm 37 */
long BgL_objzd2classzd2numz00_2016;
BgL_objzd2classzd2numz00_2016 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2015); 
{ /* ./SawMill/cast.scm 37 */
obj_t BgL_arg2017z00_2017;
{ /* ./SawMill/cast.scm 37 */
int BgL_auxz00_2415;
BgL_auxz00_2415 = 
(int)(((long)1)); 
BgL_arg2017z00_2017 = 
PROCEDURE_REF(BGl_typezd2destzd2envz00zzsaw_castz00, BgL_auxz00_2415); } 
{ /* ./SawMill/cast.scm 37 */
int BgL_offsetz00_2020;
BgL_offsetz00_2020 = 
(int)(BgL_objzd2classzd2numz00_2016); 
{ /* ./SawMill/cast.scm 37 */
long BgL_offsetz00_2021;
{ /* ./SawMill/cast.scm 37 */
long BgL_auxz00_2419;
BgL_auxz00_2419 = 
(long)(BgL_offsetz00_2020); 
BgL_offsetz00_2021 = 
(BgL_auxz00_2419-OBJECT_TYPE); } 
{ /* ./SawMill/cast.scm 37 */
long BgL_modz00_2022;
{ /* ./SawMill/cast.scm 37 */
int BgL_arg2028z00_2023;
BgL_arg2028z00_2023 = 
(int)(((long)8)); 
{ /* ./SawMill/cast.scm 37 */
long BgL_n2z00_2031;
BgL_n2z00_2031 = 
(long)(BgL_arg2028z00_2023); 
BgL_modz00_2022 = 
(BgL_offsetz00_2021/BgL_n2z00_2031); } } 
{ /* ./SawMill/cast.scm 37 */
long BgL_restz00_2024;
{ /* ./SawMill/cast.scm 37 */
int BgL_arg2024z00_2025;
BgL_arg2024z00_2025 = 
(int)(((long)8)); 
{ /* ./SawMill/cast.scm 37 */
long BgL_n2z00_2034;
BgL_n2z00_2034 = 
(long)(BgL_arg2024z00_2025); 
BgL_restz00_2024 = 
(BgL_offsetz00_2021%BgL_n2z00_2034); } } 
{ /* ./SawMill/cast.scm 37 */

{ /* ./SawMill/cast.scm 37 */
obj_t BgL_bucketz00_2026;
{ /* ./SawMill/cast.scm 37 */
int BgL_kz00_2036;
BgL_kz00_2036 = 
(int)(BgL_modz00_2022); 
BgL_bucketz00_2026 = 
VECTOR_REF(BgL_arg2017z00_2017,BgL_kz00_2036); } 
{ /* ./SawMill/cast.scm 37 */
int BgL_kz00_2038;
BgL_kz00_2038 = 
(int)(BgL_restz00_2024); 
BgL_method3707z00_2014 = 
VECTOR_REF(BgL_bucketz00_2026,BgL_kz00_2038); } } } } } } } } } } 
{ /* ./SawMill/cast.scm 37 */
obj_t BgL_auxz00_2432;
BgL_auxz00_2432 = 
PROCEDURE_ENTRY(BgL_method3707z00_2014)(BgL_method3707z00_2014, 
(obj_t)(BgL_arg3832z00_1178), BgL_arg3833z00_1179, BEOA); 
BgL_res4908z00_2039 = 
(BgL_typez00_bglt)(BgL_auxz00_2432); } } 
BgL_realz00_1169 = BgL_res4908z00_2039; } } 
{ /* ./SawMill/cast.scm 37 */
BgL_rtl_regz00_bglt BgL_obj3235z00_2041;
{ /* ./SawMill/cast.scm 37 */
obj_t BgL_auxz00_2437;
{ /* ./SawMill/cast.scm 37 */
BgL_rtl_insz00_bglt BgL_obj3632z00_2040;
BgL_obj3632z00_2040 = 
(BgL_rtl_insz00_bglt)(BgL_insz00_8); 
BgL_auxz00_2437 = 
(((BgL_rtl_insz00_bglt)CREF(BgL_obj3632z00_2040))->BgL_destz00); } 
BgL_obj3235z00_2041 = 
(BgL_rtl_regz00_bglt)(BgL_auxz00_2437); } 
BgL_declaredz00_1170 = 
(((BgL_rtl_regz00_bglt)CREF(BgL_obj3235z00_2041))->BgL_typez00); } 
{ /* ./SawMill/cast.scm 38 */
bool_t BgL_test3817z00_1171;
{ /* ./SawMill/cast.scm 38 */
obj_t BgL_auxz00_2442;
BgL_auxz00_2442 = 
BGl_assignzd2typezf3z21zzsaw_castz00(BgL_backz00_7, BgL_realz00_1169, 
(obj_t)(BgL_declaredz00_1170)); 
BgL_test3817z00_1171 = 
CBOOL(BgL_auxz00_2442); } 
if(BgL_test3817z00_1171)
{ /* ./SawMill/cast.scm 38 */
return BNIL;}  else 
{ /* ./SawMill/cast.scm 40 */
BgL_rtl_regz00_bglt BgL_rrz00_1172;
{ /* ./SawMill/cast.scm 40 */
BgL_typez00_bglt BgL_arg3826z00_1176;bool_t BgL_arg3827z00_1177;
BgL_arg3826z00_1176 = BgL_realz00_1169; 
BgL_arg3827z00_1177 = ((bool_t)0); 
BgL_rrz00_1172 = 
BGl_makezd2rtl_regzd2zzsaw_defsz00(BgL_arg3826z00_1176, 
BBOOL(BgL_arg3827z00_1177)); } 
{ /* ./SawMill/cast.scm 41 */
obj_t BgL_xz00_1173;
{ /* ./SawMill/cast.scm 41 */
BgL_rtl_insz00_bglt BgL_obj3632z00_2042;
BgL_obj3632z00_2042 = 
(BgL_rtl_insz00_bglt)(BgL_insz00_8); 
BgL_xz00_1173 = 
(((BgL_rtl_insz00_bglt)CREF(BgL_obj3632z00_2042))->BgL_destz00); } 
{ /* ./SawMill/cast.scm 42 */
BgL_rtl_insz00_bglt BgL_obj3634z00_2043;obj_t BgL_val3633z00_2044;
BgL_obj3634z00_2043 = 
(BgL_rtl_insz00_bglt)(BgL_insz00_8); 
BgL_val3633z00_2044 = 
(obj_t)(BgL_rrz00_1172); 
((((BgL_rtl_insz00_bglt)CREF(BgL_obj3634z00_2043))->BgL_destz00) = ((obj_t)BgL_val3633z00_2044), BUNSPEC); } 
{ /* ./SawMill/cast.scm 43 */
BgL_rtl_insz00_bglt BgL_arg3820z00_1174;
BgL_arg3820z00_1174 = 
BGl_addzd2castzd2zzsaw_castz00(
(obj_t)(BgL_rrz00_1172), BgL_xz00_1173); 
{ /* ./SawMill/cast.scm 43 */
obj_t BgL_auxz00_2456;
BgL_auxz00_2456 = 
(obj_t)(BgL_arg3820z00_1174); 
return 
MAKE_PAIR(BgL_auxz00_2456, BNIL);} } } } } }  else 
{ /* ./SawMill/cast.scm 36 */
return BNIL;} } } 
}



/* add-cast-args */
obj_t BGl_addzd2castzd2argsz00zzsaw_castz00(BgL_backendz00_bglt BgL_backz00_9, BgL_rtl_funz00_bglt BgL_funz00_10, obj_t BgL_argsz00_11, obj_t BgL_typesz00_12, obj_t BgL_castsz00_13)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 46 */
{ /* ./SawMill/cast.scm 47 */
bool_t BgL_test3842z00_1181;
BgL_test3842z00_1181 = 
NULLP(BgL_typesz00_12); 
if(BgL_test3842z00_1181)
{ /* ./SawMill/cast.scm 47 */
return BgL_castsz00_13;}  else 
{ /* ./SawMill/cast.scm 49 */
obj_t BgL_castsz00_1182;
{ /* ./SawMill/cast.scm 49 */
obj_t BgL_arg3861z00_1191;obj_t BgL_arg3862z00_1192;
BgL_arg3861z00_1191 = 
CDR(BgL_argsz00_11); 
BgL_arg3862z00_1192 = 
CDR(BgL_typesz00_12); 
BgL_castsz00_1182 = 
BGl_addzd2castzd2argsz00zzsaw_castz00(BgL_backz00_9, BgL_funz00_10, BgL_arg3861z00_1191, BgL_arg3862z00_1192, BgL_castsz00_13); } 
{ /* ./SawMill/cast.scm 50 */
obj_t BgL_rz00_1183;obj_t BgL_tz00_1184;
BgL_rz00_1183 = 
CAR(BgL_argsz00_11); 
BgL_tz00_1184 = 
CAR(BgL_typesz00_12); 
{ /* ./SawMill/cast.scm 51 */
bool_t BgL_test3843z00_1185;
{ /* ./SawMill/cast.scm 51 */
BgL_typez00_bglt BgL_arg3855z00_1190;
{ /* ./SawMill/cast.scm 51 */
BgL_rtl_regz00_bglt BgL_obj3235z00_2050;
BgL_obj3235z00_2050 = 
(BgL_rtl_regz00_bglt)(BgL_rz00_1183); 
BgL_arg3855z00_1190 = 
(((BgL_rtl_regz00_bglt)CREF(BgL_obj3235z00_2050))->BgL_typez00); } 
{ /* ./SawMill/cast.scm 51 */
obj_t BgL_auxz00_2468;
BgL_auxz00_2468 = 
BGl_assignzd2typezf3z21zzsaw_castz00(BgL_backz00_9, BgL_arg3855z00_1190, BgL_tz00_1184); 
BgL_test3843z00_1185 = 
CBOOL(BgL_auxz00_2468); } } 
if(BgL_test3843z00_1185)
{ /* ./SawMill/cast.scm 51 */
return BgL_castsz00_1182;}  else 
{ /* ./SawMill/cast.scm 53 */
BgL_rtl_regz00_bglt BgL_rrz00_1186;
{ /* ./SawMill/cast.scm 53 */
obj_t BgL_arg3850z00_1188;bool_t BgL_arg3851z00_1189;
BgL_arg3850z00_1188 = BgL_tz00_1184; 
BgL_arg3851z00_1189 = ((bool_t)0); 
BgL_rrz00_1186 = 
BGl_makezd2rtl_regzd2zzsaw_defsz00(
(BgL_typez00_bglt)(BgL_arg3850z00_1188), 
BBOOL(BgL_arg3851z00_1189)); } 
{ /* ./SawMill/cast.scm 54 */
obj_t BgL_objz00_2052;
BgL_objz00_2052 = 
(obj_t)(BgL_rrz00_1186); 
SET_CAR(BgL_argsz00_11, BgL_objz00_2052); } 
{ /* ./SawMill/cast.scm 55 */
BgL_rtl_insz00_bglt BgL_arg3846z00_1187;
BgL_arg3846z00_1187 = 
BGl_addzd2castzd2zzsaw_castz00(BgL_rz00_1183, 
(obj_t)(BgL_rrz00_1186)); 
{ /* ./SawMill/cast.scm 55 */
obj_t BgL_auxz00_2479;
BgL_auxz00_2479 = 
(obj_t)(BgL_arg3846z00_1187); 
return 
MAKE_PAIR(BgL_auxz00_2479, BgL_castsz00_1182);} } } } } } } } 
}



/* assign-type? */
obj_t BGl_assignzd2typezf3z21zzsaw_castz00(BgL_backendz00_bglt BgL_backz00_14, BgL_typez00_bglt BgL_t1z00_15, obj_t BgL_t2z00_16)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 57 */
{ /* ./SawMill/cast.scm 58 */
bool_t BgL__ortest_3695z00_1193;
{ /* ./SawMill/cast.scm 58 */
obj_t BgL_auxz00_2482;
BgL_auxz00_2482 = 
(obj_t)(BgL_t1z00_15); 
BgL__ortest_3695z00_1193 = 
(BgL_auxz00_2482==BgL_t2z00_16); } 
if(BgL__ortest_3695z00_1193)
{ /* ./SawMill/cast.scm 58 */
return 
BBOOL(BgL__ortest_3695z00_1193);}  else 
{ /* ./SawMill/cast.scm 59 */
obj_t BgL__ortest_3696z00_1194;
BgL__ortest_3696z00_1194 = 
BGl_memqz00zz__r4_pairs_and_lists_6_3z00(
(((BgL_typez00_bglt)CREF(BgL_t1z00_15))->BgL_idz00), 
CNST_TABLE_REF(((long)1))); 
if(
CBOOL(BgL__ortest_3696z00_1194))
{ /* ./SawMill/cast.scm 59 */
return BgL__ortest_3696z00_1194;}  else 
{ /* ./SawMill/cast.scm 60 */
obj_t BgL__ortest_3697z00_1195;
{ /* ./SawMill/cast.scm 60 */
obj_t BgL_auxz00_2492;
{ /* ./SawMill/cast.scm 60 */
BgL_typez00_bglt BgL_obj1003z00_2060;
BgL_obj1003z00_2060 = 
(BgL_typez00_bglt)(BgL_t2z00_16); 
BgL_auxz00_2492 = 
(((BgL_typez00_bglt)CREF(BgL_obj1003z00_2060))->BgL_idz00); } 
BgL__ortest_3697z00_1195 = 
BGl_memqz00zz__r4_pairs_and_lists_6_3z00(BgL_auxz00_2492, 
CNST_TABLE_REF(((long)1))); } 
if(
CBOOL(BgL__ortest_3697z00_1195))
{ /* ./SawMill/cast.scm 60 */
return BgL__ortest_3697z00_1195;}  else 
{ /* ./SawMill/cast.scm 61 */
bool_t BgL__ortest_3698z00_1196;
{ /* ./SawMill/cast.scm 61 */
bool_t BgL__andtest_3700z00_1198;
{ /* ./SawMill/cast.scm 61 */
obj_t BgL_obj2709z00_2061;
BgL_obj2709z00_2061 = 
(obj_t)(BgL_t1z00_15); 
BgL__andtest_3700z00_1198 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj2709z00_2061, BGl_tclassz00zzobject_classz00); } 
if(BgL__andtest_3700z00_1198)
{ /* ./SawMill/cast.scm 61 */
obj_t BgL_auxz00_2505;obj_t BgL_auxz00_2502;
BgL_auxz00_2505 = 
CNST_TABLE_REF(((long)2)); 
{ /* ./SawMill/cast.scm 61 */
BgL_typez00_bglt BgL_obj1003z00_2062;
BgL_obj1003z00_2062 = 
(BgL_typez00_bglt)(BgL_t2z00_16); 
BgL_auxz00_2502 = 
(((BgL_typez00_bglt)CREF(BgL_obj1003z00_2062))->BgL_idz00); } 
BgL__ortest_3698z00_1196 = 
(BgL_auxz00_2502==BgL_auxz00_2505); }  else 
{ /* ./SawMill/cast.scm 61 */
BgL__ortest_3698z00_1196 = ((bool_t)0); } } 
if(BgL__ortest_3698z00_1196)
{ /* ./SawMill/cast.scm 61 */
return 
BBOOL(BgL__ortest_3698z00_1196);}  else 
{ /* ./SawMill/cast.scm 62 */
bool_t BgL__ortest_3699z00_1197;
BgL__ortest_3699z00_1197 = 
BGl_subzd2typezf3z21zztype_envz00(BgL_t1z00_15, 
(BgL_typez00_bglt)(BgL_t2z00_16)); 
if(BgL__ortest_3699z00_1197)
{ /* ./SawMill/cast.scm 62 */
return 
BBOOL(BgL__ortest_3699z00_1197);}  else 
{ /* ./SawMill/cast.scm 62 */
return 
BGl_backendzd2subtypezf3z21zzbackend_backendz00(BgL_backz00_14, BgL_t1z00_15, 
(BgL_typez00_bglt)(BgL_t2z00_16));} } } } } } } 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzsaw_castz00()
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 1 */
BGl_addzd2genericz12zc0zz__objectz00(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_typezd2destzd2default3706zd2envzd2zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_nopz00zzsaw_defsz00, BGl_proc5129z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_movz00zzsaw_defsz00, BGl_proc5130z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_loadiz00zzsaw_defsz00, BGl_proc5131z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_loadfunz00zzsaw_defsz00, BGl_proc5132z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_loadgz00zzsaw_defsz00, BGl_proc5133z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_getfieldz00zzsaw_defsz00, BGl_proc5134z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_newz00zzsaw_defsz00, BGl_proc5135z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_vallocz00zzsaw_defsz00, BGl_proc5136z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_vrefz00zzsaw_defsz00, BGl_proc5137z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_vlengthz00zzsaw_defsz00, BGl_proc5138z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_isaz00zzsaw_defsz00, BGl_proc5139z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_callz00zzsaw_defsz00, BGl_proc5140z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2destzd2envz00zzsaw_castz00, BGl_rtl_castz00zzsaw_defsz00, BGl_proc5141z00zzsaw_castz00); 
BGl_addzd2genericz12zc0zz__objectz00(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_typezd2argszd2default3734zd2envzd2zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_getfieldz00zzsaw_defsz00, BGl_proc5142z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_setfieldz00zzsaw_defsz00, BGl_proc5143z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_vrefz00zzsaw_defsz00, BGl_proc5144z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_vsetz00zzsaw_defsz00, BGl_proc5145z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_vlengthz00zzsaw_defsz00, BGl_proc5146z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_storegz00zzsaw_defsz00, BGl_proc5147z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_callz00zzsaw_defsz00, BGl_proc5148z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_returnz00zzsaw_defsz00, BGl_proc5149z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_funcallz00zzsaw_defsz00, BGl_proc5150z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_lightfuncallz00zzsaw_defsz00, BGl_proc5151z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_applyz00zzsaw_defsz00, BGl_proc5152z00zzsaw_castz00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_boxrefz00zzsaw_defsz00, BGl_proc5153z00zzsaw_castz00); 
return 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typezd2argszd2envz00zzsaw_castz00, BGl_rtl_boxsetz00zzsaw_defsz00, BGl_proc5154z00zzsaw_castz00);} 
}



/* type-args-rtl_boxset3761 */
obj_t BGl_typezd2argszd2rtl_boxset3761z00zzsaw_castz00(obj_t BgL_envz00_2218, obj_t BgL_funz00_2219)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 162 */
{ 
BgL_rtl_boxsetz00_bglt BgL_funz00_1957;
BgL_funz00_1957 = 
(BgL_rtl_boxsetz00_bglt)(BgL_funz00_2219); 
{ /* ./SawMill/cast.scm 163 */
BgL_typez00_bglt BgL_arg4883z00_2132;
BgL_arg4883z00_2132 = 
BGl_findzd2typezd2zztype_envz00(
CNST_TABLE_REF(((long)3))); 
{ /* ./SawMill/cast.scm 163 */
obj_t BgL_auxz00_2546;
BgL_auxz00_2546 = 
(obj_t)(BgL_arg4883z00_2132); 
return 
MAKE_PAIR(BgL_auxz00_2546, BNIL);} } } } 
}



/* type-args-rtl_boxref3759 */
obj_t BGl_typezd2argszd2rtl_boxref3759z00zzsaw_castz00(obj_t BgL_envz00_2220, obj_t BgL_funz00_2221)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 159 */
{ 
BgL_rtl_boxrefz00_bglt BgL_funz00_1950;
BgL_funz00_1950 = 
(BgL_rtl_boxrefz00_bglt)(BgL_funz00_2221); 
{ /* ./SawMill/cast.scm 160 */
BgL_typez00_bglt BgL_arg4872z00_2130;
BgL_arg4872z00_2130 = 
BGl_findzd2typezd2zztype_envz00(
CNST_TABLE_REF(((long)3))); 
{ /* ./SawMill/cast.scm 160 */
obj_t BgL_auxz00_2552;
BgL_auxz00_2552 = 
(obj_t)(BgL_arg4872z00_2130); 
return 
MAKE_PAIR(BgL_auxz00_2552, BNIL);} } } } 
}



/* type-args-rtl_apply3757 */
obj_t BGl_typezd2argszd2rtl_apply3757z00zzsaw_castz00(obj_t BgL_envz00_2222, obj_t BgL_funz00_2223)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 156 */
{ 
BgL_rtl_applyz00_bglt BgL_funz00_1943;
BgL_funz00_1943 = 
(BgL_rtl_applyz00_bglt)(BgL_funz00_2223); 
{ /* ./SawMill/cast.scm 157 */
BgL_typez00_bglt BgL_arg4861z00_2128;
BgL_arg4861z00_2128 = 
BGl_findzd2typezd2zztype_envz00(
CNST_TABLE_REF(((long)4))); 
{ /* ./SawMill/cast.scm 157 */
obj_t BgL_auxz00_2558;
BgL_auxz00_2558 = 
(obj_t)(BgL_arg4861z00_2128); 
return 
MAKE_PAIR(BgL_auxz00_2558, BNIL);} } } } 
}



/* type-args-rtl_lightfuncall3755 */
obj_t BGl_typezd2argszd2rtl_lightfuncall3755z00zzsaw_castz00(obj_t BgL_envz00_2224, obj_t BgL_funz00_2225)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 153 */
{ 
BgL_rtl_lightfuncallz00_bglt BgL_funz00_1936;
BgL_funz00_1936 = 
(BgL_rtl_lightfuncallz00_bglt)(BgL_funz00_2225); 
{ /* ./SawMill/cast.scm 154 */
BgL_typez00_bglt BgL_arg4850z00_2126;
BgL_arg4850z00_2126 = 
BGl_findzd2typezd2zztype_envz00(
CNST_TABLE_REF(((long)4))); 
{ /* ./SawMill/cast.scm 154 */
obj_t BgL_auxz00_2564;
BgL_auxz00_2564 = 
(obj_t)(BgL_arg4850z00_2126); 
return 
MAKE_PAIR(BgL_auxz00_2564, BNIL);} } } } 
}



/* type-args-rtl_funcall3753 */
obj_t BGl_typezd2argszd2rtl_funcall3753z00zzsaw_castz00(obj_t BgL_envz00_2226, obj_t BgL_funz00_2227)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 150 */
{ 
BgL_rtl_funcallz00_bglt BgL_funz00_1929;
BgL_funz00_1929 = 
(BgL_rtl_funcallz00_bglt)(BgL_funz00_2227); 
{ /* ./SawMill/cast.scm 151 */
BgL_typez00_bglt BgL_arg4839z00_2124;
BgL_arg4839z00_2124 = 
BGl_findzd2typezd2zztype_envz00(
CNST_TABLE_REF(((long)4))); 
{ /* ./SawMill/cast.scm 151 */
obj_t BgL_auxz00_2570;
BgL_auxz00_2570 = 
(obj_t)(BgL_arg4839z00_2124); 
return 
MAKE_PAIR(BgL_auxz00_2570, BNIL);} } } } 
}



/* type-args-rtl_return3751 */
obj_t BGl_typezd2argszd2rtl_return3751z00zzsaw_castz00(obj_t BgL_envz00_2228, obj_t BgL_funz00_2229)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 147 */
{ 
BgL_rtl_returnz00_bglt BgL_funz00_1922;
BgL_funz00_1922 = 
(BgL_rtl_returnz00_bglt)(BgL_funz00_2229); 
{ /* ./SawMill/cast.scm 148 */
BgL_typez00_bglt BgL_arg4828z00_2121;
BgL_arg4828z00_2121 = 
(((BgL_rtl_returnz00_bglt)CREF(BgL_funz00_1922))->BgL_typez00); 
{ /* ./SawMill/cast.scm 148 */
obj_t BgL_auxz00_2575;
BgL_auxz00_2575 = 
(obj_t)(BgL_arg4828z00_2121); 
return 
MAKE_PAIR(BgL_auxz00_2575, BNIL);} } } } 
}



/* type-args-rtl_call3749 */
obj_t BGl_typezd2argszd2rtl_call3749z00zzsaw_castz00(obj_t BgL_envz00_2230, obj_t BgL_funz00_2231)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 138 */
{ 
BgL_rtl_callz00_bglt BgL_funz00_1894;
BgL_funz00_1894 = 
(BgL_rtl_callz00_bglt)(BgL_funz00_2231); 
{ /* ./SawMill/cast.scm 139 */
BgL_valuez00_bglt BgL_fz00_1897;
{ /* ./SawMill/cast.scm 139 */
BgL_variablez00_bglt BgL_obj1100z00_2100;
{ /* ./SawMill/cast.scm 139 */
BgL_globalz00_bglt BgL_auxz00_2579;
BgL_auxz00_2579 = 
(((BgL_rtl_callz00_bglt)CREF(BgL_funz00_1894))->BgL_varz00); 
BgL_obj1100z00_2100 = 
(BgL_variablez00_bglt)(BgL_auxz00_2579); } 
BgL_fz00_1897 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_2100))->BgL_valuez00); } 
{ /* ./SawMill/cast.scm 140 */
bool_t BgL_test4777z00_1898;
{ /* ./SawMill/cast.scm 140 */
obj_t BgL_obj1489z00_2101;
BgL_obj1489z00_2101 = 
(obj_t)(BgL_fz00_1897); 
BgL_test4777z00_1898 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1489z00_2101, BGl_cfunz00zzast_varz00); } 
if(BgL_test4777z00_1898)
{ /* ./SawMill/cast.scm 141 */
BgL_cfunz00_bglt BgL_obj1445z00_2102;
BgL_obj1445z00_2102 = 
(BgL_cfunz00_bglt)(BgL_fz00_1897); 
return 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_2102))->BgL_argszd2typezd2);}  else 
{ /* ./SawMill/cast.scm 142 */
obj_t BgL_rz00_1899;
{ /* ./SawMill/cast.scm 142 */
BgL_sfunz00_bglt BgL_obj1367z00_2103;
BgL_obj1367z00_2103 = 
(BgL_sfunz00_bglt)(BgL_fz00_1897); 
BgL_rz00_1899 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_2103))->BgL_argsz00); } 
{ /* ./SawMill/cast.scm 143 */
bool_t BgL_test4779z00_1900;
{ /* ./SawMill/cast.scm 143 */
bool_t BgL_test4809z00_1917;
BgL_test4809z00_1917 = 
NULLP(BgL_rz00_1899); 
if(BgL_test4809z00_1917)
{ /* ./SawMill/cast.scm 143 */
BgL_test4779z00_1900 = ((bool_t)1); }  else 
{ /* ./SawMill/cast.scm 143 */
obj_t BgL_arg4811z00_1918;
BgL_arg4811z00_1918 = 
CAR(BgL_rz00_1899); 
BgL_test4779z00_1900 = 
BGl_iszd2azf3z21zz__objectz00(BgL_arg4811z00_1918, BGl_typez00zztype_typez00); } } 
if(BgL_test4779z00_1900)
{ /* ./SawMill/cast.scm 143 */
return BgL_rz00_1899;}  else 
{ /* ./SawMill/cast.scm 145 */
bool_t BgL_test4780z00_1902;
BgL_test4780z00_1902 = 
NULLP(BgL_rz00_1899); 
if(BgL_test4780z00_1902)
{ /* ./SawMill/cast.scm 145 */
return BNIL;}  else 
{ /* ./SawMill/cast.scm 145 */
obj_t BgL_head3703z00_1903;
{ /* ./SawMill/cast.scm 145 */
BgL_typez00_bglt BgL_arg4801z00_1914;
{ /* ./SawMill/cast.scm 145 */
BgL_variablez00_bglt BgL_obj1097z00_2109;
{ /* ./SawMill/cast.scm 145 */
obj_t BgL_auxz00_2597;
BgL_auxz00_2597 = 
CAR(BgL_rz00_1899); 
BgL_obj1097z00_2109 = 
(BgL_variablez00_bglt)(BgL_auxz00_2597); } 
BgL_arg4801z00_1914 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_2109))->BgL_typez00); } 
{ /* ./SawMill/cast.scm 145 */
obj_t BgL_obj1z00_2110;
BgL_obj1z00_2110 = 
(obj_t)(BgL_arg4801z00_1914); 
BgL_head3703z00_1903 = 
MAKE_PAIR(BgL_obj1z00_2110, BNIL); } } 
{ 
obj_t BgL_l3701z00_1904;obj_t BgL_tail3704z00_1905;
{ /* ./SawMill/cast.scm 145 */
obj_t BgL_arg4782z00_1907;
BgL_arg4782z00_1907 = 
CDR(BgL_rz00_1899); 
BgL_l3701z00_1904 = BgL_arg4782z00_1907; 
BgL_tail3704z00_1905 = BgL_head3703z00_1903; 
BgL_map3702z00_1906:
{ /* ./SawMill/cast.scm 145 */
bool_t BgL_test4785z00_1908;
BgL_test4785z00_1908 = 
NULLP(BgL_l3701z00_1904); 
if(BgL_test4785z00_1908)
{ /* ./SawMill/cast.scm 145 */
return BgL_head3703z00_1903;}  else 
{ /* ./SawMill/cast.scm 145 */
obj_t BgL_newtail3705z00_1909;
{ /* ./SawMill/cast.scm 145 */
BgL_typez00_bglt BgL_arg4792z00_1911;
{ /* ./SawMill/cast.scm 145 */
BgL_variablez00_bglt BgL_obj1097z00_2115;
{ /* ./SawMill/cast.scm 145 */
obj_t BgL_auxz00_2606;
BgL_auxz00_2606 = 
CAR(BgL_l3701z00_1904); 
BgL_obj1097z00_2115 = 
(BgL_variablez00_bglt)(BgL_auxz00_2606); } 
BgL_arg4792z00_1911 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_2115))->BgL_typez00); } 
{ /* ./SawMill/cast.scm 145 */
obj_t BgL_obj1z00_2116;
BgL_obj1z00_2116 = 
(obj_t)(BgL_arg4792z00_1911); 
BgL_newtail3705z00_1909 = 
MAKE_PAIR(BgL_obj1z00_2116, BNIL); } } 
SET_CDR(BgL_tail3704z00_1905, BgL_newtail3705z00_1909); 
{ /* ./SawMill/cast.scm 145 */
obj_t BgL_arg4788z00_1910;
BgL_arg4788z00_1910 = 
CDR(BgL_l3701z00_1904); 
{ 
obj_t BgL_tail3704z00_2615;obj_t BgL_l3701z00_2614;
BgL_l3701z00_2614 = BgL_arg4788z00_1910; 
BgL_tail3704z00_2615 = BgL_newtail3705z00_1909; 
BgL_tail3704z00_1905 = BgL_tail3704z00_2615; 
BgL_l3701z00_1904 = BgL_l3701z00_2614; 
goto BgL_map3702z00_1906;} } } } } } } } } } } } } } 
}



/* type-args-rtl_storeg3747 */
obj_t BGl_typezd2argszd2rtl_storeg3747z00zzsaw_castz00(obj_t BgL_envz00_2232, obj_t BgL_funz00_2233)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 135 */
{ 
BgL_rtl_storegz00_bglt BgL_funz00_1886;
BgL_funz00_1886 = 
(BgL_rtl_storegz00_bglt)(BgL_funz00_2233); 
{ /* ./SawMill/cast.scm 136 */
BgL_typez00_bglt BgL_arg4764z00_1889;
{ /* ./SawMill/cast.scm 136 */
BgL_variablez00_bglt BgL_obj1097z00_2098;
{ /* ./SawMill/cast.scm 136 */
BgL_globalz00_bglt BgL_auxz00_2617;
BgL_auxz00_2617 = 
(((BgL_rtl_storegz00_bglt)CREF(BgL_funz00_1886))->BgL_varz00); 
BgL_obj1097z00_2098 = 
(BgL_variablez00_bglt)(BgL_auxz00_2617); } 
BgL_arg4764z00_1889 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_2098))->BgL_typez00); } 
{ /* ./SawMill/cast.scm 136 */
obj_t BgL_auxz00_2621;
BgL_auxz00_2621 = 
(obj_t)(BgL_arg4764z00_1889); 
return 
MAKE_PAIR(BgL_auxz00_2621, BNIL);} } } } 
}



/* type-args-rtl_vlength3745 */
obj_t BGl_typezd2argszd2rtl_vlength3745z00zzsaw_castz00(obj_t BgL_envz00_2234, obj_t BgL_funz00_2235)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 132 */
{ 
BgL_rtl_vlengthz00_bglt BgL_funz00_1879;
BgL_funz00_1879 = 
(BgL_rtl_vlengthz00_bglt)(BgL_funz00_2235); 
{ /* ./SawMill/cast.scm 133 */
BgL_typez00_bglt BgL_arg4753z00_2094;
BgL_arg4753z00_2094 = 
(((BgL_rtl_vlengthz00_bglt)CREF(BgL_funz00_1879))->BgL_typez00); 
{ /* ./SawMill/cast.scm 133 */
obj_t BgL_auxz00_2626;
BgL_auxz00_2626 = 
(obj_t)(BgL_arg4753z00_2094); 
return 
MAKE_PAIR(BgL_auxz00_2626, BNIL);} } } } 
}



/* type-args-rtl_vset3743 */
obj_t BGl_typezd2argszd2rtl_vset3743z00zzsaw_castz00(obj_t BgL_envz00_2236, obj_t BgL_funz00_2237)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 129 */
{ 
BgL_rtl_vsetz00_bglt BgL_funz00_1872;
BgL_funz00_1872 = 
(BgL_rtl_vsetz00_bglt)(BgL_funz00_2237); 
{ /* ./SawMill/cast.scm 130 */
BgL_typez00_bglt BgL_arg4742z00_2091;
BgL_arg4742z00_2091 = 
(((BgL_rtl_vsetz00_bglt)CREF(BgL_funz00_1872))->BgL_vtypez00); 
{ /* ./SawMill/cast.scm 130 */
obj_t BgL_auxz00_2631;
BgL_auxz00_2631 = 
(obj_t)(BgL_arg4742z00_2091); 
return 
MAKE_PAIR(BgL_auxz00_2631, BNIL);} } } } 
}



/* type-args-rtl_vref3741 */
obj_t BGl_typezd2argszd2rtl_vref3741z00zzsaw_castz00(obj_t BgL_envz00_2238, obj_t BgL_funz00_2239)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 126 */
{ 
BgL_rtl_vrefz00_bglt BgL_funz00_1865;
BgL_funz00_1865 = 
(BgL_rtl_vrefz00_bglt)(BgL_funz00_2239); 
{ /* ./SawMill/cast.scm 127 */
BgL_typez00_bglt BgL_arg4731z00_2088;
BgL_arg4731z00_2088 = 
(((BgL_rtl_vrefz00_bglt)CREF(BgL_funz00_1865))->BgL_vtypez00); 
{ /* ./SawMill/cast.scm 127 */
obj_t BgL_auxz00_2636;
BgL_auxz00_2636 = 
(obj_t)(BgL_arg4731z00_2088); 
return 
MAKE_PAIR(BgL_auxz00_2636, BNIL);} } } } 
}



/* type-args-rtl_setfield3739 */
obj_t BGl_typezd2argszd2rtl_setfield3739z00zzsaw_castz00(obj_t BgL_envz00_2240, obj_t BgL_funz00_2241)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 123 */
{ 
BgL_rtl_setfieldz00_bglt BgL_funz00_1856;
BgL_funz00_1856 = 
(BgL_rtl_setfieldz00_bglt)(BgL_funz00_2241); 
{ /* ./SawMill/cast.scm 124 */
BgL_typez00_bglt BgL_arg4714z00_1859;obj_t BgL_arg4715z00_1860;
BgL_arg4714z00_1859 = 
(((BgL_rtl_setfieldz00_bglt)CREF(BgL_funz00_1856))->BgL_objtypez00); 
{ /* ./SawMill/cast.scm 124 */
BgL_typez00_bglt BgL_arg4719z00_1861;
BgL_arg4719z00_1861 = 
(((BgL_rtl_setfieldz00_bglt)CREF(BgL_funz00_1856))->BgL_typez00); 
{ /* ./SawMill/cast.scm 124 */
obj_t BgL_auxz00_2642;
BgL_auxz00_2642 = 
(obj_t)(BgL_arg4719z00_1861); 
BgL_arg4715z00_1860 = 
MAKE_PAIR(BgL_auxz00_2642, BNIL); } } 
{ /* ./SawMill/cast.scm 124 */
obj_t BgL_auxz00_2645;
BgL_auxz00_2645 = 
(obj_t)(BgL_arg4714z00_1859); 
return 
MAKE_PAIR(BgL_auxz00_2645, BgL_arg4715z00_1860);} } } } 
}



/* type-args-rtl_getfield3737 */
obj_t BGl_typezd2argszd2rtl_getfield3737z00zzsaw_castz00(obj_t BgL_envz00_2242, obj_t BgL_funz00_2243)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 120 */
{ 
BgL_rtl_getfieldz00_bglt BgL_funz00_1849;
BgL_funz00_1849 = 
(BgL_rtl_getfieldz00_bglt)(BgL_funz00_2243); 
{ /* ./SawMill/cast.scm 121 */
BgL_typez00_bglt BgL_arg4703z00_2083;
BgL_arg4703z00_2083 = 
(((BgL_rtl_getfieldz00_bglt)CREF(BgL_funz00_1849))->BgL_objtypez00); 
{ /* ./SawMill/cast.scm 121 */
obj_t BgL_auxz00_2650;
BgL_auxz00_2650 = 
(obj_t)(BgL_arg4703z00_2083); 
return 
MAKE_PAIR(BgL_auxz00_2650, BNIL);} } } } 
}



/* type-dest-rtl_cast3733 */
obj_t BGl_typezd2destzd2rtl_cast3733z00zzsaw_castz00(obj_t BgL_envz00_2244, obj_t BgL_funz00_2245, obj_t BgL_argsz00_2246)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 113 */
{ /* ./SawMill/cast.scm 114 */
BgL_typez00_bglt BgL_auxz00_2654;
{ /* ./SawMill/cast.scm 114 */
BgL_rtl_castz00_bglt BgL_funz00_2295;
BgL_funz00_2295 = 
(BgL_rtl_castz00_bglt)(BgL_funz00_2245); 
BgL_auxz00_2654 = 
(((BgL_rtl_castz00_bglt)CREF(BgL_funz00_2295))->BgL_typez00); } 
return 
(obj_t)(BgL_auxz00_2654);} } 
}



/* type-dest-rtl_call3731 */
obj_t BGl_typezd2destzd2rtl_call3731z00zzsaw_castz00(obj_t BgL_envz00_2247, obj_t BgL_funz00_2248, obj_t BgL_argsz00_2249)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 110 */
{ 
BgL_rtl_callz00_bglt BgL_funz00_1836;obj_t BgL_argsz00_1837;
{ /* ./SawMill/cast.scm 111 */
BgL_typez00_bglt BgL_auxz00_2658;
BgL_funz00_1836 = 
(BgL_rtl_callz00_bglt)(BgL_funz00_2248); 
BgL_argsz00_1837 = BgL_argsz00_2249; 
{ /* ./SawMill/cast.scm 111 */
BgL_variablez00_bglt BgL_obj1097z00_2081;
{ /* ./SawMill/cast.scm 111 */
BgL_globalz00_bglt BgL_auxz00_2659;
BgL_auxz00_2659 = 
(((BgL_rtl_callz00_bglt)CREF(BgL_funz00_1836))->BgL_varz00); 
BgL_obj1097z00_2081 = 
(BgL_variablez00_bglt)(BgL_auxz00_2659); } 
BgL_auxz00_2658 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_2081))->BgL_typez00); } 
return 
(obj_t)(BgL_auxz00_2658);} } } 
}



/* type-dest-rtl_isa3729 */
obj_t BGl_typezd2destzd2rtl_isa3729z00zzsaw_castz00(obj_t BgL_envz00_2250, obj_t BgL_funz00_2251, obj_t BgL_argsz00_2252)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 107 */
{ /* ./SawMill/cast.scm 108 */
BgL_typez00_bglt BgL_auxz00_2665;
BgL_auxz00_2665 = 
BGl_findzd2typezd2zztype_envz00(
CNST_TABLE_REF(((long)5))); 
return 
(obj_t)(BgL_auxz00_2665);} } 
}



/* type-dest-rtl_vlength3727 */
obj_t BGl_typezd2destzd2rtl_vlength3727z00zzsaw_castz00(obj_t BgL_envz00_2253, obj_t BgL_funz00_2254, obj_t BgL_argsz00_2255)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 104 */
{ /* ./SawMill/cast.scm 105 */
BgL_typez00_bglt BgL_auxz00_2669;
BgL_auxz00_2669 = 
BGl_findzd2typezd2zztype_envz00(
CNST_TABLE_REF(((long)5))); 
return 
(obj_t)(BgL_auxz00_2669);} } 
}



/* type-dest-rtl_vref3725 */
obj_t BGl_typezd2destzd2rtl_vref3725z00zzsaw_castz00(obj_t BgL_envz00_2256, obj_t BgL_funz00_2257, obj_t BgL_argsz00_2258)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 101 */
{ /* ./SawMill/cast.scm 102 */
BgL_typez00_bglt BgL_auxz00_2673;
{ /* ./SawMill/cast.scm 102 */
BgL_rtl_vrefz00_bglt BgL_funz00_2301;
BgL_funz00_2301 = 
(BgL_rtl_vrefz00_bglt)(BgL_funz00_2257); 
BgL_auxz00_2673 = 
(((BgL_rtl_vrefz00_bglt)CREF(BgL_funz00_2301))->BgL_typez00); } 
return 
(obj_t)(BgL_auxz00_2673);} } 
}



/* type-dest-rtl_valloc3723 */
obj_t BGl_typezd2destzd2rtl_valloc3723z00zzsaw_castz00(obj_t BgL_envz00_2259, obj_t BgL_funz00_2260, obj_t BgL_argsz00_2261)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 98 */
{ /* ./SawMill/cast.scm 99 */
BgL_typez00_bglt BgL_auxz00_2677;
{ /* ./SawMill/cast.scm 99 */
BgL_rtl_vallocz00_bglt BgL_funz00_2303;
BgL_funz00_2303 = 
(BgL_rtl_vallocz00_bglt)(BgL_funz00_2260); 
BgL_auxz00_2677 = 
(((BgL_rtl_vallocz00_bglt)CREF(BgL_funz00_2303))->BgL_vtypez00); } 
return 
(obj_t)(BgL_auxz00_2677);} } 
}



/* type-dest-rtl_new3721 */
obj_t BGl_typezd2destzd2rtl_new3721z00zzsaw_castz00(obj_t BgL_envz00_2262, obj_t BgL_funz00_2263, obj_t BgL_argsz00_2264)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 95 */
{ /* ./SawMill/cast.scm 96 */
BgL_typez00_bglt BgL_auxz00_2681;
{ /* ./SawMill/cast.scm 96 */
BgL_rtl_newz00_bglt BgL_funz00_2305;
BgL_funz00_2305 = 
(BgL_rtl_newz00_bglt)(BgL_funz00_2263); 
BgL_auxz00_2681 = 
(((BgL_rtl_newz00_bglt)CREF(BgL_funz00_2305))->BgL_typez00); } 
return 
(obj_t)(BgL_auxz00_2681);} } 
}



/* type-dest-rtl_getfield3719 */
obj_t BGl_typezd2destzd2rtl_getfield3719z00zzsaw_castz00(obj_t BgL_envz00_2265, obj_t BgL_funz00_2266, obj_t BgL_argsz00_2267)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 92 */
{ /* ./SawMill/cast.scm 93 */
BgL_typez00_bglt BgL_auxz00_2685;
{ /* ./SawMill/cast.scm 93 */
BgL_rtl_getfieldz00_bglt BgL_funz00_2307;
BgL_funz00_2307 = 
(BgL_rtl_getfieldz00_bglt)(BgL_funz00_2266); 
BgL_auxz00_2685 = 
(((BgL_rtl_getfieldz00_bglt)CREF(BgL_funz00_2307))->BgL_typez00); } 
return 
(obj_t)(BgL_auxz00_2685);} } 
}



/* type-dest-rtl_loadg3717 */
obj_t BGl_typezd2destzd2rtl_loadg3717z00zzsaw_castz00(obj_t BgL_envz00_2268, obj_t BgL_funz00_2269, obj_t BgL_argsz00_2270)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 89 */
{ 
BgL_rtl_loadgz00_bglt BgL_funz00_1793;obj_t BgL_argsz00_1794;
{ /* ./SawMill/cast.scm 90 */
BgL_typez00_bglt BgL_auxz00_2689;
BgL_funz00_1793 = 
(BgL_rtl_loadgz00_bglt)(BgL_funz00_2269); 
BgL_argsz00_1794 = BgL_argsz00_2270; 
{ /* ./SawMill/cast.scm 90 */
BgL_variablez00_bglt BgL_obj1097z00_2074;
{ /* ./SawMill/cast.scm 90 */
BgL_globalz00_bglt BgL_auxz00_2690;
BgL_auxz00_2690 = 
(((BgL_rtl_loadgz00_bglt)CREF(BgL_funz00_1793))->BgL_varz00); 
BgL_obj1097z00_2074 = 
(BgL_variablez00_bglt)(BgL_auxz00_2690); } 
BgL_auxz00_2689 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_2074))->BgL_typez00); } 
return 
(obj_t)(BgL_auxz00_2689);} } } 
}



/* type-dest-rtl_loadfun3715 */
obj_t BGl_typezd2destzd2rtl_loadfun3715z00zzsaw_castz00(obj_t BgL_envz00_2271, obj_t BgL_funz00_2272, obj_t BgL_argsz00_2273)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 84 */
{ /* ./SawMill/cast.scm 87 */
BgL_typez00_bglt BgL_auxz00_2696;
BgL_auxz00_2696 = 
BGl_findzd2typezd2zztype_envz00(
CNST_TABLE_REF(((long)4))); 
return 
(obj_t)(BgL_auxz00_2696);} } 
}



/* type-dest-rtl_loadi3713 */
obj_t BGl_typezd2destzd2rtl_loadi3713z00zzsaw_castz00(obj_t BgL_envz00_2274, obj_t BgL_funz00_2275, obj_t BgL_argsz00_2276)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 81 */
{ 
BgL_rtl_loadiz00_bglt BgL_funz00_1780;obj_t BgL_argsz00_1781;
{ /* ./SawMill/cast.scm 82 */
BgL_typez00_bglt BgL_auxz00_2700;
BgL_funz00_1780 = 
(BgL_rtl_loadiz00_bglt)(BgL_funz00_2275); 
BgL_argsz00_1781 = BgL_argsz00_2276; 
{ /* ./SawMill/cast.scm 82 */
BgL_nodez00_bglt BgL_obj1561z00_2071;
{ /* ./SawMill/cast.scm 82 */
BgL_atomz00_bglt BgL_auxz00_2701;
BgL_auxz00_2701 = 
(((BgL_rtl_loadiz00_bglt)CREF(BgL_funz00_1780))->BgL_constantz00); 
BgL_obj1561z00_2071 = 
(BgL_nodez00_bglt)(BgL_auxz00_2701); } 
BgL_auxz00_2700 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1561z00_2071))->BgL_typez00); } 
return 
(obj_t)(BgL_auxz00_2700);} } } 
}



/* type-dest-rtl_mov3711 */
obj_t BGl_typezd2destzd2rtl_mov3711z00zzsaw_castz00(obj_t BgL_envz00_2277, obj_t BgL_funz00_2278, obj_t BgL_argsz00_2279)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 78 */
{ 
BgL_rtl_movz00_bglt BgL_funz00_1773;obj_t BgL_argsz00_1774;
{ /* ./SawMill/cast.scm 79 */
BgL_typez00_bglt BgL_auxz00_2707;
BgL_funz00_1773 = 
(BgL_rtl_movz00_bglt)(BgL_funz00_2278); 
BgL_argsz00_1774 = BgL_argsz00_2279; 
{ /* ./SawMill/cast.scm 79 */
BgL_rtl_regz00_bglt BgL_obj3235z00_2068;
{ /* ./SawMill/cast.scm 79 */
obj_t BgL_auxz00_2708;
BgL_auxz00_2708 = 
CAR(BgL_argsz00_1774); 
BgL_obj3235z00_2068 = 
(BgL_rtl_regz00_bglt)(BgL_auxz00_2708); } 
BgL_auxz00_2707 = 
(((BgL_rtl_regz00_bglt)CREF(BgL_obj3235z00_2068))->BgL_typez00); } 
return 
(obj_t)(BgL_auxz00_2707);} } } 
}



/* type-dest-rtl_nop3709 */
obj_t BGl_typezd2destzd2rtl_nop3709z00zzsaw_castz00(obj_t BgL_envz00_2280, obj_t BgL_funz00_2281, obj_t BgL_argsz00_2282)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 75 */
{ /* ./SawMill/cast.scm 76 */
BgL_typez00_bglt BgL_auxz00_2714;
BgL_auxz00_2714 = 
BGl_findzd2typezd2zztype_envz00(
CNST_TABLE_REF(((long)6))); 
return 
(obj_t)(BgL_auxz00_2714);} } 
}



/* type-dest */
BgL_typez00_bglt BGl_typezd2destzd2zzsaw_castz00(BgL_rtl_funz00_bglt BgL_funz00_18, obj_t BgL_argsz00_19)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 72 */
{ /* ./SawMill/cast.scm 72 */
obj_t BgL_method3707z00_2134;
{ /* ./SawMill/cast.scm 72 */
BgL_objectz00_bglt BgL_objz00_2135;
BgL_objz00_2135 = 
(BgL_objectz00_bglt)(BgL_funz00_18); 
{ /* ./SawMill/cast.scm 72 */
long BgL_objzd2classzd2numz00_2136;
BgL_objzd2classzd2numz00_2136 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2135); 
{ /* ./SawMill/cast.scm 72 */
obj_t BgL_arg2017z00_2137;
{ /* ./SawMill/cast.scm 72 */
int BgL_auxz00_2720;
BgL_auxz00_2720 = 
(int)(((long)1)); 
BgL_arg2017z00_2137 = 
PROCEDURE_REF(BGl_typezd2destzd2envz00zzsaw_castz00, BgL_auxz00_2720); } 
{ /* ./SawMill/cast.scm 72 */
int BgL_offsetz00_2140;
BgL_offsetz00_2140 = 
(int)(BgL_objzd2classzd2numz00_2136); 
{ /* ./SawMill/cast.scm 72 */
long BgL_offsetz00_2141;
{ /* ./SawMill/cast.scm 72 */
long BgL_auxz00_2724;
BgL_auxz00_2724 = 
(long)(BgL_offsetz00_2140); 
BgL_offsetz00_2141 = 
(BgL_auxz00_2724-OBJECT_TYPE); } 
{ /* ./SawMill/cast.scm 72 */
long BgL_modz00_2142;
{ /* ./SawMill/cast.scm 72 */
int BgL_arg2028z00_2143;
BgL_arg2028z00_2143 = 
(int)(((long)8)); 
{ /* ./SawMill/cast.scm 72 */
long BgL_n2z00_2151;
BgL_n2z00_2151 = 
(long)(BgL_arg2028z00_2143); 
BgL_modz00_2142 = 
(BgL_offsetz00_2141/BgL_n2z00_2151); } } 
{ /* ./SawMill/cast.scm 72 */
long BgL_restz00_2144;
{ /* ./SawMill/cast.scm 72 */
int BgL_arg2024z00_2145;
BgL_arg2024z00_2145 = 
(int)(((long)8)); 
{ /* ./SawMill/cast.scm 72 */
long BgL_n2z00_2154;
BgL_n2z00_2154 = 
(long)(BgL_arg2024z00_2145); 
BgL_restz00_2144 = 
(BgL_offsetz00_2141%BgL_n2z00_2154); } } 
{ /* ./SawMill/cast.scm 72 */

{ /* ./SawMill/cast.scm 72 */
obj_t BgL_bucketz00_2146;
{ /* ./SawMill/cast.scm 72 */
int BgL_kz00_2156;
BgL_kz00_2156 = 
(int)(BgL_modz00_2142); 
BgL_bucketz00_2146 = 
VECTOR_REF(BgL_arg2017z00_2137,BgL_kz00_2156); } 
{ /* ./SawMill/cast.scm 72 */
int BgL_kz00_2158;
BgL_kz00_2158 = 
(int)(BgL_restz00_2144); 
BgL_method3707z00_2134 = 
VECTOR_REF(BgL_bucketz00_2146,BgL_kz00_2158); } } } } } } } } } } 
{ /* ./SawMill/cast.scm 72 */
obj_t BgL_auxz00_2737;
BgL_auxz00_2737 = 
PROCEDURE_ENTRY(BgL_method3707z00_2134)(BgL_method3707z00_2134, 
(obj_t)(BgL_funz00_18), BgL_argsz00_19, BEOA); 
return 
(BgL_typez00_bglt)(BgL_auxz00_2737);} } } 
}



/* _type-dest */
obj_t BGl__typezd2destzd2zzsaw_castz00(obj_t BgL_envz00_2189, obj_t BgL_funz00_2190, obj_t BgL_argsz00_2191)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 72 */
{ /* ./SawMill/cast.scm 72 */
BgL_typez00_bglt BgL_auxz00_2742;
BgL_auxz00_2742 = 
BGl_typezd2destzd2zzsaw_castz00(
(BgL_rtl_funz00_bglt)(BgL_funz00_2190), BgL_argsz00_2191); 
return 
(obj_t)(BgL_auxz00_2742);} } 
}



/* _type-dest-default3706 */
obj_t BGl__typezd2destzd2default3706z00zzsaw_castz00(obj_t BgL_envz00_2283, obj_t BgL_funz00_2284, obj_t BgL_argsz00_2285)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 1 */
{ /* ./SawMill/cast.scm 73 */
BgL_typez00_bglt BgL_auxz00_2746;
BgL_auxz00_2746 = 
BGl_findzd2typezd2zztype_envz00(
CNST_TABLE_REF(((long)7))); 
return 
(obj_t)(BgL_auxz00_2746);} } 
}



/* type-args */
obj_t BGl_typezd2argszd2zzsaw_castz00(BgL_rtl_funz00_bglt BgL_funz00_48)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 117 */
{ /* ./SawMill/cast.scm 117 */
obj_t BgL_method3735z00_2159;
{ /* ./SawMill/cast.scm 117 */
BgL_objectz00_bglt BgL_objz00_2160;
BgL_objz00_2160 = 
(BgL_objectz00_bglt)(BgL_funz00_48); 
{ /* ./SawMill/cast.scm 117 */
long BgL_objzd2classzd2numz00_2161;
BgL_objzd2classzd2numz00_2161 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2160); 
{ /* ./SawMill/cast.scm 117 */
obj_t BgL_arg2017z00_2162;
{ /* ./SawMill/cast.scm 117 */
int BgL_auxz00_2752;
BgL_auxz00_2752 = 
(int)(((long)1)); 
BgL_arg2017z00_2162 = 
PROCEDURE_REF(BGl_typezd2argszd2envz00zzsaw_castz00, BgL_auxz00_2752); } 
{ /* ./SawMill/cast.scm 117 */
int BgL_offsetz00_2165;
BgL_offsetz00_2165 = 
(int)(BgL_objzd2classzd2numz00_2161); 
{ /* ./SawMill/cast.scm 117 */
long BgL_offsetz00_2166;
{ /* ./SawMill/cast.scm 117 */
long BgL_auxz00_2756;
BgL_auxz00_2756 = 
(long)(BgL_offsetz00_2165); 
BgL_offsetz00_2166 = 
(BgL_auxz00_2756-OBJECT_TYPE); } 
{ /* ./SawMill/cast.scm 117 */
long BgL_modz00_2167;
{ /* ./SawMill/cast.scm 117 */
int BgL_arg2028z00_2168;
BgL_arg2028z00_2168 = 
(int)(((long)8)); 
{ /* ./SawMill/cast.scm 117 */
long BgL_n2z00_2176;
BgL_n2z00_2176 = 
(long)(BgL_arg2028z00_2168); 
BgL_modz00_2167 = 
(BgL_offsetz00_2166/BgL_n2z00_2176); } } 
{ /* ./SawMill/cast.scm 117 */
long BgL_restz00_2169;
{ /* ./SawMill/cast.scm 117 */
int BgL_arg2024z00_2170;
BgL_arg2024z00_2170 = 
(int)(((long)8)); 
{ /* ./SawMill/cast.scm 117 */
long BgL_n2z00_2179;
BgL_n2z00_2179 = 
(long)(BgL_arg2024z00_2170); 
BgL_restz00_2169 = 
(BgL_offsetz00_2166%BgL_n2z00_2179); } } 
{ /* ./SawMill/cast.scm 117 */

{ /* ./SawMill/cast.scm 117 */
obj_t BgL_bucketz00_2171;
{ /* ./SawMill/cast.scm 117 */
int BgL_kz00_2181;
BgL_kz00_2181 = 
(int)(BgL_modz00_2167); 
BgL_bucketz00_2171 = 
VECTOR_REF(BgL_arg2017z00_2162,BgL_kz00_2181); } 
{ /* ./SawMill/cast.scm 117 */
int BgL_kz00_2183;
BgL_kz00_2183 = 
(int)(BgL_restz00_2169); 
BgL_method3735z00_2159 = 
VECTOR_REF(BgL_bucketz00_2171,BgL_kz00_2183); } } } } } } } } } } 
return 
PROCEDURE_ENTRY(BgL_method3735z00_2159)(BgL_method3735z00_2159, 
(obj_t)(BgL_funz00_48), BEOA);} } 
}



/* _type-args */
obj_t BGl__typezd2argszd2zzsaw_castz00(obj_t BgL_envz00_2187, obj_t BgL_funz00_2188)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 117 */
return 
BGl_typezd2argszd2zzsaw_castz00(
(BgL_rtl_funz00_bglt)(BgL_funz00_2188));} 
}



/* _type-args-default3734 */
obj_t BGl__typezd2argszd2default3734z00zzsaw_castz00(obj_t BgL_envz00_2286, obj_t BgL_funz00_2287)
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 1 */
return BNIL;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzsaw_castz00()
{ AN_OBJECT;
{ /* ./SawMill/cast.scm 1 */
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "saw_cast"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "saw_cast"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "saw_cast"); 
BGl_modulezd2initializa7ationz75zztype_envz00(((long)25186), "saw_cast"); 
BGl_modulezd2initializa7ationz75zzobject_classz00(((long)30791), "saw_cast"); 
BGl_modulezd2initializa7ationz75zzbackend_backendz00(((long)3428), "saw_cast"); 
return 
BGl_modulezd2initializa7ationz75zzsaw_defsz00(((long)12736), "saw_cast");} 
}

