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

#include <bigloo.h>


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

typedef struct BgL_wclassz00_bgl {
   obj_t BgL_itszd2classzd2;
} *BgL_wclassz00_bglt;


static obj_t BGl_methodzd2initzd2zzcoerce_convertz00();
BGL_IMPORT obj_t open_input_string(obj_t);
extern obj_t BGl_nodez00zzast_nodez00;
extern BgL_castz00_bglt BGl_makezd2castzd2zzast_nodez00(obj_t, BgL_typez00_bglt, BgL_nodez00_bglt);
extern obj_t BGl_locationzd2fullzd2fnamez00zztools_locationz00(obj_t);
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
BGL_IMPORT bool_t BGl_iszd2azf3z21zz__objectz00(obj_t, obj_t);
extern obj_t BGl_lvtypezd2nodez12zc0zzast_lvtypez00(BgL_nodez00_bglt);
BGL_EXPORTED_DECL obj_t BGl_runtimezd2typezd2errorz00zzcoerce_convertz00(obj_t, obj_t, obj_t);
extern obj_t BGl_tclassz00zzobject_classz00;
extern obj_t BGl_za2compilerzd2debugza2zd2zzengine_paramz00;
extern obj_t BGl_letzd2varzd2zzast_nodez00;
extern obj_t BGl_userzd2errorzf2locationz20zztools_errorz00(obj_t, obj_t, obj_t, obj_t, obj_t);
extern obj_t BGl_za2unsafezd2typeza2zd2zzengine_paramz00;
static obj_t BGl_convertzd2errorzd2zzcoerce_convertz00(BgL_typez00_bglt, BgL_typez00_bglt, obj_t, BgL_nodez00_bglt);
BGL_IMPORT obj_t BGl_gensymz00zz__r4_symbols_6_4z00;
static obj_t BGl__runtimezd2typezd2errorz00zzcoerce_convertz00(obj_t, obj_t, obj_t, obj_t);
extern obj_t BGl_za2bdbzd2debugza2zd2zzengine_paramz00;
static obj_t BGl_cnstzd2initzd2zzcoerce_convertz00();
extern BgL_nodez00_bglt BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00(obj_t, obj_t);
extern obj_t BGl_findzd2coercerzd2zztype_coercionz00(BgL_typez00_bglt, BgL_typez00_bglt);
static obj_t BGl_importedzd2moduleszd2initz00zzcoerce_convertz00();
static BgL_nodez00_bglt BGl_makezd2onezd2typezd2conversionzd2zzcoerce_convertz00(obj_t, BgL_typez00_bglt, BgL_typez00_bglt, obj_t, obj_t, obj_t);
extern BgL_nodez00_bglt BGl_coercez12z12zzcoerce_coercez00(BgL_nodez00_bglt, obj_t, BgL_typez00_bglt);
extern obj_t BGl_currentzd2functionzd2zztools_errorz00();
extern obj_t BGl_makezd2typedzd2identz00zzast_identz00(obj_t, obj_t);
static obj_t BGl_toplevelzd2initzd2zzcoerce_convertz00();
BGL_EXPORTED_DECL BgL_nodez00_bglt BGl_convertz12z12zzcoerce_convertz00(BgL_nodez00_bglt, BgL_typez00_bglt, BgL_typez00_bglt);
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzcoerce_convertz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_tracez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_locationz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_errorz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_miscz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_coercionz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_envz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typeofz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_sexpz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_identz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_lvtypez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzobject_classz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcoerce_coercez00(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_symbols_6_4z00(long, char *);
static obj_t BGl_makezd2onezd2classzd2conversionzd2zzcoerce_convertz00(obj_t, BgL_typez00_bglt, BgL_typez00_bglt, obj_t, obj_t, obj_t);
static obj_t BGl_typezd2errorzf2locationz20zzcoerce_convertz00(obj_t, obj_t, BgL_typez00_bglt, BgL_typez00_bglt);
extern obj_t BGl_shapez00zztools_shapez00(obj_t);
BGL_IMPORT obj_t BGl_bigloozd2typezd2errorzd2msgzd2zz__errorz00(obj_t, obj_t, obj_t);
static obj_t BGl_makezd2onezd2conversionz00zzcoerce_convertz00(obj_t, BgL_typez00_bglt, BgL_typez00_bglt, obj_t, obj_t, obj_t);
static obj_t BGl_runtimezd2typezd2errorzf2idzf2zzcoerce_convertz00(obj_t, obj_t, obj_t);
static BgL_nodez00_bglt BGl_skipzd2letzd2varz00zzcoerce_convertz00(BgL_nodez00_bglt);
extern obj_t BGl_internalzd2errorzd2zztools_errorz00(obj_t, obj_t, obj_t);
static obj_t BGl_dozd2convertzd2zzcoerce_convertz00(obj_t, obj_t, BgL_typez00_bglt);
extern obj_t BGl_appz00zzast_nodez00;
static obj_t BGl__convertz12z12zzcoerce_convertz00(obj_t, obj_t, obj_t, obj_t);
extern BgL_typez00_bglt BGl_getzd2aliasedzd2typez00zztype_typez00(BgL_typez00_bglt);
BGL_IMPORT obj_t BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(obj_t);
extern bool_t BGl_subzd2typezf3z21zztype_envz00(BgL_typez00_bglt, BgL_typez00_bglt);
extern BgL_varz00_bglt BGl_makezd2varzd2zzast_nodez00(obj_t, BgL_typez00_bglt, BgL_variablez00_bglt);
extern obj_t BGl_za2objza2z00zztype_cachez00;
static obj_t BGl_requirezd2initializa7ationz75zzcoerce_convertz00 = BUNSPEC;
static obj_t BGl_libraryzd2moduleszd2initz00zzcoerce_convertz00();
extern bool_t BGl_typezd2subclasszf3z21zzobject_classz00(BgL_typez00_bglt, BgL_typez00_bglt);
extern obj_t BGl_userzd2warningzf2locationz20zztools_errorz00(obj_t, obj_t, obj_t, obj_t);
extern obj_t BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(obj_t);
static obj_t __cnst[ 14 ] ;


DEFINE_EXPORT_PROCEDURE( BGl_runtimezd2typezd2errorzd2envzd2zzcoerce_convertz00, BgL_bgl__runtimeza7d2typeza7d2errorza700za7za7coerce_convertza7004092z00, BGl__runtimezd2typezd2errorz00zzcoerce_convertz00, 0L, 3 );
DEFINE_EXPORT_PROCEDURE( BGl_convertz12zd2envzc0zzcoerce_convertz00, BgL_bgl__convertza712za712za7za7coerce_convertza7004093za7, BGl__convertz12z12zzcoerce_convertz00, 0L, 3 );
DEFINE_STRING( BGl_string4064z00zzcoerce_convertz00, BgL_bgl_string4064za700za7za7coerce_convertza7004094z00, "aux2 if coercer bigloo-type-error failure quote __error bigloo-type-error/location @ begin location ::obj let aux ", 114 );
DEFINE_STRING( BGl_string4063z00zzcoerce_convertz00, BgL_bgl_string4063za700za7za7coerce_convertza7004095z00, "Illegal converter", 17 );
DEFINE_STRING( BGl_string4062z00zzcoerce_convertz00, BgL_bgl_string4062za700za7za7coerce_convertza7004096z00, "do-convert", 10 );
DEFINE_STRING( BGl_string4061z00zzcoerce_convertz00, BgL_bgl_string4061za700za7za7coerce_convertza7004097z00, "Illegal conversion", 18 );
DEFINE_STRING( BGl_string4060z00zzcoerce_convertz00, BgL_bgl_string4060za700za7za7coerce_convertza7004098z00, "Type error", 10 );
DEFINE_STRING( BGl_string4059z00zzcoerce_convertz00, BgL_bgl_string4059za700za7za7coerce_convertza7004099z00, "", 0 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzcoerce_convertz00(long BgL_checksumz00_1642, char * BgL_fromz00_1643)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzcoerce_convertz00))
{ 
BGl_requirezd2initializa7ationz75zzcoerce_convertz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzcoerce_convertz00(); 
BGl_cnstzd2initzd2zzcoerce_convertz00(); 
BGl_importedzd2moduleszd2initz00zzcoerce_convertz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzcoerce_convertz00()
{ AN_OBJECT;
{ /* ./Coerce/convert.scm 16 */
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(((long)0), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zz__errorz00(((long)0), "coerce_convert"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzcoerce_convertz00()
{ AN_OBJECT;
{ /* ./Coerce/convert.scm 16 */
{ /* ./Coerce/convert.scm 16 */
obj_t BgL_cportz00_1635;
BgL_cportz00_1635 = 
open_input_string(BGl_string4064z00zzcoerce_convertz00); 
{ 
long BgL_iz00_1636;
BgL_iz00_1636 = ((long)13); 
BgL_loopz00_1637:
{ /* ./Coerce/convert.scm 16 */
bool_t BgL_test4066z00_1638;
BgL_test4066z00_1638 = 
(BgL_iz00_1636==((long)-1)); 
if(BgL_test4066z00_1638)
{ /* ./Coerce/convert.scm 16 */
return BUNSPEC;}  else 
{ /* ./Coerce/convert.scm 16 */
{ /* ./Coerce/convert.scm 16 */
obj_t BgL_arg4068z00_1639;
{ /* ./Coerce/convert.scm 16 */
obj_t BgL_list4071z00_1640;
BgL_list4071z00_1640 = 
MAKE_PAIR(BgL_cportz00_1635, BNIL); 
BgL_arg4068z00_1639 = 
BGl_readz00zz__readerz00(BgL_list4071z00_1640); } 
{ /* ./Coerce/convert.scm 16 */
int BgL_auxz00_1659;
BgL_auxz00_1659 = 
(int)(BgL_iz00_1636); 
CNST_TABLE_SET(BgL_auxz00_1659, BgL_arg4068z00_1639); } } 
{ /* ./Coerce/convert.scm 16 */
int BgL_auxz00_1641;
{ /* ./Coerce/convert.scm 16 */
long BgL_auxz00_1662;
BgL_auxz00_1662 = 
(BgL_iz00_1636-((long)1)); 
BgL_auxz00_1641 = 
(int)(BgL_auxz00_1662); } 
{ 
long BgL_iz00_1665;
BgL_iz00_1665 = 
(long)(BgL_auxz00_1641); 
BgL_iz00_1636 = BgL_iz00_1665; 
goto BgL_loopz00_1637;} } } } } } } 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzcoerce_convertz00()
{ AN_OBJECT;
{ /* ./Coerce/convert.scm 16 */
return BUNSPEC;} 
}



/* type-error/location */
obj_t BGl_typezd2errorzf2locationz20zzcoerce_convertz00(obj_t BgL_locz00_33, obj_t BgL_functionz00_34, BgL_typez00_bglt BgL_fromz00_35, BgL_typez00_bglt BgL_toz00_36)
{ AN_OBJECT;
{ /* ./Coerce/convert.scm 43 */
{ /* ./Coerce/convert.scm 44 */
obj_t BgL_arg2988z00_801;
{ /* ./Coerce/convert.scm 47 */
obj_t BgL_arg2993z00_804;obj_t BgL_arg2994z00_805;
{ /* ./Coerce/convert.scm 49 */
obj_t BgL_arg2997z00_806;
BgL_arg2997z00_806 = 
(((BgL_typez00_bglt)CREF(BgL_toz00_36))->BgL_idz00); 
BgL_arg2993z00_804 = 
SYMBOL_TO_STRING(BgL_arg2997z00_806); } 
{ /* ./Coerce/convert.scm 50 */
obj_t BgL_arg3001z00_807;
BgL_arg3001z00_807 = 
(((BgL_typez00_bglt)CREF(BgL_fromz00_35))->BgL_idz00); 
BgL_arg2994z00_805 = 
SYMBOL_TO_STRING(BgL_arg3001z00_807); } 
BgL_arg2988z00_801 = 
BGl_bigloozd2typezd2errorzd2msgzd2zz__errorz00(BGl_string4059z00zzcoerce_convertz00, BgL_arg2993z00_804, BgL_arg2994z00_805); } 
return 
BGl_userzd2errorzf2locationz20zztools_errorz00(BgL_locz00_33, BgL_functionz00_34, BGl_string4060z00zzcoerce_convertz00, BgL_arg2988z00_801, BNIL);} } 
}



/* runtime-type-error */
BGL_EXPORTED_DEF obj_t BGl_runtimezd2typezd2errorz00zzcoerce_convertz00(obj_t BgL_locz00_41, obj_t BgL_tiz00_42, obj_t BgL_valuez00_43)
{ AN_OBJECT;
{ /* ./Coerce/convert.scm 67 */
{ 

{ /* ./Coerce/convert.scm 100 */
bool_t BgL_test3023z00_817;
BgL_test3023z00_817 = 
BGl_iszd2azf3z21zz__objectz00(BgL_valuez00_43, BGl_nodez00zzast_nodez00); 
if(BgL_test3023z00_817)
{ /* ./Coerce/convert.scm 101 */
BgL_nodez00_bglt BgL_auxz00_1675;
{ /* ./Coerce/convert.scm 92 */
obj_t BgL_auxz00_819;
BgL_auxz00_819 = 
PROCEDURE_ENTRY(BGl_gensymz00zz__r4_symbols_6_4z00)(BGl_gensymz00zz__r4_symbols_6_4z00, 
CNST_TABLE_REF(((long)0)), BEOA); 
{ /* ./Coerce/convert.scm 92 */
BgL_nodez00_bglt BgL_resz00_820;
{ /* ./Coerce/convert.scm 94 */
obj_t BgL_arg3036z00_823;
{ /* ./Coerce/convert.scm 94 */
obj_t BgL_arg3039z00_824;obj_t BgL_arg3040z00_825;
BgL_arg3039z00_824 = 
CNST_TABLE_REF(((long)1)); 
{ /* ./Coerce/convert.scm 94 */
obj_t BgL_arg3043z00_826;obj_t BgL_arg3044z00_827;
{ /* ./Coerce/convert.scm 94 */
obj_t BgL_arg3047z00_828;
{ /* ./Coerce/convert.scm 94 */
obj_t BgL_arg3051z00_830;obj_t BgL_arg3052z00_831;
{ /* ./Coerce/convert.scm 94 */
obj_t BgL_arg3055z00_832;
{ /* ./Coerce/convert.scm 94 */
obj_t BgL_list3058z00_833;
{ /* ./Coerce/convert.scm 94 */
obj_t BgL_arg3061z00_834;
{ /* ./Coerce/convert.scm 94 */
obj_t BgL_auxz00_1680;
BgL_auxz00_1680 = 
CNST_TABLE_REF(((long)2)); 
BgL_arg3061z00_834 = 
MAKE_PAIR(BgL_auxz00_1680, BNIL); } 
BgL_list3058z00_833 = 
MAKE_PAIR(BgL_auxz00_819, BgL_arg3061z00_834); } 
BgL_arg3055z00_832 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list3058z00_833); } 
BgL_arg3051z00_830 = 
BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(BgL_arg3055z00_832); } 
BgL_arg3052z00_831 = 
MAKE_PAIR(BUNSPEC, BNIL); 
BgL_arg3047z00_828 = 
MAKE_PAIR(BgL_arg3051z00_830, BgL_arg3052z00_831); } 
BgL_arg3043z00_826 = 
MAKE_PAIR(BgL_arg3047z00_828, BNIL); } 
{ /* ./Coerce/convert.scm 96 */
obj_t BgL_arg3066z00_835;
BgL_arg3066z00_835 = 
BGl_runtimezd2typezd2errorzf2idzf2zzcoerce_convertz00(BgL_tiz00_42, BgL_locz00_41, BgL_auxz00_819); 
BgL_arg3044z00_827 = 
MAKE_PAIR(BgL_arg3066z00_835, BNIL); } 
BgL_arg3040z00_825 = 
MAKE_PAIR(BgL_arg3043z00_826, BgL_arg3044z00_827); } 
BgL_arg3036z00_823 = 
MAKE_PAIR(BgL_arg3039z00_824, BgL_arg3040z00_825); } 
BgL_resz00_820 = 
BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00(BgL_arg3036z00_823, BgL_locz00_41); } 
{ /* ./Coerce/convert.scm 93 */

{ /* ./Coerce/convert.scm 98 */
obj_t BgL_arg3029z00_821;
{ /* ./Coerce/convert.scm 98 */
obj_t BgL_auxz00_1694;
{ /* ./Coerce/convert.scm 98 */
BgL_letzd2varzd2_bglt BgL_obj2486z00_1500;
BgL_obj2486z00_1500 = 
(BgL_letzd2varzd2_bglt)(BgL_resz00_820); 
BgL_auxz00_1694 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_obj2486z00_1500))->BgL_bindingsz00); } 
BgL_arg3029z00_821 = 
CAR(BgL_auxz00_1694); } 
SET_CDR(BgL_arg3029z00_821, BgL_valuez00_43); } 
BgL_auxz00_1675 = BgL_resz00_820; } } } 
return 
(obj_t)(BgL_auxz00_1675);}  else 
{ /* ./Coerce/convert.scm 100 */
return 
BGl_runtimezd2typezd2errorzf2idzf2zzcoerce_convertz00(BgL_tiz00_42, BgL_locz00_41, BgL_valuez00_43);} } } } 
}



/* runtime-type-error/id */
obj_t BGl_runtimezd2typezd2errorzf2idzf2zzcoerce_convertz00(obj_t BgL_tiz00_1632, obj_t BgL_locz00_1631, obj_t BgL_idz00_837)
{ AN_OBJECT;
{ /* ./Coerce/convert.scm 71 */
{ /* ./Coerce/convert.scm 72 */
bool_t BgL_test3072z00_839;
{ /* ./Coerce/convert.scm 72 */
bool_t BgL_test3197z00_893;
{ /* ./Coerce/convert.scm 72 */
bool_t BgL_test3199z00_894;
{ /* ./Coerce/convert.scm 72 */
long BgL_n1z00_1504;
BgL_n1z00_1504 = 
(long)CINT(BGl_za2bdbzd2debugza2zd2zzengine_paramz00); 
BgL_test3199z00_894 = 
(BgL_n1z00_1504>((long)0)); } 
if(BgL_test3199z00_894)
{ /* ./Coerce/convert.scm 72 */
BgL_test3197z00_893 = ((bool_t)1); }  else 
{ /* ./Coerce/convert.scm 73 */
long BgL_n1z00_1506;
BgL_n1z00_1506 = 
(long)CINT(BGl_za2compilerzd2debugza2zd2zzengine_paramz00); 
BgL_test3197z00_893 = 
(BgL_n1z00_1506>((long)0)); } } 
if(BgL_test3197z00_893)
{ /* ./Coerce/convert.scm 72 */
if(
STRUCTP(BgL_locz00_1631))
{ /* ./Coerce/convert.scm 74 */
obj_t BgL_auxz00_1711;obj_t BgL_auxz00_1709;
BgL_auxz00_1711 = 
CNST_TABLE_REF(((long)3)); 
BgL_auxz00_1709 = 
STRUCT_KEY(BgL_locz00_1631); 
BgL_test3072z00_839 = 
(BgL_auxz00_1709==BgL_auxz00_1711); }  else 
{ /* ./Coerce/convert.scm 74 */
BgL_test3072z00_839 = ((bool_t)0); } }  else 
{ /* ./Coerce/convert.scm 72 */
BgL_test3072z00_839 = ((bool_t)0); } } 
if(BgL_test3072z00_839)
{ /* ./Coerce/convert.scm 84 */
obj_t BgL_arg3074z00_840;obj_t BgL_arg3075z00_841;
BgL_arg3074z00_840 = 
CNST_TABLE_REF(((long)4)); 
{ /* ./Coerce/convert.scm 76 */
obj_t BgL_arg3078z00_842;obj_t BgL_arg3079z00_843;
{ /* ./Coerce/convert.scm 76 */
obj_t BgL_arg3082z00_844;obj_t BgL_arg3083z00_845;
{ /* ./Coerce/convert.scm 76 */
obj_t BgL_arg3086z00_846;obj_t BgL_arg3087z00_847;
BgL_arg3086z00_846 = 
CNST_TABLE_REF(((long)5)); 
{ /* ./Coerce/convert.scm 76 */
obj_t BgL_arg3090z00_848;obj_t BgL_arg3091z00_849;
BgL_arg3090z00_848 = 
CNST_TABLE_REF(((long)6)); 
{ /* ./Coerce/convert.scm 76 */
obj_t BgL_auxz00_1718;
BgL_auxz00_1718 = 
CNST_TABLE_REF(((long)7)); 
BgL_arg3091z00_849 = 
MAKE_PAIR(BgL_auxz00_1718, BNIL); } 
BgL_arg3087z00_847 = 
MAKE_PAIR(BgL_arg3090z00_848, BgL_arg3091z00_849); } 
BgL_arg3082z00_844 = 
MAKE_PAIR(BgL_arg3086z00_846, BgL_arg3087z00_847); } 
{ /* ./Coerce/convert.scm 76 */
obj_t BgL_arg3095z00_850;obj_t BgL_arg3096z00_851;
{ /* ./Coerce/convert.scm 76 */
obj_t BgL_arg3099z00_852;obj_t BgL_arg3100z00_853;
BgL_arg3099z00_852 = 
CNST_TABLE_REF(((long)8)); 
{ /* ./Coerce/convert.scm 76 */
obj_t BgL_arg3103z00_854;
BgL_arg3103z00_854 = 
BGl_currentzd2functionzd2zztools_errorz00(); 
BgL_arg3100z00_853 = 
MAKE_PAIR(BgL_arg3103z00_854, BNIL); } 
BgL_arg3095z00_850 = 
MAKE_PAIR(BgL_arg3099z00_852, BgL_arg3100z00_853); } 
{ /* ./Coerce/convert.scm 77 */
obj_t BgL_arg3108z00_856;obj_t BgL_arg3109z00_857;
BgL_arg3108z00_856 = 
SYMBOL_TO_STRING(BgL_tiz00_1632); 
{ /* ./Coerce/convert.scm 79 */
obj_t BgL_arg3113z00_858;
{ /* ./Coerce/convert.scm 79 */
obj_t BgL_arg3116z00_859;obj_t BgL_arg3117z00_860;
BgL_arg3116z00_859 = 
BGl_locationzd2fullzd2fnamez00zztools_locationz00(BgL_locz00_1631); 
{ /* ./Coerce/convert.scm 80 */
obj_t BgL_arg3121z00_861;
{ /* ./Coerce/convert.scm 80 */
int BgL_auxz00_1729;
BgL_auxz00_1729 = 
(int)(((long)1)); 
BgL_arg3121z00_861 = 
STRUCT_REF(BgL_locz00_1631, BgL_auxz00_1729); } 
BgL_arg3117z00_860 = 
MAKE_PAIR(BgL_arg3121z00_861, BNIL); } 
BgL_arg3113z00_858 = 
MAKE_PAIR(BgL_arg3116z00_859, BgL_arg3117z00_860); } 
BgL_arg3109z00_857 = 
MAKE_PAIR(BgL_idz00_837, BgL_arg3113z00_858); } 
BgL_arg3096z00_851 = 
MAKE_PAIR(BgL_arg3108z00_856, BgL_arg3109z00_857); } 
BgL_arg3083z00_845 = 
MAKE_PAIR(BgL_arg3095z00_850, BgL_arg3096z00_851); } 
BgL_arg3078z00_842 = 
MAKE_PAIR(BgL_arg3082z00_844, BgL_arg3083z00_845); } 
{ /* ./Coerce/convert.scm 84 */
obj_t BgL_arg3126z00_863;
{ /* ./Coerce/convert.scm 84 */
obj_t BgL_arg3131z00_865;obj_t BgL_arg3132z00_866;
BgL_arg3131z00_865 = 
CNST_TABLE_REF(((long)9)); 
{ /* ./Coerce/convert.scm 84 */
obj_t BgL_arg3135z00_867;
{ /* ./Coerce/convert.scm 84 */
obj_t BgL_arg3138z00_868;
BgL_arg3138z00_868 = 
MAKE_PAIR(BFALSE, BNIL); 
BgL_arg3135z00_867 = 
MAKE_PAIR(BFALSE, BgL_arg3138z00_868); } 
BgL_arg3132z00_866 = 
MAKE_PAIR(BFALSE, BgL_arg3135z00_867); } 
BgL_arg3126z00_863 = 
MAKE_PAIR(BgL_arg3131z00_865, BgL_arg3132z00_866); } 
BgL_arg3079z00_843 = 
MAKE_PAIR(BgL_arg3126z00_863, BNIL); } 
BgL_arg3075z00_841 = 
MAKE_PAIR(BgL_arg3078z00_842, BgL_arg3079z00_843); } 
return 
MAKE_PAIR(BgL_arg3074z00_840, BgL_arg3075z00_841);}  else 
{ /* ./Coerce/convert.scm 89 */
obj_t BgL_arg3142z00_869;obj_t BgL_arg3143z00_870;
BgL_arg3142z00_869 = 
CNST_TABLE_REF(((long)4)); 
{ /* ./Coerce/convert.scm 86 */
obj_t BgL_arg3146z00_871;obj_t BgL_arg3147z00_872;
{ /* ./Coerce/convert.scm 86 */
obj_t BgL_arg3150z00_873;obj_t BgL_arg3151z00_874;
{ /* ./Coerce/convert.scm 86 */
obj_t BgL_arg3154z00_875;obj_t BgL_arg3156z00_876;
BgL_arg3154z00_875 = 
CNST_TABLE_REF(((long)5)); 
{ /* ./Coerce/convert.scm 86 */
obj_t BgL_arg3159z00_877;obj_t BgL_arg3160z00_878;
BgL_arg3159z00_877 = 
CNST_TABLE_REF(((long)10)); 
{ /* ./Coerce/convert.scm 86 */
obj_t BgL_auxz00_1749;
BgL_auxz00_1749 = 
CNST_TABLE_REF(((long)7)); 
BgL_arg3160z00_878 = 
MAKE_PAIR(BgL_auxz00_1749, BNIL); } 
BgL_arg3156z00_876 = 
MAKE_PAIR(BgL_arg3159z00_877, BgL_arg3160z00_878); } 
BgL_arg3150z00_873 = 
MAKE_PAIR(BgL_arg3154z00_875, BgL_arg3156z00_876); } 
{ /* ./Coerce/convert.scm 86 */
obj_t BgL_arg3164z00_879;obj_t BgL_arg3165z00_880;
{ /* ./Coerce/convert.scm 86 */
obj_t BgL_arg3168z00_881;obj_t BgL_arg3169z00_882;
BgL_arg3168z00_881 = 
CNST_TABLE_REF(((long)8)); 
{ /* ./Coerce/convert.scm 86 */
obj_t BgL_arg3172z00_883;
BgL_arg3172z00_883 = 
BGl_currentzd2functionzd2zztools_errorz00(); 
BgL_arg3169z00_882 = 
MAKE_PAIR(BgL_arg3172z00_883, BNIL); } 
BgL_arg3164z00_879 = 
MAKE_PAIR(BgL_arg3168z00_881, BgL_arg3169z00_882); } 
{ /* ./Coerce/convert.scm 87 */
obj_t BgL_arg3177z00_885;obj_t BgL_arg3178z00_886;
BgL_arg3177z00_885 = 
SYMBOL_TO_STRING(BgL_tiz00_1632); 
BgL_arg3178z00_886 = 
MAKE_PAIR(BgL_idz00_837, BNIL); 
BgL_arg3165z00_880 = 
MAKE_PAIR(BgL_arg3177z00_885, BgL_arg3178z00_886); } 
BgL_arg3151z00_874 = 
MAKE_PAIR(BgL_arg3164z00_879, BgL_arg3165z00_880); } 
BgL_arg3146z00_871 = 
MAKE_PAIR(BgL_arg3150z00_873, BgL_arg3151z00_874); } 
{ /* ./Coerce/convert.scm 89 */
obj_t BgL_arg3183z00_887;
{ /* ./Coerce/convert.scm 89 */
obj_t BgL_arg3187z00_889;obj_t BgL_arg3188z00_890;
BgL_arg3187z00_889 = 
CNST_TABLE_REF(((long)9)); 
{ /* ./Coerce/convert.scm 89 */
obj_t BgL_arg3191z00_891;
{ /* ./Coerce/convert.scm 89 */
obj_t BgL_arg3194z00_892;
BgL_arg3194z00_892 = 
MAKE_PAIR(BFALSE, BNIL); 
BgL_arg3191z00_891 = 
MAKE_PAIR(BFALSE, BgL_arg3194z00_892); } 
BgL_arg3188z00_890 = 
MAKE_PAIR(BFALSE, BgL_arg3191z00_891); } 
BgL_arg3183z00_887 = 
MAKE_PAIR(BgL_arg3187z00_889, BgL_arg3188z00_890); } 
BgL_arg3147z00_872 = 
MAKE_PAIR(BgL_arg3183z00_887, BNIL); } 
BgL_arg3143z00_870 = 
MAKE_PAIR(BgL_arg3146z00_871, BgL_arg3147z00_872); } 
return 
MAKE_PAIR(BgL_arg3142z00_869, BgL_arg3143z00_870);} } } 
}



/* _runtime-type-error */
obj_t BGl__runtimezd2typezd2errorz00zzcoerce_convertz00(obj_t BgL_envz00_1623, obj_t BgL_locz00_1624, obj_t BgL_tiz00_1625, obj_t BgL_valuez00_1626)
{ AN_OBJECT;
{ /* ./Coerce/convert.scm 67 */
return 
BGl_runtimezd2typezd2errorz00zzcoerce_convertz00(BgL_locz00_1624, BgL_tiz00_1625, BgL_valuez00_1626);} 
}



/* convert-error */
obj_t BGl_convertzd2errorzd2zzcoerce_convertz00(BgL_typez00_bglt BgL_fromz00_44, BgL_typez00_bglt BgL_toz00_45, obj_t BgL_locz00_46, BgL_nodez00_bglt BgL_nodez00_47)
{ AN_OBJECT;
{ /* ./Coerce/convert.scm 111 */
{ /* ./Coerce/convert.scm 114 */
bool_t BgL_test3202z00_897;
{ /* ./Coerce/convert.scm 114 */
bool_t BgL_test3218z00_904;
{ /* ./Coerce/convert.scm 114 */
obj_t BgL_auxz00_1772;
BgL_auxz00_1772 = 
(obj_t)(BgL_toz00_45); 
BgL_test3218z00_904 = 
(BgL_auxz00_1772==BGl_za2objza2z00zztype_cachez00); } 
if(BgL_test3218z00_904)
{ /* ./Coerce/convert.scm 114 */
BgL_test3202z00_897 = ((bool_t)0); }  else 
{ /* ./Coerce/convert.scm 114 */
BgL_test3202z00_897 = 
BGl_subzd2typezf3z21zztype_envz00(BgL_toz00_45, 
(BgL_typez00_bglt)(BGl_za2objza2z00zztype_cachez00)); } } 
if(BgL_test3202z00_897)
{ /* ./Coerce/convert.scm 115 */
obj_t BgL_unsafezd2typezd2_898;
BgL_unsafezd2typezd2_898 = BGl_za2unsafezd2typeza2zd2zzengine_paramz00; 
BGl_za2unsafezd2typeza2zd2zzengine_paramz00 = BTRUE; 
{ /* ./Coerce/convert.scm 117 */
obj_t BgL_arg3204z00_899;
BgL_arg3204z00_899 = 
BGl_currentzd2functionzd2zztools_errorz00(); 
{ /* ./Coerce/convert.scm 117 */
obj_t BgL_arg3008z00_1525;
{ /* ./Coerce/convert.scm 117 */
obj_t BgL_arg3012z00_1527;obj_t BgL_arg3013z00_1528;
{ /* ./Coerce/convert.scm 117 */
obj_t BgL_arg3016z00_1529;
BgL_arg3016z00_1529 = 
(((BgL_typez00_bglt)CREF(BgL_toz00_45))->BgL_idz00); 
BgL_arg3012z00_1527 = 
SYMBOL_TO_STRING(BgL_arg3016z00_1529); } 
{ /* ./Coerce/convert.scm 117 */
obj_t BgL_arg3020z00_1530;
BgL_arg3020z00_1530 = 
(((BgL_typez00_bglt)CREF(BgL_fromz00_44))->BgL_idz00); 
BgL_arg3013z00_1528 = 
SYMBOL_TO_STRING(BgL_arg3020z00_1530); } 
BgL_arg3008z00_1525 = 
BGl_bigloozd2typezd2errorzd2msgzd2zz__errorz00(BGl_string4059z00zzcoerce_convertz00, BgL_arg3012z00_1527, BgL_arg3013z00_1528); } 
BGl_userzd2warningzf2locationz20zztools_errorz00(BgL_locz00_46, BgL_arg3204z00_899, BGl_string4060z00zzcoerce_convertz00, BgL_arg3008z00_1525); } } 
{ /* ./Coerce/convert.scm 118 */
BgL_nodez00_bglt BgL_resz00_900;
{ /* ./Coerce/convert.scm 118 */
obj_t BgL_arg3208z00_901;
{ /* ./Coerce/convert.scm 118 */
obj_t BgL_arg3211z00_902;
BgL_arg3211z00_902 = 
(((BgL_typez00_bglt)CREF(BgL_toz00_45))->BgL_idz00); 
BgL_arg3208z00_901 = 
BGl_runtimezd2typezd2errorz00zzcoerce_convertz00(BgL_locz00_46, BgL_arg3211z00_902, 
(obj_t)(BgL_nodez00_47)); } 
BgL_resz00_900 = 
BGl_coercez12z12zzcoerce_coercez00(
(BgL_nodez00_bglt)(BgL_arg3208z00_901), BUNSPEC, BgL_fromz00_44); } 
BGl_za2unsafezd2typeza2zd2zzengine_paramz00 = BgL_unsafezd2typezd2_898; 
return 
(obj_t)(BgL_resz00_900);} }  else 
{ /* ./Coerce/convert.scm 123 */
obj_t BgL_arg3215z00_903;
BgL_arg3215z00_903 = 
BGl_currentzd2functionzd2zztools_errorz00(); 
return 
BGl_typezd2errorzf2locationz20zzcoerce_convertz00(BgL_locz00_46, BgL_arg3215z00_903, BgL_fromz00_44, BgL_toz00_45);} } } 
}



/* convert! */
BGL_EXPORTED_DEF BgL_nodez00_bglt BGl_convertz12z12zzcoerce_convertz00(BgL_nodez00_bglt BgL_nodez00_48, BgL_typez00_bglt BgL_fromz00_49, BgL_typez00_bglt BgL_toz00_50)
{ AN_OBJECT;
{ /* ./Coerce/convert.scm 131 */
{ /* ./Coerce/convert.scm 135 */
BgL_typez00_bglt BgL_toz00_905;BgL_typez00_bglt BgL_fromz00_906;
BgL_toz00_905 = 
BGl_getzd2aliasedzd2typez00zztype_typez00(BgL_toz00_50); 
BgL_fromz00_906 = 
BGl_getzd2aliasedzd2typez00zztype_typez00(BgL_fromz00_49); 
{ /* ./Coerce/convert.scm 137 */
bool_t BgL_test3221z00_907;
{ /* ./Coerce/convert.scm 137 */
bool_t BgL_testz00_1796;
{ /* ./Coerce/convert.scm 137 */
obj_t BgL_auxz00_1799;obj_t BgL_auxz00_1797;
BgL_auxz00_1799 = 
(obj_t)(BgL_toz00_905); 
BgL_auxz00_1797 = 
(obj_t)(BgL_fromz00_906); 
BgL_testz00_1796 = 
(BgL_auxz00_1797==BgL_auxz00_1799); } 
if(BgL_testz00_1796)
{ /* ./Coerce/convert.scm 137 */
BgL_test3221z00_907 = ((bool_t)1); }  else 
{ /* ./Coerce/convert.scm 137 */
BgL_test3221z00_907 = 
(((BgL_typez00_bglt)CREF(BgL_fromz00_906))->BgL_magiczf3zf3); } } 
if(BgL_test3221z00_907)
{ /* ./Coerce/convert.scm 137 */
return BgL_nodez00_48;}  else 
{ /* ./Coerce/convert.scm 139 */
obj_t BgL_coercerz00_908;obj_t BgL_locz00_909;
BgL_coercerz00_908 = 
BGl_findzd2coercerzd2zztype_coercionz00(BgL_fromz00_906, BgL_toz00_905); 
BgL_locz00_909 = 
(((BgL_nodez00_bglt)CREF(BgL_nodez00_48))->BgL_locz00); 
{ /* ./Coerce/convert.scm 141 */
bool_t BgL_test3222z00_910;
if(
STRUCTP(BgL_coercerz00_908))
{ /* ./Coerce/convert.scm 141 */
obj_t BgL_auxz00_1810;obj_t BgL_auxz00_1808;
BgL_auxz00_1810 = 
CNST_TABLE_REF(((long)11)); 
BgL_auxz00_1808 = 
STRUCT_KEY(BgL_coercerz00_908); 
BgL_test3222z00_910 = 
(BgL_auxz00_1808==BgL_auxz00_1810); }  else 
{ /* ./Coerce/convert.scm 141 */
BgL_test3222z00_910 = ((bool_t)0); } 
if(BgL_test3222z00_910)
{ /* ./Coerce/convert.scm 145 */
obj_t BgL_checksz00_911;obj_t BgL_coercesz00_912;
{ /* ./Coerce/convert.scm 145 */
int BgL_auxz00_1814;
BgL_auxz00_1814 = 
(int)(((long)2)); 
BgL_checksz00_911 = 
STRUCT_REF(BgL_coercerz00_908, BgL_auxz00_1814); } 
{ /* ./Coerce/convert.scm 146 */
int BgL_auxz00_1817;
BgL_auxz00_1817 = 
(int)(((long)3)); 
BgL_coercesz00_912 = 
STRUCT_REF(BgL_coercerz00_908, BgL_auxz00_1817); } 
{ 
obj_t BgL_checksz00_913;obj_t BgL_coercesz00_914;obj_t BgL_nodez00_915;
{ /* ./Coerce/convert.scm 150 */
obj_t BgL_auxz00_1820;
BgL_checksz00_913 = BgL_checksz00_911; 
BgL_coercesz00_914 = BgL_coercesz00_912; 
BgL_nodez00_915 = 
(obj_t)(BgL_nodez00_48); 
BgL_loopz00_916:
{ /* ./Coerce/convert.scm 154 */
bool_t BgL_test3224z00_917;
BgL_test3224z00_917 = 
NULLP(BgL_checksz00_913); 
if(BgL_test3224z00_917)
{ /* ./Coerce/convert.scm 154 */
{ /* ./Coerce/convert.scm 155 */
bool_t BgL_test3225z00_918;
BgL_test3225z00_918 = 
NULLP(BgL_coercesz00_914); 
if(BgL_test3225z00_918)
{ /* ./Coerce/convert.scm 155 */
BgL_auxz00_1820 = BgL_nodez00_915
; }  else 
{ /* ./Coerce/convert.scm 157 */
obj_t BgL_arg3228z00_920;obj_t BgL_arg3229z00_921;
BgL_arg3228z00_920 = 
BGl_shapez00zztools_shapez00(
(obj_t)(BgL_fromz00_906)); 
BgL_arg3229z00_921 = 
BGl_shapez00zztools_shapez00(
(obj_t)(BgL_toz00_905)); 
BgL_auxz00_1820 = 
BGl_internalzd2errorzd2zztools_errorz00(BGl_string4061z00zzcoerce_convertz00, BgL_arg3228z00_920, BgL_arg3229z00_921); } } }  else 
{ /* ./Coerce/convert.scm 160 */
bool_t BgL_test3234z00_922;
BgL_test3234z00_922 = 
NULLP(BgL_coercesz00_914); 
if(BgL_test3234z00_922)
{ /* ./Coerce/convert.scm 160 */
{ /* ./Coerce/convert.scm 161 */
obj_t BgL_arg3237z00_924;obj_t BgL_arg3238z00_925;
BgL_arg3237z00_924 = 
BGl_shapez00zztools_shapez00(
(obj_t)(BgL_fromz00_906)); 
BgL_arg3238z00_925 = 
BGl_shapez00zztools_shapez00(
(obj_t)(BgL_toz00_905)); 
BgL_auxz00_1820 = 
BGl_internalzd2errorzd2zztools_errorz00(BGl_string4061z00zzcoerce_convertz00, BgL_arg3237z00_924, BgL_arg3238z00_925); } }  else 
{ /* ./Coerce/convert.scm 160 */
{ /* ./Coerce/convert.scm 165 */
obj_t BgL_arg3243z00_926;obj_t BgL_arg3245z00_927;obj_t BgL_arg3246z00_928;
BgL_arg3243z00_926 = 
CDR(BgL_checksz00_913); 
BgL_arg3245z00_927 = 
CDR(BgL_coercesz00_914); 
{ /* ./Coerce/convert.scm 167 */
obj_t BgL_arg3251z00_929;obj_t BgL_arg3252z00_930;obj_t BgL_arg3253z00_931;
BgL_arg3251z00_929 = 
CAR(BgL_checksz00_913); 
BgL_arg3252z00_930 = 
CAR(BgL_checksz00_913); 
BgL_arg3253z00_931 = 
CAR(BgL_coercesz00_914); 
BgL_arg3246z00_928 = 
BGl_makezd2onezd2conversionz00zzcoerce_convertz00(BgL_arg3251z00_929, BgL_fromz00_906, BgL_toz00_905, BgL_arg3252z00_930, BgL_arg3253z00_931, BgL_nodez00_915); } 
{ 
obj_t BgL_nodez00_1845;obj_t BgL_coercesz00_1844;obj_t BgL_checksz00_1843;
BgL_checksz00_1843 = BgL_arg3243z00_926; 
BgL_coercesz00_1844 = BgL_arg3245z00_927; 
BgL_nodez00_1845 = BgL_arg3246z00_928; 
BgL_nodez00_915 = BgL_nodez00_1845; 
BgL_coercesz00_914 = BgL_coercesz00_1844; 
BgL_checksz00_913 = BgL_checksz00_1843; 
goto BgL_loopz00_916;} } } } } 
return 
(BgL_nodez00_bglt)(BgL_auxz00_1820);} } }  else 
{ /* ./Coerce/convert.scm 144 */
obj_t BgL_auxz00_1848;
BgL_auxz00_1848 = 
BGl_convertzd2errorzd2zzcoerce_convertz00(BgL_fromz00_906, BgL_toz00_905, BgL_locz00_909, BgL_nodez00_48); 
return 
(BgL_nodez00_bglt)(BgL_auxz00_1848);} } } } } } 
}



/* _convert! */
obj_t BGl__convertz12z12zzcoerce_convertz00(obj_t BgL_envz00_1627, obj_t BgL_nodez00_1628, obj_t BgL_fromz00_1629, obj_t BgL_toz00_1630)
{ AN_OBJECT;
{ /* ./Coerce/convert.scm 131 */
{ /* ./Coerce/convert.scm 132 */
BgL_nodez00_bglt BgL_auxz00_1851;
BgL_auxz00_1851 = 
BGl_convertz12z12zzcoerce_convertz00(
(BgL_nodez00_bglt)(BgL_nodez00_1628), 
(BgL_typez00_bglt)(BgL_fromz00_1629), 
(BgL_typez00_bglt)(BgL_toz00_1630)); 
return 
(obj_t)(BgL_auxz00_1851);} } 
}



/* make-one-conversion */
obj_t BGl_makezd2onezd2conversionz00zzcoerce_convertz00(obj_t BgL_idzd2fromzd2_51, BgL_typez00_bglt BgL_fromz00_52, BgL_typez00_bglt BgL_toz00_53, obj_t BgL_checkopz00_54, obj_t BgL_coerceopz00_55, obj_t BgL_nodez00_56)
{ AN_OBJECT;
{ /* ./Coerce/convert.scm 183 */
{ /* ./Coerce/convert.scm 184 */
bool_t BgL_test3271z00_933;
{ /* ./Coerce/convert.scm 184 */
bool_t BgL_test3277z00_935;
BgL_test3277z00_935 = 
NULLP(BgL_checkopz00_54); 
if(BgL_test3277z00_935)
{ /* ./Coerce/convert.scm 184 */
BgL_test3271z00_933 = ((bool_t)1); }  else 
{ /* ./Coerce/convert.scm 184 */
BgL_test3271z00_933 = 
CBOOL(BGl_za2unsafezd2typeza2zd2zzengine_paramz00); } } 
if(BgL_test3271z00_933)
{ /* ./Coerce/convert.scm 184 */
return 
BGl_dozd2convertzd2zzcoerce_convertz00(BgL_coerceopz00_55, BgL_nodez00_56, BgL_fromz00_52);}  else 
{ /* ./Coerce/convert.scm 186 */
bool_t BgL_test3273z00_934;
{ /* ./Coerce/convert.scm 186 */
obj_t BgL_obj2709z00_1560;
BgL_obj2709z00_1560 = 
(obj_t)(BgL_fromz00_52); 
BgL_test3273z00_934 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj2709z00_1560, BGl_tclassz00zzobject_classz00); } 
if(BgL_test3273z00_934)
{ /* ./Coerce/convert.scm 186 */
return 
BGl_makezd2onezd2classzd2conversionzd2zzcoerce_convertz00(BgL_idzd2fromzd2_51, BgL_fromz00_52, BgL_toz00_53, BgL_checkopz00_54, BgL_coerceopz00_55, BgL_nodez00_56);}  else 
{ /* ./Coerce/convert.scm 188 */
BgL_nodez00_bglt BgL_auxz00_1866;
BgL_auxz00_1866 = 
BGl_makezd2onezd2typezd2conversionzd2zzcoerce_convertz00(BgL_idzd2fromzd2_51, BgL_fromz00_52, BgL_toz00_53, BgL_checkopz00_54, BgL_coerceopz00_55, BgL_nodez00_56); 
return 
(obj_t)(BgL_auxz00_1866);} } } } 
}



/* skip-let-var */
BgL_nodez00_bglt BGl_skipzd2letzd2varz00zzcoerce_convertz00(BgL_nodez00_bglt BgL_nodez00_57)
{ AN_OBJECT;
{ /* ./Coerce/convert.scm 193 */
BGl_skipzd2letzd2varz00zzcoerce_convertz00:
{ /* ./Coerce/convert.scm 194 */
bool_t BgL_test3279z00_936;
{ /* ./Coerce/convert.scm 194 */
obj_t BgL_obj2519z00_1561;
BgL_obj2519z00_1561 = 
(obj_t)(BgL_nodez00_57); 
BgL_test3279z00_936 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj2519z00_1561, BGl_letzd2varzd2zzast_nodez00); } 
if(BgL_test3279z00_936)
{ 
BgL_nodez00_bglt BgL_nodez00_1872;
{ /* ./Coerce/convert.scm 195 */
BgL_letzd2varzd2_bglt BgL_obj2489z00_1562;
BgL_obj2489z00_1562 = 
(BgL_letzd2varzd2_bglt)(BgL_nodez00_57); 
BgL_nodez00_1872 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_obj2489z00_1562))->BgL_bodyz00); } 
BgL_nodez00_57 = BgL_nodez00_1872; 
goto BGl_skipzd2letzd2varz00zzcoerce_convertz00;}  else 
{ /* ./Coerce/convert.scm 194 */
return BgL_nodez00_57;} } } 
}



