/*===========================================================================*/
/*   (Coerce/apply.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/apply.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;


static obj_t BGl_methodzd2initzd2zzcoerce_applyz00();
extern obj_t BGl_za2pairzd2nilza2zd2zztype_cachez00;
BGL_IMPORT obj_t open_input_string(obj_t);
extern BgL_letzd2varzd2_bglt BGl_makezd2letzd2varz00zzast_nodez00(obj_t, BgL_typez00_bglt, obj_t, obj_t, obj_t, BgL_nodez00_bglt, bool_t);
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_za2unsafezd2arityza2zd2zzengine_paramz00;
extern obj_t BGl_za2compilerzd2debugza2zd2zzengine_paramz00;
extern obj_t BGl_za2unsafezd2typeza2zd2zzengine_paramz00;
BGL_IMPORT obj_t BGl_gensymz00zz__r4_symbols_6_4z00;
extern obj_t BGl_za2procedureza2z00zztype_cachez00;
extern obj_t BGl_varz00zzast_nodez00;
extern obj_t BGl_za2bdbzd2debugza2zd2zzengine_paramz00;
static obj_t BGl_cnstzd2initzd2zzcoerce_applyz00();
extern BgL_nodez00_bglt BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00(obj_t, obj_t);
static obj_t BGl_coercez12zd2appzd2ly2668z12zzcoerce_applyz00(obj_t, obj_t, obj_t, obj_t);
static obj_t BGl_importedzd2moduleszd2initz00zzcoerce_applyz00();
static BgL_nodez00_bglt BGl_makezd2errorzd2nodez00zzcoerce_applyz00(obj_t, 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();
BGL_IMPORT obj_t BGl_addzd2methodz12zc0zz__objectz00(obj_t, obj_t, obj_t);
static obj_t BGl_toplevelzd2initzd2zzcoerce_applyz00();
extern obj_t BGl_appzd2lyzd2zzast_nodez00;
extern BgL_nodez00_bglt BGl_convertz12z12zzcoerce_convertz00(BgL_nodez00_bglt, BgL_typez00_bglt, BgL_typez00_bglt);
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzcoerce_applyz00(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_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_sexpz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_localz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcoerce_coercez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcoerce_convertz00(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 *);
extern obj_t BGl_za2intza2z00zztype_cachez00;
extern obj_t BGl_shapez00zztools_shapez00(obj_t);
extern BgL_localz00_bglt BGl_makezd2localzd2svarz00zzast_localz00(obj_t, BgL_typez00_bglt);
BGL_IMPORT obj_t BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(obj_t);
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_applyz00 = BUNSPEC;
static obj_t BGl_libraryzd2moduleszd2initz00zzcoerce_applyz00();
static obj_t __cnst[ 16 ] ;


DEFINE_STRING( BGl_string3397z00zzcoerce_applyz00, BgL_bgl_string3397za700za7za7coerce_applyza7003424z00, "correct-arity? if ::int let len length val fun _ failure quote __error error/location @ begin location ", 103 );
DEFINE_STRING( BGl_string3395z00zzcoerce_applyz00, BgL_bgl_string3395za700za7za7coerce_applyza7003425z00, "Wrong number of arguments", 25 );
DEFINE_STATIC_PROCEDURE( BGl_proc3396z00zzcoerce_applyz00, BgL_bgl_coerceza712za7d2appza7d2ly2668za712za7za7coerce_applyza7003426za7, BGl_coercez12zd2appzd2ly2668z12zzcoerce_applyz00, 0L, 3 );
extern obj_t BGl_coercez12zd2envzc0zzcoerce_coercez00;



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzcoerce_applyz00(long BgL_checksumz00_1262, char * BgL_fromz00_1263)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzcoerce_applyz00))
{ 
BGl_requirezd2initializa7ationz75zzcoerce_applyz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzcoerce_applyz00(); 
BGl_cnstzd2initzd2zzcoerce_applyz00(); 
BGl_importedzd2moduleszd2initz00zzcoerce_applyz00(); 
BGl_methodzd2initzd2zzcoerce_applyz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzcoerce_applyz00()
{ AN_OBJECT;
{ /* ./Coerce/apply.scm 15 */
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "coerce_apply"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "coerce_apply"); 
BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(((long)0), "coerce_apply"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzcoerce_applyz00()
{ AN_OBJECT;
{ /* ./Coerce/apply.scm 15 */
{ /* ./Coerce/apply.scm 15 */
obj_t BgL_cportz00_1255;
BgL_cportz00_1255 = 
open_input_string(BGl_string3397z00zzcoerce_applyz00); 
{ 
long BgL_iz00_1256;
BgL_iz00_1256 = ((long)15); 
BgL_loopz00_1257:
{ /* ./Coerce/apply.scm 15 */
bool_t BgL_test3399z00_1258;
BgL_test3399z00_1258 = 
(BgL_iz00_1256==((long)-1)); 
if(BgL_test3399z00_1258)
{ /* ./Coerce/apply.scm 15 */
return BUNSPEC;}  else 
{ /* ./Coerce/apply.scm 15 */
{ /* ./Coerce/apply.scm 15 */
obj_t BgL_arg3401z00_1259;
{ /* ./Coerce/apply.scm 15 */
obj_t BgL_list3404z00_1260;
BgL_list3404z00_1260 = 
MAKE_PAIR(BgL_cportz00_1255, BNIL); 
BgL_arg3401z00_1259 = 
BGl_readz00zz__readerz00(BgL_list3404z00_1260); } 
{ /* ./Coerce/apply.scm 15 */
int BgL_auxz00_1279;
BgL_auxz00_1279 = 
(int)(BgL_iz00_1256); 
CNST_TABLE_SET(BgL_auxz00_1279, BgL_arg3401z00_1259); } } 
{ /* ./Coerce/apply.scm 15 */
int BgL_auxz00_1261;
{ /* ./Coerce/apply.scm 15 */
long BgL_auxz00_1282;
BgL_auxz00_1282 = 
(BgL_iz00_1256-((long)1)); 
BgL_auxz00_1261 = 
(int)(BgL_auxz00_1282); } 
{ 
long BgL_iz00_1285;
BgL_iz00_1285 = 
(long)(BgL_auxz00_1261); 
BgL_iz00_1256 = BgL_iz00_1285; 
goto BgL_loopz00_1257;} } } } } } } 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzcoerce_applyz00()
{ AN_OBJECT;
{ /* ./Coerce/apply.scm 15 */
return BUNSPEC;} 
}



/* make-error-node */
BgL_nodez00_bglt BGl_makezd2errorzd2nodez00zzcoerce_applyz00(obj_t BgL_errorzd2msgzd2_18, obj_t BgL_locz00_19, obj_t BgL_callerz00_20, obj_t BgL_toz00_21)
{ AN_OBJECT;
{ /* ./Coerce/apply.scm 92 */
{ /* ./Coerce/apply.scm 93 */
obj_t BgL_utz00_689;
BgL_utz00_689 = BGl_za2unsafezd2typeza2zd2zzengine_paramz00; 
BGl_za2unsafezd2typeza2zd2zzengine_paramz00 = BTRUE; 
{ /* ./Coerce/apply.scm 95 */
BgL_nodez00_bglt BgL_nodez00_690;
{ /* ./Coerce/apply.scm 97 */
BgL_nodez00_bglt BgL_arg2703z00_691;
{ /* ./Coerce/apply.scm 97 */
obj_t BgL_arg2706z00_692;
{ /* ./Coerce/apply.scm 97 */
bool_t BgL_test2708z00_693;
{ /* ./Coerce/apply.scm 97 */
bool_t BgL_test2819z00_743;
{ /* ./Coerce/apply.scm 97 */
bool_t BgL_test2821z00_744;
{ /* ./Coerce/apply.scm 97 */
long BgL_n1z00_1203;
BgL_n1z00_1203 = 
(long)CINT(BGl_za2bdbzd2debugza2zd2zzengine_paramz00); 
BgL_test2821z00_744 = 
(BgL_n1z00_1203>((long)0)); } 
if(BgL_test2821z00_744)
{ /* ./Coerce/apply.scm 97 */
BgL_test2819z00_743 = ((bool_t)1); }  else 
{ /* ./Coerce/apply.scm 98 */
long BgL_n1z00_1205;
BgL_n1z00_1205 = 
(long)CINT(BGl_za2compilerzd2debugza2zd2zzengine_paramz00); 
BgL_test2819z00_743 = 
(BgL_n1z00_1205>((long)0)); } } 
if(BgL_test2819z00_743)
{ /* ./Coerce/apply.scm 97 */
if(
STRUCTP(BgL_locz00_19))
{ /* ./Coerce/apply.scm 99 */
obj_t BgL_auxz00_1297;obj_t BgL_auxz00_1295;
BgL_auxz00_1297 = 
CNST_TABLE_REF(((long)0)); 
BgL_auxz00_1295 = 
STRUCT_KEY(BgL_locz00_19); 
BgL_test2708z00_693 = 
(BgL_auxz00_1295==BgL_auxz00_1297); }  else 
{ /* ./Coerce/apply.scm 99 */
BgL_test2708z00_693 = ((bool_t)0); } }  else 
{ /* ./Coerce/apply.scm 97 */
BgL_test2708z00_693 = ((bool_t)0); } } 
if(BgL_test2708z00_693)
{ /* ./Coerce/apply.scm 107 */
obj_t BgL_arg2710z00_694;obj_t BgL_arg2711z00_695;
BgL_arg2710z00_694 = 
CNST_TABLE_REF(((long)1)); 
{ /* ./Coerce/apply.scm 101 */
obj_t BgL_arg2714z00_696;obj_t BgL_arg2715z00_697;
{ /* ./Coerce/apply.scm 101 */
obj_t BgL_arg2718z00_698;obj_t BgL_arg2719z00_699;
{ /* ./Coerce/apply.scm 101 */
obj_t BgL_arg2722z00_700;obj_t BgL_arg2723z00_701;
BgL_arg2722z00_700 = 
CNST_TABLE_REF(((long)2)); 
{ /* ./Coerce/apply.scm 101 */
obj_t BgL_arg2726z00_702;obj_t BgL_arg2727z00_703;
BgL_arg2726z00_702 = 
CNST_TABLE_REF(((long)3)); 
{ /* ./Coerce/apply.scm 101 */
obj_t BgL_auxz00_1304;
BgL_auxz00_1304 = 
CNST_TABLE_REF(((long)4)); 
BgL_arg2727z00_703 = 
MAKE_PAIR(BgL_auxz00_1304, BNIL); } 
BgL_arg2723z00_701 = 
MAKE_PAIR(BgL_arg2726z00_702, BgL_arg2727z00_703); } 
BgL_arg2718z00_698 = 
MAKE_PAIR(BgL_arg2722z00_700, BgL_arg2723z00_701); } 
{ /* ./Coerce/apply.scm 102 */
obj_t BgL_arg2731z00_704;obj_t BgL_arg2732z00_705;
{ /* ./Coerce/apply.scm 102 */
obj_t BgL_arg2735z00_706;obj_t BgL_arg2736z00_707;
BgL_arg2735z00_706 = 
CNST_TABLE_REF(((long)5)); 
BgL_arg2736z00_707 = 
BGl_currentzd2functionzd2zztools_errorz00(); 
{ /* ./Coerce/apply.scm 102 */
obj_t BgL_list2738z00_708;
{ /* ./Coerce/apply.scm 102 */
obj_t BgL_arg2740z00_709;
BgL_arg2740z00_709 = 
MAKE_PAIR(BgL_arg2736z00_707, BNIL); 
BgL_list2738z00_708 = 
MAKE_PAIR(BgL_arg2735z00_706, BgL_arg2740z00_709); } 
BgL_arg2731z00_704 = BgL_list2738z00_708; } } 
{ /* ./Coerce/apply.scm 101 */
obj_t BgL_arg2746z00_711;
{ /* ./Coerce/apply.scm 105 */
obj_t BgL_arg2749z00_712;
{ /* ./Coerce/apply.scm 105 */
obj_t BgL_arg2752z00_713;obj_t BgL_arg2753z00_714;
BgL_arg2752z00_713 = 
BGl_locationzd2fullzd2fnamez00zztools_locationz00(BgL_locz00_19); 
{ /* ./Coerce/apply.scm 106 */
obj_t BgL_arg2757z00_715;
{ /* ./Coerce/apply.scm 106 */
int BgL_auxz00_1314;
BgL_auxz00_1314 = 
(int)(((long)1)); 
BgL_arg2757z00_715 = 
STRUCT_REF(BgL_locz00_19, BgL_auxz00_1314); } 
BgL_arg2753z00_714 = 
MAKE_PAIR(BgL_arg2757z00_715, BNIL); } 
BgL_arg2749z00_712 = 
MAKE_PAIR(BgL_arg2752z00_713, BgL_arg2753z00_714); } 
BgL_arg2746z00_711 = 
MAKE_PAIR(BgL_errorzd2msgzd2_18, BgL_arg2749z00_712); } 
BgL_arg2732z00_705 = 
MAKE_PAIR(BGl_string3395z00zzcoerce_applyz00, BgL_arg2746z00_711); } 
BgL_arg2719z00_699 = 
MAKE_PAIR(BgL_arg2731z00_704, BgL_arg2732z00_705); } 
BgL_arg2714z00_696 = 
MAKE_PAIR(BgL_arg2718z00_698, BgL_arg2719z00_699); } 
{ /* ./Coerce/apply.scm 107 */
obj_t BgL_arg2762z00_717;
{ /* ./Coerce/apply.scm 107 */
obj_t BgL_arg2766z00_719;obj_t BgL_arg2767z00_720;
BgL_arg2766z00_719 = 
CNST_TABLE_REF(((long)6)); 
{ /* ./Coerce/apply.scm 107 */
obj_t BgL_arg2770z00_721;obj_t BgL_arg2771z00_722;
{ /* ./Coerce/apply.scm 107 */
obj_t BgL_arg2774z00_723;obj_t BgL_arg2775z00_724;
BgL_arg2774z00_723 = 
CNST_TABLE_REF(((long)5)); 
{ /* ./Coerce/apply.scm 107 */
obj_t BgL_auxz00_1325;
BgL_auxz00_1325 = 
CNST_TABLE_REF(((long)7)); 
BgL_arg2775z00_724 = 
MAKE_PAIR(BgL_auxz00_1325, BNIL); } 
BgL_arg2770z00_721 = 
MAKE_PAIR(BgL_arg2774z00_723, BgL_arg2775z00_724); } 
{ /* ./Coerce/apply.scm 107 */
obj_t BgL_arg2779z00_725;obj_t BgL_arg2780z00_726;
{ /* ./Coerce/apply.scm 107 */
obj_t BgL_arg2783z00_727;obj_t BgL_arg2784z00_728;
BgL_arg2783z00_727 = 
CNST_TABLE_REF(((long)5)); 
{ /* ./Coerce/apply.scm 107 */
obj_t BgL_auxz00_1330;
BgL_auxz00_1330 = 
CNST_TABLE_REF(((long)7)); 
BgL_arg2784z00_728 = 
MAKE_PAIR(BgL_auxz00_1330, BNIL); } 
BgL_arg2779z00_725 = 
MAKE_PAIR(BgL_arg2783z00_727, BgL_arg2784z00_728); } 
{ /* ./Coerce/apply.scm 107 */
obj_t BgL_arg2788z00_729;
{ /* ./Coerce/apply.scm 107 */
obj_t BgL_arg2792z00_731;obj_t BgL_arg2793z00_732;
BgL_arg2792z00_731 = 
CNST_TABLE_REF(((long)5)); 
{ /* ./Coerce/apply.scm 107 */
obj_t BgL_auxz00_1335;
BgL_auxz00_1335 = 
CNST_TABLE_REF(((long)7)); 
BgL_arg2793z00_732 = 
MAKE_PAIR(BgL_auxz00_1335, BNIL); } 
BgL_arg2788z00_729 = 
MAKE_PAIR(BgL_arg2792z00_731, BgL_arg2793z00_732); } 
BgL_arg2780z00_726 = 
MAKE_PAIR(BgL_arg2788z00_729, BNIL); } 
BgL_arg2771z00_722 = 
MAKE_PAIR(BgL_arg2779z00_725, BgL_arg2780z00_726); } 
BgL_arg2767z00_720 = 
MAKE_PAIR(BgL_arg2770z00_721, BgL_arg2771z00_722); } 
BgL_arg2762z00_717 = 
MAKE_PAIR(BgL_arg2766z00_719, BgL_arg2767z00_720); } 
BgL_arg2715z00_697 = 
MAKE_PAIR(BgL_arg2762z00_717, BNIL); } 
BgL_arg2711z00_695 = 
MAKE_PAIR(BgL_arg2714z00_696, BgL_arg2715z00_697); } 
BgL_arg2706z00_692 = 
MAKE_PAIR(BgL_arg2710z00_694, BgL_arg2711z00_695); }  else 
{ /* ./Coerce/apply.scm 110 */
obj_t BgL_arg2797z00_733;obj_t BgL_arg2798z00_734;
BgL_arg2797z00_733 = 
CNST_TABLE_REF(((long)6)); 
{ /* ./Coerce/apply.scm 108 */
obj_t BgL_arg2801z00_735;obj_t BgL_arg2802z00_736;
{ /* ./Coerce/apply.scm 108 */
obj_t BgL_arg2805z00_737;obj_t BgL_arg2806z00_738;
BgL_arg2805z00_737 = 
CNST_TABLE_REF(((long)5)); 
BgL_arg2806z00_738 = 
BGl_currentzd2functionzd2zztools_errorz00(); 
{ /* ./Coerce/apply.scm 108 */
obj_t BgL_list2808z00_739;
{ /* ./Coerce/apply.scm 108 */
obj_t BgL_arg2810z00_740;
BgL_arg2810z00_740 = 
MAKE_PAIR(BgL_arg2806z00_738, BNIL); 
BgL_list2808z00_739 = 
MAKE_PAIR(BgL_arg2805z00_737, BgL_arg2810z00_740); } 
BgL_arg2801z00_735 = BgL_list2808z00_739; } } 
{ /* ./Coerce/apply.scm 108 */
obj_t BgL_arg2816z00_742;
BgL_arg2816z00_742 = 
MAKE_PAIR(BgL_errorzd2msgzd2_18, BNIL); 
BgL_arg2802z00_736 = 
MAKE_PAIR(BGl_string3395z00zzcoerce_applyz00, BgL_arg2816z00_742); } 
BgL_arg2798z00_734 = 
MAKE_PAIR(BgL_arg2801z00_735, BgL_arg2802z00_736); } 
BgL_arg2706z00_692 = 
MAKE_PAIR(BgL_arg2797z00_733, BgL_arg2798z00_734); } } 
BgL_arg2703z00_691 = 
BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00(BgL_arg2706z00_692, BgL_locz00_19); } 
BgL_nodez00_690 = 
BGl_coercez12z12zzcoerce_coercez00(BgL_arg2703z00_691, BgL_callerz00_20, 
(BgL_typez00_bglt)(BgL_toz00_21)); } 
BGl_za2unsafezd2typeza2zd2zzengine_paramz00 = BgL_utz00_689; 
return BgL_nodez00_690;} } } 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzcoerce_applyz00()
{ AN_OBJECT;
{ /* ./Coerce/apply.scm 15 */
return 
BGl_addzd2methodz12zc0zz__objectz00(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_appzd2lyzd2zzast_nodez00, BGl_proc3396z00zzcoerce_applyz00);} 
}



/* coerce!-app-ly2668 */
obj_t BGl_coercez12zd2appzd2ly2668z12zzcoerce_applyz00(obj_t BgL_envz00_1246, obj_t BgL_nodez00_1247, obj_t BgL_callerz00_1248, obj_t BgL_toz00_1249)
{ AN_OBJECT;
{ /* ./Coerce/apply.scm 34 */
{ 
BgL_appzd2lyzd2_bglt BgL_nodez00_1103;obj_t BgL_callerz00_1104;obj_t BgL_toz00_1105;
BgL_nodez00_1103 = 
(BgL_appzd2lyzd2_bglt)(BgL_nodez00_1247); 
BgL_callerz00_1104 = BgL_callerz00_1248; 
BgL_toz00_1105 = BgL_toz00_1249; 
{ /* ./Coerce/apply.scm 36 */
obj_t BgL_errorzd2msgzd2_1108;
{ /* ./Coerce/apply.scm 36 */
obj_t BgL_arg3298z00_1179;obj_t BgL_arg3299z00_1180;
BgL_arg3298z00_1179 = 
CNST_TABLE_REF(((long)5)); 
BgL_arg3299z00_1180 = 
BGl_shapez00zztools_shapez00(
(obj_t)(BgL_nodez00_1103)); 
{ /* ./Coerce/apply.scm 36 */
obj_t BgL_list3301z00_1181;
{ /* ./Coerce/apply.scm 36 */
obj_t BgL_arg3303z00_1182;
BgL_arg3303z00_1182 = 
MAKE_PAIR(BgL_arg3299z00_1180, BNIL); 
BgL_list3301z00_1181 = 
MAKE_PAIR(BgL_arg3298z00_1179, BgL_arg3303z00_1182); } 
BgL_errorzd2msgzd2_1108 = BgL_list3301z00_1181; } } 
{ /* ./Coerce/apply.scm 38 */
BgL_nodez00_bglt BgL_arg3143z00_1109;
{ /* ./Coerce/apply.scm 38 */
BgL_nodez00_bglt BgL_arg3146z00_1110;
BgL_arg3146z00_1110 = 
(((BgL_appzd2lyzd2_bglt)CREF(BgL_nodez00_1103))->BgL_argz00); 
BgL_arg3143z00_1109 = 
BGl_coercez12z12zzcoerce_coercez00(BgL_arg3146z00_1110, BgL_callerz00_1104, 
(BgL_typez00_bglt)(BGl_za2objza2z00zztype_cachez00)); } 
{ /* ./Coerce/apply.scm 38 */
BgL_appzd2lyzd2_bglt BgL_obj1756z00_1224;BgL_nodez00_bglt BgL_val1755z00_1225;
BgL_obj1756z00_1224 = BgL_nodez00_1103; 
BgL_val1755z00_1225 = BgL_arg3143z00_1109; 
((((BgL_appzd2lyzd2_bglt)CREF(BgL_obj1756z00_1224))->BgL_argz00) = ((BgL_nodez00_bglt)BgL_val1755z00_1225), BUNSPEC); } } 
{ /* ./Coerce/apply.scm 40 */
BgL_nodez00_bglt BgL_czd2funzd2_1111;
{ /* ./Coerce/apply.scm 40 */
BgL_nodez00_bglt BgL_arg3294z00_1178;
BgL_arg3294z00_1178 = 
(((BgL_appzd2lyzd2_bglt)CREF(BgL_nodez00_1103))->BgL_funz00); 
BgL_czd2funzd2_1111 = 
BGl_coercez12z12zzcoerce_coercez00(BgL_arg3294z00_1178, BgL_callerz00_1104, 
(BgL_typez00_bglt)(BGl_za2procedureza2z00zztype_cachez00)); } 
if(
CBOOL(BGl_za2unsafezd2arityza2zd2zzengine_paramz00))
{ /* ./Coerce/apply.scm 42 */
{ /* ./Coerce/apply.scm 44 */
bool_t BgL_test3149z00_1112;
{ /* ./Coerce/apply.scm 44 */
obj_t BgL_obj1640z00_1227;
BgL_obj1640z00_1227 = 
(obj_t)(BgL_czd2funzd2_1111); 
BgL_test3149z00_1112 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1640z00_1227, BGl_varz00zzast_nodez00); } 
if(BgL_test3149z00_1112)
{ /* ./Coerce/apply.scm 44 */
{ /* ./Coerce/apply.scm 46 */
BgL_appzd2lyzd2_bglt BgL_obj1753z00_1228;BgL_nodez00_bglt BgL_val1752z00_1229;
BgL_obj1753z00_1228 = BgL_nodez00_1103; 
BgL_val1752z00_1229 = BgL_czd2funzd2_1111; 
((((BgL_appzd2lyzd2_bglt)CREF(BgL_obj1753z00_1228))->BgL_funz00) = ((BgL_nodez00_bglt)BgL_val1752z00_1229), BUNSPEC); } 
{ /* ./Coerce/apply.scm 47 */
BgL_nodez00_bglt BgL_auxz00_1377;
BgL_auxz00_1377 = 
BGl_convertz12z12zzcoerce_convertz00(
(BgL_nodez00_bglt)(BgL_nodez00_1103), 
(BgL_typez00_bglt)(BGl_za2objza2z00zztype_cachez00), 
(BgL_typez00_bglt)(BgL_toz00_1105)); 
return 
(obj_t)(BgL_auxz00_1377);} }  else 
{ /* ./Coerce/apply.scm 48 */
BgL_localz00_bglt BgL_funz00_1113;
BgL_funz00_1113 = 
BGl_makezd2localzd2svarz00zzast_localz00(
CNST_TABLE_REF(((long)8)), 
(BgL_typez00_bglt)(BGl_za2procedureza2z00zztype_cachez00)); 
{ /* ./Coerce/apply.scm 50 */
BgL_varz00_bglt BgL_arg3153z00_1114;
{ /* ./Coerce/apply.scm 50 */
obj_t BgL_arg3156z00_1115;obj_t BgL_arg3157z00_1116;BgL_localz00_bglt BgL_arg3158z00_1117;
BgL_arg3156z00_1115 = 
(((BgL_nodez00_bglt)CREF(BgL_czd2funzd2_1111))->BgL_locz00); 
BgL_arg3157z00_1116 = BGl_za2procedureza2z00zztype_cachez00; 
BgL_arg3158z00_1117 = BgL_funz00_1113; 
BgL_arg3153z00_1114 = 
BGl_makezd2varzd2zzast_nodez00(BgL_arg3156z00_1115, 
(BgL_typez00_bglt)(BgL_arg3157z00_1116), 
(BgL_variablez00_bglt)(BgL_arg3158z00_1117)); } 
{ /* ./Coerce/apply.scm 49 */
BgL_appzd2lyzd2_bglt BgL_obj1753z00_1231;BgL_nodez00_bglt BgL_val1752z00_1232;
BgL_obj1753z00_1231 = BgL_nodez00_1103; 
BgL_val1752z00_1232 = 
(BgL_nodez00_bglt)(BgL_arg3153z00_1114); 
((((BgL_appzd2lyzd2_bglt)CREF(BgL_obj1753z00_1231))->BgL_funz00) = ((BgL_nodez00_bglt)BgL_val1752z00_1232), BUNSPEC); } } 
{ /* ./Coerce/apply.scm 54 */
obj_t BgL_arg3162z00_1118;BgL_typez00_bglt BgL_arg3163z00_1119;obj_t BgL_arg3165z00_1121;BgL_nodez00_bglt BgL_arg3166z00_1122;
{ /* ./Coerce/apply.scm 54 */
BgL_nodez00_bglt BgL_obj1560z00_1233;
BgL_obj1560z00_1233 = 
(BgL_nodez00_bglt)(BgL_nodez00_1103); 
BgL_arg3162z00_1118 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1560z00_1233))->BgL_locz00); } 
{ /* ./Coerce/apply.scm 55 */
BgL_nodez00_bglt BgL_obj1561z00_1234;
BgL_obj1561z00_1234 = 
(BgL_nodez00_bglt)(BgL_nodez00_1103); 
BgL_arg3163z00_1119 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1561z00_1234))->BgL_typez00); } 
{ /* ./Coerce/apply.scm 56 */
obj_t BgL_arg3171z00_1123;
{ /* ./Coerce/apply.scm 56 */
obj_t BgL_auxz00_1398;obj_t BgL_auxz00_1396;
BgL_auxz00_1398 = 
(obj_t)(BgL_czd2funzd2_1111); 
BgL_auxz00_1396 = 
(obj_t)(BgL_funz00_1113); 
BgL_arg3171z00_1123 = 
MAKE_PAIR(BgL_auxz00_1396, BgL_auxz00_1398); } 
{ /* ./Coerce/apply.scm 56 */
obj_t BgL_list3173z00_1124;
BgL_list3173z00_1124 = 
MAKE_PAIR(BgL_arg3171z00_1123, BNIL); 
BgL_arg3165z00_1121 = BgL_list3173z00_1124; } } 
BgL_arg3166z00_1122 = 
BGl_convertz12z12zzcoerce_convertz00(
(BgL_nodez00_bglt)(BgL_nodez00_1103), 
(BgL_typez00_bglt)(BGl_za2objza2z00zztype_cachez00), 
(BgL_typez00_bglt)(BgL_toz00_1105)); 
{ /* ./Coerce/apply.scm 53 */
BgL_letzd2varzd2_bglt BgL_auxz00_1406;
BgL_auxz00_1406 = 
BGl_makezd2letzd2varz00zzast_nodez00(BgL_arg3162z00_1118, BgL_arg3163z00_1119, BUNSPEC, 
BINT(((long)-1)), BgL_arg3165z00_1121, BgL_arg3166z00_1122, ((bool_t)1)); 
return 
(obj_t)(BgL_auxz00_1406);} } } } }  else 
{ /* ./Coerce/apply.scm 58 */
BgL_localz00_bglt BgL_funz00_1125;
BgL_funz00_1125 = 
BGl_makezd2localzd2svarz00zzast_localz00(
CNST_TABLE_REF(((long)8)), 
(BgL_typez00_bglt)(BGl_za2procedureza2z00zztype_cachez00)); 
{ /* ./Coerce/apply.scm 58 */
BgL_localz00_bglt BgL_valz00_1126;
BgL_valz00_1126 = 
BGl_makezd2localzd2svarz00zzast_localz00(
CNST_TABLE_REF(((long)9)), 
(BgL_typez00_bglt)(BGl_za2pairzd2nilza2zd2zztype_cachez00)); 
{ /* ./Coerce/apply.scm 59 */
obj_t BgL_locz00_1127;
{ /* ./Coerce/apply.scm 60 */
BgL_nodez00_bglt BgL_obj1560z00_1237;
BgL_obj1560z00_1237 = 
(BgL_nodez00_bglt)(BgL_nodez00_1103); 
BgL_locz00_1127 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1560z00_1237))->BgL_locz00); } 
{ /* ./Coerce/apply.scm 60 */
BgL_nodez00_bglt BgL_lvalz00_1128;
{ /* ./Coerce/apply.scm 61 */
obj_t BgL_arg3283z00_1175;
{ /* ./Coerce/apply.scm 61 */
obj_t BgL_arg3286z00_1176;obj_t BgL_arg3287z00_1177;
BgL_arg3286z00_1176 = 
CNST_TABLE_REF(((long)10)); 
{ /* ./Coerce/apply.scm 61 */
obj_t BgL_auxz00_1419;
BgL_auxz00_1419 = 
(obj_t)(BgL_valz00_1126); 
BgL_arg3287z00_1177 = 
MAKE_PAIR(BgL_auxz00_1419, BNIL); } 
BgL_arg3283z00_1175 = 
MAKE_PAIR(BgL_arg3286z00_1176, BgL_arg3287z00_1177); } 
BgL_lvalz00_1128 = 
BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00(BgL_arg3283z00_1175, BgL_locz00_1127); } 
{ /* ./Coerce/apply.scm 61 */
obj_t BgL_lenz00_1129;
BgL_lenz00_1129 = 
PROCEDURE_ENTRY(BGl_gensymz00zz__r4_symbols_6_4z00)(BGl_gensymz00zz__r4_symbols_6_4z00, 
CNST_TABLE_REF(((long)11)), BEOA); 
{ /* ./Coerce/apply.scm 62 */
BgL_letzd2varzd2_bglt BgL_lnodez00_1130;
{ /* ./Coerce/apply.scm 64 */
obj_t BgL_arg3196z00_1139;obj_t BgL_arg3197z00_1140;obj_t BgL_arg3199z00_1142;BgL_nodez00_bglt BgL_arg3201z00_1143;
BgL_arg3196z00_1139 = BgL_locz00_1127; 
BgL_arg3197z00_1140 = BGl_za2objza2z00zztype_cachez00; 
{ /* ./Coerce/apply.scm 66 */
obj_t BgL_arg3204z00_1144;obj_t BgL_arg3205z00_1145;
{ /* ./Coerce/apply.scm 66 */
obj_t BgL_auxz00_1429;obj_t BgL_auxz00_1427;
BgL_auxz00_1429 = 
(obj_t)(BgL_czd2funzd2_1111); 
BgL_auxz00_1427 = 
(obj_t)(BgL_funz00_1125); 
BgL_arg3204z00_1144 = 
MAKE_PAIR(BgL_auxz00_1427, BgL_auxz00_1429); } 
{ /* ./Coerce/apply.scm 67 */
BgL_nodez00_bglt BgL_arg3215z00_1148;
BgL_arg3215z00_1148 = 
(((BgL_appzd2lyzd2_bglt)CREF(BgL_nodez00_1103))->BgL_argz00); 
{ /* ./Coerce/apply.scm 67 */
obj_t BgL_auxz00_1435;obj_t BgL_auxz00_1433;
BgL_auxz00_1435 = 
(obj_t)(BgL_arg3215z00_1148); 
BgL_auxz00_1433 = 
(obj_t)(BgL_valz00_1126); 
BgL_arg3205z00_1145 = 
MAKE_PAIR(BgL_auxz00_1433, BgL_auxz00_1435); } } 
{ /* ./Coerce/apply.scm 66 */
obj_t BgL_list3207z00_1146;
{ /* ./Coerce/apply.scm 66 */
obj_t BgL_arg3210z00_1147;
BgL_arg3210z00_1147 = 
MAKE_PAIR(BgL_arg3205z00_1145, BNIL); 
BgL_list3207z00_1146 = 
MAKE_PAIR(BgL_arg3204z00_1144, BgL_arg3210z00_1147); } 
BgL_arg3199z00_1142 = BgL_list3207z00_1146; } } 
{ /* ./Coerce/apply.scm 69 */
obj_t BgL_arg3219z00_1149;
{ /* ./Coerce/apply.scm 69 */
obj_t BgL_arg3222z00_1150;obj_t BgL_arg3223z00_1151;
BgL_arg3222z00_1150 = 
CNST_TABLE_REF(((long)12)); 
{ /* ./Coerce/apply.scm 69 */
obj_t BgL_arg3226z00_1152;obj_t BgL_arg3227z00_1153;
{ /* ./Coerce/apply.scm 69 */
obj_t BgL_arg3230z00_1154;
{ /* ./Coerce/apply.scm 69 */
obj_t BgL_arg3234z00_1156;obj_t BgL_arg3235z00_1157;
{ /* ./Coerce/apply.scm 69 */
obj_t BgL_list3238z00_1158;
{ /* ./Coerce/apply.scm 69 */
obj_t BgL_arg3240z00_1159;
{ /* ./Coerce/apply.scm 69 */
obj_t BgL_auxz00_1441;
BgL_auxz00_1441 = 
CNST_TABLE_REF(((long)13)); 
BgL_arg3240z00_1159 = 
MAKE_PAIR(BgL_auxz00_1441, BNIL); } 
BgL_list3238z00_1158 = 
MAKE_PAIR(BgL_lenz00_1129, BgL_arg3240z00_1159); } 
BgL_arg3234z00_1156 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list3238z00_1158); } 
{ /* ./Coerce/apply.scm 70 */
BgL_nodez00_bglt BgL_arg3245z00_1160;
BgL_arg3245z00_1160 = 
BGl_coercez12z12zzcoerce_coercez00(BgL_lvalz00_1128, BgL_callerz00_1104, 
(BgL_typez00_bglt)(BGl_za2intza2z00zztype_cachez00)); 
{ /* ./Coerce/apply.scm 69 */
obj_t BgL_auxz00_1448;
BgL_auxz00_1448 = 
(obj_t)(BgL_arg3245z00_1160); 
BgL_arg3235z00_1157 = 
MAKE_PAIR(BgL_auxz00_1448, BNIL); } } 
BgL_arg3230z00_1154 = 
MAKE_PAIR(BgL_arg3234z00_1156, BgL_arg3235z00_1157); } 
BgL_arg3226z00_1152 = 
MAKE_PAIR(BgL_arg3230z00_1154, BNIL); } 
{ /* ./Coerce/apply.scm 71 */
obj_t BgL_arg3250z00_1162;
{ /* ./Coerce/apply.scm 71 */
obj_t BgL_arg3254z00_1164;obj_t BgL_arg3255z00_1165;
BgL_arg3254z00_1164 = 
CNST_TABLE_REF(((long)14)); 
{ /* ./Coerce/apply.scm 71 */
obj_t BgL_arg3259z00_1166;obj_t BgL_arg3260z00_1167;
{ /* ./Coerce/apply.scm 71 */
obj_t BgL_arg3263z00_1168;obj_t BgL_arg3264z00_1169;
BgL_arg3263z00_1168 = 
CNST_TABLE_REF(((long)15)); 
{ /* ./Coerce/apply.scm 71 */
obj_t BgL_arg3267z00_1170;
BgL_arg3267z00_1170 = 
MAKE_PAIR(BgL_lenz00_1129, BNIL); 
{ /* ./Coerce/apply.scm 71 */
obj_t BgL_auxz00_1456;
BgL_auxz00_1456 = 
(obj_t)(BgL_funz00_1125); 
BgL_arg3264z00_1169 = 
MAKE_PAIR(BgL_auxz00_1456, BgL_arg3267z00_1170); } } 
BgL_arg3259z00_1166 = 
MAKE_PAIR(BgL_arg3263z00_1168, BgL_arg3264z00_1169); } 
{ /* ./Coerce/apply.scm 72 */
BgL_nodez00_bglt BgL_arg3272z00_1171;obj_t BgL_arg3273z00_1172;
BgL_arg3272z00_1171 = 
BGl_convertz12z12zzcoerce_convertz00(
(BgL_nodez00_bglt)(BgL_nodez00_1103), 
(BgL_typez00_bglt)(BGl_za2objza2z00zztype_cachez00), 
(BgL_typez00_bglt)(BgL_toz00_1105)); 
{ /* ./Coerce/apply.scm 73 */
BgL_nodez00_bglt BgL_arg3277z00_1173;
BgL_arg3277z00_1173 = 
BGl_makezd2errorzd2nodez00zzcoerce_applyz00(BgL_errorzd2msgzd2_1108, BgL_locz00_1127, BgL_callerz00_1104, BgL_toz00_1105); 
{ /* ./Coerce/apply.scm 71 */
obj_t BgL_auxz00_1465;
BgL_auxz00_1465 = 
(obj_t)(BgL_arg3277z00_1173); 
BgL_arg3273z00_1172 = 
MAKE_PAIR(BgL_auxz00_1465, BNIL); } } 
{ /* ./Coerce/apply.scm 71 */
obj_t BgL_auxz00_1468;
BgL_auxz00_1468 = 
(obj_t)(BgL_arg3272z00_1171); 
BgL_arg3260z00_1167 = 
MAKE_PAIR(BgL_auxz00_1468, BgL_arg3273z00_1172); } } 
BgL_arg3255z00_1165 = 
MAKE_PAIR(BgL_arg3259z00_1166, BgL_arg3260z00_1167); } 
BgL_arg3250z00_1162 = 
MAKE_PAIR(BgL_arg3254z00_1164, BgL_arg3255z00_1165); } 
BgL_arg3227z00_1153 = 
MAKE_PAIR(BgL_arg3250z00_1162, BNIL); } 
BgL_arg3223z00_1151 = 
MAKE_PAIR(BgL_arg3226z00_1152, BgL_arg3227z00_1153); } 
BgL_arg3219z00_1149 = 
MAKE_PAIR(BgL_arg3222z00_1150, BgL_arg3223z00_1151); } 
BgL_arg3201z00_1143 = 
BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00(BgL_arg3219z00_1149, BgL_locz00_1127); } 
BgL_lnodez00_1130 = 
BGl_makezd2letzd2varz00zzast_nodez00(BgL_arg3196z00_1139, 
(BgL_typez00_bglt)(BgL_arg3197z00_1140), BUNSPEC, 
BINT(((long)-1)), BgL_arg3199z00_1142, BgL_arg3201z00_1143, ((bool_t)1)); } 
{ /* ./Coerce/apply.scm 63 */

{ /* ./Coerce/apply.scm 80 */
BgL_varz00_bglt BgL_arg3180z00_1131;
{ /* ./Coerce/apply.scm 80 */
obj_t BgL_arg3183z00_1132;obj_t BgL_arg3184z00_1133;BgL_localz00_bglt BgL_arg3185z00_1134;
BgL_arg3183z00_1132 = BgL_locz00_1127; 
BgL_arg3184z00_1133 = BGl_za2procedureza2z00zztype_cachez00; 
BgL_arg3185z00_1134 = BgL_funz00_1125; 
BgL_arg3180z00_1131 = 
BGl_makezd2varzd2zzast_nodez00(BgL_arg3183z00_1132, 
(BgL_typez00_bglt)(BgL_arg3184z00_1133), 
(BgL_variablez00_bglt)(BgL_arg3185z00_1134)); } 
{ /* ./Coerce/apply.scm 79 */
BgL_appzd2lyzd2_bglt BgL_obj1753z00_1241;BgL_nodez00_bglt BgL_val1752z00_1242;
BgL_obj1753z00_1241 = BgL_nodez00_1103; 
BgL_val1752z00_1242 = 
(BgL_nodez00_bglt)(BgL_arg3180z00_1131); 
((((BgL_appzd2lyzd2_bglt)CREF(BgL_obj1753z00_1241))->BgL_funz00) = ((BgL_nodez00_bglt)BgL_val1752z00_1242), BUNSPEC); } } 
{ /* ./Coerce/apply.scm 84 */
BgL_varz00_bglt BgL_arg3188z00_1135;
{ /* ./Coerce/apply.scm 84 */
obj_t BgL_arg3191z00_1136;obj_t BgL_arg3192z00_1137;BgL_localz00_bglt BgL_arg3193z00_1138;
BgL_arg3191z00_1136 = BgL_locz00_1127; 
BgL_arg3192z00_1137 = BGl_za2objza2z00zztype_cachez00; 
BgL_arg3193z00_1138 = BgL_valz00_1126; 
BgL_arg3188z00_1135 = 
BGl_makezd2varzd2zzast_nodez00(BgL_arg3191z00_1136, 
(BgL_typez00_bglt)(BgL_arg3192z00_1137), 
(BgL_variablez00_bglt)(BgL_arg3193z00_1138)); } 
{ /* ./Coerce/apply.scm 83 */
BgL_appzd2lyzd2_bglt BgL_obj1756z00_1243;BgL_nodez00_bglt BgL_val1755z00_1244;
BgL_obj1756z00_1243 = BgL_nodez00_1103; 
BgL_val1755z00_1244 = 
(BgL_nodez00_bglt)(BgL_arg3188z00_1135); 
((((BgL_appzd2lyzd2_bglt)CREF(BgL_obj1756z00_1243))->BgL_argz00) = ((BgL_nodez00_bglt)BgL_val1755z00_1244), BUNSPEC); } } 
return 
(obj_t)(BgL_lnodez00_1130);} } } } } } } } } } } 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzcoerce_applyz00()
{ AN_OBJECT;
{ /* ./Coerce/apply.scm 15 */
BGl_modulezd2initializa7ationz75zztools_tracez00(((long)59211), "coerce_apply"); 
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "coerce_apply"); 
BGl_modulezd2initializa7ationz75zztools_shapez00(((long)30833), "coerce_apply"); 
BGl_modulezd2initializa7ationz75zztools_locationz00(((long)32118), "coerce_apply"); 
BGl_modulezd2initializa7ationz75zztools_errorz00(((long)25566), "coerce_apply"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "coerce_apply"); 
BGl_modulezd2initializa7ationz75zztype_cachez00(((long)25848), "coerce_apply"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "coerce_apply"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "coerce_apply"); 
BGl_modulezd2initializa7ationz75zzast_sexpz00(((long)15705), "coerce_apply"); 
BGl_modulezd2initializa7ationz75zzast_localz00(((long)28959), "coerce_apply"); 
BGl_modulezd2initializa7ationz75zzcoerce_coercez00(((long)56611), "coerce_apply"); 
return 
BGl_modulezd2initializa7ationz75zzcoerce_convertz00(((long)19914), "coerce_apply");} 
}

