/*===========================================================================*/
/*   (Coerce/app.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/app.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_appz00();
BGL_IMPORT obj_t open_input_string(obj_t);
static BgL_nodez00_bglt BGl_coercezd2foreignzd2fxzd2appz12zc0zzcoerce_appz00(BgL_valuez00_bglt, BgL_variablez00_bglt, obj_t, BgL_appz00_bglt, obj_t);
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
BGL_IMPORT bool_t BGl_iszd2azf3z21zz__objectz00(obj_t, obj_t);
static obj_t BGl_coercez12zd2app2663zc0zzcoerce_appz00(obj_t, obj_t, obj_t, obj_t);
extern obj_t BGl_za2unsafezd2typeza2zd2zzengine_paramz00;
extern obj_t BGl_globalz00zzast_varz00;
extern obj_t BGl_typez00zztype_typez00;
static obj_t BGl_cnstzd2initzd2zzcoerce_appz00();
static obj_t BGl_importedzd2moduleszd2initz00zzcoerce_appz00();
extern BgL_nodez00_bglt BGl_coercez12z12zzcoerce_coercez00(BgL_nodez00_bglt, obj_t, BgL_typez00_bglt);
BGL_IMPORT obj_t BGl_addzd2methodz12zc0zz__objectz00(obj_t, obj_t, obj_t);
static obj_t BGl_toplevelzd2initzd2zzcoerce_appz00();
extern BgL_nodez00_bglt BGl_convertz12z12zzcoerce_convertz00(BgL_nodez00_bglt, BgL_typez00_bglt, BgL_typez00_bglt);
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzcoerce_appz00(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_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_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 *);
static BgL_nodez00_bglt BGl_coercezd2bigloozd2appz12z12zzcoerce_appz00(BgL_variablez00_bglt, obj_t, BgL_appz00_bglt, obj_t);
static BgL_nodez00_bglt BGl_coercezd2foreignzd2vazd2appz12zc0zzcoerce_appz00(BgL_valuez00_bglt, BgL_variablez00_bglt, obj_t, BgL_appz00_bglt, obj_t);
extern obj_t BGl_shapez00zztools_shapez00(obj_t);
extern obj_t BGl_cfunz00zzast_varz00;
extern obj_t BGl_appz00zzast_nodez00;
static BgL_nodez00_bglt BGl_coercezd2bigloozd2externzd2appz12zc0zzcoerce_appz00(BgL_variablez00_bglt, obj_t, BgL_appz00_bglt, obj_t);
static BgL_nodez00_bglt BGl_coercezd2foreignzd2appz12z12zzcoerce_appz00(BgL_variablez00_bglt, obj_t, BgL_appz00_bglt, obj_t);
static BgL_nodez00_bglt BGl_coercezd2bigloozd2internzd2appz12zc0zzcoerce_appz00(BgL_variablez00_bglt, obj_t, BgL_appz00_bglt, obj_t);
static obj_t BGl_requirezd2initializa7ationz75zzcoerce_appz00 = BUNSPEC;
static obj_t BGl_libraryzd2moduleszd2initz00zzcoerce_appz00();
static obj_t __cnst[ 1 ] ;


DEFINE_STRING( BGl_string3237z00zzcoerce_appz00, BgL_bgl_string3237za700za7za7coerce_appza7003263z00, "import ", 7 );
DEFINE_STATIC_PROCEDURE( BGl_proc3236z00zzcoerce_appz00, BgL_bgl_coerceza712za7d2app2663za7c0za7za7coerce_appza7003264z00, BGl_coercez12zd2app2663zc0zzcoerce_appz00, 0L, 3 );
extern obj_t BGl_coercez12zd2envzc0zzcoerce_coercez00;



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzcoerce_appz00(long BgL_checksumz00_1229, char * BgL_fromz00_1230)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzcoerce_appz00))
{ 
BGl_requirezd2initializa7ationz75zzcoerce_appz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzcoerce_appz00(); 
BGl_cnstzd2initzd2zzcoerce_appz00(); 
BGl_importedzd2moduleszd2initz00zzcoerce_appz00(); 
BGl_methodzd2initzd2zzcoerce_appz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzcoerce_appz00()
{ AN_OBJECT;
{ /* ./Coerce/app.scm 15 */
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "coerce_app"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "coerce_app"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzcoerce_appz00()
{ AN_OBJECT;
{ /* ./Coerce/app.scm 15 */
{ /* ./Coerce/app.scm 15 */
obj_t BgL_cportz00_1222;
BgL_cportz00_1222 = 
open_input_string(BGl_string3237z00zzcoerce_appz00); 
{ 
long BgL_iz00_1223;
BgL_iz00_1223 = ((long)0); 
BgL_loopz00_1224:
{ /* ./Coerce/app.scm 15 */
bool_t BgL_test3239z00_1225;
BgL_test3239z00_1225 = 
(BgL_iz00_1223==((long)-1)); 
if(BgL_test3239z00_1225)
{ /* ./Coerce/app.scm 15 */
return BUNSPEC;}  else 
{ /* ./Coerce/app.scm 15 */
{ /* ./Coerce/app.scm 15 */
obj_t BgL_arg3241z00_1226;
{ /* ./Coerce/app.scm 15 */
obj_t BgL_list3244z00_1227;
BgL_list3244z00_1227 = 
MAKE_PAIR(BgL_cportz00_1222, BNIL); 
BgL_arg3241z00_1226 = 
BGl_readz00zz__readerz00(BgL_list3244z00_1227); } 
{ /* ./Coerce/app.scm 15 */
int BgL_auxz00_1245;
BgL_auxz00_1245 = 
(int)(BgL_iz00_1223); 
CNST_TABLE_SET(BgL_auxz00_1245, BgL_arg3241z00_1226); } } 
{ /* ./Coerce/app.scm 15 */
int BgL_auxz00_1228;
{ /* ./Coerce/app.scm 15 */
long BgL_auxz00_1248;
BgL_auxz00_1248 = 
(BgL_iz00_1223-((long)1)); 
BgL_auxz00_1228 = 
(int)(BgL_auxz00_1248); } 
{ 
long BgL_iz00_1251;
BgL_iz00_1251 = 
(long)(BgL_auxz00_1228); 
BgL_iz00_1223 = BgL_iz00_1251; 
goto BgL_loopz00_1224;} } } } } } } 
}



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