/* make-one-type-conversion */
BgL_nodez00_bglt BGl_makezd2onezd2typezd2conversionzd2zzcoerce_convertz00(obj_t BgL_idzd2fromzd2_58, BgL_typez00_bglt BgL_fromz00_59, BgL_typez00_bglt BgL_toz00_60, obj_t BgL_checkzd2opzd2_61, obj_t BgL_coercezd2opzd2_62, obj_t BgL_nodez00_63)
{ AN_OBJECT;
{ /* ./Coerce/convert.scm 201 */
{ /* ./Coerce/convert.scm 202 */
obj_t BgL_auxz00_938;
{ /* ./Coerce/convert.scm 202 */
obj_t BgL_arg3374z00_976;
BgL_arg3374z00_976 = 
PROCEDURE_ENTRY(BGl_gensymz00zz__r4_symbols_6_4z00)(BGl_gensymz00zz__r4_symbols_6_4z00, 
CNST_TABLE_REF(((long)0)), BEOA); 
BgL_auxz00_938 = 
BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(BgL_arg3374z00_976); } 
{ /* ./Coerce/convert.scm 202 */
obj_t BgL_locz00_939;
{ /* ./Coerce/convert.scm 203 */
BgL_nodez00_bglt BgL_obj1560z00_1563;
BgL_obj1560z00_1563 = 
(BgL_nodez00_bglt)(BgL_nodez00_63); 
BgL_locz00_939 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1560z00_1563))->BgL_locz00); } 
{ /* ./Coerce/convert.scm 203 */
BgL_nodez00_bglt BgL_lnodez00_940;
{ /* ./Coerce/convert.scm 210 */
obj_t BgL_arg3319z00_954;
{ /* ./Coerce/convert.scm 210 */
obj_t BgL_arg3322z00_955;obj_t BgL_arg3323z00_956;
BgL_arg3322z00_955 = 
CNST_TABLE_REF(((long)1)); 
{ /* ./Coerce/convert.scm 211 */
obj_t BgL_arg3326z00_957;obj_t BgL_arg3327z00_958;
{ /* ./Coerce/convert.scm 211 */
obj_t BgL_arg3330z00_959;
{ /* ./Coerce/convert.scm 211 */
obj_t BgL_arg3334z00_961;obj_t BgL_arg3335z00_962;
{ /* ./Coerce/convert.scm 211 */
obj_t BgL_arg3338z00_963;
{ /* ./Coerce/convert.scm 211 */
obj_t BgL_arg3341z00_964;
BgL_arg3341z00_964 = 
(((BgL_typez00_bglt)CREF(BgL_fromz00_59))->BgL_idz00); 
BgL_arg3338z00_963 = 
BGl_makezd2typedzd2identz00zzast_identz00(BgL_auxz00_938, BgL_arg3341z00_964); } 
BgL_arg3334z00_961 = 
BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(BgL_arg3338z00_963); } 
BgL_arg3335z00_962 = 
MAKE_PAIR(BUNSPEC, BNIL); 
BgL_arg3330z00_959 = 
MAKE_PAIR(BgL_arg3334z00_961, BgL_arg3335z00_962); } 
BgL_arg3326z00_957 = 
MAKE_PAIR(BgL_arg3330z00_959, BNIL); } 
{ /* ./Coerce/convert.scm 213 */
obj_t BgL_arg3346z00_965;
{ /* ./Coerce/convert.scm 213 */
obj_t BgL_arg3350z00_967;obj_t BgL_arg3351z00_968;
BgL_arg3350z00_967 = 
CNST_TABLE_REF(((long)12)); 
{ /* ./Coerce/convert.scm 213 */
obj_t BgL_arg3354z00_969;obj_t BgL_arg3355z00_970;
{ /* ./Coerce/convert.scm 213 */
obj_t BgL_arg3358z00_971;
BgL_arg3358z00_971 = 
MAKE_PAIR(BgL_auxz00_938, BNIL); 
BgL_arg3354z00_969 = 
MAKE_PAIR(BgL_checkzd2opzd2_61, BgL_arg3358z00_971); } 
{ /* ./Coerce/convert.scm 215 */
obj_t BgL_arg3362z00_972;
{ /* ./Coerce/convert.scm 215 */
obj_t BgL_arg3365z00_973;
{ /* ./Coerce/convert.scm 215 */
obj_t BgL_arg3369z00_975;
BgL_arg3369z00_975 = 
(((BgL_typez00_bglt)CREF(BgL_toz00_60))->BgL_idz00); 
BgL_arg3365z00_973 = 
BGl_runtimezd2typezd2errorz00zzcoerce_convertz00(BgL_locz00_939, BgL_arg3369z00_975, BgL_auxz00_938); } 
BgL_arg3362z00_972 = 
MAKE_PAIR(BgL_arg3365z00_973, BNIL); } 
BgL_arg3355z00_970 = 
MAKE_PAIR(BgL_auxz00_938, BgL_arg3362z00_972); } 
BgL_arg3351z00_968 = 
MAKE_PAIR(BgL_arg3354z00_969, BgL_arg3355z00_970); } 
BgL_arg3346z00_965 = 
MAKE_PAIR(BgL_arg3350z00_967, BgL_arg3351z00_968); } 
BgL_arg3327z00_958 = 
MAKE_PAIR(BgL_arg3346z00_965, BNIL); } 
BgL_arg3323z00_956 = 
MAKE_PAIR(BgL_arg3326z00_957, BgL_arg3327z00_958); } 
BgL_arg3319z00_954 = 
MAKE_PAIR(BgL_arg3322z00_955, BgL_arg3323z00_956); } 
BgL_lnodez00_940 = 
BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00(BgL_arg3319z00_954, BgL_locz00_939); } 
{ /* ./Coerce/convert.scm 204 */

BGl_lvtypezd2nodez12zc0zzast_lvtypez00(BgL_lnodez00_940); 
{ /* ./Coerce/convert.scm 218 */
obj_t BgL_varz00_941;
{ /* ./Coerce/convert.scm 218 */
obj_t BgL_auxz00_1902;
{ /* ./Coerce/convert.scm 218 */
obj_t BgL_auxz00_1903;
{ /* ./Coerce/convert.scm 218 */
BgL_letzd2varzd2_bglt BgL_obj2486z00_1566;
BgL_obj2486z00_1566 = 
(BgL_letzd2varzd2_bglt)(BgL_lnodez00_940); 
BgL_auxz00_1903 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_obj2486z00_1566))->BgL_bindingsz00); } 
BgL_auxz00_1902 = 
CAR(BgL_auxz00_1903); } 
BgL_varz00_941 = 
CAR(BgL_auxz00_1902); } 
{ /* ./Coerce/convert.scm 218 */
obj_t BgL_coercezd2appzd2_942;
{ /* ./Coerce/convert.scm 221 */
BgL_varz00_bglt BgL_arg3304z00_948;
{ /* ./Coerce/convert.scm 221 */
obj_t BgL_arg3307z00_949;BgL_typez00_bglt BgL_arg3308z00_950;obj_t BgL_arg3309z00_951;
BgL_arg3307z00_949 = BgL_locz00_939; 
BgL_arg3308z00_950 = BgL_fromz00_59; 
BgL_arg3309z00_951 = BgL_varz00_941; 
BgL_arg3304z00_948 = 
BGl_makezd2varzd2zzast_nodez00(BgL_arg3307z00_949, BgL_arg3308z00_950, 
(BgL_variablez00_bglt)(BgL_arg3309z00_951)); } 
BgL_coercezd2appzd2_942 = 
BGl_dozd2convertzd2zzcoerce_convertz00(BgL_coercezd2opzd2_62, 
(obj_t)(BgL_arg3304z00_948), BgL_fromz00_59); } 
{ /* ./Coerce/convert.scm 219 */
BgL_nodez00_bglt BgL_condnz00_943;
BgL_condnz00_943 = 
BGl_skipzd2letzd2varz00zzcoerce_convertz00(BgL_lnodez00_940); 
{ /* ./Coerce/convert.scm 225 */

{ /* ./Coerce/convert.scm 227 */
BgL_variablez00_bglt BgL_obj1099z00_1569;BgL_typez00_bglt BgL_val1098z00_1570;
BgL_obj1099z00_1569 = 
(BgL_variablez00_bglt)(BgL_varz00_941); 
BgL_val1098z00_1570 = BgL_fromz00_59; 
((((BgL_variablez00_bglt)CREF(BgL_obj1099z00_1569))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1098z00_1570), BUNSPEC); } 
{ /* ./Coerce/convert.scm 229 */
obj_t BgL_arg3288z00_944;
{ /* ./Coerce/convert.scm 229 */
obj_t BgL_auxz00_1915;
{ /* ./Coerce/convert.scm 229 */
BgL_letzd2varzd2_bglt BgL_obj2486z00_1571;
BgL_obj2486z00_1571 = 
(BgL_letzd2varzd2_bglt)(BgL_lnodez00_940); 
BgL_auxz00_1915 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_obj2486z00_1571))->BgL_bindingsz00); } 
BgL_arg3288z00_944 = 
CAR(BgL_auxz00_1915); } 
SET_CDR(BgL_arg3288z00_944, BgL_nodez00_63); } 
{ /* ./Coerce/convert.scm 230 */
BgL_conditionalz00_bglt BgL_obj2337z00_1575;BgL_nodez00_bglt BgL_val2336z00_1576;
BgL_obj2337z00_1575 = 
(BgL_conditionalz00_bglt)(BgL_condnz00_943); 
BgL_val2336z00_1576 = 
(BgL_nodez00_bglt)(BgL_coercezd2appzd2_942); 
((((BgL_conditionalz00_bglt)CREF(BgL_obj2337z00_1575))->BgL_truez00) = ((BgL_nodez00_bglt)BgL_val2336z00_1576), BUNSPEC); } 
BGl_za2unsafezd2typeza2zd2zzengine_paramz00 = BTRUE; 
{ /* ./Coerce/convert.scm 233 */
BgL_nodez00_bglt BgL_arg3296z00_946;
{ /* ./Coerce/convert.scm 233 */
BgL_nodez00_bglt BgL_arg3299z00_947;
{ /* ./Coerce/convert.scm 233 */
BgL_conditionalz00_bglt BgL_obj2338z00_1577;
BgL_obj2338z00_1577 = 
(BgL_conditionalz00_bglt)(BgL_condnz00_943); 
BgL_arg3299z00_947 = 
(((BgL_conditionalz00_bglt)CREF(BgL_obj2338z00_1577))->BgL_falsez00); } 
BgL_arg3296z00_946 = 
BGl_coercez12z12zzcoerce_coercez00(BgL_arg3299z00_947, BUNSPEC, BgL_fromz00_59); } 
{ /* ./Coerce/convert.scm 232 */
BgL_conditionalz00_bglt BgL_obj2340z00_1578;BgL_nodez00_bglt BgL_val2339z00_1579;
BgL_obj2340z00_1578 = 
(BgL_conditionalz00_bglt)(BgL_condnz00_943); 
BgL_val2339z00_1579 = BgL_arg3296z00_946; 
((((BgL_conditionalz00_bglt)CREF(BgL_obj2340z00_1578))->BgL_falsez00) = ((BgL_nodez00_bglt)BgL_val2339z00_1579), BUNSPEC); } } 
BGl_za2unsafezd2typeza2zd2zzengine_paramz00 = BFALSE; 
return BgL_lnodez00_940;} } } } } } } } } 
}



