/*===========================================================================*/
/*   (Coerce/funcall.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/funcall.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_funcallz00();
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);
extern obj_t BGl_za2unsafezd2arityza2zd2zzengine_paramz00;
extern BgL_atomz00_bglt BGl_makezd2atomzd2zzast_nodez00(obj_t, BgL_typez00_bglt, obj_t);
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_za2bdbzd2debugza2zd2zzengine_paramz00;
static obj_t BGl_cnstzd2initzd2zzcoerce_funcallz00();
static obj_t BGl_coercez12zd2funcall2666zc0zzcoerce_funcallz00(obj_t, obj_t, obj_t, obj_t);
extern obj_t BGl_funcallz00zzast_nodez00;
extern BgL_nodez00_bglt BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00(obj_t, obj_t);
static obj_t BGl_coercezd2funcallzd2argsz12z12zzcoerce_funcallz00(BgL_funcallz00_bglt, obj_t, obj_t);
static obj_t BGl_importedzd2moduleszd2initz00zzcoerce_funcallz00();
static BgL_nodez00_bglt BGl_makezd2errorzd2nodez00zzcoerce_funcallz00(BgL_localz00_bglt, 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_funcallz00();
extern BgL_nodez00_bglt BGl_convertz12z12zzcoerce_convertz00(BgL_nodez00_bglt, BgL_typez00_bglt, BgL_typez00_bglt);
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzcoerce_funcallz00(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_errorz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_locationz00(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_modulezd2initializa7ationz75zzast_identz00(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_pairs_and_lists_6_3z00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(long, char *);
BGL_IMPORT long bgl_list_length(obj_t);
BGL_IMPORT obj_t string_append(obj_t, obj_t);
extern obj_t BGl_za2intza2z00zztype_cachez00;
extern obj_t BGl_shapez00zztools_shapez00(obj_t);
BGL_IMPORT obj_t BGl_memqz00zz__r4_pairs_and_lists_6_3z00(obj_t, 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_funcallz00 = BUNSPEC;
static obj_t BGl_libraryzd2moduleszd2initz00zzcoerce_funcallz00();
extern obj_t BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(obj_t);
static obj_t __cnst[ 17 ] ;


DEFINE_STRING( BGl_string3390z00zzcoerce_funcallz00, BgL_bgl_string3390za700za7za7coerce_funcallza7003418z00, "correct-arity? if let ::int len fun (light elight) dummy __eoa__ _ quote failure __error error/location @ begin location ", 121 );
DEFINE_STRING( BGl_string3388z00zzcoerce_funcallz00, BgL_bgl_string3388za700za7za7coerce_funcallza7003419z00, ":Wrong number of arguments", 26 );
DEFINE_STATIC_PROCEDURE( BGl_proc3389z00zzcoerce_funcallz00, BgL_bgl_coerceza712za7d2funcall2666za7c0za7za7coerce_funcallza7003420z00, BGl_coercez12zd2funcall2666zc0zzcoerce_funcallz00, 0L, 3 );
extern obj_t BGl_coercez12zd2envzc0zzcoerce_coercez00;



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzcoerce_funcallz00(long BgL_checksumz00_1271, char * BgL_fromz00_1272)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzcoerce_funcallz00))
{ 
BGl_requirezd2initializa7ationz75zzcoerce_funcallz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzcoerce_funcallz00(); 
BGl_cnstzd2initzd2zzcoerce_funcallz00(); 
BGl_importedzd2moduleszd2initz00zzcoerce_funcallz00(); 
BGl_methodzd2initzd2zzcoerce_funcallz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzcoerce_funcallz00()
{ AN_OBJECT;
{ /* ./Coerce/funcall.scm 15 */
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "coerce_funcall"); 
BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(((long)0), "coerce_funcall"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "coerce_funcall"); 
BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(((long)0), "coerce_funcall"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzcoerce_funcallz00()
{ AN_OBJECT;
{ /* ./Coerce/funcall.scm 15 */
{ /* ./Coerce/funcall.scm 15 */
obj_t BgL_cportz00_1264;
BgL_cportz00_1264 = 
open_input_string(BGl_string3390z00zzcoerce_funcallz00); 
{ 
long BgL_iz00_1265;
BgL_iz00_1265 = ((long)16); 
BgL_loopz00_1266:
{ /* ./Coerce/funcall.scm 15 */
bool_t BgL_test3392z00_1267;
BgL_test3392z00_1267 = 
(BgL_iz00_1265==((long)-1)); 
if(BgL_test3392z00_1267)
{ /* ./Coerce/funcall.scm 15 */
return BUNSPEC;}  else 
{ /* ./Coerce/funcall.scm 15 */
{ /* ./Coerce/funcall.scm 15 */
obj_t BgL_arg3394z00_1268;
{ /* ./Coerce/funcall.scm 15 */
obj_t BgL_list3397z00_1269;
BgL_list3397z00_1269 = 
MAKE_PAIR(BgL_cportz00_1264, BNIL); 
BgL_arg3394z00_1268 = 
BGl_readz00zz__readerz00(BgL_list3397z00_1269); } 
{ /* ./Coerce/funcall.scm 15 */
int BgL_auxz00_1289;
BgL_auxz00_1289 = 
(int)(BgL_iz00_1265); 
CNST_TABLE_SET(BgL_auxz00_1289, BgL_arg3394z00_1268); } } 
{ /* ./Coerce/funcall.scm 15 */
int BgL_auxz00_1270;
{ /* ./Coerce/funcall.scm 15 */
long BgL_auxz00_1292;
BgL_auxz00_1292 = 
(BgL_iz00_1265-((long)1)); 
BgL_auxz00_1270 = 
(int)(BgL_auxz00_1292); } 
{ 
long BgL_iz00_1295;
BgL_iz00_1295 = 
(long)(BgL_auxz00_1270); 
BgL_iz00_1265 = BgL_iz00_1295; 
goto BgL_loopz00_1266;} } } } } } } 
}



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



/* make-error-node */
BgL_nodez00_bglt BGl_makezd2errorzd2nodez00zzcoerce_funcallz00(BgL_localz00_bglt BgL_funz00_18, obj_t BgL_errorzd2msgzd2_19, obj_t BgL_locz00_20, obj_t BgL_callerz00_21, obj_t BgL_toz00_22)
{ AN_OBJECT;
{ /* ./Coerce/funcall.scm 83 */
{ /* ./Coerce/funcall.scm 84 */
obj_t BgL_utz00_693;
BgL_utz00_693 = BGl_za2unsafezd2typeza2zd2zzengine_paramz00; 
BGl_za2unsafezd2typeza2zd2zzengine_paramz00 = BTRUE; 
{ /* ./Coerce/funcall.scm 86 */
BgL_nodez00_bglt BgL_nodez00_694;
{ /* ./Coerce/funcall.scm 88 */
BgL_nodez00_bglt BgL_arg2701z00_695;
{ /* ./Coerce/funcall.scm 88 */
obj_t BgL_arg2704z00_696;
{ /* ./Coerce/funcall.scm 88 */
bool_t BgL_test2706z00_697;
{ /* ./Coerce/funcall.scm 88 */
bool_t BgL_test2811z00_743;
{ /* ./Coerce/funcall.scm 88 */
bool_t BgL_test2813z00_744;
{ /* ./Coerce/funcall.scm 88 */
long BgL_n1z00_1206;
BgL_n1z00_1206 = 
(long)CINT(BGl_za2compilerzd2debugza2zd2zzengine_paramz00); 
BgL_test2813z00_744 = 
(BgL_n1z00_1206>((long)0)); } 
if(BgL_test2813z00_744)
{ /* ./Coerce/funcall.scm 88 */
BgL_test2811z00_743 = ((bool_t)1); }  else 
{ /* ./Coerce/funcall.scm 89 */
long BgL_n1z00_1208;
BgL_n1z00_1208 = 
(long)CINT(BGl_za2bdbzd2debugza2zd2zzengine_paramz00); 
BgL_test2811z00_743 = 
(BgL_n1z00_1208>((long)0)); } } 
if(BgL_test2811z00_743)
{ /* ./Coerce/funcall.scm 88 */
if(
STRUCTP(BgL_locz00_20))
{ /* ./Coerce/funcall.scm 90 */
obj_t BgL_auxz00_1307;obj_t BgL_auxz00_1305;
BgL_auxz00_1307 = 
CNST_TABLE_REF(((long)0)); 
BgL_auxz00_1305 = 
STRUCT_KEY(BgL_locz00_20); 
BgL_test2706z00_697 = 
(BgL_auxz00_1305==BgL_auxz00_1307); }  else 
{ /* ./Coerce/funcall.scm 90 */
BgL_test2706z00_697 = ((bool_t)0); } }  else 
{ /* ./Coerce/funcall.scm 88 */
BgL_test2706z00_697 = ((bool_t)0); } } 
if(BgL_test2706z00_697)
{ /* ./Coerce/funcall.scm 100 */
obj_t BgL_arg2708z00_698;obj_t BgL_arg2709z00_699;
BgL_arg2708z00_698 = 
CNST_TABLE_REF(((long)1)); 
{ /* ./Coerce/funcall.scm 92 */
obj_t BgL_arg2712z00_700;obj_t BgL_arg2713z00_701;
{ /* ./Coerce/funcall.scm 92 */
obj_t BgL_arg2716z00_702;obj_t BgL_arg2717z00_703;
{ /* ./Coerce/funcall.scm 92 */
obj_t BgL_arg2720z00_704;obj_t BgL_arg2721z00_705;
BgL_arg2720z00_704 = 
CNST_TABLE_REF(((long)2)); 
{ /* ./Coerce/funcall.scm 92 */
obj_t BgL_arg2724z00_706;obj_t BgL_arg2725z00_707;
BgL_arg2724z00_706 = 
CNST_TABLE_REF(((long)3)); 
{ /* ./Coerce/funcall.scm 92 */
obj_t BgL_auxz00_1314;
BgL_auxz00_1314 = 
CNST_TABLE_REF(((long)4)); 
BgL_arg2725z00_707 = 
MAKE_PAIR(BgL_auxz00_1314, BNIL); } 
BgL_arg2721z00_705 = 
MAKE_PAIR(BgL_arg2724z00_706, BgL_arg2725z00_707); } 
BgL_arg2716z00_702 = 
MAKE_PAIR(BgL_arg2720z00_704, BgL_arg2721z00_705); } 
{ /* ./Coerce/funcall.scm 94 */
obj_t BgL_arg2729z00_708;obj_t BgL_arg2730z00_709;
{ /* ./Coerce/funcall.scm 94 */
obj_t BgL_arg2733z00_710;
{ /* ./Coerce/funcall.scm 94 */
obj_t BgL_arg2737z00_712;
BgL_arg2737z00_712 = 
BGl_currentzd2functionzd2zztools_errorz00(); 
BgL_arg2733z00_710 = 
SYMBOL_TO_STRING(BgL_arg2737z00_712); } 
BgL_arg2729z00_708 = 
string_append(BgL_arg2733z00_710, BGl_string3388z00zzcoerce_funcallz00); } 
{ /* ./Coerce/funcall.scm 98 */
obj_t BgL_arg2741z00_713;
{ /* ./Coerce/funcall.scm 98 */
obj_t BgL_arg2744z00_714;
{ /* ./Coerce/funcall.scm 98 */
obj_t BgL_arg2747z00_715;obj_t BgL_arg2748z00_716;
BgL_arg2747z00_715 = 
BGl_locationzd2fullzd2fnamez00zztools_locationz00(BgL_locz00_20); 
{ /* ./Coerce/funcall.scm 99 */
obj_t BgL_arg2752z00_717;
{ /* ./Coerce/funcall.scm 99 */
int BgL_auxz00_1323;
BgL_auxz00_1323 = 
(int)(((long)1)); 
BgL_arg2752z00_717 = 
STRUCT_REF(BgL_locz00_20, BgL_auxz00_1323); } 
BgL_arg2748z00_716 = 
MAKE_PAIR(BgL_arg2752z00_717, BNIL); } 
BgL_arg2744z00_714 = 
MAKE_PAIR(BgL_arg2747z00_715, BgL_arg2748z00_716); } 
{ /* ./Coerce/funcall.scm 92 */
obj_t BgL_auxz00_1328;
BgL_auxz00_1328 = 
(obj_t)(BgL_funz00_18); 
BgL_arg2741z00_713 = 
MAKE_PAIR(BgL_auxz00_1328, BgL_arg2744z00_714); } } 
BgL_arg2730z00_709 = 
MAKE_PAIR(BgL_errorzd2msgzd2_19, BgL_arg2741z00_713); } 
BgL_arg2717z00_703 = 
MAKE_PAIR(BgL_arg2729z00_708, BgL_arg2730z00_709); } 
BgL_arg2712z00_700 = 
MAKE_PAIR(BgL_arg2716z00_702, BgL_arg2717z00_703); } 
{ /* ./Coerce/funcall.scm 100 */
obj_t BgL_arg2757z00_719;
{ /* ./Coerce/funcall.scm 100 */
obj_t BgL_arg2761z00_721;obj_t BgL_arg2762z00_722;
BgL_arg2761z00_721 = 
CNST_TABLE_REF(((long)5)); 
{ /* ./Coerce/funcall.scm 100 */
obj_t BgL_arg2765z00_723;obj_t BgL_arg2766z00_724;
{ /* ./Coerce/funcall.scm 100 */
obj_t BgL_arg2769z00_725;obj_t BgL_arg2770z00_726;
BgL_arg2769z00_725 = 
CNST_TABLE_REF(((long)6)); 
{ /* ./Coerce/funcall.scm 100 */
obj_t BgL_auxz00_1336;
BgL_auxz00_1336 = 
CNST_TABLE_REF(((long)7)); 
BgL_arg2770z00_726 = 
MAKE_PAIR(BgL_auxz00_1336, BNIL); } 
BgL_arg2765z00_723 = 
MAKE_PAIR(BgL_arg2769z00_725, BgL_arg2770z00_726); } 
{ /* ./Coerce/funcall.scm 100 */
obj_t BgL_arg2774z00_727;obj_t BgL_arg2775z00_728;
{ /* ./Coerce/funcall.scm 100 */
obj_t BgL_arg2778z00_729;obj_t BgL_arg2779z00_730;
BgL_arg2778z00_729 = 
CNST_TABLE_REF(((long)6)); 
{ /* ./Coerce/funcall.scm 100 */
obj_t BgL_auxz00_1341;
BgL_auxz00_1341 = 
CNST_TABLE_REF(((long)7)); 
BgL_arg2779z00_730 = 
MAKE_PAIR(BgL_auxz00_1341, BNIL); } 
BgL_arg2774z00_727 = 
MAKE_PAIR(BgL_arg2778z00_729, BgL_arg2779z00_730); } 
{ /* ./Coerce/funcall.scm 100 */
obj_t BgL_arg2783z00_731;
{ /* ./Coerce/funcall.scm 100 */
obj_t BgL_arg2787z00_733;obj_t BgL_arg2788z00_734;
BgL_arg2787z00_733 = 
CNST_TABLE_REF(((long)6)); 
{ /* ./Coerce/funcall.scm 100 */
obj_t BgL_auxz00_1346;
BgL_auxz00_1346 = 
CNST_TABLE_REF(((long)7)); 
BgL_arg2788z00_734 = 
MAKE_PAIR(BgL_auxz00_1346, BNIL); } 
BgL_arg2783z00_731 = 
MAKE_PAIR(BgL_arg2787z00_733, BgL_arg2788z00_734); } 
BgL_arg2775z00_728 = 
MAKE_PAIR(BgL_arg2783z00_731, BNIL); } 
BgL_arg2766z00_724 = 
MAKE_PAIR(BgL_arg2774z00_727, BgL_arg2775z00_728); } 
BgL_arg2762z00_722 = 
MAKE_PAIR(BgL_arg2765z00_723, BgL_arg2766z00_724); } 
BgL_arg2757z00_719 = 
MAKE_PAIR(BgL_arg2761z00_721, BgL_arg2762z00_722); } 
BgL_arg2713z00_701 = 
MAKE_PAIR(BgL_arg2757z00_719, BNIL); } 
BgL_arg2709z00_699 = 
MAKE_PAIR(BgL_arg2712z00_700, BgL_arg2713z00_701); } 
BgL_arg2704z00_696 = 
MAKE_PAIR(BgL_arg2708z00_698, BgL_arg2709z00_699); }  else 
{ /* ./Coerce/funcall.scm 105 */
obj_t BgL_arg2792z00_735;obj_t BgL_arg2793z00_736;
BgL_arg2792z00_735 = 
CNST_TABLE_REF(((long)5)); 
{ /* ./Coerce/funcall.scm 102 */
obj_t BgL_arg2796z00_737;obj_t BgL_arg2797z00_738;
{ /* ./Coerce/funcall.scm 102 */
obj_t BgL_arg2800z00_739;
{ /* ./Coerce/funcall.scm 102 */
obj_t BgL_arg2804z00_741;
BgL_arg2804z00_741 = 
BGl_currentzd2functionzd2zztools_errorz00(); 
BgL_arg2800z00_739 = 
SYMBOL_TO_STRING(BgL_arg2804z00_741); } 
BgL_arg2796z00_737 = 
string_append(BgL_arg2800z00_739, BGl_string3388z00zzcoerce_funcallz00); } 
{ /* ./Coerce/funcall.scm 101 */
obj_t BgL_arg2808z00_742;
{ /* ./Coerce/funcall.scm 101 */
obj_t BgL_auxz00_1361;
BgL_auxz00_1361 = 
(obj_t)(BgL_funz00_18); 
BgL_arg2808z00_742 = 
MAKE_PAIR(BgL_auxz00_1361, BNIL); } 
BgL_arg2797z00_738 = 
MAKE_PAIR(BgL_errorzd2msgzd2_19, BgL_arg2808z00_742); } 
BgL_arg2793z00_736 = 
MAKE_PAIR(BgL_arg2796z00_737, BgL_arg2797z00_738); } 
BgL_arg2704z00_696 = 
MAKE_PAIR(BgL_arg2792z00_735, BgL_arg2793z00_736); } } 
BgL_arg2701z00_695 = 
BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00(BgL_arg2704z00_696, BgL_locz00_20); } 
BgL_nodez00_694 = 
BGl_coercez12z12zzcoerce_coercez00(BgL_arg2701z00_695, BgL_callerz00_21, 
(BgL_typez00_bglt)(BgL_toz00_22)); } 
BGl_za2unsafezd2typeza2zd2zzengine_paramz00 = BgL_utz00_693; 
return BgL_nodez00_694;} } } 
}



/* coerce-funcall-args! */
obj_t BGl_coercezd2funcallzd2argsz12z12zzcoerce_funcallz00(BgL_funcallz00_bglt BgL_nodez00_23, obj_t BgL_callerz00_24, obj_t BgL_toz00_25)
{ AN_OBJECT;
{ /* ./Coerce/funcall.scm 115 */
{ /* ./Coerce/funcall.scm 116 */
bool_t BgL_test2816z00_745;
{ /* ./Coerce/funcall.scm 116 */
obj_t BgL_auxz00_1370;
BgL_auxz00_1370 = 
(((BgL_funcallz00_bglt)CREF(BgL_nodez00_23))->BgL_argsz00); 
BgL_test2816z00_745 = 
NULLP(BgL_auxz00_1370); } 
if(BgL_test2816z00_745)
{ /* ./Coerce/funcall.scm 118 */
obj_t BgL_arg2818z00_746;
{ /* ./Coerce/funcall.scm 118 */
BgL_nodez00_bglt BgL_arg2821z00_747;
{ /* ./Coerce/funcall.scm 118 */
obj_t BgL_arg2826z00_749;obj_t BgL_arg2827z00_750;
BgL_arg2826z00_749 = 
CNST_TABLE_REF(((long)8)); 
{ /* ./Coerce/funcall.scm 119 */
BgL_nodez00_bglt BgL_obj1560z00_1224;
BgL_obj1560z00_1224 = 
(BgL_nodez00_bglt)(BgL_nodez00_23); 
BgL_arg2827z00_750 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1560z00_1224))->BgL_locz00); } 
BgL_arg2821z00_747 = 
BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00(BgL_arg2826z00_749, BgL_arg2827z00_750); } 
{ /* ./Coerce/funcall.scm 117 */
obj_t BgL_list2823z00_748;
{ /* ./Coerce/funcall.scm 117 */
obj_t BgL_auxz00_1378;
BgL_auxz00_1378 = 
(obj_t)(BgL_arg2821z00_747); 
BgL_list2823z00_748 = 
MAKE_PAIR(BgL_auxz00_1378, BNIL); } 
BgL_arg2818z00_746 = BgL_list2823z00_748; } } 
{ /* ./Coerce/funcall.scm 117 */
BgL_funcallz00_bglt BgL_obj1784z00_1227;obj_t BgL_val1783z00_1228;
BgL_obj1784z00_1227 = BgL_nodez00_23; 
BgL_val1783z00_1228 = BgL_arg2818z00_746; 
return 
((((BgL_funcallz00_bglt)CREF(BgL_obj1784z00_1227))->BgL_argsz00) = ((obj_t)BgL_val1783z00_1228), BUNSPEC);} }  else 
{ 
obj_t BgL_actualsz00_751;obj_t BgL_prevz00_752;
{ /* ./Coerce/funcall.scm 120 */
obj_t BgL_arg2831z00_754;obj_t BgL_arg2832z00_755;
BgL_arg2831z00_754 = 
(((BgL_funcallz00_bglt)CREF(BgL_nodez00_23))->BgL_argsz00); 
BgL_arg2832z00_755 = 
CNST_TABLE_REF(((long)9)); 
BgL_actualsz00_751 = BgL_arg2831z00_754; 
BgL_prevz00_752 = BgL_arg2832z00_755; 
BgL_loopz00_753:
{ /* ./Coerce/funcall.scm 122 */
bool_t BgL_test2835z00_756;
BgL_test2835z00_756 = 
NULLP(BgL_actualsz00_751); 
if(BgL_test2835z00_756)
{ /* ./Coerce/funcall.scm 124 */
obj_t BgL_arg2837z00_757;
{ /* ./Coerce/funcall.scm 124 */
BgL_nodez00_bglt BgL_arg2840z00_758;
{ /* ./Coerce/funcall.scm 124 */
obj_t BgL_arg2845z00_760;obj_t BgL_arg2846z00_761;
BgL_arg2845z00_760 = 
CNST_TABLE_REF(((long)8)); 
{ /* ./Coerce/funcall.scm 125 */
BgL_nodez00_bglt BgL_obj1560z00_1231;
BgL_obj1560z00_1231 = 
(BgL_nodez00_bglt)(BgL_nodez00_23); 
BgL_arg2846z00_761 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1560z00_1231))->BgL_locz00); } 
BgL_arg2840z00_758 = 
BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00(BgL_arg2845z00_760, BgL_arg2846z00_761); } 
{ /* ./Coerce/funcall.scm 123 */
obj_t BgL_list2842z00_759;
{ /* ./Coerce/funcall.scm 123 */
obj_t BgL_auxz00_1390;
BgL_auxz00_1390 = 
(obj_t)(BgL_arg2840z00_758); 
BgL_list2842z00_759 = 
MAKE_PAIR(BgL_auxz00_1390, BNIL); } 
BgL_arg2837z00_757 = BgL_list2842z00_759; } } 
return 
SET_CDR(BgL_prevz00_752, BgL_arg2837z00_757);}  else 
{ /* ./Coerce/funcall.scm 122 */
{ /* ./Coerce/funcall.scm 127 */
BgL_nodez00_bglt BgL_arg2850z00_762;
{ /* ./Coerce/funcall.scm 127 */
obj_t BgL_arg2853z00_763;
BgL_arg2853z00_763 = 
CAR(BgL_actualsz00_751); 
BgL_arg2850z00_762 = 
BGl_coercez12z12zzcoerce_coercez00(
(BgL_nodez00_bglt)(BgL_arg2853z00_763), BgL_callerz00_24, 
(BgL_typez00_bglt)(BGl_za2objza2z00zztype_cachez00)); } 
{ /* ./Coerce/funcall.scm 127 */
obj_t BgL_objz00_1238;
BgL_objz00_1238 = 
(obj_t)(BgL_arg2850z00_762); 
SET_CAR(BgL_actualsz00_751, BgL_objz00_1238); } } 
{ /* ./Coerce/funcall.scm 128 */
obj_t BgL_arg2857z00_764;
BgL_arg2857z00_764 = 
CDR(BgL_actualsz00_751); 
{ 
obj_t BgL_prevz00_1402;obj_t BgL_actualsz00_1401;
BgL_actualsz00_1401 = BgL_arg2857z00_764; 
BgL_prevz00_1402 = BgL_actualsz00_751; 
BgL_prevz00_752 = BgL_prevz00_1402; 
BgL_actualsz00_751 = BgL_actualsz00_1401; 
goto BgL_loopz00_753;} } } } } } } } 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzcoerce_funcallz00()
{ AN_OBJECT;
{ /* ./Coerce/funcall.scm 15 */
return 
BGl_addzd2methodz12zc0zz__objectz00(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_funcallz00zzast_nodez00, BGl_proc3389z00zzcoerce_funcallz00);} 
}