/* coerce-foreign-app! */
BgL_nodez00_bglt BGl_coercezd2foreignzd2appz12z12zzcoerce_appz00(BgL_variablez00_bglt BgL_calleez00_4, obj_t BgL_callerz00_5, BgL_appz00_bglt BgL_nodez00_6, obj_t BgL_toz00_7)
{ AN_OBJECT;
{ /* ./Coerce/app.scm 40 */
{ /* ./Coerce/app.scm 43 */
BgL_valuez00_bglt BgL_ffunz00_687;
BgL_ffunz00_687 = 
(((BgL_variablez00_bglt)CREF(BgL_calleez00_4))->BgL_valuez00); 
{ /* ./Coerce/app.scm 43 */
long BgL_arityz00_688;
{ /* ./Coerce/app.scm 44 */
BgL_funz00_bglt BgL_obj1301z00_1140;
BgL_obj1301z00_1140 = 
(BgL_funz00_bglt)(BgL_ffunz00_687); 
BgL_arityz00_688 = 
(((BgL_funz00_bglt)CREF(BgL_obj1301z00_1140))->BgL_arityz00); } 
{ /* ./Coerce/app.scm 44 */

{ /* ./Coerce/app.scm 45 */
bool_t BgL_test2664z00_689;
BgL_test2664z00_689 = 
(BgL_arityz00_688>=((long)0)); 
if(BgL_test2664z00_689)
{ /* ./Coerce/app.scm 45 */
return 
BGl_coercezd2foreignzd2fxzd2appz12zc0zzcoerce_appz00(BgL_ffunz00_687, BgL_calleez00_4, BgL_callerz00_5, BgL_nodez00_6, BgL_toz00_7);}  else 
{ /* ./Coerce/app.scm 45 */
return 
BGl_coercezd2foreignzd2vazd2appz12zc0zzcoerce_appz00(BgL_ffunz00_687, BgL_calleez00_4, BgL_callerz00_5, BgL_nodez00_6, BgL_toz00_7);} } } } } } 
}