/* make-one-class-conversion */
obj_t BGl_makezd2onezd2classzd2conversionzd2zzcoerce_convertz00(obj_t BgL_idzd2fromzd2_64, BgL_typez00_bglt BgL_fromz00_65, BgL_typez00_bglt BgL_toz00_66, obj_t BgL_checkzd2opzd2_67, obj_t BgL_coercezd2opzd2_68, obj_t BgL_nodez00_69)
{ AN_OBJECT;
{ /* ./Coerce/convert.scm 242 */
{ /* ./Coerce/convert.scm 243 */
bool_t BgL_test3377z00_977;
{ /* ./Coerce/convert.scm 243 */
bool_t BgL_test3524z00_1041;
{ /* ./Coerce/convert.scm 243 */
obj_t BgL_obj2709z00_1580;
BgL_obj2709z00_1580 = 
(obj_t)(BgL_toz00_66); 
BgL_test3524z00_1041 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj2709z00_1580, BGl_tclassz00zzobject_classz00); } 
if(BgL_test3524z00_1041)
{ /* ./Coerce/convert.scm 243 */
BgL_test3377z00_977 = 
BGl_typezd2subclasszf3z21zzobject_classz00(BgL_fromz00_65, BgL_toz00_66); }  else 
{ /* ./Coerce/convert.scm 243 */
BgL_test3377z00_977 = ((bool_t)0); } } 
if(BgL_test3377z00_977)
{ /* ./Coerce/convert.scm 243 */
return 
BGl_dozd2convertzd2zzcoerce_convertz00(BgL_coercezd2opzd2_68, BgL_nodez00_69, BgL_fromz00_65);}  else 
{ /* ./Coerce/convert.scm 245 */
obj_t BgL_auxz00_978;
BgL_auxz00_978 = 
PROCEDURE_ENTRY(BGl_gensymz00zz__r4_symbols_6_4z00)(BGl_gensymz00zz__r4_symbols_6_4z00, 
CNST_TABLE_REF(((long)0)), BEOA); 
{ /* ./Coerce/convert.scm 245 */
obj_t BgL_aux2z00_979;
BgL_aux2z00_979 = 
PROCEDURE_ENTRY(BGl_gensymz00zz__r4_symbols_6_4z00)(BGl_gensymz00zz__r4_symbols_6_4z00, 
CNST_TABLE_REF(((long)13)), BEOA); 
{ /* ./Coerce/convert.scm 246 */
obj_t BgL_locz00_980;
{ /* ./Coerce/convert.scm 247 */
BgL_nodez00_bglt BgL_obj1560z00_1581;
BgL_obj1560z00_1581 = 
(BgL_nodez00_bglt)(BgL_nodez00_69); 
BgL_locz00_980 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1560z00_1581))->BgL_locz00); } 
{ /* ./Coerce/convert.scm 247 */
BgL_nodez00_bglt BgL_lnodez00_981;
{ /* ./Coerce/convert.scm 249 */
obj_t BgL_arg3434z00_1005;
{ /* ./Coerce/convert.scm 249 */
obj_t BgL_arg3437z00_1006;obj_t BgL_arg3438z00_1007;
BgL_arg3437z00_1006 = 
CNST_TABLE_REF(((long)1)); 
{ /* ./Coerce/convert.scm 250 */
obj_t BgL_arg3441z00_1008;obj_t BgL_arg3442z00_1009;
{ /* ./Coerce/convert.scm 250 */
obj_t BgL_arg3446z00_1010;
{ /* ./Coerce/convert.scm 250 */
obj_t BgL_arg3450z00_1012;obj_t BgL_arg3451z00_1013;
{ /* ./Coerce/convert.scm 250 */
obj_t BgL_arg3454z00_1014;
{ /* ./Coerce/convert.scm 250 */
obj_t BgL_list3457z00_1015;
{ /* ./Coerce/convert.scm 250 */
obj_t BgL_arg3459z00_1016;
{ /* ./Coerce/convert.scm 250 */
obj_t BgL_auxz00_1943;
BgL_auxz00_1943 = 
CNST_TABLE_REF(((long)2)); 
BgL_arg3459z00_1016 = 
MAKE_PAIR(BgL_auxz00_1943, BNIL); } 
BgL_list3457z00_1015 = 
MAKE_PAIR(BgL_auxz00_978, BgL_arg3459z00_1016); } 
BgL_arg3454z00_1014 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list3457z00_1015); } 
BgL_arg3450z00_1012 = 
BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(BgL_arg3454z00_1014); } 
BgL_arg3451z00_1013 = 
MAKE_PAIR(BUNSPEC, BNIL); 
BgL_arg3446z00_1010 = 
MAKE_PAIR(BgL_arg3450z00_1012, BgL_arg3451z00_1013); } 
BgL_arg3441z00_1008 = 
MAKE_PAIR(BgL_arg3446z00_1010, BNIL); } 
{ /* ./Coerce/convert.scm 251 */
obj_t BgL_arg3465z00_1017;
{ /* ./Coerce/convert.scm 251 */
obj_t BgL_arg3469z00_1019;obj_t BgL_arg3470z00_1020;
BgL_arg3469z00_1019 = 
CNST_TABLE_REF(((long)1)); 
{ /* ./Coerce/convert.scm 252 */
obj_t BgL_arg3473z00_1021;obj_t BgL_arg3474z00_1022;
{ /* ./Coerce/convert.scm 252 */
obj_t BgL_arg3477z00_1023;
{ /* ./Coerce/convert.scm 252 */
obj_t BgL_arg3481z00_1025;obj_t BgL_arg3482z00_1026;
{ /* ./Coerce/convert.scm 252 */
obj_t BgL_arg3485z00_1027;
{ /* ./Coerce/convert.scm 252 */
obj_t BgL_list3488z00_1028;
{ /* ./Coerce/convert.scm 252 */
obj_t BgL_arg3490z00_1029;
{ /* ./Coerce/convert.scm 252 */
obj_t BgL_auxz00_1953;
BgL_auxz00_1953 = 
CNST_TABLE_REF(((long)2)); 
BgL_arg3490z00_1029 = 
MAKE_PAIR(BgL_auxz00_1953, BNIL); } 
BgL_list3488z00_1028 = 
MAKE_PAIR(BgL_aux2z00_979, BgL_arg3490z00_1029); } 
BgL_arg3485z00_1027 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list3488z00_1028); } 
BgL_arg3481z00_1025 = 
BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(BgL_arg3485z00_1027); } 
BgL_arg3482z00_1026 = 
MAKE_PAIR(BUNSPEC, BNIL); 
BgL_arg3477z00_1023 = 
MAKE_PAIR(BgL_arg3481z00_1025, BgL_arg3482z00_1026); } 
BgL_arg3473z00_1021 = 
MAKE_PAIR(BgL_arg3477z00_1023, BNIL); } 
{ /* ./Coerce/convert.scm 253 */
obj_t BgL_arg3495z00_1030;
{ /* ./Coerce/convert.scm 253 */
obj_t BgL_arg3499z00_1032;obj_t BgL_arg3500z00_1033;
BgL_arg3499z00_1032 = 
CNST_TABLE_REF(((long)12)); 
{ /* ./Coerce/convert.scm 253 */
obj_t BgL_arg3503z00_1034;obj_t BgL_arg3504z00_1035;
{ /* ./Coerce/convert.scm 253 */
obj_t BgL_arg3507z00_1036;
BgL_arg3507z00_1036 = 
MAKE_PAIR(BgL_aux2z00_979, BNIL); 
BgL_arg3503z00_1034 = 
MAKE_PAIR(BgL_checkzd2opzd2_67, BgL_arg3507z00_1036); } 
{ /* ./Coerce/convert.scm 255 */
obj_t BgL_arg3511z00_1037;
{ /* ./Coerce/convert.scm 255 */
obj_t BgL_arg3514z00_1038;
{ /* ./Coerce/convert.scm 255 */
obj_t BgL_arg3518z00_1040;
BgL_arg3518z00_1040 = 
(((BgL_typez00_bglt)CREF(BgL_toz00_66))->BgL_idz00); 
BgL_arg3514z00_1038 = 
BGl_runtimezd2typezd2errorz00zzcoerce_convertz00(BgL_locz00_980, BgL_arg3518z00_1040, BgL_auxz00_978); } 
BgL_arg3511z00_1037 = 
MAKE_PAIR(BgL_arg3514z00_1038, BNIL); } 
BgL_arg3504z00_1035 = 
MAKE_PAIR(BgL_auxz00_978, BgL_arg3511z00_1037); } 
BgL_arg3500z00_1033 = 
MAKE_PAIR(BgL_arg3503z00_1034, BgL_arg3504z00_1035); } 
BgL_arg3495z00_1030 = 
MAKE_PAIR(BgL_arg3499z00_1032, BgL_arg3500z00_1033); } 
BgL_arg3474z00_1022 = 
MAKE_PAIR(BgL_arg3495z00_1030, BNIL); } 
BgL_arg3470z00_1020 = 
MAKE_PAIR(BgL_arg3473z00_1021, BgL_arg3474z00_1022); } 
BgL_arg3465z00_1017 = 
MAKE_PAIR(BgL_arg3469z00_1019, BgL_arg3470z00_1020); } 
BgL_arg3442z00_1009 = 
MAKE_PAIR(BgL_arg3465z00_1017, BNIL); } 
BgL_arg3438z00_1007 = 
MAKE_PAIR(BgL_arg3441z00_1008, BgL_arg3442z00_1009); } 
BgL_arg3434z00_1005 = 
MAKE_PAIR(BgL_arg3437z00_1006, BgL_arg3438z00_1007); } 
BgL_lnodez00_981 = 
BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00(BgL_arg3434z00_1005, BgL_locz00_980); } 
{ /* ./Coerce/convert.scm 248 */

BGl_lvtypezd2nodez12zc0zzast_lvtypez00(BgL_lnodez00_981); 
{ /* ./Coerce/convert.scm 258 */
obj_t BgL_varz00_982;
{ /* ./Coerce/convert.scm 258 */
obj_t BgL_auxz00_1979;
{ /* ./Coerce/convert.scm 258 */
obj_t BgL_auxz00_1980;
{ /* ./Coerce/convert.scm 258 */
BgL_letzd2varzd2_bglt BgL_obj2486z00_1583;
BgL_obj2486z00_1583 = 
(BgL_letzd2varzd2_bglt)(BgL_lnodez00_981); 
BgL_auxz00_1980 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_obj2486z00_1583))->BgL_bindingsz00); } 
BgL_auxz00_1979 = 
CAR(BgL_auxz00_1980); } 
BgL_varz00_982 = 
CAR(BgL_auxz00_1979); } 
{ /* ./Coerce/convert.scm 258 */
obj_t BgL_coercezd2appzd2_983;
{ /* ./Coerce/convert.scm 261 */
BgL_varz00_bglt BgL_arg3418z00_999;
{ /* ./Coerce/convert.scm 261 */
obj_t BgL_arg3422z00_1000;BgL_typez00_bglt BgL_arg3423z00_1001;obj_t BgL_arg3424z00_1002;
BgL_arg3422z00_1000 = BgL_locz00_980; 
BgL_arg3423z00_1001 = BgL_fromz00_65; 
BgL_arg3424z00_1002 = BgL_varz00_982; 
BgL_arg3418z00_999 = 
BGl_makezd2varzd2zzast_nodez00(BgL_arg3422z00_1000, BgL_arg3423z00_1001, 
(BgL_variablez00_bglt)(BgL_arg3424z00_1002)); } 
BgL_coercezd2appzd2_983 = 
BGl_dozd2convertzd2zzcoerce_convertz00(BgL_coercezd2opzd2_68, 
(obj_t)(BgL_arg3418z00_999), BgL_fromz00_65); } 
{ /* ./Coerce/convert.scm 259 */
BgL_nodez00_bglt BgL_condnz00_984;
BgL_condnz00_984 = 
BGl_skipzd2letzd2varz00zzcoerce_convertz00(BgL_lnodez00_981); 
{ /* ./Coerce/convert.scm 265 */

{ /* ./Coerce/convert.scm 267 */
BgL_variablez00_bglt BgL_obj1099z00_1586;BgL_typez00_bglt BgL_val1098z00_1587;
BgL_obj1099z00_1586 = 
(BgL_variablez00_bglt)(BgL_varz00_982); 
BgL_val1098z00_1587 = BgL_fromz00_65; 
((((BgL_variablez00_bglt)CREF(BgL_obj1099z00_1586))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1098z00_1587), BUNSPEC); } 
{ /* ./Coerce/convert.scm 269 */
obj_t BgL_arg3382z00_985;
{ /* ./Coerce/convert.scm 269 */
obj_t BgL_auxz00_1992;
{ /* ./Coerce/convert.scm 269 */
BgL_letzd2varzd2_bglt BgL_obj2486z00_1588;
BgL_obj2486z00_1588 = 
(BgL_letzd2varzd2_bglt)(BgL_lnodez00_981); 
BgL_auxz00_1992 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_obj2486z00_1588))->BgL_bindingsz00); } 
BgL_arg3382z00_985 = 
CAR(BgL_auxz00_1992); } 
SET_CDR(BgL_arg3382z00_985, BgL_nodez00_69); } 
{ /* ./Coerce/convert.scm 270 */
obj_t BgL_binding2z00_987;
{ /* ./Coerce/convert.scm 270 */
obj_t BgL_auxz00_1997;
{ /* ./Coerce/convert.scm 270 */
BgL_letzd2varzd2_bglt BgL_obj2486z00_1593;
{ /* ./Coerce/convert.scm 270 */
BgL_nodez00_bglt BgL_auxz00_1998;
{ /* ./Coerce/convert.scm 270 */
BgL_letzd2varzd2_bglt BgL_obj2489z00_1592;
BgL_obj2489z00_1592 = 
(BgL_letzd2varzd2_bglt)(BgL_lnodez00_981); 
BgL_auxz00_1998 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_obj2489z00_1592))->BgL_bodyz00); } 
BgL_obj2486z00_1593 = 
(BgL_letzd2varzd2_bglt)(BgL_auxz00_1998); } 
BgL_auxz00_1997 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_obj2486z00_1593))->BgL_bindingsz00); } 
BgL_binding2z00_987 = 
CAR(BgL_auxz00_1997); } 
{ /* ./Coerce/convert.scm 272 */
BgL_castz00_bglt BgL_arg3389z00_988;
{ /* ./Coerce/convert.scm 272 */
obj_t BgL_arg3392z00_989;obj_t BgL_arg3393z00_990;BgL_varz00_bglt BgL_arg3394z00_991;
BgL_arg3392z00_989 = BgL_locz00_980; 
BgL_arg3393z00_990 = BGl_za2objza2z00zztype_cachez00; 
{ /* ./Coerce/convert.scm 275 */
obj_t BgL_arg3397z00_992;BgL_typez00_bglt BgL_arg3398z00_993;obj_t BgL_arg3399z00_994;
BgL_arg3397z00_992 = BgL_locz00_980; 
BgL_arg3398z00_993 = BgL_fromz00_65; 
BgL_arg3399z00_994 = BgL_varz00_982; 
BgL_arg3394z00_991 = 
BGl_makezd2varzd2zzast_nodez00(BgL_arg3397z00_992, BgL_arg3398z00_993, 
(BgL_variablez00_bglt)(BgL_arg3399z00_994)); } 
BgL_arg3389z00_988 = 
BGl_makezd2castzd2zzast_nodez00(BgL_arg3392z00_989, 
(BgL_typez00_bglt)(BgL_arg3393z00_990), 
(BgL_nodez00_bglt)(BgL_arg3394z00_991)); } 
{ /* ./Coerce/convert.scm 271 */
obj_t BgL_objz00_1596;
BgL_objz00_1596 = 
(obj_t)(BgL_arg3389z00_988); 
SET_CDR(BgL_binding2z00_987, BgL_objz00_1596); } } } 
{ /* ./Coerce/convert.scm 278 */
BgL_conditionalz00_bglt BgL_obj2337z00_1597;BgL_nodez00_bglt BgL_val2336z00_1598;
BgL_obj2337z00_1597 = 
(BgL_conditionalz00_bglt)(BgL_condnz00_984); 
BgL_val2336z00_1598 = 
(BgL_nodez00_bglt)(BgL_coercezd2appzd2_983); 
((((BgL_conditionalz00_bglt)CREF(BgL_obj2337z00_1597))->BgL_truez00) = ((BgL_nodez00_bglt)BgL_val2336z00_1598), BUNSPEC); } 
BGl_za2unsafezd2typeza2zd2zzengine_paramz00 = BTRUE; 
{ /* ./Coerce/convert.scm 281 */
BgL_nodez00_bglt BgL_arg3410z00_997;
{ /* ./Coerce/convert.scm 281 */
BgL_nodez00_bglt BgL_arg3413z00_998;
{ /* ./Coerce/convert.scm 281 */
BgL_conditionalz00_bglt BgL_obj2338z00_1599;
BgL_obj2338z00_1599 = 
(BgL_conditionalz00_bglt)(BgL_condnz00_984); 
BgL_arg3413z00_998 = 
(((BgL_conditionalz00_bglt)CREF(BgL_obj2338z00_1599))->BgL_falsez00); } 
BgL_arg3410z00_997 = 
BGl_coercez12z12zzcoerce_coercez00(BgL_arg3413z00_998, BUNSPEC, BgL_fromz00_65); } 
{ /* ./Coerce/convert.scm 280 */
BgL_conditionalz00_bglt BgL_obj2340z00_1600;BgL_nodez00_bglt BgL_val2339z00_1601;
BgL_obj2340z00_1600 = 
(BgL_conditionalz00_bglt)(BgL_condnz00_984); 
BgL_val2339z00_1601 = BgL_arg3410z00_997; 
((((BgL_conditionalz00_bglt)CREF(BgL_obj2340z00_1600))->BgL_falsez00) = ((BgL_nodez00_bglt)BgL_val2339z00_1601), BUNSPEC); } } 
BGl_za2unsafezd2typeza2zd2zzengine_paramz00 = BFALSE; 
return 
(obj_t)(BgL_lnodez00_981);} } } } } } } } } } } 
}



