/*===========================================================================*/
/*   (Cfa/specialize.scm)                                                    */
/*   Bigloo (2.6b)                                                           */
/*   Inria -- Sophia Antipolis (c)       Mon Dec 15 12:14:36 CET 2003        */
/*===========================================================================*/
/* COMPILATION: (/users/serrano/prgm/project/bigloo/bin/bigloo -q -afile .afile -fsharing -fno-reflection -cc gcc-2.95 -lib-dir /users/serrano/prgm/project/bigloo/lib/2.6b -unsafev -no-hello -O2 -rm -unsafe -s -indent Cfa/specialize.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_isfunz00_bgl {
   struct BgL_nodez00_bgl * BgL_originalzd2bodyzd2;
   obj_t BgL_recursivezd2callszd2;
} *BgL_isfunz00_bglt;

typedef struct BgL_specializa7edzd2globalz75_bgl {
   obj_t BgL_fixz00;
} *BgL_specializa7edzd2globalz75_bglt;


extern obj_t BGl_za2charza2z00zztype_cachez00;
static obj_t BGl_patchz12zd2var2882zc0zzcfa_specializa7eza7(obj_t, obj_t);
static obj_t BGl_methodzd2initzd2zzcfa_specializa7eza7();
static BgL_appz00_bglt BGl_specializa7ezd2eqzf3z86zzcfa_specializa7eza7(BgL_appz00_bglt);
BGL_IMPORT obj_t open_input_string(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_patchz12zd2sequence2886zc0zzcfa_specializa7eza7(obj_t, obj_t);
extern obj_t BGl_findzd2globalzf2modulez20zzast_envz00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
BGL_EXPORTED_DECL obj_t BGl_specializa7ez12zb5zzcfa_specializa7eza7(obj_t);
BGL_IMPORT bool_t BGl_iszd2azf3z21zz__objectz00(obj_t, obj_t);
static obj_t BGl_patchz12zd2setq2896zc0zzcfa_specializa7eza7(obj_t, obj_t);
BGL_IMPORT obj_t BGl_objectzd2ze3structz31zz__objectz00(BgL_objectz00_bglt);
static obj_t BGl_structzb2objectzd2ze3objectzd2specializa7edzd2global2924z24zzcfa_specializa7eza7(obj_t, obj_t, obj_t);
BGL_IMPORT obj_t BGl_addzd2genericz12zc0zz__objectz00(obj_t, obj_t);
extern obj_t BGl_letzd2varzd2zzast_nodez00;
BGL_EXPORTED_DECL obj_t BGl_arithmeticzd2operatorzf3z21zzcfa_specializa7eza7(BgL_globalz00_bglt);
static obj_t BGl_specializa7edzd2globalz75zzcfa_specializa7eza7 = BUNSPEC;
BGL_IMPORT obj_t BGl_registerzd2classz12zc0zz__objectz00(obj_t, obj_t, obj_t, obj_t, long, obj_t, obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_arithmeticzd2speczd2typesz00zzcfa_specializa7eza7(BgL_globalz00_bglt);
static bool_t BGl_showzd2specializa7ez75zzcfa_specializa7eza7();
static obj_t BGl_uninstallzd2specializa7esz12z67zzcfa_specializa7eza7();
extern bool_t BGl_bigloozd2typezf3z21zztype_typez00(BgL_typez00_bglt);
extern obj_t BGl_kwotez00zzast_nodez00;
static obj_t BGl_addzd2specializa7edzd2eqzd2typez12z67zzcfa_specializa7eza7(obj_t);
static obj_t BGl_za2boxedzd2eqzf3za2z21zzcfa_specializa7eza7 = BUNSPEC;
static obj_t BGl_installzd2specializa7edzd2typez12zb5zzcfa_specializa7eza7(obj_t);
extern obj_t BGl_za2targetzd2languageza2zd2zzengine_paramz00;
extern obj_t BGl_globalz00zzast_varz00;
static obj_t BGl_patchza2z12zb0zzcfa_specializa7eza7(obj_t);
BGL_IMPORT obj_t BGl_za2classesza2z00zz__objectz00;
extern BgL_typez00_bglt BGl_typeofz00zztype_typeofz00(BgL_nodez00_bglt);
static obj_t BGl_patchz12zd2extern2892zc0zzcfa_specializa7eza7(obj_t, obj_t);
static obj_t BGl_za2specializa7edzd2eqzd2typesza2za7zzcfa_specializa7eza7 = BUNSPEC;
extern obj_t BGl_typez00zztype_typez00;
static obj_t BGl_patchz12zd2kwote2880zc0zzcfa_specializa7eza7(obj_t, obj_t);
extern obj_t BGl_za2libzd2modeza2zd2zzengine_paramz00;
static obj_t BGl_za2specializa7ationsza2za7zzcfa_specializa7eza7 = BUNSPEC;
BGL_IMPORT obj_t BGl_assqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
extern obj_t BGl_castz00zzast_nodez00;
extern obj_t BGl_boxzd2refzd2zzast_nodez00;
extern obj_t BGl_varz00zzast_nodez00;
static obj_t BGl_patchz12zd2atom2878zc0zzcfa_specializa7eza7(obj_t, obj_t);
static obj_t BGl_cnstzd2initzd2zzcfa_specializa7eza7();
extern obj_t BGl_atomz00zzast_nodez00;
extern obj_t BGl_failz00zzast_nodez00;
extern obj_t BGl_funcallz00zzast_nodez00;
static obj_t BGl_objectzd2ze3structzd2specializa7edzd2global2922z96zzcfa_specializa7eza7(obj_t, obj_t);
static obj_t BGl_patchz12z12zzcfa_specializa7eza7(BgL_nodez00_bglt);
static obj_t BGl_addzd2specializa7edzd2typez12zb5zzcfa_specializa7eza7(obj_t);
extern obj_t BGl_za2bintza2z00zztype_cachez00;
static obj_t BGl_patchz12zd2default2875zc0zzcfa_specializa7eza7(BgL_nodez00_bglt);
static obj_t BGl_importedzd2moduleszd2initz00zzcfa_specializa7eza7();
static obj_t BGl_patchz12zd2letzd2var2908z12zzcfa_specializa7eza7(obj_t, obj_t);
extern obj_t BGl_makezd2boxzd2zzast_nodez00;
BGL_IMPORT obj_t make_struct(obj_t, int, obj_t);
static obj_t BGl_patchz12zd2setzd2exzd2it2910zc0zzcfa_specializa7eza7(obj_t, obj_t);
BGL_IMPORT obj_t BGl_addzd2methodz12zc0zz__objectz00(obj_t, obj_t, obj_t);
extern obj_t BGl_selectz00zzast_nodez00;
static obj_t BGl_patchz12zd2letzd2fun2906z12zzcfa_specializa7eza7(obj_t, obj_t);
static obj_t BGl_toplevelzd2initzd2zzcfa_specializa7eza7();
extern obj_t BGl_appzd2lyzd2zzast_nodez00;
extern obj_t BGl_boxzd2setz12zc0zzast_nodez00;
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzcfa_specializa7eza7(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_tracez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typeofz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_speekz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_errorz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_envz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzinline_inlinez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzinline_walkz00(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 *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(long, char *);
static obj_t BGl_patchzd2funz12zc0zzcfa_specializa7eza7(obj_t);
static obj_t BGl_patchz12zd2app2920zc0zzcfa_specializa7eza7(obj_t, obj_t);
extern obj_t BGl_verbosez00zztools_speekz00(obj_t, obj_t);
extern obj_t BGl_findzd2globalzd2zzast_envz00(obj_t, obj_t);
static obj_t BGl_patchz12zd2fail2901zc0zzcfa_specializa7eza7(obj_t, obj_t);
static obj_t BGl_patchz12zd2makezd2box2914z12zzcfa_specializa7eza7(obj_t, obj_t);
extern obj_t BGl_za2brealza2z00zztype_cachez00;
static obj_t BGl_patchz12zd2closure2884zc0zzcfa_specializa7eza7(obj_t, obj_t);
extern obj_t BGl_za2longza2z00zztype_cachez00;
static obj_t BGl_patchz12zd2funcall2890zc0zzcfa_specializa7eza7(obj_t, obj_t);
extern obj_t BGl_za2intza2z00zztype_cachez00;
extern obj_t BGl_setzd2exzd2itz00zzast_nodez00;
BGL_IMPORT BgL_objectz00_bglt BGl_structzb2objectzd2ze3objectz83zz__objectz00(BgL_objectz00_bglt, obj_t);
static obj_t BGl__arithmeticzd2speczd2typesz00zzcfa_specializa7eza7(obj_t, obj_t);
extern obj_t BGl_shapez00zztools_shapez00(obj_t);
extern obj_t BGl_za2bcharza2z00zztype_cachez00;
static bool_t BGl_specializa7ezd2optimiza7ationzf3z21zzcfa_specializa7eza7();
BGL_IMPORT obj_t BGl_memqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
static obj_t BGl_patchz12zd2conditional2899zc0zzcfa_specializa7eza7(obj_t, obj_t);
static obj_t BGl_patchz12zd2jumpzd2exzd2it2912zc0zzcfa_specializa7eza7(obj_t, obj_t);
extern obj_t BGl_cfunz00zzast_varz00;
extern obj_t BGl_jumpzd2exzd2itz00zzast_nodez00;
extern obj_t BGl_za2optimza2z00zzengine_paramz00;
static obj_t BGl_installzd2specializa7ez12z67zzcfa_specializa7eza7(obj_t, obj_t);
static BgL_appz00_bglt BGl_specializa7ezd2appz12z67zzcfa_specializa7eza7(BgL_appz00_bglt);
extern obj_t BGl_externz00zzast_nodez00;
static obj_t BGl__allocatezd2specializa7edzd2globalza7zzcfa_specializa7eza7(obj_t);
extern obj_t BGl_conditionalz00zzast_nodez00;
static obj_t BGl_za2specializa7edzd2typesza2z75zzcfa_specializa7eza7 = BUNSPEC;
extern obj_t BGl_sequencez00zzast_nodez00;
static obj_t BGl_patchz12zd2appzd2ly2888z12zzcfa_specializa7eza7(obj_t, obj_t);
static obj_t BGl__patchz12zd2default2875zc0zzcfa_specializa7eza7(obj_t, obj_t);
extern obj_t BGl_internalzd2errorzd2zztools_errorz00(obj_t, obj_t, obj_t);
extern obj_t BGl_appz00zzast_nodez00;
static obj_t BGl__arithmeticzd2operatorzf3z21zzcfa_specializa7eza7(obj_t, obj_t);
static obj_t BGl__specializa7ez12zb5zzcfa_specializa7eza7(obj_t, obj_t);
static obj_t BGl_patchz12zd2select2903zc0zzcfa_specializa7eza7(obj_t, obj_t);
extern obj_t BGl_localz00zzast_varz00;
extern obj_t BGl_closurez00zzast_nodez00;
static obj_t BGl_patchz12zd2cast2894zc0zzcfa_specializa7eza7(obj_t, obj_t);
extern obj_t BGl_za2objza2z00zztype_cachez00;
BGL_IMPORT obj_t BGl_warningz00zz__errorz00(obj_t);
static obj_t BGl_objectzd2initzd2zzcfa_specializa7eza7();
static obj_t BGl_requirezd2initializa7ationz75zzcfa_specializa7eza7 = BUNSPEC;
extern obj_t BGl_za2realza2z00zztype_cachez00;
static obj_t BGl_za2specializa7eza2za7zzcfa_specializa7eza7 = BUNSPEC;
BGL_IMPORT obj_t BGl_classzd2superzd2zz__objectz00(obj_t);
static obj_t BGl_libraryzd2moduleszd2initz00zzcfa_specializa7eza7();
static bool_t BGl_patchzd2treez12zc0zzcfa_specializa7eza7(obj_t);
static obj_t BGl__patchz124295z12zzcfa_specializa7eza7(obj_t, obj_t);
static obj_t BGl_patchz12zd2boxzd2ref2918z12zzcfa_specializa7eza7(obj_t, obj_t);
static obj_t BGl_za2czd2eqzf3za2z21zzcfa_specializa7eza7 = BUNSPEC;
static obj_t BGl_patchz12zd2boxzd2setz122916z00zzcfa_specializa7eza7(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[ 10 ] ;


DEFINE_STRING( BGl_string4919z00zzcfa_specializa7eza7, BgL_bgl_string4919za700za7za7cfa_specializa7a7eza7a74952za7, "patch!-default2875 specialized-global (jvm .net) done c-eq? c-boxed-eq? foreign __r4_numbers_6_5_flonum __r4_numbers_6_5_fixnum ((c-eq? (c-eq? foreign) (=fx __r4_numbers_6_5_fixnum) (=fl __r4_numbers_6_5_flonum)) (2= (2= __r4_numbers_6_5) (=fx __r4_numbers_6_5_fixnum) (=fl __r4_numbers_6_5_flonum)) (2< (2< __r4_numbers_6_5) (<fx __r4_numbers_6_5_fixnum) (<fl __r4_numbers_6_5_flonum)) (2> (2> __r4_numbers_6_5) (>fx __r4_numbers_6_5_fixnum) (>fl __r4_numbers_6_5_flonum)) (2<= (2<= __r4_numbers_6_5) (<=fx __r4_numbers_6_5_fixnum) (<=fl __r4_numbers_6_5_flonum)) (2>= (2>= __r4_numbers_6_5) (>=fx __r4_numbers_6_5_fixnum) (>=fl __r4_numbers_6_5_flonum)) (zero? (zero? __r4_numbers_6_5) (zerofx? __r4_numbers_6_5_fixnum) (zerofl? __r4_numbers_6_5_flonum)) (positive? (positive? __r4_numbers_6_5) (positivefx? __r4_numbers_6_5_fixnum) (positivefl? __r4_numbers_6_5_flonum)) (negative? (negative? __r4_numbers_6_5) (negativefx? __r4_numbers_6_5_fixnum) (negativefl? __r4_numbers_6_5_flonum)) (2+ (2+ __r4_numbers_6_5) (+fx __"
"r4_numbers_6_5_fixnum) (+fl __r4_numbers_6_5_flonum)) (2- (2- __r4_numbers_6_5) (-fx __r4_numbers_6_5_fixnum) (-fl __r4_numbers_6_5_flonum)) (2* (2* __r4_numbers_6_5) (*fx __r4_numbers_6_5_fixnum) (*fl __r4_numbers_6_5_flonum)) (2/ (2/ __r4_numbers_6_5) (/fl __r4_numbers_6_5_flonum)) (abs (abs __r4_numbers_6_5) (absfx __r4_numbers_6_5_fixnum) (absfl __r4_numbers_6_5_flonum)) (log (log __r4_numbers_6_5) (logfl __r4_numbers_6_5_flonum)) (exp (exp __r4_numbers_6_5) (expfl __r4_numbers_6_5_flonum)) (sin (sin __r4_numbers_6_5) (sinfl __r4_numbers_6_5_flonum)) (cos (cos __r4_numbers_6_5) (cosfl __r4_numbers_6_5_flonum)) (tan (tan __r4_numbers_6_5) (tanfl __r4_numbers_6_5_flonum)) (atan (atan __r4_numbers_6_5) (atanfl __r4_numbers_6_5_flonum)) (asin (asin __r4_numbers_6_5) (asinfl __r4_numbers_6_5_flonum)) (acos (acos __r4_numbers_6_5) (acosfl __r4_numbers_6_5_flonum)) (sqrt (sqrt __r4_numbers_6_5) (sqrtfl __r4_numbers_6_5_flonum))) ", 1964 );
DEFINE_STRING( BGl_string4918z00zzcfa_specializa7eza7, BgL_bgl_string4918za700za7za7cfa_specializa7a7eza7a74953za7, "No method for this object", 25 );
DEFINE_STRING( BGl_string4917z00zzcfa_specializa7eza7, BgL_bgl_string4917za700za7za7cfa_specializa7a7eza7a74954za7, "Unexpected closure", 18 );
DEFINE_STRING( BGl_string4916z00zzcfa_specializa7eza7, BgL_bgl_string4916za700za7za7cfa_specializa7a7eza7a74955za7, "patch!", 6 );
DEFINE_STRING( BGl_string4892z00zzcfa_specializa7eza7, BgL_bgl_string4892za700za7za7cfa_specializa7a7eza7a74956za7, "install-specialize!", 19 );
DEFINE_STRING( BGl_string4891z00zzcfa_specializa7eza7, BgL_bgl_string4891za700za7za7cfa_specializa7a7eza7a74957za7, "Can't find global", 17 );
DEFINE_STRING( BGl_string4890z00zzcfa_specializa7eza7, BgL_bgl_string4890za700za7za7cfa_specializa7a7eza7a74958za7, " -- ", 4 );
DEFINE_STRING( BGl_string4889z00zzcfa_specializa7eza7, BgL_bgl_string4889za700za7za7cfa_specializa7a7eza7a74959za7, "Illegal argument", 16 );
DEFINE_STRING( BGl_string4888z00zzcfa_specializa7eza7, BgL_bgl_string4888za700za7za7cfa_specializa7a7eza7a74960za7, "install-specialize", 18 );
DEFINE_STRING( BGl_string4887z00zzcfa_specializa7eza7, BgL_bgl_string4887za700za7za7cfa_specializa7a7eza7a74961za7, "Unspecialized type", 18 );
DEFINE_STRING( BGl_string4886z00zzcfa_specializa7eza7, BgL_bgl_string4886za700za7za7cfa_specializa7a7eza7a74962za7, "add-specialized-type!", 21 );
DEFINE_STRING( BGl_string4885z00zzcfa_specializa7eza7, BgL_bgl_string4885za700za7za7cfa_specializa7a7eza7a74963za7, "        (eq? ", 13 );
DEFINE_STRING( BGl_string4884z00zzcfa_specializa7eza7, BgL_bgl_string4884za700za7za7cfa_specializa7a7eza7a74964za7, "        (-> ", 12 );
DEFINE_STRING( BGl_string4883z00zzcfa_specializa7eza7, BgL_bgl_string4883za700za7za7cfa_specializa7a7eza7a74965za7, ": ", 2 );
DEFINE_STRING( BGl_string4882z00zzcfa_specializa7eza7, BgL_bgl_string4882za700za7za7cfa_specializa7a7eza7a74966za7, ")\n", 2 );
DEFINE_STRING( BGl_string4881z00zzcfa_specializa7eza7, BgL_bgl_string4881za700za7za7cfa_specializa7a7eza7a74967za7, "   . specializing", 17 );
DEFINE_STRING( BGl_string4880z00zzcfa_specializa7eza7, BgL_bgl_string4880za700za7za7cfa_specializa7a7eza7a74968za7, "Null specification for", 22 );
DEFINE_STRING( BGl_string4879z00zzcfa_specializa7eza7, BgL_bgl_string4879za700za7za7cfa_specializa7a7eza7a74969za7, "arithmetic-spec-types", 21 );
BGL_IMPORT obj_t BGl_objectzd2ze3structzd2envze3zz__objectz00;
DEFINE_EXPORT_PROCEDURE( BGl_arithmeticzd2speczd2typeszd2envzd2zzcfa_specializa7eza7, BgL_bgl__arithmeticza7d2specza7d2typesza700za7za7cfa_specializa7a7eza7a74970za7, BGl__arithmeticzd2speczd2typesz00zzcfa_specializa7eza7, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_arithmeticzd2operatorzf3zd2envzf3zzcfa_specializa7eza7, BgL_bgl__arithmeticza7d2operatorza7f3za721za7za7cfa_specializa7a7eza7a74971za7, BGl__arithmeticzd2operatorzf3z21zzcfa_specializa7eza7, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_specializa7ez12zd2envz67zzcfa_specializa7eza7, BgL_bgl__specializa7a7eza712za7b5za7za7cfa_specializa7a7eza7a74972za7, BGl__specializa7ez12zb5zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_patchz12zd2default2875zd2envz12zzcfa_specializa7eza7, BgL_bgl__patchza712za7d2default2875za7c0za7za7cfa_specializa7a7eza7a74973za7, BGl__patchz12zd2default2875zc0zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4900z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2extern2892za7c0za7za7cfa_specializa7a7eza7a74974za7, BGl_patchz12zd2extern2892zc0zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4901z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2cast2894za7c0za7za7cfa_specializa7a7eza7a74975za7, BGl_patchz12zd2cast2894zc0zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4902z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2setq2896za7c0za7za7cfa_specializa7a7eza7a74976za7, BGl_patchz12zd2setq2896zc0zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4903z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2conditional2899za7c0za7za7cfa_specializa7a7eza7a74977za7, BGl_patchz12zd2conditional2899zc0zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4893z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2atom2878za7c0za7za7cfa_specializa7a7eza7a74978za7, BGl_patchz12zd2atom2878zc0zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4904z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2fail2901za7c0za7za7cfa_specializa7a7eza7a74979za7, BGl_patchz12zd2fail2901zc0zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4894z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2kwote2880za7c0za7za7cfa_specializa7a7eza7a74980za7, BGl_patchz12zd2kwote2880zc0zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4905z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2select2903za7c0za7za7cfa_specializa7a7eza7a74981za7, BGl_patchz12zd2select2903zc0zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4895z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2var2882za7c0za7za7cfa_specializa7a7eza7a74982za7, BGl_patchz12zd2var2882zc0zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4906z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2letza7d2fun2906za712za7za7cfa_specializa7a7eza7a74983z00, BGl_patchz12zd2letzd2fun2906z12zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4896z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2closure2884za7c0za7za7cfa_specializa7a7eza7a74984za7, BGl_patchz12zd2closure2884zc0zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4907z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2letza7d2var2908za712za7za7cfa_specializa7a7eza7a74985z00, BGl_patchz12zd2letzd2var2908z12zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4897z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2sequence2886za7c0za7za7cfa_specializa7a7eza7a74986za7, BGl_patchz12zd2sequence2886zc0zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4908z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2setza7d2exza7d2it2910za7c0za7za7cfa_specializa7a7eza7a74987za7, BGl_patchz12zd2setzd2exzd2it2910zc0zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4898z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2appza7d2ly2888za712za7za7cfa_specializa7a7eza7a74988z00, BGl_patchz12zd2appzd2ly2888z12zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4910z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2makeza7d2box2914za712za7za7cfa_specializa7a7eza7a74989z00, BGl_patchz12zd2makezd2box2914z12zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4909z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2jumpza7d2exza7d2it2912za7c0za7za7cfa_specializa7a7eza7a74990za7, BGl_patchz12zd2jumpzd2exzd2it2912zc0zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4899z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2funcall2890za7c0za7za7cfa_specializa7a7eza7a74991za7, BGl_patchz12zd2funcall2890zc0zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4911z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2boxza7d2setza7122916za700za7za7cfa_specializa7a7eza7a74992za7, BGl_patchz12zd2boxzd2setz122916z00zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4912z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2boxza7d2ref2918za712za7za7cfa_specializa7a7eza7a74993z00, BGl_patchz12zd2boxzd2ref2918z12zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4913z00zzcfa_specializa7eza7, BgL_bgl_patchza712za7d2app2920za7c0za7za7cfa_specializa7a7eza7a74994za7, BGl_patchz12zd2app2920zc0zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4914z00zzcfa_specializa7eza7, BgL_bgl_objectza7d2za7e3structza7d2specializa7a7edza7d2global2922za796za7za7cfa_specializa7a7eza7a74995z00, BGl_objectzd2ze3structzd2specializa7edzd2global2922z96zzcfa_specializa7eza7, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4915z00zzcfa_specializa7eza7, BgL_bgl_structza7b2objectza7d2za7e3objectza7d2specializa7a7edza7d2global2924za724za7za7cfa_specializa7a7eza7a74996za7, BGl_structzb2objectzd2ze3objectzd2specializa7edzd2global2924z24zzcfa_specializa7eza7, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_allocatezd2specializa7edzd2globalzd2envz75zzcfa_specializa7eza7, BgL_bgl__allocateza7d2specializa7a7edza7d2globalza7a7za7za7cfa_specializa7a7eza7a74997z00, BGl__allocatezd2specializa7edzd2globalza7zzcfa_specializa7eza7, 0L, 0 );
DEFINE_STATIC_GENERIC( BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_bgl__patchza7124295za712za7za7cfa_specializa7a7eza7a74998z00, BGl__patchz124295z12zzcfa_specializa7eza7, 0L, 1 );
BGL_IMPORT obj_t BGl_structzb2objectzd2ze3objectzd2envz51zz__objectz00;



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzcfa_specializa7eza7(long BgL_checksumz00_2745, char * BgL_fromz00_2746)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzcfa_specializa7eza7))
{ 
BGl_requirezd2initializa7ationz75zzcfa_specializa7eza7 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzcfa_specializa7eza7(); 
BGl_cnstzd2initzd2zzcfa_specializa7eza7(); 
BGl_importedzd2moduleszd2initz00zzcfa_specializa7eza7(); 
BGl_objectzd2initzd2zzcfa_specializa7eza7(); 
BGl_methodzd2initzd2zzcfa_specializa7eza7(); 
BGl_toplevelzd2initzd2zzcfa_specializa7eza7(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzcfa_specializa7eza7()
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 19 */
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "cfa_specialize"); 
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "cfa_specialize"); 
BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(((long)0), "cfa_specialize"); 
BGl_modulezd2initializa7ationz75zz__errorz00(((long)0), "cfa_specialize"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzcfa_specializa7eza7()
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 19 */
{ /* ./Cfa/specialize.scm 19 */
obj_t BgL_cportz00_2723;
BgL_cportz00_2723 = 
open_input_string(BGl_string4919z00zzcfa_specializa7eza7); 
{ 
long BgL_iz00_2724;
BgL_iz00_2724 = ((long)9); 
BgL_loopz00_2725:
{ /* ./Cfa/specialize.scm 19 */
bool_t BgL_test4921z00_2726;
BgL_test4921z00_2726 = 
(BgL_iz00_2724==((long)-1)); 
if(BgL_test4921z00_2726)
{ /* ./Cfa/specialize.scm 19 */
return BUNSPEC;}  else 
{ /* ./Cfa/specialize.scm 19 */
{ /* ./Cfa/specialize.scm 19 */
obj_t BgL_arg4923z00_2727;
{ /* ./Cfa/specialize.scm 19 */
obj_t BgL_list4926z00_2728;
BgL_list4926z00_2728 = 
MAKE_PAIR(BgL_cportz00_2723, BNIL); 
BgL_arg4923z00_2727 = 
BGl_readz00zz__readerz00(BgL_list4926z00_2728); } 
{ /* ./Cfa/specialize.scm 19 */
int BgL_auxz00_2765;
BgL_auxz00_2765 = 
(int)(BgL_iz00_2724); 
CNST_TABLE_SET(BgL_auxz00_2765, BgL_arg4923z00_2727); } } 
{ /* ./Cfa/specialize.scm 19 */
int BgL_auxz00_2729;
{ /* ./Cfa/specialize.scm 19 */
long BgL_auxz00_2768;
BgL_auxz00_2768 = 
(BgL_iz00_2724-((long)1)); 
BgL_auxz00_2729 = 
(int)(BgL_auxz00_2768); } 
{ 
long BgL_iz00_2771;
BgL_iz00_2771 = 
(long)(BgL_auxz00_2729); 
BgL_iz00_2724 = BgL_iz00_2771; 
goto BgL_loopz00_2725;} } } } } } } 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzcfa_specializa7eza7()
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 19 */
BGl_za2specializa7ationsza2za7zzcfa_specializa7eza7 = 
CNST_TABLE_REF(((long)0)); 
BGl_za2czd2eqzf3za2z21zzcfa_specializa7eza7 = BUNSPEC; 
BGl_za2specializa7eza2za7zzcfa_specializa7eza7 = BNIL; 
BGl_za2specializa7edzd2typesza2z75zzcfa_specializa7eza7 = BNIL; 
BGl_za2specializa7edzd2eqzd2typesza2za7zzcfa_specializa7eza7 = BNIL; 
BGl_za2boxedzd2eqzf3za2z21zzcfa_specializa7eza7 = BUNSPEC; 
return BUNSPEC;} 
}



/* arithmetic-operator? */
BGL_EXPORTED_DEF obj_t BGl_arithmeticzd2operatorzf3z21zzcfa_specializa7eza7(BgL_globalz00_bglt BgL_globalz00_1)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 42 */
{ /* ./Cfa/specialize.scm 44 */
obj_t BgL_cellz00_728;
{ /* ./Cfa/specialize.scm 44 */
obj_t BgL_auxz00_2774;
{ /* ./Cfa/specialize.scm 44 */
BgL_variablez00_bglt BgL_obj1093z00_1571;
BgL_obj1093z00_1571 = 
(BgL_variablez00_bglt)(BgL_globalz00_1); 
BgL_auxz00_2774 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1093z00_1571))->BgL_idz00); } 
BgL_cellz00_728 = 
BGl_assqz00zz__r4_pairs_and_lists_6_3z00(BgL_auxz00_2774, BGl_za2specializa7ationsza2za7zzcfa_specializa7eza7); } 
if(
PAIRP(BgL_cellz00_728))
{ /* ./Cfa/specialize.scm 46 */
bool_t BgL_auxz00_2780;
{ /* ./Cfa/specialize.scm 46 */
obj_t BgL_auxz00_2789;obj_t BgL_auxz00_2781;
BgL_auxz00_2789 = 
(((BgL_globalz00_bglt)CREF(BgL_globalz00_1))->BgL_modulez00); 
{ /* ./Cfa/specialize.scm 46 */
obj_t BgL_auxz00_2782;
{ /* ./Cfa/specialize.scm 46 */
obj_t BgL_auxz00_2783;
{ /* ./Cfa/specialize.scm 46 */
obj_t BgL_auxz00_2784;
BgL_auxz00_2784 = 
CDR(BgL_cellz00_728); 
BgL_auxz00_2783 = 
CAR(BgL_auxz00_2784); } 
BgL_auxz00_2782 = 
CDR(BgL_auxz00_2783); } 
BgL_auxz00_2781 = 
CAR(BgL_auxz00_2782); } 
BgL_auxz00_2780 = 
(BgL_auxz00_2781==BgL_auxz00_2789); } 
return 
BBOOL(BgL_auxz00_2780);}  else 
{ /* ./Cfa/specialize.scm 45 */
return BFALSE;} } } 
}



/* _arithmetic-operator? */
obj_t BGl__arithmeticzd2operatorzf3z21zzcfa_specializa7eza7(obj_t BgL_envz00_2637, obj_t BgL_globalz00_2638)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 42 */
return 
BGl_arithmeticzd2operatorzf3z21zzcfa_specializa7eza7(
(BgL_globalz00_bglt)(BgL_globalz00_2638));} 
}