/* coerce-foreign-fx-app! */
BgL_nodez00_bglt BGl_coercezd2foreignzd2fxzd2appz12zc0zzcoerce_appz00(BgL_valuez00_bglt BgL_funz00_8, BgL_variablez00_bglt BgL_calleez00_9, obj_t BgL_callerz00_10, BgL_appz00_bglt BgL_nodez00_11, obj_t BgL_toz00_12)
{ AN_OBJECT;
{ /* ./Coerce/app.scm 52 */
{ 
obj_t BgL_actualsz00_690;obj_t BgL_typesz00_691;
{ /* ./Coerce/app.scm 53 */
obj_t BgL_arg2671z00_693;obj_t BgL_arg2672z00_694;
BgL_arg2671z00_693 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_11))->BgL_argsz00); 
{ /* ./Coerce/app.scm 54 */
BgL_cfunz00_bglt BgL_obj1445z00_1144;
BgL_obj1445z00_1144 = 
(BgL_cfunz00_bglt)(BgL_funz00_8); 
BgL_arg2672z00_694 = 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_1144))->BgL_argszd2typezd2); } 
BgL_actualsz00_690 = BgL_arg2671z00_693; 
BgL_typesz00_691 = BgL_arg2672z00_694; 
BgL_loopz00_692:
{ /* ./Coerce/app.scm 55 */
bool_t BgL_test2676z00_695;
BgL_test2676z00_695 = 
NULLP(BgL_actualsz00_690); 
if(BgL_test2676z00_695)
{ /* ./Coerce/app.scm 56 */
BgL_typez00_bglt BgL_arg2678z00_696;
BgL_arg2678z00_696 = 
(((BgL_variablez00_bglt)CREF(BgL_calleez00_9))->BgL_typez00); 
return 
BGl_convertz12z12zzcoerce_convertz00(
(BgL_nodez00_bglt)(BgL_nodez00_11), BgL_arg2678z00_696, 
(BgL_typez00_bglt)(BgL_toz00_12));}  else 
{ /* ./Coerce/app.scm 55 */
{ /* ./Coerce/app.scm 58 */
BgL_nodez00_bglt BgL_arg2682z00_697;
{ /* ./Coerce/app.scm 58 */
obj_t BgL_arg2685z00_698;obj_t BgL_arg2686z00_699;
BgL_arg2685z00_698 = 
CAR(BgL_actualsz00_690); 
BgL_arg2686z00_699 = 
CAR(BgL_typesz00_691); 
BgL_arg2682z00_697 = 
BGl_coercez12z12zzcoerce_coercez00(
(BgL_nodez00_bglt)(BgL_arg2685z00_698), BgL_callerz00_10, 
(BgL_typez00_bglt)(BgL_arg2686z00_699)); } 
{ /* ./Coerce/app.scm 58 */
obj_t BgL_objz00_1150;
BgL_objz00_1150 = 
(obj_t)(BgL_arg2682z00_697); 
SET_CAR(BgL_actualsz00_690, BgL_objz00_1150); } } 
{ /* ./Coerce/app.scm 59 */
obj_t BgL_arg2691z00_700;obj_t BgL_arg2692z00_701;
BgL_arg2691z00_700 = 
CDR(BgL_actualsz00_690); 
BgL_arg2692z00_701 = 
CDR(BgL_typesz00_691); 
{ 
obj_t BgL_typesz00_1279;obj_t BgL_actualsz00_1278;
BgL_actualsz00_1278 = BgL_arg2691z00_700; 
BgL_typesz00_1279 = BgL_arg2692z00_701; 
BgL_typesz00_691 = BgL_typesz00_1279; 
BgL_actualsz00_690 = BgL_actualsz00_1278; 
goto BgL_loopz00_692;} } } } } } } 
}



