/*===========================================================================*/
/*   (SawMill/extratype.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/extratype.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_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_hookz00_bgl {
   struct BgL_typez00_bgl * BgL_typez00;
} *BgL_hookz00_bglt;


static obj_t BGl_typecheckzd2funcall2850zd2zzsaw_extratypez00(obj_t, obj_t);
static obj_t BGl_typecheckzd2letzd2var2834z00zzsaw_extratypez00(obj_t, obj_t);
static obj_t BGl_typecheckzd2extern2852zd2zzsaw_extratypez00(obj_t, obj_t);
static obj_t BGl_methodzd2initzd2zzsaw_extratypez00();
static obj_t BGl_objectzd2ze3structzd2hook2868ze3zzsaw_extratypez00(obj_t, obj_t);
static obj_t BGl_typecheckzd2app2846zd2zzsaw_extratypez00(obj_t, obj_t);
BGL_IMPORT obj_t open_input_string(obj_t);
extern BgL_typez00_bglt BGl_makezd2typezd2zztype_typez00(obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, bool_t, bool_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
BGL_IMPORT long BGl_classzd2numzd2zz__objectz00(obj_t);
extern obj_t BGl_letzd2funzd2zzast_nodez00;
extern obj_t BGl_sfunz00zzast_varz00;
static obj_t BGl_typecheckzd2fail2860zd2zzsaw_extratypez00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
BGL_IMPORT bool_t BGl_iszd2azf3z21zz__objectz00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_objectzd2ze3structz31zz__objectz00(BgL_objectz00_bglt);
BGL_IMPORT obj_t BGl_addzd2genericz12zc0zz__objectz00(obj_t, obj_t);
extern obj_t BGl_letzd2varzd2zzast_nodez00;
BGL_IMPORT obj_t BGl_registerzd2classz12zc0zz__objectz00(obj_t, obj_t, obj_t, obj_t, long, obj_t, obj_t, obj_t);
extern obj_t BGl_za2moduleza2z00zzmodule_modulez00;
static obj_t BGl_typecheckzd2jumpzd2exzd2it2858zd2zzsaw_extratypez00(obj_t, obj_t);
extern BgL_typez00_bglt BGl_typeofz00zztype_typeofz00(BgL_nodez00_bglt);
static obj_t BGl_typecheckzd2default2827zd2zzsaw_extratypez00(BgL_nodez00_bglt);
extern obj_t BGl_typez00zztype_typez00;
static obj_t BGl_typecheckz00zzsaw_extratypez00(BgL_nodez00_bglt);
extern obj_t BGl_castz00zzast_nodez00;
static bool_t BGl_za2moreza2z00zzsaw_extratypez00;
extern obj_t BGl_boxzd2refzd2zzast_nodez00;
extern obj_t BGl_varz00zzast_nodez00;
static bool_t BGl_checkzd2argszd2paramsz00zzsaw_extratypez00(BgL_variablez00_bglt, obj_t);
static obj_t BGl_cnstzd2initzd2zzsaw_extratypez00();
extern obj_t BGl_atomz00zzast_nodez00;
extern obj_t BGl_failz00zzast_nodez00;
extern obj_t BGl_funcallz00zzast_nodez00;
static obj_t BGl__typecheck4018z00zzsaw_extratypez00(obj_t, obj_t);
static obj_t BGl_typecheckzd2atom2830zd2zzsaw_extratypez00(obj_t, obj_t);
static obj_t BGl_assignzd2typezd2zzsaw_extratypez00(obj_t, obj_t);
static obj_t BGl_importedzd2moduleszd2initz00zzsaw_extratypez00();
extern obj_t BGl_makezd2boxzd2zzast_nodez00;
BGL_IMPORT obj_t make_struct(obj_t, int, obj_t);
BGL_EXPORTED_DECL obj_t BGl_sawzd2extratypeszd2zzsaw_extratypez00(obj_t);
BGL_IMPORT obj_t BGl_addzd2methodz12zc0zz__objectz00(obj_t, obj_t, obj_t);
static obj_t BGl_typecheckzd2setzd2exzd2it2856zd2zzsaw_extratypez00(obj_t, obj_t);
extern obj_t BGl_selectz00zzast_nodez00;
static obj_t BGl_toplevelzd2initzd2zzsaw_extratypez00();
extern obj_t BGl_appzd2lyzd2zzast_nodez00;
static obj_t BGl_za2changedzd2varza2zd2zzsaw_extratypez00 = BUNSPEC;
extern obj_t BGl_boxzd2setz12zc0zzast_nodez00;
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzsaw_extratypez00(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_typeofz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_envz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzmodule_modulez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
static obj_t BGl_typecheckzd2makezd2box2862z00zzsaw_extratypez00(obj_t, obj_t);
static obj_t BGl_typecheckzd2setq2836zd2zzsaw_extratypez00(obj_t, obj_t);
static obj_t BGl_sawzd2typecheckzd2zzsaw_extratypez00(obj_t);
static obj_t BGl_typecheckzd2var2832zd2zzsaw_extratypez00(obj_t, obj_t);
static obj_t BGl_typecheckzd2select2842zd2zzsaw_extratypez00(obj_t, obj_t);
static obj_t BGl_typecheckzd2conditional2840zd2zzsaw_extratypez00(obj_t, obj_t);
static obj_t BGl_typecheckzd2boxzd2ref2864z00zzsaw_extratypez00(obj_t, obj_t);
extern BgL_typez00_bglt BGl_findzd2typezd2zztype_envz00(obj_t);
static obj_t BGl__sawzd2extratypeszd2zzsaw_extratypez00(obj_t, obj_t);
static obj_t BGl_structzb2objectzd2ze3objectzd2hook2870z51zzsaw_extratypez00(obj_t, obj_t, obj_t);
extern obj_t BGl_setzd2exzd2itz00zzast_nodez00;
BGL_IMPORT BgL_objectz00_bglt BGl_structzb2objectzd2ze3objectz83zz__objectz00(BgL_objectz00_bglt, obj_t);
extern obj_t BGl_shapez00zztools_shapez00(obj_t);
static obj_t BGl__typecheckzd2default2827zd2zzsaw_extratypez00(obj_t, obj_t);
static obj_t BGl_assignzd2typezd2varz00zzsaw_extratypez00(obj_t, obj_t);
extern obj_t BGl_jumpzd2exzd2itz00zzast_nodez00;
extern obj_t BGl_externz00zzast_nodez00;
extern obj_t BGl_conditionalz00zzast_nodez00;
extern obj_t BGl_sequencez00zzast_nodez00;
static obj_t BGl_za2changedzd2nodeza2zd2zzsaw_extratypez00 = BUNSPEC;
extern obj_t BGl_appz00zzast_nodez00;
static obj_t BGl_typecheckzd2cast2854zd2zzsaw_extratypez00(obj_t, obj_t);
static obj_t BGl__allocatezd2hookzd2zzsaw_extratypez00(obj_t);
extern obj_t BGl_localz00zzast_varz00;
static obj_t BGl_typecheckzd2sequence2838zd2zzsaw_extratypez00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_warningz00zz__errorz00(obj_t);
static obj_t BGl_objectzd2initzd2zzsaw_extratypez00();
static obj_t BGl_requirezd2initializa7ationz75zzsaw_extratypez00 = BUNSPEC;
static obj_t BGl_hookz00zzsaw_extratypez00 = BUNSPEC;
static obj_t BGl_typecheckzd2letzd2fun2844z00zzsaw_extratypez00(obj_t, obj_t);
static obj_t BGl_typecheckzd2appzd2ly2848z00zzsaw_extratypez00(obj_t, obj_t);
static obj_t BGl_libraryzd2moduleszd2initz00zzsaw_extratypez00();
static obj_t BGl_typecheckzd2boxzd2setz122866z12zzsaw_extratypez00(obj_t, obj_t);
extern obj_t BGl_setqz00zzast_nodez00;
BGL_IMPORT obj_t BGl_findzd2superzd2classzd2methodzd2zz__objectz00(BgL_objectz00_bglt, obj_t, obj_t);
static obj_t __cnst[ 16 ] ;


BGL_IMPORT obj_t BGl_objectzd2ze3structzd2envze3zz__objectz00;
DEFINE_STATIC_PROCEDURE( BGl_allocatezd2hookzd2envz00zzsaw_extratypez00, BgL_bgl__allocateza7d2hookza7d2za7za7saw_extratypeza7004625za7, BGl__allocatezd2hookzd2zzsaw_extratypez00, 0L, 0 );
DEFINE_STRING( BGl_string4596z00zzsaw_extratypez00, BgL_bgl_string4596za700za7za7saw_extratypeza7004626z00, "typecheck-default2827 unspecified procedure-1-el-set! procedure-1-el-ref make-el-procedure-1 procedure-el-set! procedure-el-ref typecheck make-el-procedure bigloo _ obj vector elight hook export ", 195 );
DEFINE_STRING( BGl_string4595z00zzsaw_extratypez00, BgL_bgl_string4595za700za7za7saw_extratypeza7004627z00, "No method for this object", 25 );
DEFINE_STRING( BGl_string4594z00zzsaw_extratypez00, BgL_bgl_string4594za700za7za7saw_extratypeza7004628z00, " into 'obj", 10 );
DEFINE_STRING( BGl_string4593z00zzsaw_extratypez00, BgL_bgl_string4593za700za7za7saw_extratypeza7004629z00, "Turning ", 8 );
DEFINE_STRING( BGl_string4592z00zzsaw_extratypez00, BgL_bgl_string4592za700za7za7saw_extratypeza7004630z00, " into 'vector", 13 );
DEFINE_STATIC_PROCEDURE( BGl_typecheckzd2default2827zd2envz00zzsaw_extratypez00, BgL_bgl__typecheckza7d2default2827za7d2za7za7saw_extratypeza7004631za7, BGl__typecheckzd2default2827zd2zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4571z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2atom2830za7d2za7za7saw_extratypeza7004632za7, BGl_typecheckzd2atom2830zd2zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4572z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2var2832za7d2za7za7saw_extratypeza7004633za7, BGl_typecheckzd2var2832zd2zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4573z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2letza7d2var2834za700za7za7saw_extratypeza7004634z00, BGl_typecheckzd2letzd2var2834z00zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4574z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2setq2836za7d2za7za7saw_extratypeza7004635za7, BGl_typecheckzd2setq2836zd2zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4575z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2sequence2838za7d2za7za7saw_extratypeza7004636za7, BGl_typecheckzd2sequence2838zd2zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4576z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2conditional2840za7d2za7za7saw_extratypeza7004637za7, BGl_typecheckzd2conditional2840zd2zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4577z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2select2842za7d2za7za7saw_extratypeza7004638za7, BGl_typecheckzd2select2842zd2zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4578z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2letza7d2fun2844za700za7za7saw_extratypeza7004639z00, BGl_typecheckzd2letzd2fun2844z00zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4580z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2appza7d2ly2848za700za7za7saw_extratypeza7004640z00, BGl_typecheckzd2appzd2ly2848z00zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4579z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2app2846za7d2za7za7saw_extratypeza7004641za7, BGl_typecheckzd2app2846zd2zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4581z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2funcall2850za7d2za7za7saw_extratypeza7004642za7, BGl_typecheckzd2funcall2850zd2zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4582z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2extern2852za7d2za7za7saw_extratypeza7004643za7, BGl_typecheckzd2extern2852zd2zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4583z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2cast2854za7d2za7za7saw_extratypeza7004644za7, BGl_typecheckzd2cast2854zd2zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4584z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2setza7d2exza7d2it2856za7d2za7za7saw_extratypeza7004645za7, BGl_typecheckzd2setzd2exzd2it2856zd2zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4585z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2jumpza7d2exza7d2it2858za7d2za7za7saw_extratypeza7004646za7, BGl_typecheckzd2jumpzd2exzd2it2858zd2zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4586z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2fail2860za7d2za7za7saw_extratypeza7004647za7, BGl_typecheckzd2fail2860zd2zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4587z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2makeza7d2box2862za700za7za7saw_extratypeza7004648z00, BGl_typecheckzd2makezd2box2862z00zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4588z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2boxza7d2ref2864za700za7za7saw_extratypeza7004649z00, BGl_typecheckzd2boxzd2ref2864z00zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4590z00zzsaw_extratypez00, BgL_bgl_objectza7d2za7e3structza7d2hook2868za7e3za7za7saw_extratypeza7004650za7, BGl_objectzd2ze3structzd2hook2868ze3zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4589z00zzsaw_extratypez00, BgL_bgl_typecheckza7d2boxza7d2setza7122866za712za7za7saw_extratypeza7004651za7, BGl_typecheckzd2boxzd2setz122866z12zzsaw_extratypez00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4591z00zzsaw_extratypez00, BgL_bgl_structza7b2objectza7d2za7e3objectza7d2hook2870za751za7za7saw_extratypeza7004652z00, BGl_structzb2objectzd2ze3objectzd2hook2870z51zzsaw_extratypez00, 0L, 2 );
DEFINE_STATIC_GENERIC( BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_bgl__typecheck4018za700za7za7saw_extratypeza7004653z00, BGl__typecheck4018z00zzsaw_extratypez00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_sawzd2extratypeszd2envz00zzsaw_extratypez00, BgL_bgl__sawza7d2extratypesza7d2za7za7saw_extratypeza7004654za7, BGl__sawzd2extratypeszd2zzsaw_extratypez00, 0L, 1 );
BGL_IMPORT obj_t BGl_structzb2objectzd2ze3objectzd2envz51zz__objectz00;



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzsaw_extratypez00(long BgL_checksumz00_2541, char * BgL_fromz00_2542)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzsaw_extratypez00))
{ 
BGl_requirezd2initializa7ationz75zzsaw_extratypez00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzsaw_extratypez00(); 
BGl_cnstzd2initzd2zzsaw_extratypez00(); 
BGl_importedzd2moduleszd2initz00zzsaw_extratypez00(); 
BGl_objectzd2initzd2zzsaw_extratypez00(); 
BGl_methodzd2initzd2zzsaw_extratypez00(); 
BGl_toplevelzd2initzd2zzsaw_extratypez00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzsaw_extratypez00()
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 1 */
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "saw_extratype"); 
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "saw_extratype"); 
BGl_modulezd2initializa7ationz75zz__errorz00(((long)0), "saw_extratype"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzsaw_extratypez00()
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 1 */
{ /* ./SawMill/extratype.scm 1 */
obj_t BgL_cportz00_2525;
BgL_cportz00_2525 = 
open_input_string(BGl_string4596z00zzsaw_extratypez00); 
{ 
long BgL_iz00_2526;
BgL_iz00_2526 = ((long)15); 
BgL_loopz00_2527:
{ /* ./SawMill/extratype.scm 1 */
bool_t BgL_test4598z00_2528;
BgL_test4598z00_2528 = 
(BgL_iz00_2526==((long)-1)); 
if(BgL_test4598z00_2528)
{ /* ./SawMill/extratype.scm 1 */
return BUNSPEC;}  else 
{ /* ./SawMill/extratype.scm 1 */
{ /* ./SawMill/extratype.scm 1 */
obj_t BgL_arg4600z00_2529;
{ /* ./SawMill/extratype.scm 1 */
obj_t BgL_list4603z00_2530;
BgL_list4603z00_2530 = 
MAKE_PAIR(BgL_cportz00_2525, BNIL); 
BgL_arg4600z00_2529 = 
BGl_readz00zz__readerz00(BgL_list4603z00_2530); } 
{ /* ./SawMill/extratype.scm 1 */
int BgL_auxz00_2560;
BgL_auxz00_2560 = 
(int)(BgL_iz00_2526); 
CNST_TABLE_SET(BgL_auxz00_2560, BgL_arg4600z00_2529); } } 
{ /* ./SawMill/extratype.scm 1 */
int BgL_auxz00_2531;
{ /* ./SawMill/extratype.scm 1 */
long BgL_auxz00_2563;
BgL_auxz00_2563 = 
(BgL_iz00_2526-((long)1)); 
BgL_auxz00_2531 = 
(int)(BgL_auxz00_2563); } 
{ 
long BgL_iz00_2566;
BgL_iz00_2566 = 
(long)(BgL_auxz00_2531); 
BgL_iz00_2526 = BgL_iz00_2566; 
goto BgL_loopz00_2527;} } } } } } } 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzsaw_extratypez00()
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 1 */
BGl_za2changedzd2varza2zd2zzsaw_extratypez00 = BNIL; 
BGl_za2changedzd2nodeza2zd2zzsaw_extratypez00 = BNIL; 
BGl_za2moreza2z00zzsaw_extratypez00 = ((bool_t)1); 
return BUNSPEC;} 
}



/* saw-extratypes */
BGL_EXPORTED_DEF obj_t BGl_sawzd2extratypeszd2zzsaw_extratypez00(obj_t BgL_lz00_1)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 19 */
BGl_za2changedzd2nodeza2zd2zzsaw_extratypez00 = BNIL; 
BGl_za2changedzd2varza2zd2zzsaw_extratypez00 = BNIL; 
{ 
bool_t BgL_morez00_724;
BgL_morez00_724 = ((bool_t)1); 
BgL_fixpointz00_725:
if(BgL_morez00_724)
{ /* ./SawMill/extratype.scm 23 */
BGl_za2moreza2z00zzsaw_extratypez00 = ((bool_t)0); 
{ 
obj_t BgL_l2760z00_726;
BgL_l2760z00_726 = BgL_lz00_1; 
BgL_forzd2each2761zd2_727:
{ /* ./SawMill/extratype.scm 25 */
bool_t BgL_test2873z00_728;
BgL_test2873z00_728 = 
PAIRP(BgL_l2760z00_726); 
if(BgL_test2873z00_728)
{ /* ./SawMill/extratype.scm 25 */
{ /* ./SawMill/extratype.scm 25 */
obj_t BgL_arg2875z00_729;
BgL_arg2875z00_729 = 
CAR(BgL_l2760z00_726); 
BGl_sawzd2typecheckzd2zzsaw_extratypez00(BgL_arg2875z00_729); } 
{ /* ./SawMill/extratype.scm 25 */
obj_t BgL_arg2879z00_730;
BgL_arg2879z00_730 = 
CDR(BgL_l2760z00_726); 
{ 
obj_t BgL_l2760z00_2574;
BgL_l2760z00_2574 = BgL_arg2879z00_730; 
BgL_l2760z00_726 = BgL_l2760z00_2574; 
goto BgL_forzd2each2761zd2_727;} } }  else 
{ /* ./SawMill/extratype.scm 25 */((bool_t)1); } } } 
{ 
bool_t BgL_morez00_2575;
BgL_morez00_2575 = BGl_za2moreza2z00zzsaw_extratypez00; 
BgL_morez00_724 = BgL_morez00_2575; 
goto BgL_fixpointz00_725;} }  else 
{ /* ./SawMill/extratype.scm 23 */BUNSPEC; } } 
{ 
obj_t BgL_l2762z00_731;
BgL_l2762z00_731 = BGl_za2changedzd2varza2zd2zzsaw_extratypez00; 
BgL_forzd2each2763zd2_732:
{ /* ./SawMill/extratype.scm 27 */
bool_t BgL_test2885z00_733;
BgL_test2885z00_733 = 
PAIRP(BgL_l2762z00_731); 
if(BgL_test2885z00_733)
{ /* ./SawMill/extratype.scm 27 */
{ /* ./SawMill/extratype.scm 27 */
obj_t BgL_vz00_734;
BgL_vz00_734 = 
CAR(BgL_l2762z00_731); 
{ /* ./SawMill/extratype.scm 27 */
BgL_typez00_bglt BgL_arg2887z00_735;
{ /* ./SawMill/extratype.scm 27 */
BgL_hookz00_bglt BgL_obj2714z00_1477;
{ /* ./SawMill/extratype.scm 27 */
BgL_typez00_bglt BgL_auxz00_2579;
{ /* ./SawMill/extratype.scm 27 */
BgL_variablez00_bglt BgL_obj1097z00_1476;
BgL_obj1097z00_1476 = 
(BgL_variablez00_bglt)(BgL_vz00_734); 
BgL_auxz00_2579 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_1476))->BgL_typez00); } 
BgL_obj2714z00_1477 = 
(BgL_hookz00_bglt)(BgL_auxz00_2579); } 
{ 
obj_t BgL_auxz00_2583;
{ /* ./SawMill/extratype.scm 27 */
BgL_objectz00_bglt BgL_auxz00_2584;
BgL_auxz00_2584 = 
(BgL_objectz00_bglt)(BgL_obj2714z00_1477); 
BgL_auxz00_2583 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2584); } 
BgL_arg2887z00_735 = 
(((BgL_hookz00_bglt)CREF(BgL_auxz00_2583))->BgL_typez00); } } 
{ /* ./SawMill/extratype.scm 27 */
BgL_variablez00_bglt BgL_obj1099z00_1478;BgL_typez00_bglt BgL_val1098z00_1479;
BgL_obj1099z00_1478 = 
(BgL_variablez00_bglt)(BgL_vz00_734); 
BgL_val1098z00_1479 = BgL_arg2887z00_735; 
((((BgL_variablez00_bglt)CREF(BgL_obj1099z00_1478))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1098z00_1479), BUNSPEC); } } } 
{ /* ./SawMill/extratype.scm 27 */
obj_t BgL_arg2895z00_737;
BgL_arg2895z00_737 = 
CDR(BgL_l2762z00_731); 
{ 
obj_t BgL_l2762z00_2591;
BgL_l2762z00_2591 = BgL_arg2895z00_737; 
BgL_l2762z00_731 = BgL_l2762z00_2591; 
goto BgL_forzd2each2763zd2_732;} } }  else 
{ /* ./SawMill/extratype.scm 27 */((bool_t)1); } } } 
{ 
obj_t BgL_l2764z00_738;
{ /* ./SawMill/extratype.scm 29 */
bool_t BgL_auxz00_2592;
BgL_l2764z00_738 = BGl_za2changedzd2nodeza2zd2zzsaw_extratypez00; 
BgL_forzd2each2765zd2_739:
{ /* ./SawMill/extratype.scm 29 */
bool_t BgL_test2900z00_740;
BgL_test2900z00_740 = 
PAIRP(BgL_l2764z00_738); 
if(BgL_test2900z00_740)
{ /* ./SawMill/extratype.scm 29 */
{ /* ./SawMill/extratype.scm 29 */
obj_t BgL_ez00_741;
BgL_ez00_741 = 
CAR(BgL_l2764z00_738); 
{ /* ./SawMill/extratype.scm 29 */
BgL_typez00_bglt BgL_arg2902z00_742;
{ /* ./SawMill/extratype.scm 29 */
BgL_hookz00_bglt BgL_obj2714z00_1484;
{ /* ./SawMill/extratype.scm 29 */
BgL_typez00_bglt BgL_auxz00_2596;
{ /* ./SawMill/extratype.scm 29 */
BgL_nodez00_bglt BgL_obj1561z00_1483;
BgL_obj1561z00_1483 = 
(BgL_nodez00_bglt)(BgL_ez00_741); 
BgL_auxz00_2596 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1561z00_1483))->BgL_typez00); } 
BgL_obj2714z00_1484 = 
(BgL_hookz00_bglt)(BgL_auxz00_2596); } 
{ 
obj_t BgL_auxz00_2600;
{ /* ./SawMill/extratype.scm 29 */
BgL_objectz00_bglt BgL_auxz00_2601;
BgL_auxz00_2601 = 
(BgL_objectz00_bglt)(BgL_obj2714z00_1484); 
BgL_auxz00_2600 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2601); } 
BgL_arg2902z00_742 = 
(((BgL_hookz00_bglt)CREF(BgL_auxz00_2600))->BgL_typez00); } } 
{ /* ./SawMill/extratype.scm 29 */
BgL_nodez00_bglt BgL_obj1563z00_1485;BgL_typez00_bglt BgL_val1562z00_1486;
BgL_obj1563z00_1485 = 
(BgL_nodez00_bglt)(BgL_ez00_741); 
BgL_val1562z00_1486 = BgL_arg2902z00_742; 
((((BgL_nodez00_bglt)CREF(BgL_obj1563z00_1485))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1562z00_1486), BUNSPEC); } } } 
{ /* ./SawMill/extratype.scm 29 */
obj_t BgL_arg2910z00_744;
BgL_arg2910z00_744 = 
CDR(BgL_l2764z00_738); 
{ 
obj_t BgL_l2764z00_2608;
BgL_l2764z00_2608 = BgL_arg2910z00_744; 
BgL_l2764z00_738 = BgL_l2764z00_2608; 
goto BgL_forzd2each2765zd2_739;} } }  else 
{ /* ./SawMill/extratype.scm 29 */
BgL_auxz00_2592 = ((bool_t)1); } } 
return 
BBOOL(BgL_auxz00_2592);} } } 
}



/* _saw-extratypes */
obj_t BGl__sawzd2extratypeszd2zzsaw_extratypez00(obj_t BgL_envz00_2449, obj_t BgL_lz00_2450)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 19 */
return 
BGl_sawzd2extratypeszd2zzsaw_extratypez00(BgL_lz00_2450);} 
}