/* arithmetic-spec-types */
BGL_EXPORTED_DEF obj_t BGl_arithmeticzd2speczd2typesz00zzcfa_specializa7eza7(BgL_globalz00_bglt BgL_globalz00_2)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 55 */
{ /* ./Cfa/specialize.scm 57 */
obj_t BgL_cellz00_735;
{ /* ./Cfa/specialize.scm 57 */
obj_t BgL_auxz00_2795;
{ /* ./Cfa/specialize.scm 57 */
BgL_variablez00_bglt BgL_obj1093z00_1582;
BgL_obj1093z00_1582 = 
(BgL_variablez00_bglt)(BgL_globalz00_2); 
BgL_auxz00_2795 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1093z00_1582))->BgL_idz00); } 
BgL_cellz00_735 = 
BGl_assqz00zz__r4_pairs_and_lists_6_3z00(BgL_auxz00_2795, BGl_za2specializa7ationsza2za7zzcfa_specializa7eza7); } 
{ /* ./Cfa/specialize.scm 58 */
bool_t BgL_test2939z00_736;
BgL_test2939z00_736 = 
PAIRP(BgL_cellz00_735); 
if(BgL_test2939z00_736)
{ 
obj_t BgL_specz00_737;obj_t BgL_typesz00_738;
{ /* ./Cfa/specialize.scm 60 */
obj_t BgL_arg2941z00_740;
{ /* ./Cfa/specialize.scm 60 */
obj_t BgL_auxz00_2801;
BgL_auxz00_2801 = 
CDR(BgL_cellz00_735); 
BgL_arg2941z00_740 = 
CDR(BgL_auxz00_2801); } 
BgL_specz00_737 = BgL_arg2941z00_740; 
BgL_typesz00_738 = BNIL; 
BgL_loopz00_739:
{ /* ./Cfa/specialize.scm 63 */
bool_t BgL_test2945z00_742;
BgL_test2945z00_742 = 
NULLP(BgL_specz00_737); 
if(BgL_test2945z00_742)
{ /* ./Cfa/specialize.scm 63 */
{ /* ./Cfa/specialize.scm 64 */
bool_t BgL_test2946z00_743;
BgL_test2946z00_743 = 
NULLP(BgL_typesz00_738); 
if(BgL_test2946z00_743)
{ /* ./Cfa/specialize.scm 65 */
obj_t BgL_arg2950z00_746;
BgL_arg2950z00_746 = 
BGl_shapez00zztools_shapez00(
(obj_t)(BgL_globalz00_2)); 
return 
BGl_internalzd2errorzd2zztools_errorz00(BGl_string4879z00zzcfa_specializa7eza7, BGl_string4880z00zzcfa_specializa7eza7, BgL_arg2950z00_746);}  else 
{ /* ./Cfa/specialize.scm 64 */
return BgL_typesz00_738;} } }  else 
{ /* ./Cfa/specialize.scm 69 */
bool_t BgL_test2954z00_747;
{ /* ./Cfa/specialize.scm 69 */
obj_t BgL_auxz00_2817;obj_t BgL_auxz00_2811;
BgL_auxz00_2817 = 
CNST_TABLE_REF(((long)1)); 
{ /* ./Cfa/specialize.scm 69 */
obj_t BgL_auxz00_2812;
{ /* ./Cfa/specialize.scm 69 */
obj_t BgL_auxz00_2813;
BgL_auxz00_2813 = 
CAR(BgL_specz00_737); 
BgL_auxz00_2812 = 
CDR(BgL_auxz00_2813); } 
BgL_auxz00_2811 = 
CAR(BgL_auxz00_2812); } 
BgL_test2954z00_747 = 
(BgL_auxz00_2811==BgL_auxz00_2817); } 
if(BgL_test2954z00_747)
{ /* ./Cfa/specialize.scm 69 */
{ /* ./Cfa/specialize.scm 70 */
obj_t BgL_arg2956z00_748;obj_t BgL_arg2957z00_749;
BgL_arg2956z00_748 = 
CDR(BgL_specz00_737); 
BgL_arg2957z00_749 = 
MAKE_PAIR(BGl_za2longza2z00zztype_cachez00, BgL_typesz00_738); 
{ 
obj_t BgL_typesz00_2824;obj_t BgL_specz00_2823;
BgL_specz00_2823 = BgL_arg2956z00_748; 
BgL_typesz00_2824 = BgL_arg2957z00_749; 
BgL_typesz00_738 = BgL_typesz00_2824; 
BgL_specz00_737 = BgL_specz00_2823; 
goto BgL_loopz00_739;} } }  else 
{ /* ./Cfa/specialize.scm 71 */
bool_t BgL_test2961z00_750;
{ /* ./Cfa/specialize.scm 71 */
obj_t BgL_auxz00_2831;obj_t BgL_auxz00_2825;
BgL_auxz00_2831 = 
CNST_TABLE_REF(((long)2)); 
{ /* ./Cfa/specialize.scm 71 */
obj_t BgL_auxz00_2826;
{ /* ./Cfa/specialize.scm 71 */
obj_t BgL_auxz00_2827;
BgL_auxz00_2827 = 
CAR(BgL_specz00_737); 
BgL_auxz00_2826 = 
CDR(BgL_auxz00_2827); } 
BgL_auxz00_2825 = 
CAR(BgL_auxz00_2826); } 
BgL_test2961z00_750 = 
(BgL_auxz00_2825==BgL_auxz00_2831); } 
if(BgL_test2961z00_750)
{ /* ./Cfa/specialize.scm 71 */
{ /* ./Cfa/specialize.scm 72 */
obj_t BgL_arg2963z00_751;obj_t BgL_arg2964z00_752;
BgL_arg2963z00_751 = 
CDR(BgL_specz00_737); 
BgL_arg2964z00_752 = 
MAKE_PAIR(BGl_za2realza2z00zztype_cachez00, BgL_typesz00_738); 
{ 
obj_t BgL_typesz00_2838;obj_t BgL_specz00_2837;
BgL_specz00_2837 = BgL_arg2963z00_751; 
BgL_typesz00_2838 = BgL_arg2964z00_752; 
BgL_typesz00_738 = BgL_typesz00_2838; 
BgL_specz00_737 = BgL_specz00_2837; 
goto BgL_loopz00_739;} } }  else 
{ /* ./Cfa/specialize.scm 71 */
{ /* ./Cfa/specialize.scm 74 */
obj_t BgL_arg2969z00_753;
BgL_arg2969z00_753 = 
CDR(BgL_specz00_737); 
{ 
obj_t BgL_specz00_2840;
BgL_specz00_2840 = BgL_arg2969z00_753; 
BgL_specz00_737 = BgL_specz00_2840; 
goto BgL_loopz00_739;} } } } } } } }  else 
{ /* ./Cfa/specialize.scm 58 */
return BNIL;} } } } 
}



/* _arithmetic-spec-types */
obj_t BGl__arithmeticzd2speczd2typesz00zzcfa_specializa7eza7(obj_t BgL_envz00_2639, obj_t BgL_globalz00_2640)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 55 */
return 
BGl_arithmeticzd2speczd2typesz00zzcfa_specializa7eza7(
(BgL_globalz00_bglt)(BgL_globalz00_2640));} 
}



/* specialize-optimization? */
bool_t BGl_specializa7ezd2optimiza7ationzf3z21zzcfa_specializa7eza7()
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 145 */
{ /* ./Cfa/specialize.scm 146 */
bool_t BgL__andtest_2816z00_761;
{ /* ./Cfa/specialize.scm 146 */
long BgL_n1z00_1603;
BgL_n1z00_1603 = 
(long)CINT(BGl_za2optimza2z00zzengine_paramz00); 
BgL__andtest_2816z00_761 = 
(BgL_n1z00_1603>=((long)1)); } 
if(BgL__andtest_2816z00_761)
{ /* ./Cfa/specialize.scm 146 */
if(
CBOOL(BGl_za2libzd2modeza2zd2zzengine_paramz00))
{ /* ./Cfa/specialize.scm 146 */
return ((bool_t)0);}  else 
{ /* ./Cfa/specialize.scm 146 */
return ((bool_t)1);} }  else 
{ /* ./Cfa/specialize.scm 146 */
return ((bool_t)0);} } } 
}



/* show-specialize */
bool_t BGl_showzd2specializa7ez75zzcfa_specializa7eza7()
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 151 */
{ /* ./Cfa/specialize.scm 152 */
obj_t BgL_list2997z00_762;
{ /* ./Cfa/specialize.scm 152 */
obj_t BgL_arg3000z00_764;
{ /* ./Cfa/specialize.scm 152 */
obj_t BgL_auxz00_2848;
BgL_auxz00_2848 = 
BCHAR(((unsigned char)'\n')); 
BgL_arg3000z00_764 = 
MAKE_PAIR(BgL_auxz00_2848, BNIL); } 
BgL_list2997z00_762 = 
MAKE_PAIR(BGl_string4881z00zzcfa_specializa7eza7, BgL_arg3000z00_764); } 
BGl_verbosez00zztools_speekz00(
BINT(((long)1)), BgL_list2997z00_762); } 
{ 
obj_t BgL_l2817z00_765;
BgL_l2817z00_765 = BGl_za2specializa7edzd2typesza2z75zzcfa_specializa7eza7; 
BgL_forzd2each2818zd2_766:
{ /* ./Cfa/specialize.scm 153 */
bool_t BgL_test3004z00_767;
BgL_test3004z00_767 = 
PAIRP(BgL_l2817z00_765); 
if(BgL_test3004z00_767)
{ /* ./Cfa/specialize.scm 153 */
{ /* ./Cfa/specialize.scm 154 */
obj_t BgL_typeze2numze2_768;
BgL_typeze2numze2_768 = 
CAR(BgL_l2817z00_765); 
{ /* ./Cfa/specialize.scm 154 */
bool_t BgL_test3005z00_769;
{ /* ./Cfa/specialize.scm 154 */
long BgL_auxz00_2857;
{ /* ./Cfa/specialize.scm 154 */
obj_t BgL_auxz00_2858;
BgL_auxz00_2858 = 
CDR(BgL_typeze2numze2_768); 
BgL_auxz00_2857 = 
(long)CINT(BgL_auxz00_2858); } 
BgL_test3005z00_769 = 
(BgL_auxz00_2857>((long)0)); } 
if(BgL_test3005z00_769)
{ /* ./Cfa/specialize.scm 155 */
obj_t BgL_arg3009z00_772;obj_t BgL_arg3011z00_774;
{ /* ./Cfa/specialize.scm 155 */
obj_t BgL_arg3029z00_781;
BgL_arg3029z00_781 = 
CAR(BgL_typeze2numze2_768); 
BgL_arg3009z00_772 = 
BGl_shapez00zztools_shapez00(BgL_arg3029z00_781); } 
BgL_arg3011z00_774 = 
CDR(BgL_typeze2numze2_768); 
{ /* ./Cfa/specialize.scm 155 */
obj_t BgL_list3014z00_776;
{ /* ./Cfa/specialize.scm 155 */
obj_t BgL_arg3016z00_777;
{ /* ./Cfa/specialize.scm 155 */
obj_t BgL_arg3019z00_778;
{ /* ./Cfa/specialize.scm 155 */
obj_t BgL_arg3022z00_779;
{ /* ./Cfa/specialize.scm 155 */
obj_t BgL_arg3025z00_780;
BgL_arg3025z00_780 = 
MAKE_PAIR(BGl_string4882z00zzcfa_specializa7eza7, BNIL); 
BgL_arg3022z00_779 = 
MAKE_PAIR(BgL_arg3011z00_774, BgL_arg3025z00_780); } 
BgL_arg3019z00_778 = 
MAKE_PAIR(BGl_string4883z00zzcfa_specializa7eza7, BgL_arg3022z00_779); } 
BgL_arg3016z00_777 = 
MAKE_PAIR(BgL_arg3009z00_772, BgL_arg3019z00_778); } 
BgL_list3014z00_776 = 
MAKE_PAIR(BGl_string4884z00zzcfa_specializa7eza7, BgL_arg3016z00_777); } 
BGl_verbosez00zztools_speekz00(
BINT(((long)2)), BgL_list3014z00_776); } }  else 
{ /* ./Cfa/specialize.scm 154 */BFALSE; } } } 
{ /* ./Cfa/specialize.scm 153 */
obj_t BgL_arg3040z00_784;
BgL_arg3040z00_784 = 
CDR(BgL_l2817z00_765); 
{ 
obj_t BgL_l2817z00_2874;
BgL_l2817z00_2874 = BgL_arg3040z00_784; 
BgL_l2817z00_765 = BgL_l2817z00_2874; 
goto BgL_forzd2each2818zd2_766;} } }  else 
{ /* ./Cfa/specialize.scm 153 */((bool_t)1); } } } 
{ 
obj_t BgL_l2819z00_785;
BgL_l2819z00_785 = BGl_za2specializa7edzd2eqzd2typesza2za7zzcfa_specializa7eza7; 
BgL_forzd2each2820zd2_786:
{ /* ./Cfa/specialize.scm 158 */
bool_t BgL_test3045z00_787;
BgL_test3045z00_787 = 
PAIRP(BgL_l2819z00_785); 
if(BgL_test3045z00_787)
{ /* ./Cfa/specialize.scm 158 */
{ /* ./Cfa/specialize.scm 159 */
obj_t BgL_typeze2numze2_788;
BgL_typeze2numze2_788 = 
CAR(BgL_l2819z00_785); 
{ /* ./Cfa/specialize.scm 159 */
bool_t BgL_test3046z00_789;
{ /* ./Cfa/specialize.scm 159 */
long BgL_auxz00_2878;
{ /* ./Cfa/specialize.scm 159 */
obj_t BgL_auxz00_2879;
BgL_auxz00_2879 = 
CDR(BgL_typeze2numze2_788); 
BgL_auxz00_2878 = 
(long)CINT(BgL_auxz00_2879); } 
BgL_test3046z00_789 = 
(BgL_auxz00_2878>((long)0)); } 
if(BgL_test3046z00_789)
{ /* ./Cfa/specialize.scm 160 */
obj_t BgL_arg3050z00_792;obj_t BgL_arg3052z00_794;
{ /* ./Cfa/specialize.scm 160 */
obj_t BgL_arg3071z00_801;
BgL_arg3071z00_801 = 
CAR(BgL_typeze2numze2_788); 
BgL_arg3050z00_792 = 
BGl_shapez00zztools_shapez00(BgL_arg3071z00_801); } 
BgL_arg3052z00_794 = 
CDR(BgL_typeze2numze2_788); 
{ /* ./Cfa/specialize.scm 160 */
obj_t BgL_list3055z00_796;
{ /* ./Cfa/specialize.scm 160 */
obj_t BgL_arg3057z00_797;
{ /* ./Cfa/specialize.scm 160 */
obj_t BgL_arg3061z00_798;
{ /* ./Cfa/specialize.scm 160 */
obj_t BgL_arg3064z00_799;
{ /* ./Cfa/specialize.scm 160 */
obj_t BgL_arg3067z00_800;
BgL_arg3067z00_800 = 
MAKE_PAIR(BGl_string4882z00zzcfa_specializa7eza7, BNIL); 
BgL_arg3064z00_799 = 
MAKE_PAIR(BgL_arg3052z00_794, BgL_arg3067z00_800); } 
BgL_arg3061z00_798 = 
MAKE_PAIR(BGl_string4883z00zzcfa_specializa7eza7, BgL_arg3064z00_799); } 
BgL_arg3057z00_797 = 
MAKE_PAIR(BgL_arg3050z00_792, BgL_arg3061z00_798); } 
BgL_list3055z00_796 = 
MAKE_PAIR(BGl_string4885z00zzcfa_specializa7eza7, BgL_arg3057z00_797); } 
BGl_verbosez00zztools_speekz00(
BINT(((long)2)), BgL_list3055z00_796); } }  else 
{ /* ./Cfa/specialize.scm 159 */BFALSE; } } } 
{ /* ./Cfa/specialize.scm 158 */
obj_t BgL_arg3082z00_804;
BgL_arg3082z00_804 = 
CDR(BgL_l2819z00_785); 
{ 
obj_t BgL_l2819z00_2895;
BgL_l2819z00_2895 = BgL_arg3082z00_804; 
BgL_l2819z00_785 = BgL_l2819z00_2895; 
goto BgL_forzd2each2820zd2_786;} } }  else 
{ /* ./Cfa/specialize.scm 158 */
return ((bool_t)1);} } } } 
}



/* install-specialized-type! */
obj_t BGl_installzd2specializa7edzd2typez12zb5zzcfa_specializa7eza7(obj_t BgL_typez00_3)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 175 */
{ /* ./Cfa/specialize.scm 176 */
bool_t BgL_test3086z00_805;
{ /* ./Cfa/specialize.scm 176 */
obj_t BgL_arg3098z00_809;
BgL_arg3098z00_809 = 
BGl_assqz00zz__r4_pairs_and_lists_6_3z00(BgL_typez00_3, BGl_za2specializa7edzd2typesza2z75zzcfa_specializa7eza7); 
BgL_test3086z00_805 = 
PAIRP(BgL_arg3098z00_809); } 
if(BgL_test3086z00_805)
{ /* ./Cfa/specialize.scm 176 */
return BFALSE;}  else 
{ /* ./Cfa/specialize.scm 176 */
{ /* ./Cfa/specialize.scm 178 */
obj_t BgL_arg3088z00_806;
{ /* ./Cfa/specialize.scm 178 */
obj_t BgL_auxz00_2899;
BgL_auxz00_2899 = 
BINT(((long)0)); 
BgL_arg3088z00_806 = 
MAKE_PAIR(BgL_typez00_3, BgL_auxz00_2899); } 
BGl_za2specializa7edzd2typesza2z75zzcfa_specializa7eza7 = 
MAKE_PAIR(BgL_arg3088z00_806, BGl_za2specializa7edzd2typesza2z75zzcfa_specializa7eza7); } 
{ /* ./Cfa/specialize.scm 179 */
obj_t BgL_list3092z00_807;
{ /* ./Cfa/specialize.scm 179 */
obj_t BgL_auxz00_2903;
BgL_auxz00_2903 = 
CNST_TABLE_REF(((long)3)); 
BgL_list3092z00_807 = 
MAKE_PAIR(BgL_auxz00_2903, BNIL); } 
BGl_za2boxedzd2eqzf3za2z21zzcfa_specializa7eza7 = 
BGl_findzd2globalzd2zzast_envz00(
CNST_TABLE_REF(((long)4)), BgL_list3092z00_807); } 
{ /* ./Cfa/specialize.scm 180 */
obj_t BgL_list3095z00_808;
{ /* ./Cfa/specialize.scm 180 */
obj_t BgL_auxz00_2908;
BgL_auxz00_2908 = 
CNST_TABLE_REF(((long)3)); 
BgL_list3095z00_808 = 
MAKE_PAIR(BgL_auxz00_2908, BNIL); } 
return ( 
BGl_za2czd2eqzf3za2z21zzcfa_specializa7eza7 = 
BGl_findzd2globalzd2zzast_envz00(
CNST_TABLE_REF(((long)5)), BgL_list3095z00_808), BUNSPEC) ;} } } } 
}



/* add-specialized-type! */
obj_t BGl_addzd2specializa7edzd2typez12zb5zzcfa_specializa7eza7(obj_t BgL_typez00_4)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 185 */
{ /* ./Cfa/specialize.scm 186 */
obj_t BgL_cellz00_810;
BgL_cellz00_810 = 
BGl_assqz00zz__r4_pairs_and_lists_6_3z00(BgL_typez00_4, BGl_za2specializa7edzd2typesza2z75zzcfa_specializa7eza7); 
{ /* ./Cfa/specialize.scm 187 */
bool_t BgL_test3101z00_811;
BgL_test3101z00_811 = 
PAIRP(BgL_cellz00_810); 
if(BgL_test3101z00_811)
{ /* ./Cfa/specialize.scm 191 */
long BgL_arg3103z00_812;
{ /* ./Cfa/specialize.scm 191 */
long BgL_auxz00_2916;
{ /* ./Cfa/specialize.scm 191 */
obj_t BgL_auxz00_2917;
BgL_auxz00_2917 = 
CDR(BgL_cellz00_810); 
BgL_auxz00_2916 = 
(long)CINT(BgL_auxz00_2917); } 
BgL_arg3103z00_812 = 
(((long)1)+BgL_auxz00_2916); } 
{ /* ./Cfa/specialize.scm 191 */
obj_t BgL_objz00_1627;
BgL_objz00_1627 = 
BINT(BgL_arg3103z00_812); 
return 
SET_CDR(BgL_cellz00_810, BgL_objz00_1627);} }  else 
{ /* ./Cfa/specialize.scm 188 */
obj_t BgL_arg3113z00_817;
BgL_arg3113z00_817 = 
BGl_shapez00zztools_shapez00(BgL_typez00_4); 
return 
BGl_internalzd2errorzd2zztools_errorz00(BGl_string4886z00zzcfa_specializa7eza7, BGl_string4887z00zzcfa_specializa7eza7, BgL_arg3113z00_817);} } } } 
}



/* add-specialized-eq-type! */
obj_t BGl_addzd2specializa7edzd2eqzd2typez12z67zzcfa_specializa7eza7(obj_t BgL_typez00_5)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 196 */
{ /* ./Cfa/specialize.scm 197 */
obj_t BgL_cellz00_818;
BgL_cellz00_818 = 
BGl_assqz00zz__r4_pairs_and_lists_6_3z00(BgL_typez00_5, BGl_za2specializa7edzd2eqzd2typesza2za7zzcfa_specializa7eza7); 
{ /* ./Cfa/specialize.scm 198 */
bool_t BgL_test3118z00_819;
BgL_test3118z00_819 = 
PAIRP(BgL_cellz00_818); 
if(BgL_test3118z00_819)
{ /* ./Cfa/specialize.scm 201 */
long BgL_arg3120z00_820;
{ /* ./Cfa/specialize.scm 201 */
long BgL_auxz00_2928;
{ /* ./Cfa/specialize.scm 201 */
obj_t BgL_auxz00_2929;
BgL_auxz00_2929 = 
CDR(BgL_cellz00_818); 
BgL_auxz00_2928 = 
(long)CINT(BgL_auxz00_2929); } 
BgL_arg3120z00_820 = 
(((long)1)+BgL_auxz00_2928); } 
{ /* ./Cfa/specialize.scm 201 */
obj_t BgL_objz00_1633;
BgL_objz00_1633 = 
BINT(BgL_arg3120z00_820); 
return 
SET_CDR(BgL_cellz00_818, BgL_objz00_1633);} }  else 
{ /* ./Cfa/specialize.scm 199 */
obj_t BgL_arg3128z00_823;
{ /* ./Cfa/specialize.scm 199 */
obj_t BgL_auxz00_2935;
BgL_auxz00_2935 = 
BINT(((long)1)); 
BgL_arg3128z00_823 = 
MAKE_PAIR(BgL_typez00_5, BgL_auxz00_2935); } 
return ( 
BGl_za2specializa7edzd2eqzd2typesza2za7zzcfa_specializa7eza7 = 
MAKE_PAIR(BgL_arg3128z00_823, BGl_za2specializa7edzd2eqzd2typesza2za7zzcfa_specializa7eza7), BUNSPEC) ;} } } } 
}



/* install-specialize! */
obj_t BGl_installzd2specializa7ez12z67zzcfa_specializa7eza7(obj_t BgL_genz00_6, obj_t BgL_fixesz00_7)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 206 */
{ /* ./Cfa/specialize.scm 207 */
obj_t BgL_genzd2idzd2_824;
BgL_genzd2idzd2_824 = 
CAR(BgL_genz00_6); 
{ /* ./Cfa/specialize.scm 207 */
obj_t BgL_genzd2modzd2_825;
{ /* ./Cfa/specialize.scm 208 */
obj_t BgL_auxz00_2940;
BgL_auxz00_2940 = 
CDR(BgL_genz00_6); 
BgL_genzd2modzd2_825 = 
CAR(BgL_auxz00_2940); } 
{ /* ./Cfa/specialize.scm 208 */
obj_t BgL_genericz00_826;
BgL_genericz00_826 = 
BGl_findzd2globalzf2modulez20zzast_envz00(BgL_genzd2idzd2_824, BgL_genzd2modzd2_825); 
{ /* ./Cfa/specialize.scm 209 */

{ /* ./Cfa/specialize.scm 210 */
bool_t BgL_test3133z00_827;
BgL_test3133z00_827 = 
BGl_iszd2azf3z21zz__objectz00(BgL_genericz00_826, BGl_globalz00zzast_varz00); 
if(BgL_test3133z00_827)
{ 
obj_t BgL_fixesz00_828;obj_t BgL_resz00_829;
BgL_fixesz00_828 = BgL_fixesz00_7; 
BgL_resz00_829 = BNIL; 
BgL_loopz00_830:
{ /* ./Cfa/specialize.scm 213 */
bool_t BgL_test3135z00_831;
BgL_test3135z00_831 = 
NULLP(BgL_fixesz00_828); 
if(BgL_test3135z00_831)
{ /* ./Cfa/specialize.scm 213 */
{ /* ./Cfa/specialize.scm 215 */
BgL_globalz00_bglt BgL_obj2821z00_832;
{ 
BgL_globalz00_bglt BgL_auxz00_2948;
BgL_auxz00_2948 = 
(BgL_globalz00_bglt)(BgL_genericz00_826); 
BgL_obj2821z00_832 = 
((BgL_globalz00_bglt)BgL_auxz00_2948); } 
{ /* ./Cfa/specialize.scm 216 */
BgL_specializa7edzd2globalz75_bglt BgL_arg3137z00_833;
{ /* ./Cfa/specialize.scm 216 */
obj_t BgL_arg3140z00_834;
BgL_arg3140z00_834 = BgL_resz00_829; 
{ /* ./Cfa/specialize.scm 215 */
BgL_specializa7edzd2globalz75_bglt BgL_res4229z00_1647;
{ /* ./Cfa/specialize.scm 215 */
BgL_specializa7edzd2globalz75_bglt BgL_new2731z00_1642;
BgL_new2731z00_1642 = 
((BgL_specializa7edzd2globalz75_bglt)BREF( GC_MALLOC (sizeof(struct BgL_specializa7edzd2globalz75_bgl)))); 
{ /* ./Cfa/specialize.scm 215 */
BgL_specializa7edzd2globalz75_bglt BgL_res4228z00_1646;
{ /* ./Cfa/specialize.scm 215 */
BgL_specializa7edzd2globalz75_bglt BgL_new2753z00_1643;
BgL_new2753z00_1643 = BgL_new2731z00_1642; 
{ /* ./Cfa/specialize.scm 215 */
obj_t BgL_fix2752z00_1645;
BgL_fix2752z00_1645 = BgL_arg3140z00_834; 
((((BgL_specializa7edzd2globalz75_bglt)CREF(BgL_new2753z00_1643))->BgL_fixz00) = ((obj_t)BgL_fix2752z00_1645), BUNSPEC); 
BgL_res4228z00_1646 = BgL_new2753z00_1643; } } BgL_res4228z00_1646; } 
BgL_res4229z00_1647 = BgL_new2731z00_1642; } 
BgL_arg3137z00_833 = BgL_res4229z00_1647; } } 
{ /* ./Cfa/specialize.scm 215 */
obj_t BgL_auxz00_2955;BgL_objectz00_bglt BgL_auxz00_2953;
BgL_auxz00_2955 = 
(obj_t)(BgL_arg3137z00_833); 
BgL_auxz00_2953 = 
(BgL_objectz00_bglt)(BgL_obj2821z00_832); 
BGL_OBJECT_WIDENING_SET(BgL_auxz00_2953, BgL_auxz00_2955); } } 
{ /* ./Cfa/specialize.scm 215 */
long BgL_arg3143z00_835;
BgL_arg3143z00_835 = 
BGl_classzd2numzd2zz__objectz00(BGl_specializa7edzd2globalz75zzcfa_specializa7eza7); 
{ /* ./Cfa/specialize.scm 215 */
BgL_objectz00_bglt BgL_objz00_1648;
BgL_objz00_1648 = 
(BgL_objectz00_bglt)(BgL_obj2821z00_832); 
BGL_OBJECT_CLASS_NUM_SET(BgL_objz00_1648, BgL_arg3143z00_835); } } 
{ /* ./Cfa/specialize.scm 215 */
obj_t BgL_objz00_1650;
BgL_objz00_1650 = 
(obj_t)(BgL_obj2821z00_832); 
BGL_HEAP_DEBUG_MARK_OBJ(BgL_objz00_1650); BUNSPEC; } BgL_obj2821z00_832; } 
return ( 
BGl_za2specializa7eza2za7zzcfa_specializa7eza7 = 
MAKE_PAIR(BgL_genericz00_826, BGl_za2specializa7eza2za7zzcfa_specializa7eza7), BUNSPEC) ;}  else 
{ /* ./Cfa/specialize.scm 218 */
obj_t BgL_fixz00_836;
BgL_fixz00_836 = 
CAR(BgL_fixesz00_828); 
{ /* ./Cfa/specialize.scm 218 */
obj_t BgL_idz00_837;
BgL_idz00_837 = 
CAR(BgL_fixz00_836); 
{ /* ./Cfa/specialize.scm 219 */
obj_t BgL_modz00_838;
{ /* ./Cfa/specialize.scm 220 */
obj_t BgL_auxz00_2966;
BgL_auxz00_2966 = 
CDR(BgL_fixz00_836); 
BgL_modz00_838 = 
CAR(BgL_auxz00_2966); } 
{ /* ./Cfa/specialize.scm 220 */
obj_t BgL_globalz00_839;
BgL_globalz00_839 = 
BGl_findzd2globalzf2modulez20zzast_envz00(BgL_idz00_837, BgL_modz00_838); 
{ /* ./Cfa/specialize.scm 221 */

{ /* ./Cfa/specialize.scm 222 */
bool_t BgL_test3148z00_840;
BgL_test3148z00_840 = 
BGl_iszd2azf3z21zz__objectz00(BgL_globalz00_839, BGl_globalz00zzast_varz00); 
if(BgL_test3148z00_840)
{ /* ./Cfa/specialize.scm 223 */
BgL_valuez00_bglt BgL_valz00_841;
{ /* ./Cfa/specialize.scm 223 */
BgL_variablez00_bglt BgL_obj1100z00_1658;
BgL_obj1100z00_1658 = 
(BgL_variablez00_bglt)(BgL_globalz00_839); 
BgL_valz00_841 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1658))->BgL_valuez00); } 
{ /* ./Cfa/specialize.scm 225 */
bool_t BgL_test3149z00_842;
{ /* ./Cfa/specialize.scm 225 */
bool_t BgL_test3196z00_862;
{ /* ./Cfa/specialize.scm 225 */
obj_t BgL_obj1425z00_1659;
BgL_obj1425z00_1659 = 
(obj_t)(BgL_valz00_841); 
BgL_test3196z00_862 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1425z00_1659, BGl_sfunz00zzast_varz00); } 
if(BgL_test3196z00_862)
{ /* ./Cfa/specialize.scm 225 */
obj_t BgL_auxz00_2977;
{ /* ./Cfa/specialize.scm 225 */
BgL_sfunz00_bglt BgL_obj1367z00_1660;
BgL_obj1367z00_1660 = 
(BgL_sfunz00_bglt)(BgL_valz00_841); 
BgL_auxz00_2977 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1660))->BgL_argsz00); } 
BgL_test3149z00_842 = 
PAIRP(BgL_auxz00_2977); }  else 
{ /* ./Cfa/specialize.scm 225 */
BgL_test3149z00_842 = ((bool_t)0); } } 
if(BgL_test3149z00_842)
{ /* ./Cfa/specialize.scm 225 */
{ /* ./Cfa/specialize.scm 226 */
obj_t BgL_typez00_843;
{ /* ./Cfa/specialize.scm 226 */
obj_t BgL_vz00_847;
{ /* ./Cfa/specialize.scm 226 */
obj_t BgL_auxz00_2982;
{ /* ./Cfa/specialize.scm 227 */
BgL_sfunz00_bglt BgL_obj1367z00_1662;
BgL_obj1367z00_1662 = 
(BgL_sfunz00_bglt)(BgL_valz00_841); 
BgL_auxz00_2982 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1662))->BgL_argsz00); } 
BgL_vz00_847 = 
CAR(BgL_auxz00_2982); } 
{ /* ./Cfa/specialize.scm 230 */
bool_t BgL_test3160z00_848;
BgL_test3160z00_848 = 
BGl_iszd2azf3z21zz__objectz00(BgL_vz00_847, BGl_typez00zztype_typez00); 
if(BgL_test3160z00_848)
{ /* ./Cfa/specialize.scm 230 */
BgL_typez00_843 = BgL_vz00_847; }  else 
{ /* ./Cfa/specialize.scm 232 */
bool_t BgL_test3161z00_849;
BgL_test3161z00_849 = 
BGl_iszd2azf3z21zz__objectz00(BgL_vz00_847, BGl_localz00zzast_varz00); 
if(BgL_test3161z00_849)
{ /* ./Cfa/specialize.scm 232 */
{ /* ./Cfa/specialize.scm 233 */
BgL_variablez00_bglt BgL_obj1097z00_1666;
BgL_obj1097z00_1666 = 
(BgL_variablez00_bglt)(BgL_vz00_847); 
{ /* ./Cfa/specialize.scm 233 */
BgL_typez00_bglt BgL_auxz00_2991;
BgL_auxz00_2991 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_1666))->BgL_typez00); 
BgL_typez00_843 = 
(obj_t)(BgL_auxz00_2991); } } }  else 
{ /* ./Cfa/specialize.scm 232 */
{ /* ./Cfa/specialize.scm 235 */
obj_t BgL_arg3166z00_852;
{ /* ./Cfa/specialize.scm 238 */
BgL_variablez00_bglt BgL_obj1093z00_1667;
BgL_obj1093z00_1667 = 
(BgL_variablez00_bglt)(BgL_globalz00_839); 
BgL_arg3166z00_852 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1093z00_1667))->BgL_idz00); } 
BgL_typez00_843 = 
BGl_internalzd2errorzd2zztools_errorz00(BGl_string4888z00zzcfa_specializa7eza7, BGl_string4889z00zzcfa_specializa7eza7, BgL_arg3166z00_852); } } } } } 
BGl_installzd2specializa7edzd2typez12zb5zzcfa_specializa7eza7(BgL_typez00_843); 
{ /* ./Cfa/specialize.scm 240 */
obj_t BgL_arg3152z00_844;obj_t BgL_arg3153z00_845;
BgL_arg3152z00_844 = 
CDR(BgL_fixesz00_828); 
{ /* ./Cfa/specialize.scm 241 */
obj_t BgL_arg3157z00_846;
BgL_arg3157z00_846 = 
MAKE_PAIR(BgL_typez00_843, BgL_globalz00_839); 
BgL_arg3153z00_845 = 
MAKE_PAIR(BgL_arg3157z00_846, BgL_resz00_829); } 
{ 
obj_t BgL_resz00_3002;obj_t BgL_fixesz00_3001;
BgL_fixesz00_3001 = BgL_arg3152z00_844; 
BgL_resz00_3002 = BgL_arg3153z00_845; 
BgL_resz00_829 = BgL_resz00_3002; 
BgL_fixesz00_828 = BgL_fixesz00_3001; 
goto BgL_loopz00_830;} } } }  else 
{ /* ./Cfa/specialize.scm 242 */
bool_t BgL_test3175z00_854;
{ /* ./Cfa/specialize.scm 242 */
bool_t BgL_test3190z00_860;
{ /* ./Cfa/specialize.scm 242 */
obj_t BgL_obj1489z00_1669;
BgL_obj1489z00_1669 = 
(obj_t)(BgL_valz00_841); 
BgL_test3190z00_860 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1489z00_1669, BGl_cfunz00zzast_varz00); } 
if(BgL_test3190z00_860)
{ /* ./Cfa/specialize.scm 242 */
obj_t BgL_auxz00_3006;
{ /* ./Cfa/specialize.scm 242 */
BgL_cfunz00_bglt BgL_obj1445z00_1670;
BgL_obj1445z00_1670 = 
(BgL_cfunz00_bglt)(BgL_valz00_841); 
BgL_auxz00_3006 = 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_1670))->BgL_argszd2typezd2); } 
BgL_test3175z00_854 = 
PAIRP(BgL_auxz00_3006); }  else 
{ /* ./Cfa/specialize.scm 242 */
BgL_test3175z00_854 = ((bool_t)0); } } 
if(BgL_test3175z00_854)
{ /* ./Cfa/specialize.scm 242 */
{ /* ./Cfa/specialize.scm 243 */
obj_t BgL_typez00_855;
{ /* ./Cfa/specialize.scm 243 */
obj_t BgL_auxz00_3011;
{ /* ./Cfa/specialize.scm 243 */
BgL_cfunz00_bglt BgL_obj1445z00_1672;
BgL_obj1445z00_1672 = 
(BgL_cfunz00_bglt)(BgL_valz00_841); 
BgL_auxz00_3011 = 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_1672))->BgL_argszd2typezd2); } 
BgL_typez00_855 = 
CAR(BgL_auxz00_3011); } 
BGl_installzd2specializa7edzd2typez12zb5zzcfa_specializa7eza7(BgL_typez00_855); 
{ /* ./Cfa/specialize.scm 245 */
obj_t BgL_arg3178z00_856;obj_t BgL_arg3179z00_857;
BgL_arg3178z00_856 = 
CDR(BgL_fixesz00_828); 
{ /* ./Cfa/specialize.scm 246 */
obj_t BgL_arg3183z00_858;
BgL_arg3183z00_858 = 
MAKE_PAIR(BgL_typez00_855, BgL_globalz00_839); 
BgL_arg3179z00_857 = 
MAKE_PAIR(BgL_arg3183z00_858, BgL_resz00_829); } 
{ 
obj_t BgL_resz00_3020;obj_t BgL_fixesz00_3019;
BgL_fixesz00_3019 = BgL_arg3178z00_856; 
BgL_resz00_3020 = BgL_arg3179z00_857; 
BgL_resz00_829 = BgL_resz00_3020; 
BgL_fixesz00_828 = BgL_fixesz00_3019; 
goto BgL_loopz00_830;} } } }  else 
{ /* ./Cfa/specialize.scm 242 */
return BFALSE;} } } }  else 
{ /* ./Cfa/specialize.scm 222 */
{ /* ./Cfa/specialize.scm 248 */
obj_t BgL_arg3207z00_867;
BgL_arg3207z00_867 = 
MAKE_PAIR(BgL_idz00_837, BgL_modz00_838); 
{ /* ./Cfa/specialize.scm 248 */
obj_t BgL_list3209z00_868;
{ /* ./Cfa/specialize.scm 248 */
obj_t BgL_arg3211z00_869;
{ /* ./Cfa/specialize.scm 248 */
obj_t BgL_arg3214z00_870;
{ /* ./Cfa/specialize.scm 248 */
obj_t BgL_arg3217z00_871;
BgL_arg3217z00_871 = 
MAKE_PAIR(BgL_arg3207z00_867, BNIL); 
BgL_arg3214z00_870 = 
MAKE_PAIR(BGl_string4890z00zzcfa_specializa7eza7, BgL_arg3217z00_871); } 
BgL_arg3211z00_869 = 
MAKE_PAIR(BGl_string4891z00zzcfa_specializa7eza7, BgL_arg3214z00_870); } 
BgL_list3209z00_868 = 
MAKE_PAIR(BGl_string4892z00zzcfa_specializa7eza7, BgL_arg3211z00_869); } 
BGl_warningz00zz__errorz00(BgL_list3209z00_868); } } 
{ /* ./Cfa/specialize.scm 252 */
obj_t BgL_arg3222z00_872;
BgL_arg3222z00_872 = 
CDR(BgL_fixesz00_828); 
{ 
obj_t BgL_fixesz00_3028;
BgL_fixesz00_3028 = BgL_arg3222z00_872; 
BgL_fixesz00_828 = BgL_fixesz00_3028; 
goto BgL_loopz00_830;} } } } } } } } } } }  else 
{ /* ./Cfa/specialize.scm 253 */
obj_t BgL_arg3235z00_876;
BgL_arg3235z00_876 = 
MAKE_PAIR(BgL_genzd2idzd2_824, BgL_genzd2modzd2_825); 
{ /* ./Cfa/specialize.scm 253 */
obj_t BgL_list3237z00_877;
{ /* ./Cfa/specialize.scm 253 */
obj_t BgL_arg3239z00_878;
{ /* ./Cfa/specialize.scm 253 */
obj_t BgL_arg3242z00_879;
{ /* ./Cfa/specialize.scm 253 */
obj_t BgL_arg3245z00_880;
BgL_arg3245z00_880 = 
MAKE_PAIR(BgL_arg3235z00_876, BNIL); 
BgL_arg3242z00_879 = 
MAKE_PAIR(BGl_string4890z00zzcfa_specializa7eza7, BgL_arg3245z00_880); } 
BgL_arg3239z00_878 = 
MAKE_PAIR(BGl_string4891z00zzcfa_specializa7eza7, BgL_arg3242z00_879); } 
BgL_list3237z00_877 = 
MAKE_PAIR(BGl_string4892z00zzcfa_specializa7eza7, BgL_arg3239z00_878); } 
return 
BGl_warningz00zz__errorz00(BgL_list3237z00_877);} } } } } } } } 
}