/* do-convert */
obj_t BGl_dozd2convertzd2zzcoerce_convertz00(obj_t BgL_coercezd2opzd2_70, obj_t BgL_nodez00_71, BgL_typez00_bglt BgL_fromz00_72)
{ AN_OBJECT;
{ /* ./Coerce/convert.scm 290 */
{ /* ./Coerce/convert.scm 293 */
bool_t BgL_test3527z00_1042;
BgL_test3527z00_1042 = 
NULLP(BgL_coercezd2opzd2_70); 
if(BgL_test3527z00_1042)
{ /* ./Coerce/convert.scm 293 */
return BgL_nodez00_71;}  else 
{ /* ./Coerce/convert.scm 295 */
BgL_nodez00_bglt BgL_nnodez00_1043;
{ /* ./Coerce/convert.scm 295 */
obj_t BgL_arg3574z00_1062;obj_t BgL_arg3575z00_1063;
{ /* ./Coerce/convert.scm 295 */
obj_t BgL_arg3578z00_1064;
BgL_arg3578z00_1064 = 
MAKE_PAIR(BUNSPEC, BNIL); 
BgL_arg3574z00_1062 = 
MAKE_PAIR(BgL_coercezd2opzd2_70, BgL_arg3578z00_1064); } 
{ /* ./Coerce/convert.scm 296 */
BgL_nodez00_bglt BgL_obj1560z00_1603;
BgL_obj1560z00_1603 = 
(BgL_nodez00_bglt)(BgL_nodez00_71); 
BgL_arg3575z00_1063 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1560z00_1603))->BgL_locz00); } 
BgL_nnodez00_1043 = 
BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00(BgL_arg3574z00_1062, BgL_arg3575z00_1063); } 
{ /* ./Coerce/convert.scm 295 */

{ /* ./Coerce/convert.scm 305 */
BgL_nodez00_bglt BgL_obj1563z00_1604;BgL_typez00_bglt BgL_val1562z00_1605;
BgL_obj1563z00_1604 = 
(BgL_nodez00_bglt)(BgL_nodez00_71); 
BgL_val1562z00_1605 = BgL_fromz00_72; 
((((BgL_nodez00_bglt)CREF(BgL_obj1563z00_1604))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1562z00_1605), BUNSPEC); } 
{ /* ./Coerce/convert.scm 308 */
bool_t BgL_test3529z00_1044;
{ /* ./Coerce/convert.scm 308 */
obj_t BgL_obj1746z00_1606;
BgL_obj1746z00_1606 = 
(obj_t)(BgL_nnodez00_1043); 
BgL_test3529z00_1044 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1746z00_1606, BGl_appz00zzast_nodez00); } 
if(BgL_test3529z00_1044)
{ /* ./Coerce/convert.scm 308 */
{ /* ./Coerce/convert.scm 309 */
obj_t BgL_arg3531z00_1045;
{ /* ./Coerce/convert.scm 309 */
obj_t BgL_list3534z00_1046;
BgL_list3534z00_1046 = 
MAKE_PAIR(BgL_nodez00_71, BNIL); 
BgL_arg3531z00_1045 = BgL_list3534z00_1046; } 
{ /* ./Coerce/convert.scm 309 */
BgL_appz00_bglt BgL_obj1724z00_1609;obj_t BgL_val1723z00_1610;
BgL_obj1724z00_1609 = 
(BgL_appz00_bglt)(BgL_nnodez00_1043); 
BgL_val1723z00_1610 = BgL_arg3531z00_1045; 
((((BgL_appz00_bglt)CREF(BgL_obj1724z00_1609))->BgL_argsz00) = ((obj_t)BgL_val1723z00_1610), BUNSPEC); } } 
return 
(obj_t)(BgL_nnodez00_1043);}  else 
{ /* ./Coerce/convert.scm 311 */
bool_t BgL_test3536z00_1047;
{ /* ./Coerce/convert.scm 311 */
obj_t BgL_obj2519z00_1611;
BgL_obj2519z00_1611 = 
(obj_t)(BgL_nnodez00_1043); 
BgL_test3536z00_1047 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj2519z00_1611, BGl_letzd2varzd2zzast_nodez00); } 
if(BgL_test3536z00_1047)
{ /* ./Coerce/convert.scm 311 */
{ /* ./Coerce/convert.scm 312 */
obj_t BgL_bdgsz00_1048;
{ /* ./Coerce/convert.scm 312 */
BgL_letzd2varzd2_bglt BgL_obj2486z00_1612;
BgL_obj2486z00_1612 = 
(BgL_letzd2varzd2_bglt)(BgL_nnodez00_1043); 
BgL_bdgsz00_1048 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_obj2486z00_1612))->BgL_bindingsz00); } 
{ /* ./Coerce/convert.scm 313 */
bool_t BgL_test3537z00_1049;
if(
NULLP(BgL_bdgsz00_1048))
{ /* ./Coerce/convert.scm 313 */
BgL_test3537z00_1049 = ((bool_t)1); }  else 
{ /* ./Coerce/convert.scm 313 */
bool_t BgL_testz00_2043;
{ /* ./Coerce/convert.scm 313 */
obj_t BgL_auxz00_2044;
BgL_auxz00_2044 = 
CDR(BgL_bdgsz00_1048); 
BgL_testz00_2043 = 
NULLP(BgL_auxz00_2044); } 
if(BgL_testz00_2043)
{ /* ./Coerce/convert.scm 313 */
BgL_test3537z00_1049 = ((bool_t)0); }  else 
{ /* ./Coerce/convert.scm 313 */
BgL_test3537z00_1049 = ((bool_t)1); } } 
if(BgL_test3537z00_1049)
{ /* ./Coerce/convert.scm 314 */
obj_t BgL_arg3543z00_1052;
BgL_arg3543z00_1052 = 
BGl_shapez00zztools_shapez00(BgL_coercezd2opzd2_70); 
return 
BGl_internalzd2errorzd2zztools_errorz00(BGl_string4062z00zzcoerce_convertz00, BGl_string4063z00zzcoerce_convertz00, BgL_arg3543z00_1052);}  else 
{ /* ./Coerce/convert.scm 313 */
{ /* ./Coerce/convert.scm 318 */
obj_t BgL_arg3547z00_1053;
{ /* ./Coerce/convert.scm 318 */
obj_t BgL_auxz00_2050;
BgL_auxz00_2050 = 
CAR(BgL_bdgsz00_1048); 
BgL_arg3547z00_1053 = 
CAR(BgL_auxz00_2050); } 
{ /* ./Coerce/convert.scm 318 */
BgL_variablez00_bglt BgL_obj1099z00_1618;BgL_typez00_bglt BgL_val1098z00_1619;
BgL_obj1099z00_1618 = 
(BgL_variablez00_bglt)(BgL_arg3547z00_1053); 
BgL_val1098z00_1619 = BgL_fromz00_72; 
((((BgL_variablez00_bglt)CREF(BgL_obj1099z00_1618))->BgL_typez00) = ((BgL_typez00_bglt)BgL_val1098z00_1619), BUNSPEC); } } 
{ /* ./Coerce/convert.scm 319 */
obj_t BgL_arg3554z00_1055;
BgL_arg3554z00_1055 = 
CAR(BgL_bdgsz00_1048); 
SET_CDR(BgL_arg3554z00_1055, BgL_nodez00_71); } 
return 
(obj_t)(BgL_nnodez00_1043);} } } }  else 
{ /* ./Coerce/convert.scm 311 */
{ /* ./Coerce/convert.scm 322 */
obj_t BgL_arg3568z00_1061;
BgL_arg3568z00_1061 = 
BGl_shapez00zztools_shapez00(BgL_coercezd2opzd2_70); 
return 
BGl_internalzd2errorzd2zztools_errorz00(BGl_string4062z00zzcoerce_convertz00, BGl_string4063z00zzcoerce_convertz00, BgL_arg3568z00_1061);} } } } } } } } 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzcoerce_convertz00()
{ AN_OBJECT;
{ /* ./Coerce/convert.scm 16 */
return BUNSPEC;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzcoerce_convertz00()
{ AN_OBJECT;
{ /* ./Coerce/convert.scm 16 */
BGl_modulezd2initializa7ationz75zztools_tracez00(((long)59211), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zztools_shapez00(((long)30833), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zztools_locationz00(((long)32118), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zztools_errorz00(((long)25566), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zztools_miscz00(((long)64117), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zztype_cachez00(((long)25848), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zztype_coercionz00(((long)58912), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zztype_envz00(((long)25186), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zztype_typeofz00(((long)852), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zzast_sexpz00(((long)15705), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zzast_identz00(((long)51504), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zzast_lvtypez00(((long)41586), "coerce_convert"); 
BGl_modulezd2initializa7ationz75zzobject_classz00(((long)30791), "coerce_convert"); 
return 
BGl_modulezd2initializa7ationz75zzcoerce_coercez00(((long)56611), "coerce_convert");} 
}