/* coerce-foreign-va-app! */
BgL_nodez00_bglt BGl_coercezd2foreignzd2vazd2appz12zc0zzcoerce_appz00(BgL_valuez00_bglt BgL_funz00_13, BgL_variablez00_bglt BgL_calleez00_14, obj_t BgL_callerz00_15, BgL_appz00_bglt BgL_nodez00_16, obj_t BgL_toz00_17)
{ AN_OBJECT;
{ /* ./Coerce/app.scm 64 */
{ 
obj_t BgL_actualsz00_702;obj_t BgL_typesz00_703;long BgL_counterz00_704;
{ /* ./Coerce/app.scm 65 */
obj_t BgL_arg2698z00_706;obj_t BgL_arg2699z00_707;long BgL_arg2700z00_708;
BgL_arg2698z00_706 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_16))->BgL_argsz00); 
{ /* ./Coerce/app.scm 66 */
BgL_cfunz00_bglt BgL_obj1445z00_1154;
BgL_obj1445z00_1154 = 
(BgL_cfunz00_bglt)(BgL_funz00_13); 
BgL_arg2699z00_707 = 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_1154))->BgL_argszd2typezd2); } 
{ /* ./Coerce/app.scm 67 */
BgL_funz00_bglt BgL_obj1301z00_1155;
BgL_obj1301z00_1155 = 
(BgL_funz00_bglt)(BgL_funz00_13); 
BgL_arg2700z00_708 = 
(((BgL_funz00_bglt)CREF(BgL_obj1301z00_1155))->BgL_arityz00); } 
BgL_actualsz00_702 = BgL_arg2698z00_706; 
BgL_typesz00_703 = BgL_arg2699z00_707; 
BgL_counterz00_704 = BgL_arg2700z00_708; 
BgL_loopz00_705:
{ /* ./Coerce/app.scm 68 */
bool_t BgL_test2705z00_709;
BgL_test2705z00_709 = 
(BgL_counterz00_704==((long)-1)); 
if(BgL_test2705z00_709)
{ 
obj_t BgL_actualsz00_710;
BgL_actualsz00_710 = BgL_actualsz00_702; 
BgL_loopz00_711:
{ /* ./Coerce/app.scm 71 */
bool_t BgL_test2707z00_712;
BgL_test2707z00_712 = 
NULLP(BgL_actualsz00_710); 
if(BgL_test2707z00_712)
{ /* ./Coerce/app.scm 72 */
BgL_typez00_bglt BgL_arg2709z00_713;
BgL_arg2709z00_713 = 
(((BgL_variablez00_bglt)CREF(BgL_calleez00_14))->BgL_typez00); 
return 
BGl_convertz12z12zzcoerce_convertz00(
(BgL_nodez00_bglt)(BgL_nodez00_16), BgL_arg2709z00_713, 
(BgL_typez00_bglt)(BgL_toz00_17));}  else 
{ /* ./Coerce/app.scm 71 */
{ /* ./Coerce/app.scm 74 */
BgL_nodez00_bglt BgL_arg2713z00_714;
{ /* ./Coerce/app.scm 74 */
obj_t BgL_arg2716z00_715;obj_t BgL_arg2717z00_716;
BgL_arg2716z00_715 = 
CAR(BgL_actualsz00_710); 
BgL_arg2717z00_716 = 
CAR(BgL_typesz00_703); 
BgL_arg2713z00_714 = 
BGl_coercez12z12zzcoerce_coercez00(
(BgL_nodez00_bglt)(BgL_arg2716z00_715), BgL_callerz00_15, 
(BgL_typez00_bglt)(BgL_arg2717z00_716)); } 
{ /* ./Coerce/app.scm 74 */
obj_t BgL_objz00_1163;
BgL_objz00_1163 = 
(obj_t)(BgL_arg2713z00_714); 
SET_CAR(BgL_actualsz00_710, BgL_objz00_1163); } } 
{ /* ./Coerce/app.scm 77 */
obj_t BgL_arg2722z00_717;
BgL_arg2722z00_717 = 
CDR(BgL_actualsz00_710); 
{ 
obj_t BgL_actualsz00_1301;
BgL_actualsz00_1301 = BgL_arg2722z00_717; 
BgL_actualsz00_710 = BgL_actualsz00_1301; 
goto BgL_loopz00_711;} } } } }  else 
{ /* ./Coerce/app.scm 68 */
{ /* ./Coerce/app.scm 79 */
BgL_nodez00_bglt BgL_arg2727z00_718;
{ /* ./Coerce/app.scm 79 */
obj_t BgL_arg2730z00_719;obj_t BgL_arg2731z00_720;
BgL_arg2730z00_719 = 
CAR(BgL_actualsz00_702); 
BgL_arg2731z00_720 = 
CAR(BgL_typesz00_703); 
BgL_arg2727z00_718 = 
BGl_coercez12z12zzcoerce_coercez00(
(BgL_nodez00_bglt)(BgL_arg2730z00_719), BgL_callerz00_15, 
(BgL_typez00_bglt)(BgL_arg2731z00_720)); } 
{ /* ./Coerce/app.scm 79 */
obj_t BgL_objz00_1168;
BgL_objz00_1168 = 
(obj_t)(BgL_arg2727z00_718); 
SET_CAR(BgL_actualsz00_702, BgL_objz00_1168); } } 
{ /* ./Coerce/app.scm 82 */
obj_t BgL_arg2736z00_721;obj_t BgL_arg2737z00_722;long BgL_arg2738z00_723;
BgL_arg2736z00_721 = 
CDR(BgL_actualsz00_702); 
BgL_arg2737z00_722 = 
CDR(BgL_typesz00_703); 
BgL_arg2738z00_723 = 
(BgL_counterz00_704+((long)1)); 
{ 
long BgL_counterz00_1314;obj_t BgL_typesz00_1313;obj_t BgL_actualsz00_1312;
BgL_actualsz00_1312 = BgL_arg2736z00_721; 
BgL_typesz00_1313 = BgL_arg2737z00_722; 
BgL_counterz00_1314 = BgL_arg2738z00_723; 
BgL_counterz00_704 = BgL_counterz00_1314; 
BgL_typesz00_703 = BgL_typesz00_1313; 
BgL_actualsz00_702 = BgL_actualsz00_1312; 
goto BgL_loopz00_705;} } } } } } } 
}