/* uninstall-specializes! */
obj_t BGl_uninstallzd2specializa7esz12z67zzcfa_specializa7eza7()
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 261 */
BGl_za2specializa7edzd2typesza2z75zzcfa_specializa7eza7 = BNIL; 
{ 
obj_t BgL_l2822z00_881;
BgL_l2822z00_881 = BGl_za2specializa7eza2za7zzcfa_specializa7eza7; 
BgL_forzd2each2823zd2_882:
{ /* ./Cfa/specialize.scm 263 */
bool_t BgL_test3254z00_883;
BgL_test3254z00_883 = 
PAIRP(BgL_l2822z00_881); 
if(BgL_test3254z00_883)
{ /* ./Cfa/specialize.scm 263 */
{ /* ./Cfa/specialize.scm 263 */
obj_t BgL_oz00_884;
BgL_oz00_884 = 
CAR(BgL_l2822z00_881); 
{ /* ./Cfa/specialize.scm 263 */
long BgL_arg3257z00_886;
{ /* ./Cfa/specialize.scm 263 */
obj_t BgL_arg3260z00_887;
{ /* ./Cfa/specialize.scm 263 */
obj_t BgL_arg3263z00_888;
{ /* ./Cfa/specialize.scm 263 */
BgL_objectz00_bglt BgL_objectz00_1678;
BgL_objectz00_1678 = 
(BgL_objectz00_bglt)(BgL_oz00_884); 
{ /* ./Cfa/specialize.scm 263 */
long BgL_arg2036z00_1679;
{ /* ./Cfa/specialize.scm 263 */
long BgL_arg2039z00_1680;
BgL_arg2039z00_1680 = 
BGL_OBJECT_CLASS_NUM(BgL_objectz00_1678); 
BgL_arg2036z00_1679 = 
(BgL_arg2039z00_1680-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 263 */
obj_t BgL_vectorz00_1684;int BgL_kz00_1685;
BgL_vectorz00_1684 = BGl_za2classesza2z00zz__objectz00; 
BgL_kz00_1685 = 
(int)(BgL_arg2036z00_1679); 
BgL_arg3263z00_888 = 
VECTOR_REF(BgL_vectorz00_1684,BgL_kz00_1685); } } } 
BgL_arg3260z00_887 = 
BGl_classzd2superzd2zz__objectz00(BgL_arg3263z00_888); } 
BgL_arg3257z00_886 = 
BGl_classzd2numzd2zz__objectz00(BgL_arg3260z00_887); } 
{ /* ./Cfa/specialize.scm 263 */
BgL_objectz00_bglt BgL_objz00_1686;
BgL_objz00_1686 = 
(BgL_objectz00_bglt)(BgL_oz00_884); 
BGL_OBJECT_CLASS_NUM_SET(BgL_objz00_1686, BgL_arg3257z00_886); } } 
{ /* ./Cfa/specialize.scm 263 */
BgL_objectz00_bglt BgL_auxz00_3047;
BgL_auxz00_3047 = 
(BgL_objectz00_bglt)(BgL_oz00_884); 
BGL_OBJECT_WIDENING_SET(BgL_auxz00_3047, BFALSE); } BgL_oz00_884; } 
{ /* ./Cfa/specialize.scm 263 */
obj_t BgL_arg3269z00_889;
BgL_arg3269z00_889 = 
CDR(BgL_l2822z00_881); 
{ 
obj_t BgL_l2822z00_3051;
BgL_l2822z00_3051 = BgL_arg3269z00_889; 
BgL_l2822z00_881 = BgL_l2822z00_3051; 
goto BgL_forzd2each2823zd2_882;} } }  else 
{ /* ./Cfa/specialize.scm 263 */((bool_t)1); } } } 
return ( 
BGl_za2specializa7eza2za7zzcfa_specializa7eza7 = BNIL, BUNSPEC) ;} 
}



/* specialize! */
BGL_EXPORTED_DEF obj_t BGl_specializa7ez12zb5zzcfa_specializa7eza7(obj_t BgL_globalsz00_8)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 269 */
{ /* ./Cfa/specialize.scm 270 */
bool_t BgL_test3273z00_890;
BgL_test3273z00_890 = 
BGl_specializa7ezd2optimiza7ationzf3z21zzcfa_specializa7eza7(); 
if(BgL_test3273z00_890)
{ /* ./Cfa/specialize.scm 270 */
{ 
obj_t BgL_l2825z00_891;
BgL_l2825z00_891 = BGl_za2specializa7ationsza2za7zzcfa_specializa7eza7; 
BgL_forzd2each2826zd2_892:
{ /* ./Cfa/specialize.scm 272 */
bool_t BgL_test3275z00_893;
BgL_test3275z00_893 = 
PAIRP(BgL_l2825z00_891); 
if(BgL_test3275z00_893)
{ /* ./Cfa/specialize.scm 272 */
{ /* ./Cfa/specialize.scm 273 */
obj_t BgL_specz00_894;
BgL_specz00_894 = 
CAR(BgL_l2825z00_891); 
{ /* ./Cfa/specialize.scm 273 */
obj_t BgL_runner3278z00_896;
BgL_runner3278z00_896 = 
CDR(BgL_specz00_894); 
{ /* ./Cfa/specialize.scm 273 */
obj_t BgL_aux3277z00_895;
{ /* ./Cfa/specialize.scm 273 */
obj_t BgL_pairz00_1692;
BgL_pairz00_1692 = BgL_runner3278z00_896; 
BgL_aux3277z00_895 = 
CAR(BgL_pairz00_1692); } 
{ /* ./Cfa/specialize.scm 273 */
obj_t BgL_pairz00_1693;
BgL_pairz00_1693 = BgL_runner3278z00_896; 
BgL_runner3278z00_896 = 
CDR(BgL_pairz00_1693); } 
BGl_installzd2specializa7ez12z67zzcfa_specializa7eza7(BgL_aux3277z00_895, BgL_runner3278z00_896); } } } 
{ /* ./Cfa/specialize.scm 272 */
obj_t BgL_arg3283z00_897;
BgL_arg3283z00_897 = 
CDR(BgL_l2825z00_891); 
{ 
obj_t BgL_l2825z00_3062;
BgL_l2825z00_3062 = BgL_arg3283z00_897; 
BgL_l2825z00_891 = BgL_l2825z00_3062; 
goto BgL_forzd2each2826zd2_892;} } }  else 
{ /* ./Cfa/specialize.scm 272 */((bool_t)1); } } } 
BGl_patchzd2treez12zc0zzcfa_specializa7eza7(BgL_globalsz00_8); 
BGl_showzd2specializa7ez75zzcfa_specializa7eza7(); 
BGl_uninstallzd2specializa7esz12z67zzcfa_specializa7eza7(); }  else 
{ /* ./Cfa/specialize.scm 270 */BFALSE; } } 
return BgL_globalsz00_8;} 
}



/* _specialize! */
obj_t BGl__specializa7ez12zb5zzcfa_specializa7eza7(obj_t BgL_envz00_2641, obj_t BgL_globalsz00_2642)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 269 */
return 
BGl_specializa7ez12zb5zzcfa_specializa7eza7(BgL_globalsz00_2642);} 
}



/* patch-tree! */
bool_t BGl_patchzd2treez12zc0zzcfa_specializa7eza7(obj_t BgL_globalsz00_9)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 283 */
{ 
obj_t BgL_l2827z00_898;
BgL_l2827z00_898 = BgL_globalsz00_9; 
BgL_forzd2each2828zd2_899:
{ /* ./Cfa/specialize.scm 284 */
bool_t BgL_test3292z00_900;
BgL_test3292z00_900 = 
PAIRP(BgL_l2827z00_898); 
if(BgL_test3292z00_900)
{ /* ./Cfa/specialize.scm 284 */
{ /* ./Cfa/specialize.scm 284 */
obj_t BgL_arg3294z00_901;
BgL_arg3294z00_901 = 
CAR(BgL_l2827z00_898); 
BGl_patchzd2funz12zc0zzcfa_specializa7eza7(BgL_arg3294z00_901); } 
{ /* ./Cfa/specialize.scm 284 */
obj_t BgL_arg3298z00_902;
BgL_arg3298z00_902 = 
CDR(BgL_l2827z00_898); 
{ 
obj_t BgL_l2827z00_3072;
BgL_l2827z00_3072 = BgL_arg3298z00_902; 
BgL_l2827z00_898 = BgL_l2827z00_3072; 
goto BgL_forzd2each2828zd2_899;} } }  else 
{ /* ./Cfa/specialize.scm 284 */
return ((bool_t)1);} } } } 
}



/* patch-fun! */
obj_t BGl_patchzd2funz12zc0zzcfa_specializa7eza7(obj_t BgL_variablez00_10)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 289 */
{ /* ./Cfa/specialize.scm 290 */
BgL_valuez00_bglt BgL_funz00_903;
{ /* ./Cfa/specialize.scm 290 */
BgL_variablez00_bglt BgL_obj1100z00_1698;
BgL_obj1100z00_1698 = 
(BgL_variablez00_bglt)(BgL_variablez00_10); 
BgL_funz00_903 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1698))->BgL_valuez00); } 
{ /* ./Cfa/specialize.scm 291 */
obj_t BgL_arg3303z00_904;
{ /* ./Cfa/specialize.scm 291 */
obj_t BgL_arg3306z00_905;
{ /* ./Cfa/specialize.scm 291 */
BgL_sfunz00_bglt BgL_obj1370z00_1699;
BgL_obj1370z00_1699 = 
(BgL_sfunz00_bglt)(BgL_funz00_903); 
BgL_arg3306z00_905 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1370z00_1699))->BgL_bodyz00); } 
{ /* ./Cfa/specialize.scm 291 */
BgL_nodez00_bglt BgL_nodez00_1700;
BgL_nodez00_1700 = 
(BgL_nodez00_bglt)(BgL_arg3306z00_905); 
{ /* ./Cfa/specialize.scm 291 */
obj_t BgL_method2876z00_1701;
{ /* ./Cfa/specialize.scm 291 */
BgL_objectz00_bglt BgL_objz00_1702;
BgL_objz00_1702 = 
(BgL_objectz00_bglt)(BgL_nodez00_1700); 
{ /* ./Cfa/specialize.scm 291 */
long BgL_objzd2classzd2numz00_1703;
BgL_objzd2classzd2numz00_1703 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1702); 
{ /* ./Cfa/specialize.scm 291 */
obj_t BgL_arg2017z00_1704;
{ /* ./Cfa/specialize.scm 291 */
int BgL_auxz00_3080;
BgL_auxz00_3080 = 
(int)(((long)1)); 
BgL_arg2017z00_1704 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3080); } 
{ /* ./Cfa/specialize.scm 291 */
int BgL_offsetz00_1707;
BgL_offsetz00_1707 = 
(int)(BgL_objzd2classzd2numz00_1703); 
{ /* ./Cfa/specialize.scm 291 */
long BgL_offsetz00_1708;
{ /* ./Cfa/specialize.scm 291 */
long BgL_auxz00_3084;
BgL_auxz00_3084 = 
(long)(BgL_offsetz00_1707); 
BgL_offsetz00_1708 = 
(BgL_auxz00_3084-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 291 */
long BgL_modz00_1709;
{ /* ./Cfa/specialize.scm 291 */
int BgL_arg2028z00_1710;
BgL_arg2028z00_1710 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 291 */
long BgL_n2z00_1718;
BgL_n2z00_1718 = 
(long)(BgL_arg2028z00_1710); 
BgL_modz00_1709 = 
(BgL_offsetz00_1708/BgL_n2z00_1718); } } 
{ /* ./Cfa/specialize.scm 291 */
long BgL_restz00_1711;
{ /* ./Cfa/specialize.scm 291 */
int BgL_arg2024z00_1712;
BgL_arg2024z00_1712 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 291 */
long BgL_n2z00_1721;
BgL_n2z00_1721 = 
(long)(BgL_arg2024z00_1712); 
BgL_restz00_1711 = 
(BgL_offsetz00_1708%BgL_n2z00_1721); } } 
{ /* ./Cfa/specialize.scm 291 */

{ /* ./Cfa/specialize.scm 291 */
obj_t BgL_bucketz00_1713;
{ /* ./Cfa/specialize.scm 291 */
int BgL_kz00_1723;
BgL_kz00_1723 = 
(int)(BgL_modz00_1709); 
BgL_bucketz00_1713 = 
VECTOR_REF(BgL_arg2017z00_1704,BgL_kz00_1723); } 
{ /* ./Cfa/specialize.scm 291 */
int BgL_kz00_1725;
BgL_kz00_1725 = 
(int)(BgL_restz00_1711); 
BgL_method2876z00_1701 = 
VECTOR_REF(BgL_bucketz00_1713,BgL_kz00_1725); } } } } } } } } } } 
BgL_arg3303z00_904 = 
PROCEDURE_ENTRY(BgL_method2876z00_1701)(BgL_method2876z00_1701, 
(obj_t)(BgL_nodez00_1700), BEOA); } } } 
{ /* ./Cfa/specialize.scm 291 */
BgL_sfunz00_bglt BgL_obj1373z00_1726;obj_t BgL_val1371z00_1727;
BgL_obj1373z00_1726 = 
(BgL_sfunz00_bglt)(BgL_funz00_903); 
BgL_val1371z00_1727 = BgL_arg3303z00_904; 
return 
((((BgL_sfunz00_bglt)CREF(BgL_obj1373z00_1726))->BgL_bodyz00) = ((obj_t)BgL_val1371z00_1727), BUNSPEC);} } } } 
}



/* patch*! */
obj_t BGl_patchza2z12zb0zzcfa_specializa7eza7(obj_t BgL_nodeza2za2_33)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 471 */
{ 
obj_t BgL_nodeza2za2_906;
BgL_nodeza2za2_906 = BgL_nodeza2za2_33; 
BgL_loopz00_907:
{ /* ./Cfa/specialize.scm 473 */
bool_t BgL_test3311z00_908;
BgL_test3311z00_908 = 
NULLP(BgL_nodeza2za2_906); 
if(BgL_test3311z00_908)
{ /* ./Cfa/specialize.scm 473 */
return 
CNST_TABLE_REF(((long)6));}  else 
{ /* ./Cfa/specialize.scm 473 */
{ /* ./Cfa/specialize.scm 476 */
obj_t BgL_arg3313z00_909;
{ /* ./Cfa/specialize.scm 476 */
obj_t BgL_arg3316z00_910;
BgL_arg3316z00_910 = 
CAR(BgL_nodeza2za2_906); 
{ /* ./Cfa/specialize.scm 476 */
BgL_nodez00_bglt BgL_nodez00_1730;
BgL_nodez00_1730 = 
(BgL_nodez00_bglt)(BgL_arg3316z00_910); 
{ /* ./Cfa/specialize.scm 476 */
obj_t BgL_method2876z00_1731;
{ /* ./Cfa/specialize.scm 476 */
BgL_objectz00_bglt BgL_objz00_1732;
BgL_objz00_1732 = 
(BgL_objectz00_bglt)(BgL_nodez00_1730); 
{ /* ./Cfa/specialize.scm 476 */
long BgL_objzd2classzd2numz00_1733;
BgL_objzd2classzd2numz00_1733 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1732); 
{ /* ./Cfa/specialize.scm 476 */
obj_t BgL_arg2017z00_1734;
{ /* ./Cfa/specialize.scm 476 */
int BgL_auxz00_3109;
BgL_auxz00_3109 = 
(int)(((long)1)); 
BgL_arg2017z00_1734 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3109); } 
{ /* ./Cfa/specialize.scm 476 */
int BgL_offsetz00_1737;
BgL_offsetz00_1737 = 
(int)(BgL_objzd2classzd2numz00_1733); 
{ /* ./Cfa/specialize.scm 476 */
long BgL_offsetz00_1738;
{ /* ./Cfa/specialize.scm 476 */
long BgL_auxz00_3113;
BgL_auxz00_3113 = 
(long)(BgL_offsetz00_1737); 
BgL_offsetz00_1738 = 
(BgL_auxz00_3113-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 476 */
long BgL_modz00_1739;
{ /* ./Cfa/specialize.scm 476 */
int BgL_arg2028z00_1740;
BgL_arg2028z00_1740 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 476 */
long BgL_n2z00_1748;
BgL_n2z00_1748 = 
(long)(BgL_arg2028z00_1740); 
BgL_modz00_1739 = 
(BgL_offsetz00_1738/BgL_n2z00_1748); } } 
{ /* ./Cfa/specialize.scm 476 */
long BgL_restz00_1741;
{ /* ./Cfa/specialize.scm 476 */
int BgL_arg2024z00_1742;
BgL_arg2024z00_1742 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 476 */
long BgL_n2z00_1751;
BgL_n2z00_1751 = 
(long)(BgL_arg2024z00_1742); 
BgL_restz00_1741 = 
(BgL_offsetz00_1738%BgL_n2z00_1751); } } 
{ /* ./Cfa/specialize.scm 476 */

{ /* ./Cfa/specialize.scm 476 */
obj_t BgL_bucketz00_1743;
{ /* ./Cfa/specialize.scm 476 */
int BgL_kz00_1753;
BgL_kz00_1753 = 
(int)(BgL_modz00_1739); 
BgL_bucketz00_1743 = 
VECTOR_REF(BgL_arg2017z00_1734,BgL_kz00_1753); } 
{ /* ./Cfa/specialize.scm 476 */
int BgL_kz00_1755;
BgL_kz00_1755 = 
(int)(BgL_restz00_1741); 
BgL_method2876z00_1731 = 
VECTOR_REF(BgL_bucketz00_1743,BgL_kz00_1755); } } } } } } } } } } 
BgL_arg3313z00_909 = 
PROCEDURE_ENTRY(BgL_method2876z00_1731)(BgL_method2876z00_1731, 
(obj_t)(BgL_nodez00_1730), BEOA); } } } 
SET_CAR(BgL_nodeza2za2_906, BgL_arg3313z00_909); } 
{ /* ./Cfa/specialize.scm 477 */
obj_t BgL_arg3320z00_911;
BgL_arg3320z00_911 = 
CDR(BgL_nodeza2za2_906); 
{ 
obj_t BgL_nodeza2za2_3131;
BgL_nodeza2za2_3131 = BgL_arg3320z00_911; 
BgL_nodeza2za2_906 = BgL_nodeza2za2_3131; 
goto BgL_loopz00_907;} } } } } } 
}



/* specialize-app! */
BgL_appz00_bglt BGl_specializa7ezd2appz12z67zzcfa_specializa7eza7(BgL_appz00_bglt BgL_nodez00_35)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 496 */
{ /* ./Cfa/specialize.scm 498 */
bool_t BgL_test3324z00_913;
{ /* ./Cfa/specialize.scm 498 */
obj_t BgL_auxz00_3132;
BgL_auxz00_3132 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_35))->BgL_argsz00); 
BgL_test3324z00_913 = 
NULLP(BgL_auxz00_3132); } 
if(BgL_test3324z00_913)
{ /* ./Cfa/specialize.scm 498 */
return BgL_nodez00_35;}  else 
{ /* ./Cfa/specialize.scm 502 */
BgL_typez00_bglt BgL_typez00_914;
{ /* ./Cfa/specialize.scm 502 */
obj_t BgL_arg3371z00_934;
{ /* ./Cfa/specialize.scm 502 */
obj_t BgL_auxz00_3136;
BgL_auxz00_3136 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_35))->BgL_argsz00); 
BgL_arg3371z00_934 = 
CAR(BgL_auxz00_3136); } 
BgL_typez00_914 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_arg3371z00_934)); } 
{ /* ./Cfa/specialize.scm 502 */
obj_t BgL_typez00_915;
{ /* ./Cfa/specialize.scm 503 */
bool_t BgL_test3366z00_932;
{ /* ./Cfa/specialize.scm 503 */
bool_t BgL_test3367z00_933;
{ /* ./Cfa/specialize.scm 503 */
obj_t BgL_auxz00_3141;
BgL_auxz00_3141 = 
(obj_t)(BgL_typez00_914); 
BgL_test3367z00_933 = 
(BgL_auxz00_3141==BGl_za2charza2z00zztype_cachez00); } 
if(BgL_test3367z00_933)
{ /* ./Cfa/specialize.scm 503 */
BgL_test3366z00_932 = ((bool_t)1); }  else 
{ /* ./Cfa/specialize.scm 503 */
obj_t BgL_auxz00_3145;
BgL_auxz00_3145 = 
(obj_t)(BgL_typez00_914); 
BgL_test3366z00_932 = 
(BgL_auxz00_3145==BGl_za2intza2z00zztype_cachez00); } } 
if(BgL_test3366z00_932)
{ /* ./Cfa/specialize.scm 503 */
BgL_typez00_915 = BGl_za2longza2z00zztype_cachez00; }  else 
{ /* ./Cfa/specialize.scm 503 */
BgL_typez00_915 = 
(obj_t)(BgL_typez00_914); } } 
{ /* ./Cfa/specialize.scm 503 */
BgL_variablez00_bglt BgL_gloz00_916;
{ /* ./Cfa/specialize.scm 506 */
BgL_varz00_bglt BgL_arg3363z00_931;
BgL_arg3363z00_931 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_35))->BgL_funz00); 
BgL_gloz00_916 = 
(((BgL_varz00_bglt)CREF(BgL_arg3363z00_931))->BgL_variablez00); } 
{ /* ./Cfa/specialize.scm 506 */
obj_t BgL_specz00_917;
{ /* ./Cfa/specialize.scm 507 */
obj_t BgL_auxz00_3152;
{ /* ./Cfa/specialize.scm 507 */
BgL_specializa7edzd2globalz75_bglt BgL_obj2764z00_1765;
BgL_obj2764z00_1765 = 
(BgL_specializa7edzd2globalz75_bglt)(BgL_gloz00_916); 
{ 
obj_t BgL_auxz00_3154;
{ /* ./Cfa/specialize.scm 507 */
BgL_objectz00_bglt BgL_auxz00_3155;
BgL_auxz00_3155 = 
(BgL_objectz00_bglt)(BgL_obj2764z00_1765); 
BgL_auxz00_3154 = 
BGL_OBJECT_WIDENING(BgL_auxz00_3155); } 
BgL_auxz00_3152 = 
(((BgL_specializa7edzd2globalz75_bglt)CREF(BgL_auxz00_3154))->BgL_fixz00); } } 
BgL_specz00_917 = 
BGl_assqz00zz__r4_pairs_and_lists_6_3z00(BgL_typez00_915, BgL_auxz00_3152); } 
{ /* ./Cfa/specialize.scm 507 */

{ /* ./Cfa/specialize.scm 508 */
bool_t BgL_test3325z00_918;
BgL_test3325z00_918 = 
PAIRP(BgL_specz00_917); 
if(BgL_test3325z00_918)
{ 
obj_t BgL_argsz00_919;
{ /* ./Cfa/specialize.scm 509 */
obj_t BgL_arg3327z00_921;
{ /* ./Cfa/specialize.scm 509 */
obj_t BgL_auxz00_3162;
BgL_auxz00_3162 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_35))->BgL_argsz00); 
BgL_arg3327z00_921 = 
CDR(BgL_auxz00_3162); } 
BgL_argsz00_919 = BgL_arg3327z00_921; 
BgL_loopz00_920:
{ /* ./Cfa/specialize.scm 511 */
bool_t BgL_test3333z00_923;
BgL_test3333z00_923 = 
NULLP(BgL_argsz00_919); 
if(BgL_test3333z00_923)
{ /* ./Cfa/specialize.scm 511 */
BGl_addzd2specializa7edzd2typez12zb5zzcfa_specializa7eza7(BgL_typez00_915); 
{ /* ./Cfa/specialize.scm 513 */
BgL_varz00_bglt BgL_arg3336z00_924;obj_t BgL_arg3337z00_925;
BgL_arg3336z00_924 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_35))->BgL_funz00); 
BgL_arg3337z00_925 = 
CDR(BgL_specz00_917); 
{ /* ./Cfa/specialize.scm 513 */
BgL_varz00_bglt BgL_obj1627z00_1772;BgL_variablez00_bglt BgL_val1626z00_1773;
BgL_obj1627z00_1772 = BgL_arg3336z00_924; 
BgL_val1626z00_1773 = 
(BgL_variablez00_bglt)(BgL_arg3337z00_925); 
((((BgL_varz00_bglt)CREF(BgL_obj1627z00_1772))->BgL_variablez00) = ((BgL_variablez00_bglt)BgL_val1626z00_1773), BUNSPEC); } } 
{ /* ./Cfa/specialize.scm 514 */
BgL_nodez00_bglt BgL_obj1563z00_1774;BgL_typez00_bglt BgL_val1562z00_1775;
BgL_obj1563z00_1774 = 
(BgL_nodez00_bglt)(BgL_nodez00_35); 
BgL_val1562z00_1775 = 
(BgL_typez00_bglt)(BgL_typez00_915); 
((((BgL_nodez00_bglt)CREF(BgL_obj1563z00_1774))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1562z00_1775), BUNSPEC); } 
return BgL_nodez00_35;}  else 
{ /* ./Cfa/specialize.scm 516 */
bool_t BgL_test3342z00_926;
{ /* ./Cfa/specialize.scm 516 */
BgL_typez00_bglt BgL_arg3349z00_928;
{ /* ./Cfa/specialize.scm 516 */
obj_t BgL_arg3352z00_929;
BgL_arg3352z00_929 = 
CAR(BgL_argsz00_919); 
BgL_arg3349z00_928 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_arg3352z00_929)); } 
{ /* ./Cfa/specialize.scm 516 */
obj_t BgL_auxz00_3178;
BgL_auxz00_3178 = 
(obj_t)(BgL_arg3349z00_928); 
BgL_test3342z00_926 = 
(BgL_auxz00_3178==BgL_typez00_915); } } 
if(BgL_test3342z00_926)
{ /* ./Cfa/specialize.scm 516 */
{ /* ./Cfa/specialize.scm 517 */
obj_t BgL_arg3344z00_927;
BgL_arg3344z00_927 = 
CDR(BgL_argsz00_919); 
{ 
obj_t BgL_argsz00_3183;
BgL_argsz00_3183 = BgL_arg3344z00_927; 
BgL_argsz00_919 = BgL_argsz00_3183; 
goto BgL_loopz00_920;} } }  else 
{ /* ./Cfa/specialize.scm 516 */
return 
BGl_specializa7ezd2eqzf3z86zzcfa_specializa7eza7(BgL_nodez00_35);} } } } }  else 
{ /* ./Cfa/specialize.scm 508 */
return 
BGl_specializa7ezd2eqzf3z86zzcfa_specializa7eza7(BgL_nodez00_35);} } } } } } } } } 
}



