/*===========================================================================*/
/*   (Ast/let.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 Ast/let.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_methodzd2initzd2zzast_letz00();
static obj_t BGl_makezd2smartzd2genericzd2letzd2zzast_letz00(obj_t, BgL_letzd2varzd2_bglt, obj_t);
BGL_IMPORT obj_t open_input_string(obj_t);
extern obj_t BGl_letzd2funzd2zzast_nodez00;
extern obj_t BGl_sfunz00zzast_varz00;
BGL_EXPORTED_DECL BgL_nodez00_bglt BGl_letzd2ze3nodez31zzast_letz00(obj_t, obj_t, obj_t, 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);
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
BGL_IMPORT bool_t BGl_iszd2azf3z21zz__objectz00(obj_t, obj_t);
extern BgL_localz00_bglt BGl_makezd2userzd2localzd2svarzd2zzast_localz00(obj_t, BgL_typez00_bglt);
extern BgL_nodez00_bglt BGl_sexpzd2ze3nodez31zzast_sexpz00(obj_t, obj_t, obj_t, obj_t);
extern obj_t BGl_usezd2variablez12zc0zzast_sexpz00(BgL_variablez00_bglt, obj_t, obj_t);
extern BgL_letzd2funzd2_bglt BGl_makezd2letzd2funz00zzast_nodez00(obj_t, BgL_typez00_bglt, obj_t, obj_t, obj_t, BgL_nodez00_bglt);
extern obj_t BGl_za2_za2z00zztype_cachez00;
extern obj_t BGl_za2targetzd2languageza2zd2zzengine_paramz00;
extern obj_t BGl_za2procedureza2z00zztype_cachez00;
static BgL_letzd2varzd2_bglt BGl_letzd2orzd2letrecz00zzast_letz00(obj_t, BgL_letzd2varzd2_bglt);
BGL_IMPORT obj_t BGl_reversez12z12zz__r4_pairs_and_lists_6_3z00(obj_t);
extern obj_t BGl_varz00zzast_nodez00;
static obj_t BGl_cnstzd2initzd2zzast_letz00();
extern obj_t BGl_za2unspecza2z00zztype_cachez00;
static obj_t BGl_importedzd2moduleszd2initz00zzast_letz00();
static obj_t BGl__letzd2ze3nodez31zzast_letz00(obj_t, obj_t, obj_t, obj_t, obj_t);
extern obj_t BGl_findzd2locationzf2locz20zztools_locationz00(obj_t, obj_t);
static BgL_letzd2funzd2_bglt BGl_letzd2ze3labelsz31zzast_letz00(obj_t, BgL_nodez00_bglt, obj_t);
extern BgL_nodez00_bglt BGl_substitutez12z12zzast_substitutez00(obj_t, obj_t, BgL_nodez00_bglt, obj_t);
static BgL_letzd2varzd2_bglt BGl_makezd2genericzd2letz00zzast_letz00(obj_t, obj_t, obj_t, obj_t);
static obj_t BGl_toplevelzd2initzd2zzast_letz00();
BGL_IMPORT obj_t string_append_3(obj_t, obj_t, obj_t);
extern BgL_sequencez00_bglt BGl_makezd2sequencezd2zzast_nodez00(obj_t, BgL_typez00_bglt, obj_t, obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzast_letz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_tracez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_prognz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_locationz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_identz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_sexpz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_localz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_substitutez00(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 *);
extern obj_t BGl_normaliza7ezd2prognz75zztools_prognz00(obj_t);
extern bool_t BGl_userzd2symbolzf3z21zzast_identz00(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);
extern obj_t BGl_sequencez00zzast_nodez00;
extern BgL_setqz00_bglt BGl_makezd2setqzd2zzast_nodez00(obj_t, BgL_typez00_bglt, BgL_varz00_bglt, BgL_nodez00_bglt);
extern BgL_nodez00_bglt BGl_errorzd2sexpzd2ze3nodeze3zzast_sexpz00(obj_t, obj_t, obj_t);
extern BgL_varz00_bglt BGl_makezd2varzd2zzast_nodez00(obj_t, BgL_typez00_bglt, BgL_variablez00_bglt);
BGL_IMPORT obj_t bgl_append2(obj_t, obj_t);
extern obj_t BGl_za2objza2z00zztype_cachez00;
static obj_t BGl_requirezd2initializa7ationz75zzast_letz00 = BUNSPEC;
extern obj_t BGl_parsezd2idzd2zzast_identz00(obj_t, obj_t);
static obj_t BGl_libraryzd2moduleszd2initz00zzast_letz00();
static obj_t __cnst[ 6 ] ;


DEFINE_STRING( BGl_string3672z00zzast_letz00, BgL_bgl_string3672za700za7za7ast_letza7003699z00, "set! write let value location (jvm .net) ", 41 );
DEFINE_STRING( BGl_string3671z00zzast_letz00, BgL_bgl_string3671za700za7za7ast_letza7003700z00, "' form", 6 );
DEFINE_STRING( BGl_string3670z00zzast_letz00, BgL_bgl_string3670za700za7za7ast_letza7003701z00, "Illegal ", 8 );
DEFINE_EXPORT_PROCEDURE( BGl_letzd2ze3nodezd2envze3zzast_letz00, BgL_bgl__letza7d2za7e3nodeza731za7za7ast_letza7003702z00, BGl__letzd2ze3nodez31zzast_letz00, 0L, 4 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzast_letz00(long BgL_checksumz00_1601, char * BgL_fromz00_1602)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzast_letz00))
{ 
BGl_requirezd2initializa7ationz75zzast_letz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzast_letz00(); 
BGl_cnstzd2initzd2zzast_letz00(); 
BGl_importedzd2moduleszd2initz00zzast_letz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzast_letz00()
{ AN_OBJECT;
{ /* ./Ast/let.scm 14 */
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "ast_let"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "ast_let"); 
BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(((long)0), "ast_let"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzast_letz00()
{ AN_OBJECT;
{ /* ./Ast/let.scm 14 */
{ /* ./Ast/let.scm 14 */
obj_t BgL_cportz00_1594;
BgL_cportz00_1594 = 
open_input_string(BGl_string3672z00zzast_letz00); 
{ 
long BgL_iz00_1595;
BgL_iz00_1595 = ((long)5); 
BgL_loopz00_1596:
{ /* ./Ast/let.scm 14 */
bool_t BgL_test3674z00_1597;
BgL_test3674z00_1597 = 
(BgL_iz00_1595==((long)-1)); 
if(BgL_test3674z00_1597)
{ /* ./Ast/let.scm 14 */
return BUNSPEC;}  else 
{ /* ./Ast/let.scm 14 */
{ /* ./Ast/let.scm 14 */
obj_t BgL_arg3676z00_1598;
{ /* ./Ast/let.scm 14 */
obj_t BgL_list3679z00_1599;
BgL_list3679z00_1599 = 
MAKE_PAIR(BgL_cportz00_1594, BNIL); 
BgL_arg3676z00_1598 = 
BGl_readz00zz__readerz00(BgL_list3679z00_1599); } 
{ /* ./Ast/let.scm 14 */
int BgL_auxz00_1617;
BgL_auxz00_1617 = 
(int)(BgL_iz00_1595); 
CNST_TABLE_SET(BgL_auxz00_1617, BgL_arg3676z00_1598); } } 
{ /* ./Ast/let.scm 14 */
int BgL_auxz00_1600;
{ /* ./Ast/let.scm 14 */
long BgL_auxz00_1620;
BgL_auxz00_1620 = 
(BgL_iz00_1595-((long)1)); 
BgL_auxz00_1600 = 
(int)(BgL_auxz00_1620); } 
{ 
long BgL_iz00_1623;
BgL_iz00_1623 = 
(long)(BgL_auxz00_1600); 
BgL_iz00_1595 = BgL_iz00_1623; 
goto BgL_loopz00_1596;} } } } } } } 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzast_letz00()
{ AN_OBJECT;
{ /* ./Ast/let.scm 14 */
return BUNSPEC;} 
}



/* let->node */
BGL_EXPORTED_DEF BgL_nodez00_bglt BGl_letzd2ze3nodez31zzast_letz00(obj_t BgL_expz00_15, obj_t BgL_stackz00_16, obj_t BgL_olocz00_17, obj_t BgL_sitez00_18)
{ AN_OBJECT;
{ /* ./Ast/let.scm 32 */
{ 
obj_t BgL_bindingsz00_700;obj_t BgL_bodyz00_698;
{ /* ./Ast/let.scm 43 */
bool_t BgL_test2724z00_704;
BgL_test2724z00_704 = 
PAIRP(BgL_expz00_15); 
if(BgL_test2724z00_704)
{ /* ./Ast/let.scm 43 */
obj_t BgL_cdrzd2128zd2_705;
BgL_cdrzd2128zd2_705 = 
CDR(BgL_expz00_15); 
{ /* ./Ast/let.scm 43 */
bool_t BgL_test2725z00_706;
BgL_test2725z00_706 = 
PAIRP(BgL_cdrzd2128zd2_705); 
if(BgL_test2725z00_706)
{ /* ./Ast/let.scm 43 */
bool_t BgL_test2726z00_707;
{ /* ./Ast/let.scm 43 */
obj_t BgL_auxz00_1630;
BgL_auxz00_1630 = 
CAR(BgL_cdrzd2128zd2_705); 
BgL_test2726z00_707 = 
NULLP(BgL_auxz00_1630); } 
if(BgL_test2726z00_707)
{ /* ./Ast/let.scm 43 */
obj_t BgL_arg2728z00_708;
BgL_arg2728z00_708 = 
CDR(BgL_cdrzd2128zd2_705); 
{ /* ./Ast/let.scm 43 */
BgL_letzd2varzd2_bglt BgL_auxz00_1635;
BgL_bodyz00_698 = BgL_arg2728z00_708; 
{ /* ./Ast/let.scm 46 */
obj_t BgL_nlocz00_712;
BgL_nlocz00_712 = 
BGl_findzd2locationzf2locz20zztools_locationz00(BgL_expz00_15, BgL_olocz00_17); 
{ /* ./Ast/let.scm 46 */
obj_t BgL_blocz00_713;
{ /* ./Ast/let.scm 47 */
bool_t BgL_test2761z00_722;
BgL_test2761z00_722 = 
PAIRP(BgL_bodyz00_698); 
if(BgL_test2761z00_722)
{ /* ./Ast/let.scm 48 */
obj_t BgL_arg2763z00_723;
BgL_arg2763z00_723 = 
CAR(BgL_bodyz00_698); 
BgL_blocz00_713 = 
BGl_findzd2locationzf2locz20zztools_locationz00(BgL_arg2763z00_723, BgL_nlocz00_712); }  else 
{ /* ./Ast/let.scm 47 */
BgL_blocz00_713 = BgL_nlocz00_712; } } 
{ /* ./Ast/let.scm 47 */
BgL_nodez00_bglt BgL_bodyz00_714;
{ /* ./Ast/let.scm 50 */
obj_t BgL_arg2758z00_721;
BgL_arg2758z00_721 = 
BGl_normaliza7ezd2prognz75zztools_prognz00(BgL_bodyz00_698); 
BgL_bodyz00_714 = 
BGl_sexpzd2ze3nodez31zzast_sexpz00(BgL_arg2758z00_721, BgL_stackz00_16, BgL_blocz00_713, BgL_sitez00_18); } 
{ /* ./Ast/let.scm 50 */

{ /* ./Ast/let.scm 56 */
obj_t BgL_arg2748z00_715;BgL_typez00_bglt BgL_arg2749z00_716;BgL_nodez00_bglt BgL_arg2752z00_719;obj_t BgL_arg2753z00_720;
BgL_arg2748z00_715 = BgL_nlocz00_712; 
BgL_arg2749z00_716 = 
(((BgL_nodez00_bglt)CREF(BgL_bodyz00_714))->BgL_typez00); 
BgL_arg2752z00_719 = BgL_bodyz00_714; 
BgL_arg2753z00_720 = 
BGl_memqz00zz__r4_pairs_and_lists_6_3z00(BGl_za2targetzd2languageza2zd2zzengine_paramz00, 
CNST_TABLE_REF(((long)0))); 
BgL_auxz00_1635 = 
BGl_makezd2letzd2varz00zzast_nodez00(BgL_arg2748z00_715, BgL_arg2749z00_716, BUNSPEC, 
BINT(((long)-1)), BNIL, BgL_arg2752z00_719, 
CBOOL(BgL_arg2753z00_720)); } } } } } 
return 
(BgL_nodez00_bglt)(BgL_auxz00_1635);} }  else 
{ /* ./Ast/let.scm 43 */
obj_t BgL_arg2732z00_709;
BgL_arg2732z00_709 = 
CAR(BgL_cdrzd2128zd2_705); 
{ /* ./Ast/let.scm 43 */
obj_t BgL_auxz00_1651;
BgL_bindingsz00_700 = BgL_arg2732z00_709; 
{ /* ./Ast/let.scm 62 */
bool_t BgL_test2768z00_724;
{ /* ./Ast/let.scm 62 */
bool_t BgL_testz00_1652;
if(
PAIRP(BgL_bindingsz00_700))
{ /* ./Ast/let.scm 62 */
BgL_testz00_1652 = ((bool_t)1)
; }  else 
{ /* ./Ast/let.scm 62 */
BgL_testz00_1652 = 
NULLP(BgL_bindingsz00_700)
; } 
if(BgL_testz00_1652)
{ 
obj_t BgL_bindingsz00_734;
BgL_bindingsz00_734 = BgL_bindingsz00_700; 
BgL_loopz00_735:
if(
NULLP(BgL_bindingsz00_734))
{ /* ./Ast/let.scm 64 */
BgL_test2768z00_724 = ((bool_t)0); }  else 
{ /* ./Ast/let.scm 66 */
obj_t BgL_bindingz00_737;
BgL_bindingz00_737 = 
CAR(BgL_bindingsz00_734); 
{ 

if(
PAIRP(BgL_bindingz00_737))
{ /* ./Ast/let.scm 67 */
obj_t BgL_cdrzd2149zd2_742;
BgL_cdrzd2149zd2_742 = 
CDR(BgL_bindingz00_737); 
if(
PAIRP(BgL_cdrzd2149zd2_742))
{ /* ./Ast/let.scm 67 */
bool_t BgL_testz00_1664;
{ /* ./Ast/let.scm 67 */
obj_t BgL_auxz00_1665;
BgL_auxz00_1665 = 
CDR(BgL_cdrzd2149zd2_742); 
BgL_testz00_1664 = 
NULLP(BgL_auxz00_1665); } 
if(BgL_testz00_1664)
{ /* ./Ast/let.scm 67 */
{ 
obj_t BgL_bindingsz00_1668;
BgL_bindingsz00_1668 = 
CDR(BgL_bindingsz00_734); 
BgL_bindingsz00_734 = BgL_bindingsz00_1668; 
goto BgL_loopz00_735;} }  else 
{ /* ./Ast/let.scm 67 */
BgL_test2768z00_724 = ((bool_t)1); } }  else 
{ /* ./Ast/let.scm 67 */
BgL_test2768z00_724 = ((bool_t)1); } }  else 
{ /* ./Ast/let.scm 67 */
BgL_test2768z00_724 = ((bool_t)1); } } } }  else 
{ /* ./Ast/let.scm 62 */
BgL_test2768z00_724 = ((bool_t)1); } } 
if(BgL_test2768z00_724)
{ /* ./Ast/let.scm 72 */
obj_t BgL_arg2770z00_725;obj_t BgL_arg2771z00_726;
{ /* ./Ast/let.scm 72 */
obj_t BgL_arg2775z00_728;
{ /* ./Ast/let.scm 73 */
obj_t BgL_arg2779z00_730;
BgL_arg2779z00_730 = 
CAR(BgL_expz00_15); 
BgL_arg2775z00_728 = 
SYMBOL_TO_STRING(BgL_arg2779z00_730); } 
BgL_arg2770z00_725 = 
string_append_3(BGl_string3670z00zzast_letz00, BgL_arg2775z00_728, BGl_string3671z00zzast_letz00); } 
BgL_arg2771z00_726 = 
BGl_findzd2locationzf2locz20zztools_locationz00(BgL_expz00_15, BgL_olocz00_17); 
{ /* ./Ast/let.scm 72 */
BgL_nodez00_bglt BgL_auxz00_1675;
BgL_auxz00_1675 = 
BGl_errorzd2sexpzd2ze3nodeze3zzast_sexpz00(BgL_arg2770z00_725, BgL_expz00_15, BgL_arg2771z00_726); 
BgL_auxz00_1651 = 
(obj_t)(BgL_auxz00_1675); } }  else 
{ /* ./Ast/let.scm 77 */
obj_t BgL_arg2784z00_731;BgL_letzd2varzd2_bglt BgL_arg2785z00_732;
BgL_arg2784z00_731 = 
CAR(BgL_expz00_15); 
BgL_arg2785z00_732 = 
BGl_makezd2genericzd2letz00zzast_letz00(BgL_expz00_15, BgL_stackz00_16, BgL_olocz00_17, BgL_sitez00_18); 
BgL_auxz00_1651 = 
BGl_makezd2smartzd2genericzd2letzd2zzast_letz00(BgL_arg2784z00_731, BgL_arg2785z00_732, BgL_sitez00_18); } } 
return 
(BgL_nodez00_bglt)(BgL_auxz00_1651);} } }  else 
{ /* ./Ast/let.scm 43 */
BgL_tagzd2122zd2_702:
{ /* ./Ast/let.scm 81 */
obj_t BgL_arg2816z00_748;obj_t BgL_arg2817z00_749;
{ /* ./Ast/let.scm 81 */
obj_t BgL_arg2821z00_751;
{ /* ./Ast/let.scm 82 */
obj_t BgL_arg2825z00_753;
BgL_arg2825z00_753 = 
CAR(BgL_expz00_15); 
BgL_arg2821z00_751 = 
SYMBOL_TO_STRING(BgL_arg2825z00_753); } 
BgL_arg2816z00_748 = 
string_append_3(BGl_string3670z00zzast_letz00, BgL_arg2821z00_751, BGl_string3671z00zzast_letz00); } 
BgL_arg2817z00_749 = 
BGl_findzd2locationzf2locz20zztools_locationz00(BgL_expz00_15, BgL_olocz00_17); 
return 
BGl_errorzd2sexpzd2ze3nodeze3zzast_sexpz00(BgL_arg2816z00_748, BgL_expz00_15, BgL_arg2817z00_749);} } } }  else 
{ /* ./Ast/let.scm 43 */
goto BgL_tagzd2122zd2_702;} } } } 
}



/* _let->node */
obj_t BGl__letzd2ze3nodez31zzast_letz00(obj_t BgL_envz00_1588, obj_t BgL_expz00_1589, obj_t BgL_stackz00_1590, obj_t BgL_olocz00_1591, obj_t BgL_sitez00_1592)
{ AN_OBJECT;
{ /* ./Ast/let.scm 32 */
{ /* ./Ast/let.scm 33 */
BgL_nodez00_bglt BgL_auxz00_1687;
BgL_auxz00_1687 = 
BGl_letzd2ze3nodez31zzast_letz00(BgL_expz00_1589, BgL_stackz00_1590, BgL_olocz00_1591, BgL_sitez00_1592); 
return 
(obj_t)(BgL_auxz00_1687);} } 
}



/* make-generic-let */
BgL_letzd2varzd2_bglt BGl_makezd2genericzd2letz00zzast_letz00(obj_t BgL_expz00_19, obj_t BgL_stackz00_20, obj_t BgL_olocz00_21, obj_t BgL_sitez00_22)
{ AN_OBJECT;
{ /* ./Ast/let.scm 90 */
{ /* ./Ast/let.scm 91 */
obj_t BgL_bindingsz00_754;
{ /* ./Ast/let.scm 91 */
obj_t BgL_auxz00_1690;
BgL_auxz00_1690 = 
CDR(BgL_expz00_19); 
BgL_bindingsz00_754 = 
CAR(BgL_auxz00_1690); } 
{ /* ./Ast/let.scm 91 */
obj_t BgL_locz00_755;
BgL_locz00_755 = 
BGl_findzd2locationzf2locz20zztools_locationz00(BgL_expz00_19, BgL_olocz00_21); 
{ /* ./Ast/let.scm 92 */
obj_t BgL_blocz00_756;
{ /* ./Ast/let.scm 93 */
bool_t BgL_test2933z00_823;
{ /* ./Ast/let.scm 93 */
obj_t BgL_auxz00_1694;
{ /* ./Ast/let.scm 93 */
obj_t BgL_auxz00_1695;
BgL_auxz00_1695 = 
CDR(BgL_expz00_19); 
BgL_auxz00_1694 = 
CDR(BgL_auxz00_1695); } 
BgL_test2933z00_823 = 
PAIRP(BgL_auxz00_1694); } 
if(BgL_test2933z00_823)
{ /* ./Ast/let.scm 94 */
obj_t BgL_arg2935z00_824;
{ /* ./Ast/let.scm 94 */
obj_t BgL_auxz00_1700;
{ /* ./Ast/let.scm 94 */
obj_t BgL_auxz00_1701;
BgL_auxz00_1701 = 
CDR(BgL_expz00_19); 
BgL_auxz00_1700 = 
CDR(BgL_auxz00_1701); } 
BgL_arg2935z00_824 = 
CAR(BgL_auxz00_1700); } 
BgL_blocz00_756 = 
BGl_findzd2locationzf2locz20zztools_locationz00(BgL_arg2935z00_824, BFALSE); }  else 
{ /* ./Ast/let.scm 93 */
BgL_blocz00_756 = BFALSE; } } 
{ /* ./Ast/let.scm 96 */
obj_t BgL_bodyz00_758;
{ /* ./Ast/let.scm 99 */
obj_t BgL_arg2924z00_820;
{ /* ./Ast/let.scm 99 */
obj_t BgL_auxz00_1706;
BgL_auxz00_1706 = 
CDR(BgL_expz00_19); 
BgL_arg2924z00_820 = 
CDR(BgL_auxz00_1706); } 
BgL_bodyz00_758 = 
BGl_normaliza7ezd2prognz75zztools_prognz00(BgL_arg2924z00_820); } 
{ /* ./Ast/let.scm 99 */
obj_t BgL_loczd2biszd2_759;
BgL_loczd2biszd2_759 = 
BGl_findzd2locationzf2locz20zztools_locationz00(BgL_bodyz00_758, BgL_locz00_755); 
{ /* ./Ast/let.scm 100 */
obj_t BgL_nlocz00_760;
{ /* ./Ast/let.scm 101 */
bool_t BgL_testz00_1711;
if(
STRUCTP(BgL_blocz00_756))
{ /* ./Ast/let.scm 101 */
obj_t BgL_auxz00_1716;obj_t BgL_auxz00_1714;
BgL_auxz00_1716 = 
CNST_TABLE_REF(((long)1)); 
BgL_auxz00_1714 = 
STRUCT_KEY(BgL_blocz00_756); 
BgL_testz00_1711 = 
(BgL_auxz00_1714==BgL_auxz00_1716); }  else 
{ /* ./Ast/let.scm 101 */
BgL_testz00_1711 = ((bool_t)0)
; } 
if(BgL_testz00_1711)
{ /* ./Ast/let.scm 101 */
BgL_nlocz00_760 = BgL_blocz00_756; }  else 
{ /* ./Ast/let.scm 101 */
BgL_nlocz00_760 = BgL_locz00_755; } } 
{ /* ./Ast/let.scm 101 */
obj_t BgL_framez00_761;
{ /* ./Ast/let.scm 104 */
bool_t BgL_test2893z00_803;
BgL_test2893z00_803 = 
NULLP(BgL_bindingsz00_754); 
if(BgL_test2893z00_803)
{ /* ./Ast/let.scm 104 */
BgL_framez00_761 = BNIL; }  else 
{ /* ./Ast/let.scm 104 */
obj_t BgL_head2665z00_804;
BgL_head2665z00_804 = 
MAKE_PAIR(BNIL, BNIL); 
{ 
obj_t BgL_l2663z00_805;obj_t BgL_tail2666z00_806;
BgL_l2663z00_805 = BgL_bindingsz00_754; 
BgL_tail2666z00_806 = BgL_head2665z00_804; 
BgL_map2664z00_807:
{ /* ./Ast/let.scm 104 */
bool_t BgL_test2895z00_808;
BgL_test2895z00_808 = 
NULLP(BgL_l2663z00_805); 
if(BgL_test2895z00_808)
{ /* ./Ast/let.scm 104 */
BgL_framez00_761 = 
CDR(BgL_head2665z00_804); }  else 
{ /* ./Ast/let.scm 105 */
obj_t BgL_newtail2667z00_809;
{ /* ./Ast/let.scm 105 */
BgL_localz00_bglt BgL_arg2903z00_811;
{ /* ./Ast/let.scm 105 */
obj_t BgL_bindingz00_813;
BgL_bindingz00_813 = 
CAR(BgL_l2663z00_805); 
{ /* ./Ast/let.scm 105 */
obj_t BgL_varze2idze2_814;
{ /* ./Ast/let.scm 105 */
obj_t BgL_arg2913z00_818;
BgL_arg2913z00_818 = 
CAR(BgL_bindingz00_813); 
BgL_varze2idze2_814 = 
BGl_parsezd2idzd2zzast_identz00(BgL_arg2913z00_818, BgL_nlocz00_760); } 
{ /* ./Ast/let.scm 105 */
obj_t BgL_idz00_815;
BgL_idz00_815 = 
CAR(BgL_varze2idze2_814); 
{ /* ./Ast/let.scm 106 */
obj_t BgL_typez00_816;
BgL_typez00_816 = 
CDR(BgL_varze2idze2_814); 
{ /* ./Ast/let.scm 107 */

{ /* ./Ast/let.scm 108 */
bool_t BgL_test2906z00_817;
BgL_test2906z00_817 = 
BGl_userzd2symbolzf3z21zzast_identz00(BgL_idz00_815); 
if(BgL_test2906z00_817)
{ /* ./Ast/let.scm 108 */
BgL_arg2903z00_811 = 
BGl_makezd2userzd2localzd2svarzd2zzast_localz00(BgL_idz00_815, 
(BgL_typez00_bglt)(BgL_typez00_816)); }  else 
{ /* ./Ast/let.scm 108 */
BgL_arg2903z00_811 = 
BGl_makezd2localzd2svarz00zzast_localz00(BgL_idz00_815, 
(BgL_typez00_bglt)(BgL_typez00_816)); } } } } } } } 
{ /* ./Ast/let.scm 104 */
obj_t BgL_obj1z00_1435;
BgL_obj1z00_1435 = 
(obj_t)(BgL_arg2903z00_811); 
BgL_newtail2667z00_809 = 
MAKE_PAIR(BgL_obj1z00_1435, BNIL); } } 
SET_CDR(BgL_tail2666z00_806, BgL_newtail2667z00_809); 
{ /* ./Ast/let.scm 104 */
obj_t BgL_arg2899z00_810;
BgL_arg2899z00_810 = 
CDR(BgL_l2663z00_805); 
{ 
obj_t BgL_tail2666z00_1741;obj_t BgL_l2663z00_1740;
BgL_l2663z00_1740 = BgL_arg2899z00_810; 
BgL_tail2666z00_1741 = BgL_newtail2667z00_809; 
BgL_tail2666z00_806 = BgL_tail2666z00_1741; 
BgL_l2663z00_805 = BgL_l2663z00_1740; 
goto BgL_map2664z00_807;} } } } } } } 
{ /* ./Ast/let.scm 104 */
obj_t BgL_newzd2stackzd2_762;
BgL_newzd2stackzd2_762 = 
bgl_append2(BgL_framez00_761, BgL_stackz00_20); 
{ /* ./Ast/let.scm 112 */

{ /* ./Ast/let.scm 119 */
BgL_nodez00_bglt BgL_bodyz00_763;
BgL_bodyz00_763 = 
BGl_sexpzd2ze3nodez31zzast_sexpz00(BgL_bodyz00_758, BgL_newzd2stackzd2_762, BgL_nlocz00_760, 
CNST_TABLE_REF(((long)2))); 
{ /* ./Ast/let.scm 119 */
obj_t BgL_bstackz00_764;
{ /* ./Ast/let.scm 120 */
bool_t BgL_testz00_1745;
{ /* ./Ast/let.scm 120 */
obj_t BgL_auxz00_1748;obj_t BgL_auxz00_1746;
BgL_auxz00_1748 = 
CNST_TABLE_REF(((long)3)); 
BgL_auxz00_1746 = 
CAR(BgL_expz00_19); 
BgL_testz00_1745 = 
(BgL_auxz00_1746==BgL_auxz00_1748); } 
if(BgL_testz00_1745)
{ /* ./Ast/let.scm 120 */
BgL_bstackz00_764 = BgL_stackz00_20; }  else 
{ /* ./Ast/let.scm 120 */
BgL_bstackz00_764 = BgL_newzd2stackzd2_762; } } 
{ /* ./Ast/let.scm 120 */
obj_t BgL_bindingsz00_765;
{ /* ./Ast/let.scm 121 */
bool_t BgL_test2851z00_780;
BgL_test2851z00_780 = 
NULLP(BgL_bindingsz00_754); 
if(BgL_test2851z00_780)
{ /* ./Ast/let.scm 121 */
BgL_bindingsz00_765 = BNIL; }  else 
{ /* ./Ast/let.scm 121 */
obj_t BgL_head2670z00_781;
BgL_head2670z00_781 = 
MAKE_PAIR(BNIL, BNIL); 
{ 
obj_t BgL_ll2668z00_782;obj_t BgL_ll2669z00_783;obj_t BgL_tail2671z00_784;
BgL_ll2668z00_782 = BgL_bindingsz00_754; 
BgL_ll2669z00_783 = BgL_framez00_761; 
BgL_tail2671z00_784 = BgL_head2670z00_781; 
BgL_map2673z00_785:
{ /* ./Ast/let.scm 121 */
bool_t BgL_test2853z00_786;
BgL_test2853z00_786 = 
NULLP(BgL_ll2668z00_782); 
if(BgL_test2853z00_786)
{ /* ./Ast/let.scm 121 */
BgL_bindingsz00_765 = 
CDR(BgL_head2670z00_781); }  else 
{ /* ./Ast/let.scm 122 */
obj_t BgL_newtail2672z00_787;
{ /* ./Ast/let.scm 122 */
obj_t BgL_arg2863z00_790;
{ /* ./Ast/let.scm 122 */
obj_t BgL_bindingz00_792;obj_t BgL_varz00_793;
BgL_bindingz00_792 = 
CAR(BgL_ll2668z00_782); 
BgL_varz00_793 = 
CAR(BgL_ll2669z00_783); 
{ /* ./Ast/let.scm 124 */
BgL_nodez00_bglt BgL_arg2868z00_794;
{ /* ./Ast/let.scm 124 */
obj_t BgL_arg2871z00_795;obj_t BgL_arg2872z00_796;obj_t BgL_arg2873z00_797;
{ /* ./Ast/let.scm 124 */
obj_t BgL_arg2876z00_798;
BgL_arg2876z00_798 = 
CDR(BgL_bindingz00_792); 
BgL_arg2871z00_795 = 
BGl_normaliza7ezd2prognz75zztools_prognz00(BgL_arg2876z00_798); } 
BgL_arg2872z00_796 = 
BGl_findzd2locationzf2locz20zztools_locationz00(BgL_bindingz00_792, BgL_nlocz00_760); 
BgL_arg2873z00_797 = 
CNST_TABLE_REF(((long)2)); 
BgL_arg2868z00_794 = 
BGl_sexpzd2ze3nodez31zzast_sexpz00(BgL_arg2871z00_795, BgL_bstackz00_764, BgL_arg2872z00_796, BgL_arg2873z00_797); } 
{ /* ./Ast/let.scm 122 */
obj_t BgL_auxz00_1764;
BgL_auxz00_1764 = 
(obj_t)(BgL_arg2868z00_794); 
BgL_arg2863z00_790 = 
MAKE_PAIR(BgL_varz00_793, BgL_auxz00_1764); } } } 
BgL_newtail2672z00_787 = 
MAKE_PAIR(BgL_arg2863z00_790, BNIL); } 
SET_CDR(BgL_tail2671z00_784, BgL_newtail2672z00_787); 
{ /* ./Ast/let.scm 121 */
obj_t BgL_arg2857z00_788;obj_t BgL_arg2858z00_789;
BgL_arg2857z00_788 = 
CDR(BgL_ll2668z00_782); 
BgL_arg2858z00_789 = 
CDR(BgL_ll2669z00_783); 
{ 
obj_t BgL_tail2671z00_1773;obj_t BgL_ll2669z00_1772;obj_t BgL_ll2668z00_1771;
BgL_ll2668z00_1771 = BgL_arg2857z00_788; 
BgL_ll2669z00_1772 = BgL_arg2858z00_789; 
BgL_tail2671z00_1773 = BgL_newtail2672z00_787; 
BgL_tail2671z00_784 = BgL_tail2671z00_1773; 
BgL_ll2669z00_783 = BgL_ll2669z00_1772; 
BgL_ll2668z00_782 = BgL_ll2668z00_1771; 
goto BgL_map2673z00_785;} } } } } } } 
{ /* ./Ast/let.scm 121 */
obj_t BgL_locz00_766;
{ /* ./Ast/let.scm 130 */
obj_t BgL_locz00_772;
{ /* ./Ast/let.scm 132 */
obj_t BgL_arg2839z00_774;
if(
PAIRP(BgL_bindingsz00_765))
{ /* ./Ast/let.scm 133 */
BgL_nodez00_bglt BgL_obj1560z00_1458;
{ /* ./Ast/let.scm 133 */
obj_t BgL_auxz00_1776;
{ /* ./Ast/let.scm 133 */
obj_t BgL_auxz00_1777;
BgL_auxz00_1777 = 
CAR(BgL_bindingsz00_765); 
BgL_auxz00_1776 = 
CDR(BgL_auxz00_1777); } 
BgL_obj1560z00_1458 = 
(BgL_nodez00_bglt)(BgL_auxz00_1776); } 
BgL_arg2839z00_774 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1560z00_1458))->BgL_locz00); }  else 
{ /* ./Ast/let.scm 132 */
BgL_arg2839z00_774 = 
(((BgL_nodez00_bglt)CREF(BgL_bodyz00_763))->BgL_locz00); } 
BgL_locz00_772 = 
BGl_findzd2locationzf2locz20zztools_locationz00(BgL_expz00_19, BgL_arg2839z00_774); } 
{ /* ./Ast/let.scm 135 */
bool_t BgL_testz00_1784;
if(
STRUCTP(BgL_locz00_772))
{ /* ./Ast/let.scm 135 */
obj_t BgL_auxz00_1789;obj_t BgL_auxz00_1787;
BgL_auxz00_1789 = 
CNST_TABLE_REF(((long)1)); 
BgL_auxz00_1787 = 
STRUCT_KEY(BgL_locz00_772); 
BgL_testz00_1784 = 
(BgL_auxz00_1787==BgL_auxz00_1789); }  else 
{ /* ./Ast/let.scm 135 */
BgL_testz00_1784 = ((bool_t)0)
; } 
if(BgL_testz00_1784)
{ /* ./Ast/let.scm 135 */
BgL_locz00_766 = BgL_locz00_772; }  else 
{ /* ./Ast/let.scm 135 */
BgL_locz00_766 = BgL_olocz00_21; } } } 
{ /* ./Ast/let.scm 130 */

{ /* ./Ast/let.scm 138 */
obj_t BgL_arg2830z00_767;obj_t BgL_arg2831z00_768;obj_t BgL_arg2833z00_770;BgL_nodez00_bglt BgL_arg2834z00_771;
BgL_arg2830z00_767 = BgL_locz00_766; 
BgL_arg2831z00_768 = BGl_za2_za2z00zztype_cachez00; 
BgL_arg2833z00_770 = BgL_bindingsz00_765; 
BgL_arg2834z00_771 = BgL_bodyz00_763; 
return 
BGl_makezd2letzd2varz00zzast_nodez00(BgL_arg2830z00_767, 
(BgL_typez00_bglt)(BgL_arg2831z00_768), BUNSPEC, 
BINT(((long)-1)), BgL_arg2833z00_770, BgL_arg2834z00_771, ((bool_t)1));} } } } } } } } } } } } } } } } 
}