/* coerce-bigloo-app! */
BgL_nodez00_bglt BGl_coercezd2bigloozd2appz12z12zzcoerce_appz00(BgL_variablez00_bglt BgL_calleez00_18, obj_t BgL_callerz00_19, BgL_appz00_bglt BgL_nodez00_20, obj_t BgL_toz00_21)
{ AN_OBJECT;
{ /* ./Coerce/app.scm 87 */
{ /* ./Coerce/app.scm 91 */
bool_t BgL_test2744z00_724;
{ /* ./Coerce/app.scm 91 */
bool_t BgL_test2747z00_725;
{ /* ./Coerce/app.scm 91 */
obj_t BgL_obj1240z00_1173;
BgL_obj1240z00_1173 = 
(obj_t)(BgL_calleez00_18); 
BgL_test2747z00_725 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1240z00_1173, BGl_globalz00zzast_varz00); } 
if(BgL_test2747z00_725)
{ /* ./Coerce/app.scm 92 */
bool_t BgL_test2748z00_726;
{ /* ./Coerce/app.scm 92 */
obj_t BgL_auxz00_1321;obj_t BgL_auxz00_1318;
BgL_auxz00_1321 = 
CNST_TABLE_REF(((long)0)); 
{ /* ./Coerce/app.scm 92 */
BgL_globalz00_bglt BgL_obj1168z00_1174;
BgL_obj1168z00_1174 = 
(BgL_globalz00_bglt)(BgL_calleez00_18); 
BgL_auxz00_1318 = 
(((BgL_globalz00_bglt)CREF(BgL_obj1168z00_1174))->BgL_importz00); } 
BgL_test2748z00_726 = 
(BgL_auxz00_1318==BgL_auxz00_1321); } 
if(BgL_test2748z00_726)
{ /* ./Coerce/app.scm 92 */
bool_t BgL_test2749z00_727;
{ /* ./Coerce/app.scm 93 */
obj_t BgL_auxz00_1325;
{ /* ./Coerce/app.scm 93 */
BgL_sfunz00_bglt BgL_obj1367z00_1176;
{ /* ./Coerce/app.scm 93 */
BgL_valuez00_bglt BgL_auxz00_1326;
BgL_auxz00_1326 = 
(((BgL_variablez00_bglt)CREF(BgL_calleez00_18))->BgL_valuez00); 
BgL_obj1367z00_1176 = 
(BgL_sfunz00_bglt)(BgL_auxz00_1326); } 
BgL_auxz00_1325 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1176))->BgL_argsz00); } 
BgL_test2749z00_727 = 
PAIRP(BgL_auxz00_1325); } 
if(BgL_test2749z00_727)
{ /* ./Coerce/app.scm 94 */
obj_t BgL_arg2751z00_728;
{ /* ./Coerce/app.scm 94 */
obj_t BgL_auxz00_1332;
{ /* ./Coerce/app.scm 94 */
BgL_sfunz00_bglt BgL_obj1367z00_1179;
{ /* ./Coerce/app.scm 94 */
BgL_valuez00_bglt BgL_auxz00_1333;
BgL_auxz00_1333 = 
(((BgL_variablez00_bglt)CREF(BgL_calleez00_18))->BgL_valuez00); 
BgL_obj1367z00_1179 = 
(BgL_sfunz00_bglt)(BgL_auxz00_1333); } 
BgL_auxz00_1332 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1179))->BgL_argsz00); } 
BgL_arg2751z00_728 = 
CAR(BgL_auxz00_1332); } 
BgL_test2744z00_724 = 
BGl_iszd2azf3z21zz__objectz00(BgL_arg2751z00_728, BGl_typez00zztype_typez00); }  else 
{ /* ./Coerce/app.scm 92 */
BgL_test2744z00_724 = ((bool_t)0); } }  else 
{ /* ./Coerce/app.scm 92 */
BgL_test2744z00_724 = ((bool_t)0); } }  else 
{ /* ./Coerce/app.scm 91 */
BgL_test2744z00_724 = ((bool_t)0); } } 
if(BgL_test2744z00_724)
{ /* ./Coerce/app.scm 91 */
return 
BGl_coercezd2bigloozd2externzd2appz12zc0zzcoerce_appz00(BgL_calleez00_18, BgL_callerz00_19, BgL_nodez00_20, BgL_toz00_21);}  else 
{ /* ./Coerce/app.scm 91 */
return 
BGl_coercezd2bigloozd2internzd2appz12zc0zzcoerce_appz00(BgL_calleez00_18, BgL_callerz00_19, BgL_nodez00_20, BgL_toz00_21);} } } 
}