/* saw-typecheck */
obj_t BGl_sawzd2typecheckzd2zzsaw_extratypez00(obj_t BgL_vz00_2)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 35 */
{ /* ./SawMill/extratype.scm 36 */
obj_t BgL_rz00_745;
{ /* ./SawMill/extratype.scm 36 */
obj_t BgL_arg2922z00_749;
{ /* ./SawMill/extratype.scm 36 */
BgL_sfunz00_bglt BgL_obj1370z00_1489;
{ /* ./SawMill/extratype.scm 36 */
BgL_valuez00_bglt BgL_auxz00_2611;
{ /* ./SawMill/extratype.scm 36 */
BgL_variablez00_bglt BgL_obj1100z00_1488;
BgL_obj1100z00_1488 = 
(BgL_variablez00_bglt)(BgL_vz00_2); 
BgL_auxz00_2611 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1488))->BgL_valuez00); } 
BgL_obj1370z00_1489 = 
(BgL_sfunz00_bglt)(BgL_auxz00_2611); } 
BgL_arg2922z00_749 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1370z00_1489))->BgL_bodyz00); } 
{ /* ./SawMill/extratype.scm 36 */
BgL_nodez00_bglt BgL_ez00_1490;
BgL_ez00_1490 = 
(BgL_nodez00_bglt)(BgL_arg2922z00_749); 
{ /* ./SawMill/extratype.scm 36 */
obj_t BgL_method2828z00_1491;
{ /* ./SawMill/extratype.scm 36 */
BgL_objectz00_bglt BgL_objz00_1492;
BgL_objz00_1492 = 
(BgL_objectz00_bglt)(BgL_ez00_1490); 
{ /* ./SawMill/extratype.scm 36 */
long BgL_objzd2classzd2numz00_1493;
BgL_objzd2classzd2numz00_1493 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1492); 
{ /* ./SawMill/extratype.scm 36 */
obj_t BgL_arg2017z00_1494;
{ /* ./SawMill/extratype.scm 36 */
int BgL_auxz00_2619;
BgL_auxz00_2619 = 
(int)(((long)1)); 
BgL_arg2017z00_1494 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_2619); } 
{ /* ./SawMill/extratype.scm 36 */
int BgL_offsetz00_1497;
BgL_offsetz00_1497 = 
(int)(BgL_objzd2classzd2numz00_1493); 
{ /* ./SawMill/extratype.scm 36 */
long BgL_offsetz00_1498;
{ /* ./SawMill/extratype.scm 36 */
long BgL_auxz00_2623;
BgL_auxz00_2623 = 
(long)(BgL_offsetz00_1497); 
BgL_offsetz00_1498 = 
(BgL_auxz00_2623-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 36 */
long BgL_modz00_1499;
{ /* ./SawMill/extratype.scm 36 */
int BgL_arg2028z00_1500;
BgL_arg2028z00_1500 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 36 */
long BgL_n2z00_1508;
BgL_n2z00_1508 = 
(long)(BgL_arg2028z00_1500); 
BgL_modz00_1499 = 
(BgL_offsetz00_1498/BgL_n2z00_1508); } } 
{ /* ./SawMill/extratype.scm 36 */
long BgL_restz00_1501;
{ /* ./SawMill/extratype.scm 36 */
int BgL_arg2024z00_1502;
BgL_arg2024z00_1502 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 36 */
long BgL_n2z00_1511;
BgL_n2z00_1511 = 
(long)(BgL_arg2024z00_1502); 
BgL_restz00_1501 = 
(BgL_offsetz00_1498%BgL_n2z00_1511); } } 
{ /* ./SawMill/extratype.scm 36 */

{ /* ./SawMill/extratype.scm 36 */
obj_t BgL_bucketz00_1503;
{ /* ./SawMill/extratype.scm 36 */
int BgL_kz00_1513;
BgL_kz00_1513 = 
(int)(BgL_modz00_1499); 
BgL_bucketz00_1503 = 
VECTOR_REF(BgL_arg2017z00_1494,BgL_kz00_1513); } 
{ /* ./SawMill/extratype.scm 36 */
int BgL_kz00_1515;
BgL_kz00_1515 = 
(int)(BgL_restz00_1501); 
BgL_method2828z00_1491 = 
VECTOR_REF(BgL_bucketz00_1503,BgL_kz00_1515); } } } } } } } } } } 
BgL_rz00_745 = 
PROCEDURE_ENTRY(BgL_method2828z00_1491)(BgL_method2828z00_1491, 
(obj_t)(BgL_ez00_1490), BEOA); } } } 
{ /* ./SawMill/extratype.scm 38 */
bool_t BgL_test2914z00_746;
{ /* ./SawMill/extratype.scm 38 */
obj_t BgL_auxz00_2642;obj_t BgL_auxz00_2639;
BgL_auxz00_2642 = 
CNST_TABLE_REF(((long)0)); 
{ /* ./SawMill/extratype.scm 38 */
BgL_globalz00_bglt BgL_obj1168z00_1516;
BgL_obj1168z00_1516 = 
(BgL_globalz00_bglt)(BgL_vz00_2); 
BgL_auxz00_2639 = 
(((BgL_globalz00_bglt)CREF(BgL_obj1168z00_1516))->BgL_importz00); } 
BgL_test2914z00_746 = 
(BgL_auxz00_2639==BgL_auxz00_2642); } 
if(BgL_test2914z00_746)
{ /* ./SawMill/extratype.scm 38 */
return BUNSPEC;}  else 
{ /* ./SawMill/extratype.scm 38 */
return 
BGl_assignzd2typezd2varz00zzsaw_extratypez00(BgL_vz00_2, BgL_rz00_745);} } } } 
}



/* assign-type-var */
obj_t BGl_assignzd2typezd2varz00zzsaw_extratypez00(obj_t BgL_vz00_3, obj_t BgL_typez00_4)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 41 */
{ /* ./SawMill/extratype.scm 42 */
bool_t BgL_test2928z00_751;
if(
BGl_iszd2azf3z21zz__objectz00(BgL_typez00_4, BGl_hookz00zzsaw_extratypez00))
{ /* ./SawMill/extratype.scm 42 */
bool_t BgL_testz00_2649;
{ /* ./SawMill/extratype.scm 42 */
obj_t BgL_auxz00_2650;
{ /* ./SawMill/extratype.scm 42 */
BgL_typez00_bglt BgL_auxz00_2651;
{ /* ./SawMill/extratype.scm 42 */
BgL_variablez00_bglt BgL_obj1097z00_1518;
BgL_obj1097z00_1518 = 
(BgL_variablez00_bglt)(BgL_vz00_3); 
BgL_auxz00_2651 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_1518))->BgL_typez00); } 
BgL_auxz00_2650 = 
(obj_t)(BgL_auxz00_2651); } 
BgL_testz00_2649 = 
BGl_iszd2azf3z21zz__objectz00(BgL_auxz00_2650, BGl_hookz00zzsaw_extratypez00); } 
if(BgL_testz00_2649)
{ /* ./SawMill/extratype.scm 42 */
BgL_test2928z00_751 = ((bool_t)0); }  else 
{ /* ./SawMill/extratype.scm 42 */
BgL_test2928z00_751 = ((bool_t)1); } }  else 
{ /* ./SawMill/extratype.scm 42 */
BgL_test2928z00_751 = ((bool_t)0); } 
if(BgL_test2928z00_751)
{ /* ./SawMill/extratype.scm 42 */
BGl_za2moreza2z00zzsaw_extratypez00 = ((bool_t)1); 
{ /* ./SawMill/extratype.scm 45 */
BgL_variablez00_bglt BgL_obj1099z00_1520;BgL_typez00_bglt BgL_val1098z00_1521;
BgL_obj1099z00_1520 = 
(BgL_variablez00_bglt)(BgL_vz00_3); 
BgL_val1098z00_1521 = 
(BgL_typez00_bglt)(BgL_typez00_4); 
((((BgL_variablez00_bglt)CREF(BgL_obj1099z00_1520))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1098z00_1521), BUNSPEC); } 
BGl_za2changedzd2varza2zd2zzsaw_extratypez00 = 
MAKE_PAIR(BgL_vz00_3, BGl_za2changedzd2varza2zd2zzsaw_extratypez00); }  else 
{ /* ./SawMill/extratype.scm 42 */BUNSPEC; } } 
return BgL_typez00_4;} 
}



/* assign-type */
obj_t BGl_assignzd2typezd2zzsaw_extratypez00(obj_t BgL_ez00_5, obj_t BgL_typez00_6)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 49 */
{ /* ./SawMill/extratype.scm 50 */
bool_t BgL_test2938z00_755;
if(
BGl_iszd2azf3z21zz__objectz00(BgL_typez00_6, BGl_hookz00zzsaw_extratypez00))
{ /* ./SawMill/extratype.scm 50 */
bool_t BgL_testz00_2663;
{ /* ./SawMill/extratype.scm 50 */
obj_t BgL_auxz00_2664;
{ /* ./SawMill/extratype.scm 50 */
BgL_typez00_bglt BgL_auxz00_2665;
{ /* ./SawMill/extratype.scm 50 */
BgL_nodez00_bglt BgL_obj1561z00_1523;
BgL_obj1561z00_1523 = 
(BgL_nodez00_bglt)(BgL_ez00_5); 
BgL_auxz00_2665 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1561z00_1523))->BgL_typez00); } 
BgL_auxz00_2664 = 
(obj_t)(BgL_auxz00_2665); } 
BgL_testz00_2663 = 
BGl_iszd2azf3z21zz__objectz00(BgL_auxz00_2664, BGl_hookz00zzsaw_extratypez00); } 
if(BgL_testz00_2663)
{ /* ./SawMill/extratype.scm 50 */
BgL_test2938z00_755 = ((bool_t)0); }  else 
{ /* ./SawMill/extratype.scm 50 */
BgL_test2938z00_755 = ((bool_t)1); } }  else 
{ /* ./SawMill/extratype.scm 50 */
BgL_test2938z00_755 = ((bool_t)0); } 
if(BgL_test2938z00_755)
{ /* ./SawMill/extratype.scm 50 */
BGl_za2moreza2z00zzsaw_extratypez00 = ((bool_t)1); 
{ /* ./SawMill/extratype.scm 53 */
BgL_nodez00_bglt BgL_obj1563z00_1525;BgL_typez00_bglt BgL_val1562z00_1526;
BgL_obj1563z00_1525 = 
(BgL_nodez00_bglt)(BgL_ez00_5); 
BgL_val1562z00_1526 = 
(BgL_typez00_bglt)(BgL_typez00_6); 
((((BgL_nodez00_bglt)CREF(BgL_obj1563z00_1525))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1562z00_1526), BUNSPEC); } 
BGl_za2changedzd2nodeza2zd2zzsaw_extratypez00 = 
MAKE_PAIR(BgL_ez00_5, BGl_za2changedzd2nodeza2zd2zzsaw_extratypez00); }  else 
{ /* ./SawMill/extratype.scm 50 */BUNSPEC; } } 
return BgL_typez00_6;} 
}



/* check-args-params */
bool_t BGl_checkzd2argszd2paramsz00zzsaw_extratypez00(BgL_variablez00_bglt BgL_vz00_18, obj_t BgL_lz00_19)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 156 */
{ /* ./SawMill/extratype.scm 157 */
bool_t BgL_test2948z00_759;
{ /* ./SawMill/extratype.scm 157 */
obj_t BgL_obj1300z00_1527;
BgL_obj1300z00_1527 = 
(obj_t)(BgL_vz00_18); 
BgL_test2948z00_759 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1300z00_1527, BGl_localz00zzast_varz00); } 
if(BgL_test2948z00_759)
{ 
obj_t BgL_l2786z00_760;
BgL_l2786z00_760 = BgL_lz00_19; 
BgL_forzd2each2787zd2_761:
{ /* ./SawMill/extratype.scm 158 */
bool_t BgL_test2950z00_762;
BgL_test2950z00_762 = 
PAIRP(BgL_l2786z00_760); 
if(BgL_test2950z00_762)
{ /* ./SawMill/extratype.scm 158 */
{ /* ./SawMill/extratype.scm 158 */
obj_t BgL_arg2952z00_763;
BgL_arg2952z00_763 = 
CAR(BgL_l2786z00_760); 
{ /* ./SawMill/extratype.scm 158 */
BgL_nodez00_bglt BgL_ez00_1530;
BgL_ez00_1530 = 
(BgL_nodez00_bglt)(BgL_arg2952z00_763); 
{ /* ./SawMill/extratype.scm 158 */
obj_t BgL_method2828z00_1531;
{ /* ./SawMill/extratype.scm 158 */
BgL_objectz00_bglt BgL_objz00_1532;
BgL_objz00_1532 = 
(BgL_objectz00_bglt)(BgL_ez00_1530); 
{ /* ./SawMill/extratype.scm 158 */
long BgL_objzd2classzd2numz00_1533;
BgL_objzd2classzd2numz00_1533 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1532); 
{ /* ./SawMill/extratype.scm 158 */
obj_t BgL_arg2017z00_1534;
{ /* ./SawMill/extratype.scm 158 */
int BgL_auxz00_2684;
BgL_auxz00_2684 = 
(int)(((long)1)); 
BgL_arg2017z00_1534 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_2684); } 
{ /* ./SawMill/extratype.scm 158 */
int BgL_offsetz00_1537;
BgL_offsetz00_1537 = 
(int)(BgL_objzd2classzd2numz00_1533); 
{ /* ./SawMill/extratype.scm 158 */
long BgL_offsetz00_1538;
{ /* ./SawMill/extratype.scm 158 */
long BgL_auxz00_2688;
BgL_auxz00_2688 = 
(long)(BgL_offsetz00_1537); 
BgL_offsetz00_1538 = 
(BgL_auxz00_2688-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 158 */
long BgL_modz00_1539;
{ /* ./SawMill/extratype.scm 158 */
int BgL_arg2028z00_1540;
BgL_arg2028z00_1540 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 158 */
long BgL_n2z00_1548;
BgL_n2z00_1548 = 
(long)(BgL_arg2028z00_1540); 
BgL_modz00_1539 = 
(BgL_offsetz00_1538/BgL_n2z00_1548); } } 
{ /* ./SawMill/extratype.scm 158 */
long BgL_restz00_1541;
{ /* ./SawMill/extratype.scm 158 */
int BgL_arg2024z00_1542;
BgL_arg2024z00_1542 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 158 */
long BgL_n2z00_1551;
BgL_n2z00_1551 = 
(long)(BgL_arg2024z00_1542); 
BgL_restz00_1541 = 
(BgL_offsetz00_1538%BgL_n2z00_1551); } } 
{ /* ./SawMill/extratype.scm 158 */

{ /* ./SawMill/extratype.scm 158 */
obj_t BgL_bucketz00_1543;
{ /* ./SawMill/extratype.scm 158 */
int BgL_kz00_1553;
BgL_kz00_1553 = 
(int)(BgL_modz00_1539); 
BgL_bucketz00_1543 = 
VECTOR_REF(BgL_arg2017z00_1534,BgL_kz00_1553); } 
{ /* ./SawMill/extratype.scm 158 */
int BgL_kz00_1555;
BgL_kz00_1555 = 
(int)(BgL_restz00_1541); 
BgL_method2828z00_1531 = 
VECTOR_REF(BgL_bucketz00_1543,BgL_kz00_1555); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_1531)(BgL_method2828z00_1531, 
(obj_t)(BgL_ez00_1530), BEOA); } } } 
{ /* ./SawMill/extratype.scm 158 */
obj_t BgL_arg2956z00_764;
BgL_arg2956z00_764 = 
CDR(BgL_l2786z00_760); 
{ 
obj_t BgL_l2786z00_2705;
BgL_l2786z00_2705 = BgL_arg2956z00_764; 
BgL_l2786z00_760 = BgL_l2786z00_2705; 
goto BgL_forzd2each2787zd2_761;} } }  else 
{ /* ./SawMill/extratype.scm 158 */
return ((bool_t)1);} } }  else 
{ /* ./SawMill/extratype.scm 161 */
bool_t BgL_test2960z00_766;
{ /* ./SawMill/extratype.scm 161 */
bool_t BgL_test2994z00_783;
{ /* ./SawMill/extratype.scm 161 */
obj_t BgL_arg3000z00_785;
{ /* ./SawMill/extratype.scm 161 */
BgL_globalz00_bglt BgL_obj1165z00_1557;
BgL_obj1165z00_1557 = 
(BgL_globalz00_bglt)(BgL_vz00_18); 
BgL_arg3000z00_785 = 
(((BgL_globalz00_bglt)CREF(BgL_obj1165z00_1557))->BgL_modulez00); } 
BgL_test2994z00_783 = 
(BgL_arg3000z00_785==BGl_za2moduleza2z00zzmodule_modulez00); } 
if(BgL_test2994z00_783)
{ /* ./SawMill/extratype.scm 161 */
BgL_valuez00_bglt BgL_arg2996z00_784;
BgL_arg2996z00_784 = 
(((BgL_variablez00_bglt)CREF(BgL_vz00_18))->BgL_valuez00); 
{ /* ./SawMill/extratype.scm 161 */
obj_t BgL_obj1425z00_1559;
BgL_obj1425z00_1559 = 
(obj_t)(BgL_arg2996z00_784); 
BgL_test2960z00_766 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1425z00_1559, BGl_sfunz00zzast_varz00); } }  else 
{ /* ./SawMill/extratype.scm 161 */
BgL_test2960z00_766 = ((bool_t)0); } } 
if(BgL_test2960z00_766)
{ 
obj_t BgL_ll2790z00_767;obj_t BgL_ll2791z00_768;
{ /* ./SawMill/extratype.scm 164 */
obj_t BgL_arg2962z00_770;
{ /* ./SawMill/extratype.scm 164 */
BgL_sfunz00_bglt BgL_obj1367z00_1561;
{ /* ./SawMill/extratype.scm 164 */
BgL_valuez00_bglt BgL_auxz00_2714;
BgL_auxz00_2714 = 
(((BgL_variablez00_bglt)CREF(BgL_vz00_18))->BgL_valuez00); 
BgL_obj1367z00_1561 = 
(BgL_sfunz00_bglt)(BgL_auxz00_2714); } 
BgL_arg2962z00_770 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1561))->BgL_argsz00); } 
BgL_ll2790z00_767 = BgL_arg2962z00_770; 
BgL_ll2791z00_768 = BgL_lz00_19; 
BgL_forzd2each2792zd2_769:
{ /* ./SawMill/extratype.scm 162 */
bool_t BgL_test2968z00_772;
BgL_test2968z00_772 = 
NULLP(BgL_ll2790z00_767); 
if(BgL_test2968z00_772)
{ /* ./SawMill/extratype.scm 162 */
return ((bool_t)1);}  else 
{ /* ./SawMill/extratype.scm 162 */
{ /* ./SawMill/extratype.scm 163 */
obj_t BgL_paramz00_773;obj_t BgL_argz00_774;
BgL_paramz00_773 = 
CAR(BgL_ll2790z00_767); 
BgL_argz00_774 = 
CAR(BgL_ll2791z00_768); 
{ /* ./SawMill/extratype.scm 163 */
obj_t BgL_arg2970z00_775;
{ /* ./SawMill/extratype.scm 163 */
BgL_nodez00_bglt BgL_ez00_1565;
BgL_ez00_1565 = 
(BgL_nodez00_bglt)(BgL_argz00_774); 
{ /* ./SawMill/extratype.scm 163 */
obj_t BgL_method2828z00_1566;
{ /* ./SawMill/extratype.scm 163 */
BgL_objectz00_bglt BgL_objz00_1567;
BgL_objz00_1567 = 
(BgL_objectz00_bglt)(BgL_ez00_1565); 
{ /* ./SawMill/extratype.scm 163 */
long BgL_objzd2classzd2numz00_1568;
BgL_objzd2classzd2numz00_1568 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1567); 
{ /* ./SawMill/extratype.scm 163 */
obj_t BgL_arg2017z00_1569;
{ /* ./SawMill/extratype.scm 163 */
int BgL_auxz00_2725;
BgL_auxz00_2725 = 
(int)(((long)1)); 
BgL_arg2017z00_1569 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_2725); } 
{ /* ./SawMill/extratype.scm 163 */
int BgL_offsetz00_1572;
BgL_offsetz00_1572 = 
(int)(BgL_objzd2classzd2numz00_1568); 
{ /* ./SawMill/extratype.scm 163 */
long BgL_offsetz00_1573;
{ /* ./SawMill/extratype.scm 163 */
long BgL_auxz00_2729;
BgL_auxz00_2729 = 
(long)(BgL_offsetz00_1572); 
BgL_offsetz00_1573 = 
(BgL_auxz00_2729-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 163 */
long BgL_modz00_1574;
{ /* ./SawMill/extratype.scm 163 */
int BgL_arg2028z00_1575;
BgL_arg2028z00_1575 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 163 */
long BgL_n2z00_1583;
BgL_n2z00_1583 = 
(long)(BgL_arg2028z00_1575); 
BgL_modz00_1574 = 
(BgL_offsetz00_1573/BgL_n2z00_1583); } } 
{ /* ./SawMill/extratype.scm 163 */
long BgL_restz00_1576;
{ /* ./SawMill/extratype.scm 163 */
int BgL_arg2024z00_1577;
BgL_arg2024z00_1577 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 163 */
long BgL_n2z00_1586;
BgL_n2z00_1586 = 
(long)(BgL_arg2024z00_1577); 
BgL_restz00_1576 = 
(BgL_offsetz00_1573%BgL_n2z00_1586); } } 
{ /* ./SawMill/extratype.scm 163 */

{ /* ./SawMill/extratype.scm 163 */
obj_t BgL_bucketz00_1578;
{ /* ./SawMill/extratype.scm 163 */
int BgL_kz00_1588;
BgL_kz00_1588 = 
(int)(BgL_modz00_1574); 
BgL_bucketz00_1578 = 
VECTOR_REF(BgL_arg2017z00_1569,BgL_kz00_1588); } 
{ /* ./SawMill/extratype.scm 163 */
int BgL_kz00_1590;
BgL_kz00_1590 = 
(int)(BgL_restz00_1576); 
BgL_method2828z00_1566 = 
VECTOR_REF(BgL_bucketz00_1578,BgL_kz00_1590); } } } } } } } } } } 
BgL_arg2970z00_775 = 
PROCEDURE_ENTRY(BgL_method2828z00_1566)(BgL_method2828z00_1566, 
(obj_t)(BgL_ez00_1565), BEOA); } } 
BGl_assignzd2typezd2varz00zzsaw_extratypez00(BgL_paramz00_773, BgL_arg2970z00_775); } } 
{ /* ./SawMill/extratype.scm 162 */
obj_t BgL_arg2976z00_776;obj_t BgL_arg2977z00_777;
BgL_arg2976z00_776 = 
CDR(BgL_ll2790z00_767); 
BgL_arg2977z00_777 = 
CDR(BgL_ll2791z00_768); 
{ 
obj_t BgL_ll2791z00_2749;obj_t BgL_ll2790z00_2748;
BgL_ll2790z00_2748 = BgL_arg2976z00_776; 
BgL_ll2791z00_2749 = BgL_arg2977z00_777; 
BgL_ll2791z00_768 = BgL_ll2791z00_2749; 
BgL_ll2790z00_767 = BgL_ll2790z00_2748; 
goto BgL_forzd2each2792zd2_769;} } } } } }  else 
{ 
obj_t BgL_l2793z00_778;
BgL_l2793z00_778 = BgL_lz00_19; 
BgL_forzd2each2794zd2_779:
{ /* ./SawMill/extratype.scm 166 */
bool_t BgL_test2983z00_780;
BgL_test2983z00_780 = 
PAIRP(BgL_l2793z00_778); 
if(BgL_test2983z00_780)
{ /* ./SawMill/extratype.scm 166 */
{ /* ./SawMill/extratype.scm 166 */
obj_t BgL_arg2986z00_781;
BgL_arg2986z00_781 = 
CAR(BgL_l2793z00_778); 
{ /* ./SawMill/extratype.scm 166 */
BgL_nodez00_bglt BgL_ez00_1595;
BgL_ez00_1595 = 
(BgL_nodez00_bglt)(BgL_arg2986z00_781); 
{ /* ./SawMill/extratype.scm 166 */
obj_t BgL_method2828z00_1596;
{ /* ./SawMill/extratype.scm 166 */
BgL_objectz00_bglt BgL_objz00_1597;
BgL_objz00_1597 = 
(BgL_objectz00_bglt)(BgL_ez00_1595); 
{ /* ./SawMill/extratype.scm 166 */
long BgL_objzd2classzd2numz00_1598;
BgL_objzd2classzd2numz00_1598 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1597); 
{ /* ./SawMill/extratype.scm 166 */
obj_t BgL_arg2017z00_1599;
{ /* ./SawMill/extratype.scm 166 */
int BgL_auxz00_2756;
BgL_auxz00_2756 = 
(int)(((long)1)); 
BgL_arg2017z00_1599 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_2756); } 
{ /* ./SawMill/extratype.scm 166 */
int BgL_offsetz00_1602;
BgL_offsetz00_1602 = 
(int)(BgL_objzd2classzd2numz00_1598); 
{ /* ./SawMill/extratype.scm 166 */
long BgL_offsetz00_1603;
{ /* ./SawMill/extratype.scm 166 */
long BgL_auxz00_2760;
BgL_auxz00_2760 = 
(long)(BgL_offsetz00_1602); 
BgL_offsetz00_1603 = 
(BgL_auxz00_2760-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 166 */
long BgL_modz00_1604;
{ /* ./SawMill/extratype.scm 166 */
int BgL_arg2028z00_1605;
BgL_arg2028z00_1605 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 166 */
long BgL_n2z00_1613;
BgL_n2z00_1613 = 
(long)(BgL_arg2028z00_1605); 
BgL_modz00_1604 = 
(BgL_offsetz00_1603/BgL_n2z00_1613); } } 
{ /* ./SawMill/extratype.scm 166 */
long BgL_restz00_1606;
{ /* ./SawMill/extratype.scm 166 */
int BgL_arg2024z00_1607;
BgL_arg2024z00_1607 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 166 */
long BgL_n2z00_1616;
BgL_n2z00_1616 = 
(long)(BgL_arg2024z00_1607); 
BgL_restz00_1606 = 
(BgL_offsetz00_1603%BgL_n2z00_1616); } } 
{ /* ./SawMill/extratype.scm 166 */

{ /* ./SawMill/extratype.scm 166 */
obj_t BgL_bucketz00_1608;
{ /* ./SawMill/extratype.scm 166 */
int BgL_kz00_1618;
BgL_kz00_1618 = 
(int)(BgL_modz00_1604); 
BgL_bucketz00_1608 = 
VECTOR_REF(BgL_arg2017z00_1599,BgL_kz00_1618); } 
{ /* ./SawMill/extratype.scm 166 */
int BgL_kz00_1620;
BgL_kz00_1620 = 
(int)(BgL_restz00_1606); 
BgL_method2828z00_1596 = 
VECTOR_REF(BgL_bucketz00_1608,BgL_kz00_1620); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_1596)(BgL_method2828z00_1596, 
(obj_t)(BgL_ez00_1595), BEOA); } } } 
{ /* ./SawMill/extratype.scm 166 */
obj_t BgL_arg2990z00_782;
BgL_arg2990z00_782 = 
CDR(BgL_l2793z00_778); 
{ 
obj_t BgL_l2793z00_2777;
BgL_l2793z00_2777 = BgL_arg2990z00_782; 
BgL_l2793z00_778 = BgL_l2793z00_2777; 
goto BgL_forzd2each2794zd2_779;} } }  else 
{ /* ./SawMill/extratype.scm 166 */
return ((bool_t)1);} } } } } } 
}



/* object-init */
obj_t BGl_objectzd2initzd2zzsaw_extratypez00()
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 1 */
{ /* ./SawMill/extratype.scm 9 */
obj_t BgL_arg3066z00_817;obj_t BgL_arg3067z00_818;obj_t BgL_arg3071z00_822;
BgL_arg3066z00_817 = 
CNST_TABLE_REF(((long)1)); 
BgL_arg3067z00_818 = BGl_typez00zztype_typez00; 
{ /* ./SawMill/extratype.scm 9 */
obj_t BgL_v2826z00_823;
{ 
int BgL_auxz00_2779;
BgL_auxz00_2779 = 
(int)(((long)0)); 
BgL_v2826z00_823 = 
create_vector(BgL_auxz00_2779); } 
BgL_arg3071z00_822 = BgL_v2826z00_823; } 
BGl_hookz00zzsaw_extratypez00 = 
BGl_registerzd2classz12zc0zz__objectz00(BgL_arg3066z00_817, BgL_arg3067z00_818, BFALSE, BGl_allocatezd2hookzd2envz00zzsaw_extratypez00, ((long)27665), BNIL, BFALSE, BgL_arg3071z00_822); } 
return BUNSPEC;} 
}