/* specialize-eq? */
BgL_appz00_bglt BGl_specializa7ezd2eqzf3z86zzcfa_specializa7eza7(BgL_appz00_bglt BgL_nodez00_36)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 530 */
{ 
BgL_appz00_bglt BgL_nodez00_965;obj_t BgL_typez00_966;
{ /* ./Cfa/specialize.scm 537 */
bool_t BgL_test3381z00_939;
{ /* ./Cfa/specialize.scm 537 */
bool_t BgL_test3432z00_962;
{ /* ./Cfa/specialize.scm 537 */
obj_t BgL_auxz00_3186;
BgL_auxz00_3186 = 
BGl_memqz00zz__r4_pairs_and_lists_6_3z00(BGl_za2targetzd2languageza2zd2zzengine_paramz00, 
CNST_TABLE_REF(((long)7))); 
BgL_test3432z00_962 = 
CBOOL(BgL_auxz00_3186); } 
if(BgL_test3432z00_962)
{ /* ./Cfa/specialize.scm 538 */
BgL_variablez00_bglt BgL_arg3434z00_963;
{ /* ./Cfa/specialize.scm 538 */
BgL_varz00_bglt BgL_arg3437z00_964;
BgL_arg3437z00_964 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_36))->BgL_funz00); 
BgL_arg3434z00_963 = 
(((BgL_varz00_bglt)CREF(BgL_arg3437z00_964))->BgL_variablez00); } 
{ /* ./Cfa/specialize.scm 538 */
obj_t BgL_auxz00_3193;
BgL_auxz00_3193 = 
(obj_t)(BgL_arg3434z00_963); 
BgL_test3381z00_939 = 
(BgL_auxz00_3193==BGl_za2czd2eqzf3za2z21zzcfa_specializa7eza7); } }  else 
{ /* ./Cfa/specialize.scm 537 */
BgL_test3381z00_939 = ((bool_t)0); } } 
if(BgL_test3381z00_939)
{ /* ./Cfa/specialize.scm 540 */
BgL_typez00_bglt BgL_t1z00_940;BgL_typez00_bglt BgL_t2z00_941;
{ /* ./Cfa/specialize.scm 540 */
obj_t BgL_arg3419z00_958;
{ /* ./Cfa/specialize.scm 540 */
obj_t BgL_auxz00_3197;
BgL_auxz00_3197 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_36))->BgL_argsz00); 
BgL_arg3419z00_958 = 
CAR(BgL_auxz00_3197); } 
BgL_t1z00_940 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_arg3419z00_958)); } 
{ /* ./Cfa/specialize.scm 541 */
obj_t BgL_arg3426z00_960;
{ /* ./Cfa/specialize.scm 541 */
obj_t BgL_auxz00_3202;
{ /* ./Cfa/specialize.scm 541 */
obj_t BgL_auxz00_3203;
BgL_auxz00_3203 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_36))->BgL_argsz00); 
BgL_auxz00_3202 = 
CDR(BgL_auxz00_3203); } 
BgL_arg3426z00_960 = 
CAR(BgL_auxz00_3202); } 
BgL_t2z00_941 = 
BGl_typeofz00zztype_typeofz00(
(BgL_nodez00_bglt)(BgL_arg3426z00_960)); } 
{ /* ./Cfa/specialize.scm 543 */
bool_t BgL_test3382z00_942;
{ /* ./Cfa/specialize.scm 543 */
bool_t BgL_test3415z00_957;
{ /* ./Cfa/specialize.scm 543 */
obj_t BgL_auxz00_3209;
BgL_auxz00_3209 = 
(obj_t)(BgL_t1z00_940); 
BgL_test3415z00_957 = 
(BgL_auxz00_3209==BGl_za2objza2z00zztype_cachez00); } 
if(BgL_test3415z00_957)
{ /* ./Cfa/specialize.scm 543 */
obj_t BgL_auxz00_3213;
BgL_auxz00_3213 = 
(obj_t)(BgL_t2z00_941); 
BgL_test3382z00_942 = 
(BgL_auxz00_3213==BGl_za2objza2z00zztype_cachez00); }  else 
{ /* ./Cfa/specialize.scm 543 */
BgL_test3382z00_942 = ((bool_t)0); } } 
if(BgL_test3382z00_942)
{ /* ./Cfa/specialize.scm 543 */BUNSPEC; }  else 
{ /* ./Cfa/specialize.scm 545 */
bool_t BgL_test3383z00_943;
{ /* ./Cfa/specialize.scm 545 */
obj_t BgL_auxz00_3217;
BgL_auxz00_3217 = 
(obj_t)(BgL_t1z00_940); 
BgL_test3383z00_943 = 
(BgL_auxz00_3217==BGl_za2bintza2z00zztype_cachez00); } 
if(BgL_test3383z00_943)
{ /* ./Cfa/specialize.scm 545 */
{ /* ./Cfa/specialize.scm 546 */
bool_t BgL_test3384z00_944;
{ /* ./Cfa/specialize.scm 546 */
obj_t BgL_auxz00_3221;
BgL_auxz00_3221 = 
(obj_t)(BgL_t2z00_941); 
BgL_test3384z00_944 = 
(BgL_auxz00_3221==BGl_za2bintza2z00zztype_cachez00); } 
if(BgL_test3384z00_944)
{ /* ./Cfa/specialize.scm 546 */
BgL_nodez00_965 = BgL_nodez00_36; 
BgL_typez00_966 = BGl_za2bintza2z00zztype_cachez00; 
BgL_zc3anonymousza33441ze3z83_967:
{ /* ./Cfa/specialize.scm 533 */
bool_t BgL_test3442z00_968;
{ /* ./Cfa/specialize.scm 533 */
obj_t BgL_obj1240z00_1787;
BgL_obj1240z00_1787 = BGl_za2boxedzd2eqzf3za2z21zzcfa_specializa7eza7; 
BgL_test3442z00_968 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1240z00_1787, BGl_globalz00zzast_varz00); } 
if(BgL_test3442z00_968)
{ /* ./Cfa/specialize.scm 533 */
{ /* ./Cfa/specialize.scm 535 */
BgL_varz00_bglt BgL_arg3444z00_969;
BgL_arg3444z00_969 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_36))->BgL_funz00); 
{ /* ./Cfa/specialize.scm 535 */
BgL_varz00_bglt BgL_obj1627z00_1789;BgL_variablez00_bglt BgL_val1626z00_1790;
BgL_obj1627z00_1789 = BgL_arg3444z00_969; 
BgL_val1626z00_1790 = 
(BgL_variablez00_bglt)(BGl_za2boxedzd2eqzf3za2z21zzcfa_specializa7eza7); 
((((BgL_varz00_bglt)CREF(BgL_obj1627z00_1789))->BgL_variablez00) = ((BgL_variablez00_bglt)BgL_val1626z00_1790), BUNSPEC); } } 
BGl_addzd2specializa7edzd2eqzd2typez12z67zzcfa_specializa7eza7(BgL_typez00_966); }  else 
{ /* ./Cfa/specialize.scm 533 */BFALSE; } } }  else 
{ /* ./Cfa/specialize.scm 546 */BFALSE; } } }  else 
{ /* ./Cfa/specialize.scm 549 */
bool_t BgL_test3387z00_945;
{ /* ./Cfa/specialize.scm 549 */
obj_t BgL_auxz00_3231;
BgL_auxz00_3231 = 
(obj_t)(BgL_t2z00_941); 
BgL_test3387z00_945 = 
(BgL_auxz00_3231==BGl_za2bintza2z00zztype_cachez00); } 
if(BgL_test3387z00_945)
{ /* ./Cfa/specialize.scm 549 */BUNSPEC; }  else 
{ /* ./Cfa/specialize.scm 551 */
bool_t BgL_test3388z00_946;
{ /* ./Cfa/specialize.scm 551 */
obj_t BgL_auxz00_3235;
BgL_auxz00_3235 = 
(obj_t)(BgL_t1z00_940); 
BgL_test3388z00_946 = 
(BgL_auxz00_3235==BGl_za2brealza2z00zztype_cachez00); } 
if(BgL_test3388z00_946)
{ /* ./Cfa/specialize.scm 551 */
{ /* ./Cfa/specialize.scm 552 */
bool_t BgL_test3389z00_947;
{ /* ./Cfa/specialize.scm 552 */
obj_t BgL_auxz00_3239;
BgL_auxz00_3239 = 
(obj_t)(BgL_t2z00_941); 
BgL_test3389z00_947 = 
(BgL_auxz00_3239==BGl_za2brealza2z00zztype_cachez00); } 
if(BgL_test3389z00_947)
{ 
obj_t BgL_typez00_3244;BgL_appz00_bglt BgL_nodez00_3243;
BgL_nodez00_3243 = BgL_nodez00_36; 
BgL_typez00_3244 = BGl_za2brealza2z00zztype_cachez00; 
BgL_typez00_966 = BgL_typez00_3244; 
BgL_nodez00_965 = BgL_nodez00_3243; 
goto BgL_zc3anonymousza33441ze3z83_967;}  else 
{ /* ./Cfa/specialize.scm 552 */BFALSE; } } }  else 
{ /* ./Cfa/specialize.scm 555 */
bool_t BgL_test3392z00_948;
{ /* ./Cfa/specialize.scm 555 */
obj_t BgL_auxz00_3245;
BgL_auxz00_3245 = 
(obj_t)(BgL_t2z00_941); 
BgL_test3392z00_948 = 
(BgL_auxz00_3245==BGl_za2brealza2z00zztype_cachez00); } 
if(BgL_test3392z00_948)
{ /* ./Cfa/specialize.scm 555 */BUNSPEC; }  else 
{ /* ./Cfa/specialize.scm 557 */
bool_t BgL_test3393z00_949;
{ /* ./Cfa/specialize.scm 557 */
obj_t BgL_auxz00_3249;
BgL_auxz00_3249 = 
(obj_t)(BgL_t2z00_941); 
BgL_test3393z00_949 = 
(BgL_auxz00_3249==BGl_za2bintza2z00zztype_cachez00); } 
if(BgL_test3393z00_949)
{ /* ./Cfa/specialize.scm 557 */BUNSPEC; }  else 
{ /* ./Cfa/specialize.scm 559 */
bool_t BgL_test3394z00_950;
{ /* ./Cfa/specialize.scm 559 */
obj_t BgL_auxz00_3253;
BgL_auxz00_3253 = 
(obj_t)(BgL_t1z00_940); 
BgL_test3394z00_950 = 
(BgL_auxz00_3253==BGl_za2bcharza2z00zztype_cachez00); } 
if(BgL_test3394z00_950)
{ /* ./Cfa/specialize.scm 559 */
{ /* ./Cfa/specialize.scm 560 */
bool_t BgL_test3395z00_951;
{ /* ./Cfa/specialize.scm 560 */
obj_t BgL_auxz00_3257;
BgL_auxz00_3257 = 
(obj_t)(BgL_t2z00_941); 
BgL_test3395z00_951 = 
(BgL_auxz00_3257==BGl_za2bcharza2z00zztype_cachez00); } 
if(BgL_test3395z00_951)
{ 
obj_t BgL_typez00_3262;BgL_appz00_bglt BgL_nodez00_3261;
BgL_nodez00_3261 = BgL_nodez00_36; 
BgL_typez00_3262 = BGl_za2bcharza2z00zztype_cachez00; 
BgL_typez00_966 = BgL_typez00_3262; 
BgL_nodez00_965 = BgL_nodez00_3261; 
goto BgL_zc3anonymousza33441ze3z83_967;}  else 
{ /* ./Cfa/specialize.scm 560 */BFALSE; } } }  else 
{ /* ./Cfa/specialize.scm 563 */
bool_t BgL_test3398z00_952;
{ /* ./Cfa/specialize.scm 563 */
obj_t BgL_auxz00_3263;
BgL_auxz00_3263 = 
(obj_t)(BgL_t2z00_941); 
BgL_test3398z00_952 = 
(BgL_auxz00_3263==BGl_za2bcharza2z00zztype_cachez00); } 
if(BgL_test3398z00_952)
{ /* ./Cfa/specialize.scm 563 */BUNSPEC; }  else 
{ /* ./Cfa/specialize.scm 565 */
bool_t BgL_test3399z00_953;
{ /* ./Cfa/specialize.scm 565 */
bool_t BgL_test3405z00_956;
BgL_test3405z00_956 = 
BGl_bigloozd2typezf3z21zztype_typez00(BgL_t1z00_940); 
if(BgL_test3405z00_956)
{ /* ./Cfa/specialize.scm 565 */
BgL_test3399z00_953 = 
BGl_bigloozd2typezf3z21zztype_typez00(BgL_t2z00_941); }  else 
{ /* ./Cfa/specialize.scm 565 */
BgL_test3399z00_953 = ((bool_t)0); } } 
if(BgL_test3399z00_953)
{ /* ./Cfa/specialize.scm 565 */
{ /* ./Cfa/specialize.scm 567 */
BgL_typez00_bglt BgL_arg3401z00_954;
{ /* ./Cfa/specialize.scm 567 */
bool_t BgL_test3403z00_955;
{ /* ./Cfa/specialize.scm 567 */
obj_t BgL_auxz00_3271;
BgL_auxz00_3271 = 
(obj_t)(BgL_t1z00_940); 
BgL_test3403z00_955 = 
(BgL_auxz00_3271==BGl_za2objza2z00zztype_cachez00); } 
if(BgL_test3403z00_955)
{ /* ./Cfa/specialize.scm 567 */
BgL_arg3401z00_954 = BgL_t2z00_941; }  else 
{ /* ./Cfa/specialize.scm 567 */
BgL_arg3401z00_954 = BgL_t1z00_940; } } 
{ 
obj_t BgL_typez00_3276;BgL_appz00_bglt BgL_nodez00_3275;
BgL_nodez00_3275 = BgL_nodez00_36; 
BgL_typez00_3276 = 
(obj_t)(BgL_arg3401z00_954); 
BgL_typez00_966 = BgL_typez00_3276; 
BgL_nodez00_965 = BgL_nodez00_3275; 
goto BgL_zc3anonymousza33441ze3z83_967;} } }  else 
{ /* ./Cfa/specialize.scm 565 */BUNSPEC; } } } } } } } } } } 
return BgL_nodez00_36;}  else 
{ /* ./Cfa/specialize.scm 537 */
return BgL_nodez00_36;} } } } 
}



/* object-init */
obj_t BGl_objectzd2initzd2zzcfa_specializa7eza7()
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 19 */
{ /* ./Cfa/specialize.scm 33 */
obj_t BgL_arg3450z00_971;obj_t BgL_arg3451z00_972;obj_t BgL_arg3455z00_976;
BgL_arg3450z00_971 = 
CNST_TABLE_REF(((long)8)); 
BgL_arg3451z00_972 = BGl_globalz00zzast_varz00; 
{ /* ./Cfa/specialize.scm 33 */
obj_t BgL_v2873z00_977;
{ 
int BgL_auxz00_3279;
BgL_auxz00_3279 = 
(int)(((long)0)); 
BgL_v2873z00_977 = 
create_vector(BgL_auxz00_3279); } 
BgL_arg3455z00_976 = BgL_v2873z00_977; } 
BGl_specializa7edzd2globalz75zzcfa_specializa7eza7 = 
BGl_registerzd2classz12zc0zz__objectz00(BgL_arg3450z00_971, BgL_arg3451z00_972, BFALSE, BGl_allocatezd2specializa7edzd2globalzd2envz75zzcfa_specializa7eza7, ((long)32964), BNIL, BFALSE, BgL_arg3455z00_976); } 
return BUNSPEC;} 
}



/* _allocate-specialized-global */
obj_t BGl__allocatezd2specializa7edzd2globalza7zzcfa_specializa7eza7(obj_t BgL_envz00_2645)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 33 */
{ /* ./Cfa/specialize.scm 33 */
BgL_globalz00_bglt BgL_auxz00_3283;
{ /* ./Cfa/specialize.scm 33 */
BgL_globalz00_bglt BgL_res4935z00_2738;
{ /* ./Cfa/specialize.scm 33 */
BgL_globalz00_bglt BgL_new2756z00_2734;
BgL_new2756z00_2734 = 
((BgL_globalz00_bglt)BREF( GC_MALLOC ( sizeof(struct BgL_globalz00_bgl) ))); 
{ /* ./Cfa/specialize.scm 33 */
long BgL_arg3471z00_2735;
BgL_arg3471z00_2735 = 
BGl_classzd2numzd2zz__objectz00(BGl_specializa7edzd2globalz75zzcfa_specializa7eza7); 
{ /* ./Cfa/specialize.scm 33 */
BgL_objectz00_bglt BgL_objz00_2736;
BgL_objz00_2736 = 
(BgL_objectz00_bglt)(BgL_new2756z00_2734); 
BGL_OBJECT_CLASS_NUM_SET(BgL_objz00_2736, BgL_arg3471z00_2735); } } 
{ /* ./Cfa/specialize.scm 33 */
BgL_objectz00_bglt BgL_auxz00_3288;
BgL_auxz00_3288 = 
(BgL_objectz00_bglt)(BgL_new2756z00_2734); 
BGL_OBJECT_WIDENING_SET(BgL_auxz00_3288, BFALSE); } 
{ /* ./Cfa/specialize.scm 33 */
obj_t BgL_objz00_2737;
BgL_objz00_2737 = 
(obj_t)(BgL_new2756z00_2734); 
BGL_HEAP_DEBUG_MARK_OBJ(BgL_objz00_2737); BUNSPEC; } 
BgL_res4935z00_2738 = BgL_new2756z00_2734; } 
BgL_auxz00_3283 = BgL_res4935z00_2738; } 
return 
(obj_t)(BgL_auxz00_3283);} } 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzcfa_specializa7eza7()
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 19 */
BGl_addzd2genericz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_patchz12zd2default2875zd2envz12zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_atomz00zzast_nodez00, BGl_proc4893z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_kwotez00zzast_nodez00, BGl_proc4894z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_varz00zzast_nodez00, BGl_proc4895z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_closurez00zzast_nodez00, BGl_proc4896z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_sequencez00zzast_nodez00, BGl_proc4897z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_appzd2lyzd2zzast_nodez00, BGl_proc4898z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_funcallz00zzast_nodez00, BGl_proc4899z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_externz00zzast_nodez00, BGl_proc4900z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_castz00zzast_nodez00, BGl_proc4901z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_setqz00zzast_nodez00, BGl_proc4902z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_conditionalz00zzast_nodez00, BGl_proc4903z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_failz00zzast_nodez00, BGl_proc4904z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_selectz00zzast_nodez00, BGl_proc4905z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_letzd2funzd2zzast_nodez00, BGl_proc4906z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_letzd2varzd2zzast_nodez00, BGl_proc4907z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_setzd2exzd2itz00zzast_nodez00, BGl_proc4908z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_jumpzd2exzd2itz00zzast_nodez00, BGl_proc4909z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_makezd2boxzd2zzast_nodez00, BGl_proc4910z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_boxzd2setz12zc0zzast_nodez00, BGl_proc4911z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_boxzd2refzd2zzast_nodez00, BGl_proc4912z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BGl_appz00zzast_nodez00, BGl_proc4913z00zzcfa_specializa7eza7); 
BGl_addzd2methodz12zc0zz__objectz00(BGl_objectzd2ze3structzd2envze3zz__objectz00, BGl_specializa7edzd2globalz75zzcfa_specializa7eza7, BGl_proc4914z00zzcfa_specializa7eza7); 
return 
BGl_addzd2methodz12zc0zz__objectz00(BGl_structzb2objectzd2ze3objectzd2envz51zz__objectz00, BGl_specializa7edzd2globalz75zzcfa_specializa7eza7, BGl_proc4915z00zzcfa_specializa7eza7);} 
}



/* struct+object->object-specialized-global2924 */
obj_t BGl_structzb2objectzd2ze3objectzd2specializa7edzd2global2924z24zzcfa_specializa7eza7(obj_t BgL_envz00_2674, obj_t BgL_oz00_2675, obj_t BgL_sz00_2676)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 33 */
{ 
BgL_specializa7edzd2globalz75_bglt BgL_oz00_1558;obj_t BgL_sz00_1559;
{ /* ./Cfa/specialize.scm 33 */
BgL_specializa7edzd2globalz75_bglt BgL_auxz00_3318;
BgL_oz00_1558 = 
(BgL_specializa7edzd2globalz75_bglt)(BgL_oz00_2675); 
BgL_sz00_1559 = BgL_sz00_2676; 
{ 

{ /* ./Cfa/specialize.scm 33 */
obj_t BgL_old2760z00_1562;obj_t BgL_aux2761z00_1563;
{ /* ./Cfa/specialize.scm 33 */
obj_t BgL_nextzd2method2923zd2_1568;
BgL_nextzd2method2923zd2_1568 = 
BGl_findzd2superzd2classzd2methodzd2zz__objectz00(
(BgL_objectz00_bglt)(BgL_oz00_1558), BGl_structzb2objectzd2ze3objectzd2envz51zz__objectz00, BGl_specializa7edzd2globalz75zzcfa_specializa7eza7); 
{ /* ./Cfa/specialize.scm 33 */
bool_t BgL_test4207z00_1569;
BgL_test4207z00_1569 = 
PROCEDUREP(BgL_nextzd2method2923zd2_1568); 
if(BgL_test4207z00_1569)
{ /* ./Cfa/specialize.scm 33 */
BgL_old2760z00_1562 = 
PROCEDURE_ENTRY(BgL_nextzd2method2923zd2_1568)(BgL_nextzd2method2923zd2_1568, 
(obj_t)(BgL_oz00_1558), BgL_sz00_1559, BEOA); }  else 
{ /* ./Cfa/specialize.scm 33 */
{ /* ./Cfa/specialize.scm 33 */
BgL_objectz00_bglt BgL_auxz00_3326;
BgL_auxz00_3326 = 
BGl_structzb2objectzd2ze3objectz83zz__objectz00(
(BgL_objectz00_bglt)(BgL_oz00_1558), BgL_sz00_1559); 
BgL_old2760z00_1562 = 
(obj_t)(BgL_auxz00_3326); } } } } 
{ /* ./Cfa/specialize.scm 33 */
int BgL_auxz00_3330;
BgL_auxz00_3330 = 
(int)(((long)0)); 
BgL_aux2761z00_1563 = 
STRUCT_REF(BgL_sz00_1559, BgL_auxz00_3330); } 
{ /* ./Cfa/specialize.scm 33 */
BgL_specializa7edzd2globalz75_bglt BgL_new2762z00_1564;
BgL_new2762z00_1564 = 
((BgL_specializa7edzd2globalz75_bglt)(BgL_old2760z00_1562)); 
{ /* ./Cfa/specialize.scm 33 */
long BgL_arg4194z00_1565;
BgL_arg4194z00_1565 = 
BGl_classzd2numzd2zz__objectz00(BGl_specializa7edzd2globalz75zzcfa_specializa7eza7); 
{ /* ./Cfa/specialize.scm 33 */
BgL_objectz00_bglt BgL_objz00_2596;
BgL_objz00_2596 = 
(BgL_objectz00_bglt)(BgL_new2762z00_1564); 
BGL_OBJECT_CLASS_NUM_SET(BgL_objz00_2596, BgL_arg4194z00_1565); } } 
{ /* ./Cfa/specialize.scm 33 */
BgL_specializa7edzd2globalz75_bglt BgL_arg4198z00_1566;
{ /* ./Cfa/specialize.scm 33 */
obj_t BgL_arg4201z00_1567;
{ /* ./Cfa/specialize.scm 33 */
int BgL_auxz00_3337;
BgL_auxz00_3337 = 
(int)(((long)0)); 
BgL_arg4201z00_1567 = 
STRUCT_REF(BgL_aux2761z00_1563, BgL_auxz00_3337); } 
{ /* ./Cfa/specialize.scm 33 */
BgL_specializa7edzd2globalz75_bglt BgL_res4289z00_2606;
{ /* ./Cfa/specialize.scm 33 */
BgL_specializa7edzd2globalz75_bglt BgL_new2731z00_2601;
BgL_new2731z00_2601 = 
((BgL_specializa7edzd2globalz75_bglt)BREF( GC_MALLOC (sizeof(struct BgL_specializa7edzd2globalz75_bgl)))); 
{ /* ./Cfa/specialize.scm 33 */
BgL_specializa7edzd2globalz75_bglt BgL_res4288z00_2605;
{ /* ./Cfa/specialize.scm 33 */
BgL_specializa7edzd2globalz75_bglt BgL_new2753z00_2602;
BgL_new2753z00_2602 = BgL_new2731z00_2601; 
{ /* ./Cfa/specialize.scm 33 */
obj_t BgL_fix2752z00_2604;
BgL_fix2752z00_2604 = BgL_arg4201z00_1567; 
((((BgL_specializa7edzd2globalz75_bglt)CREF(BgL_new2753z00_2602))->BgL_fixz00) = ((obj_t)BgL_fix2752z00_2604), BUNSPEC); 
BgL_res4288z00_2605 = BgL_new2753z00_2602; } } BgL_res4288z00_2605; } 
BgL_res4289z00_2606 = BgL_new2731z00_2601; } 
BgL_arg4198z00_1566 = BgL_res4289z00_2606; } } 
{ /* ./Cfa/specialize.scm 33 */
obj_t BgL_auxz00_3344;BgL_objectz00_bglt BgL_auxz00_3342;
BgL_auxz00_3344 = 
(obj_t)(BgL_arg4198z00_1566); 
BgL_auxz00_3342 = 
(BgL_objectz00_bglt)(BgL_new2762z00_1564); 
BGL_OBJECT_WIDENING_SET(BgL_auxz00_3342, BgL_auxz00_3344); } } 
{ /* ./Cfa/specialize.scm 33 */
obj_t BgL_objz00_2607;
BgL_objz00_2607 = 
(obj_t)(BgL_new2762z00_1564); 
BGL_HEAP_DEBUG_MARK_OBJ(BgL_objz00_2607); BUNSPEC; } 
BgL_auxz00_3318 = BgL_new2762z00_1564; } } } 
return 
(obj_t)(BgL_auxz00_3318);} } } 
}



/* object->struct-specialized-global2922 */
obj_t BGl_objectzd2ze3structzd2specializa7edzd2global2922z96zzcfa_specializa7eza7(obj_t BgL_envz00_2677, obj_t BgL_obj2757z00_2678)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 33 */
{ 
BgL_specializa7edzd2globalz75_bglt BgL_obj2757z00_1548;
BgL_obj2757z00_1548 = 
(BgL_specializa7edzd2globalz75_bglt)(BgL_obj2757z00_2678); 
{ 

{ /* ./Cfa/specialize.scm 33 */
obj_t BgL_res2758z00_1551;
{ /* ./Cfa/specialize.scm 33 */
obj_t BgL_nextzd2method2921zd2_1556;
BgL_nextzd2method2921zd2_1556 = 
BGl_findzd2superzd2classzd2methodzd2zz__objectz00(
(BgL_objectz00_bglt)(BgL_obj2757z00_1548), BGl_objectzd2ze3structzd2envze3zz__objectz00, BGl_specializa7edzd2globalz75zzcfa_specializa7eza7); 
{ /* ./Cfa/specialize.scm 33 */
bool_t BgL_test4187z00_1557;
BgL_test4187z00_1557 = 
PROCEDUREP(BgL_nextzd2method2921zd2_1556); 
if(BgL_test4187z00_1557)
{ /* ./Cfa/specialize.scm 33 */
BgL_res2758z00_1551 = 
PROCEDURE_ENTRY(BgL_nextzd2method2921zd2_1556)(BgL_nextzd2method2921zd2_1556, 
(obj_t)(BgL_obj2757z00_1548), BEOA); }  else 
{ /* ./Cfa/specialize.scm 33 */
BgL_res2758z00_1551 = 
BGl_objectzd2ze3structz31zz__objectz00(
(BgL_objectz00_bglt)(BgL_obj2757z00_1548)); } } } 
{ /* ./Cfa/specialize.scm 33 */
obj_t BgL_aux2759z00_1552;
{ /* ./Cfa/specialize.scm 33 */
obj_t BgL_keyz00_2577;int BgL_lenz00_2578;
BgL_keyz00_2577 = 
CNST_TABLE_REF(((long)8)); 
BgL_lenz00_2578 = 
(int)(((long)1)); 
BgL_aux2759z00_1552 = 
make_struct(BgL_keyz00_2577, BgL_lenz00_2578, BUNSPEC); } 
{ /* ./Cfa/specialize.scm 33 */
obj_t BgL_arg4176z00_1554;
{ 
obj_t BgL_auxz00_3363;
{ /* ./Cfa/specialize.scm 33 */
BgL_objectz00_bglt BgL_auxz00_3364;
BgL_auxz00_3364 = 
(BgL_objectz00_bglt)(BgL_obj2757z00_1548); 
BgL_auxz00_3363 = 
BGL_OBJECT_WIDENING(BgL_auxz00_3364); } 
BgL_arg4176z00_1554 = 
(((BgL_specializa7edzd2globalz75_bglt)CREF(BgL_auxz00_3363))->BgL_fixz00); } 
{ /* ./Cfa/specialize.scm 33 */
int BgL_kz00_2582;
BgL_kz00_2582 = 
(int)(((long)0)); 
STRUCT_SET(BgL_aux2759z00_1552, BgL_kz00_2582, BgL_arg4176z00_1554); } } 
{ /* ./Cfa/specialize.scm 33 */
int BgL_kz00_2585;
BgL_kz00_2585 = 
(int)(((long)0)); 
STRUCT_SET(BgL_res2758z00_1551, BgL_kz00_2585, BgL_aux2759z00_1552); } 
{ /* ./Cfa/specialize.scm 33 */
obj_t BgL_arg4181z00_1555;
BgL_arg4181z00_1555 = 
STRUCT_KEY(BgL_res2758z00_1551); 
STRUCT_KEY_SET(BgL_aux2759z00_1552, BgL_arg4181z00_1555); } 
{ /* ./Cfa/specialize.scm 33 */
obj_t BgL_kz00_2592;
BgL_kz00_2592 = 
CNST_TABLE_REF(((long)8)); 
STRUCT_KEY_SET(BgL_res2758z00_1551, BgL_kz00_2592); } 
return BgL_res2758z00_1551;} } } } } 
}