/* coerce-bigloo-intern-app! */
BgL_nodez00_bglt BGl_coercezd2bigloozd2internzd2appz12zc0zzcoerce_appz00(BgL_variablez00_bglt BgL_calleez00_22, obj_t BgL_callerz00_23, BgL_appz00_bglt BgL_nodez00_24, obj_t BgL_toz00_25)
{ AN_OBJECT;
{ /* ./Coerce/app.scm 101 */
{ /* ./Coerce/app.scm 102 */
BgL_valuez00_bglt BgL_funz00_735;
BgL_funz00_735 = 
(((BgL_variablez00_bglt)CREF(BgL_calleez00_22))->BgL_valuez00); 
{ /* ./Coerce/app.scm 103 */
obj_t BgL_shz00_737;
BgL_shz00_737 = 
BGl_shapez00zztools_shapez00(
(obj_t)(BgL_calleez00_22)); 
{ /* ./Coerce/app.scm 104 */

{ 
obj_t BgL_actualsz00_738;obj_t BgL_formalsz00_739;
{ /* ./Coerce/app.scm 105 */
obj_t BgL_arg2774z00_741;obj_t BgL_arg2775z00_742;
BgL_arg2774z00_741 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_24))->BgL_argsz00); 
{ /* ./Coerce/app.scm 106 */
BgL_sfunz00_bglt BgL_obj1367z00_1185;
BgL_obj1367z00_1185 = 
(BgL_sfunz00_bglt)(BgL_funz00_735); 
BgL_arg2775z00_742 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1185))->BgL_argsz00); } 
BgL_actualsz00_738 = BgL_arg2774z00_741; 
BgL_formalsz00_739 = BgL_arg2775z00_742; 
BgL_loopz00_740:
{ /* ./Coerce/app.scm 108 */
bool_t BgL_test2779z00_743;
BgL_test2779z00_743 = 
NULLP(BgL_actualsz00_738); 
if(BgL_test2779z00_743)
{ /* ./Coerce/app.scm 109 */
bool_t BgL_test2780z00_744;
{ /* ./Coerce/app.scm 109 */
bool_t BgL_test2789z00_748;
{ /* ./Coerce/app.scm 109 */
obj_t BgL_auxz00_1350;
BgL_auxz00_1350 = 
(obj_t)(BgL_calleez00_22); 
BgL_test2789z00_748 = 
(BgL_callerz00_23==BgL_auxz00_1350); } 
if(BgL_test2789z00_748)
{ /* ./Coerce/app.scm 109 */
if(
CBOOL(BGl_za2unsafezd2typeza2zd2zzengine_paramz00))
{ /* ./Coerce/app.scm 109 */
BgL_test2780z00_744 = ((bool_t)0); }  else 
{ /* ./Coerce/app.scm 109 */
BgL_test2780z00_744 = ((bool_t)1); } }  else 
{ /* ./Coerce/app.scm 109 */
BgL_test2780z00_744 = ((bool_t)0); } } 
if(BgL_test2780z00_744)
{ /* ./Coerce/app.scm 109 */
BGl_za2unsafezd2typeza2zd2zzengine_paramz00 = BTRUE; 
{ /* ./Coerce/app.scm 114 */
BgL_nodez00_bglt BgL_resz00_745;
{ /* ./Coerce/app.scm 114 */
BgL_typez00_bglt BgL_arg2782z00_746;
BgL_arg2782z00_746 = 
(((BgL_variablez00_bglt)CREF(BgL_calleez00_22))->BgL_typez00); 
BgL_resz00_745 = 
BGl_convertz12z12zzcoerce_convertz00(
(BgL_nodez00_bglt)(BgL_nodez00_24), BgL_arg2782z00_746, 
(BgL_typez00_bglt)(BgL_toz00_25)); } 
BGl_za2unsafezd2typeza2zd2zzengine_paramz00 = BFALSE; 
return BgL_resz00_745;} }  else 
{ /* ./Coerce/app.scm 117 */
BgL_typez00_bglt BgL_arg2786z00_747;
BgL_arg2786z00_747 = 
(((BgL_variablez00_bglt)CREF(BgL_calleez00_22))->BgL_typez00); 
return 
BGl_convertz12z12zzcoerce_convertz00(
(BgL_nodez00_bglt)(BgL_nodez00_24), BgL_arg2786z00_747, 
(BgL_typez00_bglt)(BgL_toz00_25));} }  else 
{ /* ./Coerce/app.scm 118 */
BgL_typez00_bglt BgL_typez00_749;
{ /* ./Coerce/app.scm 118 */
BgL_variablez00_bglt BgL_obj1097z00_1190;
{ /* ./Coerce/app.scm 118 */
obj_t BgL_auxz00_1365;
BgL_auxz00_1365 = 
CAR(BgL_formalsz00_739); 
BgL_obj1097z00_1190 = 
(BgL_variablez00_bglt)(BgL_auxz00_1365); } 
BgL_typez00_749 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_1190))->BgL_typez00); } 
{ /* ./Coerce/app.scm 119 */
BgL_nodez00_bglt BgL_arg2792z00_750;
{ /* ./Coerce/app.scm 119 */
obj_t BgL_arg2795z00_751;
BgL_arg2795z00_751 = 
CAR(BgL_actualsz00_738); 
BgL_arg2792z00_750 = 
BGl_coercez12z12zzcoerce_coercez00(
(BgL_nodez00_bglt)(BgL_arg2795z00_751), BgL_callerz00_23, BgL_typez00_749); } 
{ /* ./Coerce/app.scm 119 */
obj_t BgL_objz00_1193;
BgL_objz00_1193 = 
(obj_t)(BgL_arg2792z00_750); 
SET_CAR(BgL_actualsz00_738, BgL_objz00_1193); } } 
{ /* ./Coerce/app.scm 122 */
obj_t BgL_arg2799z00_752;obj_t BgL_arg2800z00_753;
BgL_arg2799z00_752 = 
CDR(BgL_actualsz00_738); 
BgL_arg2800z00_753 = 
CDR(BgL_formalsz00_739); 
{ 
obj_t BgL_formalsz00_1377;obj_t BgL_actualsz00_1376;
BgL_actualsz00_1376 = BgL_arg2799z00_752; 
BgL_formalsz00_1377 = BgL_arg2800z00_753; 
BgL_formalsz00_739 = BgL_formalsz00_1377; 
BgL_actualsz00_738 = BgL_actualsz00_1376; 
goto BgL_loopz00_740;} } } } } } } } } } 
}