/* _allocate-hook */
obj_t BGl__allocatezd2hookzd2zzsaw_extratypez00(obj_t BgL_envz00_2453)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 9 */
{ /* ./SawMill/extratype.scm 9 */
BgL_typez00_bglt BgL_auxz00_2783;
{ /* ./SawMill/extratype.scm 9 */
BgL_typez00_bglt BgL_res4612z00_2540;
{ /* ./SawMill/extratype.scm 9 */
BgL_typez00_bglt BgL_new2706z00_2536;
BgL_new2706z00_2536 = 
((BgL_typez00_bglt)BREF( GC_MALLOC ( sizeof(struct BgL_typez00_bgl) ))); 
{ /* ./SawMill/extratype.scm 9 */
long BgL_arg3087z00_2537;
BgL_arg3087z00_2537 = 
BGl_classzd2numzd2zz__objectz00(BGl_hookz00zzsaw_extratypez00); 
{ /* ./SawMill/extratype.scm 9 */
BgL_objectz00_bglt BgL_objz00_2538;
BgL_objz00_2538 = 
(BgL_objectz00_bglt)(BgL_new2706z00_2536); 
BGL_OBJECT_CLASS_NUM_SET(BgL_objz00_2538, BgL_arg3087z00_2537); } } 
{ /* ./SawMill/extratype.scm 9 */
BgL_objectz00_bglt BgL_auxz00_2788;
BgL_auxz00_2788 = 
(BgL_objectz00_bglt)(BgL_new2706z00_2536); 
BGL_OBJECT_WIDENING_SET(BgL_auxz00_2788, BFALSE); } 
{ /* ./SawMill/extratype.scm 9 */
obj_t BgL_objz00_2539;
BgL_objz00_2539 = 
(obj_t)(BgL_new2706z00_2536); 
BGL_HEAP_DEBUG_MARK_OBJ(BgL_objz00_2539); BUNSPEC; } 
BgL_res4612z00_2540 = BgL_new2706z00_2536; } 
BgL_auxz00_2783 = BgL_res4612z00_2540; } 
return 
(obj_t)(BgL_auxz00_2783);} } 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzsaw_extratypez00()
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 1 */
BGl_addzd2genericz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_typecheckzd2default2827zd2envz00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_atomz00zzast_nodez00, BGl_proc4571z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_varz00zzast_nodez00, BGl_proc4572z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_letzd2varzd2zzast_nodez00, BGl_proc4573z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_setqz00zzast_nodez00, BGl_proc4574z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_sequencez00zzast_nodez00, BGl_proc4575z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_conditionalz00zzast_nodez00, BGl_proc4576z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_selectz00zzast_nodez00, BGl_proc4577z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_letzd2funzd2zzast_nodez00, BGl_proc4578z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_appz00zzast_nodez00, BGl_proc4579z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_appzd2lyzd2zzast_nodez00, BGl_proc4580z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_funcallz00zzast_nodez00, BGl_proc4581z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_externz00zzast_nodez00, BGl_proc4582z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_castz00zzast_nodez00, BGl_proc4583z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_setzd2exzd2itz00zzast_nodez00, BGl_proc4584z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_jumpzd2exzd2itz00zzast_nodez00, BGl_proc4585z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_failz00zzast_nodez00, BGl_proc4586z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_makezd2boxzd2zzast_nodez00, BGl_proc4587z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_boxzd2refzd2zzast_nodez00, BGl_proc4588z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_typecheckzd2envzd2zzsaw_extratypez00, BGl_boxzd2setz12zc0zzast_nodez00, BGl_proc4589z00zzsaw_extratypez00); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_objectzd2ze3structzd2envze3zz__objectz00, BGl_hookz00zzsaw_extratypez00, BGl_proc4590z00zzsaw_extratypez00); 
return 
BGl_addzd2methodz12zc0zz__objectz00(BGl_structzb2objectzd2ze3objectzd2envz51zz__objectz00, BGl_hookz00zzsaw_extratypez00, BGl_proc4591z00zzsaw_extratypez00);} 
}



/* struct+object->object-hook2870 */
obj_t BGl_structzb2objectzd2ze3objectzd2hook2870z51zzsaw_extratypez00(obj_t BgL_envz00_2480, obj_t BgL_oz00_2481, obj_t BgL_sz00_2482)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 9 */
{ 
BgL_hookz00_bglt BgL_oz00_1458;obj_t BgL_sz00_1459;
{ /* ./SawMill/extratype.scm 9 */
BgL_hookz00_bglt BgL_auxz00_2816;
BgL_oz00_1458 = 
(BgL_hookz00_bglt)(BgL_oz00_2481); 
BgL_sz00_1459 = BgL_sz00_2482; 
{ 

{ /* ./SawMill/extratype.scm 9 */
obj_t BgL_old2710z00_1462;obj_t BgL_aux2711z00_1463;
{ /* ./SawMill/extratype.scm 9 */
obj_t BgL_nextzd2method2869zd2_1468;
BgL_nextzd2method2869zd2_1468 = 
BGl_findzd2superzd2classzd2methodzd2zz__objectz00(
(BgL_objectz00_bglt)(BgL_oz00_1458), BGl_structzb2objectzd2ze3objectzd2envz51zz__objectz00, BGl_hookz00zzsaw_extratypez00); 
{ /* ./SawMill/extratype.scm 9 */
bool_t BgL_test3936z00_1469;
BgL_test3936z00_1469 = 
PROCEDUREP(BgL_nextzd2method2869zd2_1468); 
if(BgL_test3936z00_1469)
{ /* ./SawMill/extratype.scm 9 */
BgL_old2710z00_1462 = 
PROCEDURE_ENTRY(BgL_nextzd2method2869zd2_1468)(BgL_nextzd2method2869zd2_1468, 
(obj_t)(BgL_oz00_1458), BgL_sz00_1459, BEOA); }  else 
{ /* ./SawMill/extratype.scm 9 */
{ /* ./SawMill/extratype.scm 9 */
BgL_objectz00_bglt BgL_auxz00_2824;
BgL_auxz00_2824 = 
BGl_structzb2objectzd2ze3objectz83zz__objectz00(
(BgL_objectz00_bglt)(BgL_oz00_1458), BgL_sz00_1459); 
BgL_old2710z00_1462 = 
(obj_t)(BgL_auxz00_2824); } } } } 
{ /* ./SawMill/extratype.scm 9 */
int BgL_auxz00_2828;
BgL_auxz00_2828 = 
(int)(((long)0)); 
BgL_aux2711z00_1463 = 
STRUCT_REF(BgL_sz00_1459, BgL_auxz00_2828); } 
{ /* ./SawMill/extratype.scm 9 */
BgL_hookz00_bglt BgL_new2712z00_1464;
BgL_new2712z00_1464 = 
((BgL_hookz00_bglt)(BgL_old2710z00_1462)); 
{ /* ./SawMill/extratype.scm 9 */
long BgL_arg3923z00_1465;
BgL_arg3923z00_1465 = 
BGl_classzd2numzd2zz__objectz00(BGl_hookz00zzsaw_extratypez00); 
{ /* ./SawMill/extratype.scm 9 */
BgL_objectz00_bglt BgL_objz00_2408;
BgL_objz00_2408 = 
(BgL_objectz00_bglt)(BgL_new2712z00_1464); 
BGL_OBJECT_CLASS_NUM_SET(BgL_objz00_2408, BgL_arg3923z00_1465); } } 
{ /* ./SawMill/extratype.scm 9 */
BgL_hookz00_bglt BgL_arg3927z00_1466;
{ /* ./SawMill/extratype.scm 9 */
obj_t BgL_arg3930z00_1467;
{ /* ./SawMill/extratype.scm 9 */
int BgL_auxz00_2835;
BgL_auxz00_2835 = 
(int)(((long)0)); 
BgL_arg3930z00_1467 = 
STRUCT_REF(BgL_aux2711z00_1463, BgL_auxz00_2835); } 
{ /* ./SawMill/extratype.scm 9 */
BgL_hookz00_bglt BgL_res4014z00_2418;
{ /* ./SawMill/extratype.scm 9 */
BgL_typez00_bglt BgL_type2682z00_2412;
BgL_type2682z00_2412 = 
(BgL_typez00_bglt)(BgL_arg3930z00_1467); 
{ /* ./SawMill/extratype.scm 9 */
BgL_hookz00_bglt BgL_new2683z00_2413;
BgL_new2683z00_2413 = 
((BgL_hookz00_bglt)BREF( GC_MALLOC (sizeof(struct BgL_hookz00_bgl)))); 
{ /* ./SawMill/extratype.scm 9 */
BgL_hookz00_bglt BgL_res4013z00_2417;
{ /* ./SawMill/extratype.scm 9 */
BgL_hookz00_bglt BgL_new2703z00_2414;
BgL_new2703z00_2414 = BgL_new2683z00_2413; 
{ /* ./SawMill/extratype.scm 9 */
BgL_typez00_bglt BgL_type2702z00_2416;
BgL_type2702z00_2416 = BgL_type2682z00_2412; 
((((BgL_hookz00_bglt)CREF(BgL_new2703z00_2414))->BgL_typez00) = ((BgL_typez00_bglt)BgL_type2702z00_2416), BUNSPEC); 
BgL_res4013z00_2417 = BgL_new2703z00_2414; } } BgL_res4013z00_2417; } 
BgL_res4014z00_2418 = BgL_new2683z00_2413; } } 
BgL_arg3927z00_1466 = BgL_res4014z00_2418; } } 
{ /* ./SawMill/extratype.scm 9 */
obj_t BgL_auxz00_2843;BgL_objectz00_bglt BgL_auxz00_2841;
BgL_auxz00_2843 = 
(obj_t)(BgL_arg3927z00_1466); 
BgL_auxz00_2841 = 
(BgL_objectz00_bglt)(BgL_new2712z00_1464); 
BGL_OBJECT_WIDENING_SET(BgL_auxz00_2841, BgL_auxz00_2843); } } 
{ /* ./SawMill/extratype.scm 9 */
obj_t BgL_objz00_2419;
BgL_objz00_2419 = 
(obj_t)(BgL_new2712z00_1464); 
BGL_HEAP_DEBUG_MARK_OBJ(BgL_objz00_2419); BUNSPEC; } 
BgL_auxz00_2816 = BgL_new2712z00_1464; } } } 
return 
(obj_t)(BgL_auxz00_2816);} } } 
}



/* object->struct-hook2868 */
obj_t BGl_objectzd2ze3structzd2hook2868ze3zzsaw_extratypez00(obj_t BgL_envz00_2483, obj_t BgL_obj2707z00_2484)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 9 */
{ 
BgL_hookz00_bglt BgL_obj2707z00_1448;
BgL_obj2707z00_1448 = 
(BgL_hookz00_bglt)(BgL_obj2707z00_2484); 
{ 

{ /* ./SawMill/extratype.scm 9 */
obj_t BgL_res2708z00_1451;
{ /* ./SawMill/extratype.scm 9 */
obj_t BgL_nextzd2method2867zd2_1456;
BgL_nextzd2method2867zd2_1456 = 
BGl_findzd2superzd2classzd2methodzd2zz__objectz00(
(BgL_objectz00_bglt)(BgL_obj2707z00_1448), BGl_objectzd2ze3structzd2envze3zz__objectz00, BGl_hookz00zzsaw_extratypez00); 
{ /* ./SawMill/extratype.scm 9 */
bool_t BgL_test3916z00_1457;
BgL_test3916z00_1457 = 
PROCEDUREP(BgL_nextzd2method2867zd2_1456); 
if(BgL_test3916z00_1457)
{ /* ./SawMill/extratype.scm 9 */
BgL_res2708z00_1451 = 
PROCEDURE_ENTRY(BgL_nextzd2method2867zd2_1456)(BgL_nextzd2method2867zd2_1456, 
(obj_t)(BgL_obj2707z00_1448), BEOA); }  else 
{ /* ./SawMill/extratype.scm 9 */
BgL_res2708z00_1451 = 
BGl_objectzd2ze3structz31zz__objectz00(
(BgL_objectz00_bglt)(BgL_obj2707z00_1448)); } } } 
{ /* ./SawMill/extratype.scm 9 */
obj_t BgL_aux2709z00_1452;
{ /* ./SawMill/extratype.scm 9 */
obj_t BgL_keyz00_2389;int BgL_lenz00_2390;
BgL_keyz00_2389 = 
CNST_TABLE_REF(((long)1)); 
BgL_lenz00_2390 = 
(int)(((long)1)); 
BgL_aux2709z00_1452 = 
make_struct(BgL_keyz00_2389, BgL_lenz00_2390, BUNSPEC); } 
{ /* ./SawMill/extratype.scm 9 */
BgL_typez00_bglt BgL_arg3905z00_1454;
{ 
obj_t BgL_auxz00_2862;
{ /* ./SawMill/extratype.scm 9 */
BgL_objectz00_bglt BgL_auxz00_2863;
BgL_auxz00_2863 = 
(BgL_objectz00_bglt)(BgL_obj2707z00_1448); 
BgL_auxz00_2862 = 
BGL_OBJECT_WIDENING(BgL_auxz00_2863); } 
BgL_arg3905z00_1454 = 
(((BgL_hookz00_bglt)CREF(BgL_auxz00_2862))->BgL_typez00); } 
{ /* ./SawMill/extratype.scm 9 */
int BgL_kz00_2394;obj_t BgL_oz00_2395;
BgL_kz00_2394 = 
(int)(((long)0)); 
BgL_oz00_2395 = 
(obj_t)(BgL_arg3905z00_1454); 
STRUCT_SET(BgL_aux2709z00_1452, BgL_kz00_2394, BgL_oz00_2395); } } 
{ /* ./SawMill/extratype.scm 9 */
int BgL_kz00_2397;
BgL_kz00_2397 = 
(int)(((long)0)); 
STRUCT_SET(BgL_res2708z00_1451, BgL_kz00_2397, BgL_aux2709z00_1452); } 
{ /* ./SawMill/extratype.scm 9 */
obj_t BgL_arg3910z00_1455;
BgL_arg3910z00_1455 = 
STRUCT_KEY(BgL_res2708z00_1451); 
STRUCT_KEY_SET(BgL_aux2709z00_1452, BgL_arg3910z00_1455); } 
{ /* ./SawMill/extratype.scm 9 */
obj_t BgL_kz00_2404;
BgL_kz00_2404 = 
CNST_TABLE_REF(((long)1)); 
STRUCT_KEY_SET(BgL_res2708z00_1451, BgL_kz00_2404); } 
return BgL_res2708z00_1451;} } } } } 
}



/* typecheck-box-set!2866 */
obj_t BGl_typecheckzd2boxzd2setz122866z12zzsaw_extratypez00(obj_t BgL_envz00_2485, obj_t BgL_ez00_2486)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 235 */
{ 
BgL_boxzd2setz12zc0_bglt BgL_ez00_1441;
{ /* ./SawMill/extratype.scm 236 */
BgL_typez00_bglt BgL_auxz00_2877;
BgL_ez00_1441 = 
(BgL_boxzd2setz12zc0_bglt)(BgL_ez00_2486); 
{ /* ./SawMill/extratype.scm 236 */
BgL_nodez00_bglt BgL_arg3893z00_2361;
BgL_arg3893z00_2361 = 
(((BgL_boxzd2setz12zc0_bglt)CREF(BgL_ez00_1441))->BgL_valuez00); 
{ /* ./SawMill/extratype.scm 236 */
obj_t BgL_method2828z00_2364;
{ /* ./SawMill/extratype.scm 236 */
BgL_objectz00_bglt BgL_objz00_2365;
BgL_objz00_2365 = 
(BgL_objectz00_bglt)(BgL_arg3893z00_2361); 
{ /* ./SawMill/extratype.scm 236 */
long BgL_objzd2classzd2numz00_2366;
BgL_objzd2classzd2numz00_2366 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2365); 
{ /* ./SawMill/extratype.scm 236 */
obj_t BgL_arg2017z00_2367;
{ /* ./SawMill/extratype.scm 236 */
int BgL_auxz00_2881;
BgL_auxz00_2881 = 
(int)(((long)1)); 
BgL_arg2017z00_2367 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_2881); } 
{ /* ./SawMill/extratype.scm 236 */
int BgL_offsetz00_2370;
BgL_offsetz00_2370 = 
(int)(BgL_objzd2classzd2numz00_2366); 
{ /* ./SawMill/extratype.scm 236 */
long BgL_offsetz00_2371;
{ /* ./SawMill/extratype.scm 236 */
long BgL_auxz00_2885;
BgL_auxz00_2885 = 
(long)(BgL_offsetz00_2370); 
BgL_offsetz00_2371 = 
(BgL_auxz00_2885-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 236 */
long BgL_modz00_2372;
{ /* ./SawMill/extratype.scm 236 */
int BgL_arg2028z00_2373;
BgL_arg2028z00_2373 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 236 */
long BgL_n2z00_2381;
BgL_n2z00_2381 = 
(long)(BgL_arg2028z00_2373); 
BgL_modz00_2372 = 
(BgL_offsetz00_2371/BgL_n2z00_2381); } } 
{ /* ./SawMill/extratype.scm 236 */
long BgL_restz00_2374;
{ /* ./SawMill/extratype.scm 236 */
int BgL_arg2024z00_2375;
BgL_arg2024z00_2375 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 236 */
long BgL_n2z00_2384;
BgL_n2z00_2384 = 
(long)(BgL_arg2024z00_2375); 
BgL_restz00_2374 = 
(BgL_offsetz00_2371%BgL_n2z00_2384); } } 
{ /* ./SawMill/extratype.scm 236 */

{ /* ./SawMill/extratype.scm 236 */
obj_t BgL_bucketz00_2376;
{ /* ./SawMill/extratype.scm 236 */
int BgL_kz00_2386;
BgL_kz00_2386 = 
(int)(BgL_modz00_2372); 
BgL_bucketz00_2376 = 
VECTOR_REF(BgL_arg2017z00_2367,BgL_kz00_2386); } 
{ /* ./SawMill/extratype.scm 236 */
int BgL_kz00_2388;
BgL_kz00_2388 = 
(int)(BgL_restz00_2374); 
BgL_method2828z00_2364 = 
VECTOR_REF(BgL_bucketz00_2376,BgL_kz00_2388); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_2364)(BgL_method2828z00_2364, 
(obj_t)(BgL_arg3893z00_2361), BEOA); } } 
BgL_auxz00_2877 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_ez00_1441)); 
return 
(obj_t)(BgL_auxz00_2877);} } } 
}



/* typecheck-box-ref2864 */
obj_t BGl_typecheckzd2boxzd2ref2864z00zzsaw_extratypez00(obj_t BgL_envz00_2487, obj_t BgL_ez00_2488)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 232 */
{ 
BgL_boxzd2refzd2_bglt BgL_ez00_1436;
{ /* ./SawMill/extratype.scm 233 */
BgL_typez00_bglt BgL_auxz00_2905;
BgL_ez00_1436 = 
(BgL_boxzd2refzd2_bglt)(BgL_ez00_2488); 
BgL_auxz00_2905 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_ez00_1436)); 
return 
(obj_t)(BgL_auxz00_2905);} } } 
}