/* patch!-app2920 */
obj_t BGl_patchz12zd2app2920zc0zzcfa_specializa7eza7(obj_t BgL_envz00_2679, obj_t BgL_nodez00_2680)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 482 */
{ 
BgL_appz00_bglt BgL_nodez00_1536;
{ /* ./Cfa/specialize.scm 483 */
BgL_appz00_bglt BgL_auxz00_3377;
BgL_nodez00_1536 = 
(BgL_appz00_bglt)(BgL_nodez00_2680); 
{ /* ./Cfa/specialize.scm 484 */
obj_t BgL_arg4151z00_1540;
BgL_arg4151z00_1540 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_1536))->BgL_argsz00); 
BGl_patchza2z12zb0zzcfa_specializa7eza7(BgL_arg4151z00_1540); } 
{ /* ./Cfa/specialize.scm 485 */
obj_t BgL_arg4155z00_1541;
{ /* ./Cfa/specialize.scm 485 */
BgL_varz00_bglt BgL_arg4158z00_1542;
BgL_arg4158z00_1542 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_1536))->BgL_funz00); 
{ /* ./Cfa/specialize.scm 485 */
BgL_nodez00_bglt BgL_nodez00_2546;
BgL_nodez00_2546 = 
(BgL_nodez00_bglt)(BgL_arg4158z00_1542); 
{ /* ./Cfa/specialize.scm 485 */
obj_t BgL_method2876z00_2547;
{ /* ./Cfa/specialize.scm 485 */
BgL_objectz00_bglt BgL_objz00_2548;
BgL_objz00_2548 = 
(BgL_objectz00_bglt)(BgL_nodez00_2546); 
{ /* ./Cfa/specialize.scm 485 */
long BgL_objzd2classzd2numz00_2549;
BgL_objzd2classzd2numz00_2549 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2548); 
{ /* ./Cfa/specialize.scm 485 */
obj_t BgL_arg2017z00_2550;
{ /* ./Cfa/specialize.scm 485 */
int BgL_auxz00_3384;
BgL_auxz00_3384 = 
(int)(((long)1)); 
BgL_arg2017z00_2550 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3384); } 
{ /* ./Cfa/specialize.scm 485 */
int BgL_offsetz00_2553;
BgL_offsetz00_2553 = 
(int)(BgL_objzd2classzd2numz00_2549); 
{ /* ./Cfa/specialize.scm 485 */
long BgL_offsetz00_2554;
{ /* ./Cfa/specialize.scm 485 */
long BgL_auxz00_3388;
BgL_auxz00_3388 = 
(long)(BgL_offsetz00_2553); 
BgL_offsetz00_2554 = 
(BgL_auxz00_3388-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 485 */
long BgL_modz00_2555;
{ /* ./Cfa/specialize.scm 485 */
int BgL_arg2028z00_2556;
BgL_arg2028z00_2556 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 485 */
long BgL_n2z00_2564;
BgL_n2z00_2564 = 
(long)(BgL_arg2028z00_2556); 
BgL_modz00_2555 = 
(BgL_offsetz00_2554/BgL_n2z00_2564); } } 
{ /* ./Cfa/specialize.scm 485 */
long BgL_restz00_2557;
{ /* ./Cfa/specialize.scm 485 */
int BgL_arg2024z00_2558;
BgL_arg2024z00_2558 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 485 */
long BgL_n2z00_2567;
BgL_n2z00_2567 = 
(long)(BgL_arg2024z00_2558); 
BgL_restz00_2557 = 
(BgL_offsetz00_2554%BgL_n2z00_2567); } } 
{ /* ./Cfa/specialize.scm 485 */

{ /* ./Cfa/specialize.scm 485 */
obj_t BgL_bucketz00_2559;
{ /* ./Cfa/specialize.scm 485 */
int BgL_kz00_2569;
BgL_kz00_2569 = 
(int)(BgL_modz00_2555); 
BgL_bucketz00_2559 = 
VECTOR_REF(BgL_arg2017z00_2550,BgL_kz00_2569); } 
{ /* ./Cfa/specialize.scm 485 */
int BgL_kz00_2571;
BgL_kz00_2571 = 
(int)(BgL_restz00_2557); 
BgL_method2876z00_2547 = 
VECTOR_REF(BgL_bucketz00_2559,BgL_kz00_2571); } } } } } } } } } } 
BgL_arg4155z00_1541 = 
PROCEDURE_ENTRY(BgL_method2876z00_2547)(BgL_method2876z00_2547, 
(obj_t)(BgL_nodez00_2546), BEOA); } } } 
{ /* ./Cfa/specialize.scm 485 */
BgL_appz00_bglt BgL_obj1721z00_2572;BgL_varz00_bglt BgL_val1720z00_2573;
BgL_obj1721z00_2572 = BgL_nodez00_1536; 
BgL_val1720z00_2573 = 
(BgL_varz00_bglt)(BgL_arg4155z00_1541); 
((((BgL_appz00_bglt)CREF(BgL_obj1721z00_2572))->BgL_funz00) = ((BgL_varz00_bglt)BgL_val1720z00_2573), BUNSPEC); } } 
{ /* ./Cfa/specialize.scm 486 */
BgL_variablez00_bglt BgL_vz00_1543;
{ /* ./Cfa/specialize.scm 486 */
BgL_varz00_bglt BgL_arg4165z00_1545;
BgL_arg4165z00_1545 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_1536))->BgL_funz00); 
BgL_vz00_1543 = 
(((BgL_varz00_bglt)CREF(BgL_arg4165z00_1545))->BgL_variablez00); } 
{ /* ./Cfa/specialize.scm 488 */
bool_t BgL_test4161z00_1544;
BgL_test4161z00_1544 = 
BGl_iszd2azf3z21zz__objectz00(
(obj_t)(BgL_vz00_1543), BGl_specializa7edzd2globalz75zzcfa_specializa7eza7); 
if(BgL_test4161z00_1544)
{ /* ./Cfa/specialize.scm 488 */
BgL_auxz00_3377 = 
BGl_specializa7ezd2appz12z67zzcfa_specializa7eza7(BgL_nodez00_1536); }  else 
{ /* ./Cfa/specialize.scm 488 */
BgL_auxz00_3377 = BgL_nodez00_1536; } } } 
return 
(obj_t)(BgL_auxz00_3377);} } } 
}



/* patch!-box-ref2918 */
obj_t BGl_patchz12zd2boxzd2ref2918z12zzcfa_specializa7eza7(obj_t BgL_envz00_2681, obj_t BgL_nodez00_2682)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 463 */
{ 
BgL_boxzd2refzd2_bglt BgL_nodez00_1528;
{ /* ./Cfa/specialize.scm 464 */
BgL_boxzd2refzd2_bglt BgL_auxz00_3414;
BgL_nodez00_1528 = 
(BgL_boxzd2refzd2_bglt)(BgL_nodez00_2682); 
{ /* ./Cfa/specialize.scm 465 */
obj_t BgL_arg4138z00_1532;
{ /* ./Cfa/specialize.scm 465 */
BgL_varz00_bglt BgL_arg4141z00_1533;
BgL_arg4141z00_1533 = 
(((BgL_boxzd2refzd2_bglt)CREF(BgL_nodez00_1528))->BgL_varz00); 
{ /* ./Cfa/specialize.scm 465 */
BgL_nodez00_bglt BgL_nodez00_2516;
BgL_nodez00_2516 = 
(BgL_nodez00_bglt)(BgL_arg4141z00_1533); 
{ /* ./Cfa/specialize.scm 465 */
obj_t BgL_method2876z00_2517;
{ /* ./Cfa/specialize.scm 465 */
BgL_objectz00_bglt BgL_objz00_2518;
BgL_objz00_2518 = 
(BgL_objectz00_bglt)(BgL_nodez00_2516); 
{ /* ./Cfa/specialize.scm 465 */
long BgL_objzd2classzd2numz00_2519;
BgL_objzd2classzd2numz00_2519 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2518); 
{ /* ./Cfa/specialize.scm 465 */
obj_t BgL_arg2017z00_2520;
{ /* ./Cfa/specialize.scm 465 */
int BgL_auxz00_3419;
BgL_auxz00_3419 = 
(int)(((long)1)); 
BgL_arg2017z00_2520 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3419); } 
{ /* ./Cfa/specialize.scm 465 */
int BgL_offsetz00_2523;
BgL_offsetz00_2523 = 
(int)(BgL_objzd2classzd2numz00_2519); 
{ /* ./Cfa/specialize.scm 465 */
long BgL_offsetz00_2524;
{ /* ./Cfa/specialize.scm 465 */
long BgL_auxz00_3423;
BgL_auxz00_3423 = 
(long)(BgL_offsetz00_2523); 
BgL_offsetz00_2524 = 
(BgL_auxz00_3423-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 465 */
long BgL_modz00_2525;
{ /* ./Cfa/specialize.scm 465 */
int BgL_arg2028z00_2526;
BgL_arg2028z00_2526 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 465 */
long BgL_n2z00_2534;
BgL_n2z00_2534 = 
(long)(BgL_arg2028z00_2526); 
BgL_modz00_2525 = 
(BgL_offsetz00_2524/BgL_n2z00_2534); } } 
{ /* ./Cfa/specialize.scm 465 */
long BgL_restz00_2527;
{ /* ./Cfa/specialize.scm 465 */
int BgL_arg2024z00_2528;
BgL_arg2024z00_2528 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 465 */
long BgL_n2z00_2537;
BgL_n2z00_2537 = 
(long)(BgL_arg2024z00_2528); 
BgL_restz00_2527 = 
(BgL_offsetz00_2524%BgL_n2z00_2537); } } 
{ /* ./Cfa/specialize.scm 465 */

{ /* ./Cfa/specialize.scm 465 */
obj_t BgL_bucketz00_2529;
{ /* ./Cfa/specialize.scm 465 */
int BgL_kz00_2539;
BgL_kz00_2539 = 
(int)(BgL_modz00_2525); 
BgL_bucketz00_2529 = 
VECTOR_REF(BgL_arg2017z00_2520,BgL_kz00_2539); } 
{ /* ./Cfa/specialize.scm 465 */
int BgL_kz00_2541;
BgL_kz00_2541 = 
(int)(BgL_restz00_2527); 
BgL_method2876z00_2517 = 
VECTOR_REF(BgL_bucketz00_2529,BgL_kz00_2541); } } } } } } } } } } 
BgL_arg4138z00_1532 = 
PROCEDURE_ENTRY(BgL_method2876z00_2517)(BgL_method2876z00_2517, 
(obj_t)(BgL_nodez00_2516), BEOA); } } } 
{ /* ./Cfa/specialize.scm 465 */
BgL_boxzd2refzd2_bglt BgL_obj2616z00_2542;BgL_varz00_bglt BgL_val2615z00_2543;
BgL_obj2616z00_2542 = BgL_nodez00_1528; 
BgL_val2615z00_2543 = 
(BgL_varz00_bglt)(BgL_arg4138z00_1532); 
((((BgL_boxzd2refzd2_bglt)CREF(BgL_obj2616z00_2542))->BgL_varz00) = ((BgL_varz00_bglt)BgL_val2615z00_2543), BUNSPEC); } } 
BgL_auxz00_3414 = BgL_nodez00_1528; 
return 
(obj_t)(BgL_auxz00_3414);} } } 
}



/* patch!-box-set!2916 */
obj_t BGl_patchz12zd2boxzd2setz122916z00zzcfa_specializa7eza7(obj_t BgL_envz00_2683, obj_t BgL_nodez00_2684)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 454 */
{ 
BgL_boxzd2setz12zc0_bglt BgL_nodez00_1518;
{ /* ./Cfa/specialize.scm 455 */
BgL_boxzd2setz12zc0_bglt BgL_auxz00_3443;
BgL_nodez00_1518 = 
(BgL_boxzd2setz12zc0_bglt)(BgL_nodez00_2684); 
{ /* ./Cfa/specialize.scm 456 */
obj_t BgL_arg4118z00_1522;
{ /* ./Cfa/specialize.scm 456 */
BgL_varz00_bglt BgL_arg4121z00_1523;
BgL_arg4121z00_1523 = 
(((BgL_boxzd2setz12zc0_bglt)CREF(BgL_nodez00_1518))->BgL_varz00); 
{ /* ./Cfa/specialize.scm 456 */
BgL_nodez00_bglt BgL_nodez00_2458;
BgL_nodez00_2458 = 
(BgL_nodez00_bglt)(BgL_arg4121z00_1523); 
{ /* ./Cfa/specialize.scm 456 */
obj_t BgL_method2876z00_2459;
{ /* ./Cfa/specialize.scm 456 */
BgL_objectz00_bglt BgL_objz00_2460;
BgL_objz00_2460 = 
(BgL_objectz00_bglt)(BgL_nodez00_2458); 
{ /* ./Cfa/specialize.scm 456 */
long BgL_objzd2classzd2numz00_2461;
BgL_objzd2classzd2numz00_2461 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2460); 
{ /* ./Cfa/specialize.scm 456 */
obj_t BgL_arg2017z00_2462;
{ /* ./Cfa/specialize.scm 456 */
int BgL_auxz00_3448;
BgL_auxz00_3448 = 
(int)(((long)1)); 
BgL_arg2017z00_2462 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3448); } 
{ /* ./Cfa/specialize.scm 456 */
int BgL_offsetz00_2465;
BgL_offsetz00_2465 = 
(int)(BgL_objzd2classzd2numz00_2461); 
{ /* ./Cfa/specialize.scm 456 */
long BgL_offsetz00_2466;
{ /* ./Cfa/specialize.scm 456 */
long BgL_auxz00_3452;
BgL_auxz00_3452 = 
(long)(BgL_offsetz00_2465); 
BgL_offsetz00_2466 = 
(BgL_auxz00_3452-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 456 */
long BgL_modz00_2467;
{ /* ./Cfa/specialize.scm 456 */
int BgL_arg2028z00_2468;
BgL_arg2028z00_2468 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 456 */
long BgL_n2z00_2476;
BgL_n2z00_2476 = 
(long)(BgL_arg2028z00_2468); 
BgL_modz00_2467 = 
(BgL_offsetz00_2466/BgL_n2z00_2476); } } 
{ /* ./Cfa/specialize.scm 456 */
long BgL_restz00_2469;
{ /* ./Cfa/specialize.scm 456 */
int BgL_arg2024z00_2470;
BgL_arg2024z00_2470 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 456 */
long BgL_n2z00_2479;
BgL_n2z00_2479 = 
(long)(BgL_arg2024z00_2470); 
BgL_restz00_2469 = 
(BgL_offsetz00_2466%BgL_n2z00_2479); } } 
{ /* ./Cfa/specialize.scm 456 */

{ /* ./Cfa/specialize.scm 456 */
obj_t BgL_bucketz00_2471;
{ /* ./Cfa/specialize.scm 456 */
int BgL_kz00_2481;
BgL_kz00_2481 = 
(int)(BgL_modz00_2467); 
BgL_bucketz00_2471 = 
VECTOR_REF(BgL_arg2017z00_2462,BgL_kz00_2481); } 
{ /* ./Cfa/specialize.scm 456 */
int BgL_kz00_2483;
BgL_kz00_2483 = 
(int)(BgL_restz00_2469); 
BgL_method2876z00_2459 = 
VECTOR_REF(BgL_bucketz00_2471,BgL_kz00_2483); } } } } } } } } } } 
BgL_arg4118z00_1522 = 
PROCEDURE_ENTRY(BgL_method2876z00_2459)(BgL_method2876z00_2459, 
(obj_t)(BgL_nodez00_2458), BEOA); } } } 
{ /* ./Cfa/specialize.scm 456 */
BgL_boxzd2setz12zc0_bglt BgL_obj2642z00_2484;BgL_varz00_bglt BgL_val2641z00_2485;
BgL_obj2642z00_2484 = BgL_nodez00_1518; 
BgL_val2641z00_2485 = 
(BgL_varz00_bglt)(BgL_arg4118z00_1522); 
((((BgL_boxzd2setz12zc0_bglt)CREF(BgL_obj2642z00_2484))->BgL_varz00) = ((BgL_varz00_bglt)BgL_val2641z00_2485), BUNSPEC); } } 
{ /* ./Cfa/specialize.scm 457 */
obj_t BgL_arg4125z00_1524;
{ /* ./Cfa/specialize.scm 457 */
BgL_nodez00_bglt BgL_arg4128z00_1525;
BgL_arg4128z00_1525 = 
(((BgL_boxzd2setz12zc0_bglt)CREF(BgL_nodez00_1518))->BgL_valuez00); 
{ /* ./Cfa/specialize.scm 457 */
obj_t BgL_method2876z00_2488;
{ /* ./Cfa/specialize.scm 457 */
BgL_objectz00_bglt BgL_objz00_2489;
BgL_objz00_2489 = 
(BgL_objectz00_bglt)(BgL_arg4128z00_1525); 
{ /* ./Cfa/specialize.scm 457 */
long BgL_objzd2classzd2numz00_2490;
BgL_objzd2classzd2numz00_2490 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2489); 
{ /* ./Cfa/specialize.scm 457 */
obj_t BgL_arg2017z00_2491;
{ /* ./Cfa/specialize.scm 457 */
int BgL_auxz00_3473;
BgL_auxz00_3473 = 
(int)(((long)1)); 
BgL_arg2017z00_2491 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3473); } 
{ /* ./Cfa/specialize.scm 457 */
int BgL_offsetz00_2494;
BgL_offsetz00_2494 = 
(int)(BgL_objzd2classzd2numz00_2490); 
{ /* ./Cfa/specialize.scm 457 */
long BgL_offsetz00_2495;
{ /* ./Cfa/specialize.scm 457 */
long BgL_auxz00_3477;
BgL_auxz00_3477 = 
(long)(BgL_offsetz00_2494); 
BgL_offsetz00_2495 = 
(BgL_auxz00_3477-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 457 */
long BgL_modz00_2496;
{ /* ./Cfa/specialize.scm 457 */
int BgL_arg2028z00_2497;
BgL_arg2028z00_2497 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 457 */
long BgL_n2z00_2505;
BgL_n2z00_2505 = 
(long)(BgL_arg2028z00_2497); 
BgL_modz00_2496 = 
(BgL_offsetz00_2495/BgL_n2z00_2505); } } 
{ /* ./Cfa/specialize.scm 457 */
long BgL_restz00_2498;
{ /* ./Cfa/specialize.scm 457 */
int BgL_arg2024z00_2499;
BgL_arg2024z00_2499 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 457 */
long BgL_n2z00_2508;
BgL_n2z00_2508 = 
(long)(BgL_arg2024z00_2499); 
BgL_restz00_2498 = 
(BgL_offsetz00_2495%BgL_n2z00_2508); } } 
{ /* ./Cfa/specialize.scm 457 */

{ /* ./Cfa/specialize.scm 457 */
obj_t BgL_bucketz00_2500;
{ /* ./Cfa/specialize.scm 457 */
int BgL_kz00_2510;
BgL_kz00_2510 = 
(int)(BgL_modz00_2496); 
BgL_bucketz00_2500 = 
VECTOR_REF(BgL_arg2017z00_2491,BgL_kz00_2510); } 
{ /* ./Cfa/specialize.scm 457 */
int BgL_kz00_2512;
BgL_kz00_2512 = 
(int)(BgL_restz00_2498); 
BgL_method2876z00_2488 = 
VECTOR_REF(BgL_bucketz00_2500,BgL_kz00_2512); } } } } } } } } } } 
BgL_arg4125z00_1524 = 
PROCEDURE_ENTRY(BgL_method2876z00_2488)(BgL_method2876z00_2488, 
(obj_t)(BgL_arg4128z00_1525), BEOA); } } 
{ /* ./Cfa/specialize.scm 457 */
BgL_boxzd2setz12zc0_bglt BgL_obj2645z00_2513;BgL_nodez00_bglt BgL_val2644z00_2514;
BgL_obj2645z00_2513 = BgL_nodez00_1518; 
BgL_val2644z00_2514 = 
(BgL_nodez00_bglt)(BgL_arg4125z00_1524); 
((((BgL_boxzd2setz12zc0_bglt)CREF(BgL_obj2645z00_2513))->BgL_valuez00) = ((BgL_nodez00_bglt)BgL_val2644z00_2514), BUNSPEC); } } 
BgL_auxz00_3443 = BgL_nodez00_1518; 
return 
(obj_t)(BgL_auxz00_3443);} } } 
}



/* patch!-make-box2914 */
obj_t BGl_patchz12zd2makezd2box2914z12zzcfa_specializa7eza7(obj_t BgL_envz00_2685, obj_t BgL_nodez00_2686)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 446 */
{ 
BgL_makezd2boxzd2_bglt BgL_nodez00_1510;
{ /* ./Cfa/specialize.scm 447 */
BgL_makezd2boxzd2_bglt BgL_auxz00_3497;
BgL_nodez00_1510 = 
(BgL_makezd2boxzd2_bglt)(BgL_nodez00_2686); 
{ /* ./Cfa/specialize.scm 448 */
obj_t BgL_arg4104z00_1514;
{ /* ./Cfa/specialize.scm 448 */
BgL_nodez00_bglt BgL_arg4107z00_1515;
BgL_arg4107z00_1515 = 
(((BgL_makezd2boxzd2_bglt)CREF(BgL_nodez00_1510))->BgL_valuez00); 
{ /* ./Cfa/specialize.scm 448 */
obj_t BgL_method2876z00_2430;
{ /* ./Cfa/specialize.scm 448 */
BgL_objectz00_bglt BgL_objz00_2431;
BgL_objz00_2431 = 
(BgL_objectz00_bglt)(BgL_arg4107z00_1515); 
{ /* ./Cfa/specialize.scm 448 */
long BgL_objzd2classzd2numz00_2432;
BgL_objzd2classzd2numz00_2432 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2431); 
{ /* ./Cfa/specialize.scm 448 */
obj_t BgL_arg2017z00_2433;
{ /* ./Cfa/specialize.scm 448 */
int BgL_auxz00_3501;
BgL_auxz00_3501 = 
(int)(((long)1)); 
BgL_arg2017z00_2433 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3501); } 
{ /* ./Cfa/specialize.scm 448 */
int BgL_offsetz00_2436;
BgL_offsetz00_2436 = 
(int)(BgL_objzd2classzd2numz00_2432); 
{ /* ./Cfa/specialize.scm 448 */
long BgL_offsetz00_2437;
{ /* ./Cfa/specialize.scm 448 */
long BgL_auxz00_3505;
BgL_auxz00_3505 = 
(long)(BgL_offsetz00_2436); 
BgL_offsetz00_2437 = 
(BgL_auxz00_3505-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 448 */
long BgL_modz00_2438;
{ /* ./Cfa/specialize.scm 448 */
int BgL_arg2028z00_2439;
BgL_arg2028z00_2439 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 448 */
long BgL_n2z00_2447;
BgL_n2z00_2447 = 
(long)(BgL_arg2028z00_2439); 
BgL_modz00_2438 = 
(BgL_offsetz00_2437/BgL_n2z00_2447); } } 
{ /* ./Cfa/specialize.scm 448 */
long BgL_restz00_2440;
{ /* ./Cfa/specialize.scm 448 */
int BgL_arg2024z00_2441;
BgL_arg2024z00_2441 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 448 */
long BgL_n2z00_2450;
BgL_n2z00_2450 = 
(long)(BgL_arg2024z00_2441); 
BgL_restz00_2440 = 
(BgL_offsetz00_2437%BgL_n2z00_2450); } } 
{ /* ./Cfa/specialize.scm 448 */

{ /* ./Cfa/specialize.scm 448 */
obj_t BgL_bucketz00_2442;
{ /* ./Cfa/specialize.scm 448 */
int BgL_kz00_2452;
BgL_kz00_2452 = 
(int)(BgL_modz00_2438); 
BgL_bucketz00_2442 = 
VECTOR_REF(BgL_arg2017z00_2433,BgL_kz00_2452); } 
{ /* ./Cfa/specialize.scm 448 */
int BgL_kz00_2454;
BgL_kz00_2454 = 
(int)(BgL_restz00_2440); 
BgL_method2876z00_2430 = 
VECTOR_REF(BgL_bucketz00_2442,BgL_kz00_2454); } } } } } } } } } } 
BgL_arg4104z00_1514 = 
PROCEDURE_ENTRY(BgL_method2876z00_2430)(BgL_method2876z00_2430, 
(obj_t)(BgL_arg4107z00_1515), BEOA); } } 
{ /* ./Cfa/specialize.scm 448 */
BgL_makezd2boxzd2_bglt BgL_obj2584z00_2455;BgL_nodez00_bglt BgL_val2583z00_2456;
BgL_obj2584z00_2455 = BgL_nodez00_1510; 
BgL_val2583z00_2456 = 
(BgL_nodez00_bglt)(BgL_arg4104z00_1514); 
((((BgL_makezd2boxzd2_bglt)CREF(BgL_obj2584z00_2455))->BgL_valuez00) = ((BgL_nodez00_bglt)BgL_val2583z00_2456), BUNSPEC); } } 
BgL_auxz00_3497 = BgL_nodez00_1510; 
return 
(obj_t)(BgL_auxz00_3497);} } } 
}



/* patch!-jump-ex-it2912 */
obj_t BGl_patchz12zd2jumpzd2exzd2it2912zc0zzcfa_specializa7eza7(obj_t BgL_envz00_2687, obj_t BgL_nodez00_2688)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 437 */
{ 
BgL_jumpzd2exzd2itz00_bglt BgL_nodez00_1500;
{ /* ./Cfa/specialize.scm 438 */
BgL_jumpzd2exzd2itz00_bglt BgL_auxz00_3525;
BgL_nodez00_1500 = 
(BgL_jumpzd2exzd2itz00_bglt)(BgL_nodez00_2688); 
{ /* ./Cfa/specialize.scm 439 */
obj_t BgL_arg4084z00_1504;
{ /* ./Cfa/specialize.scm 439 */
BgL_nodez00_bglt BgL_arg4087z00_1505;
BgL_arg4087z00_1505 = 
(((BgL_jumpzd2exzd2itz00_bglt)CREF(BgL_nodez00_1500))->BgL_exitz00); 
{ /* ./Cfa/specialize.scm 439 */
obj_t BgL_method2876z00_2372;
{ /* ./Cfa/specialize.scm 439 */
BgL_objectz00_bglt BgL_objz00_2373;
BgL_objz00_2373 = 
(BgL_objectz00_bglt)(BgL_arg4087z00_1505); 
{ /* ./Cfa/specialize.scm 439 */
long BgL_objzd2classzd2numz00_2374;
BgL_objzd2classzd2numz00_2374 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2373); 
{ /* ./Cfa/specialize.scm 439 */
obj_t BgL_arg2017z00_2375;
{ /* ./Cfa/specialize.scm 439 */
int BgL_auxz00_3529;
BgL_auxz00_3529 = 
(int)(((long)1)); 
BgL_arg2017z00_2375 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3529); } 
{ /* ./Cfa/specialize.scm 439 */
int BgL_offsetz00_2378;
BgL_offsetz00_2378 = 
(int)(BgL_objzd2classzd2numz00_2374); 
{ /* ./Cfa/specialize.scm 439 */
long BgL_offsetz00_2379;
{ /* ./Cfa/specialize.scm 439 */
long BgL_auxz00_3533;
BgL_auxz00_3533 = 
(long)(BgL_offsetz00_2378); 
BgL_offsetz00_2379 = 
(BgL_auxz00_3533-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 439 */
long BgL_modz00_2380;
{ /* ./Cfa/specialize.scm 439 */
int BgL_arg2028z00_2381;
BgL_arg2028z00_2381 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 439 */
long BgL_n2z00_2389;
BgL_n2z00_2389 = 
(long)(BgL_arg2028z00_2381); 
BgL_modz00_2380 = 
(BgL_offsetz00_2379/BgL_n2z00_2389); } } 
{ /* ./Cfa/specialize.scm 439 */
long BgL_restz00_2382;
{ /* ./Cfa/specialize.scm 439 */
int BgL_arg2024z00_2383;
BgL_arg2024z00_2383 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 439 */
long BgL_n2z00_2392;
BgL_n2z00_2392 = 
(long)(BgL_arg2024z00_2383); 
BgL_restz00_2382 = 
(BgL_offsetz00_2379%BgL_n2z00_2392); } } 
{ /* ./Cfa/specialize.scm 439 */

{ /* ./Cfa/specialize.scm 439 */
obj_t BgL_bucketz00_2384;
{ /* ./Cfa/specialize.scm 439 */
int BgL_kz00_2394;
BgL_kz00_2394 = 
(int)(BgL_modz00_2380); 
BgL_bucketz00_2384 = 
VECTOR_REF(BgL_arg2017z00_2375,BgL_kz00_2394); } 
{ /* ./Cfa/specialize.scm 439 */
int BgL_kz00_2396;
BgL_kz00_2396 = 
(int)(BgL_restz00_2382); 
BgL_method2876z00_2372 = 
VECTOR_REF(BgL_bucketz00_2384,BgL_kz00_2396); } } } } } } } } } } 
BgL_arg4084z00_1504 = 
PROCEDURE_ENTRY(BgL_method2876z00_2372)(BgL_method2876z00_2372, 
(obj_t)(BgL_arg4087z00_1505), BEOA); } } 
{ /* ./Cfa/specialize.scm 439 */
BgL_jumpzd2exzd2itz00_bglt BgL_obj2552z00_2397;BgL_nodez00_bglt BgL_val2551z00_2398;
BgL_obj2552z00_2397 = BgL_nodez00_1500; 
BgL_val2551z00_2398 = 
(BgL_nodez00_bglt)(BgL_arg4084z00_1504); 
((((BgL_jumpzd2exzd2itz00_bglt)CREF(BgL_obj2552z00_2397))->BgL_exitz00) = ((BgL_nodez00_bglt)BgL_val2551z00_2398), BUNSPEC); } } 
{ /* ./Cfa/specialize.scm 440 */
obj_t BgL_arg4091z00_1506;
{ /* ./Cfa/specialize.scm 440 */
BgL_nodez00_bglt BgL_arg4094z00_1507;
BgL_arg4094z00_1507 = 
(((BgL_jumpzd2exzd2itz00_bglt)CREF(BgL_nodez00_1500))->BgL_valuez00); 
{ /* ./Cfa/specialize.scm 440 */
obj_t BgL_method2876z00_2401;
{ /* ./Cfa/specialize.scm 440 */
BgL_objectz00_bglt BgL_objz00_2402;
BgL_objz00_2402 = 
(BgL_objectz00_bglt)(BgL_arg4094z00_1507); 
{ /* ./Cfa/specialize.scm 440 */
long BgL_objzd2classzd2numz00_2403;
BgL_objzd2classzd2numz00_2403 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2402); 
{ /* ./Cfa/specialize.scm 440 */
obj_t BgL_arg2017z00_2404;
{ /* ./Cfa/specialize.scm 440 */
int BgL_auxz00_3554;
BgL_auxz00_3554 = 
(int)(((long)1)); 
BgL_arg2017z00_2404 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3554); } 
{ /* ./Cfa/specialize.scm 440 */
int BgL_offsetz00_2407;
BgL_offsetz00_2407 = 
(int)(BgL_objzd2classzd2numz00_2403); 
{ /* ./Cfa/specialize.scm 440 */
long BgL_offsetz00_2408;
{ /* ./Cfa/specialize.scm 440 */
long BgL_auxz00_3558;
BgL_auxz00_3558 = 
(long)(BgL_offsetz00_2407); 
BgL_offsetz00_2408 = 
(BgL_auxz00_3558-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 440 */
long BgL_modz00_2409;
{ /* ./Cfa/specialize.scm 440 */
int BgL_arg2028z00_2410;
BgL_arg2028z00_2410 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 440 */
long BgL_n2z00_2418;
BgL_n2z00_2418 = 
(long)(BgL_arg2028z00_2410); 
BgL_modz00_2409 = 
(BgL_offsetz00_2408/BgL_n2z00_2418); } } 
{ /* ./Cfa/specialize.scm 440 */
long BgL_restz00_2411;
{ /* ./Cfa/specialize.scm 440 */
int BgL_arg2024z00_2412;
BgL_arg2024z00_2412 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 440 */
long BgL_n2z00_2421;
BgL_n2z00_2421 = 
(long)(BgL_arg2024z00_2412); 
BgL_restz00_2411 = 
(BgL_offsetz00_2408%BgL_n2z00_2421); } } 
{ /* ./Cfa/specialize.scm 440 */

{ /* ./Cfa/specialize.scm 440 */
obj_t BgL_bucketz00_2413;
{ /* ./Cfa/specialize.scm 440 */
int BgL_kz00_2423;
BgL_kz00_2423 = 
(int)(BgL_modz00_2409); 
BgL_bucketz00_2413 = 
VECTOR_REF(BgL_arg2017z00_2404,BgL_kz00_2423); } 
{ /* ./Cfa/specialize.scm 440 */
int BgL_kz00_2425;
BgL_kz00_2425 = 
(int)(BgL_restz00_2411); 
BgL_method2876z00_2401 = 
VECTOR_REF(BgL_bucketz00_2413,BgL_kz00_2425); } } } } } } } } } } 
BgL_arg4091z00_1506 = 
PROCEDURE_ENTRY(BgL_method2876z00_2401)(BgL_method2876z00_2401, 
(obj_t)(BgL_arg4094z00_1507), BEOA); } } 
{ /* ./Cfa/specialize.scm 440 */
BgL_jumpzd2exzd2itz00_bglt BgL_obj2555z00_2426;BgL_nodez00_bglt BgL_val2554z00_2427;
BgL_obj2555z00_2426 = BgL_nodez00_1500; 
BgL_val2554z00_2427 = 
(BgL_nodez00_bglt)(BgL_arg4091z00_1506); 
((((BgL_jumpzd2exzd2itz00_bglt)CREF(BgL_obj2555z00_2426))->BgL_valuez00) = ((BgL_nodez00_bglt)BgL_val2554z00_2427), BUNSPEC); } } 
BgL_auxz00_3525 = BgL_nodez00_1500; 
return 
(obj_t)(BgL_auxz00_3525);} } } 
}