/* coerce-bigloo-extern-app! */
BgL_nodez00_bglt BGl_coercezd2bigloozd2externzd2appz12zc0zzcoerce_appz00(BgL_variablez00_bglt BgL_calleez00_26, obj_t BgL_callerz00_27, BgL_appz00_bglt BgL_nodez00_28, obj_t BgL_toz00_29)
{ AN_OBJECT;
{ /* ./Coerce/app.scm 127 */
{ /* ./Coerce/app.scm 128 */
BgL_valuez00_bglt BgL_funz00_755;
BgL_funz00_755 = 
(((BgL_variablez00_bglt)CREF(BgL_calleez00_26))->BgL_valuez00); 
{ /* ./Coerce/app.scm 129 */

{ 
obj_t BgL_actualsz00_757;obj_t BgL_formalsz00_758;
{ /* ./Coerce/app.scm 130 */
obj_t BgL_arg2813z00_760;obj_t BgL_arg2814z00_761;
BgL_arg2813z00_760 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_28))->BgL_argsz00); 
{ /* ./Coerce/app.scm 131 */
BgL_sfunz00_bglt BgL_obj1367z00_1199;
BgL_obj1367z00_1199 = 
(BgL_sfunz00_bglt)(BgL_funz00_755); 
BgL_arg2814z00_761 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1199))->BgL_argsz00); } 
BgL_actualsz00_757 = BgL_arg2813z00_760; 
BgL_formalsz00_758 = BgL_arg2814z00_761; 
BgL_loopz00_759:
{ /* ./Coerce/app.scm 132 */
bool_t BgL_test2818z00_762;
BgL_test2818z00_762 = 
NULLP(BgL_actualsz00_757); 
if(BgL_test2818z00_762)
{ /* ./Coerce/app.scm 133 */
BgL_typez00_bglt BgL_arg2820z00_763;
BgL_arg2820z00_763 = 
(((BgL_variablez00_bglt)CREF(BgL_calleez00_26))->BgL_typez00); 
return 
BGl_convertz12z12zzcoerce_convertz00(
(BgL_nodez00_bglt)(BgL_nodez00_28), BgL_arg2820z00_763, 
(BgL_typez00_bglt)(BgL_toz00_29));}  else 
{ /* ./Coerce/app.scm 134 */
obj_t BgL_typez00_764;
BgL_typez00_764 = 
CAR(BgL_formalsz00_758); 
{ /* ./Coerce/app.scm 135 */
BgL_nodez00_bglt BgL_arg2824z00_765;
{ /* ./Coerce/app.scm 135 */
obj_t BgL_arg2827z00_766;
BgL_arg2827z00_766 = 
CAR(BgL_actualsz00_757); 
BgL_arg2824z00_765 = 
BGl_coercez12z12zzcoerce_coercez00(
(BgL_nodez00_bglt)(BgL_arg2827z00_766), BgL_callerz00_27, 
(BgL_typez00_bglt)(BgL_typez00_764)); } 
{ /* ./Coerce/app.scm 135 */
obj_t BgL_objz00_1205;
BgL_objz00_1205 = 
(obj_t)(BgL_arg2824z00_765); 
SET_CAR(BgL_actualsz00_757, BgL_objz00_1205); } } 
{ /* ./Coerce/app.scm 138 */
obj_t BgL_arg2831z00_767;obj_t BgL_arg2832z00_768;
BgL_arg2831z00_767 = 
CDR(BgL_actualsz00_757); 
BgL_arg2832z00_768 = 
CDR(BgL_formalsz00_758); 
{ 
obj_t BgL_formalsz00_1398;obj_t BgL_actualsz00_1397;
BgL_actualsz00_1397 = BgL_arg2831z00_767; 
BgL_formalsz00_1398 = BgL_arg2832z00_768; 
BgL_formalsz00_758 = BgL_formalsz00_1398; 
BgL_actualsz00_757 = BgL_actualsz00_1397; 
goto BgL_loopz00_759;} } } } } } } } } 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzcoerce_appz00()
{ AN_OBJECT;
{ /* ./Coerce/app.scm 15 */
return 
BGl_addzd2methodz12zc0zz__objectz00(BGl_coercez12zd2envzc0zzcoerce_coercez00, BGl_appz00zzast_nodez00, BGl_proc3236z00zzcoerce_appz00);} 
}