/* typecheck-make-box2862 */
obj_t BGl_typecheckzd2makezd2box2862z00zzsaw_extratypez00(obj_t BgL_envz00_2489, obj_t BgL_ez00_2490)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 227 */
{ 
BgL_makezd2boxzd2_bglt BgL_ez00_1429;
{ /* ./SawMill/extratype.scm 228 */
BgL_typez00_bglt BgL_auxz00_2910;
BgL_ez00_1429 = 
(BgL_makezd2boxzd2_bglt)(BgL_ez00_2490); 
{ /* ./SawMill/extratype.scm 228 */
BgL_nodez00_bglt BgL_arg3875z00_2332;
BgL_arg3875z00_2332 = 
(((BgL_makezd2boxzd2_bglt)CREF(BgL_ez00_1429))->BgL_valuez00); 
{ /* ./SawMill/extratype.scm 228 */
obj_t BgL_method2828z00_2335;
{ /* ./SawMill/extratype.scm 228 */
BgL_objectz00_bglt BgL_objz00_2336;
BgL_objz00_2336 = 
(BgL_objectz00_bglt)(BgL_arg3875z00_2332); 
{ /* ./SawMill/extratype.scm 228 */
long BgL_objzd2classzd2numz00_2337;
BgL_objzd2classzd2numz00_2337 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2336); 
{ /* ./SawMill/extratype.scm 228 */
obj_t BgL_arg2017z00_2338;
{ /* ./SawMill/extratype.scm 228 */
int BgL_auxz00_2914;
BgL_auxz00_2914 = 
(int)(((long)1)); 
BgL_arg2017z00_2338 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_2914); } 
{ /* ./SawMill/extratype.scm 228 */
int BgL_offsetz00_2341;
BgL_offsetz00_2341 = 
(int)(BgL_objzd2classzd2numz00_2337); 
{ /* ./SawMill/extratype.scm 228 */
long BgL_offsetz00_2342;
{ /* ./SawMill/extratype.scm 228 */
long BgL_auxz00_2918;
BgL_auxz00_2918 = 
(long)(BgL_offsetz00_2341); 
BgL_offsetz00_2342 = 
(BgL_auxz00_2918-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 228 */
long BgL_modz00_2343;
{ /* ./SawMill/extratype.scm 228 */
int BgL_arg2028z00_2344;
BgL_arg2028z00_2344 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 228 */
long BgL_n2z00_2352;
BgL_n2z00_2352 = 
(long)(BgL_arg2028z00_2344); 
BgL_modz00_2343 = 
(BgL_offsetz00_2342/BgL_n2z00_2352); } } 
{ /* ./SawMill/extratype.scm 228 */
long BgL_restz00_2345;
{ /* ./SawMill/extratype.scm 228 */
int BgL_arg2024z00_2346;
BgL_arg2024z00_2346 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 228 */
long BgL_n2z00_2355;
BgL_n2z00_2355 = 
(long)(BgL_arg2024z00_2346); 
BgL_restz00_2345 = 
(BgL_offsetz00_2342%BgL_n2z00_2355); } } 
{ /* ./SawMill/extratype.scm 228 */

{ /* ./SawMill/extratype.scm 228 */
obj_t BgL_bucketz00_2347;
{ /* ./SawMill/extratype.scm 228 */
int BgL_kz00_2357;
BgL_kz00_2357 = 
(int)(BgL_modz00_2343); 
BgL_bucketz00_2347 = 
VECTOR_REF(BgL_arg2017z00_2338,BgL_kz00_2357); } 
{ /* ./SawMill/extratype.scm 228 */
int BgL_kz00_2359;
BgL_kz00_2359 = 
(int)(BgL_restz00_2345); 
BgL_method2828z00_2335 = 
VECTOR_REF(BgL_bucketz00_2347,BgL_kz00_2359); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_2335)(BgL_method2828z00_2335, 
(obj_t)(BgL_arg3875z00_2332), BEOA); } } 
BgL_auxz00_2910 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_ez00_1429)); 
return 
(obj_t)(BgL_auxz00_2910);} } } 
}



/* typecheck-fail2860 */
obj_t BGl_typecheckzd2fail2860zd2zzsaw_extratypez00(obj_t BgL_envz00_2491, obj_t BgL_ez00_2492)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 220 */
{ 
BgL_failz00_bglt BgL_ez00_1420;
{ /* ./SawMill/extratype.scm 221 */
BgL_typez00_bglt BgL_auxz00_2938;
BgL_ez00_1420 = 
(BgL_failz00_bglt)(BgL_ez00_2492); 
{ /* ./SawMill/extratype.scm 222 */
BgL_nodez00_bglt BgL_arg3856z00_1424;
BgL_arg3856z00_1424 = 
(((BgL_failz00_bglt)CREF(BgL_ez00_1420))->BgL_procz00); 
{ /* ./SawMill/extratype.scm 222 */
obj_t BgL_method2828z00_2252;
{ /* ./SawMill/extratype.scm 222 */
BgL_objectz00_bglt BgL_objz00_2253;
BgL_objz00_2253 = 
(BgL_objectz00_bglt)(BgL_arg3856z00_1424); 
{ /* ./SawMill/extratype.scm 222 */
long BgL_objzd2classzd2numz00_2254;
BgL_objzd2classzd2numz00_2254 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2253); 
{ /* ./SawMill/extratype.scm 222 */
obj_t BgL_arg2017z00_2255;
{ /* ./SawMill/extratype.scm 222 */
int BgL_auxz00_2942;
BgL_auxz00_2942 = 
(int)(((long)1)); 
BgL_arg2017z00_2255 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_2942); } 
{ /* ./SawMill/extratype.scm 222 */
int BgL_offsetz00_2258;
BgL_offsetz00_2258 = 
(int)(BgL_objzd2classzd2numz00_2254); 
{ /* ./SawMill/extratype.scm 222 */
long BgL_offsetz00_2259;
{ /* ./SawMill/extratype.scm 222 */
long BgL_auxz00_2946;
BgL_auxz00_2946 = 
(long)(BgL_offsetz00_2258); 
BgL_offsetz00_2259 = 
(BgL_auxz00_2946-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 222 */
long BgL_modz00_2260;
{ /* ./SawMill/extratype.scm 222 */
int BgL_arg2028z00_2261;
BgL_arg2028z00_2261 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 222 */
long BgL_n2z00_2269;
BgL_n2z00_2269 = 
(long)(BgL_arg2028z00_2261); 
BgL_modz00_2260 = 
(BgL_offsetz00_2259/BgL_n2z00_2269); } } 
{ /* ./SawMill/extratype.scm 222 */
long BgL_restz00_2262;
{ /* ./SawMill/extratype.scm 222 */
int BgL_arg2024z00_2263;
BgL_arg2024z00_2263 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 222 */
long BgL_n2z00_2272;
BgL_n2z00_2272 = 
(long)(BgL_arg2024z00_2263); 
BgL_restz00_2262 = 
(BgL_offsetz00_2259%BgL_n2z00_2272); } } 
{ /* ./SawMill/extratype.scm 222 */

{ /* ./SawMill/extratype.scm 222 */
obj_t BgL_bucketz00_2264;
{ /* ./SawMill/extratype.scm 222 */
int BgL_kz00_2274;
BgL_kz00_2274 = 
(int)(BgL_modz00_2260); 
BgL_bucketz00_2264 = 
VECTOR_REF(BgL_arg2017z00_2255,BgL_kz00_2274); } 
{ /* ./SawMill/extratype.scm 222 */
int BgL_kz00_2276;
BgL_kz00_2276 = 
(int)(BgL_restz00_2262); 
BgL_method2828z00_2252 = 
VECTOR_REF(BgL_bucketz00_2264,BgL_kz00_2276); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_2252)(BgL_method2828z00_2252, 
(obj_t)(BgL_arg3856z00_1424), BEOA); } } 
{ /* ./SawMill/extratype.scm 223 */
BgL_nodez00_bglt BgL_arg3860z00_1425;
BgL_arg3860z00_1425 = 
(((BgL_failz00_bglt)CREF(BgL_ez00_1420))->BgL_msgz00); 
{ /* ./SawMill/extratype.scm 223 */
obj_t BgL_method2828z00_2279;
{ /* ./SawMill/extratype.scm 223 */
BgL_objectz00_bglt BgL_objz00_2280;
BgL_objz00_2280 = 
(BgL_objectz00_bglt)(BgL_arg3860z00_1425); 
{ /* ./SawMill/extratype.scm 223 */
long BgL_objzd2classzd2numz00_2281;
BgL_objzd2classzd2numz00_2281 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2280); 
{ /* ./SawMill/extratype.scm 223 */
obj_t BgL_arg2017z00_2282;
{ /* ./SawMill/extratype.scm 223 */
int BgL_auxz00_2965;
BgL_auxz00_2965 = 
(int)(((long)1)); 
BgL_arg2017z00_2282 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_2965); } 
{ /* ./SawMill/extratype.scm 223 */
int BgL_offsetz00_2285;
BgL_offsetz00_2285 = 
(int)(BgL_objzd2classzd2numz00_2281); 
{ /* ./SawMill/extratype.scm 223 */
long BgL_offsetz00_2286;
{ /* ./SawMill/extratype.scm 223 */
long BgL_auxz00_2969;
BgL_auxz00_2969 = 
(long)(BgL_offsetz00_2285); 
BgL_offsetz00_2286 = 
(BgL_auxz00_2969-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 223 */
long BgL_modz00_2287;
{ /* ./SawMill/extratype.scm 223 */
int BgL_arg2028z00_2288;
BgL_arg2028z00_2288 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 223 */
long BgL_n2z00_2296;
BgL_n2z00_2296 = 
(long)(BgL_arg2028z00_2288); 
BgL_modz00_2287 = 
(BgL_offsetz00_2286/BgL_n2z00_2296); } } 
{ /* ./SawMill/extratype.scm 223 */
long BgL_restz00_2289;
{ /* ./SawMill/extratype.scm 223 */
int BgL_arg2024z00_2290;
BgL_arg2024z00_2290 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 223 */
long BgL_n2z00_2299;
BgL_n2z00_2299 = 
(long)(BgL_arg2024z00_2290); 
BgL_restz00_2289 = 
(BgL_offsetz00_2286%BgL_n2z00_2299); } } 
{ /* ./SawMill/extratype.scm 223 */

{ /* ./SawMill/extratype.scm 223 */
obj_t BgL_bucketz00_2291;
{ /* ./SawMill/extratype.scm 223 */
int BgL_kz00_2301;
BgL_kz00_2301 = 
(int)(BgL_modz00_2287); 
BgL_bucketz00_2291 = 
VECTOR_REF(BgL_arg2017z00_2282,BgL_kz00_2301); } 
{ /* ./SawMill/extratype.scm 223 */
int BgL_kz00_2303;
BgL_kz00_2303 = 
(int)(BgL_restz00_2289); 
BgL_method2828z00_2279 = 
VECTOR_REF(BgL_bucketz00_2291,BgL_kz00_2303); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_2279)(BgL_method2828z00_2279, 
(obj_t)(BgL_arg3860z00_1425), BEOA); } } 
{ /* ./SawMill/extratype.scm 224 */
BgL_nodez00_bglt BgL_arg3864z00_1426;
BgL_arg3864z00_1426 = 
(((BgL_failz00_bglt)CREF(BgL_ez00_1420))->BgL_objz00); 
{ /* ./SawMill/extratype.scm 224 */
obj_t BgL_method2828z00_2306;
{ /* ./SawMill/extratype.scm 224 */
BgL_objectz00_bglt BgL_objz00_2307;
BgL_objz00_2307 = 
(BgL_objectz00_bglt)(BgL_arg3864z00_1426); 
{ /* ./SawMill/extratype.scm 224 */
long BgL_objzd2classzd2numz00_2308;
BgL_objzd2classzd2numz00_2308 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2307); 
{ /* ./SawMill/extratype.scm 224 */
obj_t BgL_arg2017z00_2309;
{ /* ./SawMill/extratype.scm 224 */
int BgL_auxz00_2988;
BgL_auxz00_2988 = 
(int)(((long)1)); 
BgL_arg2017z00_2309 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_2988); } 
{ /* ./SawMill/extratype.scm 224 */
int BgL_offsetz00_2312;
BgL_offsetz00_2312 = 
(int)(BgL_objzd2classzd2numz00_2308); 
{ /* ./SawMill/extratype.scm 224 */
long BgL_offsetz00_2313;
{ /* ./SawMill/extratype.scm 224 */
long BgL_auxz00_2992;
BgL_auxz00_2992 = 
(long)(BgL_offsetz00_2312); 
BgL_offsetz00_2313 = 
(BgL_auxz00_2992-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 224 */
long BgL_modz00_2314;
{ /* ./SawMill/extratype.scm 224 */
int BgL_arg2028z00_2315;
BgL_arg2028z00_2315 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 224 */
long BgL_n2z00_2323;
BgL_n2z00_2323 = 
(long)(BgL_arg2028z00_2315); 
BgL_modz00_2314 = 
(BgL_offsetz00_2313/BgL_n2z00_2323); } } 
{ /* ./SawMill/extratype.scm 224 */
long BgL_restz00_2316;
{ /* ./SawMill/extratype.scm 224 */
int BgL_arg2024z00_2317;
BgL_arg2024z00_2317 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 224 */
long BgL_n2z00_2326;
BgL_n2z00_2326 = 
(long)(BgL_arg2024z00_2317); 
BgL_restz00_2316 = 
(BgL_offsetz00_2313%BgL_n2z00_2326); } } 
{ /* ./SawMill/extratype.scm 224 */

{ /* ./SawMill/extratype.scm 224 */
obj_t BgL_bucketz00_2318;
{ /* ./SawMill/extratype.scm 224 */
int BgL_kz00_2328;
BgL_kz00_2328 = 
(int)(BgL_modz00_2314); 
BgL_bucketz00_2318 = 
VECTOR_REF(BgL_arg2017z00_2309,BgL_kz00_2328); } 
{ /* ./SawMill/extratype.scm 224 */
int BgL_kz00_2330;
BgL_kz00_2330 = 
(int)(BgL_restz00_2316); 
BgL_method2828z00_2306 = 
VECTOR_REF(BgL_bucketz00_2318,BgL_kz00_2330); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_2306)(BgL_method2828z00_2306, 
(obj_t)(BgL_arg3864z00_1426), BEOA); } } 
BgL_auxz00_2938 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_ez00_1420)); 
return 
(obj_t)(BgL_auxz00_2938);} } } 
}



/* typecheck-jump-ex-it2858 */
obj_t BGl_typecheckzd2jumpzd2exzd2it2858zd2zzsaw_extratypez00(obj_t BgL_envz00_2493, obj_t BgL_ez00_2494)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 214 */
{ 
BgL_jumpzd2exzd2itz00_bglt BgL_ez00_1412;
{ /* ./SawMill/extratype.scm 215 */
BgL_typez00_bglt BgL_auxz00_3012;
BgL_ez00_1412 = 
(BgL_jumpzd2exzd2itz00_bglt)(BgL_ez00_2494); 
{ /* ./SawMill/extratype.scm 216 */
BgL_nodez00_bglt BgL_arg3841z00_1416;
BgL_arg3841z00_1416 = 
(((BgL_jumpzd2exzd2itz00_bglt)CREF(BgL_ez00_1412))->BgL_exitz00); 
{ /* ./SawMill/extratype.scm 216 */
obj_t BgL_method2828z00_2198;
{ /* ./SawMill/extratype.scm 216 */
BgL_objectz00_bglt BgL_objz00_2199;
BgL_objz00_2199 = 
(BgL_objectz00_bglt)(BgL_arg3841z00_1416); 
{ /* ./SawMill/extratype.scm 216 */
long BgL_objzd2classzd2numz00_2200;
BgL_objzd2classzd2numz00_2200 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2199); 
{ /* ./SawMill/extratype.scm 216 */
obj_t BgL_arg2017z00_2201;
{ /* ./SawMill/extratype.scm 216 */
int BgL_auxz00_3016;
BgL_auxz00_3016 = 
(int)(((long)1)); 
BgL_arg2017z00_2201 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3016); } 
{ /* ./SawMill/extratype.scm 216 */
int BgL_offsetz00_2204;
BgL_offsetz00_2204 = 
(int)(BgL_objzd2classzd2numz00_2200); 
{ /* ./SawMill/extratype.scm 216 */
long BgL_offsetz00_2205;
{ /* ./SawMill/extratype.scm 216 */
long BgL_auxz00_3020;
BgL_auxz00_3020 = 
(long)(BgL_offsetz00_2204); 
BgL_offsetz00_2205 = 
(BgL_auxz00_3020-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 216 */
long BgL_modz00_2206;
{ /* ./SawMill/extratype.scm 216 */
int BgL_arg2028z00_2207;
BgL_arg2028z00_2207 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 216 */
long BgL_n2z00_2215;
BgL_n2z00_2215 = 
(long)(BgL_arg2028z00_2207); 
BgL_modz00_2206 = 
(BgL_offsetz00_2205/BgL_n2z00_2215); } } 
{ /* ./SawMill/extratype.scm 216 */
long BgL_restz00_2208;
{ /* ./SawMill/extratype.scm 216 */
int BgL_arg2024z00_2209;
BgL_arg2024z00_2209 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 216 */
long BgL_n2z00_2218;
BgL_n2z00_2218 = 
(long)(BgL_arg2024z00_2209); 
BgL_restz00_2208 = 
(BgL_offsetz00_2205%BgL_n2z00_2218); } } 
{ /* ./SawMill/extratype.scm 216 */

{ /* ./SawMill/extratype.scm 216 */
obj_t BgL_bucketz00_2210;
{ /* ./SawMill/extratype.scm 216 */
int BgL_kz00_2220;
BgL_kz00_2220 = 
(int)(BgL_modz00_2206); 
BgL_bucketz00_2210 = 
VECTOR_REF(BgL_arg2017z00_2201,BgL_kz00_2220); } 
{ /* ./SawMill/extratype.scm 216 */
int BgL_kz00_2222;
BgL_kz00_2222 = 
(int)(BgL_restz00_2208); 
BgL_method2828z00_2198 = 
VECTOR_REF(BgL_bucketz00_2210,BgL_kz00_2222); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_2198)(BgL_method2828z00_2198, 
(obj_t)(BgL_arg3841z00_1416), BEOA); } } 
{ /* ./SawMill/extratype.scm 217 */
BgL_nodez00_bglt BgL_arg3845z00_1417;
BgL_arg3845z00_1417 = 
(((BgL_jumpzd2exzd2itz00_bglt)CREF(BgL_ez00_1412))->BgL_valuez00); 
{ /* ./SawMill/extratype.scm 217 */
obj_t BgL_method2828z00_2225;
{ /* ./SawMill/extratype.scm 217 */
BgL_objectz00_bglt BgL_objz00_2226;
BgL_objz00_2226 = 
(BgL_objectz00_bglt)(BgL_arg3845z00_1417); 
{ /* ./SawMill/extratype.scm 217 */
long BgL_objzd2classzd2numz00_2227;
BgL_objzd2classzd2numz00_2227 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2226); 
{ /* ./SawMill/extratype.scm 217 */
obj_t BgL_arg2017z00_2228;
{ /* ./SawMill/extratype.scm 217 */
int BgL_auxz00_3039;
BgL_auxz00_3039 = 
(int)(((long)1)); 
BgL_arg2017z00_2228 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3039); } 
{ /* ./SawMill/extratype.scm 217 */
int BgL_offsetz00_2231;
BgL_offsetz00_2231 = 
(int)(BgL_objzd2classzd2numz00_2227); 
{ /* ./SawMill/extratype.scm 217 */
long BgL_offsetz00_2232;
{ /* ./SawMill/extratype.scm 217 */
long BgL_auxz00_3043;
BgL_auxz00_3043 = 
(long)(BgL_offsetz00_2231); 
BgL_offsetz00_2232 = 
(BgL_auxz00_3043-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 217 */
long BgL_modz00_2233;
{ /* ./SawMill/extratype.scm 217 */
int BgL_arg2028z00_2234;
BgL_arg2028z00_2234 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 217 */
long BgL_n2z00_2242;
BgL_n2z00_2242 = 
(long)(BgL_arg2028z00_2234); 
BgL_modz00_2233 = 
(BgL_offsetz00_2232/BgL_n2z00_2242); } } 
{ /* ./SawMill/extratype.scm 217 */
long BgL_restz00_2235;
{ /* ./SawMill/extratype.scm 217 */
int BgL_arg2024z00_2236;
BgL_arg2024z00_2236 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 217 */
long BgL_n2z00_2245;
BgL_n2z00_2245 = 
(long)(BgL_arg2024z00_2236); 
BgL_restz00_2235 = 
(BgL_offsetz00_2232%BgL_n2z00_2245); } } 
{ /* ./SawMill/extratype.scm 217 */

{ /* ./SawMill/extratype.scm 217 */
obj_t BgL_bucketz00_2237;
{ /* ./SawMill/extratype.scm 217 */
int BgL_kz00_2247;
BgL_kz00_2247 = 
(int)(BgL_modz00_2233); 
BgL_bucketz00_2237 = 
VECTOR_REF(BgL_arg2017z00_2228,BgL_kz00_2247); } 
{ /* ./SawMill/extratype.scm 217 */
int BgL_kz00_2249;
BgL_kz00_2249 = 
(int)(BgL_restz00_2235); 
BgL_method2828z00_2225 = 
VECTOR_REF(BgL_bucketz00_2237,BgL_kz00_2249); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_2225)(BgL_method2828z00_2225, 
(obj_t)(BgL_arg3845z00_1417), BEOA); } } 
BgL_auxz00_3012 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_ez00_1412)); 
return 
(obj_t)(BgL_auxz00_3012);} } } 
}



/* typecheck-set-ex-it2856 */
obj_t BGl_typecheckzd2setzd2exzd2it2856zd2zzsaw_extratypez00(obj_t BgL_envz00_2495, obj_t BgL_ez00_2496)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 209 */
{ 
BgL_setzd2exzd2itz00_bglt BgL_ez00_1405;
{ /* ./SawMill/extratype.scm 210 */
BgL_typez00_bglt BgL_auxz00_3063;
BgL_ez00_1405 = 
(BgL_setzd2exzd2itz00_bglt)(BgL_ez00_2496); 
{ /* ./SawMill/extratype.scm 210 */
BgL_nodez00_bglt BgL_arg3830z00_2168;
BgL_arg3830z00_2168 = 
(((BgL_setzd2exzd2itz00_bglt)CREF(BgL_ez00_1405))->BgL_bodyz00); 
{ /* ./SawMill/extratype.scm 210 */
obj_t BgL_method2828z00_2171;
{ /* ./SawMill/extratype.scm 210 */
BgL_objectz00_bglt BgL_objz00_2172;
BgL_objz00_2172 = 
(BgL_objectz00_bglt)(BgL_arg3830z00_2168); 
{ /* ./SawMill/extratype.scm 210 */
long BgL_objzd2classzd2numz00_2173;
BgL_objzd2classzd2numz00_2173 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2172); 
{ /* ./SawMill/extratype.scm 210 */
obj_t BgL_arg2017z00_2174;
{ /* ./SawMill/extratype.scm 210 */
int BgL_auxz00_3067;
BgL_auxz00_3067 = 
(int)(((long)1)); 
BgL_arg2017z00_2174 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3067); } 
{ /* ./SawMill/extratype.scm 210 */
int BgL_offsetz00_2177;
BgL_offsetz00_2177 = 
(int)(BgL_objzd2classzd2numz00_2173); 
{ /* ./SawMill/extratype.scm 210 */
long BgL_offsetz00_2178;
{ /* ./SawMill/extratype.scm 210 */
long BgL_auxz00_3071;
BgL_auxz00_3071 = 
(long)(BgL_offsetz00_2177); 
BgL_offsetz00_2178 = 
(BgL_auxz00_3071-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 210 */
long BgL_modz00_2179;
{ /* ./SawMill/extratype.scm 210 */
int BgL_arg2028z00_2180;
BgL_arg2028z00_2180 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 210 */
long BgL_n2z00_2188;
BgL_n2z00_2188 = 
(long)(BgL_arg2028z00_2180); 
BgL_modz00_2179 = 
(BgL_offsetz00_2178/BgL_n2z00_2188); } } 
{ /* ./SawMill/extratype.scm 210 */
long BgL_restz00_2181;
{ /* ./SawMill/extratype.scm 210 */
int BgL_arg2024z00_2182;
BgL_arg2024z00_2182 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 210 */
long BgL_n2z00_2191;
BgL_n2z00_2191 = 
(long)(BgL_arg2024z00_2182); 
BgL_restz00_2181 = 
(BgL_offsetz00_2178%BgL_n2z00_2191); } } 
{ /* ./SawMill/extratype.scm 210 */

{ /* ./SawMill/extratype.scm 210 */
obj_t BgL_bucketz00_2183;
{ /* ./SawMill/extratype.scm 210 */
int BgL_kz00_2193;
BgL_kz00_2193 = 
(int)(BgL_modz00_2179); 
BgL_bucketz00_2183 = 
VECTOR_REF(BgL_arg2017z00_2174,BgL_kz00_2193); } 
{ /* ./SawMill/extratype.scm 210 */
int BgL_kz00_2195;
BgL_kz00_2195 = 
(int)(BgL_restz00_2181); 
BgL_method2828z00_2171 = 
VECTOR_REF(BgL_bucketz00_2183,BgL_kz00_2195); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_2171)(BgL_method2828z00_2171, 
(obj_t)(BgL_arg3830z00_2168), BEOA); } } 
BgL_auxz00_3063 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_ez00_1405)); 
return 
(obj_t)(BgL_auxz00_3063);} } } 
}



/* typecheck-cast2854 */
obj_t BGl_typecheckzd2cast2854zd2zzsaw_extratypez00(obj_t BgL_envz00_2497, obj_t BgL_ez00_2498)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 204 */
{ 
BgL_castz00_bglt BgL_ez00_1398;
{ /* ./SawMill/extratype.scm 205 */
BgL_typez00_bglt BgL_auxz00_3091;
BgL_ez00_1398 = 
(BgL_castz00_bglt)(BgL_ez00_2498); 
{ /* ./SawMill/extratype.scm 205 */
BgL_nodez00_bglt BgL_arg3818z00_2139;
BgL_arg3818z00_2139 = 
(((BgL_castz00_bglt)CREF(BgL_ez00_1398))->BgL_argz00); 
{ /* ./SawMill/extratype.scm 205 */
obj_t BgL_method2828z00_2142;
{ /* ./SawMill/extratype.scm 205 */
BgL_objectz00_bglt BgL_objz00_2143;
BgL_objz00_2143 = 
(BgL_objectz00_bglt)(BgL_arg3818z00_2139); 
{ /* ./SawMill/extratype.scm 205 */
long BgL_objzd2classzd2numz00_2144;
BgL_objzd2classzd2numz00_2144 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2143); 
{ /* ./SawMill/extratype.scm 205 */
obj_t BgL_arg2017z00_2145;
{ /* ./SawMill/extratype.scm 205 */
int BgL_auxz00_3095;
BgL_auxz00_3095 = 
(int)(((long)1)); 
BgL_arg2017z00_2145 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3095); } 
{ /* ./SawMill/extratype.scm 205 */
int BgL_offsetz00_2148;
BgL_offsetz00_2148 = 
(int)(BgL_objzd2classzd2numz00_2144); 
{ /* ./SawMill/extratype.scm 205 */
long BgL_offsetz00_2149;
{ /* ./SawMill/extratype.scm 205 */
long BgL_auxz00_3099;
BgL_auxz00_3099 = 
(long)(BgL_offsetz00_2148); 
BgL_offsetz00_2149 = 
(BgL_auxz00_3099-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 205 */
long BgL_modz00_2150;
{ /* ./SawMill/extratype.scm 205 */
int BgL_arg2028z00_2151;
BgL_arg2028z00_2151 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 205 */
long BgL_n2z00_2159;
BgL_n2z00_2159 = 
(long)(BgL_arg2028z00_2151); 
BgL_modz00_2150 = 
(BgL_offsetz00_2149/BgL_n2z00_2159); } } 
{ /* ./SawMill/extratype.scm 205 */
long BgL_restz00_2152;
{ /* ./SawMill/extratype.scm 205 */
int BgL_arg2024z00_2153;
BgL_arg2024z00_2153 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 205 */
long BgL_n2z00_2162;
BgL_n2z00_2162 = 
(long)(BgL_arg2024z00_2153); 
BgL_restz00_2152 = 
(BgL_offsetz00_2149%BgL_n2z00_2162); } } 
{ /* ./SawMill/extratype.scm 205 */

{ /* ./SawMill/extratype.scm 205 */
obj_t BgL_bucketz00_2154;
{ /* ./SawMill/extratype.scm 205 */
int BgL_kz00_2164;
BgL_kz00_2164 = 
(int)(BgL_modz00_2150); 
BgL_bucketz00_2154 = 
VECTOR_REF(BgL_arg2017z00_2145,BgL_kz00_2164); } 
{ /* ./SawMill/extratype.scm 205 */
int BgL_kz00_2166;
BgL_kz00_2166 = 
(int)(BgL_restz00_2152); 
BgL_method2828z00_2142 = 
VECTOR_REF(BgL_bucketz00_2154,BgL_kz00_2166); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_2142)(BgL_method2828z00_2142, 
(obj_t)(BgL_arg3818z00_2139), BEOA); } } 
BgL_auxz00_3091 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_ez00_1398)); 
return 
(obj_t)(BgL_auxz00_3091);} } } 
}



/* typecheck-extern2852 */
obj_t BGl_typecheckzd2extern2852zd2zzsaw_extratypez00(obj_t BgL_envz00_2499, obj_t BgL_ez00_2500)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 199 */
{ 
BgL_externz00_bglt BgL_ez00_1386;
{ /* ./SawMill/extratype.scm 200 */
BgL_typez00_bglt BgL_auxz00_3119;
BgL_ez00_1386 = 
(BgL_externz00_bglt)(BgL_ez00_2500); 
{ 
obj_t BgL_l2812z00_1390;
{ /* ./SawMill/extratype.scm 201 */
obj_t BgL_arg3799z00_1392;
BgL_arg3799z00_1392 = 
(((BgL_externz00_bglt)CREF(BgL_ez00_1386))->BgL_exprza2za2); 
BgL_l2812z00_1390 = BgL_arg3799z00_1392; 
BgL_forzd2each2813zd2_1391:
{ /* ./SawMill/extratype.scm 201 */
bool_t BgL_test3802z00_1393;
BgL_test3802z00_1393 = 
PAIRP(BgL_l2812z00_1390); 
if(BgL_test3802z00_1393)
{ /* ./SawMill/extratype.scm 201 */
{ /* ./SawMill/extratype.scm 201 */
obj_t BgL_ez00_1394;
BgL_ez00_1394 = 
CAR(BgL_l2812z00_1390); 
{ /* ./SawMill/extratype.scm 201 */
BgL_nodez00_bglt BgL_ez00_2111;
BgL_ez00_2111 = 
(BgL_nodez00_bglt)(BgL_ez00_1394); 
{ /* ./SawMill/extratype.scm 201 */
obj_t BgL_method2828z00_2112;
{ /* ./SawMill/extratype.scm 201 */
BgL_objectz00_bglt BgL_objz00_2113;
BgL_objz00_2113 = 
(BgL_objectz00_bglt)(BgL_ez00_2111); 
{ /* ./SawMill/extratype.scm 201 */
long BgL_objzd2classzd2numz00_2114;
BgL_objzd2classzd2numz00_2114 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2113); 
{ /* ./SawMill/extratype.scm 201 */
obj_t BgL_arg2017z00_2115;
{ /* ./SawMill/extratype.scm 201 */
int BgL_auxz00_3127;
BgL_auxz00_3127 = 
(int)(((long)1)); 
BgL_arg2017z00_2115 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3127); } 
{ /* ./SawMill/extratype.scm 201 */
int BgL_offsetz00_2118;
BgL_offsetz00_2118 = 
(int)(BgL_objzd2classzd2numz00_2114); 
{ /* ./SawMill/extratype.scm 201 */
long BgL_offsetz00_2119;
{ /* ./SawMill/extratype.scm 201 */
long BgL_auxz00_3131;
BgL_auxz00_3131 = 
(long)(BgL_offsetz00_2118); 
BgL_offsetz00_2119 = 
(BgL_auxz00_3131-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 201 */
long BgL_modz00_2120;
{ /* ./SawMill/extratype.scm 201 */
int BgL_arg2028z00_2121;
BgL_arg2028z00_2121 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 201 */
long BgL_n2z00_2129;
BgL_n2z00_2129 = 
(long)(BgL_arg2028z00_2121); 
BgL_modz00_2120 = 
(BgL_offsetz00_2119/BgL_n2z00_2129); } } 
{ /* ./SawMill/extratype.scm 201 */
long BgL_restz00_2122;
{ /* ./SawMill/extratype.scm 201 */
int BgL_arg2024z00_2123;
BgL_arg2024z00_2123 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 201 */
long BgL_n2z00_2132;
BgL_n2z00_2132 = 
(long)(BgL_arg2024z00_2123); 
BgL_restz00_2122 = 
(BgL_offsetz00_2119%BgL_n2z00_2132); } } 
{ /* ./SawMill/extratype.scm 201 */

{ /* ./SawMill/extratype.scm 201 */
obj_t BgL_bucketz00_2124;
{ /* ./SawMill/extratype.scm 201 */
int BgL_kz00_2134;
BgL_kz00_2134 = 
(int)(BgL_modz00_2120); 
BgL_bucketz00_2124 = 
VECTOR_REF(BgL_arg2017z00_2115,BgL_kz00_2134); } 
{ /* ./SawMill/extratype.scm 201 */
int BgL_kz00_2136;
BgL_kz00_2136 = 
(int)(BgL_restz00_2122); 
BgL_method2828z00_2112 = 
VECTOR_REF(BgL_bucketz00_2124,BgL_kz00_2136); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_2112)(BgL_method2828z00_2112, 
(obj_t)(BgL_ez00_2111), BEOA); } } } 
{ /* ./SawMill/extratype.scm 201 */
obj_t BgL_arg3806z00_1395;
BgL_arg3806z00_1395 = 
CDR(BgL_l2812z00_1390); 
{ 
obj_t BgL_l2812z00_3148;
BgL_l2812z00_3148 = BgL_arg3806z00_1395; 
BgL_l2812z00_1390 = BgL_l2812z00_3148; 
goto BgL_forzd2each2813zd2_1391;} } }  else 
{ /* ./SawMill/extratype.scm 201 */((bool_t)1); } } } } 
BgL_auxz00_3119 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_ez00_1386)); 
return 
(obj_t)(BgL_auxz00_3119);} } } 
}



/* typecheck-funcall2850 */
obj_t BGl_typecheckzd2funcall2850zd2zzsaw_extratypez00(obj_t BgL_envz00_2501, obj_t BgL_ez00_2502)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 191 */
{ 
BgL_funcallz00_bglt BgL_ez00_1366;
BgL_ez00_1366 = 
(BgL_funcallz00_bglt)(BgL_ez00_2502); 
{ /* ./SawMill/extratype.scm 193 */
bool_t BgL_test3755z00_1370;
{ /* ./SawMill/extratype.scm 193 */
obj_t BgL_auxz00_3155;obj_t BgL_auxz00_3153;
BgL_auxz00_3155 = 
CNST_TABLE_REF(((long)2)); 
BgL_auxz00_3153 = 
(((BgL_funcallz00_bglt)CREF(BgL_ez00_1366))->BgL_strengthz00); 
BgL_test3755z00_1370 = 
(BgL_auxz00_3153==BgL_auxz00_3155); } 
if(BgL_test3755z00_1370)
{ /* ./SawMill/extratype.scm 194 */
bool_t BgL_arg3757z00_1371;
{ /* ./SawMill/extratype.scm 194 */
BgL_variablez00_bglt BgL_arg3760z00_1372;obj_t BgL_arg3761z00_1373;
{ /* ./SawMill/extratype.scm 194 */
BgL_varz00_bglt BgL_obj1625z00_2049;
{ /* ./SawMill/extratype.scm 194 */
BgL_nodez00_bglt BgL_auxz00_3159;
BgL_auxz00_3159 = 
(((BgL_funcallz00_bglt)CREF(BgL_ez00_1366))->BgL_funz00); 
BgL_obj1625z00_2049 = 
(BgL_varz00_bglt)(BgL_auxz00_3159); } 
BgL_arg3760z00_1372 = 
(((BgL_varz00_bglt)CREF(BgL_obj1625z00_2049))->BgL_variablez00); } 
BgL_arg3761z00_1373 = 
(((BgL_funcallz00_bglt)CREF(BgL_ez00_1366))->BgL_argsz00); 
BgL_arg3757z00_1371 = 
BGl_checkzd2argszd2paramsz00zzsaw_extratypez00(BgL_arg3760z00_1372, BgL_arg3761z00_1373); } 
return 
BGl_assignzd2typezd2zzsaw_extratypez00(
(obj_t)(BgL_ez00_1366), 
BBOOL(BgL_arg3757z00_1371));}  else 
{ /* ./SawMill/extratype.scm 193 */
{ /* ./SawMill/extratype.scm 195 */
BgL_nodez00_bglt BgL_arg3769z00_1375;
BgL_arg3769z00_1375 = 
(((BgL_funcallz00_bglt)CREF(BgL_ez00_1366))->BgL_funz00); 
{ /* ./SawMill/extratype.scm 195 */
obj_t BgL_method2828z00_2053;
{ /* ./SawMill/extratype.scm 195 */
BgL_objectz00_bglt BgL_objz00_2054;
BgL_objz00_2054 = 
(BgL_objectz00_bglt)(BgL_arg3769z00_1375); 
{ /* ./SawMill/extratype.scm 195 */
long BgL_objzd2classzd2numz00_2055;
BgL_objzd2classzd2numz00_2055 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2054); 
{ /* ./SawMill/extratype.scm 195 */
obj_t BgL_arg2017z00_2056;
{ /* ./SawMill/extratype.scm 195 */
int BgL_auxz00_3171;
BgL_auxz00_3171 = 
(int)(((long)1)); 
BgL_arg2017z00_2056 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3171); } 
{ /* ./SawMill/extratype.scm 195 */
int BgL_offsetz00_2059;
BgL_offsetz00_2059 = 
(int)(BgL_objzd2classzd2numz00_2055); 
{ /* ./SawMill/extratype.scm 195 */
long BgL_offsetz00_2060;
{ /* ./SawMill/extratype.scm 195 */
long BgL_auxz00_3175;
BgL_auxz00_3175 = 
(long)(BgL_offsetz00_2059); 
BgL_offsetz00_2060 = 
(BgL_auxz00_3175-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 195 */
long BgL_modz00_2061;
{ /* ./SawMill/extratype.scm 195 */
int BgL_arg2028z00_2062;
BgL_arg2028z00_2062 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 195 */
long BgL_n2z00_2070;
BgL_n2z00_2070 = 
(long)(BgL_arg2028z00_2062); 
BgL_modz00_2061 = 
(BgL_offsetz00_2060/BgL_n2z00_2070); } } 
{ /* ./SawMill/extratype.scm 195 */
long BgL_restz00_2063;
{ /* ./SawMill/extratype.scm 195 */
int BgL_arg2024z00_2064;
BgL_arg2024z00_2064 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 195 */
long BgL_n2z00_2073;
BgL_n2z00_2073 = 
(long)(BgL_arg2024z00_2064); 
BgL_restz00_2063 = 
(BgL_offsetz00_2060%BgL_n2z00_2073); } } 
{ /* ./SawMill/extratype.scm 195 */

{ /* ./SawMill/extratype.scm 195 */
obj_t BgL_bucketz00_2065;
{ /* ./SawMill/extratype.scm 195 */
int BgL_kz00_2075;
BgL_kz00_2075 = 
(int)(BgL_modz00_2061); 
BgL_bucketz00_2065 = 
VECTOR_REF(BgL_arg2017z00_2056,BgL_kz00_2075); } 
{ /* ./SawMill/extratype.scm 195 */
int BgL_kz00_2077;
BgL_kz00_2077 = 
(int)(BgL_restz00_2063); 
BgL_method2828z00_2053 = 
VECTOR_REF(BgL_bucketz00_2065,BgL_kz00_2077); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_2053)(BgL_method2828z00_2053, 
(obj_t)(BgL_arg3769z00_1375), BEOA); } } 
{ 
obj_t BgL_l2808z00_1376;
{ /* ./SawMill/extratype.scm 196 */
obj_t BgL_arg3773z00_1378;
BgL_arg3773z00_1378 = 
(((BgL_funcallz00_bglt)CREF(BgL_ez00_1366))->BgL_argsz00); 
BgL_l2808z00_1376 = BgL_arg3773z00_1378; 
BgL_forzd2each2809zd2_1377:
{ /* ./SawMill/extratype.scm 196 */
bool_t BgL_test3776z00_1379;
BgL_test3776z00_1379 = 
PAIRP(BgL_l2808z00_1376); 
if(BgL_test3776z00_1379)
{ /* ./SawMill/extratype.scm 196 */
{ /* ./SawMill/extratype.scm 196 */
obj_t BgL_arg3778z00_1380;
BgL_arg3778z00_1380 = 
CAR(BgL_l2808z00_1376); 
{ /* ./SawMill/extratype.scm 196 */
BgL_nodez00_bglt BgL_ez00_2081;
BgL_ez00_2081 = 
(BgL_nodez00_bglt)(BgL_arg3778z00_1380); 
{ /* ./SawMill/extratype.scm 196 */
obj_t BgL_method2828z00_2082;
{ /* ./SawMill/extratype.scm 196 */
BgL_objectz00_bglt BgL_objz00_2083;
BgL_objz00_2083 = 
(BgL_objectz00_bglt)(BgL_ez00_2081); 
{ /* ./SawMill/extratype.scm 196 */
long BgL_objzd2classzd2numz00_2084;
BgL_objzd2classzd2numz00_2084 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2083); 
{ /* ./SawMill/extratype.scm 196 */
obj_t BgL_arg2017z00_2085;
{ /* ./SawMill/extratype.scm 196 */
int BgL_auxz00_3198;
BgL_auxz00_3198 = 
(int)(((long)1)); 
BgL_arg2017z00_2085 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3198); } 
{ /* ./SawMill/extratype.scm 196 */
int BgL_offsetz00_2088;
BgL_offsetz00_2088 = 
(int)(BgL_objzd2classzd2numz00_2084); 
{ /* ./SawMill/extratype.scm 196 */
long BgL_offsetz00_2089;
{ /* ./SawMill/extratype.scm 196 */
long BgL_auxz00_3202;
BgL_auxz00_3202 = 
(long)(BgL_offsetz00_2088); 
BgL_offsetz00_2089 = 
(BgL_auxz00_3202-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 196 */
long BgL_modz00_2090;
{ /* ./SawMill/extratype.scm 196 */
int BgL_arg2028z00_2091;
BgL_arg2028z00_2091 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 196 */
long BgL_n2z00_2099;
BgL_n2z00_2099 = 
(long)(BgL_arg2028z00_2091); 
BgL_modz00_2090 = 
(BgL_offsetz00_2089/BgL_n2z00_2099); } } 
{ /* ./SawMill/extratype.scm 196 */
long BgL_restz00_2092;
{ /* ./SawMill/extratype.scm 196 */
int BgL_arg2024z00_2093;
BgL_arg2024z00_2093 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 196 */
long BgL_n2z00_2102;
BgL_n2z00_2102 = 
(long)(BgL_arg2024z00_2093); 
BgL_restz00_2092 = 
(BgL_offsetz00_2089%BgL_n2z00_2102); } } 
{ /* ./SawMill/extratype.scm 196 */

{ /* ./SawMill/extratype.scm 196 */
obj_t BgL_bucketz00_2094;
{ /* ./SawMill/extratype.scm 196 */
int BgL_kz00_2104;
BgL_kz00_2104 = 
(int)(BgL_modz00_2090); 
BgL_bucketz00_2094 = 
VECTOR_REF(BgL_arg2017z00_2085,BgL_kz00_2104); } 
{ /* ./SawMill/extratype.scm 196 */
int BgL_kz00_2106;
BgL_kz00_2106 = 
(int)(BgL_restz00_2092); 
BgL_method2828z00_2082 = 
VECTOR_REF(BgL_bucketz00_2094,BgL_kz00_2106); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_2082)(BgL_method2828z00_2082, 
(obj_t)(BgL_ez00_2081), BEOA); } } } 
{ /* ./SawMill/extratype.scm 196 */
obj_t BgL_arg3782z00_1381;
BgL_arg3782z00_1381 = 
CDR(BgL_l2808z00_1376); 
{ 
obj_t BgL_l2808z00_3219;
BgL_l2808z00_3219 = BgL_arg3782z00_1381; 
BgL_l2808z00_1376 = BgL_l2808z00_3219; 
goto BgL_forzd2each2809zd2_1377;} } }  else 
{ /* ./SawMill/extratype.scm 196 */((bool_t)1); } } } } 
{ /* ./SawMill/extratype.scm 197 */
BgL_typez00_bglt BgL_auxz00_3220;
BgL_auxz00_3220 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_ez00_1366)); 
return 
(obj_t)(BgL_auxz00_3220);} } } } } 
}



/* typecheck-app-ly2848 */
obj_t BGl_typecheckzd2appzd2ly2848z00zzsaw_extratypez00(obj_t BgL_envz00_2503, obj_t BgL_ez00_2504)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 185 */
{ 
BgL_appzd2lyzd2_bglt BgL_ez00_1358;
{ /* ./SawMill/extratype.scm 186 */
BgL_typez00_bglt BgL_auxz00_3225;
BgL_ez00_1358 = 
(BgL_appzd2lyzd2_bglt)(BgL_ez00_2504); 
{ /* ./SawMill/extratype.scm 187 */
BgL_nodez00_bglt BgL_arg3741z00_1362;
BgL_arg3741z00_1362 = 
(((BgL_appzd2lyzd2_bglt)CREF(BgL_ez00_1358))->BgL_funz00); 
{ /* ./SawMill/extratype.scm 187 */
obj_t BgL_method2828z00_1995;
{ /* ./SawMill/extratype.scm 187 */
BgL_objectz00_bglt BgL_objz00_1996;
BgL_objz00_1996 = 
(BgL_objectz00_bglt)(BgL_arg3741z00_1362); 
{ /* ./SawMill/extratype.scm 187 */
long BgL_objzd2classzd2numz00_1997;
BgL_objzd2classzd2numz00_1997 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1996); 
{ /* ./SawMill/extratype.scm 187 */
obj_t BgL_arg2017z00_1998;
{ /* ./SawMill/extratype.scm 187 */
int BgL_auxz00_3229;
BgL_auxz00_3229 = 
(int)(((long)1)); 
BgL_arg2017z00_1998 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3229); } 
{ /* ./SawMill/extratype.scm 187 */
int BgL_offsetz00_2001;
BgL_offsetz00_2001 = 
(int)(BgL_objzd2classzd2numz00_1997); 
{ /* ./SawMill/extratype.scm 187 */
long BgL_offsetz00_2002;
{ /* ./SawMill/extratype.scm 187 */
long BgL_auxz00_3233;
BgL_auxz00_3233 = 
(long)(BgL_offsetz00_2001); 
BgL_offsetz00_2002 = 
(BgL_auxz00_3233-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 187 */
long BgL_modz00_2003;
{ /* ./SawMill/extratype.scm 187 */
int BgL_arg2028z00_2004;
BgL_arg2028z00_2004 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 187 */
long BgL_n2z00_2012;
BgL_n2z00_2012 = 
(long)(BgL_arg2028z00_2004); 
BgL_modz00_2003 = 
(BgL_offsetz00_2002/BgL_n2z00_2012); } } 
{ /* ./SawMill/extratype.scm 187 */
long BgL_restz00_2005;
{ /* ./SawMill/extratype.scm 187 */
int BgL_arg2024z00_2006;
BgL_arg2024z00_2006 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 187 */
long BgL_n2z00_2015;
BgL_n2z00_2015 = 
(long)(BgL_arg2024z00_2006); 
BgL_restz00_2005 = 
(BgL_offsetz00_2002%BgL_n2z00_2015); } } 
{ /* ./SawMill/extratype.scm 187 */

{ /* ./SawMill/extratype.scm 187 */
obj_t BgL_bucketz00_2007;
{ /* ./SawMill/extratype.scm 187 */
int BgL_kz00_2017;
BgL_kz00_2017 = 
(int)(BgL_modz00_2003); 
BgL_bucketz00_2007 = 
VECTOR_REF(BgL_arg2017z00_1998,BgL_kz00_2017); } 
{ /* ./SawMill/extratype.scm 187 */
int BgL_kz00_2019;
BgL_kz00_2019 = 
(int)(BgL_restz00_2005); 
BgL_method2828z00_1995 = 
VECTOR_REF(BgL_bucketz00_2007,BgL_kz00_2019); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_1995)(BgL_method2828z00_1995, 
(obj_t)(BgL_arg3741z00_1362), BEOA); } } 
{ /* ./SawMill/extratype.scm 188 */
BgL_nodez00_bglt BgL_arg3745z00_1363;
BgL_arg3745z00_1363 = 
(((BgL_appzd2lyzd2_bglt)CREF(BgL_ez00_1358))->BgL_argz00); 
{ /* ./SawMill/extratype.scm 188 */
obj_t BgL_method2828z00_2022;
{ /* ./SawMill/extratype.scm 188 */
BgL_objectz00_bglt BgL_objz00_2023;
BgL_objz00_2023 = 
(BgL_objectz00_bglt)(BgL_arg3745z00_1363); 
{ /* ./SawMill/extratype.scm 188 */
long BgL_objzd2classzd2numz00_2024;
BgL_objzd2classzd2numz00_2024 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2023); 
{ /* ./SawMill/extratype.scm 188 */
obj_t BgL_arg2017z00_2025;
{ /* ./SawMill/extratype.scm 188 */
int BgL_auxz00_3252;
BgL_auxz00_3252 = 
(int)(((long)1)); 
BgL_arg2017z00_2025 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3252); } 
{ /* ./SawMill/extratype.scm 188 */
int BgL_offsetz00_2028;
BgL_offsetz00_2028 = 
(int)(BgL_objzd2classzd2numz00_2024); 
{ /* ./SawMill/extratype.scm 188 */
long BgL_offsetz00_2029;
{ /* ./SawMill/extratype.scm 188 */
long BgL_auxz00_3256;
BgL_auxz00_3256 = 
(long)(BgL_offsetz00_2028); 
BgL_offsetz00_2029 = 
(BgL_auxz00_3256-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 188 */
long BgL_modz00_2030;
{ /* ./SawMill/extratype.scm 188 */
int BgL_arg2028z00_2031;
BgL_arg2028z00_2031 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 188 */
long BgL_n2z00_2039;
BgL_n2z00_2039 = 
(long)(BgL_arg2028z00_2031); 
BgL_modz00_2030 = 
(BgL_offsetz00_2029/BgL_n2z00_2039); } } 
{ /* ./SawMill/extratype.scm 188 */
long BgL_restz00_2032;
{ /* ./SawMill/extratype.scm 188 */
int BgL_arg2024z00_2033;
BgL_arg2024z00_2033 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 188 */
long BgL_n2z00_2042;
BgL_n2z00_2042 = 
(long)(BgL_arg2024z00_2033); 
BgL_restz00_2032 = 
(BgL_offsetz00_2029%BgL_n2z00_2042); } } 
{ /* ./SawMill/extratype.scm 188 */

{ /* ./SawMill/extratype.scm 188 */
obj_t BgL_bucketz00_2034;
{ /* ./SawMill/extratype.scm 188 */
int BgL_kz00_2044;
BgL_kz00_2044 = 
(int)(BgL_modz00_2030); 
BgL_bucketz00_2034 = 
VECTOR_REF(BgL_arg2017z00_2025,BgL_kz00_2044); } 
{ /* ./SawMill/extratype.scm 188 */
int BgL_kz00_2046;
BgL_kz00_2046 = 
(int)(BgL_restz00_2032); 
BgL_method2828z00_2022 = 
VECTOR_REF(BgL_bucketz00_2034,BgL_kz00_2046); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_2022)(BgL_method2828z00_2022, 
(obj_t)(BgL_arg3745z00_1363), BEOA); } } 
BgL_auxz00_3225 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_ez00_1358)); 
return 
(obj_t)(BgL_auxz00_3225);} } } 
}



/* typecheck-app2846 */
obj_t BGl_typecheckzd2app2846zd2zzsaw_extratypez00(obj_t BgL_envz00_2505, obj_t BgL_ez00_2506)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 112 */
{ 
BgL_appz00_bglt BgL_ez00_1293;
BgL_ez00_1293 = 
(BgL_appz00_bglt)(BgL_ez00_2506); 
{ /* ./SawMill/extratype.scm 114 */
BgL_variablez00_bglt BgL_vz00_1297;
{ /* ./SawMill/extratype.scm 114 */
BgL_varz00_bglt BgL_arg3731z00_1355;
BgL_arg3731z00_1355 = 
(((BgL_appz00_bglt)CREF(BgL_ez00_1293))->BgL_funz00); 
BgL_vz00_1297 = 
(((BgL_varz00_bglt)CREF(BgL_arg3731z00_1355))->BgL_variablez00); } 
{ /* ./SawMill/extratype.scm 115 */
obj_t BgL_arg3593z00_1298;
BgL_arg3593z00_1298 = 
(((BgL_appz00_bglt)CREF(BgL_ez00_1293))->BgL_argsz00); 
BGl_checkzd2argszd2paramsz00zzsaw_extratypez00(BgL_vz00_1297, BgL_arg3593z00_1298); } 
{ /* ./SawMill/extratype.scm 116 */
bool_t BgL_test3596z00_1299;
{ /* ./SawMill/extratype.scm 116 */
obj_t BgL_obj1300z00_1955;
BgL_obj1300z00_1955 = 
(obj_t)(BgL_vz00_1297); 
BgL_test3596z00_1299 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1300z00_1955, BGl_localz00zzast_varz00); } 
if(BgL_test3596z00_1299)
{ /* ./SawMill/extratype.scm 117 */
BgL_typez00_bglt BgL_arg3598z00_1300;
BgL_arg3598z00_1300 = 
(((BgL_variablez00_bglt)CREF(BgL_vz00_1297))->BgL_typez00); 
return 
BGl_assignzd2typezd2zzsaw_extratypez00(
(obj_t)(BgL_ez00_1293), 
(obj_t)(BgL_arg3598z00_1300));}  else 
{ /* ./SawMill/extratype.scm 118 */
obj_t BgL_idz00_1301;BgL_typez00_bglt BgL_vectz00_1302;BgL_typez00_bglt BgL_objz00_1303;
BgL_idz00_1301 = 
(((BgL_variablez00_bglt)CREF(BgL_vz00_1297))->BgL_idz00); 
BgL_vectz00_1302 = 
BGl_findzd2typezd2zztype_envz00(
CNST_TABLE_REF(((long)3))); 
BgL_objz00_1303 = 
BGl_findzd2typezd2zztype_envz00(
CNST_TABLE_REF(((long)4))); 
{ 
BgL_typez00_bglt BgL_typez00_1342;
{ /* ./SawMill/extratype.scm 125 */
bool_t BgL_test3601z00_1305;
{ /* ./SawMill/extratype.scm 125 */
obj_t BgL_auxz00_3292;
BgL_auxz00_3292 = 
CNST_TABLE_REF(((long)7)); 
BgL_test3601z00_1305 = 
(BgL_idz00_1301==BgL_auxz00_3292); } 
if(BgL_test3601z00_1305)
{ /* ./SawMill/extratype.scm 125 */
{ /* ./SawMill/extratype.scm 126 */
bool_t BgL_test3602z00_1306;
{ /* ./SawMill/extratype.scm 126 */
obj_t BgL_auxz00_3301;obj_t BgL_auxz00_3296;
BgL_auxz00_3301 = 
(obj_t)(BgL_vectz00_1302); 
{ /* ./SawMill/extratype.scm 126 */
BgL_typez00_bglt BgL_auxz00_3297;
{ /* ./SawMill/extratype.scm 126 */
BgL_nodez00_bglt BgL_obj1561z00_1958;
BgL_obj1561z00_1958 = 
(BgL_nodez00_bglt)(BgL_ez00_1293); 
BgL_auxz00_3297 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1561z00_1958))->BgL_typez00); } 
BgL_auxz00_3296 = 
(obj_t)(BgL_auxz00_3297); } 
BgL_test3602z00_1306 = 
(BgL_auxz00_3296==BgL_auxz00_3301); } 
if(BgL_test3602z00_1306)
{ /* ./SawMill/extratype.scm 126 */
return BFALSE;}  else 
{ /* ./SawMill/extratype.scm 126 */
{ /* ./SawMill/extratype.scm 128 */
obj_t BgL_arg3604z00_1307;obj_t BgL_arg3606z00_1309;
BgL_arg3604z00_1307 = 
CNST_TABLE_REF(((long)8)); 
{ /* ./SawMill/extratype.scm 129 */
BgL_typez00_bglt BgL_arg3621z00_1315;
BgL_arg3621z00_1315 = 
(((BgL_variablez00_bglt)CREF(BgL_vz00_1297))->BgL_typez00); 
BgL_arg3606z00_1309 = 
BGl_shapez00zztools_shapez00(
(obj_t)(BgL_arg3621z00_1315)); } 
{ /* ./SawMill/extratype.scm 128 */
obj_t BgL_list3609z00_1311;
{ /* ./SawMill/extratype.scm 128 */
obj_t BgL_arg3611z00_1312;
{ /* ./SawMill/extratype.scm 128 */
obj_t BgL_arg3614z00_1313;
{ /* ./SawMill/extratype.scm 128 */
obj_t BgL_arg3617z00_1314;
BgL_arg3617z00_1314 = 
MAKE_PAIR(BGl_string4592z00zzsaw_extratypez00, BNIL); 
BgL_arg3614z00_1313 = 
MAKE_PAIR(BgL_arg3606z00_1309, BgL_arg3617z00_1314); } 
BgL_arg3611z00_1312 = 
MAKE_PAIR(BGl_string4593z00zzsaw_extratypez00, BgL_arg3614z00_1313); } 
BgL_list3609z00_1311 = 
MAKE_PAIR(BgL_arg3604z00_1307, BgL_arg3611z00_1312); } 
BGl_warningz00zz__errorz00(BgL_list3609z00_1311); } } 
{ /* ./SawMill/extratype.scm 131 */
BgL_variablez00_bglt BgL_obj1099z00_1960;BgL_typez00_bglt BgL_val1098z00_1961;
BgL_obj1099z00_1960 = BgL_vz00_1297; 
BgL_val1098z00_1961 = BgL_vectz00_1302; 
((((BgL_variablez00_bglt)CREF(BgL_obj1099z00_1960))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1098z00_1961), BUNSPEC); } 
{ /* ./SawMill/extratype.scm 132 */
BgL_typez00_bglt BgL_auxz00_3315;
BgL_typez00_1342 = BgL_vectz00_1302; 
BgL_zc3anonymousza33706ze3z83_1343:
{ /* ./SawMill/extratype.scm 121 */
BgL_typez00_bglt BgL_tz00_1344;
{ /* ./Type/type.scm 21 */
obj_t BgL_arg3720z00_1349;obj_t BgL_arg3721z00_1350;bool_t BgL_arg3724z00_1353;
BgL_arg3720z00_1349 = 
CNST_TABLE_REF(((long)5)); 
BgL_arg3721z00_1350 = 
CNST_TABLE_REF(((long)6)); 
BgL_arg3724z00_1353 = ((bool_t)0); 
BgL_tz00_1344 = 
BGl_makezd2typezd2zztype_typez00(BgL_arg3720z00_1349, BUNSPEC, BUNSPEC, BgL_arg3721z00_1350, BNIL, BNIL, BgL_arg3724z00_1353, ((bool_t)0), BTRUE, BFALSE, BFALSE, BUNSPEC, BUNSPEC, BFALSE); } 
{ /* ./SawMill/extratype.scm 122 */
BgL_typez00_bglt BgL_obj2785z00_1345;
BgL_obj2785z00_1345 = 
((BgL_typez00_bglt)BgL_tz00_1344); 
{ /* ./SawMill/extratype.scm 122 */
BgL_hookz00_bglt BgL_arg3708z00_1346;
{ /* ./SawMill/extratype.scm 122 */
BgL_typez00_bglt BgL_arg3712z00_1347;
BgL_arg3712z00_1347 = BgL_typez00_1342; 
{ /* ./SawMill/extratype.scm 122 */
BgL_hookz00_bglt BgL_res3983z00_1989;
{ /* ./SawMill/extratype.scm 122 */
BgL_hookz00_bglt BgL_new2683z00_1984;
BgL_new2683z00_1984 = 
((BgL_hookz00_bglt)BREF( GC_MALLOC (sizeof(struct BgL_hookz00_bgl)))); 
{ /* ./SawMill/extratype.scm 122 */
BgL_hookz00_bglt BgL_res3982z00_1988;
{ /* ./SawMill/extratype.scm 122 */
BgL_hookz00_bglt BgL_new2703z00_1985;
BgL_new2703z00_1985 = BgL_new2683z00_1984; 
{ /* ./SawMill/extratype.scm 122 */
BgL_typez00_bglt BgL_type2702z00_1987;
BgL_type2702z00_1987 = BgL_arg3712z00_1347; 
((((BgL_hookz00_bglt)CREF(BgL_new2703z00_1985))->BgL_typez00) = ((BgL_typez00_bglt)BgL_type2702z00_1987), BUNSPEC); 
BgL_res3982z00_1988 = BgL_new2703z00_1985; } } BgL_res3982z00_1988; } 
BgL_res3983z00_1989 = BgL_new2683z00_1984; } 
BgL_arg3708z00_1346 = BgL_res3983z00_1989; } } 
{ /* ./SawMill/extratype.scm 122 */
obj_t BgL_auxz00_3324;BgL_objectz00_bglt BgL_auxz00_3322;
BgL_auxz00_3324 = 
(obj_t)(BgL_arg3708z00_1346); 
BgL_auxz00_3322 = 
(BgL_objectz00_bglt)(BgL_obj2785z00_1345); 
BGL_OBJECT_WIDENING_SET(BgL_auxz00_3322, BgL_auxz00_3324); } } 
{ /* ./SawMill/extratype.scm 122 */
long BgL_arg3715z00_1348;
BgL_arg3715z00_1348 = 
BGl_classzd2numzd2zz__objectz00(BGl_hookz00zzsaw_extratypez00); 
{ /* ./SawMill/extratype.scm 122 */
BgL_objectz00_bglt BgL_objz00_1990;
BgL_objz00_1990 = 
(BgL_objectz00_bglt)(BgL_obj2785z00_1345); 
BGL_OBJECT_CLASS_NUM_SET(BgL_objz00_1990, BgL_arg3715z00_1348); } } 
{ /* ./SawMill/extratype.scm 122 */
obj_t BgL_objz00_1992;
BgL_objz00_1992 = 
(obj_t)(BgL_obj2785z00_1345); 
BGL_HEAP_DEBUG_MARK_OBJ(BgL_objz00_1992); BUNSPEC; } BgL_obj2785z00_1345; } 
BgL_auxz00_3315 = BgL_tz00_1344; } 
return 
(obj_t)(BgL_auxz00_3315);} } } }  else 
{ /* ./SawMill/extratype.scm 133 */
bool_t BgL_test3630z00_1317;
{ /* ./SawMill/extratype.scm 133 */
obj_t BgL_auxz00_3333;
BgL_auxz00_3333 = 
CNST_TABLE_REF(((long)9)); 
BgL_test3630z00_1317 = 
(BgL_idz00_1301==BgL_auxz00_3333); } 
if(BgL_test3630z00_1317)
{ /* ./SawMill/extratype.scm 133 */
{ /* ./SawMill/extratype.scm 134 */
obj_t BgL_arg3632z00_1318;
{ /* ./SawMill/extratype.scm 134 */
BgL_cfunz00_bglt BgL_obj1445z00_1963;
{ /* ./SawMill/extratype.scm 134 */
BgL_valuez00_bglt BgL_auxz00_3337;
BgL_auxz00_3337 = 
(((BgL_variablez00_bglt)CREF(BgL_vz00_1297))->BgL_valuez00); 
BgL_obj1445z00_1963 = 
(BgL_cfunz00_bglt)(BgL_auxz00_3337); } 
BgL_arg3632z00_1318 = 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_1963))->BgL_argszd2typezd2); } 
{ /* ./SawMill/extratype.scm 134 */
obj_t BgL_objz00_1965;
BgL_objz00_1965 = 
(obj_t)(BgL_vectz00_1302); 
SET_CAR(BgL_arg3632z00_1318, BgL_objz00_1965); } } 
{ /* ./SawMill/extratype.scm 135 */
BgL_typez00_bglt BgL_auxz00_3343;
BgL_auxz00_3343 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_ez00_1293)); 
return 
(obj_t)(BgL_auxz00_3343);} }  else 
{ /* ./SawMill/extratype.scm 136 */
bool_t BgL_test3639z00_1320;
{ /* ./SawMill/extratype.scm 136 */
obj_t BgL_auxz00_3347;
BgL_auxz00_3347 = 
CNST_TABLE_REF(((long)10)); 
BgL_test3639z00_1320 = 
(BgL_idz00_1301==BgL_auxz00_3347); } 
if(BgL_test3639z00_1320)
{ /* ./SawMill/extratype.scm 136 */
{ /* ./SawMill/extratype.scm 137 */
obj_t BgL_arg3641z00_1321;
{ /* ./SawMill/extratype.scm 137 */
BgL_cfunz00_bglt BgL_obj1445z00_1967;
{ /* ./SawMill/extratype.scm 137 */
BgL_valuez00_bglt BgL_auxz00_3351;
BgL_auxz00_3351 = 
(((BgL_variablez00_bglt)CREF(BgL_vz00_1297))->BgL_valuez00); 
BgL_obj1445z00_1967 = 
(BgL_cfunz00_bglt)(BgL_auxz00_3351); } 
BgL_arg3641z00_1321 = 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_1967))->BgL_argszd2typezd2); } 
{ /* ./SawMill/extratype.scm 137 */
obj_t BgL_objz00_1969;
BgL_objz00_1969 = 
(obj_t)(BgL_vectz00_1302); 
SET_CAR(BgL_arg3641z00_1321, BgL_objz00_1969); } } 
{ /* ./SawMill/extratype.scm 138 */
BgL_typez00_bglt BgL_auxz00_3357;
BgL_auxz00_3357 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_ez00_1293)); 
return 
(obj_t)(BgL_auxz00_3357);} }  else 
{ /* ./SawMill/extratype.scm 139 */
bool_t BgL_test3648z00_1323;
{ /* ./SawMill/extratype.scm 139 */
obj_t BgL_auxz00_3361;
BgL_auxz00_3361 = 
CNST_TABLE_REF(((long)11)); 
BgL_test3648z00_1323 = 
(BgL_idz00_1301==BgL_auxz00_3361); } 
if(BgL_test3648z00_1323)
{ /* ./SawMill/extratype.scm 139 */
{ /* ./SawMill/extratype.scm 140 */
bool_t BgL_test3649z00_1324;
{ /* ./SawMill/extratype.scm 140 */
obj_t BgL_auxz00_3370;obj_t BgL_auxz00_3365;
BgL_auxz00_3370 = 
(obj_t)(BgL_objz00_1303); 
{ /* ./SawMill/extratype.scm 140 */
BgL_typez00_bglt BgL_auxz00_3366;
{ /* ./SawMill/extratype.scm 140 */
BgL_nodez00_bglt BgL_obj1561z00_1970;
BgL_obj1561z00_1970 = 
(BgL_nodez00_bglt)(BgL_ez00_1293); 
BgL_auxz00_3366 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1561z00_1970))->BgL_typez00); } 
BgL_auxz00_3365 = 
(obj_t)(BgL_auxz00_3366); } 
BgL_test3649z00_1324 = 
(BgL_auxz00_3365==BgL_auxz00_3370); } 
if(BgL_test3649z00_1324)
{ /* ./SawMill/extratype.scm 140 */
return BFALSE;}  else 
{ /* ./SawMill/extratype.scm 140 */
{ /* ./SawMill/extratype.scm 142 */
obj_t BgL_arg3651z00_1325;obj_t BgL_arg3653z00_1327;
BgL_arg3651z00_1325 = 
CNST_TABLE_REF(((long)8)); 
{ /* ./SawMill/extratype.scm 143 */
BgL_typez00_bglt BgL_arg3668z00_1333;
BgL_arg3668z00_1333 = 
(((BgL_variablez00_bglt)CREF(BgL_vz00_1297))->BgL_typez00); 
BgL_arg3653z00_1327 = 
BGl_shapez00zztools_shapez00(
(obj_t)(BgL_arg3668z00_1333)); } 
{ /* ./SawMill/extratype.scm 142 */
obj_t BgL_list3656z00_1329;
{ /* ./SawMill/extratype.scm 142 */
obj_t BgL_arg3658z00_1330;
{ /* ./SawMill/extratype.scm 142 */
obj_t BgL_arg3661z00_1331;
{ /* ./SawMill/extratype.scm 142 */
obj_t BgL_arg3664z00_1332;
BgL_arg3664z00_1332 = 
MAKE_PAIR(BGl_string4594z00zzsaw_extratypez00, BNIL); 
BgL_arg3661z00_1331 = 
MAKE_PAIR(BgL_arg3653z00_1327, BgL_arg3664z00_1332); } 
BgL_arg3658z00_1330 = 
MAKE_PAIR(BGl_string4593z00zzsaw_extratypez00, BgL_arg3661z00_1331); } 
BgL_list3656z00_1329 = 
MAKE_PAIR(BgL_arg3651z00_1325, BgL_arg3658z00_1330); } 
BGl_warningz00zz__errorz00(BgL_list3656z00_1329); } } 
{ /* ./SawMill/extratype.scm 145 */
BgL_variablez00_bglt BgL_obj1099z00_1972;BgL_typez00_bglt BgL_val1098z00_1973;
BgL_obj1099z00_1972 = BgL_vz00_1297; 
BgL_val1098z00_1973 = BgL_objz00_1303; 
((((BgL_variablez00_bglt)CREF(BgL_obj1099z00_1972))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1098z00_1973), BUNSPEC); } 
{ /* ./SawMill/extratype.scm 147 */
BgL_typez00_bglt BgL_auxz00_3384;
{ 
BgL_typez00_bglt BgL_typez00_3385;
BgL_typez00_3385 = BgL_objz00_1303; 
BgL_typez00_1342 = BgL_typez00_3385; 
goto BgL_zc3anonymousza33706ze3z83_1343;} 
return 
(obj_t)(BgL_auxz00_3384);} } } }  else 
{ /* ./SawMill/extratype.scm 148 */
bool_t BgL_test3677z00_1335;
{ /* ./SawMill/extratype.scm 148 */
obj_t BgL_auxz00_3387;
BgL_auxz00_3387 = 
CNST_TABLE_REF(((long)12)); 
BgL_test3677z00_1335 = 
(BgL_idz00_1301==BgL_auxz00_3387); } 
if(BgL_test3677z00_1335)
{ /* ./SawMill/extratype.scm 148 */
{ /* ./SawMill/extratype.scm 149 */
obj_t BgL_arg3679z00_1336;
{ /* ./SawMill/extratype.scm 149 */
BgL_cfunz00_bglt BgL_obj1445z00_1975;
{ /* ./SawMill/extratype.scm 149 */
BgL_valuez00_bglt BgL_auxz00_3391;
BgL_auxz00_3391 = 
(((BgL_variablez00_bglt)CREF(BgL_vz00_1297))->BgL_valuez00); 
BgL_obj1445z00_1975 = 
(BgL_cfunz00_bglt)(BgL_auxz00_3391); } 
BgL_arg3679z00_1336 = 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_1975))->BgL_argszd2typezd2); } 
{ /* ./SawMill/extratype.scm 149 */
obj_t BgL_objz00_1977;
BgL_objz00_1977 = 
(obj_t)(BgL_objz00_1303); 
SET_CAR(BgL_arg3679z00_1336, BgL_objz00_1977); } } 
{ /* ./SawMill/extratype.scm 150 */
BgL_typez00_bglt BgL_auxz00_3397;
BgL_auxz00_3397 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_ez00_1293)); 
return 
(obj_t)(BgL_auxz00_3397);} }  else 
{ /* ./SawMill/extratype.scm 151 */
bool_t BgL_test3686z00_1338;
{ /* ./SawMill/extratype.scm 151 */
obj_t BgL_auxz00_3401;
BgL_auxz00_3401 = 
CNST_TABLE_REF(((long)13)); 
BgL_test3686z00_1338 = 
(BgL_idz00_1301==BgL_auxz00_3401); } 
if(BgL_test3686z00_1338)
{ /* ./SawMill/extratype.scm 151 */
{ /* ./SawMill/extratype.scm 152 */
obj_t BgL_arg3688z00_1339;
{ /* ./SawMill/extratype.scm 152 */
BgL_cfunz00_bglt BgL_obj1445z00_1979;
{ /* ./SawMill/extratype.scm 152 */
BgL_valuez00_bglt BgL_auxz00_3405;
BgL_auxz00_3405 = 
(((BgL_variablez00_bglt)CREF(BgL_vz00_1297))->BgL_valuez00); 
BgL_obj1445z00_1979 = 
(BgL_cfunz00_bglt)(BgL_auxz00_3405); } 
BgL_arg3688z00_1339 = 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_1979))->BgL_argszd2typezd2); } 
{ /* ./SawMill/extratype.scm 152 */
obj_t BgL_objz00_1981;
BgL_objz00_1981 = 
(obj_t)(BgL_objz00_1303); 
SET_CAR(BgL_arg3688z00_1339, BgL_objz00_1981); } } 
{ /* ./SawMill/extratype.scm 153 */
BgL_typez00_bglt BgL_auxz00_3411;
BgL_auxz00_3411 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_ez00_1293)); 
return 
(obj_t)(BgL_auxz00_3411);} }  else 
{ /* ./SawMill/extratype.scm 151 */
{ /* ./SawMill/extratype.scm 154 */
BgL_typez00_bglt BgL_arg3697z00_1341;
BgL_arg3697z00_1341 = 
(((BgL_variablez00_bglt)CREF(BgL_vz00_1297))->BgL_typez00); 
return 
BGl_assignzd2typezd2zzsaw_extratypez00(
(obj_t)(BgL_ez00_1293), 
(obj_t)(BgL_arg3697z00_1341));} } } } } } } } } } } } } } 
}



/* typecheck-let-fun2844 */
obj_t BGl_typecheckzd2letzd2fun2844z00zzsaw_extratypez00(obj_t BgL_envz00_2507, obj_t BgL_ez00_2508)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 105 */
{ 
BgL_letzd2funzd2_bglt BgL_ez00_1276;
BgL_ez00_1276 = 
(BgL_letzd2funzd2_bglt)(BgL_ez00_2508); 
{ 
obj_t BgL_l2780z00_1280;
{ /* ./SawMill/extratype.scm 107 */
obj_t BgL_arg3559z00_1282;
BgL_arg3559z00_1282 = 
(((BgL_letzd2funzd2_bglt)CREF(BgL_ez00_1276))->BgL_localsz00); 
BgL_l2780z00_1280 = BgL_arg3559z00_1282; 
BgL_forzd2each2781zd2_1281:
{ /* ./SawMill/extratype.scm 107 */
bool_t BgL_test3562z00_1283;
BgL_test3562z00_1283 = 
PAIRP(BgL_l2780z00_1280); 
if(BgL_test3562z00_1283)
{ /* ./SawMill/extratype.scm 107 */
{ /* ./SawMill/extratype.scm 108 */
obj_t BgL_vz00_1284;
BgL_vz00_1284 = 
CAR(BgL_l2780z00_1280); 
{ /* ./SawMill/extratype.scm 108 */
obj_t BgL_arg3564z00_1285;
{ /* ./SawMill/extratype.scm 108 */
obj_t BgL_arg3567z00_1286;
{ /* ./SawMill/extratype.scm 108 */
BgL_sfunz00_bglt BgL_obj1370z00_1897;
{ /* ./SawMill/extratype.scm 108 */
BgL_valuez00_bglt BgL_auxz00_3424;
{ /* ./SawMill/extratype.scm 108 */
BgL_variablez00_bglt BgL_obj1100z00_1896;
BgL_obj1100z00_1896 = 
(BgL_variablez00_bglt)(BgL_vz00_1284); 
BgL_auxz00_3424 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1896))->BgL_valuez00); } 
BgL_obj1370z00_1897 = 
(BgL_sfunz00_bglt)(BgL_auxz00_3424); } 
BgL_arg3567z00_1286 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1370z00_1897))->BgL_bodyz00); } 
{ /* ./SawMill/extratype.scm 108 */
BgL_nodez00_bglt BgL_ez00_1898;
BgL_ez00_1898 = 
(BgL_nodez00_bglt)(BgL_arg3567z00_1286); 
{ /* ./SawMill/extratype.scm 108 */
obj_t BgL_method2828z00_1899;
{ /* ./SawMill/extratype.scm 108 */
BgL_objectz00_bglt BgL_objz00_1900;
BgL_objz00_1900 = 
(BgL_objectz00_bglt)(BgL_ez00_1898); 
{ /* ./SawMill/extratype.scm 108 */
long BgL_objzd2classzd2numz00_1901;
BgL_objzd2classzd2numz00_1901 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1900); 
{ /* ./SawMill/extratype.scm 108 */
obj_t BgL_arg2017z00_1902;
{ /* ./SawMill/extratype.scm 108 */
int BgL_auxz00_3432;
BgL_auxz00_3432 = 
(int)(((long)1)); 
BgL_arg2017z00_1902 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3432); } 
{ /* ./SawMill/extratype.scm 108 */
int BgL_offsetz00_1905;
BgL_offsetz00_1905 = 
(int)(BgL_objzd2classzd2numz00_1901); 
{ /* ./SawMill/extratype.scm 108 */
long BgL_offsetz00_1906;
{ /* ./SawMill/extratype.scm 108 */
long BgL_auxz00_3436;
BgL_auxz00_3436 = 
(long)(BgL_offsetz00_1905); 
BgL_offsetz00_1906 = 
(BgL_auxz00_3436-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 108 */
long BgL_modz00_1907;
{ /* ./SawMill/extratype.scm 108 */
int BgL_arg2028z00_1908;
BgL_arg2028z00_1908 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 108 */
long BgL_n2z00_1916;
BgL_n2z00_1916 = 
(long)(BgL_arg2028z00_1908); 
BgL_modz00_1907 = 
(BgL_offsetz00_1906/BgL_n2z00_1916); } } 
{ /* ./SawMill/extratype.scm 108 */
long BgL_restz00_1909;
{ /* ./SawMill/extratype.scm 108 */
int BgL_arg2024z00_1910;
BgL_arg2024z00_1910 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 108 */
long BgL_n2z00_1919;
BgL_n2z00_1919 = 
(long)(BgL_arg2024z00_1910); 
BgL_restz00_1909 = 
(BgL_offsetz00_1906%BgL_n2z00_1919); } } 
{ /* ./SawMill/extratype.scm 108 */

{ /* ./SawMill/extratype.scm 108 */
obj_t BgL_bucketz00_1911;
{ /* ./SawMill/extratype.scm 108 */
int BgL_kz00_1921;
BgL_kz00_1921 = 
(int)(BgL_modz00_1907); 
BgL_bucketz00_1911 = 
VECTOR_REF(BgL_arg2017z00_1902,BgL_kz00_1921); } 
{ /* ./SawMill/extratype.scm 108 */
int BgL_kz00_1923;
BgL_kz00_1923 = 
(int)(BgL_restz00_1909); 
BgL_method2828z00_1899 = 
VECTOR_REF(BgL_bucketz00_1911,BgL_kz00_1923); } } } } } } } } } } 
BgL_arg3564z00_1285 = 
PROCEDURE_ENTRY(BgL_method2828z00_1899)(BgL_method2828z00_1899, 
(obj_t)(BgL_ez00_1898), BEOA); } } } 
BGl_assignzd2typezd2varz00zzsaw_extratypez00(BgL_vz00_1284, BgL_arg3564z00_1285); } } 
{ /* ./SawMill/extratype.scm 107 */
obj_t BgL_arg3575z00_1288;
BgL_arg3575z00_1288 = 
CDR(BgL_l2780z00_1280); 
{ 
obj_t BgL_l2780z00_3454;
BgL_l2780z00_3454 = BgL_arg3575z00_1288; 
BgL_l2780z00_1280 = BgL_l2780z00_3454; 
goto BgL_forzd2each2781zd2_1281;} } }  else 
{ /* ./SawMill/extratype.scm 107 */((bool_t)1); } } } } 
{ /* ./SawMill/extratype.scm 110 */
obj_t BgL_arg3580z00_1289;
{ /* ./SawMill/extratype.scm 110 */
BgL_nodez00_bglt BgL_arg3583z00_1290;
BgL_arg3583z00_1290 = 
(((BgL_letzd2funzd2_bglt)CREF(BgL_ez00_1276))->BgL_bodyz00); 
{ /* ./SawMill/extratype.scm 110 */
obj_t BgL_method2828z00_1927;
{ /* ./SawMill/extratype.scm 110 */
BgL_objectz00_bglt BgL_objz00_1928;
BgL_objz00_1928 = 
(BgL_objectz00_bglt)(BgL_arg3583z00_1290); 
{ /* ./SawMill/extratype.scm 110 */
long BgL_objzd2classzd2numz00_1929;
BgL_objzd2classzd2numz00_1929 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1928); 
{ /* ./SawMill/extratype.scm 110 */
obj_t BgL_arg2017z00_1930;
{ /* ./SawMill/extratype.scm 110 */
int BgL_auxz00_3458;
BgL_auxz00_3458 = 
(int)(((long)1)); 
BgL_arg2017z00_1930 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3458); } 
{ /* ./SawMill/extratype.scm 110 */
int BgL_offsetz00_1933;
BgL_offsetz00_1933 = 
(int)(BgL_objzd2classzd2numz00_1929); 
{ /* ./SawMill/extratype.scm 110 */
long BgL_offsetz00_1934;
{ /* ./SawMill/extratype.scm 110 */
long BgL_auxz00_3462;
BgL_auxz00_3462 = 
(long)(BgL_offsetz00_1933); 
BgL_offsetz00_1934 = 
(BgL_auxz00_3462-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 110 */
long BgL_modz00_1935;
{ /* ./SawMill/extratype.scm 110 */
int BgL_arg2028z00_1936;
BgL_arg2028z00_1936 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 110 */
long BgL_n2z00_1944;
BgL_n2z00_1944 = 
(long)(BgL_arg2028z00_1936); 
BgL_modz00_1935 = 
(BgL_offsetz00_1934/BgL_n2z00_1944); } } 
{ /* ./SawMill/extratype.scm 110 */
long BgL_restz00_1937;
{ /* ./SawMill/extratype.scm 110 */
int BgL_arg2024z00_1938;
BgL_arg2024z00_1938 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 110 */
long BgL_n2z00_1947;
BgL_n2z00_1947 = 
(long)(BgL_arg2024z00_1938); 
BgL_restz00_1937 = 
(BgL_offsetz00_1934%BgL_n2z00_1947); } } 
{ /* ./SawMill/extratype.scm 110 */

{ /* ./SawMill/extratype.scm 110 */
obj_t BgL_bucketz00_1939;
{ /* ./SawMill/extratype.scm 110 */
int BgL_kz00_1949;
BgL_kz00_1949 = 
(int)(BgL_modz00_1935); 
BgL_bucketz00_1939 = 
VECTOR_REF(BgL_arg2017z00_1930,BgL_kz00_1949); } 
{ /* ./SawMill/extratype.scm 110 */
int BgL_kz00_1951;
BgL_kz00_1951 = 
(int)(BgL_restz00_1937); 
BgL_method2828z00_1927 = 
VECTOR_REF(BgL_bucketz00_1939,BgL_kz00_1951); } } } } } } } } } } 
BgL_arg3580z00_1289 = 
PROCEDURE_ENTRY(BgL_method2828z00_1927)(BgL_method2828z00_1927, 
(obj_t)(BgL_arg3583z00_1290), BEOA); } } 
return 
BGl_assignzd2typezd2zzsaw_extratypez00(
(obj_t)(BgL_ez00_1276), BgL_arg3580z00_1289);} } } 
}



/* typecheck-select2842 */
obj_t BGl_typecheckzd2select2842zd2zzsaw_extratypez00(obj_t BgL_envz00_2509, obj_t BgL_ez00_2510)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 96 */
{ 
BgL_selectz00_bglt BgL_ez00_1260;
BgL_ez00_1260 = 
(BgL_selectz00_bglt)(BgL_ez00_2510); 
{ /* ./SawMill/extratype.scm 98 */
BgL_nodez00_bglt BgL_arg3531z00_1264;
BgL_arg3531z00_1264 = 
(((BgL_selectz00_bglt)CREF(BgL_ez00_1260))->BgL_testz00); 
{ /* ./SawMill/extratype.scm 98 */
obj_t BgL_method2828z00_1835;
{ /* ./SawMill/extratype.scm 98 */
BgL_objectz00_bglt BgL_objz00_1836;
BgL_objz00_1836 = 
(BgL_objectz00_bglt)(BgL_arg3531z00_1264); 
{ /* ./SawMill/extratype.scm 98 */
long BgL_objzd2classzd2numz00_1837;
BgL_objzd2classzd2numz00_1837 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1836); 
{ /* ./SawMill/extratype.scm 98 */
obj_t BgL_arg2017z00_1838;
{ /* ./SawMill/extratype.scm 98 */
int BgL_auxz00_3484;
BgL_auxz00_3484 = 
(int)(((long)1)); 
BgL_arg2017z00_1838 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3484); } 
{ /* ./SawMill/extratype.scm 98 */
int BgL_offsetz00_1841;
BgL_offsetz00_1841 = 
(int)(BgL_objzd2classzd2numz00_1837); 
{ /* ./SawMill/extratype.scm 98 */
long BgL_offsetz00_1842;
{ /* ./SawMill/extratype.scm 98 */
long BgL_auxz00_3488;
BgL_auxz00_3488 = 
(long)(BgL_offsetz00_1841); 
BgL_offsetz00_1842 = 
(BgL_auxz00_3488-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 98 */
long BgL_modz00_1843;
{ /* ./SawMill/extratype.scm 98 */
int BgL_arg2028z00_1844;
BgL_arg2028z00_1844 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 98 */
long BgL_n2z00_1852;
BgL_n2z00_1852 = 
(long)(BgL_arg2028z00_1844); 
BgL_modz00_1843 = 
(BgL_offsetz00_1842/BgL_n2z00_1852); } } 
{ /* ./SawMill/extratype.scm 98 */
long BgL_restz00_1845;
{ /* ./SawMill/extratype.scm 98 */
int BgL_arg2024z00_1846;
BgL_arg2024z00_1846 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 98 */
long BgL_n2z00_1855;
BgL_n2z00_1855 = 
(long)(BgL_arg2024z00_1846); 
BgL_restz00_1845 = 
(BgL_offsetz00_1842%BgL_n2z00_1855); } } 
{ /* ./SawMill/extratype.scm 98 */

{ /* ./SawMill/extratype.scm 98 */
obj_t BgL_bucketz00_1847;
{ /* ./SawMill/extratype.scm 98 */
int BgL_kz00_1857;
BgL_kz00_1857 = 
(int)(BgL_modz00_1843); 
BgL_bucketz00_1847 = 
VECTOR_REF(BgL_arg2017z00_1838,BgL_kz00_1857); } 
{ /* ./SawMill/extratype.scm 98 */
int BgL_kz00_1859;
BgL_kz00_1859 = 
(int)(BgL_restz00_1845); 
BgL_method2828z00_1835 = 
VECTOR_REF(BgL_bucketz00_1847,BgL_kz00_1859); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_1835)(BgL_method2828z00_1835, 
(obj_t)(BgL_arg3531z00_1264), BEOA); } } 
{ 
obj_t BgL_lz00_1265;obj_t BgL_tz00_1266;
{ /* ./SawMill/extratype.scm 100 */
obj_t BgL_arg3535z00_1268;BgL_typez00_bglt BgL_arg3536z00_1269;
BgL_arg3535z00_1268 = 
(((BgL_selectz00_bglt)CREF(BgL_ez00_1260))->BgL_clausesz00); 
BgL_arg3536z00_1269 = 
BGl_findzd2typezd2zztype_envz00(
CNST_TABLE_REF(((long)14))); 
BgL_lz00_1265 = BgL_arg3535z00_1268; 
BgL_tz00_1266 = 
(obj_t)(BgL_arg3536z00_1269); 
BgL_walkz00_1267:
{ /* ./SawMill/extratype.scm 101 */
bool_t BgL_test3540z00_1270;
BgL_test3540z00_1270 = 
NULLP(BgL_lz00_1265); 
if(BgL_test3540z00_1270)
{ /* ./SawMill/extratype.scm 101 */
return 
BGl_assignzd2typezd2zzsaw_extratypez00(
(obj_t)(BgL_ez00_1260), BgL_tz00_1266);}  else 
{ /* ./SawMill/extratype.scm 103 */
obj_t BgL_arg3543z00_1271;obj_t BgL_arg3544z00_1272;
BgL_arg3543z00_1271 = 
CDR(BgL_lz00_1265); 
{ /* ./SawMill/extratype.scm 103 */
obj_t BgL_arg3548z00_1273;
{ /* ./SawMill/extratype.scm 103 */
obj_t BgL_auxz00_3512;
BgL_auxz00_3512 = 
CAR(BgL_lz00_1265); 
BgL_arg3548z00_1273 = 
CDR(BgL_auxz00_3512); } 
{ /* ./SawMill/extratype.scm 103 */
BgL_nodez00_bglt BgL_ez00_1867;
BgL_ez00_1867 = 
(BgL_nodez00_bglt)(BgL_arg3548z00_1273); 
{ /* ./SawMill/extratype.scm 103 */
obj_t BgL_method2828z00_1868;
{ /* ./SawMill/extratype.scm 103 */
BgL_objectz00_bglt BgL_objz00_1869;
BgL_objz00_1869 = 
(BgL_objectz00_bglt)(BgL_ez00_1867); 
{ /* ./SawMill/extratype.scm 103 */
long BgL_objzd2classzd2numz00_1870;
BgL_objzd2classzd2numz00_1870 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1869); 
{ /* ./SawMill/extratype.scm 103 */
obj_t BgL_arg2017z00_1871;
{ /* ./SawMill/extratype.scm 103 */
int BgL_auxz00_3518;
BgL_auxz00_3518 = 
(int)(((long)1)); 
BgL_arg2017z00_1871 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3518); } 
{ /* ./SawMill/extratype.scm 103 */
int BgL_offsetz00_1874;
BgL_offsetz00_1874 = 
(int)(BgL_objzd2classzd2numz00_1870); 
{ /* ./SawMill/extratype.scm 103 */
long BgL_offsetz00_1875;
{ /* ./SawMill/extratype.scm 103 */
long BgL_auxz00_3522;
BgL_auxz00_3522 = 
(long)(BgL_offsetz00_1874); 
BgL_offsetz00_1875 = 
(BgL_auxz00_3522-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 103 */
long BgL_modz00_1876;
{ /* ./SawMill/extratype.scm 103 */
int BgL_arg2028z00_1877;
BgL_arg2028z00_1877 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 103 */
long BgL_n2z00_1885;
BgL_n2z00_1885 = 
(long)(BgL_arg2028z00_1877); 
BgL_modz00_1876 = 
(BgL_offsetz00_1875/BgL_n2z00_1885); } } 
{ /* ./SawMill/extratype.scm 103 */
long BgL_restz00_1878;
{ /* ./SawMill/extratype.scm 103 */
int BgL_arg2024z00_1879;
BgL_arg2024z00_1879 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 103 */
long BgL_n2z00_1888;
BgL_n2z00_1888 = 
(long)(BgL_arg2024z00_1879); 
BgL_restz00_1878 = 
(BgL_offsetz00_1875%BgL_n2z00_1888); } } 
{ /* ./SawMill/extratype.scm 103 */

{ /* ./SawMill/extratype.scm 103 */
obj_t BgL_bucketz00_1880;
{ /* ./SawMill/extratype.scm 103 */
int BgL_kz00_1890;
BgL_kz00_1890 = 
(int)(BgL_modz00_1876); 
BgL_bucketz00_1880 = 
VECTOR_REF(BgL_arg2017z00_1871,BgL_kz00_1890); } 
{ /* ./SawMill/extratype.scm 103 */
int BgL_kz00_1892;
BgL_kz00_1892 = 
(int)(BgL_restz00_1878); 
BgL_method2828z00_1868 = 
VECTOR_REF(BgL_bucketz00_1880,BgL_kz00_1892); } } } } } } } } } } 
BgL_arg3544z00_1272 = 
PROCEDURE_ENTRY(BgL_method2828z00_1868)(BgL_method2828z00_1868, 
(obj_t)(BgL_ez00_1867), BEOA); } } } 
{ 
obj_t BgL_tz00_3539;obj_t BgL_lz00_3538;
BgL_lz00_3538 = BgL_arg3543z00_1271; 
BgL_tz00_3539 = BgL_arg3544z00_1272; 
BgL_tz00_1266 = BgL_tz00_3539; 
BgL_lz00_1265 = BgL_lz00_3538; 
goto BgL_walkz00_1267;} } } } } } } 
}



/* typecheck-conditional2840 */
obj_t BGl_typecheckzd2conditional2840zd2zzsaw_extratypez00(obj_t BgL_envz00_2511, obj_t BgL_ez00_2512)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 84 */
{ 
BgL_conditionalz00_bglt BgL_ez00_1247;
BgL_ez00_1247 = 
(BgL_conditionalz00_bglt)(BgL_ez00_2512); 
{ /* ./SawMill/extratype.scm 86 */
BgL_nodez00_bglt BgL_arg3506z00_1251;
BgL_arg3506z00_1251 = 
(((BgL_conditionalz00_bglt)CREF(BgL_ez00_1247))->BgL_testz00); 
{ /* ./SawMill/extratype.scm 86 */
obj_t BgL_method2828z00_1752;
{ /* ./SawMill/extratype.scm 86 */
BgL_objectz00_bglt BgL_objz00_1753;
BgL_objz00_1753 = 
(BgL_objectz00_bglt)(BgL_arg3506z00_1251); 
{ /* ./SawMill/extratype.scm 86 */
long BgL_objzd2classzd2numz00_1754;
BgL_objzd2classzd2numz00_1754 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1753); 
{ /* ./SawMill/extratype.scm 86 */
obj_t BgL_arg2017z00_1755;
{ /* ./SawMill/extratype.scm 86 */
int BgL_auxz00_3545;
BgL_auxz00_3545 = 
(int)(((long)1)); 
BgL_arg2017z00_1755 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3545); } 
{ /* ./SawMill/extratype.scm 86 */
int BgL_offsetz00_1758;
BgL_offsetz00_1758 = 
(int)(BgL_objzd2classzd2numz00_1754); 
{ /* ./SawMill/extratype.scm 86 */
long BgL_offsetz00_1759;
{ /* ./SawMill/extratype.scm 86 */
long BgL_auxz00_3549;
BgL_auxz00_3549 = 
(long)(BgL_offsetz00_1758); 
BgL_offsetz00_1759 = 
(BgL_auxz00_3549-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 86 */
long BgL_modz00_1760;
{ /* ./SawMill/extratype.scm 86 */
int BgL_arg2028z00_1761;
BgL_arg2028z00_1761 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 86 */
long BgL_n2z00_1769;
BgL_n2z00_1769 = 
(long)(BgL_arg2028z00_1761); 
BgL_modz00_1760 = 
(BgL_offsetz00_1759/BgL_n2z00_1769); } } 
{ /* ./SawMill/extratype.scm 86 */
long BgL_restz00_1762;
{ /* ./SawMill/extratype.scm 86 */
int BgL_arg2024z00_1763;
BgL_arg2024z00_1763 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 86 */
long BgL_n2z00_1772;
BgL_n2z00_1772 = 
(long)(BgL_arg2024z00_1763); 
BgL_restz00_1762 = 
(BgL_offsetz00_1759%BgL_n2z00_1772); } } 
{ /* ./SawMill/extratype.scm 86 */

{ /* ./SawMill/extratype.scm 86 */
obj_t BgL_bucketz00_1764;
{ /* ./SawMill/extratype.scm 86 */
int BgL_kz00_1774;
BgL_kz00_1774 = 
(int)(BgL_modz00_1760); 
BgL_bucketz00_1764 = 
VECTOR_REF(BgL_arg2017z00_1755,BgL_kz00_1774); } 
{ /* ./SawMill/extratype.scm 86 */
int BgL_kz00_1776;
BgL_kz00_1776 = 
(int)(BgL_restz00_1762); 
BgL_method2828z00_1752 = 
VECTOR_REF(BgL_bucketz00_1764,BgL_kz00_1776); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2828z00_1752)(BgL_method2828z00_1752, 
(obj_t)(BgL_arg3506z00_1251), BEOA); } } 
{ /* ./SawMill/extratype.scm 87 */
obj_t BgL_ttz00_1252;obj_t BgL_tfz00_1253;
{ /* ./SawMill/extratype.scm 87 */
BgL_nodez00_bglt BgL_arg3517z00_1256;
BgL_arg3517z00_1256 = 
(((BgL_conditionalz00_bglt)CREF(BgL_ez00_1247))->BgL_truez00); 
{ /* ./SawMill/extratype.scm 87 */
obj_t BgL_method2828z00_1779;
{ /* ./SawMill/extratype.scm 87 */
BgL_objectz00_bglt BgL_objz00_1780;
BgL_objz00_1780 = 
(BgL_objectz00_bglt)(BgL_arg3517z00_1256); 
{ /* ./SawMill/extratype.scm 87 */
long BgL_objzd2classzd2numz00_1781;
BgL_objzd2classzd2numz00_1781 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1780); 
{ /* ./SawMill/extratype.scm 87 */
obj_t BgL_arg2017z00_1782;
{ /* ./SawMill/extratype.scm 87 */
int BgL_auxz00_3568;
BgL_auxz00_3568 = 
(int)(((long)1)); 
BgL_arg2017z00_1782 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3568); } 
{ /* ./SawMill/extratype.scm 87 */
int BgL_offsetz00_1785;
BgL_offsetz00_1785 = 
(int)(BgL_objzd2classzd2numz00_1781); 
{ /* ./SawMill/extratype.scm 87 */
long BgL_offsetz00_1786;
{ /* ./SawMill/extratype.scm 87 */
long BgL_auxz00_3572;
BgL_auxz00_3572 = 
(long)(BgL_offsetz00_1785); 
BgL_offsetz00_1786 = 
(BgL_auxz00_3572-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 87 */
long BgL_modz00_1787;
{ /* ./SawMill/extratype.scm 87 */
int BgL_arg2028z00_1788;
BgL_arg2028z00_1788 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 87 */
long BgL_n2z00_1796;
BgL_n2z00_1796 = 
(long)(BgL_arg2028z00_1788); 
BgL_modz00_1787 = 
(BgL_offsetz00_1786/BgL_n2z00_1796); } } 
{ /* ./SawMill/extratype.scm 87 */
long BgL_restz00_1789;
{ /* ./SawMill/extratype.scm 87 */
int BgL_arg2024z00_1790;
BgL_arg2024z00_1790 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 87 */
long BgL_n2z00_1799;
BgL_n2z00_1799 = 
(long)(BgL_arg2024z00_1790); 
BgL_restz00_1789 = 
(BgL_offsetz00_1786%BgL_n2z00_1799); } } 
{ /* ./SawMill/extratype.scm 87 */

{ /* ./SawMill/extratype.scm 87 */
obj_t BgL_bucketz00_1791;
{ /* ./SawMill/extratype.scm 87 */
int BgL_kz00_1801;
BgL_kz00_1801 = 
(int)(BgL_modz00_1787); 
BgL_bucketz00_1791 = 
VECTOR_REF(BgL_arg2017z00_1782,BgL_kz00_1801); } 
{ /* ./SawMill/extratype.scm 87 */
int BgL_kz00_1803;
BgL_kz00_1803 = 
(int)(BgL_restz00_1789); 
BgL_method2828z00_1779 = 
VECTOR_REF(BgL_bucketz00_1791,BgL_kz00_1803); } } } } } } } } } } 
BgL_ttz00_1252 = 
PROCEDURE_ENTRY(BgL_method2828z00_1779)(BgL_method2828z00_1779, 
(obj_t)(BgL_arg3517z00_1256), BEOA); } } 
{ /* ./SawMill/extratype.scm 87 */
BgL_nodez00_bglt BgL_arg3521z00_1257;
BgL_arg3521z00_1257 = 
(((BgL_conditionalz00_bglt)CREF(BgL_ez00_1247))->BgL_falsez00); 
{ /* ./SawMill/extratype.scm 87 */
obj_t BgL_method2828z00_1806;
{ /* ./SawMill/extratype.scm 87 */
BgL_objectz00_bglt BgL_objz00_1807;
BgL_objz00_1807 = 
(BgL_objectz00_bglt)(BgL_arg3521z00_1257); 
{ /* ./SawMill/extratype.scm 87 */
long BgL_objzd2classzd2numz00_1808;
BgL_objzd2classzd2numz00_1808 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1807); 
{ /* ./SawMill/extratype.scm 87 */
obj_t BgL_arg2017z00_1809;
{ /* ./SawMill/extratype.scm 87 */
int BgL_auxz00_3591;
BgL_auxz00_3591 = 
(int)(((long)1)); 
BgL_arg2017z00_1809 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3591); } 
{ /* ./SawMill/extratype.scm 87 */
int BgL_offsetz00_1812;
BgL_offsetz00_1812 = 
(int)(BgL_objzd2classzd2numz00_1808); 
{ /* ./SawMill/extratype.scm 87 */
long BgL_offsetz00_1813;
{ /* ./SawMill/extratype.scm 87 */
long BgL_auxz00_3595;
BgL_auxz00_3595 = 
(long)(BgL_offsetz00_1812); 
BgL_offsetz00_1813 = 
(BgL_auxz00_3595-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 87 */
long BgL_modz00_1814;
{ /* ./SawMill/extratype.scm 87 */
int BgL_arg2028z00_1815;
BgL_arg2028z00_1815 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 87 */
long BgL_n2z00_1823;
BgL_n2z00_1823 = 
(long)(BgL_arg2028z00_1815); 
BgL_modz00_1814 = 
(BgL_offsetz00_1813/BgL_n2z00_1823); } } 
{ /* ./SawMill/extratype.scm 87 */
long BgL_restz00_1816;
{ /* ./SawMill/extratype.scm 87 */
int BgL_arg2024z00_1817;
BgL_arg2024z00_1817 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 87 */
long BgL_n2z00_1826;
BgL_n2z00_1826 = 
(long)(BgL_arg2024z00_1817); 
BgL_restz00_1816 = 
(BgL_offsetz00_1813%BgL_n2z00_1826); } } 
{ /* ./SawMill/extratype.scm 87 */

{ /* ./SawMill/extratype.scm 87 */
obj_t BgL_bucketz00_1818;
{ /* ./SawMill/extratype.scm 87 */
int BgL_kz00_1828;
BgL_kz00_1828 = 
(int)(BgL_modz00_1814); 
BgL_bucketz00_1818 = 
VECTOR_REF(BgL_arg2017z00_1809,BgL_kz00_1828); } 
{ /* ./SawMill/extratype.scm 87 */
int BgL_kz00_1830;
BgL_kz00_1830 = 
(int)(BgL_restz00_1816); 
BgL_method2828z00_1806 = 
VECTOR_REF(BgL_bucketz00_1818,BgL_kz00_1830); } } } } } } } } } } 
BgL_tfz00_1253 = 
PROCEDURE_ENTRY(BgL_method2828z00_1806)(BgL_method2828z00_1806, 
(obj_t)(BgL_arg3521z00_1257), BEOA); } } 
{ /* ./SawMill/extratype.scm 90 */
bool_t BgL_test3509z00_1254;
BgL_test3509z00_1254 = 
BGl_iszd2azf3z21zz__objectz00(BgL_ttz00_1252, BGl_hookz00zzsaw_extratypez00); 
if(BgL_test3509z00_1254)
{ /* ./SawMill/extratype.scm 90 */
return 
BGl_assignzd2typezd2zzsaw_extratypez00(
(obj_t)(BgL_ez00_1247), BgL_ttz00_1252);}  else 
{ /* ./SawMill/extratype.scm 92 */
bool_t BgL_test3511z00_1255;
BgL_test3511z00_1255 = 
BGl_iszd2azf3z21zz__objectz00(BgL_tfz00_1253, BGl_hookz00zzsaw_extratypez00); 
if(BgL_test3511z00_1255)
{ /* ./SawMill/extratype.scm 92 */
return 
BGl_assignzd2typezd2zzsaw_extratypez00(
(obj_t)(BgL_ez00_1247), BgL_tfz00_1253);}  else 
{ /* ./SawMill/extratype.scm 92 */
{ /* ./SawMill/extratype.scm 94 */
BgL_typez00_bglt BgL_auxz00_3619;
BgL_auxz00_3619 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_ez00_1247)); 
return 
(obj_t)(BgL_auxz00_3619);} } } } } } } 
}