/* coerce!-funcall2666 */
obj_t BGl_coercez12zd2funcall2666zc0zzcoerce_funcallz00(obj_t BgL_envz00_1255, obj_t BgL_nodez00_1256, obj_t BgL_callerz00_1257, obj_t BgL_toz00_1258)
{ AN_OBJECT;
{ /* ./Coerce/funcall.scm 35 */
{ 
BgL_funcallz00_bglt BgL_nodez00_1124;obj_t BgL_callerz00_1125;obj_t BgL_toz00_1126;
BgL_nodez00_1124 = 
(BgL_funcallz00_bglt)(BgL_nodez00_1256); 
BgL_callerz00_1125 = BgL_callerz00_1257; 
BgL_toz00_1126 = BgL_toz00_1258; 
{ /* ./Coerce/funcall.scm 37 */
obj_t BgL_errorzd2msgzd2_1129;obj_t BgL_strengthz00_1130;
{ /* ./Coerce/funcall.scm 37 */
obj_t BgL_arg3297z00_1182;obj_t BgL_arg3298z00_1183;
BgL_arg3297z00_1182 = 
CNST_TABLE_REF(((long)6)); 
BgL_arg3298z00_1183 = 
BGl_shapez00zztools_shapez00(
(obj_t)(BgL_nodez00_1124)); 
{ /* ./Coerce/funcall.scm 37 */
obj_t BgL_list3300z00_1184;
{ /* ./Coerce/funcall.scm 37 */
obj_t BgL_arg3302z00_1185;
BgL_arg3302z00_1185 = 
MAKE_PAIR(BgL_arg3298z00_1183, BNIL); 
BgL_list3300z00_1184 = 
MAKE_PAIR(BgL_arg3297z00_1182, BgL_arg3302z00_1185); } 
BgL_errorzd2msgzd2_1129 = BgL_list3300z00_1184; } } 
BgL_strengthz00_1130 = 
(((BgL_funcallz00_bglt)CREF(BgL_nodez00_1124))->BgL_strengthz00); 
BGl_coercezd2funcallzd2argsz12z12zzcoerce_funcallz00(BgL_nodez00_1124, BgL_callerz00_1125, BgL_toz00_1126); 
{ /* ./Coerce/funcall.scm 41 */
bool_t BgL_test3185z00_1131;
{ /* ./Coerce/funcall.scm 41 */
obj_t BgL_auxz00_1411;
BgL_auxz00_1411 = 
BGl_memqz00zz__r4_pairs_and_lists_6_3z00(BgL_strengthz00_1130, 
CNST_TABLE_REF(((long)10))); 
BgL_test3185z00_1131 = 
CBOOL(BgL_auxz00_1411); } 
if(BgL_test3185z00_1131)
{ /* ./Coerce/funcall.scm 42 */
BgL_nodez00_bglt BgL_auxz00_1416;
BgL_auxz00_1416 = 
BGl_convertz12z12zzcoerce_convertz00(
(BgL_nodez00_bglt)(BgL_nodez00_1124), 
(BgL_typez00_bglt)(BGl_za2objza2z00zztype_cachez00), 
(BgL_typez00_bglt)(BgL_toz00_1126)); 
return 
(obj_t)(BgL_auxz00_1416);}  else 
{ /* ./Coerce/funcall.scm 44 */
BgL_nodez00_bglt BgL_czd2funzd2_1132;
{ /* ./Coerce/funcall.scm 44 */
BgL_nodez00_bglt BgL_arg3292z00_1181;
BgL_arg3292z00_1181 = 
(((BgL_funcallz00_bglt)CREF(BgL_nodez00_1124))->BgL_funz00); 
BgL_czd2funzd2_1132 = 
BGl_coercez12z12zzcoerce_coercez00(BgL_arg3292z00_1181, BgL_callerz00_1125, 
(BgL_typez00_bglt)(BGl_za2procedureza2z00zztype_cachez00)); } 
if(
CBOOL(BGl_za2unsafezd2arityza2zd2zzengine_paramz00))
{ /* ./Coerce/funcall.scm 46 */
{ /* ./Coerce/funcall.scm 48 */
BgL_funcallz00_bglt BgL_obj1781z00_1244;BgL_nodez00_bglt BgL_val1780z00_1245;
BgL_obj1781z00_1244 = BgL_nodez00_1124; 
BgL_val1780z00_1245 = BgL_czd2funzd2_1132; 
((((BgL_funcallz00_bglt)CREF(BgL_obj1781z00_1244))->BgL_funz00) = ((BgL_nodez00_bglt)BgL_val1780z00_1245), BUNSPEC); } 
{ /* ./Coerce/funcall.scm 49 */
BgL_nodez00_bglt BgL_auxz00_1428;
BgL_auxz00_1428 = 
BGl_convertz12z12zzcoerce_convertz00(
(BgL_nodez00_bglt)(BgL_nodez00_1124), 
(BgL_typez00_bglt)(BGl_za2objza2z00zztype_cachez00), 
(BgL_typez00_bglt)(BgL_toz00_1126)); 
return 
(obj_t)(BgL_auxz00_1428);} }  else 
{ /* ./Coerce/funcall.scm 50 */
BgL_localz00_bglt BgL_funz00_1133;
BgL_funz00_1133 = 
BGl_makezd2localzd2svarz00zzast_localz00(
CNST_TABLE_REF(((long)11)), 
(BgL_typez00_bglt)(BGl_za2procedureza2z00zztype_cachez00)); 
{ /* ./Coerce/funcall.scm 50 */
obj_t BgL_locz00_1134;
{ /* ./Coerce/funcall.scm 51 */
BgL_nodez00_bglt BgL_obj1560z00_1246;
BgL_obj1560z00_1246 = 
(BgL_nodez00_bglt)(BgL_nodez00_1124); 
BgL_locz00_1134 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1560z00_1246))->BgL_locz00); } 
{ /* ./Coerce/funcall.scm 51 */
BgL_atomz00_bglt BgL_lenz00_1135;
{ /* ./Coerce/funcall.scm 53 */
obj_t BgL_arg3277z00_1175;obj_t BgL_arg3278z00_1176;long BgL_arg3279z00_1177;
BgL_arg3277z00_1175 = BgL_locz00_1134; 
BgL_arg3278z00_1176 = BGl_za2intza2z00zztype_cachez00; 
{ /* ./Coerce/funcall.scm 55 */
long BgL_auxz00_1439;
BgL_auxz00_1439 = 
bgl_list_length(
(((BgL_funcallz00_bglt)CREF(BgL_nodez00_1124))->BgL_argsz00)); 
BgL_arg3279z00_1177 = 
(BgL_auxz00_1439-((long)2)); } 
BgL_lenz00_1135 = 
BGl_makezd2atomzd2zzast_nodez00(BgL_arg3277z00_1175, 
(BgL_typez00_bglt)(BgL_arg3278z00_1176), 
BINT(BgL_arg3279z00_1177)); } 
{ /* ./Coerce/funcall.scm 52 */
obj_t BgL_azd2lenzd2_1136;
{ /* ./Coerce/funcall.scm 57 */
obj_t BgL_arg3273z00_1174;
BgL_arg3273z00_1174 = 
PROCEDURE_ENTRY(BGl_gensymz00zz__r4_symbols_6_4z00)(BGl_gensymz00zz__r4_symbols_6_4z00, 
CNST_TABLE_REF(((long)12)), BEOA); 
BgL_azd2lenzd2_1136 = 
BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(BgL_arg3273z00_1174); } 
{ /* ./Coerce/funcall.scm 57 */
obj_t BgL_azd2tlenzd2_1137;
{ /* ./Coerce/funcall.scm 59 */
obj_t BgL_arg3264z00_1171;
{ /* ./Coerce/funcall.scm 59 */
obj_t BgL_list3267z00_1172;
{ /* ./Coerce/funcall.scm 59 */
obj_t BgL_arg3269z00_1173;
{ /* ./Coerce/funcall.scm 59 */
obj_t BgL_auxz00_1450;
BgL_auxz00_1450 = 
CNST_TABLE_REF(((long)13)); 
BgL_arg3269z00_1173 = 
MAKE_PAIR(BgL_auxz00_1450, BNIL); } 
BgL_list3267z00_1172 = 
MAKE_PAIR(BgL_azd2lenzd2_1136, BgL_arg3269z00_1173); } 
BgL_arg3264z00_1171 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list3267z00_1172); } 
BgL_azd2tlenzd2_1137 = 
BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(BgL_arg3264z00_1171); } 
{ /* ./Coerce/funcall.scm 58 */
BgL_letzd2varzd2_bglt BgL_lnodez00_1138;
{ /* ./Coerce/funcall.scm 61 */
obj_t BgL_arg3198z00_1143;obj_t BgL_arg3199z00_1144;obj_t BgL_arg3202z00_1146;BgL_nodez00_bglt BgL_arg3203z00_1147;
BgL_arg3198z00_1143 = BgL_locz00_1134; 
BgL_arg3199z00_1144 = BGl_za2objza2z00zztype_cachez00; 
{ /* ./Coerce/funcall.scm 63 */
obj_t BgL_arg3206z00_1148;
{ /* ./Coerce/funcall.scm 63 */
obj_t BgL_auxz00_1458;obj_t BgL_auxz00_1456;
BgL_auxz00_1458 = 
(obj_t)(BgL_czd2funzd2_1132); 
BgL_auxz00_1456 = 
(obj_t)(BgL_funz00_1133); 
BgL_arg3206z00_1148 = 
MAKE_PAIR(BgL_auxz00_1456, BgL_auxz00_1458); } 
{ /* ./Coerce/funcall.scm 63 */
obj_t BgL_list3208z00_1149;
BgL_list3208z00_1149 = 
MAKE_PAIR(BgL_arg3206z00_1148, BNIL); 
BgL_arg3202z00_1146 = BgL_list3208z00_1149; } } 
{ /* ./Coerce/funcall.scm 65 */
obj_t BgL_arg3213z00_1150;
{ /* ./Coerce/funcall.scm 65 */
obj_t BgL_arg3216z00_1151;obj_t BgL_arg3217z00_1152;
BgL_arg3216z00_1151 = 
CNST_TABLE_REF(((long)14)); 
{ /* ./Coerce/funcall.scm 65 */
obj_t BgL_arg3220z00_1153;obj_t BgL_arg3221z00_1154;
{ /* ./Coerce/funcall.scm 65 */
obj_t BgL_arg3224z00_1155;
{ /* ./Coerce/funcall.scm 65 */
obj_t BgL_arg3228z00_1157;
{ /* ./Coerce/funcall.scm 65 */
obj_t BgL_auxz00_1463;
BgL_auxz00_1463 = 
(obj_t)(BgL_lenz00_1135); 
BgL_arg3228z00_1157 = 
MAKE_PAIR(BgL_auxz00_1463, BNIL); } 
BgL_arg3224z00_1155 = 
MAKE_PAIR(BgL_azd2tlenzd2_1137, BgL_arg3228z00_1157); } 
BgL_arg3220z00_1153 = 
MAKE_PAIR(BgL_arg3224z00_1155, BNIL); } 
{ /* ./Coerce/funcall.scm 66 */
obj_t BgL_arg3232z00_1158;
{ /* ./Coerce/funcall.scm 66 */
obj_t BgL_arg3236z00_1160;obj_t BgL_arg3237z00_1161;
BgL_arg3236z00_1160 = 
CNST_TABLE_REF(((long)15)); 
{ /* ./Coerce/funcall.scm 66 */
obj_t BgL_arg3240z00_1162;obj_t BgL_arg3241z00_1163;
{ /* ./Coerce/funcall.scm 66 */
obj_t BgL_arg3245z00_1164;obj_t BgL_arg3246z00_1165;
BgL_arg3245z00_1164 = 
CNST_TABLE_REF(((long)16)); 
{ /* ./Coerce/funcall.scm 66 */
obj_t BgL_arg3249z00_1166;
BgL_arg3249z00_1166 = 
MAKE_PAIR(BgL_azd2lenzd2_1136, BNIL); 
{ /* ./Coerce/funcall.scm 66 */
obj_t BgL_auxz00_1471;
BgL_auxz00_1471 = 
(obj_t)(BgL_funz00_1133); 
BgL_arg3246z00_1165 = 
MAKE_PAIR(BgL_auxz00_1471, BgL_arg3249z00_1166); } } 
BgL_arg3240z00_1162 = 
MAKE_PAIR(BgL_arg3245z00_1164, BgL_arg3246z00_1165); } 
{ /* ./Coerce/funcall.scm 67 */
BgL_nodez00_bglt BgL_arg3253z00_1167;obj_t BgL_arg3254z00_1168;
BgL_arg3253z00_1167 = 
BGl_convertz12z12zzcoerce_convertz00(
(BgL_nodez00_bglt)(BgL_nodez00_1124), 
(BgL_typez00_bglt)(BGl_za2objza2z00zztype_cachez00), 
(BgL_typez00_bglt)(BgL_toz00_1126)); 
{ /* ./Coerce/funcall.scm 68 */
BgL_nodez00_bglt BgL_arg3259z00_1169;
BgL_arg3259z00_1169 = 
BGl_makezd2errorzd2nodez00zzcoerce_funcallz00(BgL_funz00_1133, BgL_errorzd2msgzd2_1129, BgL_locz00_1134, BgL_callerz00_1125, BgL_toz00_1126); 
{ /* ./Coerce/funcall.scm 66 */
obj_t BgL_auxz00_1480;
BgL_auxz00_1480 = 
(obj_t)(BgL_arg3259z00_1169); 
BgL_arg3254z00_1168 = 
MAKE_PAIR(BgL_auxz00_1480, BNIL); } } 
{ /* ./Coerce/funcall.scm 66 */
obj_t BgL_auxz00_1483;
BgL_auxz00_1483 = 
(obj_t)(BgL_arg3253z00_1167); 
BgL_arg3241z00_1163 = 
MAKE_PAIR(BgL_auxz00_1483, BgL_arg3254z00_1168); } } 
BgL_arg3237z00_1161 = 
MAKE_PAIR(BgL_arg3240z00_1162, BgL_arg3241z00_1163); } 
BgL_arg3232z00_1158 = 
MAKE_PAIR(BgL_arg3236z00_1160, BgL_arg3237z00_1161); } 
BgL_arg3221z00_1154 = 
MAKE_PAIR(BgL_arg3232z00_1158, BNIL); } 
BgL_arg3217z00_1152 = 
MAKE_PAIR(BgL_arg3220z00_1153, BgL_arg3221z00_1154); } 
BgL_arg3213z00_1150 = 
MAKE_PAIR(BgL_arg3216z00_1151, BgL_arg3217z00_1152); } 
BgL_arg3203z00_1147 = 
BGl_topzd2levelzd2sexpzd2ze3nodez31zzast_sexpz00(BgL_arg3213z00_1150, BgL_locz00_1134); } 
BgL_lnodez00_1138 = 
BGl_makezd2letzd2varz00zzast_nodez00(BgL_arg3198z00_1143, 
(BgL_typez00_bglt)(BgL_arg3199z00_1144), BUNSPEC, 
BINT(((long)-1)), BgL_arg3202z00_1146, BgL_arg3203z00_1147, ((bool_t)1)); } 
{ /* ./Coerce/funcall.scm 60 */

{ /* ./Coerce/funcall.scm 75 */
BgL_varz00_bglt BgL_arg3190z00_1139;
{ /* ./Coerce/funcall.scm 75 */
obj_t BgL_arg3193z00_1140;obj_t BgL_arg3194z00_1141;BgL_localz00_bglt BgL_arg3195z00_1142;
BgL_arg3193z00_1140 = BgL_locz00_1134; 
BgL_arg3194z00_1141 = BGl_za2objza2z00zztype_cachez00; 
BgL_arg3195z00_1142 = BgL_funz00_1133; 
BgL_arg3190z00_1139 = 
BGl_makezd2varzd2zzast_nodez00(BgL_arg3193z00_1140, 
(BgL_typez00_bglt)(BgL_arg3194z00_1141), 
(BgL_variablez00_bglt)(BgL_arg3195z00_1142)); } 
{ /* ./Coerce/funcall.scm 74 */
BgL_funcallz00_bglt BgL_obj1781z00_1252;BgL_nodez00_bglt BgL_val1780z00_1253;
BgL_obj1781z00_1252 = BgL_nodez00_1124; 
BgL_val1780z00_1253 = 
(BgL_nodez00_bglt)(BgL_arg3190z00_1139); 
((((BgL_funcallz00_bglt)CREF(BgL_obj1781z00_1252))->BgL_funz00) = ((BgL_nodez00_bglt)BgL_val1780z00_1253), BUNSPEC); } } 
return 
(obj_t)(BgL_lnodez00_1138);} } } } } } } } } } } } 
}



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