/* coerce!-app2663 */
obj_t BGl_coercez12zd2app2663zc0zzcoerce_appz00(obj_t BgL_envz00_1214, obj_t BgL_nodez00_1215, obj_t BgL_callerz00_1216, obj_t BgL_toz00_1217)
{ AN_OBJECT;
{ /* ./Coerce/app.scm 29 */
{ 
BgL_appz00_bglt BgL_nodez00_1127;obj_t BgL_callerz00_1128;obj_t BgL_toz00_1129;
{ /* ./Tools/trace.sch 42 */
BgL_nodez00_bglt BgL_auxz00_1400;
BgL_nodez00_1127 = 
(BgL_appz00_bglt)(BgL_nodez00_1215); 
BgL_callerz00_1128 = BgL_callerz00_1216; 
BgL_toz00_1129 = BgL_toz00_1217; 
{ /* ./Coerce/app.scm 32 */
BgL_variablez00_bglt BgL_funz00_1132;
{ /* ./Coerce/app.scm 32 */
BgL_varz00_bglt BgL_arg3168z00_1136;
BgL_arg3168z00_1136 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_1127))->BgL_funz00); 
BgL_funz00_1132 = 
(((BgL_varz00_bglt)CREF(BgL_arg3168z00_1136))->BgL_variablez00); } 
{ /* ./Coerce/app.scm 33 */
bool_t BgL_test3158z00_1133;
{ /* ./Coerce/app.scm 33 */
bool_t BgL_test3161z00_1134;
{ /* ./Coerce/app.scm 33 */
obj_t BgL_obj1240z00_1210;
BgL_obj1240z00_1210 = 
(obj_t)(BgL_funz00_1132); 
BgL_test3161z00_1134 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1240z00_1210, BGl_globalz00zzast_varz00); } 
if(BgL_test3161z00_1134)
{ /* ./Coerce/app.scm 33 */
BgL_valuez00_bglt BgL_arg3163z00_1135;
BgL_arg3163z00_1135 = 
(((BgL_variablez00_bglt)CREF(BgL_funz00_1132))->BgL_valuez00); 
{ /* ./Coerce/app.scm 33 */
obj_t BgL_obj1489z00_1212;
BgL_obj1489z00_1212 = 
(obj_t)(BgL_arg3163z00_1135); 
BgL_test3158z00_1133 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1489z00_1212, BGl_cfunz00zzast_varz00); } }  else 
{ /* ./Coerce/app.scm 33 */
BgL_test3158z00_1133 = ((bool_t)0); } } 
if(BgL_test3158z00_1133)
{ /* ./Coerce/app.scm 33 */
BgL_auxz00_1400 = 
BGl_coercezd2foreignzd2appz12z12zzcoerce_appz00(BgL_funz00_1132, BgL_callerz00_1128, BgL_nodez00_1127, BgL_toz00_1129)
; }  else 
{ /* ./Coerce/app.scm 33 */
BgL_auxz00_1400 = 
BGl_coercezd2bigloozd2appz12z12zzcoerce_appz00(BgL_funz00_1132, BgL_callerz00_1128, BgL_nodez00_1127, BgL_toz00_1129)
; } } } 
return 
(obj_t)(BgL_auxz00_1400);} } } 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzcoerce_appz00()
{ AN_OBJECT;
{ /* ./Coerce/app.scm 15 */
BGl_modulezd2initializa7ationz75zztools_tracez00(((long)59211), "coerce_app"); 
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "coerce_app"); 
BGl_modulezd2initializa7ationz75zztools_shapez00(((long)30833), "coerce_app"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "coerce_app"); 
BGl_modulezd2initializa7ationz75zztype_cachez00(((long)25848), "coerce_app"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "coerce_app"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "coerce_app"); 
BGl_modulezd2initializa7ationz75zzcoerce_coercez00(((long)56611), "coerce_app"); 
return 
BGl_modulezd2initializa7ationz75zzcoerce_convertz00(((long)19914), "coerce_app");} 
}