/* typecheck-sequence2838 */
obj_t BGl_typecheckzd2sequence2838zd2zzsaw_extratypez00(obj_t BgL_envz00_2513, obj_t BgL_ez00_2514)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 77 */
{ 
BgL_sequencez00_bglt BgL_ez00_1232;
BgL_ez00_1232 = 
(BgL_sequencez00_bglt)(BgL_ez00_2514); 
{ 
obj_t BgL_lz00_1236;obj_t BgL_tz00_1237;
{ /* ./SawMill/extratype.scm 79 */
obj_t BgL_arg3482z00_1239;BgL_typez00_bglt BgL_arg3483z00_1240;
BgL_arg3482z00_1239 = 
(((BgL_sequencez00_bglt)CREF(BgL_ez00_1232))->BgL_nodesz00); 
BgL_arg3483z00_1240 = 
BGl_findzd2typezd2zztype_envz00(
CNST_TABLE_REF(((long)14))); 
BgL_lz00_1236 = BgL_arg3482z00_1239; 
BgL_tz00_1237 = 
(obj_t)(BgL_arg3483z00_1240); 
BgL_walkz00_1238:
{ /* ./SawMill/extratype.scm 80 */
bool_t BgL_test3487z00_1241;
BgL_test3487z00_1241 = 
NULLP(BgL_lz00_1236); 
if(BgL_test3487z00_1241)
{ /* ./SawMill/extratype.scm 80 */
return 
BGl_assignzd2typezd2zzsaw_extratypez00(
(obj_t)(BgL_ez00_1232), BgL_tz00_1237);}  else 
{ /* ./SawMill/extratype.scm 82 */
obj_t BgL_arg3490z00_1242;obj_t BgL_arg3491z00_1243;
BgL_arg3490z00_1242 = 
CDR(BgL_lz00_1236); 
{ /* ./SawMill/extratype.scm 82 */
obj_t BgL_arg3495z00_1244;
BgL_arg3495z00_1244 = 
CAR(BgL_lz00_1236); 
{ /* ./SawMill/extratype.scm 82 */
BgL_nodez00_bglt BgL_ez00_1724;
BgL_ez00_1724 = 
(BgL_nodez00_bglt)(BgL_arg3495z00_1244); 
{ /* ./SawMill/extratype.scm 82 */
obj_t BgL_method2828z00_1725;
{ /* ./SawMill/extratype.scm 82 */
BgL_objectz00_bglt BgL_objz00_1726;
BgL_objz00_1726 = 
(BgL_objectz00_bglt)(BgL_ez00_1724); 
{ /* ./SawMill/extratype.scm 82 */
long BgL_objzd2classzd2numz00_1727;
BgL_objzd2classzd2numz00_1727 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1726); 
{ /* ./SawMill/extratype.scm 82 */
obj_t BgL_arg2017z00_1728;
{ /* ./SawMill/extratype.scm 82 */
int BgL_auxz00_3636;
BgL_auxz00_3636 = 
(int)(((long)1)); 
BgL_arg2017z00_1728 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3636); } 
{ /* ./SawMill/extratype.scm 82 */
int BgL_offsetz00_1731;
BgL_offsetz00_1731 = 
(int)(BgL_objzd2classzd2numz00_1727); 
{ /* ./SawMill/extratype.scm 82 */
long BgL_offsetz00_1732;
{ /* ./SawMill/extratype.scm 82 */
long BgL_auxz00_3640;
BgL_auxz00_3640 = 
(long)(BgL_offsetz00_1731); 
BgL_offsetz00_1732 = 
(BgL_auxz00_3640-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 82 */
long BgL_modz00_1733;
{ /* ./SawMill/extratype.scm 82 */
int BgL_arg2028z00_1734;
BgL_arg2028z00_1734 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 82 */
long BgL_n2z00_1742;
BgL_n2z00_1742 = 
(long)(BgL_arg2028z00_1734); 
BgL_modz00_1733 = 
(BgL_offsetz00_1732/BgL_n2z00_1742); } } 
{ /* ./SawMill/extratype.scm 82 */
long BgL_restz00_1735;
{ /* ./SawMill/extratype.scm 82 */
int BgL_arg2024z00_1736;
BgL_arg2024z00_1736 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 82 */
long BgL_n2z00_1745;
BgL_n2z00_1745 = 
(long)(BgL_arg2024z00_1736); 
BgL_restz00_1735 = 
(BgL_offsetz00_1732%BgL_n2z00_1745); } } 
{ /* ./SawMill/extratype.scm 82 */

{ /* ./SawMill/extratype.scm 82 */
obj_t BgL_bucketz00_1737;
{ /* ./SawMill/extratype.scm 82 */
int BgL_kz00_1747;
BgL_kz00_1747 = 
(int)(BgL_modz00_1733); 
BgL_bucketz00_1737 = 
VECTOR_REF(BgL_arg2017z00_1728,BgL_kz00_1747); } 
{ /* ./SawMill/extratype.scm 82 */
int BgL_kz00_1749;
BgL_kz00_1749 = 
(int)(BgL_restz00_1735); 
BgL_method2828z00_1725 = 
VECTOR_REF(BgL_bucketz00_1737,BgL_kz00_1749); } } } } } } } } } } 
BgL_arg3491z00_1243 = 
PROCEDURE_ENTRY(BgL_method2828z00_1725)(BgL_method2828z00_1725, 
(obj_t)(BgL_ez00_1724), BEOA); } } } 
{ 
obj_t BgL_tz00_3657;obj_t BgL_lz00_3656;
BgL_lz00_3656 = BgL_arg3490z00_1242; 
BgL_tz00_3657 = BgL_arg3491z00_1243; 
BgL_tz00_1237 = BgL_tz00_3657; 
BgL_lz00_1236 = BgL_lz00_3656; 
goto BgL_walkz00_1238;} } } } } } } 
}