/* make-smart-generic-let */
obj_t BGl_makezd2smartzd2genericzd2letzd2zzast_letz00(obj_t BgL_letzf2letreczf2_23, BgL_letzd2varzd2_bglt BgL_nodezd2letzd2_24, obj_t BgL_sitez00_25)
{ AN_OBJECT;
{ /* ./Ast/let.scm 155 */
{ 
obj_t BgL_bindingsz00_826;obj_t BgL_funz00_827;obj_t BgL_valuez00_828;
{ /* ./Ast/let.scm 156 */
obj_t BgL_arg2946z00_830;
BgL_arg2946z00_830 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_nodezd2letzd2_24))->BgL_bindingsz00); 
BgL_bindingsz00_826 = BgL_arg2946z00_830; 
BgL_funz00_827 = BNIL; 
BgL_valuez00_828 = BNIL; 
BgL_loopz00_829:
{ /* ./Ast/let.scm 159 */
bool_t BgL_test2951z00_833;
BgL_test2951z00_833 = 
NULLP(BgL_bindingsz00_826); 
if(BgL_test2951z00_833)
{ /* ./Ast/let.scm 159 */
{ /* ./Ast/let.scm 165 */
bool_t BgL_test2952z00_834;
BgL_test2952z00_834 = 
NULLP(BgL_funz00_827); 
if(BgL_test2952z00_834)
{ /* ./Ast/let.scm 165 */
{ /* ./Ast/let.scm 169 */
BgL_letzd2varzd2_bglt BgL_auxz00_1800;
BgL_auxz00_1800 = 
BGl_letzd2orzd2letrecz00zzast_letz00(BgL_letzf2letreczf2_23, BgL_nodezd2letzd2_24); 
return 
(obj_t)(BgL_auxz00_1800);} }  else 
{ /* ./Ast/let.scm 170 */
bool_t BgL_test2954z00_835;
BgL_test2954z00_835 = 
NULLP(BgL_valuez00_828); 
if(BgL_test2954z00_835)
{ /* ./Ast/let.scm 170 */
{ /* ./Ast/let.scm 169 */
BgL_nodez00_bglt BgL_arg2956z00_836;
BgL_arg2956z00_836 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_nodezd2letzd2_24))->BgL_bodyz00); 
{ /* ./Ast/let.scm 169 */
BgL_letzd2funzd2_bglt BgL_auxz00_1806;
BgL_auxz00_1806 = 
BGl_letzd2ze3labelsz31zzast_letz00(BgL_funz00_827, BgL_arg2956z00_836, BgL_sitez00_25); 
return 
(obj_t)(BgL_auxz00_1806);} } }  else 
{ /* ./Ast/let.scm 170 */
{ /* ./Ast/let.scm 172 */
obj_t BgL_arg2960z00_837;
BgL_arg2960z00_837 = 
BGl_reversez12z12zz__r4_pairs_and_lists_6_3z00(BgL_valuez00_828); 
{ /* ./Ast/let.scm 172 */
BgL_letzd2varzd2_bglt BgL_obj2488z00_1472;obj_t BgL_val2487z00_1473;
BgL_obj2488z00_1472 = BgL_nodezd2letzd2_24; 
BgL_val2487z00_1473 = BgL_arg2960z00_837; 
((((BgL_letzd2varzd2_bglt)CREF(BgL_obj2488z00_1472))->BgL_bindingsz00) = ((obj_t)BgL_val2487z00_1473), BUNSPEC); } } 
{ /* ./Ast/let.scm 174 */
BgL_letzd2varzd2_bglt BgL_letz00_838;
BgL_letz00_838 = 
BGl_letzd2orzd2letrecz00zzast_letz00(BgL_letzf2letreczf2_23, BgL_nodezd2letzd2_24); 
{ /* ./Ast/let.scm 176 */
BgL_letzd2funzd2_bglt BgL_arg2964z00_839;
{ /* ./Ast/let.scm 176 */
BgL_nodez00_bglt BgL_arg2967z00_840;
BgL_arg2967z00_840 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_letz00_838))->BgL_bodyz00); 
BgL_arg2964z00_839 = 
BGl_letzd2ze3labelsz31zzast_letz00(BgL_funz00_827, BgL_arg2967z00_840, BgL_sitez00_25); } 
{ /* ./Ast/let.scm 175 */
BgL_letzd2varzd2_bglt BgL_obj2491z00_1475;BgL_nodez00_bglt BgL_val2490z00_1476;
BgL_obj2491z00_1475 = BgL_letz00_838; 
BgL_val2490z00_1476 = 
(BgL_nodez00_bglt)(BgL_arg2964z00_839); 
((((BgL_letzd2varzd2_bglt)CREF(BgL_obj2491z00_1475))->BgL_bodyz00) = ((BgL_nodez00_bglt)BgL_val2490z00_1476), BUNSPEC); } } 
return 
(obj_t)(BgL_letz00_838);} } } } }  else 
{ /* ./Ast/let.scm 179 */
obj_t BgL_bindingz00_841;
BgL_bindingz00_841 = 
CAR(BgL_bindingsz00_826); 
{ /* ./Ast/let.scm 179 */
obj_t BgL_varz00_842;
BgL_varz00_842 = 
CAR(BgL_bindingz00_841); 
{ /* ./Ast/let.scm 180 */
obj_t BgL_sexpz00_843;
BgL_sexpz00_843 = 
CDR(BgL_bindingz00_841); 
{ /* ./Ast/let.scm 181 */

{ /* ./Ast/let.scm 182 */
bool_t BgL_test2973z00_844;
BgL_test2973z00_844 = 
BGl_iszd2azf3z21zz__objectz00(BgL_sexpz00_843, BGl_letzd2funzd2zzast_nodez00); 
if(BgL_test2973z00_844)
{ /* ./Ast/let.scm 183 */
obj_t BgL_localsz00_845;
{ /* ./Ast/let.scm 183 */
BgL_letzd2funzd2_bglt BgL_obj2448z00_1481;
BgL_obj2448z00_1481 = 
(BgL_letzd2funzd2_bglt)(BgL_sexpz00_843); 
BgL_localsz00_845 = 
(((BgL_letzd2funzd2_bglt)CREF(BgL_obj2448z00_1481))->BgL_localsz00); } 
{ /* ./Ast/let.scm 183 */
BgL_nodez00_bglt BgL_bodyz00_846;
{ /* ./Ast/let.scm 184 */
BgL_letzd2funzd2_bglt BgL_obj2451z00_1482;
BgL_obj2451z00_1482 = 
(BgL_letzd2funzd2_bglt)(BgL_sexpz00_843); 
BgL_bodyz00_846 = 
(((BgL_letzd2funzd2_bglt)CREF(BgL_obj2451z00_1482))->BgL_bodyz00); } 
{ /* ./Ast/let.scm 184 */

{ /* ./Ast/let.scm 185 */
bool_t BgL_test2974z00_847;
if(
NULLP(BgL_localsz00_845))
{ /* ./Ast/let.scm 185 */
BgL_test2974z00_847 = ((bool_t)1); }  else 
{ /* ./Ast/let.scm 185 */
bool_t BgL_testz00_1828;
{ /* ./Ast/let.scm 185 */
obj_t BgL_auxz00_1829;
BgL_auxz00_1829 = 
CDR(BgL_localsz00_845); 
BgL_testz00_1828 = 
NULLP(BgL_auxz00_1829); } 
if(BgL_testz00_1828)
{ /* ./Ast/let.scm 185 */
BgL_test2974z00_847 = ((bool_t)0); }  else 
{ /* ./Ast/let.scm 185 */
BgL_test2974z00_847 = ((bool_t)1); } } 
if(BgL_test2974z00_847)
{ /* ./Ast/let.scm 189 */
obj_t BgL_arg2976z00_848;obj_t BgL_arg2977z00_849;
BgL_arg2976z00_848 = 
CDR(BgL_bindingsz00_826); 
{ /* ./Ast/let.scm 191 */
obj_t BgL_arg2981z00_850;
BgL_arg2981z00_850 = 
CAR(BgL_bindingsz00_826); 
BgL_arg2977z00_849 = 
MAKE_PAIR(BgL_arg2981z00_850, BgL_valuez00_828); } 
{ 
obj_t BgL_valuez00_1837;obj_t BgL_bindingsz00_1836;
BgL_bindingsz00_1836 = BgL_arg2976z00_848; 
BgL_valuez00_1837 = BgL_arg2977z00_849; 
BgL_valuez00_828 = BgL_valuez00_1837; 
BgL_bindingsz00_826 = BgL_bindingsz00_1836; 
goto BgL_loopz00_829;} }  else 
{ /* ./Ast/let.scm 192 */
bool_t BgL_test2984z00_851;
{ /* ./Ast/let.scm 192 */
obj_t BgL_obj1640z00_1488;
BgL_obj1640z00_1488 = 
(obj_t)(BgL_bodyz00_846); 
BgL_test2984z00_851 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1640z00_1488, BGl_varz00zzast_nodez00); } 
if(BgL_test2984z00_851)
{ /* ./Ast/let.scm 193 */
BgL_variablez00_bglt BgL_resz00_852;obj_t BgL_auxz00_853;
{ /* ./Ast/let.scm 193 */
BgL_varz00_bglt BgL_obj1625z00_1489;
BgL_obj1625z00_1489 = 
(BgL_varz00_bglt)(BgL_bodyz00_846); 
BgL_resz00_852 = 
(((BgL_varz00_bglt)CREF(BgL_obj1625z00_1489))->BgL_variablez00); } 
BgL_auxz00_853 = 
CAR(BgL_localsz00_845); 
{ /* ./Ast/let.scm 195 */
bool_t BgL_test2985z00_854;
{ /* ./Ast/let.scm 195 */
bool_t BgL_test3004z00_861;
{ /* ./Ast/let.scm 195 */
obj_t BgL_auxz00_1844;
BgL_auxz00_1844 = 
(obj_t)(BgL_resz00_852); 
BgL_test3004z00_861 = 
(BgL_auxz00_1844==BgL_auxz00_853); } 
if(BgL_test3004z00_861)
{ /* ./Ast/let.scm 200 */
bool_t BgL_test3005z00_862;
{ /* ./Ast/let.scm 199 */
obj_t BgL_auxz00_1851;obj_t BgL_auxz00_1848;
BgL_auxz00_1851 = 
CNST_TABLE_REF(((long)4)); 
{ /* ./Ast/let.scm 199 */
BgL_variablez00_bglt BgL_obj1103z00_1491;
BgL_obj1103z00_1491 = 
(BgL_variablez00_bglt)(BgL_varz00_842); 
BgL_auxz00_1848 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1103z00_1491))->BgL_accessz00); } 
BgL_test3005z00_862 = 
(BgL_auxz00_1848==BgL_auxz00_1851); } 
if(BgL_test3005z00_862)
{ /* ./Ast/let.scm 200 */
BgL_test2985z00_854 = ((bool_t)1); }  else 
{ /* ./Ast/let.scm 200 */
bool_t BgL_test3006z00_863;
{ /* ./Ast/let.scm 201 */
bool_t BgL_test3007z00_864;
{ /* ./Ast/let.scm 201 */
BgL_typez00_bglt BgL_arg3018z00_868;
{ /* ./Ast/let.scm 201 */
BgL_variablez00_bglt BgL_obj1097z00_1492;
BgL_obj1097z00_1492 = 
(BgL_variablez00_bglt)(BgL_varz00_842); 
BgL_arg3018z00_868 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_1492))->BgL_typez00); } 
{ /* ./Ast/let.scm 201 */
obj_t BgL_auxz00_1857;
BgL_auxz00_1857 = 
(obj_t)(BgL_arg3018z00_868); 
BgL_test3007z00_864 = 
(BgL_auxz00_1857==BGl_za2procedureza2z00zztype_cachez00); } } 
if(BgL_test3007z00_864)
{ /* ./Ast/let.scm 201 */
BgL_test3006z00_863 = ((bool_t)1); }  else 
{ /* ./Ast/let.scm 202 */
bool_t BgL_test3008z00_865;
{ /* ./Ast/let.scm 202 */
BgL_typez00_bglt BgL_arg3014z00_867;
{ /* ./Ast/let.scm 202 */
BgL_variablez00_bglt BgL_obj1097z00_1493;
BgL_obj1097z00_1493 = 
(BgL_variablez00_bglt)(BgL_varz00_842); 
BgL_arg3014z00_867 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_1493))->BgL_typez00); } 
{ /* ./Ast/let.scm 202 */
obj_t BgL_auxz00_1863;
BgL_auxz00_1863 = 
(obj_t)(BgL_arg3014z00_867); 
BgL_test3008z00_865 = 
(BgL_auxz00_1863==BGl_za2_za2z00zztype_cachez00); } } 
if(BgL_test3008z00_865)
{ /* ./Ast/let.scm 202 */
BgL_test3006z00_863 = ((bool_t)1); }  else 
{ /* ./Ast/let.scm 203 */
BgL_typez00_bglt BgL_arg3010z00_866;
{ /* ./Ast/let.scm 203 */
BgL_variablez00_bglt BgL_obj1097z00_1494;
BgL_obj1097z00_1494 = 
(BgL_variablez00_bglt)(BgL_varz00_842); 
BgL_arg3010z00_866 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_1494))->BgL_typez00); } 
{ /* ./Ast/let.scm 203 */
obj_t BgL_auxz00_1869;
BgL_auxz00_1869 = 
(obj_t)(BgL_arg3010z00_866); 
BgL_test3006z00_863 = 
(BgL_auxz00_1869==BGl_za2objza2z00zztype_cachez00); } } } } 
if(BgL_test3006z00_863)
{ /* ./Ast/let.scm 200 */
BgL_test2985z00_854 = ((bool_t)0); }  else 
{ /* ./Ast/let.scm 200 */
BgL_test2985z00_854 = ((bool_t)1); } } }  else 
{ /* ./Ast/let.scm 195 */
BgL_test2985z00_854 = ((bool_t)1); } } 
if(BgL_test2985z00_854)
{ /* ./Ast/let.scm 206 */
obj_t BgL_arg2987z00_855;obj_t BgL_arg2988z00_856;
BgL_arg2987z00_855 = 
CDR(BgL_bindingsz00_826); 
{ /* ./Ast/let.scm 208 */
obj_t BgL_arg2992z00_857;
BgL_arg2992z00_857 = 
CAR(BgL_bindingsz00_826); 
BgL_arg2988z00_856 = 
MAKE_PAIR(BgL_arg2992z00_857, BgL_valuez00_828); } 
{ 
obj_t BgL_valuez00_1878;obj_t BgL_bindingsz00_1877;
BgL_bindingsz00_1877 = BgL_arg2987z00_855; 
BgL_valuez00_1878 = BgL_arg2988z00_856; 
BgL_valuez00_828 = BgL_valuez00_1878; 
BgL_bindingsz00_826 = BgL_bindingsz00_1877; 
goto BgL_loopz00_829;} }  else 
{ /* ./Ast/let.scm 210 */
obj_t BgL_arg2996z00_858;obj_t BgL_arg2997z00_859;
BgL_arg2996z00_858 = 
CDR(BgL_bindingsz00_826); 
{ /* ./Ast/let.scm 211 */
obj_t BgL_arg3001z00_860;
BgL_arg3001z00_860 = 
CAR(BgL_bindingsz00_826); 
BgL_arg2997z00_859 = 
MAKE_PAIR(BgL_arg3001z00_860, BgL_funz00_827); } 
{ 
obj_t BgL_funz00_1883;obj_t BgL_bindingsz00_1882;
BgL_bindingsz00_1882 = BgL_arg2996z00_858; 
BgL_funz00_1883 = BgL_arg2997z00_859; 
BgL_funz00_827 = BgL_funz00_1883; 
BgL_bindingsz00_826 = BgL_bindingsz00_1882; 
goto BgL_loopz00_829;} } } }  else 
{ /* ./Ast/let.scm 213 */
obj_t BgL_arg3030z00_871;obj_t BgL_arg3031z00_872;
BgL_arg3030z00_871 = 
CDR(BgL_bindingsz00_826); 
{ /* ./Ast/let.scm 215 */
obj_t BgL_arg3035z00_873;
BgL_arg3035z00_873 = 
CAR(BgL_bindingsz00_826); 
BgL_arg3031z00_872 = 
MAKE_PAIR(BgL_arg3035z00_873, BgL_valuez00_828); } 
{ 
obj_t BgL_valuez00_1888;obj_t BgL_bindingsz00_1887;
BgL_bindingsz00_1887 = BgL_arg3030z00_871; 
BgL_valuez00_1888 = BgL_arg3031z00_872; 
BgL_valuez00_828 = BgL_valuez00_1888; 
BgL_bindingsz00_826 = BgL_bindingsz00_1887; 
goto BgL_loopz00_829;} } } } } } }  else 
{ /* ./Ast/let.scm 216 */
obj_t BgL_arg3049z00_877;obj_t BgL_arg3050z00_878;
BgL_arg3049z00_877 = 
CDR(BgL_bindingsz00_826); 
{ /* ./Ast/let.scm 218 */
obj_t BgL_arg3054z00_879;
BgL_arg3054z00_879 = 
CAR(BgL_bindingsz00_826); 
BgL_arg3050z00_878 = 
MAKE_PAIR(BgL_arg3054z00_879, BgL_valuez00_828); } 
{ 
obj_t BgL_valuez00_1893;obj_t BgL_bindingsz00_1892;
BgL_bindingsz00_1892 = BgL_arg3049z00_877; 
BgL_valuez00_1893 = BgL_arg3050z00_878; 
BgL_valuez00_828 = BgL_valuez00_1893; 
BgL_bindingsz00_826 = BgL_bindingsz00_1892; 
goto BgL_loopz00_829;} } } } } } } } } } } 
}