/* patch!-set-ex-it2910 */
obj_t BGl_patchz12zd2setzd2exzd2it2910zc0zzcfa_specializa7eza7(obj_t BgL_envz00_2689, obj_t BgL_nodez00_2690)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 428 */
{ 
BgL_setzd2exzd2itz00_bglt BgL_nodez00_1491;
{ /* ./Cfa/specialize.scm 429 */
BgL_setzd2exzd2itz00_bglt BgL_auxz00_3578;
BgL_nodez00_1491 = 
(BgL_setzd2exzd2itz00_bglt)(BgL_nodez00_2690); 
{ /* ./Cfa/specialize.scm 430 */
obj_t BgL_arg4067z00_1495;
{ /* ./Cfa/specialize.scm 430 */
BgL_nodez00_bglt BgL_arg4070z00_1496;
BgL_arg4070z00_1496 = 
(((BgL_setzd2exzd2itz00_bglt)CREF(BgL_nodez00_1491))->BgL_bodyz00); 
{ /* ./Cfa/specialize.scm 430 */
obj_t BgL_method2876z00_2316;
{ /* ./Cfa/specialize.scm 430 */
BgL_objectz00_bglt BgL_objz00_2317;
BgL_objz00_2317 = 
(BgL_objectz00_bglt)(BgL_arg4070z00_1496); 
{ /* ./Cfa/specialize.scm 430 */
long BgL_objzd2classzd2numz00_2318;
BgL_objzd2classzd2numz00_2318 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2317); 
{ /* ./Cfa/specialize.scm 430 */
obj_t BgL_arg2017z00_2319;
{ /* ./Cfa/specialize.scm 430 */
int BgL_auxz00_3582;
BgL_auxz00_3582 = 
(int)(((long)1)); 
BgL_arg2017z00_2319 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3582); } 
{ /* ./Cfa/specialize.scm 430 */
int BgL_offsetz00_2322;
BgL_offsetz00_2322 = 
(int)(BgL_objzd2classzd2numz00_2318); 
{ /* ./Cfa/specialize.scm 430 */
long BgL_offsetz00_2323;
{ /* ./Cfa/specialize.scm 430 */
long BgL_auxz00_3586;
BgL_auxz00_3586 = 
(long)(BgL_offsetz00_2322); 
BgL_offsetz00_2323 = 
(BgL_auxz00_3586-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 430 */
long BgL_modz00_2324;
{ /* ./Cfa/specialize.scm 430 */
int BgL_arg2028z00_2325;
BgL_arg2028z00_2325 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 430 */
long BgL_n2z00_2333;
BgL_n2z00_2333 = 
(long)(BgL_arg2028z00_2325); 
BgL_modz00_2324 = 
(BgL_offsetz00_2323/BgL_n2z00_2333); } } 
{ /* ./Cfa/specialize.scm 430 */
long BgL_restz00_2326;
{ /* ./Cfa/specialize.scm 430 */
int BgL_arg2024z00_2327;
BgL_arg2024z00_2327 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 430 */
long BgL_n2z00_2336;
BgL_n2z00_2336 = 
(long)(BgL_arg2024z00_2327); 
BgL_restz00_2326 = 
(BgL_offsetz00_2323%BgL_n2z00_2336); } } 
{ /* ./Cfa/specialize.scm 430 */

{ /* ./Cfa/specialize.scm 430 */
obj_t BgL_bucketz00_2328;
{ /* ./Cfa/specialize.scm 430 */
int BgL_kz00_2338;
BgL_kz00_2338 = 
(int)(BgL_modz00_2324); 
BgL_bucketz00_2328 = 
VECTOR_REF(BgL_arg2017z00_2319,BgL_kz00_2338); } 
{ /* ./Cfa/specialize.scm 430 */
int BgL_kz00_2340;
BgL_kz00_2340 = 
(int)(BgL_restz00_2326); 
BgL_method2876z00_2316 = 
VECTOR_REF(BgL_bucketz00_2328,BgL_kz00_2340); } } } } } } } } } } 
BgL_arg4067z00_1495 = 
PROCEDURE_ENTRY(BgL_method2876z00_2316)(BgL_method2876z00_2316, 
(obj_t)(BgL_arg4070z00_1496), BEOA); } } 
{ /* ./Cfa/specialize.scm 430 */
BgL_setzd2exzd2itz00_bglt BgL_obj2529z00_2341;BgL_nodez00_bglt BgL_val2528z00_2342;
BgL_obj2529z00_2341 = BgL_nodez00_1491; 
BgL_val2528z00_2342 = 
(BgL_nodez00_bglt)(BgL_arg4067z00_1495); 
((((BgL_setzd2exzd2itz00_bglt)CREF(BgL_obj2529z00_2341))->BgL_bodyz00) = ((BgL_nodez00_bglt)BgL_val2528z00_2342), BUNSPEC); } } 
{ /* ./Cfa/specialize.scm 431 */
BgL_varz00_bglt BgL_arg4074z00_1497;
BgL_arg4074z00_1497 = 
(((BgL_setzd2exzd2itz00_bglt)CREF(BgL_nodez00_1491))->BgL_varz00); 
{ /* ./Cfa/specialize.scm 431 */
BgL_nodez00_bglt BgL_nodez00_2344;
BgL_nodez00_2344 = 
(BgL_nodez00_bglt)(BgL_arg4074z00_1497); 
{ /* ./Cfa/specialize.scm 431 */
obj_t BgL_method2876z00_2345;
{ /* ./Cfa/specialize.scm 431 */
BgL_objectz00_bglt BgL_objz00_2346;
BgL_objz00_2346 = 
(BgL_objectz00_bglt)(BgL_nodez00_2344); 
{ /* ./Cfa/specialize.scm 431 */
long BgL_objzd2classzd2numz00_2347;
BgL_objzd2classzd2numz00_2347 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2346); 
{ /* ./Cfa/specialize.scm 431 */
obj_t BgL_arg2017z00_2348;
{ /* ./Cfa/specialize.scm 431 */
int BgL_auxz00_3608;
BgL_auxz00_3608 = 
(int)(((long)1)); 
BgL_arg2017z00_2348 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3608); } 
{ /* ./Cfa/specialize.scm 431 */
int BgL_offsetz00_2351;
BgL_offsetz00_2351 = 
(int)(BgL_objzd2classzd2numz00_2347); 
{ /* ./Cfa/specialize.scm 431 */
long BgL_offsetz00_2352;
{ /* ./Cfa/specialize.scm 431 */
long BgL_auxz00_3612;
BgL_auxz00_3612 = 
(long)(BgL_offsetz00_2351); 
BgL_offsetz00_2352 = 
(BgL_auxz00_3612-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 431 */
long BgL_modz00_2353;
{ /* ./Cfa/specialize.scm 431 */
int BgL_arg2028z00_2354;
BgL_arg2028z00_2354 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 431 */
long BgL_n2z00_2362;
BgL_n2z00_2362 = 
(long)(BgL_arg2028z00_2354); 
BgL_modz00_2353 = 
(BgL_offsetz00_2352/BgL_n2z00_2362); } } 
{ /* ./Cfa/specialize.scm 431 */
long BgL_restz00_2355;
{ /* ./Cfa/specialize.scm 431 */
int BgL_arg2024z00_2356;
BgL_arg2024z00_2356 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 431 */
long BgL_n2z00_2365;
BgL_n2z00_2365 = 
(long)(BgL_arg2024z00_2356); 
BgL_restz00_2355 = 
(BgL_offsetz00_2352%BgL_n2z00_2365); } } 
{ /* ./Cfa/specialize.scm 431 */

{ /* ./Cfa/specialize.scm 431 */
obj_t BgL_bucketz00_2357;
{ /* ./Cfa/specialize.scm 431 */
int BgL_kz00_2367;
BgL_kz00_2367 = 
(int)(BgL_modz00_2353); 
BgL_bucketz00_2357 = 
VECTOR_REF(BgL_arg2017z00_2348,BgL_kz00_2367); } 
{ /* ./Cfa/specialize.scm 431 */
int BgL_kz00_2369;
BgL_kz00_2369 = 
(int)(BgL_restz00_2355); 
BgL_method2876z00_2345 = 
VECTOR_REF(BgL_bucketz00_2357,BgL_kz00_2369); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2876z00_2345)(BgL_method2876z00_2345, 
(obj_t)(BgL_nodez00_2344), BEOA); } } } 
BgL_auxz00_3578 = BgL_nodez00_1491; 
return 
(obj_t)(BgL_auxz00_3578);} } } 
}



/* patch!-let-var2908 */
obj_t BGl_patchz12zd2letzd2var2908z12zzcfa_specializa7eza7(obj_t BgL_envz00_2691, obj_t BgL_nodez00_2692)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 416 */
{ 
BgL_letzd2varzd2_bglt BgL_nodez00_1475;
{ /* ./Cfa/specialize.scm 417 */
BgL_letzd2varzd2_bglt BgL_auxz00_3630;
BgL_nodez00_1475 = 
(BgL_letzd2varzd2_bglt)(BgL_nodez00_2692); 
{ 
obj_t BgL_l2855z00_1479;
{ /* ./Cfa/specialize.scm 418 */
obj_t BgL_arg4038z00_1481;
BgL_arg4038z00_1481 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_nodez00_1475))->BgL_bindingsz00); 
BgL_l2855z00_1479 = BgL_arg4038z00_1481; 
BgL_forzd2each2856zd2_1480:
{ /* ./Cfa/specialize.scm 418 */
bool_t BgL_test4041z00_1482;
BgL_test4041z00_1482 = 
PAIRP(BgL_l2855z00_1479); 
if(BgL_test4041z00_1482)
{ /* ./Cfa/specialize.scm 418 */
{ /* ./Cfa/specialize.scm 419 */
obj_t BgL_bindingz00_1483;
BgL_bindingz00_1483 = 
CAR(BgL_l2855z00_1479); 
{ /* ./Cfa/specialize.scm 419 */
obj_t BgL_valz00_1484;
BgL_valz00_1484 = 
CDR(BgL_bindingz00_1483); 
{ /* ./Cfa/specialize.scm 420 */
obj_t BgL_arg4043z00_1485;
{ /* ./Cfa/specialize.scm 420 */
BgL_nodez00_bglt BgL_nodez00_2256;
BgL_nodez00_2256 = 
(BgL_nodez00_bglt)(BgL_valz00_1484); 
{ /* ./Cfa/specialize.scm 420 */
obj_t BgL_method2876z00_2257;
{ /* ./Cfa/specialize.scm 420 */
BgL_objectz00_bglt BgL_objz00_2258;
BgL_objz00_2258 = 
(BgL_objectz00_bglt)(BgL_nodez00_2256); 
{ /* ./Cfa/specialize.scm 420 */
long BgL_objzd2classzd2numz00_2259;
BgL_objzd2classzd2numz00_2259 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2258); 
{ /* ./Cfa/specialize.scm 420 */
obj_t BgL_arg2017z00_2260;
{ /* ./Cfa/specialize.scm 420 */
int BgL_auxz00_3639;
BgL_auxz00_3639 = 
(int)(((long)1)); 
BgL_arg2017z00_2260 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3639); } 
{ /* ./Cfa/specialize.scm 420 */
int BgL_offsetz00_2263;
BgL_offsetz00_2263 = 
(int)(BgL_objzd2classzd2numz00_2259); 
{ /* ./Cfa/specialize.scm 420 */
long BgL_offsetz00_2264;
{ /* ./Cfa/specialize.scm 420 */
long BgL_auxz00_3643;
BgL_auxz00_3643 = 
(long)(BgL_offsetz00_2263); 
BgL_offsetz00_2264 = 
(BgL_auxz00_3643-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 420 */
long BgL_modz00_2265;
{ /* ./Cfa/specialize.scm 420 */
int BgL_arg2028z00_2266;
BgL_arg2028z00_2266 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 420 */
long BgL_n2z00_2274;
BgL_n2z00_2274 = 
(long)(BgL_arg2028z00_2266); 
BgL_modz00_2265 = 
(BgL_offsetz00_2264/BgL_n2z00_2274); } } 
{ /* ./Cfa/specialize.scm 420 */
long BgL_restz00_2267;
{ /* ./Cfa/specialize.scm 420 */
int BgL_arg2024z00_2268;
BgL_arg2024z00_2268 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 420 */
long BgL_n2z00_2277;
BgL_n2z00_2277 = 
(long)(BgL_arg2024z00_2268); 
BgL_restz00_2267 = 
(BgL_offsetz00_2264%BgL_n2z00_2277); } } 
{ /* ./Cfa/specialize.scm 420 */

{ /* ./Cfa/specialize.scm 420 */
obj_t BgL_bucketz00_2269;
{ /* ./Cfa/specialize.scm 420 */
int BgL_kz00_2279;
BgL_kz00_2279 = 
(int)(BgL_modz00_2265); 
BgL_bucketz00_2269 = 
VECTOR_REF(BgL_arg2017z00_2260,BgL_kz00_2279); } 
{ /* ./Cfa/specialize.scm 420 */
int BgL_kz00_2281;
BgL_kz00_2281 = 
(int)(BgL_restz00_2267); 
BgL_method2876z00_2257 = 
VECTOR_REF(BgL_bucketz00_2269,BgL_kz00_2281); } } } } } } } } } } 
BgL_arg4043z00_1485 = 
PROCEDURE_ENTRY(BgL_method2876z00_2257)(BgL_method2876z00_2257, 
(obj_t)(BgL_nodez00_2256), BEOA); } } 
SET_CDR(BgL_bindingz00_1483, BgL_arg4043z00_1485); } } } 
{ /* ./Cfa/specialize.scm 418 */
obj_t BgL_arg4049z00_1486;
BgL_arg4049z00_1486 = 
CDR(BgL_l2855z00_1479); 
{ 
obj_t BgL_l2855z00_3661;
BgL_l2855z00_3661 = BgL_arg4049z00_1486; 
BgL_l2855z00_1479 = BgL_l2855z00_3661; 
goto BgL_forzd2each2856zd2_1480;} } }  else 
{ /* ./Cfa/specialize.scm 418 */((bool_t)1); } } } } 
{ /* ./Cfa/specialize.scm 422 */
obj_t BgL_arg4054z00_1487;
{ /* ./Cfa/specialize.scm 422 */
BgL_nodez00_bglt BgL_arg4057z00_1488;
BgL_arg4057z00_1488 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_nodez00_1475))->BgL_bodyz00); 
{ /* ./Cfa/specialize.scm 422 */
obj_t BgL_method2876z00_2287;
{ /* ./Cfa/specialize.scm 422 */
BgL_objectz00_bglt BgL_objz00_2288;
BgL_objz00_2288 = 
(BgL_objectz00_bglt)(BgL_arg4057z00_1488); 
{ /* ./Cfa/specialize.scm 422 */
long BgL_objzd2classzd2numz00_2289;
BgL_objzd2classzd2numz00_2289 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2288); 
{ /* ./Cfa/specialize.scm 422 */
obj_t BgL_arg2017z00_2290;
{ /* ./Cfa/specialize.scm 422 */
int BgL_auxz00_3665;
BgL_auxz00_3665 = 
(int)(((long)1)); 
BgL_arg2017z00_2290 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3665); } 
{ /* ./Cfa/specialize.scm 422 */
int BgL_offsetz00_2293;
BgL_offsetz00_2293 = 
(int)(BgL_objzd2classzd2numz00_2289); 
{ /* ./Cfa/specialize.scm 422 */
long BgL_offsetz00_2294;
{ /* ./Cfa/specialize.scm 422 */
long BgL_auxz00_3669;
BgL_auxz00_3669 = 
(long)(BgL_offsetz00_2293); 
BgL_offsetz00_2294 = 
(BgL_auxz00_3669-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 422 */
long BgL_modz00_2295;
{ /* ./Cfa/specialize.scm 422 */
int BgL_arg2028z00_2296;
BgL_arg2028z00_2296 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 422 */
long BgL_n2z00_2304;
BgL_n2z00_2304 = 
(long)(BgL_arg2028z00_2296); 
BgL_modz00_2295 = 
(BgL_offsetz00_2294/BgL_n2z00_2304); } } 
{ /* ./Cfa/specialize.scm 422 */
long BgL_restz00_2297;
{ /* ./Cfa/specialize.scm 422 */
int BgL_arg2024z00_2298;
BgL_arg2024z00_2298 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 422 */
long BgL_n2z00_2307;
BgL_n2z00_2307 = 
(long)(BgL_arg2024z00_2298); 
BgL_restz00_2297 = 
(BgL_offsetz00_2294%BgL_n2z00_2307); } } 
{ /* ./Cfa/specialize.scm 422 */

{ /* ./Cfa/specialize.scm 422 */
obj_t BgL_bucketz00_2299;
{ /* ./Cfa/specialize.scm 422 */
int BgL_kz00_2309;
BgL_kz00_2309 = 
(int)(BgL_modz00_2295); 
BgL_bucketz00_2299 = 
VECTOR_REF(BgL_arg2017z00_2290,BgL_kz00_2309); } 
{ /* ./Cfa/specialize.scm 422 */
int BgL_kz00_2311;
BgL_kz00_2311 = 
(int)(BgL_restz00_2297); 
BgL_method2876z00_2287 = 
VECTOR_REF(BgL_bucketz00_2299,BgL_kz00_2311); } } } } } } } } } } 
BgL_arg4054z00_1487 = 
PROCEDURE_ENTRY(BgL_method2876z00_2287)(BgL_method2876z00_2287, 
(obj_t)(BgL_arg4057z00_1488), BEOA); } } 
{ /* ./Cfa/specialize.scm 422 */
BgL_letzd2varzd2_bglt BgL_obj2491z00_2312;BgL_nodez00_bglt BgL_val2490z00_2313;
BgL_obj2491z00_2312 = BgL_nodez00_1475; 
BgL_val2490z00_2313 = 
(BgL_nodez00_bglt)(BgL_arg4054z00_1487); 
((((BgL_letzd2varzd2_bglt)CREF(BgL_obj2491z00_2312))->BgL_bodyz00) = ((BgL_nodez00_bglt)BgL_val2490z00_2313), BUNSPEC); } } 
BgL_auxz00_3630 = BgL_nodez00_1475; 
return 
(obj_t)(BgL_auxz00_3630);} } } 
}



/* patch!-let-fun2906 */
obj_t BGl_patchz12zd2letzd2fun2906z12zzcfa_specializa7eza7(obj_t BgL_envz00_2693, obj_t BgL_nodez00_2694)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 407 */
{ 
BgL_letzd2funzd2_bglt BgL_nodez00_1461;
{ /* ./Cfa/specialize.scm 408 */
BgL_letzd2funzd2_bglt BgL_auxz00_3689;
BgL_nodez00_1461 = 
(BgL_letzd2funzd2_bglt)(BgL_nodez00_2694); 
{ 
obj_t BgL_l2851z00_1465;
{ /* ./Cfa/specialize.scm 409 */
obj_t BgL_arg4011z00_1467;
BgL_arg4011z00_1467 = 
(((BgL_letzd2funzd2_bglt)CREF(BgL_nodez00_1461))->BgL_localsz00); 
BgL_l2851z00_1465 = BgL_arg4011z00_1467; 
BgL_forzd2each2852zd2_1466:
{ /* ./Cfa/specialize.scm 409 */
bool_t BgL_test4014z00_1468;
BgL_test4014z00_1468 = 
PAIRP(BgL_l2851z00_1465); 
if(BgL_test4014z00_1468)
{ /* ./Cfa/specialize.scm 409 */
{ /* ./Cfa/specialize.scm 409 */
obj_t BgL_arg4016z00_1469;
BgL_arg4016z00_1469 = 
CAR(BgL_l2851z00_1465); 
BGl_patchzd2funz12zc0zzcfa_specializa7eza7(BgL_arg4016z00_1469); } 
{ /* ./Cfa/specialize.scm 409 */
obj_t BgL_arg4020z00_1470;
BgL_arg4020z00_1470 = 
CDR(BgL_l2851z00_1465); 
{ 
obj_t BgL_l2851z00_3696;
BgL_l2851z00_3696 = BgL_arg4020z00_1470; 
BgL_l2851z00_1465 = BgL_l2851z00_3696; 
goto BgL_forzd2each2852zd2_1466;} } }  else 
{ /* ./Cfa/specialize.scm 409 */((bool_t)1); } } } } 
{ /* ./Cfa/specialize.scm 410 */
obj_t BgL_arg4025z00_1471;
{ /* ./Cfa/specialize.scm 410 */
BgL_nodez00_bglt BgL_arg4028z00_1472;
BgL_arg4028z00_1472 = 
(((BgL_letzd2funzd2_bglt)CREF(BgL_nodez00_1461))->BgL_bodyz00); 
{ /* ./Cfa/specialize.scm 410 */
obj_t BgL_method2876z00_2225;
{ /* ./Cfa/specialize.scm 410 */
BgL_objectz00_bglt BgL_objz00_2226;
BgL_objz00_2226 = 
(BgL_objectz00_bglt)(BgL_arg4028z00_1472); 
{ /* ./Cfa/specialize.scm 410 */
long BgL_objzd2classzd2numz00_2227;
BgL_objzd2classzd2numz00_2227 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2226); 
{ /* ./Cfa/specialize.scm 410 */
obj_t BgL_arg2017z00_2228;
{ /* ./Cfa/specialize.scm 410 */
int BgL_auxz00_3700;
BgL_auxz00_3700 = 
(int)(((long)1)); 
BgL_arg2017z00_2228 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3700); } 
{ /* ./Cfa/specialize.scm 410 */
int BgL_offsetz00_2231;
BgL_offsetz00_2231 = 
(int)(BgL_objzd2classzd2numz00_2227); 
{ /* ./Cfa/specialize.scm 410 */
long BgL_offsetz00_2232;
{ /* ./Cfa/specialize.scm 410 */
long BgL_auxz00_3704;
BgL_auxz00_3704 = 
(long)(BgL_offsetz00_2231); 
BgL_offsetz00_2232 = 
(BgL_auxz00_3704-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 410 */
long BgL_modz00_2233;
{ /* ./Cfa/specialize.scm 410 */
int BgL_arg2028z00_2234;
BgL_arg2028z00_2234 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 410 */
long BgL_n2z00_2242;
BgL_n2z00_2242 = 
(long)(BgL_arg2028z00_2234); 
BgL_modz00_2233 = 
(BgL_offsetz00_2232/BgL_n2z00_2242); } } 
{ /* ./Cfa/specialize.scm 410 */
long BgL_restz00_2235;
{ /* ./Cfa/specialize.scm 410 */
int BgL_arg2024z00_2236;
BgL_arg2024z00_2236 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 410 */
long BgL_n2z00_2245;
BgL_n2z00_2245 = 
(long)(BgL_arg2024z00_2236); 
BgL_restz00_2235 = 
(BgL_offsetz00_2232%BgL_n2z00_2245); } } 
{ /* ./Cfa/specialize.scm 410 */

{ /* ./Cfa/specialize.scm 410 */
obj_t BgL_bucketz00_2237;
{ /* ./Cfa/specialize.scm 410 */
int BgL_kz00_2247;
BgL_kz00_2247 = 
(int)(BgL_modz00_2233); 
BgL_bucketz00_2237 = 
VECTOR_REF(BgL_arg2017z00_2228,BgL_kz00_2247); } 
{ /* ./Cfa/specialize.scm 410 */
int BgL_kz00_2249;
BgL_kz00_2249 = 
(int)(BgL_restz00_2235); 
BgL_method2876z00_2225 = 
VECTOR_REF(BgL_bucketz00_2237,BgL_kz00_2249); } } } } } } } } } } 
BgL_arg4025z00_1471 = 
PROCEDURE_ENTRY(BgL_method2876z00_2225)(BgL_method2876z00_2225, 
(obj_t)(BgL_arg4028z00_1472), BEOA); } } 
{ /* ./Cfa/specialize.scm 410 */
BgL_letzd2funzd2_bglt BgL_obj2453z00_2250;BgL_nodez00_bglt BgL_val2452z00_2251;
BgL_obj2453z00_2250 = BgL_nodez00_1461; 
BgL_val2452z00_2251 = 
(BgL_nodez00_bglt)(BgL_arg4025z00_1471); 
((((BgL_letzd2funzd2_bglt)CREF(BgL_obj2453z00_2250))->BgL_bodyz00) = ((BgL_nodez00_bglt)BgL_val2452z00_2251), BUNSPEC); } } 
BgL_auxz00_3689 = BgL_nodez00_1461; 
return 
(obj_t)(BgL_auxz00_3689);} } } 
}



/* patch!-select2903 */
obj_t BGl_patchz12zd2select2903zc0zzcfa_specializa7eza7(obj_t BgL_envz00_2695, obj_t BgL_nodez00_2696)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 396 */
{ 
BgL_selectz00_bglt BgL_nodez00_1445;
{ /* ./Cfa/specialize.scm 397 */
BgL_selectz00_bglt BgL_auxz00_3724;
BgL_nodez00_1445 = 
(BgL_selectz00_bglt)(BgL_nodez00_2696); 
{ /* ./Cfa/specialize.scm 398 */
obj_t BgL_arg3980z00_1449;
{ /* ./Cfa/specialize.scm 398 */
BgL_nodez00_bglt BgL_arg3983z00_1450;
BgL_arg3983z00_1450 = 
(((BgL_selectz00_bglt)CREF(BgL_nodez00_1445))->BgL_testz00); 
{ /* ./Cfa/specialize.scm 398 */
obj_t BgL_method2876z00_2159;
{ /* ./Cfa/specialize.scm 398 */
BgL_objectz00_bglt BgL_objz00_2160;
BgL_objz00_2160 = 
(BgL_objectz00_bglt)(BgL_arg3983z00_1450); 
{ /* ./Cfa/specialize.scm 398 */
long BgL_objzd2classzd2numz00_2161;
BgL_objzd2classzd2numz00_2161 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2160); 
{ /* ./Cfa/specialize.scm 398 */
obj_t BgL_arg2017z00_2162;
{ /* ./Cfa/specialize.scm 398 */
int BgL_auxz00_3728;
BgL_auxz00_3728 = 
(int)(((long)1)); 
BgL_arg2017z00_2162 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3728); } 
{ /* ./Cfa/specialize.scm 398 */
int BgL_offsetz00_2165;
BgL_offsetz00_2165 = 
(int)(BgL_objzd2classzd2numz00_2161); 
{ /* ./Cfa/specialize.scm 398 */
long BgL_offsetz00_2166;
{ /* ./Cfa/specialize.scm 398 */
long BgL_auxz00_3732;
BgL_auxz00_3732 = 
(long)(BgL_offsetz00_2165); 
BgL_offsetz00_2166 = 
(BgL_auxz00_3732-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 398 */
long BgL_modz00_2167;
{ /* ./Cfa/specialize.scm 398 */
int BgL_arg2028z00_2168;
BgL_arg2028z00_2168 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 398 */
long BgL_n2z00_2176;
BgL_n2z00_2176 = 
(long)(BgL_arg2028z00_2168); 
BgL_modz00_2167 = 
(BgL_offsetz00_2166/BgL_n2z00_2176); } } 
{ /* ./Cfa/specialize.scm 398 */
long BgL_restz00_2169;
{ /* ./Cfa/specialize.scm 398 */
int BgL_arg2024z00_2170;
BgL_arg2024z00_2170 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 398 */
long BgL_n2z00_2179;
BgL_n2z00_2179 = 
(long)(BgL_arg2024z00_2170); 
BgL_restz00_2169 = 
(BgL_offsetz00_2166%BgL_n2z00_2179); } } 
{ /* ./Cfa/specialize.scm 398 */

{ /* ./Cfa/specialize.scm 398 */
obj_t BgL_bucketz00_2171;
{ /* ./Cfa/specialize.scm 398 */
int BgL_kz00_2181;
BgL_kz00_2181 = 
(int)(BgL_modz00_2167); 
BgL_bucketz00_2171 = 
VECTOR_REF(BgL_arg2017z00_2162,BgL_kz00_2181); } 
{ /* ./Cfa/specialize.scm 398 */
int BgL_kz00_2183;
BgL_kz00_2183 = 
(int)(BgL_restz00_2169); 
BgL_method2876z00_2159 = 
VECTOR_REF(BgL_bucketz00_2171,BgL_kz00_2183); } } } } } } } } } } 
BgL_arg3980z00_1449 = 
PROCEDURE_ENTRY(BgL_method2876z00_2159)(BgL_method2876z00_2159, 
(obj_t)(BgL_arg3983z00_1450), BEOA); } } 
{ /* ./Cfa/specialize.scm 398 */
BgL_selectz00_bglt BgL_obj2410z00_2184;BgL_nodez00_bglt BgL_val2409z00_2185;
BgL_obj2410z00_2184 = BgL_nodez00_1445; 
BgL_val2409z00_2185 = 
(BgL_nodez00_bglt)(BgL_arg3980z00_1449); 
((((BgL_selectz00_bglt)CREF(BgL_obj2410z00_2184))->BgL_testz00) = ((BgL_nodez00_bglt)BgL_val2409z00_2185), BUNSPEC); } } 
{ 
obj_t BgL_l2847z00_1451;
{ /* ./Cfa/specialize.scm 399 */
obj_t BgL_arg3987z00_1453;
BgL_arg3987z00_1453 = 
(((BgL_selectz00_bglt)CREF(BgL_nodez00_1445))->BgL_clausesz00); 
BgL_l2847z00_1451 = BgL_arg3987z00_1453; 
BgL_forzd2each2848zd2_1452:
{ /* ./Cfa/specialize.scm 399 */
bool_t BgL_test3990z00_1454;
BgL_test3990z00_1454 = 
PAIRP(BgL_l2847z00_1451); 
if(BgL_test3990z00_1454)
{ /* ./Cfa/specialize.scm 399 */
{ /* ./Cfa/specialize.scm 400 */
obj_t BgL_clausez00_1455;
BgL_clausez00_1455 = 
CAR(BgL_l2847z00_1451); 
{ /* ./Cfa/specialize.scm 400 */
obj_t BgL_arg3992z00_1456;
{ /* ./Cfa/specialize.scm 400 */
obj_t BgL_arg3995z00_1457;
BgL_arg3995z00_1457 = 
CDR(BgL_clausez00_1455); 
{ /* ./Cfa/specialize.scm 400 */
BgL_nodez00_bglt BgL_nodez00_2190;
BgL_nodez00_2190 = 
(BgL_nodez00_bglt)(BgL_arg3995z00_1457); 
{ /* ./Cfa/specialize.scm 400 */
obj_t BgL_method2876z00_2191;
{ /* ./Cfa/specialize.scm 400 */
BgL_objectz00_bglt BgL_objz00_2192;
BgL_objz00_2192 = 
(BgL_objectz00_bglt)(BgL_nodez00_2190); 
{ /* ./Cfa/specialize.scm 400 */
long BgL_objzd2classzd2numz00_2193;
BgL_objzd2classzd2numz00_2193 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2192); 
{ /* ./Cfa/specialize.scm 400 */
obj_t BgL_arg2017z00_2194;
{ /* ./Cfa/specialize.scm 400 */
int BgL_auxz00_3758;
BgL_auxz00_3758 = 
(int)(((long)1)); 
BgL_arg2017z00_2194 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3758); } 
{ /* ./Cfa/specialize.scm 400 */
int BgL_offsetz00_2197;
BgL_offsetz00_2197 = 
(int)(BgL_objzd2classzd2numz00_2193); 
{ /* ./Cfa/specialize.scm 400 */
long BgL_offsetz00_2198;
{ /* ./Cfa/specialize.scm 400 */
long BgL_auxz00_3762;
BgL_auxz00_3762 = 
(long)(BgL_offsetz00_2197); 
BgL_offsetz00_2198 = 
(BgL_auxz00_3762-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 400 */
long BgL_modz00_2199;
{ /* ./Cfa/specialize.scm 400 */
int BgL_arg2028z00_2200;
BgL_arg2028z00_2200 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 400 */
long BgL_n2z00_2208;
BgL_n2z00_2208 = 
(long)(BgL_arg2028z00_2200); 
BgL_modz00_2199 = 
(BgL_offsetz00_2198/BgL_n2z00_2208); } } 
{ /* ./Cfa/specialize.scm 400 */
long BgL_restz00_2201;
{ /* ./Cfa/specialize.scm 400 */
int BgL_arg2024z00_2202;
BgL_arg2024z00_2202 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 400 */
long BgL_n2z00_2211;
BgL_n2z00_2211 = 
(long)(BgL_arg2024z00_2202); 
BgL_restz00_2201 = 
(BgL_offsetz00_2198%BgL_n2z00_2211); } } 
{ /* ./Cfa/specialize.scm 400 */

{ /* ./Cfa/specialize.scm 400 */
obj_t BgL_bucketz00_2203;
{ /* ./Cfa/specialize.scm 400 */
int BgL_kz00_2213;
BgL_kz00_2213 = 
(int)(BgL_modz00_2199); 
BgL_bucketz00_2203 = 
VECTOR_REF(BgL_arg2017z00_2194,BgL_kz00_2213); } 
{ /* ./Cfa/specialize.scm 400 */
int BgL_kz00_2215;
BgL_kz00_2215 = 
(int)(BgL_restz00_2201); 
BgL_method2876z00_2191 = 
VECTOR_REF(BgL_bucketz00_2203,BgL_kz00_2215); } } } } } } } } } } 
BgL_arg3992z00_1456 = 
PROCEDURE_ENTRY(BgL_method2876z00_2191)(BgL_method2876z00_2191, 
(obj_t)(BgL_nodez00_2190), BEOA); } } } 
SET_CDR(BgL_clausez00_1455, BgL_arg3992z00_1456); } } 
{ /* ./Cfa/specialize.scm 399 */
obj_t BgL_arg4000z00_1458;
BgL_arg4000z00_1458 = 
CDR(BgL_l2847z00_1451); 
{ 
obj_t BgL_l2847z00_3780;
BgL_l2847z00_3780 = BgL_arg4000z00_1458; 
BgL_l2847z00_1451 = BgL_l2847z00_3780; 
goto BgL_forzd2each2848zd2_1452;} } }  else 
{ /* ./Cfa/specialize.scm 399 */((bool_t)1); } } } } 
BgL_auxz00_3724 = BgL_nodez00_1445; 
return 
(obj_t)(BgL_auxz00_3724);} } } 
}