/* typecheck-setq2836 */
obj_t BGl_typecheckzd2setq2836zd2zzsaw_extratypez00(obj_t BgL_envz00_2515, obj_t BgL_ez00_2516)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 72 */
{ 
BgL_setqz00_bglt BgL_ez00_1223;
BgL_ez00_1223 = 
(BgL_setqz00_bglt)(BgL_ez00_2516); 
{ /* ./SawMill/extratype.scm 75 */
BgL_varz00_bglt BgL_arg3467z00_1227;obj_t BgL_arg3468z00_1228;
BgL_arg3467z00_1227 = 
(((BgL_setqz00_bglt)CREF(BgL_ez00_1223))->BgL_varz00); 
{ /* ./SawMill/extratype.scm 75 */
BgL_nodez00_bglt BgL_arg3472z00_1229;
BgL_arg3472z00_1229 = 
(((BgL_setqz00_bglt)CREF(BgL_ez00_1223))->BgL_valuez00); 
{ /* ./SawMill/extratype.scm 75 */
obj_t BgL_method2828z00_1695;
{ /* ./SawMill/extratype.scm 75 */
BgL_objectz00_bglt BgL_objz00_1696;
BgL_objz00_1696 = 
(BgL_objectz00_bglt)(BgL_arg3472z00_1229); 
{ /* ./SawMill/extratype.scm 75 */
long BgL_objzd2classzd2numz00_1697;
BgL_objzd2classzd2numz00_1697 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1696); 
{ /* ./SawMill/extratype.scm 75 */
obj_t BgL_arg2017z00_1698;
{ /* ./SawMill/extratype.scm 75 */
int BgL_auxz00_3664;
BgL_auxz00_3664 = 
(int)(((long)1)); 
BgL_arg2017z00_1698 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3664); } 
{ /* ./SawMill/extratype.scm 75 */
int BgL_offsetz00_1701;
BgL_offsetz00_1701 = 
(int)(BgL_objzd2classzd2numz00_1697); 
{ /* ./SawMill/extratype.scm 75 */
long BgL_offsetz00_1702;
{ /* ./SawMill/extratype.scm 75 */
long BgL_auxz00_3668;
BgL_auxz00_3668 = 
(long)(BgL_offsetz00_1701); 
BgL_offsetz00_1702 = 
(BgL_auxz00_3668-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 75 */
long BgL_modz00_1703;
{ /* ./SawMill/extratype.scm 75 */
int BgL_arg2028z00_1704;
BgL_arg2028z00_1704 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 75 */
long BgL_n2z00_1712;
BgL_n2z00_1712 = 
(long)(BgL_arg2028z00_1704); 
BgL_modz00_1703 = 
(BgL_offsetz00_1702/BgL_n2z00_1712); } } 
{ /* ./SawMill/extratype.scm 75 */
long BgL_restz00_1705;
{ /* ./SawMill/extratype.scm 75 */
int BgL_arg2024z00_1706;
BgL_arg2024z00_1706 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 75 */
long BgL_n2z00_1715;
BgL_n2z00_1715 = 
(long)(BgL_arg2024z00_1706); 
BgL_restz00_1705 = 
(BgL_offsetz00_1702%BgL_n2z00_1715); } } 
{ /* ./SawMill/extratype.scm 75 */

{ /* ./SawMill/extratype.scm 75 */
obj_t BgL_bucketz00_1707;
{ /* ./SawMill/extratype.scm 75 */
int BgL_kz00_1717;
BgL_kz00_1717 = 
(int)(BgL_modz00_1703); 
BgL_bucketz00_1707 = 
VECTOR_REF(BgL_arg2017z00_1698,BgL_kz00_1717); } 
{ /* ./SawMill/extratype.scm 75 */
int BgL_kz00_1719;
BgL_kz00_1719 = 
(int)(BgL_restz00_1705); 
BgL_method2828z00_1695 = 
VECTOR_REF(BgL_bucketz00_1707,BgL_kz00_1719); } } } } } } } } } } 
BgL_arg3468z00_1228 = 
PROCEDURE_ENTRY(BgL_method2828z00_1695)(BgL_method2828z00_1695, 
(obj_t)(BgL_arg3472z00_1229), BEOA); } } 
return 
BGl_assignzd2typezd2zzsaw_extratypez00(
(obj_t)(BgL_arg3467z00_1227), BgL_arg3468z00_1228);} } } 
}