/* let-or-letrec */
BgL_letzd2varzd2_bglt BGl_letzd2orzd2letrecz00zzast_letz00(obj_t BgL_letzf2letreczf2_26, BgL_letzd2varzd2_bglt BgL_nodezd2letzd2_27)
{ AN_OBJECT;
{ /* ./Ast/let.scm 230 */
{ /* ./Ast/let.scm 231 */
bool_t BgL_test3062z00_880;
{ /* ./Ast/let.scm 231 */
obj_t BgL_auxz00_1894;
BgL_auxz00_1894 = 
CNST_TABLE_REF(((long)3)); 
BgL_test3062z00_880 = 
(BgL_letzf2letreczf2_26==BgL_auxz00_1894); } 
if(BgL_test3062z00_880)
{ /* ./Ast/let.scm 231 */
return BgL_nodezd2letzd2_27;}  else 
{ /* ./Ast/let.scm 233 */
obj_t BgL_bindingsz00_881;
BgL_bindingsz00_881 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_nodezd2letzd2_27))->BgL_bindingsz00); 
{ /* ./Ast/let.scm 233 */
BgL_nodez00_bglt BgL_bodyz00_882;
BgL_bodyz00_882 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_nodezd2letzd2_27))->BgL_bodyz00); 
{ /* ./Ast/let.scm 234 */
obj_t BgL_seqz00_883;
{ /* ./Ast/let.scm 235 */
bool_t BgL_test3107z00_909;
{ /* ./Ast/let.scm 235 */
obj_t BgL_obj1708z00_1505;
BgL_obj1708z00_1505 = 
(obj_t)(BgL_bodyz00_882); 
BgL_test3107z00_909 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1708z00_1505, BGl_sequencez00zzast_nodez00); } 
if(BgL_test3107z00_909)
{ /* ./Ast/let.scm 235 */
BgL_seqz00_883 = 
(obj_t)(BgL_bodyz00_882); }  else 
{ /* ./Ast/let.scm 237 */
obj_t BgL_arg3109z00_910;obj_t BgL_arg3110z00_911;obj_t BgL_arg3112z00_913;
BgL_arg3109z00_910 = 
(((BgL_nodez00_bglt)CREF(BgL_bodyz00_882))->BgL_locz00); 
BgL_arg3110z00_911 = BGl_za2_za2z00zztype_cachez00; 
{ /* ./Ast/let.scm 239 */
obj_t BgL_list3116z00_914;
{ /* ./Ast/let.scm 239 */
obj_t BgL_auxz00_1905;
BgL_auxz00_1905 = 
(obj_t)(BgL_bodyz00_882); 
BgL_list3116z00_914 = 
MAKE_PAIR(BgL_auxz00_1905, BNIL); } 
BgL_arg3112z00_913 = BgL_list3116z00_914; } 
{ /* ./Ast/let.scm 237 */
BgL_sequencez00_bglt BgL_auxz00_1908;
BgL_auxz00_1908 = 
BGl_makezd2sequencezd2zzast_nodez00(BgL_arg3109z00_910, 
(BgL_typez00_bglt)(BgL_arg3110z00_911), BUNSPEC, 
BINT(((long)-1)), BgL_arg3112z00_913); 
BgL_seqz00_883 = 
(obj_t)(BgL_auxz00_1908); } } } 
{ /* ./Ast/let.scm 235 */

{ /* ./Ast/let.scm 240 */
BgL_letzd2varzd2_bglt BgL_obj2491z00_1509;BgL_nodez00_bglt BgL_val2490z00_1510;
BgL_obj2491z00_1509 = BgL_nodezd2letzd2_27; 
BgL_val2490z00_1510 = 
(BgL_nodez00_bglt)(BgL_seqz00_883); 
((((BgL_letzd2varzd2_bglt)CREF(BgL_obj2491z00_1509))->BgL_bodyz00) = ((BgL_nodez00_bglt)BgL_val2490z00_1510), BUNSPEC); } 
{ 
obj_t BgL_bindingsz00_884;obj_t BgL_nsequencez00_885;
{ /* ./Ast/let.scm 242 */
obj_t BgL_arg3065z00_887;
{ /* ./Ast/let.scm 242 */
BgL_sequencez00_bglt BgL_obj1689z00_1511;
BgL_obj1689z00_1511 = 
(BgL_sequencez00_bglt)(BgL_seqz00_883); 
BgL_arg3065z00_887 = 
(((BgL_sequencez00_bglt)CREF(BgL_obj1689z00_1511))->BgL_nodesz00); } 
BgL_bindingsz00_884 = BgL_bindingsz00_881; 
BgL_nsequencez00_885 = BgL_arg3065z00_887; 
BgL_loopz00_886:
{ /* ./Ast/let.scm 243 */
bool_t BgL_test3068z00_888;
BgL_test3068z00_888 = 
NULLP(BgL_bindingsz00_884); 
if(BgL_test3068z00_888)
{ /* ./Ast/let.scm 243 */
{ /* ./Ast/let.scm 247 */
BgL_sequencez00_bglt BgL_arg3070z00_889;
{ /* ./Ast/let.scm 247 */
obj_t BgL_arg3073z00_890;obj_t BgL_arg3074z00_891;obj_t BgL_arg3076z00_893;
{ /* ./Ast/let.scm 247 */
BgL_nodez00_bglt BgL_obj1560z00_1513;
BgL_obj1560z00_1513 = 
(BgL_nodez00_bglt)(BgL_seqz00_883); 
BgL_arg3073z00_890 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1560z00_1513))->BgL_locz00); } 
BgL_arg3074z00_891 = BGl_za2_za2z00zztype_cachez00; 
BgL_arg3076z00_893 = BgL_nsequencez00_885; 
BgL_arg3070z00_889 = 
BGl_makezd2sequencezd2zzast_nodez00(BgL_arg3073z00_890, 
(BgL_typez00_bglt)(BgL_arg3074z00_891), BUNSPEC, 
BINT(((long)-1)), BgL_arg3076z00_893); } 
{ /* ./Ast/let.scm 245 */
BgL_letzd2varzd2_bglt BgL_obj2491z00_1514;BgL_nodez00_bglt BgL_val2490z00_1515;
BgL_obj2491z00_1514 = BgL_nodezd2letzd2_27; 
BgL_val2490z00_1515 = 
(BgL_nodez00_bglt)(BgL_arg3070z00_889); 
((((BgL_letzd2varzd2_bglt)CREF(BgL_obj2491z00_1514))->BgL_bodyz00) = ((BgL_nodez00_bglt)BgL_val2490z00_1515), BUNSPEC); } } 
return BgL_nodezd2letzd2_27;}  else 
{ /* ./Ast/let.scm 251 */
obj_t BgL_bindingz00_894;
BgL_bindingz00_894 = 
CAR(BgL_bindingsz00_884); 
{ /* ./Ast/let.scm 251 */
obj_t BgL_varz00_895;
BgL_varz00_895 = 
CAR(BgL_bindingz00_894); 
{ /* ./Ast/let.scm 252 */
obj_t BgL_valz00_896;
BgL_valz00_896 = 
CDR(BgL_bindingz00_894); 
{ /* ./Ast/let.scm 253 */
obj_t BgL_locz00_897;
{ /* ./Ast/let.scm 254 */
BgL_nodez00_bglt BgL_obj1560z00_1519;
BgL_obj1560z00_1519 = 
(BgL_nodez00_bglt)(BgL_valz00_896); 
BgL_locz00_897 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1560z00_1519))->BgL_locz00); } 
{ /* ./Ast/let.scm 254 */

{ /* ./Ast/let.scm 255 */
BgL_setqz00_bglt BgL_initz00_898;
{ /* ./Ast/let.scm 255 */
obj_t BgL_arg3091z00_902;obj_t BgL_arg3092z00_903;BgL_varz00_bglt BgL_arg3094z00_904;obj_t BgL_arg3095z00_905;
BgL_arg3091z00_902 = BgL_locz00_897; 
BgL_arg3092z00_903 = BGl_za2unspecza2z00zztype_cachez00; 
{ /* ./Ast/let.scm 259 */
obj_t BgL_arg3098z00_906;obj_t BgL_arg3099z00_907;obj_t BgL_arg3100z00_908;
BgL_arg3098z00_906 = BgL_locz00_897; 
BgL_arg3099z00_907 = BGl_za2_za2z00zztype_cachez00; 
BgL_arg3100z00_908 = BgL_varz00_895; 
BgL_arg3094z00_904 = 
BGl_makezd2varzd2zzast_nodez00(BgL_arg3098z00_906, 
(BgL_typez00_bglt)(BgL_arg3099z00_907), 
(BgL_variablez00_bglt)(BgL_arg3100z00_908)); } 
BgL_arg3095z00_905 = BgL_valz00_896; 
BgL_initz00_898 = 
BGl_makezd2setqzd2zzast_nodez00(BgL_arg3091z00_902, 
(BgL_typez00_bglt)(BgL_arg3092z00_903), BgL_arg3094z00_904, 
(BgL_nodez00_bglt)(BgL_arg3095z00_905)); } 
BGl_usezd2variablez12zc0zzast_sexpz00(
(BgL_variablez00_bglt)(BgL_varz00_895), BgL_locz00_897, 
CNST_TABLE_REF(((long)5))); 
{ /* ./Ast/let.scm 264 */
BgL_nodez00_bglt BgL_arg3081z00_899;
BgL_arg3081z00_899 = 
BGl_sexpzd2ze3nodez31zzast_sexpz00(BUNSPEC, BNIL, BgL_locz00_897, 
CNST_TABLE_REF(((long)2))); 
{ /* ./Ast/let.scm 263 */
obj_t BgL_objz00_1521;
BgL_objz00_1521 = 
(obj_t)(BgL_arg3081z00_899); 
SET_CDR(BgL_bindingz00_894, BgL_objz00_1521); } } 
{ /* ./Ast/let.scm 265 */
obj_t BgL_arg3085z00_900;obj_t BgL_arg3086z00_901;
BgL_arg3085z00_900 = 
CDR(BgL_bindingsz00_884); 
{ /* ./Ast/let.scm 266 */
obj_t BgL_auxz00_1945;
BgL_auxz00_1945 = 
(obj_t)(BgL_initz00_898); 
BgL_arg3086z00_901 = 
MAKE_PAIR(BgL_auxz00_1945, BgL_nsequencez00_885); } 
{ 
obj_t BgL_nsequencez00_1949;obj_t BgL_bindingsz00_1948;
BgL_bindingsz00_1948 = BgL_arg3085z00_900; 
BgL_nsequencez00_1949 = BgL_arg3086z00_901; 
BgL_nsequencez00_885 = BgL_nsequencez00_1949; 
BgL_bindingsz00_884 = BgL_bindingsz00_1948; 
goto BgL_loopz00_886;} } } } } } } } } } } } } } } } } 
}