/* patch!-fail2901 */
obj_t BGl_patchz12zd2fail2901zc0zzcfa_specializa7eza7(obj_t BgL_envz00_2697, obj_t BgL_nodez00_2698)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 386 */
{ 
BgL_failz00_bglt BgL_nodez00_1433;
{ /* ./Cfa/specialize.scm 387 */
BgL_failz00_bglt BgL_auxz00_3783;
BgL_nodez00_1433 = 
(BgL_failz00_bglt)(BgL_nodez00_2698); 
{ /* ./Cfa/specialize.scm 388 */
obj_t BgL_arg3953z00_1437;
{ /* ./Cfa/specialize.scm 388 */
BgL_nodez00_bglt BgL_arg3956z00_1438;
BgL_arg3956z00_1438 = 
(((BgL_failz00_bglt)CREF(BgL_nodez00_1433))->BgL_procz00); 
{ /* ./Cfa/specialize.scm 388 */
obj_t BgL_method2876z00_2072;
{ /* ./Cfa/specialize.scm 388 */
BgL_objectz00_bglt BgL_objz00_2073;
BgL_objz00_2073 = 
(BgL_objectz00_bglt)(BgL_arg3956z00_1438); 
{ /* ./Cfa/specialize.scm 388 */
long BgL_objzd2classzd2numz00_2074;
BgL_objzd2classzd2numz00_2074 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2073); 
{ /* ./Cfa/specialize.scm 388 */
obj_t BgL_arg2017z00_2075;
{ /* ./Cfa/specialize.scm 388 */
int BgL_auxz00_3787;
BgL_auxz00_3787 = 
(int)(((long)1)); 
BgL_arg2017z00_2075 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3787); } 
{ /* ./Cfa/specialize.scm 388 */
int BgL_offsetz00_2078;
BgL_offsetz00_2078 = 
(int)(BgL_objzd2classzd2numz00_2074); 
{ /* ./Cfa/specialize.scm 388 */
long BgL_offsetz00_2079;
{ /* ./Cfa/specialize.scm 388 */
long BgL_auxz00_3791;
BgL_auxz00_3791 = 
(long)(BgL_offsetz00_2078); 
BgL_offsetz00_2079 = 
(BgL_auxz00_3791-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 388 */
long BgL_modz00_2080;
{ /* ./Cfa/specialize.scm 388 */
int BgL_arg2028z00_2081;
BgL_arg2028z00_2081 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 388 */
long BgL_n2z00_2089;
BgL_n2z00_2089 = 
(long)(BgL_arg2028z00_2081); 
BgL_modz00_2080 = 
(BgL_offsetz00_2079/BgL_n2z00_2089); } } 
{ /* ./Cfa/specialize.scm 388 */
long BgL_restz00_2082;
{ /* ./Cfa/specialize.scm 388 */
int BgL_arg2024z00_2083;
BgL_arg2024z00_2083 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 388 */
long BgL_n2z00_2092;
BgL_n2z00_2092 = 
(long)(BgL_arg2024z00_2083); 
BgL_restz00_2082 = 
(BgL_offsetz00_2079%BgL_n2z00_2092); } } 
{ /* ./Cfa/specialize.scm 388 */

{ /* ./Cfa/specialize.scm 388 */
obj_t BgL_bucketz00_2084;
{ /* ./Cfa/specialize.scm 388 */
int BgL_kz00_2094;
BgL_kz00_2094 = 
(int)(BgL_modz00_2080); 
BgL_bucketz00_2084 = 
VECTOR_REF(BgL_arg2017z00_2075,BgL_kz00_2094); } 
{ /* ./Cfa/specialize.scm 388 */
int BgL_kz00_2096;
BgL_kz00_2096 = 
(int)(BgL_restz00_2082); 
BgL_method2876z00_2072 = 
VECTOR_REF(BgL_bucketz00_2084,BgL_kz00_2096); } } } } } } } } } } 
BgL_arg3953z00_1437 = 
PROCEDURE_ENTRY(BgL_method2876z00_2072)(BgL_method2876z00_2072, 
(obj_t)(BgL_arg3956z00_1438), BEOA); } } 
{ /* ./Cfa/specialize.scm 388 */
BgL_failz00_bglt BgL_obj2372z00_2097;BgL_nodez00_bglt BgL_val2371z00_2098;
BgL_obj2372z00_2097 = BgL_nodez00_1433; 
BgL_val2371z00_2098 = 
(BgL_nodez00_bglt)(BgL_arg3953z00_1437); 
((((BgL_failz00_bglt)CREF(BgL_obj2372z00_2097))->BgL_procz00) = ((BgL_nodez00_bglt)BgL_val2371z00_2098), BUNSPEC); } } 
{ /* ./Cfa/specialize.scm 389 */
obj_t BgL_arg3960z00_1439;
{ /* ./Cfa/specialize.scm 389 */
BgL_nodez00_bglt BgL_arg3963z00_1440;
BgL_arg3963z00_1440 = 
(((BgL_failz00_bglt)CREF(BgL_nodez00_1433))->BgL_msgz00); 
{ /* ./Cfa/specialize.scm 389 */
obj_t BgL_method2876z00_2101;
{ /* ./Cfa/specialize.scm 389 */
BgL_objectz00_bglt BgL_objz00_2102;
BgL_objz00_2102 = 
(BgL_objectz00_bglt)(BgL_arg3963z00_1440); 
{ /* ./Cfa/specialize.scm 389 */
long BgL_objzd2classzd2numz00_2103;
BgL_objzd2classzd2numz00_2103 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2102); 
{ /* ./Cfa/specialize.scm 389 */
obj_t BgL_arg2017z00_2104;
{ /* ./Cfa/specialize.scm 389 */
int BgL_auxz00_3812;
BgL_auxz00_3812 = 
(int)(((long)1)); 
BgL_arg2017z00_2104 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3812); } 
{ /* ./Cfa/specialize.scm 389 */
int BgL_offsetz00_2107;
BgL_offsetz00_2107 = 
(int)(BgL_objzd2classzd2numz00_2103); 
{ /* ./Cfa/specialize.scm 389 */
long BgL_offsetz00_2108;
{ /* ./Cfa/specialize.scm 389 */
long BgL_auxz00_3816;
BgL_auxz00_3816 = 
(long)(BgL_offsetz00_2107); 
BgL_offsetz00_2108 = 
(BgL_auxz00_3816-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 389 */
long BgL_modz00_2109;
{ /* ./Cfa/specialize.scm 389 */
int BgL_arg2028z00_2110;
BgL_arg2028z00_2110 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 389 */
long BgL_n2z00_2118;
BgL_n2z00_2118 = 
(long)(BgL_arg2028z00_2110); 
BgL_modz00_2109 = 
(BgL_offsetz00_2108/BgL_n2z00_2118); } } 
{ /* ./Cfa/specialize.scm 389 */
long BgL_restz00_2111;
{ /* ./Cfa/specialize.scm 389 */
int BgL_arg2024z00_2112;
BgL_arg2024z00_2112 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 389 */
long BgL_n2z00_2121;
BgL_n2z00_2121 = 
(long)(BgL_arg2024z00_2112); 
BgL_restz00_2111 = 
(BgL_offsetz00_2108%BgL_n2z00_2121); } } 
{ /* ./Cfa/specialize.scm 389 */

{ /* ./Cfa/specialize.scm 389 */
obj_t BgL_bucketz00_2113;
{ /* ./Cfa/specialize.scm 389 */
int BgL_kz00_2123;
BgL_kz00_2123 = 
(int)(BgL_modz00_2109); 
BgL_bucketz00_2113 = 
VECTOR_REF(BgL_arg2017z00_2104,BgL_kz00_2123); } 
{ /* ./Cfa/specialize.scm 389 */
int BgL_kz00_2125;
BgL_kz00_2125 = 
(int)(BgL_restz00_2111); 
BgL_method2876z00_2101 = 
VECTOR_REF(BgL_bucketz00_2113,BgL_kz00_2125); } } } } } } } } } } 
BgL_arg3960z00_1439 = 
PROCEDURE_ENTRY(BgL_method2876z00_2101)(BgL_method2876z00_2101, 
(obj_t)(BgL_arg3963z00_1440), BEOA); } } 
{ /* ./Cfa/specialize.scm 389 */
BgL_failz00_bglt BgL_obj2375z00_2126;BgL_nodez00_bglt BgL_val2374z00_2127;
BgL_obj2375z00_2126 = BgL_nodez00_1433; 
BgL_val2374z00_2127 = 
(BgL_nodez00_bglt)(BgL_arg3960z00_1439); 
((((BgL_failz00_bglt)CREF(BgL_obj2375z00_2126))->BgL_msgz00) = ((BgL_nodez00_bglt)BgL_val2374z00_2127), BUNSPEC); } } 
{ /* ./Cfa/specialize.scm 390 */
obj_t BgL_arg3967z00_1441;
{ /* ./Cfa/specialize.scm 390 */
BgL_nodez00_bglt BgL_arg3970z00_1442;
BgL_arg3970z00_1442 = 
(((BgL_failz00_bglt)CREF(BgL_nodez00_1433))->BgL_objz00); 
{ /* ./Cfa/specialize.scm 390 */
obj_t BgL_method2876z00_2130;
{ /* ./Cfa/specialize.scm 390 */
BgL_objectz00_bglt BgL_objz00_2131;
BgL_objz00_2131 = 
(BgL_objectz00_bglt)(BgL_arg3970z00_1442); 
{ /* ./Cfa/specialize.scm 390 */
long BgL_objzd2classzd2numz00_2132;
BgL_objzd2classzd2numz00_2132 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2131); 
{ /* ./Cfa/specialize.scm 390 */
obj_t BgL_arg2017z00_2133;
{ /* ./Cfa/specialize.scm 390 */
int BgL_auxz00_3837;
BgL_auxz00_3837 = 
(int)(((long)1)); 
BgL_arg2017z00_2133 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3837); } 
{ /* ./Cfa/specialize.scm 390 */
int BgL_offsetz00_2136;
BgL_offsetz00_2136 = 
(int)(BgL_objzd2classzd2numz00_2132); 
{ /* ./Cfa/specialize.scm 390 */
long BgL_offsetz00_2137;
{ /* ./Cfa/specialize.scm 390 */
long BgL_auxz00_3841;
BgL_auxz00_3841 = 
(long)(BgL_offsetz00_2136); 
BgL_offsetz00_2137 = 
(BgL_auxz00_3841-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 390 */
long BgL_modz00_2138;
{ /* ./Cfa/specialize.scm 390 */
int BgL_arg2028z00_2139;
BgL_arg2028z00_2139 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 390 */
long BgL_n2z00_2147;
BgL_n2z00_2147 = 
(long)(BgL_arg2028z00_2139); 
BgL_modz00_2138 = 
(BgL_offsetz00_2137/BgL_n2z00_2147); } } 
{ /* ./Cfa/specialize.scm 390 */
long BgL_restz00_2140;
{ /* ./Cfa/specialize.scm 390 */
int BgL_arg2024z00_2141;
BgL_arg2024z00_2141 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 390 */
long BgL_n2z00_2150;
BgL_n2z00_2150 = 
(long)(BgL_arg2024z00_2141); 
BgL_restz00_2140 = 
(BgL_offsetz00_2137%BgL_n2z00_2150); } } 
{ /* ./Cfa/specialize.scm 390 */

{ /* ./Cfa/specialize.scm 390 */
obj_t BgL_bucketz00_2142;
{ /* ./Cfa/specialize.scm 390 */
int BgL_kz00_2152;
BgL_kz00_2152 = 
(int)(BgL_modz00_2138); 
BgL_bucketz00_2142 = 
VECTOR_REF(BgL_arg2017z00_2133,BgL_kz00_2152); } 
{ /* ./Cfa/specialize.scm 390 */
int BgL_kz00_2154;
BgL_kz00_2154 = 
(int)(BgL_restz00_2140); 
BgL_method2876z00_2130 = 
VECTOR_REF(BgL_bucketz00_2142,BgL_kz00_2154); } } } } } } } } } } 
BgL_arg3967z00_1441 = 
PROCEDURE_ENTRY(BgL_method2876z00_2130)(BgL_method2876z00_2130, 
(obj_t)(BgL_arg3970z00_1442), BEOA); } } 
{ /* ./Cfa/specialize.scm 390 */
BgL_failz00_bglt BgL_obj2378z00_2155;BgL_nodez00_bglt BgL_val2377z00_2156;
BgL_obj2378z00_2155 = BgL_nodez00_1433; 
BgL_val2377z00_2156 = 
(BgL_nodez00_bglt)(BgL_arg3967z00_1441); 
((((BgL_failz00_bglt)CREF(BgL_obj2378z00_2155))->BgL_objz00) = ((BgL_nodez00_bglt)BgL_val2377z00_2156), BUNSPEC); } } 
BgL_auxz00_3783 = BgL_nodez00_1433; 
return 
(obj_t)(BgL_auxz00_3783);} } } 
}



/* patch!-conditional2899 */
obj_t BGl_patchz12zd2conditional2899zc0zzcfa_specializa7eza7(obj_t BgL_envz00_2699, obj_t BgL_nodez00_2700)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 376 */
{ 
BgL_conditionalz00_bglt BgL_nodez00_1421;
{ /* ./Cfa/specialize.scm 377 */
BgL_conditionalz00_bglt BgL_auxz00_3861;
BgL_nodez00_1421 = 
(BgL_conditionalz00_bglt)(BgL_nodez00_2700); 
{ /* ./Cfa/specialize.scm 378 */
obj_t BgL_arg3925z00_1425;
{ /* ./Cfa/specialize.scm 378 */
BgL_nodez00_bglt BgL_arg3928z00_1426;
BgL_arg3928z00_1426 = 
(((BgL_conditionalz00_bglt)CREF(BgL_nodez00_1421))->BgL_testz00); 
{ /* ./Cfa/specialize.scm 378 */
obj_t BgL_method2876z00_1985;
{ /* ./Cfa/specialize.scm 378 */
BgL_objectz00_bglt BgL_objz00_1986;
BgL_objz00_1986 = 
(BgL_objectz00_bglt)(BgL_arg3928z00_1426); 
{ /* ./Cfa/specialize.scm 378 */
long BgL_objzd2classzd2numz00_1987;
BgL_objzd2classzd2numz00_1987 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1986); 
{ /* ./Cfa/specialize.scm 378 */
obj_t BgL_arg2017z00_1988;
{ /* ./Cfa/specialize.scm 378 */
int BgL_auxz00_3865;
BgL_auxz00_3865 = 
(int)(((long)1)); 
BgL_arg2017z00_1988 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3865); } 
{ /* ./Cfa/specialize.scm 378 */
int BgL_offsetz00_1991;
BgL_offsetz00_1991 = 
(int)(BgL_objzd2classzd2numz00_1987); 
{ /* ./Cfa/specialize.scm 378 */
long BgL_offsetz00_1992;
{ /* ./Cfa/specialize.scm 378 */
long BgL_auxz00_3869;
BgL_auxz00_3869 = 
(long)(BgL_offsetz00_1991); 
BgL_offsetz00_1992 = 
(BgL_auxz00_3869-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 378 */
long BgL_modz00_1993;
{ /* ./Cfa/specialize.scm 378 */
int BgL_arg2028z00_1994;
BgL_arg2028z00_1994 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 378 */
long BgL_n2z00_2002;
BgL_n2z00_2002 = 
(long)(BgL_arg2028z00_1994); 
BgL_modz00_1993 = 
(BgL_offsetz00_1992/BgL_n2z00_2002); } } 
{ /* ./Cfa/specialize.scm 378 */
long BgL_restz00_1995;
{ /* ./Cfa/specialize.scm 378 */
int BgL_arg2024z00_1996;
BgL_arg2024z00_1996 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 378 */
long BgL_n2z00_2005;
BgL_n2z00_2005 = 
(long)(BgL_arg2024z00_1996); 
BgL_restz00_1995 = 
(BgL_offsetz00_1992%BgL_n2z00_2005); } } 
{ /* ./Cfa/specialize.scm 378 */

{ /* ./Cfa/specialize.scm 378 */
obj_t BgL_bucketz00_1997;
{ /* ./Cfa/specialize.scm 378 */
int BgL_kz00_2007;
BgL_kz00_2007 = 
(int)(BgL_modz00_1993); 
BgL_bucketz00_1997 = 
VECTOR_REF(BgL_arg2017z00_1988,BgL_kz00_2007); } 
{ /* ./Cfa/specialize.scm 378 */
int BgL_kz00_2009;
BgL_kz00_2009 = 
(int)(BgL_restz00_1995); 
BgL_method2876z00_1985 = 
VECTOR_REF(BgL_bucketz00_1997,BgL_kz00_2009); } } } } } } } } } } 
BgL_arg3925z00_1425 = 
PROCEDURE_ENTRY(BgL_method2876z00_1985)(BgL_method2876z00_1985, 
(obj_t)(BgL_arg3928z00_1426), BEOA); } } 
{ /* ./Cfa/specialize.scm 378 */
BgL_conditionalz00_bglt BgL_obj2334z00_2010;BgL_nodez00_bglt BgL_val2333z00_2011;
BgL_obj2334z00_2010 = BgL_nodez00_1421; 
BgL_val2333z00_2011 = 
(BgL_nodez00_bglt)(BgL_arg3925z00_1425); 
((((BgL_conditionalz00_bglt)CREF(BgL_obj2334z00_2010))->BgL_testz00) = ((BgL_nodez00_bglt)BgL_val2333z00_2011), BUNSPEC); } } 
{ /* ./Cfa/specialize.scm 379 */
obj_t BgL_arg3932z00_1427;
{ /* ./Cfa/specialize.scm 379 */
BgL_nodez00_bglt BgL_arg3935z00_1428;
BgL_arg3935z00_1428 = 
(((BgL_conditionalz00_bglt)CREF(BgL_nodez00_1421))->BgL_truez00); 
{ /* ./Cfa/specialize.scm 379 */
obj_t BgL_method2876z00_2014;
{ /* ./Cfa/specialize.scm 379 */
BgL_objectz00_bglt BgL_objz00_2015;
BgL_objz00_2015 = 
(BgL_objectz00_bglt)(BgL_arg3935z00_1428); 
{ /* ./Cfa/specialize.scm 379 */
long BgL_objzd2classzd2numz00_2016;
BgL_objzd2classzd2numz00_2016 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2015); 
{ /* ./Cfa/specialize.scm 379 */
obj_t BgL_arg2017z00_2017;
{ /* ./Cfa/specialize.scm 379 */
int BgL_auxz00_3890;
BgL_auxz00_3890 = 
(int)(((long)1)); 
BgL_arg2017z00_2017 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3890); } 
{ /* ./Cfa/specialize.scm 379 */
int BgL_offsetz00_2020;
BgL_offsetz00_2020 = 
(int)(BgL_objzd2classzd2numz00_2016); 
{ /* ./Cfa/specialize.scm 379 */
long BgL_offsetz00_2021;
{ /* ./Cfa/specialize.scm 379 */
long BgL_auxz00_3894;
BgL_auxz00_3894 = 
(long)(BgL_offsetz00_2020); 
BgL_offsetz00_2021 = 
(BgL_auxz00_3894-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 379 */
long BgL_modz00_2022;
{ /* ./Cfa/specialize.scm 379 */
int BgL_arg2028z00_2023;
BgL_arg2028z00_2023 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 379 */
long BgL_n2z00_2031;
BgL_n2z00_2031 = 
(long)(BgL_arg2028z00_2023); 
BgL_modz00_2022 = 
(BgL_offsetz00_2021/BgL_n2z00_2031); } } 
{ /* ./Cfa/specialize.scm 379 */
long BgL_restz00_2024;
{ /* ./Cfa/specialize.scm 379 */
int BgL_arg2024z00_2025;
BgL_arg2024z00_2025 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 379 */
long BgL_n2z00_2034;
BgL_n2z00_2034 = 
(long)(BgL_arg2024z00_2025); 
BgL_restz00_2024 = 
(BgL_offsetz00_2021%BgL_n2z00_2034); } } 
{ /* ./Cfa/specialize.scm 379 */

{ /* ./Cfa/specialize.scm 379 */
obj_t BgL_bucketz00_2026;
{ /* ./Cfa/specialize.scm 379 */
int BgL_kz00_2036;
BgL_kz00_2036 = 
(int)(BgL_modz00_2022); 
BgL_bucketz00_2026 = 
VECTOR_REF(BgL_arg2017z00_2017,BgL_kz00_2036); } 
{ /* ./Cfa/specialize.scm 379 */
int BgL_kz00_2038;
BgL_kz00_2038 = 
(int)(BgL_restz00_2024); 
BgL_method2876z00_2014 = 
VECTOR_REF(BgL_bucketz00_2026,BgL_kz00_2038); } } } } } } } } } } 
BgL_arg3932z00_1427 = 
PROCEDURE_ENTRY(BgL_method2876z00_2014)(BgL_method2876z00_2014, 
(obj_t)(BgL_arg3935z00_1428), BEOA); } } 
{ /* ./Cfa/specialize.scm 379 */
BgL_conditionalz00_bglt BgL_obj2337z00_2039;BgL_nodez00_bglt BgL_val2336z00_2040;
BgL_obj2337z00_2039 = BgL_nodez00_1421; 
BgL_val2336z00_2040 = 
(BgL_nodez00_bglt)(BgL_arg3932z00_1427); 
((((BgL_conditionalz00_bglt)CREF(BgL_obj2337z00_2039))->BgL_truez00) = ((BgL_nodez00_bglt)BgL_val2336z00_2040), BUNSPEC); } } 
{ /* ./Cfa/specialize.scm 380 */
obj_t BgL_arg3939z00_1429;
{ /* ./Cfa/specialize.scm 380 */
BgL_nodez00_bglt BgL_arg3943z00_1430;
BgL_arg3943z00_1430 = 
(((BgL_conditionalz00_bglt)CREF(BgL_nodez00_1421))->BgL_falsez00); 
{ /* ./Cfa/specialize.scm 380 */
obj_t BgL_method2876z00_2043;
{ /* ./Cfa/specialize.scm 380 */
BgL_objectz00_bglt BgL_objz00_2044;
BgL_objz00_2044 = 
(BgL_objectz00_bglt)(BgL_arg3943z00_1430); 
{ /* ./Cfa/specialize.scm 380 */
long BgL_objzd2classzd2numz00_2045;
BgL_objzd2classzd2numz00_2045 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2044); 
{ /* ./Cfa/specialize.scm 380 */
obj_t BgL_arg2017z00_2046;
{ /* ./Cfa/specialize.scm 380 */
int BgL_auxz00_3915;
BgL_auxz00_3915 = 
(int)(((long)1)); 
BgL_arg2017z00_2046 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3915); } 
{ /* ./Cfa/specialize.scm 380 */
int BgL_offsetz00_2049;
BgL_offsetz00_2049 = 
(int)(BgL_objzd2classzd2numz00_2045); 
{ /* ./Cfa/specialize.scm 380 */
long BgL_offsetz00_2050;
{ /* ./Cfa/specialize.scm 380 */
long BgL_auxz00_3919;
BgL_auxz00_3919 = 
(long)(BgL_offsetz00_2049); 
BgL_offsetz00_2050 = 
(BgL_auxz00_3919-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 380 */
long BgL_modz00_2051;
{ /* ./Cfa/specialize.scm 380 */
int BgL_arg2028z00_2052;
BgL_arg2028z00_2052 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 380 */
long BgL_n2z00_2060;
BgL_n2z00_2060 = 
(long)(BgL_arg2028z00_2052); 
BgL_modz00_2051 = 
(BgL_offsetz00_2050/BgL_n2z00_2060); } } 
{ /* ./Cfa/specialize.scm 380 */
long BgL_restz00_2053;
{ /* ./Cfa/specialize.scm 380 */
int BgL_arg2024z00_2054;
BgL_arg2024z00_2054 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 380 */
long BgL_n2z00_2063;
BgL_n2z00_2063 = 
(long)(BgL_arg2024z00_2054); 
BgL_restz00_2053 = 
(BgL_offsetz00_2050%BgL_n2z00_2063); } } 
{ /* ./Cfa/specialize.scm 380 */

{ /* ./Cfa/specialize.scm 380 */
obj_t BgL_bucketz00_2055;
{ /* ./Cfa/specialize.scm 380 */
int BgL_kz00_2065;
BgL_kz00_2065 = 
(int)(BgL_modz00_2051); 
BgL_bucketz00_2055 = 
VECTOR_REF(BgL_arg2017z00_2046,BgL_kz00_2065); } 
{ /* ./Cfa/specialize.scm 380 */
int BgL_kz00_2067;
BgL_kz00_2067 = 
(int)(BgL_restz00_2053); 
BgL_method2876z00_2043 = 
VECTOR_REF(BgL_bucketz00_2055,BgL_kz00_2067); } } } } } } } } } } 
BgL_arg3939z00_1429 = 
PROCEDURE_ENTRY(BgL_method2876z00_2043)(BgL_method2876z00_2043, 
(obj_t)(BgL_arg3943z00_1430), BEOA); } } 
{ /* ./Cfa/specialize.scm 380 */
BgL_conditionalz00_bglt BgL_obj2340z00_2068;BgL_nodez00_bglt BgL_val2339z00_2069;
BgL_obj2340z00_2068 = BgL_nodez00_1421; 
BgL_val2339z00_2069 = 
(BgL_nodez00_bglt)(BgL_arg3939z00_1429); 
((((BgL_conditionalz00_bglt)CREF(BgL_obj2340z00_2068))->BgL_falsez00) = ((BgL_nodez00_bglt)BgL_val2339z00_2069), BUNSPEC); } } 
BgL_auxz00_3861 = BgL_nodez00_1421; 
return 
(obj_t)(BgL_auxz00_3861);} } } 
}



/* patch!-setq2896 */
obj_t BGl_patchz12zd2setq2896zc0zzcfa_specializa7eza7(obj_t BgL_envz00_2701, obj_t BgL_nodez00_2702)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 367 */
{ 
BgL_setqz00_bglt BgL_nodez00_1411;
{ /* ./Cfa/specialize.scm 368 */
BgL_setqz00_bglt BgL_auxz00_3939;
BgL_nodez00_1411 = 
(BgL_setqz00_bglt)(BgL_nodez00_2702); 
{ /* ./Cfa/specialize.scm 369 */
obj_t BgL_arg3905z00_1415;
{ /* ./Cfa/specialize.scm 369 */
BgL_nodez00_bglt BgL_arg3908z00_1416;
BgL_arg3908z00_1416 = 
(((BgL_setqz00_bglt)CREF(BgL_nodez00_1411))->BgL_valuez00); 
{ /* ./Cfa/specialize.scm 369 */
obj_t BgL_method2876z00_1927;
{ /* ./Cfa/specialize.scm 369 */
BgL_objectz00_bglt BgL_objz00_1928;
BgL_objz00_1928 = 
(BgL_objectz00_bglt)(BgL_arg3908z00_1416); 
{ /* ./Cfa/specialize.scm 369 */
long BgL_objzd2classzd2numz00_1929;
BgL_objzd2classzd2numz00_1929 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1928); 
{ /* ./Cfa/specialize.scm 369 */
obj_t BgL_arg2017z00_1930;
{ /* ./Cfa/specialize.scm 369 */
int BgL_auxz00_3943;
BgL_auxz00_3943 = 
(int)(((long)1)); 
BgL_arg2017z00_1930 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3943); } 
{ /* ./Cfa/specialize.scm 369 */
int BgL_offsetz00_1933;
BgL_offsetz00_1933 = 
(int)(BgL_objzd2classzd2numz00_1929); 
{ /* ./Cfa/specialize.scm 369 */
long BgL_offsetz00_1934;
{ /* ./Cfa/specialize.scm 369 */
long BgL_auxz00_3947;
BgL_auxz00_3947 = 
(long)(BgL_offsetz00_1933); 
BgL_offsetz00_1934 = 
(BgL_auxz00_3947-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 369 */
long BgL_modz00_1935;
{ /* ./Cfa/specialize.scm 369 */
int BgL_arg2028z00_1936;
BgL_arg2028z00_1936 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 369 */
long BgL_n2z00_1944;
BgL_n2z00_1944 = 
(long)(BgL_arg2028z00_1936); 
BgL_modz00_1935 = 
(BgL_offsetz00_1934/BgL_n2z00_1944); } } 
{ /* ./Cfa/specialize.scm 369 */
long BgL_restz00_1937;
{ /* ./Cfa/specialize.scm 369 */
int BgL_arg2024z00_1938;
BgL_arg2024z00_1938 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 369 */
long BgL_n2z00_1947;
BgL_n2z00_1947 = 
(long)(BgL_arg2024z00_1938); 
BgL_restz00_1937 = 
(BgL_offsetz00_1934%BgL_n2z00_1947); } } 
{ /* ./Cfa/specialize.scm 369 */

{ /* ./Cfa/specialize.scm 369 */
obj_t BgL_bucketz00_1939;
{ /* ./Cfa/specialize.scm 369 */
int BgL_kz00_1949;
BgL_kz00_1949 = 
(int)(BgL_modz00_1935); 
BgL_bucketz00_1939 = 
VECTOR_REF(BgL_arg2017z00_1930,BgL_kz00_1949); } 
{ /* ./Cfa/specialize.scm 369 */
int BgL_kz00_1951;
BgL_kz00_1951 = 
(int)(BgL_restz00_1937); 
BgL_method2876z00_1927 = 
VECTOR_REF(BgL_bucketz00_1939,BgL_kz00_1951); } } } } } } } } } } 
BgL_arg3905z00_1415 = 
PROCEDURE_ENTRY(BgL_method2876z00_1927)(BgL_method2876z00_1927, 
(obj_t)(BgL_arg3908z00_1416), BEOA); } } 
{ /* ./Cfa/specialize.scm 369 */
BgL_setqz00_bglt BgL_obj2305z00_1952;BgL_nodez00_bglt BgL_val2304z00_1953;
BgL_obj2305z00_1952 = BgL_nodez00_1411; 
BgL_val2304z00_1953 = 
(BgL_nodez00_bglt)(BgL_arg3905z00_1415); 
((((BgL_setqz00_bglt)CREF(BgL_obj2305z00_1952))->BgL_valuez00) = ((BgL_nodez00_bglt)BgL_val2304z00_1953), BUNSPEC); } } 
{ /* ./Cfa/specialize.scm 370 */
obj_t BgL_arg3912z00_1417;
{ /* ./Cfa/specialize.scm 370 */
BgL_varz00_bglt BgL_arg3915z00_1418;
BgL_arg3915z00_1418 = 
(((BgL_setqz00_bglt)CREF(BgL_nodez00_1411))->BgL_varz00); 
{ /* ./Cfa/specialize.scm 370 */
BgL_nodez00_bglt BgL_nodez00_1955;
BgL_nodez00_1955 = 
(BgL_nodez00_bglt)(BgL_arg3915z00_1418); 
{ /* ./Cfa/specialize.scm 370 */
obj_t BgL_method2876z00_1956;
{ /* ./Cfa/specialize.scm 370 */
BgL_objectz00_bglt BgL_objz00_1957;
BgL_objz00_1957 = 
(BgL_objectz00_bglt)(BgL_nodez00_1955); 
{ /* ./Cfa/specialize.scm 370 */
long BgL_objzd2classzd2numz00_1958;
BgL_objzd2classzd2numz00_1958 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1957); 
{ /* ./Cfa/specialize.scm 370 */
obj_t BgL_arg2017z00_1959;
{ /* ./Cfa/specialize.scm 370 */
int BgL_auxz00_3969;
BgL_auxz00_3969 = 
(int)(((long)1)); 
BgL_arg2017z00_1959 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3969); } 
{ /* ./Cfa/specialize.scm 370 */
int BgL_offsetz00_1962;
BgL_offsetz00_1962 = 
(int)(BgL_objzd2classzd2numz00_1958); 
{ /* ./Cfa/specialize.scm 370 */
long BgL_offsetz00_1963;
{ /* ./Cfa/specialize.scm 370 */
long BgL_auxz00_3973;
BgL_auxz00_3973 = 
(long)(BgL_offsetz00_1962); 
BgL_offsetz00_1963 = 
(BgL_auxz00_3973-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 370 */
long BgL_modz00_1964;
{ /* ./Cfa/specialize.scm 370 */
int BgL_arg2028z00_1965;
BgL_arg2028z00_1965 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 370 */
long BgL_n2z00_1973;
BgL_n2z00_1973 = 
(long)(BgL_arg2028z00_1965); 
BgL_modz00_1964 = 
(BgL_offsetz00_1963/BgL_n2z00_1973); } } 
{ /* ./Cfa/specialize.scm 370 */
long BgL_restz00_1966;
{ /* ./Cfa/specialize.scm 370 */
int BgL_arg2024z00_1967;
BgL_arg2024z00_1967 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 370 */
long BgL_n2z00_1976;
BgL_n2z00_1976 = 
(long)(BgL_arg2024z00_1967); 
BgL_restz00_1966 = 
(BgL_offsetz00_1963%BgL_n2z00_1976); } } 
{ /* ./Cfa/specialize.scm 370 */

{ /* ./Cfa/specialize.scm 370 */
obj_t BgL_bucketz00_1968;
{ /* ./Cfa/specialize.scm 370 */
int BgL_kz00_1978;
BgL_kz00_1978 = 
(int)(BgL_modz00_1964); 
BgL_bucketz00_1968 = 
VECTOR_REF(BgL_arg2017z00_1959,BgL_kz00_1978); } 
{ /* ./Cfa/specialize.scm 370 */
int BgL_kz00_1980;
BgL_kz00_1980 = 
(int)(BgL_restz00_1966); 
BgL_method2876z00_1956 = 
VECTOR_REF(BgL_bucketz00_1968,BgL_kz00_1980); } } } } } } } } } } 
BgL_arg3912z00_1417 = 
PROCEDURE_ENTRY(BgL_method2876z00_1956)(BgL_method2876z00_1956, 
(obj_t)(BgL_nodez00_1955), BEOA); } } } 
{ /* ./Cfa/specialize.scm 370 */
BgL_setqz00_bglt BgL_obj2302z00_1981;BgL_varz00_bglt BgL_val2301z00_1982;
BgL_obj2302z00_1981 = BgL_nodez00_1411; 
BgL_val2301z00_1982 = 
(BgL_varz00_bglt)(BgL_arg3912z00_1417); 
((((BgL_setqz00_bglt)CREF(BgL_obj2302z00_1981))->BgL_varz00) = ((BgL_varz00_bglt)BgL_val2301z00_1982), BUNSPEC); } } 
BgL_auxz00_3939 = BgL_nodez00_1411; 
return 
(obj_t)(BgL_auxz00_3939);} } } 
}