/* typecheck-let-var2834 */
obj_t BGl_typecheckzd2letzd2var2834z00zzsaw_extratypez00(obj_t BgL_envz00_2517, obj_t BgL_ez00_2518)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 66 */
{ 
BgL_letzd2varzd2_bglt BgL_ez00_1206;
BgL_ez00_1206 = 
(BgL_letzd2varzd2_bglt)(BgL_ez00_2518); 
{ 
obj_t BgL_l2768z00_1210;
{ /* ./SawMill/extratype.scm 68 */
obj_t BgL_arg3434z00_1212;
BgL_arg3434z00_1212 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_ez00_1206))->BgL_bindingsz00); 
BgL_l2768z00_1210 = BgL_arg3434z00_1212; 
BgL_forzd2each2769zd2_1211:
{ /* ./SawMill/extratype.scm 68 */
bool_t BgL_test3437z00_1213;
BgL_test3437z00_1213 = 
PAIRP(BgL_l2768z00_1210); 
if(BgL_test3437z00_1213)
{ /* ./SawMill/extratype.scm 68 */
{ /* ./SawMill/extratype.scm 68 */
obj_t BgL_bz00_1214;
BgL_bz00_1214 = 
CAR(BgL_l2768z00_1210); 
{ /* ./SawMill/extratype.scm 68 */
obj_t BgL_arg3439z00_1215;obj_t BgL_arg3440z00_1216;
BgL_arg3439z00_1215 = 
CAR(BgL_bz00_1214); 
{ /* ./SawMill/extratype.scm 68 */
obj_t BgL_arg3444z00_1217;
BgL_arg3444z00_1217 = 
CDR(BgL_bz00_1214); 
{ /* ./SawMill/extratype.scm 68 */
BgL_nodez00_bglt BgL_ez00_1638;
BgL_ez00_1638 = 
(BgL_nodez00_bglt)(BgL_arg3444z00_1217); 
{ /* ./SawMill/extratype.scm 68 */
obj_t BgL_method2828z00_1639;
{ /* ./SawMill/extratype.scm 68 */
BgL_objectz00_bglt BgL_objz00_1640;
BgL_objz00_1640 = 
(BgL_objectz00_bglt)(BgL_ez00_1638); 
{ /* ./SawMill/extratype.scm 68 */
long BgL_objzd2classzd2numz00_1641;
BgL_objzd2classzd2numz00_1641 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1640); 
{ /* ./SawMill/extratype.scm 68 */
obj_t BgL_arg2017z00_1642;
{ /* ./SawMill/extratype.scm 68 */
int BgL_auxz00_3696;
BgL_auxz00_3696 = 
(int)(((long)1)); 
BgL_arg2017z00_1642 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3696); } 
{ /* ./SawMill/extratype.scm 68 */
int BgL_offsetz00_1645;
BgL_offsetz00_1645 = 
(int)(BgL_objzd2classzd2numz00_1641); 
{ /* ./SawMill/extratype.scm 68 */
long BgL_offsetz00_1646;
{ /* ./SawMill/extratype.scm 68 */
long BgL_auxz00_3700;
BgL_auxz00_3700 = 
(long)(BgL_offsetz00_1645); 
BgL_offsetz00_1646 = 
(BgL_auxz00_3700-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 68 */
long BgL_modz00_1647;
{ /* ./SawMill/extratype.scm 68 */
int BgL_arg2028z00_1648;
BgL_arg2028z00_1648 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 68 */
long BgL_n2z00_1656;
BgL_n2z00_1656 = 
(long)(BgL_arg2028z00_1648); 
BgL_modz00_1647 = 
(BgL_offsetz00_1646/BgL_n2z00_1656); } } 
{ /* ./SawMill/extratype.scm 68 */
long BgL_restz00_1649;
{ /* ./SawMill/extratype.scm 68 */
int BgL_arg2024z00_1650;
BgL_arg2024z00_1650 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 68 */
long BgL_n2z00_1659;
BgL_n2z00_1659 = 
(long)(BgL_arg2024z00_1650); 
BgL_restz00_1649 = 
(BgL_offsetz00_1646%BgL_n2z00_1659); } } 
{ /* ./SawMill/extratype.scm 68 */

{ /* ./SawMill/extratype.scm 68 */
obj_t BgL_bucketz00_1651;
{ /* ./SawMill/extratype.scm 68 */
int BgL_kz00_1661;
BgL_kz00_1661 = 
(int)(BgL_modz00_1647); 
BgL_bucketz00_1651 = 
VECTOR_REF(BgL_arg2017z00_1642,BgL_kz00_1661); } 
{ /* ./SawMill/extratype.scm 68 */
int BgL_kz00_1663;
BgL_kz00_1663 = 
(int)(BgL_restz00_1649); 
BgL_method2828z00_1639 = 
VECTOR_REF(BgL_bucketz00_1651,BgL_kz00_1663); } } } } } } } } } } 
BgL_arg3440z00_1216 = 
PROCEDURE_ENTRY(BgL_method2828z00_1639)(BgL_method2828z00_1639, 
(obj_t)(BgL_ez00_1638), BEOA); } } } 
BGl_assignzd2typezd2varz00zzsaw_extratypez00(BgL_arg3439z00_1215, BgL_arg3440z00_1216); } } 
{ /* ./SawMill/extratype.scm 68 */
obj_t BgL_arg3449z00_1218;
BgL_arg3449z00_1218 = 
CDR(BgL_l2768z00_1210); 
{ 
obj_t BgL_l2768z00_3718;
BgL_l2768z00_3718 = BgL_arg3449z00_1218; 
BgL_l2768z00_1210 = BgL_l2768z00_3718; 
goto BgL_forzd2each2769zd2_1211;} } }  else 
{ /* ./SawMill/extratype.scm 68 */((bool_t)1); } } } } 
{ /* ./SawMill/extratype.scm 70 */
obj_t BgL_arg3454z00_1219;
{ /* ./SawMill/extratype.scm 70 */
BgL_nodez00_bglt BgL_arg3457z00_1220;
BgL_arg3457z00_1220 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_ez00_1206))->BgL_bodyz00); 
{ /* ./SawMill/extratype.scm 70 */
obj_t BgL_method2828z00_1667;
{ /* ./SawMill/extratype.scm 70 */
BgL_objectz00_bglt BgL_objz00_1668;
BgL_objz00_1668 = 
(BgL_objectz00_bglt)(BgL_arg3457z00_1220); 
{ /* ./SawMill/extratype.scm 70 */
long BgL_objzd2classzd2numz00_1669;
BgL_objzd2classzd2numz00_1669 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1668); 
{ /* ./SawMill/extratype.scm 70 */
obj_t BgL_arg2017z00_1670;
{ /* ./SawMill/extratype.scm 70 */
int BgL_auxz00_3722;
BgL_auxz00_3722 = 
(int)(((long)1)); 
BgL_arg2017z00_1670 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3722); } 
{ /* ./SawMill/extratype.scm 70 */
int BgL_offsetz00_1673;
BgL_offsetz00_1673 = 
(int)(BgL_objzd2classzd2numz00_1669); 
{ /* ./SawMill/extratype.scm 70 */
long BgL_offsetz00_1674;
{ /* ./SawMill/extratype.scm 70 */
long BgL_auxz00_3726;
BgL_auxz00_3726 = 
(long)(BgL_offsetz00_1673); 
BgL_offsetz00_1674 = 
(BgL_auxz00_3726-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 70 */
long BgL_modz00_1675;
{ /* ./SawMill/extratype.scm 70 */
int BgL_arg2028z00_1676;
BgL_arg2028z00_1676 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 70 */
long BgL_n2z00_1684;
BgL_n2z00_1684 = 
(long)(BgL_arg2028z00_1676); 
BgL_modz00_1675 = 
(BgL_offsetz00_1674/BgL_n2z00_1684); } } 
{ /* ./SawMill/extratype.scm 70 */
long BgL_restz00_1677;
{ /* ./SawMill/extratype.scm 70 */
int BgL_arg2024z00_1678;
BgL_arg2024z00_1678 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 70 */
long BgL_n2z00_1687;
BgL_n2z00_1687 = 
(long)(BgL_arg2024z00_1678); 
BgL_restz00_1677 = 
(BgL_offsetz00_1674%BgL_n2z00_1687); } } 
{ /* ./SawMill/extratype.scm 70 */

{ /* ./SawMill/extratype.scm 70 */
obj_t BgL_bucketz00_1679;
{ /* ./SawMill/extratype.scm 70 */
int BgL_kz00_1689;
BgL_kz00_1689 = 
(int)(BgL_modz00_1675); 
BgL_bucketz00_1679 = 
VECTOR_REF(BgL_arg2017z00_1670,BgL_kz00_1689); } 
{ /* ./SawMill/extratype.scm 70 */
int BgL_kz00_1691;
BgL_kz00_1691 = 
(int)(BgL_restz00_1677); 
BgL_method2828z00_1667 = 
VECTOR_REF(BgL_bucketz00_1679,BgL_kz00_1691); } } } } } } } } } } 
BgL_arg3454z00_1219 = 
PROCEDURE_ENTRY(BgL_method2828z00_1667)(BgL_method2828z00_1667, 
(obj_t)(BgL_arg3457z00_1220), BEOA); } } 
return 
BGl_assignzd2typezd2zzsaw_extratypez00(
(obj_t)(BgL_ez00_1206), BgL_arg3454z00_1219);} } } 
}