/* let->labels */
BgL_letzd2funzd2_bglt BGl_letzd2ze3labelsz31zzast_letz00(obj_t BgL_valuezd2bindingszd2_28, BgL_nodez00_bglt BgL_nodez00_29, obj_t BgL_sitez00_30)
{ AN_OBJECT;
{ /* ./Ast/let.scm 275 */
{ /* ./Ast/let.scm 277 */
obj_t BgL_oldzd2funszd2_915;obj_t BgL_newzd2funszd2_916;
{ /* ./Ast/let.scm 277 */
bool_t BgL_test3182z00_950;
BgL_test3182z00_950 = 
NULLP(BgL_valuezd2bindingszd2_28); 
if(BgL_test3182z00_950)
{ /* ./Ast/let.scm 277 */
BgL_oldzd2funszd2_915 = BNIL; }  else 
{ /* ./Ast/let.scm 277 */
obj_t BgL_head2681z00_951;
{ /* ./Ast/let.scm 277 */
obj_t BgL_arg3203z00_962;
{ /* ./Ast/let.scm 277 */
obj_t BgL_auxz00_1952;
BgL_auxz00_1952 = 
CAR(BgL_valuezd2bindingszd2_28); 
BgL_arg3203z00_962 = 
CAR(BgL_auxz00_1952); } 
BgL_head2681z00_951 = 
MAKE_PAIR(BgL_arg3203z00_962, BNIL); } 
{ 
obj_t BgL_l2679z00_952;obj_t BgL_tail2682z00_953;
{ /* ./Ast/let.scm 277 */
obj_t BgL_arg3184z00_955;
BgL_arg3184z00_955 = 
CDR(BgL_valuezd2bindingszd2_28); 
BgL_l2679z00_952 = BgL_arg3184z00_955; 
BgL_tail2682z00_953 = BgL_head2681z00_951; 
BgL_map2680z00_954:
{ /* ./Ast/let.scm 277 */
bool_t BgL_test3187z00_956;
BgL_test3187z00_956 = 
NULLP(BgL_l2679z00_952); 
if(BgL_test3187z00_956)
{ /* ./Ast/let.scm 277 */
BgL_oldzd2funszd2_915 = BgL_head2681z00_951; }  else 
{ /* ./Ast/let.scm 277 */
obj_t BgL_newtail2683z00_957;
{ /* ./Ast/let.scm 277 */
obj_t BgL_arg3194z00_959;
{ /* ./Ast/let.scm 277 */
obj_t BgL_auxz00_1959;
BgL_auxz00_1959 = 
CAR(BgL_l2679z00_952); 
BgL_arg3194z00_959 = 
CAR(BgL_auxz00_1959); } 
BgL_newtail2683z00_957 = 
MAKE_PAIR(BgL_arg3194z00_959, BNIL); } 
SET_CDR(BgL_tail2682z00_953, BgL_newtail2683z00_957); 
{ /* ./Ast/let.scm 277 */
obj_t BgL_arg3190z00_958;
BgL_arg3190z00_958 = 
CDR(BgL_l2679z00_952); 
{ 
obj_t BgL_tail2682z00_1966;obj_t BgL_l2679z00_1965;
BgL_l2679z00_1965 = BgL_arg3190z00_958; 
BgL_tail2682z00_1966 = BgL_newtail2683z00_957; 
BgL_tail2682z00_953 = BgL_tail2682z00_1966; 
BgL_l2679z00_952 = BgL_l2679z00_1965; 
goto BgL_map2680z00_954;} } } } } } } } 
{ /* ./Ast/let.scm 278 */
bool_t BgL_test3211z00_966;
BgL_test3211z00_966 = 
NULLP(BgL_valuezd2bindingszd2_28); 
if(BgL_test3211z00_966)
{ /* ./Ast/let.scm 278 */
BgL_newzd2funszd2_916 = BNIL; }  else 
{ /* ./Ast/let.scm 278 */
obj_t BgL_head2686z00_967;
BgL_head2686z00_967 = 
MAKE_PAIR(BNIL, BNIL); 
{ 
obj_t BgL_l2684z00_968;obj_t BgL_tail2687z00_969;
BgL_l2684z00_968 = BgL_valuezd2bindingszd2_28; 
BgL_tail2687z00_969 = BgL_head2686z00_967; 
BgL_map2685z00_970:
{ /* ./Ast/let.scm 278 */
bool_t BgL_test3213z00_971;
BgL_test3213z00_971 = 
NULLP(BgL_l2684z00_968); 
if(BgL_test3213z00_971)
{ /* ./Ast/let.scm 278 */
BgL_newzd2funszd2_916 = 
CDR(BgL_head2686z00_967); }  else 
{ /* ./Ast/let.scm 279 */
obj_t BgL_newtail2688z00_972;
{ /* ./Ast/let.scm 279 */
BgL_localz00_bglt BgL_arg3221z00_974;
{ /* ./Ast/let.scm 279 */
obj_t BgL_bindingz00_976;
BgL_bindingz00_976 = 
CAR(BgL_l2684z00_968); 
{ /* ./Ast/let.scm 279 */
obj_t BgL_ovarz00_977;
BgL_ovarz00_977 = 
CAR(BgL_bindingz00_976); 
{ /* ./Ast/let.scm 279 */
obj_t BgL_valz00_978;
BgL_valz00_978 = 
CDR(BgL_bindingz00_976); 
{ /* ./Ast/let.scm 280 */
obj_t BgL_auxz00_979;
{ /* ./Ast/let.scm 281 */
obj_t BgL_auxz00_1976;
{ /* ./Ast/let.scm 281 */
BgL_letzd2funzd2_bglt BgL_obj2448z00_1545;
BgL_obj2448z00_1545 = 
(BgL_letzd2funzd2_bglt)(BgL_valz00_978); 
BgL_auxz00_1976 = 
(((BgL_letzd2funzd2_bglt)CREF(BgL_obj2448z00_1545))->BgL_localsz00); } 
BgL_auxz00_979 = 
CAR(BgL_auxz00_1976); } 
{ /* ./Ast/let.scm 281 */
obj_t BgL_idz00_980;
{ /* ./Ast/let.scm 282 */
bool_t BgL_testz00_1980;
{ /* ./Ast/let.scm 282 */
BgL_localz00_bglt BgL_obj1263z00_1547;
BgL_obj1263z00_1547 = 
(BgL_localz00_bglt)(BgL_ovarz00_977); 
BgL_testz00_1980 = 
(((BgL_localz00_bglt)CREF(BgL_obj1263z00_1547))->BgL_userzf3zf3); } 
if(BgL_testz00_1980)
{ /* ./Ast/let.scm 283 */
BgL_variablez00_bglt BgL_obj1093z00_1548;
BgL_obj1093z00_1548 = 
(BgL_variablez00_bglt)(BgL_ovarz00_977); 
BgL_idz00_980 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1093z00_1548))->BgL_idz00); }  else 
{ /* ./Ast/let.scm 284 */
BgL_variablez00_bglt BgL_obj1093z00_1549;
BgL_obj1093z00_1549 = 
(BgL_variablez00_bglt)(BgL_auxz00_979); 
BgL_idz00_980 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1093z00_1549))->BgL_idz00); } } 
{ /* ./Ast/let.scm 282 */
BgL_localz00_bglt BgL_newz00_981;
{ /* ./Ast/let.scm 285 */
BgL_typez00_bglt BgL_arg3238z00_986;
{ /* ./Ast/let.scm 285 */
BgL_variablez00_bglt BgL_obj1097z00_1550;
BgL_obj1097z00_1550 = 
(BgL_variablez00_bglt)(BgL_auxz00_979); 
BgL_arg3238z00_986 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_1550))->BgL_typez00); } 
BgL_newz00_981 = 
BGl_makezd2localzd2svarz00zzast_localz00(BgL_idz00_980, BgL_arg3238z00_986); } 
{ /* ./Ast/let.scm 285 */

{ /* ./Ast/let.scm 286 */
BgL_valuez00_bglt BgL_arg3225z00_982;
{ /* ./Ast/let.scm 286 */
BgL_variablez00_bglt BgL_obj1100z00_1551;
BgL_obj1100z00_1551 = 
(BgL_variablez00_bglt)(BgL_auxz00_979); 
BgL_arg3225z00_982 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1551))->BgL_valuez00); } 
{ /* ./Ast/let.scm 286 */
BgL_variablez00_bglt BgL_obj1102z00_1552;BgL_valuez00_bglt BgL_val1101z00_1553;
BgL_obj1102z00_1552 = 
(BgL_variablez00_bglt)(BgL_newz00_981); 
BgL_val1101z00_1553 = BgL_arg3225z00_982; 
((((BgL_variablez00_bglt)CREF(BgL_obj1102z00_1552))->BgL_valuez00) = ((BgL_valuez00_bglt)BgL_val1101z00_1553), BUNSPEC); } } 
{ /* ./Ast/let.scm 287 */
bool_t BgL_arg3229z00_983;
{ /* ./Ast/let.scm 287 */
bool_t BgL__ortest_2689z00_984;
{ /* ./Ast/let.scm 287 */
BgL_localz00_bglt BgL_obj1263z00_1554;
BgL_obj1263z00_1554 = 
(BgL_localz00_bglt)(BgL_auxz00_979); 
BgL__ortest_2689z00_984 = 
(((BgL_localz00_bglt)CREF(BgL_obj1263z00_1554))->BgL_userzf3zf3); } 
if(BgL__ortest_2689z00_984)
{ /* ./Ast/let.scm 287 */
BgL_arg3229z00_983 = BgL__ortest_2689z00_984; }  else 
{ /* ./Ast/let.scm 288 */
BgL_localz00_bglt BgL_obj1263z00_1555;
BgL_obj1263z00_1555 = 
(BgL_localz00_bglt)(BgL_ovarz00_977); 
BgL_arg3229z00_983 = 
(((BgL_localz00_bglt)CREF(BgL_obj1263z00_1555))->BgL_userzf3zf3); } } 
{ /* ./Ast/let.scm 287 */
BgL_localz00_bglt BgL_obj1265z00_1556;bool_t BgL_val1264z00_1557;
BgL_obj1265z00_1556 = BgL_newz00_981; 
BgL_val1264z00_1557 = BgL_arg3229z00_983; 
((((BgL_localz00_bglt)CREF(BgL_obj1265z00_1556))->BgL_userzf3zf3) = ((bool_t)BgL_val1264z00_1557), BUNSPEC); } } 
{ /* ./Ast/let.scm 289 */
obj_t BgL_arg3234z00_985;
{ /* ./Ast/let.scm 289 */
BgL_variablez00_bglt BgL_obj1094z00_1558;
BgL_obj1094z00_1558 = 
(BgL_variablez00_bglt)(BgL_auxz00_979); 
BgL_arg3234z00_985 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1094z00_1558))->BgL_namez00); } 
{ /* ./Ast/let.scm 289 */
BgL_variablez00_bglt BgL_obj1096z00_1559;obj_t BgL_val1095z00_1560;
BgL_obj1096z00_1559 = 
(BgL_variablez00_bglt)(BgL_newz00_981); 
BgL_val1095z00_1560 = BgL_arg3234z00_985; 
((((BgL_variablez00_bglt)CREF(BgL_obj1096z00_1559))->BgL_namez00) = ((obj_t)BgL_val1095z00_1560), BUNSPEC); } } 
BgL_arg3221z00_974 = BgL_newz00_981; } } } } } } } 
{ /* ./Ast/let.scm 278 */
obj_t BgL_obj1z00_1561;
BgL_obj1z00_1561 = 
(obj_t)(BgL_arg3221z00_974); 
BgL_newtail2688z00_972 = 
MAKE_PAIR(BgL_obj1z00_1561, BNIL); } } 
SET_CDR(BgL_tail2687z00_969, BgL_newtail2688z00_972); 
{ /* ./Ast/let.scm 278 */
obj_t BgL_arg3217z00_973;
BgL_arg3217z00_973 = 
CDR(BgL_l2684z00_968); 
{ 
obj_t BgL_tail2687z00_2009;obj_t BgL_l2684z00_2008;
BgL_l2684z00_2008 = BgL_arg3217z00_973; 
BgL_tail2687z00_2009 = BgL_newtail2688z00_972; 
BgL_tail2687z00_969 = BgL_tail2687z00_2009; 
BgL_l2684z00_968 = BgL_l2684z00_2008; 
goto BgL_map2685z00_970;} } } } } } } 
{ 
obj_t BgL_vbindingsz00_917;obj_t BgL_nvarsz00_918;
BgL_vbindingsz00_917 = BgL_valuezd2bindingszd2_28; 
BgL_nvarsz00_918 = BgL_newzd2funszd2_916; 
BgL_loopz00_919:
{ /* ./Ast/let.scm 294 */
bool_t BgL_test3123z00_920;
BgL_test3123z00_920 = 
NULLP(BgL_vbindingsz00_917); 
if(BgL_test3123z00_920)
{ /* ./Ast/let.scm 297 */
BgL_nodez00_bglt BgL_bodyz00_921;
BgL_bodyz00_921 = 
BGl_substitutez12z12zzast_substitutez00(BgL_oldzd2funszd2_915, BgL_newzd2funszd2_916, BgL_nodez00_29, BgL_sitez00_30); 
{ /* ./Ast/let.scm 297 */
obj_t BgL_funsz00_922;
BgL_funsz00_922 = 
BGl_reversez12z12zz__r4_pairs_and_lists_6_3z00(BgL_newzd2funszd2_916); 
{ /* ./Ast/let.scm 298 */
obj_t BgL_locz00_923;
{ /* ./Ast/let.scm 299 */
bool_t BgL_test3133z00_929;
{ /* ./Ast/let.scm 299 */
bool_t BgL_test3145z00_933;
BgL_test3145z00_933 = 
PAIRP(BgL_funsz00_922); 
if(BgL_test3145z00_933)
{ /* ./Ast/let.scm 300 */
BgL_valuez00_bglt BgL_arg3147z00_934;
{ /* ./Ast/let.scm 300 */
BgL_variablez00_bglt BgL_obj1100z00_1569;
{ /* ./Ast/let.scm 300 */
obj_t BgL_auxz00_2016;
BgL_auxz00_2016 = 
CAR(BgL_funsz00_922); 
BgL_obj1100z00_1569 = 
(BgL_variablez00_bglt)(BgL_auxz00_2016); } 
BgL_arg3147z00_934 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1569))->BgL_valuez00); } 
{ /* ./Ast/let.scm 300 */
obj_t BgL_obj1425z00_1570;
BgL_obj1425z00_1570 = 
(obj_t)(BgL_arg3147z00_934); 
BgL_test3133z00_929 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1425z00_1570, BGl_sfunz00zzast_varz00); } }  else 
{ /* ./Ast/let.scm 299 */
BgL_test3133z00_929 = ((bool_t)0); } } 
if(BgL_test3133z00_929)
{ /* ./Ast/let.scm 301 */
BgL_nodez00_bglt BgL_obj1560z00_1574;
{ /* ./Ast/let.scm 301 */
obj_t BgL_auxz00_2023;
{ /* ./Ast/let.scm 301 */
BgL_sfunz00_bglt BgL_obj1370z00_1573;
{ /* ./Ast/let.scm 301 */
BgL_valuez00_bglt BgL_auxz00_2024;
{ /* ./Ast/let.scm 301 */
BgL_variablez00_bglt BgL_obj1100z00_1572;
{ /* ./Ast/let.scm 301 */
obj_t BgL_auxz00_2025;
BgL_auxz00_2025 = 
CAR(BgL_funsz00_922); 
BgL_obj1100z00_1572 = 
(BgL_variablez00_bglt)(BgL_auxz00_2025); } 
BgL_auxz00_2024 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1572))->BgL_valuez00); } 
BgL_obj1370z00_1573 = 
(BgL_sfunz00_bglt)(BgL_auxz00_2024); } 
BgL_auxz00_2023 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1370z00_1573))->BgL_bodyz00); } 
BgL_obj1560z00_1574 = 
(BgL_nodez00_bglt)(BgL_auxz00_2023); } 
BgL_locz00_923 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1560z00_1574))->BgL_locz00); }  else 
{ /* ./Ast/let.scm 299 */
BgL_locz00_923 = 
(((BgL_nodez00_bglt)CREF(BgL_nodez00_29))->BgL_locz00); } } 
{ /* ./Ast/let.scm 299 */

{ /* ./Ast/let.scm 304 */
obj_t BgL_arg3125z00_924;BgL_typez00_bglt BgL_arg3126z00_925;obj_t BgL_arg3129z00_927;BgL_nodez00_bglt BgL_arg3130z00_928;
BgL_arg3125z00_924 = BgL_locz00_923; 
BgL_arg3126z00_925 = 
(((BgL_nodez00_bglt)CREF(BgL_nodez00_29))->BgL_typez00); 
BgL_arg3129z00_927 = BgL_funsz00_922; 
BgL_arg3130z00_928 = BgL_bodyz00_921; 
return 
BGl_makezd2letzd2funz00zzast_nodez00(BgL_arg3125z00_924, BgL_arg3126z00_925, BUNSPEC, 
BINT(((long)-1)), BgL_arg3129z00_927, BgL_arg3130z00_928);} } } } }  else 
{ /* ./Ast/let.scm 309 */
obj_t BgL_bindingz00_936;
BgL_bindingz00_936 = 
CAR(BgL_vbindingsz00_917); 
{ /* ./Ast/let.scm 309 */
obj_t BgL_nvarz00_937;
BgL_nvarz00_937 = 
CAR(BgL_nvarsz00_918); 
{ /* ./Ast/let.scm 310 */
BgL_valuez00_bglt BgL_sfunz00_938;
{ /* ./Ast/let.scm 311 */
BgL_variablez00_bglt BgL_obj1100z00_1579;
BgL_obj1100z00_1579 = 
(BgL_variablez00_bglt)(BgL_nvarz00_937); 
BgL_sfunz00_938 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1579))->BgL_valuez00); } 
{ /* ./Ast/let.scm 311 */
obj_t BgL_bodyz00_939;
{ /* ./Ast/let.scm 312 */
BgL_sfunz00_bglt BgL_obj1370z00_1580;
BgL_obj1370z00_1580 = 
(BgL_sfunz00_bglt)(BgL_sfunz00_938); 
BgL_bodyz00_939 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1370z00_1580))->BgL_bodyz00); } 
{ /* ./Ast/let.scm 312 */
obj_t BgL_valz00_940;
BgL_valz00_940 = 
CDR(BgL_bindingz00_936); 
{ /* ./Ast/let.scm 313 */
obj_t BgL_auxz00_941;
{ /* ./Ast/let.scm 314 */
obj_t BgL_auxz00_2044;
{ /* ./Ast/let.scm 314 */
BgL_letzd2funzd2_bglt BgL_obj2448z00_1582;
BgL_obj2448z00_1582 = 
(BgL_letzd2funzd2_bglt)(BgL_valz00_940); 
BgL_auxz00_2044 = 
(((BgL_letzd2funzd2_bglt)CREF(BgL_obj2448z00_1582))->BgL_localsz00); } 
BgL_auxz00_941 = 
CAR(BgL_auxz00_2044); } 
{ /* ./Ast/let.scm 314 */

{ /* ./Ast/let.scm 316 */
BgL_nodez00_bglt BgL_arg3157z00_942;
{ /* ./Ast/let.scm 316 */
obj_t BgL_arg3160z00_943;obj_t BgL_arg3161z00_944;obj_t BgL_arg3162z00_945;
BgL_arg3160z00_943 = 
MAKE_PAIR(BgL_auxz00_941, BgL_oldzd2funszd2_915); 
BgL_arg3161z00_944 = 
MAKE_PAIR(BgL_nvarz00_937, BgL_newzd2funszd2_916); 
BgL_arg3162z00_945 = 
CNST_TABLE_REF(((long)2)); 
BgL_arg3157z00_942 = 
BGl_substitutez12z12zzast_substitutez00(BgL_arg3160z00_943, BgL_arg3161z00_944, 
(BgL_nodez00_bglt)(BgL_bodyz00_939), BgL_arg3162z00_945); } 
{ /* ./Ast/let.scm 315 */
BgL_sfunz00_bglt BgL_obj1373z00_1584;obj_t BgL_val1371z00_1585;
BgL_obj1373z00_1584 = 
(BgL_sfunz00_bglt)(BgL_sfunz00_938); 
BgL_val1371z00_1585 = 
(obj_t)(BgL_arg3157z00_942); 
((((BgL_sfunz00_bglt)CREF(BgL_obj1373z00_1584))->BgL_bodyz00) = ((obj_t)BgL_val1371z00_1585), BUNSPEC); } } 
{ /* ./Ast/let.scm 321 */
obj_t BgL_arg3167z00_946;obj_t BgL_arg3168z00_947;
BgL_arg3167z00_946 = 
CDR(BgL_vbindingsz00_917); 
BgL_arg3168z00_947 = 
CDR(BgL_nvarsz00_918); 
{ 
obj_t BgL_nvarsz00_2059;obj_t BgL_vbindingsz00_2058;
BgL_vbindingsz00_2058 = BgL_arg3167z00_946; 
BgL_nvarsz00_2059 = BgL_arg3168z00_947; 
BgL_nvarsz00_918 = BgL_nvarsz00_2059; 
BgL_vbindingsz00_917 = BgL_vbindingsz00_2058; 
goto BgL_loopz00_919;} } } } } } } } } } } } } 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzast_letz00()
{ AN_OBJECT;
{ /* ./Ast/let.scm 14 */
return BUNSPEC;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzast_letz00()
{ AN_OBJECT;
{ /* ./Ast/let.scm 14 */
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "ast_let"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "ast_let"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "ast_let"); 
BGl_modulezd2initializa7ationz75zztools_tracez00(((long)59211), "ast_let"); 
BGl_modulezd2initializa7ationz75zztype_cachez00(((long)25848), "ast_let"); 
BGl_modulezd2initializa7ationz75zztools_prognz00(((long)55569), "ast_let"); 
BGl_modulezd2initializa7ationz75zztools_shapez00(((long)30833), "ast_let"); 
BGl_modulezd2initializa7ationz75zztools_locationz00(((long)32118), "ast_let"); 
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "ast_let"); 
BGl_modulezd2initializa7ationz75zzast_identz00(((long)51504), "ast_let"); 
BGl_modulezd2initializa7ationz75zzast_sexpz00(((long)15705), "ast_let"); 
BGl_modulezd2initializa7ationz75zzast_localz00(((long)28959), "ast_let"); 
return 
BGl_modulezd2initializa7ationz75zzast_substitutez00(((long)19400), "ast_let");} 
}

