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


BGL_EXPORTED_DECL obj_t BGl_coercezd2walkz12zc0zzcoerce_walkz00(obj_t);
BGL_IMPORT double BGl_roundflz00zz__r4_numbers_6_5_flonumz00(double);
static obj_t BGl_methodzd2initzd2zzcoerce_walkz00();
BGL_IMPORT obj_t open_input_string(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__coercezd2walkz12zc0zzcoerce_walkz00(obj_t, obj_t);
BGL_IMPORT obj_t string_to_bstring(char *);
extern obj_t BGl_funz00zzast_varz00;
extern obj_t BGl_enterzd2functionzd2zztools_errorz00(obj_t);
static obj_t BGl_cnstzd2initzd2zzcoerce_walkz00();
extern obj_t BGl_leavezd2functionzd2zztools_errorz00();
extern obj_t BGl_za2nbzd2errorzd2onzd2passza2zd2zztools_errorz00;
BGL_IMPORT obj_t BGl_displayzd22zd2zz__r4_output_6_10_3z00(obj_t, obj_t);
extern obj_t BGl_za2currentzd2passza2zd2zzengine_passz00;
static obj_t BGl_importedzd2moduleszd2initz00zzcoerce_walkz00();
BGL_IMPORT obj_t BGl_exitz00zz__errorz00(obj_t);
static obj_t BGl_zc3anonymousza32721ze3z83zzcoerce_walkz00(obj_t, obj_t);
BGL_IMPORT bool_t BGl_2ze3ze3zz__r4_numbers_6_5z00(obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzcoerce_walkz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_speekz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_errorz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_passz00(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_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_envz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_removez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcoerce_pprotoz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzcoerce_coercez00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5z00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_flonumz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(long, char *);
extern obj_t BGl_verbosez00zztools_speekz00(obj_t, obj_t);
extern obj_t BGl_forzd2eachzd2globalz12z12zzast_envz00(obj_t);
extern obj_t BGl_coercezd2functionz12zc0zzcoerce_coercez00(BgL_variablez00_bglt);
extern obj_t BGl_removezd2varzd2zzast_removez00(obj_t, obj_t);
BGL_IMPORT obj_t display_string(obj_t, obj_t);
extern obj_t BGl_internalzd2errorzd2zztools_errorz00(obj_t, obj_t, obj_t);
extern obj_t BGl_pvariablezd2protozd2zzcoerce_pprotoz00(long, BgL_variablez00_bglt);
extern obj_t BGl_resetzd2ppmargez12zc0zzcoerce_pprotoz00();
static obj_t BGl_requirezd2initializa7ationz75zzcoerce_walkz00 = BUNSPEC;
static obj_t BGl_libraryzd2moduleszd2initz00zzcoerce_walkz00();
static obj_t __cnst[ 4 ] ;


DEFINE_STATIC_PROCEDURE( BGl_proc3148z00zzcoerce_walkz00, BgL_bgl_za7c3anonymousza7a32721za7e3za783za7za7coerce_walkza7003181za7, BGl_zc3anonymousza32721ze3z83zzcoerce_walkz00, 0L, 1 );
DEFINE_STRING( BGl_string3152z00zzcoerce_walkz00, BgL_bgl_string3152za700za7za7coerce_walkza7003182z00, "export static coerce pass-started ", 34 );
DEFINE_STRING( BGl_string3151z00zzcoerce_walkz00, BgL_bgl_string3151za700za7za7coerce_walkza7003183z00, "failure during postlude hook", 28 );
DEFINE_STRING( BGl_string3150z00zzcoerce_walkz00, BgL_bgl_string3150za700za7za7coerce_walkza7003184z00, " occured, ending ...", 20 );
DEFINE_STRING( BGl_string3149z00zzcoerce_walkz00, BgL_bgl_string3149za700za7za7coerce_walkza7003185z00, " error", 6 );
DEFINE_STRING( BGl_string3147z00zzcoerce_walkz00, BgL_bgl_string3147za700za7za7coerce_walkza7003186z00, "failure during prelude hook", 27 );
DEFINE_STRING( BGl_string3146z00zzcoerce_walkz00, BgL_bgl_string3146za700za7za7coerce_walkza7003187z00, "   . ", 5 );
DEFINE_STRING( BGl_string3145z00zzcoerce_walkz00, BgL_bgl_string3145za700za7za7coerce_walkza7003188z00, "Coercions & Checks", 18 );
DEFINE_EXPORT_PROCEDURE( BGl_coercezd2walkz12zd2envz12zzcoerce_walkz00, BgL_bgl__coerceza7d2walkza712za7c0za7za7coerce_walkza7003189z00, BGl__coercezd2walkz12zc0zzcoerce_walkz00, 0L, 1 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzcoerce_walkz00(long BgL_checksumz00_1118, char * BgL_fromz00_1119)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzcoerce_walkz00))
{ 
BGl_requirezd2initializa7ationz75zzcoerce_walkz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzcoerce_walkz00(); 
BGl_cnstzd2initzd2zzcoerce_walkz00(); 
BGl_importedzd2moduleszd2initz00zzcoerce_walkz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzcoerce_walkz00()
{ AN_OBJECT;
{ /* ./Coerce/walk.scm 15 */
BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_flonumz00(((long)0), "coerce_walk"); 
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "coerce_walk"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "coerce_walk"); 
BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(((long)0), "coerce_walk"); 
BGl_modulezd2initializa7ationz75zz__errorz00(((long)0), "coerce_walk"); 
BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5z00(((long)0), "coerce_walk"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzcoerce_walkz00()
{ AN_OBJECT;
{ /* ./Coerce/walk.scm 15 */
{ /* ./Coerce/walk.scm 15 */
obj_t BgL_cportz00_1111;
BgL_cportz00_1111 = 
open_input_string(BGl_string3152z00zzcoerce_walkz00); 
{ 
long BgL_iz00_1112;
BgL_iz00_1112 = ((long)3); 
BgL_loopz00_1113:
{ /* ./Coerce/walk.scm 15 */
bool_t BgL_test3154z00_1114;
BgL_test3154z00_1114 = 
(BgL_iz00_1112==((long)-1)); 
if(BgL_test3154z00_1114)
{ /* ./Coerce/walk.scm 15 */
return BUNSPEC;}  else 
{ /* ./Coerce/walk.scm 15 */
{ /* ./Coerce/walk.scm 15 */
obj_t BgL_arg3156z00_1115;
{ /* ./Coerce/walk.scm 15 */
obj_t BgL_list3159z00_1116;
BgL_list3159z00_1116 = 
MAKE_PAIR(BgL_cportz00_1111, BNIL); 
BgL_arg3156z00_1115 = 
BGl_readz00zz__readerz00(BgL_list3159z00_1116); } 
{ /* ./Coerce/walk.scm 15 */
int BgL_auxz00_1137;
BgL_auxz00_1137 = 
(int)(BgL_iz00_1112); 
CNST_TABLE_SET(BgL_auxz00_1137, BgL_arg3156z00_1115); } } 
{ /* ./Coerce/walk.scm 15 */
int BgL_auxz00_1117;
{ /* ./Coerce/walk.scm 15 */
long BgL_auxz00_1140;
BgL_auxz00_1140 = 
(BgL_iz00_1112-((long)1)); 
BgL_auxz00_1117 = 
(int)(BgL_auxz00_1140); } 
{ 
long BgL_iz00_1143;
BgL_iz00_1143 = 
(long)(BgL_auxz00_1117); 
BgL_iz00_1112 = BgL_iz00_1143; 
goto BgL_loopz00_1113;} } } } } } } 
}



/* coerce-walk! */
BGL_EXPORTED_DEF obj_t BGl_coercezd2walkz12zc0zzcoerce_walkz00(obj_t BgL_astz00_1)
{ AN_OBJECT;
{ /* ./Coerce/walk.scm 34 */
{ /* ./Coerce/walk.scm 35 */
obj_t BgL_list2667z00_659;
{ /* ./Coerce/walk.scm 35 */
obj_t BgL_arg2670z00_661;
{ /* ./Coerce/walk.scm 35 */
obj_t BgL_arg2674z00_663;
{ /* ./Coerce/walk.scm 35 */
obj_t BgL_auxz00_1145;
BgL_auxz00_1145 = 
BCHAR(((unsigned char)'\n')); 
BgL_arg2674z00_663 = 
MAKE_PAIR(BgL_auxz00_1145, BNIL); } 
BgL_arg2670z00_661 = 
MAKE_PAIR(BGl_string3145z00zzcoerce_walkz00, BgL_arg2674z00_663); } 
BgL_list2667z00_659 = 
MAKE_PAIR(BGl_string3146z00zzcoerce_walkz00, BgL_arg2670z00_661); } 
BGl_verbosez00zztools_speekz00(
BINT(((long)1)), BgL_list2667z00_659); } 
BGl_za2nbzd2errorzd2onzd2passza2zd2zztools_errorz00 = 
BINT(((long)0)); 
BGl_za2currentzd2passza2zd2zzengine_passz00 = BGl_string3145z00zzcoerce_walkz00; 
{ 
obj_t BgL_hooksz00_664;obj_t BgL_hnamesz00_665;
{ /* ./Coerce/walk.scm 35 */
obj_t BgL_arg2678z00_667;
BgL_arg2678z00_667 = BNIL; 
BgL_hooksz00_664 = BgL_arg2678z00_667; 
BgL_hnamesz00_665 = BNIL; 
BgL_loopz00_666:
{ /* ./Coerce/walk.scm 35 */
bool_t BgL_test2683z00_670;
BgL_test2683z00_670 = 
NULLP(BgL_hooksz00_664); 
if(BgL_test2683z00_670)
{ /* ./Coerce/walk.scm 35 */
CNST_TABLE_REF(((long)0)); }  else 
{ /* ./Coerce/walk.scm 35 */
bool_t BgL_test2684z00_671;
{ /* ./Coerce/walk.scm 35 */
obj_t BgL_fun2699z00_677;
BgL_fun2699z00_677 = 
CAR(BgL_hooksz00_664); 
{ /* ./Coerce/walk.scm 35 */
obj_t BgL_auxz00_1157;
BgL_auxz00_1157 = 
PROCEDURE_ENTRY(BgL_fun2699z00_677)(BgL_fun2699z00_677, BEOA); 
BgL_test2684z00_671 = 
CBOOL(BgL_auxz00_1157); } } 
if(BgL_test2684z00_671)
{ /* ./Coerce/walk.scm 35 */
{ /* ./Coerce/walk.scm 35 */
obj_t BgL_arg2686z00_672;obj_t BgL_arg2687z00_673;
BgL_arg2686z00_672 = 
CDR(BgL_hooksz00_664); 
BgL_arg2687z00_673 = 
CDR(BgL_hnamesz00_665); 
{ 
obj_t BgL_hnamesz00_1165;obj_t BgL_hooksz00_1164;
BgL_hooksz00_1164 = BgL_arg2686z00_672; 
BgL_hnamesz00_1165 = BgL_arg2687z00_673; 
BgL_hnamesz00_665 = BgL_hnamesz00_1165; 
BgL_hooksz00_664 = BgL_hooksz00_1164; 
goto BgL_loopz00_666;} } }  else 
{ /* ./Coerce/walk.scm 35 */
{ /* ./Coerce/walk.scm 35 */
obj_t BgL_arg2694z00_676;
BgL_arg2694z00_676 = 
CAR(BgL_hnamesz00_665); 
BGl_internalzd2errorzd2zztools_errorz00(BGl_string3145z00zzcoerce_walkz00, BGl_string3147z00zzcoerce_walkz00, BgL_arg2694z00_676); } } } } } } 
{ 
obj_t BgL_l2662z00_678;
BgL_l2662z00_678 = BgL_astz00_1; 
BgL_forzd2each2663zd2_679:
{ /* ./Coerce/walk.scm 36 */
bool_t BgL_test2703z00_680;
BgL_test2703z00_680 = 
PAIRP(BgL_l2662z00_678); 
if(BgL_test2703z00_680)
{ /* ./Coerce/walk.scm 36 */
{ /* ./Coerce/walk.scm 37 */
obj_t BgL_globalz00_681;
BgL_globalz00_681 = 
CAR(BgL_l2662z00_678); 
BGl_resetzd2ppmargez12zc0zzcoerce_pprotoz00(); 
{ /* ./Coerce/walk.scm 38 */
obj_t BgL_arg2706z00_682;
{ /* ./Coerce/walk.scm 38 */
BgL_variablez00_bglt BgL_obj1093z00_1083;
BgL_obj1093z00_1083 = 
(BgL_variablez00_bglt)(BgL_globalz00_681); 
BgL_arg2706z00_682 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1093z00_1083))->BgL_idz00); } 
BGl_enterzd2functionzd2zztools_errorz00(BgL_arg2706z00_682); } 
BGl_coercezd2functionz12zc0zzcoerce_coercez00(
(BgL_variablez00_bglt)(BgL_globalz00_681)); 
BGl_leavezd2functionzd2zztools_errorz00(); } 
{ /* ./Coerce/walk.scm 36 */
obj_t BgL_arg2713z00_683;
BgL_arg2713z00_683 = 
CDR(BgL_l2662z00_678); 
{ 
obj_t BgL_l2662z00_1179;
BgL_l2662z00_1179 = BgL_arg2713z00_683; 
BgL_l2662z00_678 = BgL_l2662z00_1179; 
goto BgL_forzd2each2663zd2_679;} } }  else 
{ /* ./Coerce/walk.scm 36 */((bool_t)1); } } } 
BGl_resetzd2ppmargez12zc0zzcoerce_pprotoz00(); 
BGl_forzd2eachzd2globalz12z12zzast_envz00(BGl_proc3148z00zzcoerce_walkz00); 
{ /* ./Coerce/walk.scm 48 */
obj_t BgL_valuez00_696;
BgL_valuez00_696 = 
BGl_removezd2varzd2zzast_removez00(
CNST_TABLE_REF(((long)1)), BgL_astz00_1); 
{ /* ./Coerce/walk.scm 48 */
bool_t BgL_test2739z00_697;
{ /* ./Coerce/walk.scm 48 */
long BgL_n1z00_1089;
BgL_n1z00_1089 = 
(long)CINT(BGl_za2nbzd2errorzd2onzd2passza2zd2zztools_errorz00); 
BgL_test2739z00_697 = 
(BgL_n1z00_1089>((long)0)); } 
if(BgL_test2739z00_697)
{ /* ./Coerce/walk.scm 48 */
{ /* ./Coerce/walk.scm 48 */
obj_t BgL_port2665z00_698;
BgL_port2665z00_698 = 
BGL_CURRENT_ERROR_PORT(); 
BGl_displayzd22zd2zz__r4_output_6_10_3z00(BGl_za2nbzd2errorzd2onzd2passza2zd2zztools_errorz00, BgL_port2665z00_698); 
display_string(BGl_string3149z00zzcoerce_walkz00, BgL_port2665z00_698); 
{ /* ./Coerce/walk.scm 48 */
char * BgL_arg2743z00_699;
{ /* ./Coerce/walk.scm 48 */
bool_t BgL_test2745z00_700;
{ /* ./Coerce/walk.scm 48 */
bool_t BgL_test2746z00_701;
{ /* ./Coerce/walk.scm 48 */
bool_t BgL_res3113z00_1097;
{ /* ./Coerce/walk.scm 48 */
obj_t BgL_objz00_1091;
BgL_objz00_1091 = BGl_za2nbzd2errorzd2onzd2passza2zd2zztools_errorz00; 
{ /* ./Coerce/walk.scm 48 */
bool_t BgL_test1396z00_1092;
BgL_test1396z00_1092 = 
INTEGERP(BgL_objz00_1091); 
if(BgL_test1396z00_1092)
{ /* ./Coerce/walk.scm 48 */
BgL_res3113z00_1097 = ((bool_t)1); }  else 
{ /* ./Coerce/walk.scm 48 */
bool_t BgL_test1397z00_1093;
BgL_test1397z00_1093 = 
REALP(BgL_objz00_1091); 
if(BgL_test1397z00_1093)
{ /* ./Coerce/walk.scm 48 */
double BgL_arg1399z00_1094;
BgL_arg1399z00_1094 = 
BGl_roundflz00zz__r4_numbers_6_5_flonumz00(
REAL_TO_DOUBLE(BgL_objz00_1091)); 
{ /* ./Coerce/walk.scm 48 */
double BgL_auxz00_1196;
BgL_auxz00_1196 = 
REAL_TO_DOUBLE(BgL_objz00_1091); 
BgL_res3113z00_1097 = 
(BgL_auxz00_1196==BgL_arg1399z00_1094); } }  else 
{ /* ./Coerce/walk.scm 48 */
BgL_res3113z00_1097 = ((bool_t)0); } } } } 
BgL_test2746z00_701 = BgL_res3113z00_1097; } 
if(BgL_test2746z00_701)
{ /* ./Coerce/walk.scm 48 */
BgL_test2745z00_700 = 
BGl_2ze3ze3zz__r4_numbers_6_5z00(BGl_za2nbzd2errorzd2onzd2passza2zd2zztools_errorz00, 
BINT(((long)1))); }  else 
{ /* ./Coerce/walk.scm 48 */
BgL_test2745z00_700 = ((bool_t)0); } } 
if(BgL_test2745z00_700)
{ /* ./Coerce/walk.scm 48 */
BgL_arg2743z00_699 = "s"; }  else 
{ /* ./Coerce/walk.scm 48 */
BgL_arg2743z00_699 = ""; } } 
BGl_displayzd22zd2zz__r4_output_6_10_3z00(
string_to_bstring(BgL_arg2743z00_699), BgL_port2665z00_698); } 
display_string(BGl_string3150z00zzcoerce_walkz00, BgL_port2665z00_698); 
WRITE_CHAR(((unsigned char)'\n'), BgL_port2665z00_698); } 
{ /* ./Coerce/walk.scm 48 */
obj_t BgL_list2753z00_702;
{ /* ./Coerce/walk.scm 48 */
obj_t BgL_auxz00_1207;
BgL_auxz00_1207 = 
BINT(((long)-1)); 
BgL_list2753z00_702 = 
MAKE_PAIR(BgL_auxz00_1207, BNIL); } 
return 
BGl_exitz00zz__errorz00(BgL_list2753z00_702);} }  else 
{ 
obj_t BgL_hooksz00_703;obj_t BgL_hnamesz00_704;
{ /* ./Coerce/walk.scm 48 */
obj_t BgL_arg2756z00_706;
BgL_arg2756z00_706 = BNIL; 
BgL_hooksz00_703 = BgL_arg2756z00_706; 
BgL_hnamesz00_704 = BNIL; 
BgL_loopz00_705:
{ /* ./Coerce/walk.scm 48 */
bool_t BgL_test2761z00_709;
BgL_test2761z00_709 = 
NULLP(BgL_hooksz00_703); 
if(BgL_test2761z00_709)
{ /* ./Coerce/walk.scm 48 */
return BgL_valuez00_696;}  else 
{ /* ./Coerce/walk.scm 48 */
bool_t BgL_test2762z00_710;
{ /* ./Coerce/walk.scm 48 */
obj_t BgL_fun2776z00_715;
BgL_fun2776z00_715 = 
CAR(BgL_hooksz00_703); 
{ /* ./Coerce/walk.scm 48 */
obj_t BgL_auxz00_1214;
BgL_auxz00_1214 = 
PROCEDURE_ENTRY(BgL_fun2776z00_715)(BgL_fun2776z00_715, BEOA); 
BgL_test2762z00_710 = 
CBOOL(BgL_auxz00_1214); } } 
if(BgL_test2762z00_710)
{ /* ./Coerce/walk.scm 48 */
{ /* ./Coerce/walk.scm 48 */
obj_t BgL_arg2764z00_711;obj_t BgL_arg2765z00_712;
BgL_arg2764z00_711 = 
CDR(BgL_hooksz00_703); 
BgL_arg2765z00_712 = 
CDR(BgL_hnamesz00_704); 
{ 
obj_t BgL_hnamesz00_1222;obj_t BgL_hooksz00_1221;
BgL_hooksz00_1221 = BgL_arg2764z00_711; 
BgL_hnamesz00_1222 = BgL_arg2765z00_712; 
BgL_hnamesz00_704 = BgL_hnamesz00_1222; 
BgL_hooksz00_703 = BgL_hooksz00_1221; 
goto BgL_loopz00_705;} } }  else 
{ /* ./Coerce/walk.scm 48 */
{ /* ./Coerce/walk.scm 48 */
obj_t BgL_arg2771z00_714;
BgL_arg2771z00_714 = 
CAR(BgL_hnamesz00_704); 
return 
BGl_internalzd2errorzd2zztools_errorz00(BGl_za2currentzd2passza2zd2zzengine_passz00, BGl_string3151z00zzcoerce_walkz00, BgL_arg2771z00_714);} } } } } } } } } 
}



/* _coerce-walk! */
obj_t BGl__coercezd2walkz12zc0zzcoerce_walkz00(obj_t BgL_envz00_1107, obj_t BgL_astz00_1108)
{ AN_OBJECT;
{ /* ./Coerce/walk.scm 34 */
return 
BGl_coercezd2walkz12zc0zzcoerce_walkz00(BgL_astz00_1108);} 
}



/* <anonymous:2721> */
obj_t BGl_zc3anonymousza32721ze3z83zzcoerce_walkz00(obj_t BgL_envz00_1109, obj_t BgL_globalz00_1110)
{ AN_OBJECT;
{ /* ./Coerce/walk.scm 43 */
{ 
obj_t BgL_globalz00_685;
BgL_globalz00_685 = BgL_globalz00_1110; 
{ /* ./Coerce/walk.scm 44 */
bool_t BgL_test2722z00_687;
{ /* ./Coerce/walk.scm 44 */
bool_t BgL_test2724z00_688;
{ /* ./Coerce/walk.scm 44 */
BgL_valuez00_bglt BgL_arg2736z00_694;
{ /* ./Coerce/walk.scm 44 */
BgL_variablez00_bglt BgL_obj1100z00_1085;
BgL_obj1100z00_1085 = 
(BgL_variablez00_bglt)(BgL_globalz00_685); 
BgL_arg2736z00_694 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1085))->BgL_valuez00); } 
{ /* ./Coerce/walk.scm 44 */
obj_t BgL_obj1344z00_1086;
BgL_obj1344z00_1086 = 
(obj_t)(BgL_arg2736z00_694); 
BgL_test2724z00_688 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1344z00_1086, BGl_funz00zzast_varz00); } } 
if(BgL_test2724z00_688)
{ /* ./Coerce/walk.scm 44 */
BgL_test2722z00_687 = ((bool_t)0); }  else 
{ /* ./Coerce/walk.scm 45 */
bool_t BgL__ortest_2664z00_689;
{ /* ./Coerce/walk.scm 45 */
obj_t BgL_auxz00_1234;obj_t BgL_auxz00_1231;
BgL_auxz00_1234 = 
CNST_TABLE_REF(((long)2)); 
{ /* ./Coerce/walk.scm 45 */
BgL_globalz00_bglt BgL_obj1168z00_1087;
BgL_obj1168z00_1087 = 
(BgL_globalz00_bglt)(BgL_globalz00_685); 
BgL_auxz00_1231 = 
(((BgL_globalz00_bglt)CREF(BgL_obj1168z00_1087))->BgL_importz00); } 
BgL__ortest_2664z00_689 = 
(BgL_auxz00_1231==BgL_auxz00_1234); } 
if(BgL__ortest_2664z00_689)
{ /* ./Coerce/walk.scm 46 */
BgL_test2722z00_687 = BgL__ortest_2664z00_689; }  else 
{ /* ./Coerce/walk.scm 46 */
obj_t BgL_auxz00_1241;obj_t BgL_auxz00_1238;
BgL_auxz00_1241 = 
CNST_TABLE_REF(((long)3)); 
{ /* ./Coerce/walk.scm 46 */
BgL_globalz00_bglt BgL_obj1168z00_1088;
BgL_obj1168z00_1088 = 
(BgL_globalz00_bglt)(BgL_globalz00_685); 
BgL_auxz00_1238 = 
(((BgL_globalz00_bglt)CREF(BgL_obj1168z00_1088))->BgL_importz00); } 
BgL_test2722z00_687 = 
(BgL_auxz00_1238==BgL_auxz00_1241); } } } 
if(BgL_test2722z00_687)
{ /* ./Coerce/walk.scm 44 */
return 
BGl_pvariablezd2protozd2zzcoerce_pprotoz00(((long)3), 
(BgL_variablez00_bglt)(BgL_globalz00_685));}  else 
{ /* ./Coerce/walk.scm 44 */
return BFALSE;} } } } 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzcoerce_walkz00()
{ AN_OBJECT;
{ /* ./Coerce/walk.scm 15 */
return BUNSPEC;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzcoerce_walkz00()
{ AN_OBJECT;
{ /* ./Coerce/walk.scm 15 */
BGl_modulezd2initializa7ationz75zztools_speekz00(((long)23537), "coerce_walk"); 
BGl_modulezd2initializa7ationz75zztools_errorz00(((long)25566), "coerce_walk"); 
BGl_modulezd2initializa7ationz75zzengine_passz00(((long)10268), "coerce_walk"); 
BGl_modulezd2initializa7ationz75zztools_shapez00(((long)30833), "coerce_walk"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "coerce_walk"); 
BGl_modulezd2initializa7ationz75zztype_cachez00(((long)25848), "coerce_walk"); 
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "coerce_walk"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "coerce_walk"); 
BGl_modulezd2initializa7ationz75zzast_envz00(((long)62031), "coerce_walk"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "coerce_walk"); 
BGl_modulezd2initializa7ationz75zzast_removez00(((long)12493), "coerce_walk"); 
BGl_modulezd2initializa7ationz75zzcoerce_pprotoz00(((long)38303), "coerce_walk"); 
return 
BGl_modulezd2initializa7ationz75zzcoerce_coercez00(((long)56611), "coerce_walk");} 
}