/* typecheck-var2832 */
obj_t BGl_typecheckzd2var2832zd2zzsaw_extratypez00(obj_t BgL_envz00_2519, obj_t BgL_ez00_2520)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 63 */
{ 
BgL_varz00_bglt BgL_ez00_1201;
{ /* ./SawMill/extratype.scm 64 */
BgL_typez00_bglt BgL_auxz00_3745;
BgL_ez00_1201 = 
(BgL_varz00_bglt)(BgL_ez00_2520); 
BgL_auxz00_3745 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_ez00_1201)); 
return 
(obj_t)(BgL_auxz00_3745);} } } 
}



/* typecheck-atom2830 */
obj_t BGl_typecheckzd2atom2830zd2zzsaw_extratypez00(obj_t BgL_envz00_2521, obj_t BgL_ez00_2522)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 60 */
{ 
BgL_atomz00_bglt BgL_ez00_1196;
{ /* ./SawMill/extratype.scm 61 */
BgL_typez00_bglt BgL_auxz00_3750;
BgL_ez00_1196 = 
(BgL_atomz00_bglt)(BgL_ez00_2522); 
BgL_auxz00_3750 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_ez00_1196)); 
return 
(obj_t)(BgL_auxz00_3750);} } } 
}



/* typecheck */
obj_t BGl_typecheckz00zzsaw_extratypez00(BgL_nodez00_bglt BgL_ez00_7)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 58 */
{ /* ./SawMill/extratype.scm 58 */
obj_t BgL_method2828z00_2421;
{ /* ./SawMill/extratype.scm 58 */
BgL_objectz00_bglt BgL_objz00_2422;
BgL_objz00_2422 = 
(BgL_objectz00_bglt)(BgL_ez00_7); 
{ /* ./SawMill/extratype.scm 58 */
long BgL_objzd2classzd2numz00_2423;
BgL_objzd2classzd2numz00_2423 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2422); 
{ /* ./SawMill/extratype.scm 58 */
obj_t BgL_arg2017z00_2424;
{ /* ./SawMill/extratype.scm 58 */
int BgL_auxz00_3757;
BgL_auxz00_3757 = 
(int)(((long)1)); 
BgL_arg2017z00_2424 = 
PROCEDURE_REF(BGl_typecheckzd2envzd2zzsaw_extratypez00, BgL_auxz00_3757); } 
{ /* ./SawMill/extratype.scm 58 */
int BgL_offsetz00_2427;
BgL_offsetz00_2427 = 
(int)(BgL_objzd2classzd2numz00_2423); 
{ /* ./SawMill/extratype.scm 58 */
long BgL_offsetz00_2428;
{ /* ./SawMill/extratype.scm 58 */
long BgL_auxz00_3761;
BgL_auxz00_3761 = 
(long)(BgL_offsetz00_2427); 
BgL_offsetz00_2428 = 
(BgL_auxz00_3761-OBJECT_TYPE); } 
{ /* ./SawMill/extratype.scm 58 */
long BgL_modz00_2429;
{ /* ./SawMill/extratype.scm 58 */
int BgL_arg2028z00_2430;
BgL_arg2028z00_2430 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 58 */
long BgL_n2z00_2438;
BgL_n2z00_2438 = 
(long)(BgL_arg2028z00_2430); 
BgL_modz00_2429 = 
(BgL_offsetz00_2428/BgL_n2z00_2438); } } 
{ /* ./SawMill/extratype.scm 58 */
long BgL_restz00_2431;
{ /* ./SawMill/extratype.scm 58 */
int BgL_arg2024z00_2432;
BgL_arg2024z00_2432 = 
(int)(((long)8)); 
{ /* ./SawMill/extratype.scm 58 */
long BgL_n2z00_2441;
BgL_n2z00_2441 = 
(long)(BgL_arg2024z00_2432); 
BgL_restz00_2431 = 
(BgL_offsetz00_2428%BgL_n2z00_2441); } } 
{ /* ./SawMill/extratype.scm 58 */

{ /* ./SawMill/extratype.scm 58 */
obj_t BgL_bucketz00_2433;
{ /* ./SawMill/extratype.scm 58 */
int BgL_kz00_2443;
BgL_kz00_2443 = 
(int)(BgL_modz00_2429); 
BgL_bucketz00_2433 = 
VECTOR_REF(BgL_arg2017z00_2424,BgL_kz00_2443); } 
{ /* ./SawMill/extratype.scm 58 */
int BgL_kz00_2445;
BgL_kz00_2445 = 
(int)(BgL_restz00_2431); 
BgL_method2828z00_2421 = 
VECTOR_REF(BgL_bucketz00_2433,BgL_kz00_2445); } } } } } } } } } } 
return 
PROCEDURE_ENTRY(BgL_method2828z00_2421)(BgL_method2828z00_2421, 
(obj_t)(BgL_ez00_7), BEOA);} } 
}



/* _typecheck4018 */
obj_t BGl__typecheck4018z00zzsaw_extratypez00(obj_t BgL_envz00_2451, obj_t BgL_ez00_2452)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 58 */
return 
BGl_typecheckz00zzsaw_extratypez00(
(BgL_nodez00_bglt)(BgL_ez00_2452));} 
}



/* typecheck-default2827 */
obj_t BGl_typecheckzd2default2827zd2zzsaw_extratypez00(BgL_nodez00_bglt BgL_ez00_8)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 1 */
{ /* ./SawMill/extratype.scm 1 */
obj_t BgL_procz00_2446;obj_t BgL_objectz00_2448;
BgL_procz00_2446 = 
CNST_TABLE_REF(((long)15)); 
BgL_objectz00_2448 = 
(obj_t)(BgL_ez00_8); 
FAILURE(BgL_procz00_2446,BGl_string4595z00zzsaw_extratypez00,BgL_objectz00_2448);} } 
}



/* _typecheck-default2827 */
obj_t BGl__typecheckzd2default2827zd2zzsaw_extratypez00(obj_t BgL_envz00_2523, obj_t BgL_ez00_2524)
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 1 */
return 
BGl_typecheckzd2default2827zd2zzsaw_extratypez00(
(BgL_nodez00_bglt)(BgL_ez00_2524));} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzsaw_extratypez00()
{ AN_OBJECT;
{ /* ./SawMill/extratype.scm 1 */
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "saw_extratype"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "saw_extratype"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "saw_extratype"); 
BGl_modulezd2initializa7ationz75zztype_typeofz00(((long)852), "saw_extratype"); 
BGl_modulezd2initializa7ationz75zztype_envz00(((long)25186), "saw_extratype"); 
BGl_modulezd2initializa7ationz75zzmodule_modulez00(((long)8699), "saw_extratype"); 
return 
BGl_modulezd2initializa7ationz75zztools_shapez00(((long)30833), "saw_extratype");} 
}