/* patch!-cast2894 */
obj_t BGl_patchz12zd2cast2894zc0zzcfa_specializa7eza7(obj_t BgL_envz00_2703, obj_t BgL_nodez00_2704)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 359 */
{ 
BgL_castz00_bglt BgL_nodez00_1404;
{ /* ./Cfa/specialize.scm 360 */
BgL_castz00_bglt BgL_auxz00_3993;
BgL_nodez00_1404 = 
(BgL_castz00_bglt)(BgL_nodez00_2704); 
{ /* ./Cfa/specialize.scm 360 */
BgL_nodez00_bglt BgL_arg3895z00_1897;
BgL_arg3895z00_1897 = 
(((BgL_castz00_bglt)CREF(BgL_nodez00_1404))->BgL_argz00); 
{ /* ./Cfa/specialize.scm 360 */
obj_t BgL_method2876z00_1900;
{ /* ./Cfa/specialize.scm 360 */
BgL_objectz00_bglt BgL_objz00_1901;
BgL_objz00_1901 = 
(BgL_objectz00_bglt)(BgL_arg3895z00_1897); 
{ /* ./Cfa/specialize.scm 360 */
long BgL_objzd2classzd2numz00_1902;
BgL_objzd2classzd2numz00_1902 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1901); 
{ /* ./Cfa/specialize.scm 360 */
obj_t BgL_arg2017z00_1903;
{ /* ./Cfa/specialize.scm 360 */
int BgL_auxz00_3997;
BgL_auxz00_3997 = 
(int)(((long)1)); 
BgL_arg2017z00_1903 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_3997); } 
{ /* ./Cfa/specialize.scm 360 */
int BgL_offsetz00_1906;
BgL_offsetz00_1906 = 
(int)(BgL_objzd2classzd2numz00_1902); 
{ /* ./Cfa/specialize.scm 360 */
long BgL_offsetz00_1907;
{ /* ./Cfa/specialize.scm 360 */
long BgL_auxz00_4001;
BgL_auxz00_4001 = 
(long)(BgL_offsetz00_1906); 
BgL_offsetz00_1907 = 
(BgL_auxz00_4001-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 360 */
long BgL_modz00_1908;
{ /* ./Cfa/specialize.scm 360 */
int BgL_arg2028z00_1909;
BgL_arg2028z00_1909 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 360 */
long BgL_n2z00_1917;
BgL_n2z00_1917 = 
(long)(BgL_arg2028z00_1909); 
BgL_modz00_1908 = 
(BgL_offsetz00_1907/BgL_n2z00_1917); } } 
{ /* ./Cfa/specialize.scm 360 */
long BgL_restz00_1910;
{ /* ./Cfa/specialize.scm 360 */
int BgL_arg2024z00_1911;
BgL_arg2024z00_1911 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 360 */
long BgL_n2z00_1920;
BgL_n2z00_1920 = 
(long)(BgL_arg2024z00_1911); 
BgL_restz00_1910 = 
(BgL_offsetz00_1907%BgL_n2z00_1920); } } 
{ /* ./Cfa/specialize.scm 360 */

{ /* ./Cfa/specialize.scm 360 */
obj_t BgL_bucketz00_1912;
{ /* ./Cfa/specialize.scm 360 */
int BgL_kz00_1922;
BgL_kz00_1922 = 
(int)(BgL_modz00_1908); 
BgL_bucketz00_1912 = 
VECTOR_REF(BgL_arg2017z00_1903,BgL_kz00_1922); } 
{ /* ./Cfa/specialize.scm 360 */
int BgL_kz00_1924;
BgL_kz00_1924 = 
(int)(BgL_restz00_1910); 
BgL_method2876z00_1900 = 
VECTOR_REF(BgL_bucketz00_1912,BgL_kz00_1924); } } } } } } } } } } 
PROCEDURE_ENTRY(BgL_method2876z00_1900)(BgL_method2876z00_1900, 
(obj_t)(BgL_arg3895z00_1897), BEOA); } } 
BgL_auxz00_3993 = BgL_nodez00_1404; 
return 
(obj_t)(BgL_auxz00_3993);} } } 
}



/* patch!-extern2892 */
obj_t BGl_patchz12zd2extern2892zc0zzcfa_specializa7eza7(obj_t BgL_envz00_2705, obj_t BgL_nodez00_2706)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 351 */
{ 
BgL_externz00_bglt BgL_nodez00_1397;
{ /* ./Cfa/specialize.scm 352 */
BgL_externz00_bglt BgL_auxz00_4019;
BgL_nodez00_1397 = 
(BgL_externz00_bglt)(BgL_nodez00_2706); 
{ /* ./Cfa/specialize.scm 352 */
obj_t BgL_arg3885z00_1894;
BgL_arg3885z00_1894 = 
(((BgL_externz00_bglt)CREF(BgL_nodez00_1397))->BgL_exprza2za2); 
BGl_patchza2z12zb0zzcfa_specializa7eza7(BgL_arg3885z00_1894); } 
BgL_auxz00_4019 = BgL_nodez00_1397; 
return 
(obj_t)(BgL_auxz00_4019);} } } 
}



/* patch!-funcall2890 */
obj_t BGl_patchz12zd2funcall2890zc0zzcfa_specializa7eza7(obj_t BgL_envz00_2707, obj_t BgL_nodez00_2708)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 342 */
{ 
BgL_funcallz00_bglt BgL_nodez00_1388;
{ /* ./Cfa/specialize.scm 343 */
BgL_funcallz00_bglt BgL_auxz00_4024;
BgL_nodez00_1388 = 
(BgL_funcallz00_bglt)(BgL_nodez00_2708); 
{ /* ./Cfa/specialize.scm 344 */
obj_t BgL_arg3868z00_1392;
{ /* ./Cfa/specialize.scm 344 */
BgL_nodez00_bglt BgL_arg3871z00_1393;
BgL_arg3871z00_1393 = 
(((BgL_funcallz00_bglt)CREF(BgL_nodez00_1388))->BgL_funz00); 
{ /* ./Cfa/specialize.scm 344 */
obj_t BgL_method2876z00_1865;
{ /* ./Cfa/specialize.scm 344 */
BgL_objectz00_bglt BgL_objz00_1866;
BgL_objz00_1866 = 
(BgL_objectz00_bglt)(BgL_arg3871z00_1393); 
{ /* ./Cfa/specialize.scm 344 */
long BgL_objzd2classzd2numz00_1867;
BgL_objzd2classzd2numz00_1867 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1866); 
{ /* ./Cfa/specialize.scm 344 */
obj_t BgL_arg2017z00_1868;
{ /* ./Cfa/specialize.scm 344 */
int BgL_auxz00_4028;
BgL_auxz00_4028 = 
(int)(((long)1)); 
BgL_arg2017z00_1868 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_4028); } 
{ /* ./Cfa/specialize.scm 344 */
int BgL_offsetz00_1871;
BgL_offsetz00_1871 = 
(int)(BgL_objzd2classzd2numz00_1867); 
{ /* ./Cfa/specialize.scm 344 */
long BgL_offsetz00_1872;
{ /* ./Cfa/specialize.scm 344 */
long BgL_auxz00_4032;
BgL_auxz00_4032 = 
(long)(BgL_offsetz00_1871); 
BgL_offsetz00_1872 = 
(BgL_auxz00_4032-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 344 */
long BgL_modz00_1873;
{ /* ./Cfa/specialize.scm 344 */
int BgL_arg2028z00_1874;
BgL_arg2028z00_1874 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 344 */
long BgL_n2z00_1882;
BgL_n2z00_1882 = 
(long)(BgL_arg2028z00_1874); 
BgL_modz00_1873 = 
(BgL_offsetz00_1872/BgL_n2z00_1882); } } 
{ /* ./Cfa/specialize.scm 344 */
long BgL_restz00_1875;
{ /* ./Cfa/specialize.scm 344 */
int BgL_arg2024z00_1876;
BgL_arg2024z00_1876 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 344 */
long BgL_n2z00_1885;
BgL_n2z00_1885 = 
(long)(BgL_arg2024z00_1876); 
BgL_restz00_1875 = 
(BgL_offsetz00_1872%BgL_n2z00_1885); } } 
{ /* ./Cfa/specialize.scm 344 */

{ /* ./Cfa/specialize.scm 344 */
obj_t BgL_bucketz00_1877;
{ /* ./Cfa/specialize.scm 344 */
int BgL_kz00_1887;
BgL_kz00_1887 = 
(int)(BgL_modz00_1873); 
BgL_bucketz00_1877 = 
VECTOR_REF(BgL_arg2017z00_1868,BgL_kz00_1887); } 
{ /* ./Cfa/specialize.scm 344 */
int BgL_kz00_1889;
BgL_kz00_1889 = 
(int)(BgL_restz00_1875); 
BgL_method2876z00_1865 = 
VECTOR_REF(BgL_bucketz00_1877,BgL_kz00_1889); } } } } } } } } } } 
BgL_arg3868z00_1392 = 
PROCEDURE_ENTRY(BgL_method2876z00_1865)(BgL_method2876z00_1865, 
(obj_t)(BgL_arg3871z00_1393), BEOA); } } 
{ /* ./Cfa/specialize.scm 344 */
BgL_funcallz00_bglt BgL_obj1781z00_1890;BgL_nodez00_bglt BgL_val1780z00_1891;
BgL_obj1781z00_1890 = BgL_nodez00_1388; 
BgL_val1780z00_1891 = 
(BgL_nodez00_bglt)(BgL_arg3868z00_1392); 
((((BgL_funcallz00_bglt)CREF(BgL_obj1781z00_1890))->BgL_funz00) = ((BgL_nodez00_bglt)BgL_val1780z00_1891), BUNSPEC); } } 
{ /* ./Cfa/specialize.scm 345 */
obj_t BgL_arg3875z00_1394;
BgL_arg3875z00_1394 = 
(((BgL_funcallz00_bglt)CREF(BgL_nodez00_1388))->BgL_argsz00); 
BGl_patchza2z12zb0zzcfa_specializa7eza7(BgL_arg3875z00_1394); } 
BgL_auxz00_4024 = BgL_nodez00_1388; 
return 
(obj_t)(BgL_auxz00_4024);} } } 
}



/* patch!-app-ly2888 */
obj_t BGl_patchz12zd2appzd2ly2888z12zzcfa_specializa7eza7(obj_t BgL_envz00_2709, obj_t BgL_nodez00_2710)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 333 */
{ 
BgL_appzd2lyzd2_bglt BgL_nodez00_1378;
{ /* ./Cfa/specialize.scm 334 */
BgL_appzd2lyzd2_bglt BgL_auxz00_4054;
BgL_nodez00_1378 = 
(BgL_appzd2lyzd2_bglt)(BgL_nodez00_2710); 
{ /* ./Cfa/specialize.scm 335 */
obj_t BgL_arg3847z00_1382;
{ /* ./Cfa/specialize.scm 335 */
BgL_nodez00_bglt BgL_arg3850z00_1383;
BgL_arg3850z00_1383 = 
(((BgL_appzd2lyzd2_bglt)CREF(BgL_nodez00_1378))->BgL_funz00); 
{ /* ./Cfa/specialize.scm 335 */
obj_t BgL_method2876z00_1807;
{ /* ./Cfa/specialize.scm 335 */
BgL_objectz00_bglt BgL_objz00_1808;
BgL_objz00_1808 = 
(BgL_objectz00_bglt)(BgL_arg3850z00_1383); 
{ /* ./Cfa/specialize.scm 335 */
long BgL_objzd2classzd2numz00_1809;
BgL_objzd2classzd2numz00_1809 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1808); 
{ /* ./Cfa/specialize.scm 335 */
obj_t BgL_arg2017z00_1810;
{ /* ./Cfa/specialize.scm 335 */
int BgL_auxz00_4058;
BgL_auxz00_4058 = 
(int)(((long)1)); 
BgL_arg2017z00_1810 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_4058); } 
{ /* ./Cfa/specialize.scm 335 */
int BgL_offsetz00_1813;
BgL_offsetz00_1813 = 
(int)(BgL_objzd2classzd2numz00_1809); 
{ /* ./Cfa/specialize.scm 335 */
long BgL_offsetz00_1814;
{ /* ./Cfa/specialize.scm 335 */
long BgL_auxz00_4062;
BgL_auxz00_4062 = 
(long)(BgL_offsetz00_1813); 
BgL_offsetz00_1814 = 
(BgL_auxz00_4062-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 335 */
long BgL_modz00_1815;
{ /* ./Cfa/specialize.scm 335 */
int BgL_arg2028z00_1816;
BgL_arg2028z00_1816 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 335 */
long BgL_n2z00_1824;
BgL_n2z00_1824 = 
(long)(BgL_arg2028z00_1816); 
BgL_modz00_1815 = 
(BgL_offsetz00_1814/BgL_n2z00_1824); } } 
{ /* ./Cfa/specialize.scm 335 */
long BgL_restz00_1817;
{ /* ./Cfa/specialize.scm 335 */
int BgL_arg2024z00_1818;
BgL_arg2024z00_1818 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 335 */
long BgL_n2z00_1827;
BgL_n2z00_1827 = 
(long)(BgL_arg2024z00_1818); 
BgL_restz00_1817 = 
(BgL_offsetz00_1814%BgL_n2z00_1827); } } 
{ /* ./Cfa/specialize.scm 335 */

{ /* ./Cfa/specialize.scm 335 */
obj_t BgL_bucketz00_1819;
{ /* ./Cfa/specialize.scm 335 */
int BgL_kz00_1829;
BgL_kz00_1829 = 
(int)(BgL_modz00_1815); 
BgL_bucketz00_1819 = 
VECTOR_REF(BgL_arg2017z00_1810,BgL_kz00_1829); } 
{ /* ./Cfa/specialize.scm 335 */
int BgL_kz00_1831;
BgL_kz00_1831 = 
(int)(BgL_restz00_1817); 
BgL_method2876z00_1807 = 
VECTOR_REF(BgL_bucketz00_1819,BgL_kz00_1831); } } } } } } } } } } 
BgL_arg3847z00_1382 = 
PROCEDURE_ENTRY(BgL_method2876z00_1807)(BgL_method2876z00_1807, 
(obj_t)(BgL_arg3850z00_1383), BEOA); } } 
{ /* ./Cfa/specialize.scm 335 */
BgL_appzd2lyzd2_bglt BgL_obj1753z00_1832;BgL_nodez00_bglt BgL_val1752z00_1833;
BgL_obj1753z00_1832 = BgL_nodez00_1378; 
BgL_val1752z00_1833 = 
(BgL_nodez00_bglt)(BgL_arg3847z00_1382); 
((((BgL_appzd2lyzd2_bglt)CREF(BgL_obj1753z00_1832))->BgL_funz00) = ((BgL_nodez00_bglt)BgL_val1752z00_1833), BUNSPEC); } } 
{ /* ./Cfa/specialize.scm 336 */
obj_t BgL_arg3855z00_1384;
{ /* ./Cfa/specialize.scm 336 */
BgL_nodez00_bglt BgL_arg3858z00_1385;
BgL_arg3858z00_1385 = 
(((BgL_appzd2lyzd2_bglt)CREF(BgL_nodez00_1378))->BgL_argz00); 
{ /* ./Cfa/specialize.scm 336 */
obj_t BgL_method2876z00_1836;
{ /* ./Cfa/specialize.scm 336 */
BgL_objectz00_bglt BgL_objz00_1837;
BgL_objz00_1837 = 
(BgL_objectz00_bglt)(BgL_arg3858z00_1385); 
{ /* ./Cfa/specialize.scm 336 */
long BgL_objzd2classzd2numz00_1838;
BgL_objzd2classzd2numz00_1838 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_1837); 
{ /* ./Cfa/specialize.scm 336 */
obj_t BgL_arg2017z00_1839;
{ /* ./Cfa/specialize.scm 336 */
int BgL_auxz00_4083;
BgL_auxz00_4083 = 
(int)(((long)1)); 
BgL_arg2017z00_1839 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_4083); } 
{ /* ./Cfa/specialize.scm 336 */
int BgL_offsetz00_1842;
BgL_offsetz00_1842 = 
(int)(BgL_objzd2classzd2numz00_1838); 
{ /* ./Cfa/specialize.scm 336 */
long BgL_offsetz00_1843;
{ /* ./Cfa/specialize.scm 336 */
long BgL_auxz00_4087;
BgL_auxz00_4087 = 
(long)(BgL_offsetz00_1842); 
BgL_offsetz00_1843 = 
(BgL_auxz00_4087-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 336 */
long BgL_modz00_1844;
{ /* ./Cfa/specialize.scm 336 */
int BgL_arg2028z00_1845;
BgL_arg2028z00_1845 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 336 */
long BgL_n2z00_1853;
BgL_n2z00_1853 = 
(long)(BgL_arg2028z00_1845); 
BgL_modz00_1844 = 
(BgL_offsetz00_1843/BgL_n2z00_1853); } } 
{ /* ./Cfa/specialize.scm 336 */
long BgL_restz00_1846;
{ /* ./Cfa/specialize.scm 336 */
int BgL_arg2024z00_1847;
BgL_arg2024z00_1847 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 336 */
long BgL_n2z00_1856;
BgL_n2z00_1856 = 
(long)(BgL_arg2024z00_1847); 
BgL_restz00_1846 = 
(BgL_offsetz00_1843%BgL_n2z00_1856); } } 
{ /* ./Cfa/specialize.scm 336 */

{ /* ./Cfa/specialize.scm 336 */
obj_t BgL_bucketz00_1848;
{ /* ./Cfa/specialize.scm 336 */
int BgL_kz00_1858;
BgL_kz00_1858 = 
(int)(BgL_modz00_1844); 
BgL_bucketz00_1848 = 
VECTOR_REF(BgL_arg2017z00_1839,BgL_kz00_1858); } 
{ /* ./Cfa/specialize.scm 336 */
int BgL_kz00_1860;
BgL_kz00_1860 = 
(int)(BgL_restz00_1846); 
BgL_method2876z00_1836 = 
VECTOR_REF(BgL_bucketz00_1848,BgL_kz00_1860); } } } } } } } } } } 
BgL_arg3855z00_1384 = 
PROCEDURE_ENTRY(BgL_method2876z00_1836)(BgL_method2876z00_1836, 
(obj_t)(BgL_arg3858z00_1385), BEOA); } } 
{ /* ./Cfa/specialize.scm 336 */
BgL_appzd2lyzd2_bglt BgL_obj1756z00_1861;BgL_nodez00_bglt BgL_val1755z00_1862;
BgL_obj1756z00_1861 = BgL_nodez00_1378; 
BgL_val1755z00_1862 = 
(BgL_nodez00_bglt)(BgL_arg3855z00_1384); 
((((BgL_appzd2lyzd2_bglt)CREF(BgL_obj1756z00_1861))->BgL_argz00) = ((BgL_nodez00_bglt)BgL_val1755z00_1862), BUNSPEC); } } 
BgL_auxz00_4054 = BgL_nodez00_1378; 
return 
(obj_t)(BgL_auxz00_4054);} } } 
}



/* patch!-sequence2886 */
obj_t BGl_patchz12zd2sequence2886zc0zzcfa_specializa7eza7(obj_t BgL_envz00_2711, obj_t BgL_nodez00_2712)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 325 */
{ 
BgL_sequencez00_bglt BgL_nodez00_1371;
{ /* ./Cfa/specialize.scm 326 */
BgL_sequencez00_bglt BgL_auxz00_4107;
BgL_nodez00_1371 = 
(BgL_sequencez00_bglt)(BgL_nodez00_2712); 
{ /* ./Cfa/specialize.scm 326 */
obj_t BgL_arg3837z00_1803;
BgL_arg3837z00_1803 = 
(((BgL_sequencez00_bglt)CREF(BgL_nodez00_1371))->BgL_nodesz00); 
BGl_patchza2z12zb0zzcfa_specializa7eza7(BgL_arg3837z00_1803); } 
BgL_auxz00_4107 = BgL_nodez00_1371; 
return 
(obj_t)(BgL_auxz00_4107);} } } 
}



/* patch!-closure2884 */
obj_t BGl_patchz12zd2closure2884zc0zzcfa_specializa7eza7(obj_t BgL_envz00_2713, obj_t BgL_nodez00_2714)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 319 */
{ 
BgL_closurez00_bglt BgL_nodez00_1363;
BgL_nodez00_1363 = 
(BgL_closurez00_bglt)(BgL_nodez00_2714); 
{ /* ./Cfa/specialize.scm 320 */
obj_t BgL_arg3827z00_1368;
BgL_arg3827z00_1368 = 
BGl_shapez00zztools_shapez00(
(obj_t)(BgL_nodez00_1363)); 
return 
BGl_internalzd2errorzd2zztools_errorz00(BGl_string4916z00zzcfa_specializa7eza7, BGl_string4917z00zzcfa_specializa7eza7, BgL_arg3827z00_1368);} } } 
}



/* patch!-var2882 */
obj_t BGl_patchz12zd2var2882zc0zzcfa_specializa7eza7(obj_t BgL_envz00_2715, obj_t BgL_nodez00_2716)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 313 */
{ /* ./Cfa/specialize.scm 314 */
BgL_varz00_bglt BgL_auxz00_4116;
BgL_auxz00_4116 = 
(BgL_varz00_bglt)(BgL_nodez00_2716); 
return 
(obj_t)(BgL_auxz00_4116);} } 
}



/* patch!-kwote2880 */
obj_t BGl_patchz12zd2kwote2880zc0zzcfa_specializa7eza7(obj_t BgL_envz00_2717, obj_t BgL_nodez00_2718)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 307 */
{ /* ./Cfa/specialize.scm 308 */
BgL_kwotez00_bglt BgL_auxz00_4119;
BgL_auxz00_4119 = 
(BgL_kwotez00_bglt)(BgL_nodez00_2718); 
return 
(obj_t)(BgL_auxz00_4119);} } 
}



/* patch!-atom2878 */
obj_t BGl_patchz12zd2atom2878zc0zzcfa_specializa7eza7(obj_t BgL_envz00_2719, obj_t BgL_nodez00_2720)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 301 */
{ /* ./Cfa/specialize.scm 302 */
BgL_atomz00_bglt BgL_auxz00_4122;
BgL_auxz00_4122 = 
(BgL_atomz00_bglt)(BgL_nodez00_2720); 
return 
(obj_t)(BgL_auxz00_4122);} } 
}



/* patch! */
obj_t BGl_patchz12z12zzcfa_specializa7eza7(BgL_nodez00_bglt BgL_nodez00_11)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 296 */
{ /* ./Cfa/specialize.scm 296 */
obj_t BgL_method2876z00_2609;
{ /* ./Cfa/specialize.scm 296 */
BgL_objectz00_bglt BgL_objz00_2610;
BgL_objz00_2610 = 
(BgL_objectz00_bglt)(BgL_nodez00_11); 
{ /* ./Cfa/specialize.scm 296 */
long BgL_objzd2classzd2numz00_2611;
BgL_objzd2classzd2numz00_2611 = 
BGL_OBJECT_CLASS_NUM(BgL_objz00_2610); 
{ /* ./Cfa/specialize.scm 296 */
obj_t BgL_arg2017z00_2612;
{ /* ./Cfa/specialize.scm 296 */
int BgL_auxz00_4127;
BgL_auxz00_4127 = 
(int)(((long)1)); 
BgL_arg2017z00_2612 = 
PROCEDURE_REF(BGl_patchz12zd2envzc0zzcfa_specializa7eza7, BgL_auxz00_4127); } 
{ /* ./Cfa/specialize.scm 296 */
int BgL_offsetz00_2615;
BgL_offsetz00_2615 = 
(int)(BgL_objzd2classzd2numz00_2611); 
{ /* ./Cfa/specialize.scm 296 */
long BgL_offsetz00_2616;
{ /* ./Cfa/specialize.scm 296 */
long BgL_auxz00_4131;
BgL_auxz00_4131 = 
(long)(BgL_offsetz00_2615); 
BgL_offsetz00_2616 = 
(BgL_auxz00_4131-OBJECT_TYPE); } 
{ /* ./Cfa/specialize.scm 296 */
long BgL_modz00_2617;
{ /* ./Cfa/specialize.scm 296 */
int BgL_arg2028z00_2618;
BgL_arg2028z00_2618 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 296 */
long BgL_n2z00_2626;
BgL_n2z00_2626 = 
(long)(BgL_arg2028z00_2618); 
BgL_modz00_2617 = 
(BgL_offsetz00_2616/BgL_n2z00_2626); } } 
{ /* ./Cfa/specialize.scm 296 */
long BgL_restz00_2619;
{ /* ./Cfa/specialize.scm 296 */
int BgL_arg2024z00_2620;
BgL_arg2024z00_2620 = 
(int)(((long)8)); 
{ /* ./Cfa/specialize.scm 296 */
long BgL_n2z00_2629;
BgL_n2z00_2629 = 
(long)(BgL_arg2024z00_2620); 
BgL_restz00_2619 = 
(BgL_offsetz00_2616%BgL_n2z00_2629); } } 
{ /* ./Cfa/specialize.scm 296 */

{ /* ./Cfa/specialize.scm 296 */
obj_t BgL_bucketz00_2621;
{ /* ./Cfa/specialize.scm 296 */
int BgL_kz00_2631;
BgL_kz00_2631 = 
(int)(BgL_modz00_2617); 
BgL_bucketz00_2621 = 
VECTOR_REF(BgL_arg2017z00_2612,BgL_kz00_2631); } 
{ /* ./Cfa/specialize.scm 296 */
int BgL_kz00_2633;
BgL_kz00_2633 = 
(int)(BgL_restz00_2619); 
BgL_method2876z00_2609 = 
VECTOR_REF(BgL_bucketz00_2621,BgL_kz00_2633); } } } } } } } } } } 
return 
PROCEDURE_ENTRY(BgL_method2876z00_2609)(BgL_method2876z00_2609, 
(obj_t)(BgL_nodez00_11), BEOA);} } 
}



/* _patch!4295 */
obj_t BGl__patchz124295z12zzcfa_specializa7eza7(obj_t BgL_envz00_2643, obj_t BgL_nodez00_2644)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 296 */
return 
BGl_patchz12z12zzcfa_specializa7eza7(
(BgL_nodez00_bglt)(BgL_nodez00_2644));} 
}



/* patch!-default2875 */
obj_t BGl_patchz12zd2default2875zc0zzcfa_specializa7eza7(BgL_nodez00_bglt BgL_nodez00_12)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 19 */
{ /* ./Cfa/specialize.scm 19 */
obj_t BgL_procz00_2634;obj_t BgL_objectz00_2636;
BgL_procz00_2634 = 
CNST_TABLE_REF(((long)9)); 
BgL_objectz00_2636 = 
(obj_t)(BgL_nodez00_12); 
FAILURE(BgL_procz00_2634,BGl_string4918z00zzcfa_specializa7eza7,BgL_objectz00_2636);} } 
}



/* _patch!-default2875 */
obj_t BGl__patchz12zd2default2875zc0zzcfa_specializa7eza7(obj_t BgL_envz00_2721, obj_t BgL_nodez00_2722)
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 19 */
return 
BGl_patchz12zd2default2875zc0zzcfa_specializa7eza7(
(BgL_nodez00_bglt)(BgL_nodez00_2722));} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzcfa_specializa7eza7()
{ AN_OBJECT;
{ /* ./Cfa/specialize.scm 19 */
BGl_modulezd2initializa7ationz75zztools_tracez00(((long)59211), "cfa_specialize"); 
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "cfa_specialize"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "cfa_specialize"); 
BGl_modulezd2initializa7ationz75zztype_cachez00(((long)25848), "cfa_specialize"); 
BGl_modulezd2initializa7ationz75zztype_typeofz00(((long)852), "cfa_specialize"); 
BGl_modulezd2initializa7ationz75zztools_shapez00(((long)30833), "cfa_specialize"); 
BGl_modulezd2initializa7ationz75zztools_speekz00(((long)23537), "cfa_specialize"); 
BGl_modulezd2initializa7ationz75zztools_errorz00(((long)25566), "cfa_specialize"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "cfa_specialize"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "cfa_specialize"); 
BGl_modulezd2initializa7ationz75zzast_envz00(((long)62031), "cfa_specialize"); 
BGl_modulezd2initializa7ationz75zzinline_inlinez00(((long)63036), "cfa_specialize"); 
return 
BGl_modulezd2initializa7ationz75zzinline_walkz00(((long)10614), "cfa_specialize");} 
}

