/*===========================================================================*/
/*   (Ast/app.scm)                                                           */
/*   Bigloo (2.6b)                                                           */
/*   Inria -- Sophia Antipolis (c)       Mon Dec 15 12:14:36 CET 2003        */
/*===========================================================================*/
/* COMPILATION: (/users/serrano/prgm/project/bigloo/bin/bigloo -q -afile .afile -fsharing -fno-reflection -cc gcc-2.95 -lib-dir /users/serrano/prgm/project/bigloo/lib/2.6b -unsafev -no-hello -O2 -rm -unsafe -s -indent Ast/app.scm)*/
/* GC selection */
#define THE_GC BOEHM_GC

#include <bigloo.h>


/* Object type definitions */
typedef struct BgL_typez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   obj_t BgL_siza7eza7;
   obj_t BgL_classz00;
   obj_t BgL_coercezd2tozd2;
   obj_t BgL_parentsz00;
   bool_t BgL_initzf3zf3;
   bool_t BgL_magiczf3zf3;
   obj_t BgL_z42z42;
   obj_t BgL_aliasz00;
   obj_t BgL_pointedzd2tozd2byz00;
   obj_t BgL_tvectorz00;
   obj_t BgL_locationz00;
   obj_t BgL_importzd2locationzd2;
} *BgL_typez00_bglt;

typedef struct BgL_valuez00_bgl {
   header_t header;
   obj_t widening;
} *BgL_valuez00_bglt;

typedef struct BgL_variablez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_valuez00_bgl * BgL_valuez00;
   obj_t BgL_accessz00;
   obj_t BgL_fastzd2alphazd2;
   obj_t BgL_removablez00;
   long BgL_occurrencez00;
} *BgL_variablez00_bglt;

typedef struct BgL_globalz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_valuez00_bgl * BgL_valuez00;
   obj_t BgL_accessz00;
   obj_t BgL_fastzd2alphazd2;
   obj_t BgL_removablez00;
   long BgL_occurrencez00;
   obj_t BgL_modulez00;
   obj_t BgL_importz00;
   bool_t BgL_evaluablezf3zf3;
   bool_t BgL_libraryzf3zf3;
   bool_t BgL_userzf3zf3;
   obj_t BgL_pragmaz00;
   obj_t BgL_srcz00;
   obj_t BgL_jvmzd2typezd2namez00;
} *BgL_globalz00_bglt;

typedef struct BgL_localz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_valuez00_bgl * BgL_valuez00;
   obj_t BgL_accessz00;
   obj_t BgL_fastzd2alphazd2;
   obj_t BgL_removablez00;
   long BgL_occurrencez00;
   bool_t BgL_userzf3zf3;
   long BgL_keyz00;
} *BgL_localz00_bglt;

typedef struct BgL_funz00_bgl {
   header_t header;
   obj_t widening;
   long BgL_arityz00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_predicatezd2ofzd2;
   obj_t BgL_stackzd2allocatorzd2;
   bool_t BgL_topzf3zf3;
   obj_t BgL_thezd2closurezd2;
   obj_t BgL_effectz00;
} *BgL_funz00_bglt;

typedef struct BgL_sfunz00_bgl {
   header_t header;
   obj_t widening;
   long BgL_arityz00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_predicatezd2ofzd2;
   obj_t BgL_stackzd2allocatorzd2;
   bool_t BgL_topzf3zf3;
   obj_t BgL_thezd2closurezd2;
   obj_t BgL_effectz00;
   obj_t BgL_propertyz00;
   obj_t BgL_argsz00;
   obj_t BgL_bodyz00;
   obj_t BgL_classz00;
   obj_t BgL_dssslzd2keywordszd2;
   obj_t BgL_locz00;
} *BgL_sfunz00_bglt;

typedef struct BgL_cfunz00_bgl {
   header_t header;
   obj_t widening;
   long BgL_arityz00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_predicatezd2ofzd2;
   obj_t BgL_stackzd2allocatorzd2;
   bool_t BgL_topzf3zf3;
   obj_t BgL_thezd2closurezd2;
   obj_t BgL_effectz00;
   obj_t BgL_argszd2typezd2;
   bool_t BgL_macrozf3zf3;
   bool_t BgL_infixzf3zf3;
   obj_t BgL_methodz00;
} *BgL_cfunz00_bglt;

typedef struct BgL_svarz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
} *BgL_svarz00_bglt;

typedef struct BgL_scnstz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_nodez00;
   obj_t BgL_classz00;
   obj_t BgL_locz00;
} *BgL_scnstz00_bglt;

typedef struct BgL_cvarz00_bgl {
   header_t header;
   obj_t widening;
   bool_t BgL_macrozf3zf3;
} *BgL_cvarz00_bglt;

typedef struct BgL_sexitz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_handlerz00;
   bool_t BgL_detachedzf3zf3;
} *BgL_sexitz00_bglt;

typedef struct BgL_feffectz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_readz00;
   obj_t BgL_writez00;
} *BgL_feffectz00_bglt;

typedef struct BgL_nodez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
} *BgL_nodez00_bglt;

typedef struct BgL_nodezf2effectzf2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
} *BgL_nodezf2effectzf2_bglt;

typedef struct BgL_atomz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_valuez00;
} *BgL_atomz00_bglt;

typedef struct BgL_varz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_variablez00_bgl * BgL_variablez00;
} *BgL_varz00_bglt;

typedef struct BgL_closurez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_variablez00_bgl * BgL_variablez00;
} *BgL_closurez00_bglt;

typedef struct BgL_kwotez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_valuez00;
} *BgL_kwotez00_bglt;

typedef struct BgL_sequencez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_nodesz00;
} *BgL_sequencez00_bglt;

typedef struct BgL_appz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   struct BgL_varz00_bgl * BgL_funz00;
   obj_t BgL_argsz00;
} *BgL_appz00_bglt;

typedef struct BgL_appzd2lyzd2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_nodez00_bgl * BgL_funz00;
   struct BgL_nodez00_bgl * BgL_argz00;
} *BgL_appzd2lyzd2_bglt;

typedef struct BgL_funcallz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_nodez00_bgl * BgL_funz00;
   obj_t BgL_argsz00;
   obj_t BgL_strengthz00;
} *BgL_funcallz00_bglt;

typedef struct BgL_externz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
} *BgL_externz00_bglt;

typedef struct BgL_pragmaz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_formatz00;
} *BgL_pragmaz00_bglt;

typedef struct BgL_getfieldz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_fnamez00;
   struct BgL_typez00_bgl * BgL_ftypez00;
   struct BgL_typez00_bgl * BgL_otypez00;
} *BgL_getfieldz00_bglt;

typedef struct BgL_setfieldz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_fnamez00;
   struct BgL_typez00_bgl * BgL_ftypez00;
   struct BgL_typez00_bgl * BgL_otypez00;
} *BgL_setfieldz00_bglt;

typedef struct BgL_newz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
} *BgL_newz00_bglt;

typedef struct BgL_vallocz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_czd2heapzd2formatz00;
   struct BgL_typez00_bgl * BgL_ftypez00;
   struct BgL_typez00_bgl * BgL_otypez00;
} *BgL_vallocz00_bglt;

typedef struct BgL_vrefz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_czd2formatzd2;
   struct BgL_typez00_bgl * BgL_ftypez00;
   struct BgL_typez00_bgl * BgL_otypez00;
   struct BgL_typez00_bgl * BgL_vtypez00;
} *BgL_vrefz00_bglt;

typedef struct BgL_vsetz12z12_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_czd2formatzd2;
   struct BgL_typez00_bgl * BgL_ftypez00;
   struct BgL_typez00_bgl * BgL_otypez00;
   struct BgL_typez00_bgl * BgL_vtypez00;
} *BgL_vsetz12z12_bglt;

typedef struct BgL_vlengthz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_czd2formatzd2;
   struct BgL_typez00_bgl * BgL_vtypez00;
} *BgL_vlengthz00_bglt;

typedef struct BgL_isaz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   struct BgL_typez00_bgl * BgL_classz00;
} *BgL_isaz00_bglt;

typedef struct BgL_castz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_nodez00_bgl * BgL_argz00;
} *BgL_castz00_bglt;

typedef struct BgL_setqz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_varz00_bgl * BgL_varz00;
   struct BgL_nodez00_bgl * BgL_valuez00;
} *BgL_setqz00_bglt;

typedef struct BgL_conditionalz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   struct BgL_nodez00_bgl * BgL_testz00;
   struct BgL_nodez00_bgl * BgL_truez00;
   struct BgL_nodez00_bgl * BgL_falsez00;
} *BgL_conditionalz00_bglt;

typedef struct BgL_failz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_nodez00_bgl * BgL_procz00;
   struct BgL_nodez00_bgl * BgL_msgz00;
   struct BgL_nodez00_bgl * BgL_objz00;
} *BgL_failz00_bglt;

typedef struct BgL_selectz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   struct BgL_nodez00_bgl * BgL_testz00;
   obj_t BgL_clausesz00;
   struct BgL_typez00_bgl * BgL_itemzd2typezd2;
} *BgL_selectz00_bglt;

typedef struct BgL_letzd2funzd2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_localsz00;
   struct BgL_nodez00_bgl * BgL_bodyz00;
} *BgL_letzd2funzd2_bglt;

typedef struct BgL_letzd2varzd2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_bindingsz00;
   struct BgL_nodez00_bgl * BgL_bodyz00;
   bool_t BgL_removablezf3zf3;
} *BgL_letzd2varzd2_bglt;

typedef struct BgL_setzd2exzd2itz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_varz00_bgl * BgL_varz00;
   struct BgL_nodez00_bgl * BgL_bodyz00;
} *BgL_setzd2exzd2itz00_bglt;

typedef struct BgL_jumpzd2exzd2itz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_nodez00_bgl * BgL_exitz00;
   struct BgL_nodez00_bgl * BgL_valuez00;
} *BgL_jumpzd2exzd2itz00_bglt;

typedef struct BgL_makezd2boxzd2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   struct BgL_nodez00_bgl * BgL_valuez00;
} *BgL_makezd2boxzd2_bglt;

typedef struct BgL_boxzd2refzd2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   struct BgL_varz00_bgl * BgL_varz00;
} *BgL_boxzd2refzd2_bglt;

typedef struct BgL_boxzd2setz12zc0_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_varz00_bgl * BgL_varz00;
   struct BgL_nodez00_bgl * BgL_valuez00;
} *BgL_boxzd2setz12zc0_bglt;


BGL_IMPORT obj_t BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
static obj_t BGl_methodzd2initzd2zzast_appz00();
BGL_IMPORT obj_t open_input_string(obj_t);
static obj_t BGl__makezd2appzd2nodez00zzast_appz00(obj_t, obj_t, obj_t, obj_t, obj_t);
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
BGL_IMPORT bool_t BGl_iszd2azf3z21zz__objectz00(obj_t, obj_t);
extern BgL_nodez00_bglt BGl_sexpzd2ze3nodez31zzast_sexpz00(obj_t, obj_t, obj_t, obj_t);
BGL_IMPORT char * BGl_numberzd2ze3stringz31zz__r4_numbers_6_5z00(obj_t, obj_t);
extern obj_t BGl_letzd2varzd2zzast_nodez00;
BGL_IMPORT obj_t string_to_bstring(char *);
extern obj_t BGl_za2_za2z00zztype_cachez00;
extern obj_t BGl_funz00zzast_varz00;
BGL_IMPORT obj_t BGl_gensymz00zz__r4_symbols_6_4z00;
extern obj_t BGl_globalz00zzast_varz00;
static obj_t BGl__correctzd2arityzd2appzf3zf3zzast_appz00(obj_t, obj_t, obj_t);
static obj_t BGl__applicationzd2ze3nodez31zzast_appz00(obj_t, obj_t, obj_t, obj_t, obj_t);
BGL_IMPORT obj_t BGl_reversez12z12zz__r4_pairs_and_lists_6_3z00(obj_t);
extern obj_t BGl_varz00zzast_nodez00;
extern BgL_appz00_bglt BGl_makezd2appzd2zzast_nodez00(obj_t, BgL_typez00_bglt, obj_t, obj_t, BgL_varz00_bglt, obj_t);
static obj_t BGl_cnstzd2initzd2zzast_appz00();
extern obj_t BGl_atomz00zzast_nodez00;
BGL_EXPORTED_DECL bool_t BGl_correctzd2arityzd2appzf3zf3zzast_appz00(BgL_variablez00_bglt, obj_t);
extern obj_t BGl_za2nbzd2errorzd2onzd2passza2zd2zztools_errorz00;
static BgL_nodez00_bglt BGl_cleanzd2userzd2nodez12z12zzast_appz00(BgL_nodez00_bglt);
static obj_t BGl_importedzd2moduleszd2initz00zzast_appz00();
static BgL_nodez00_bglt BGl_wrongzd2numberzd2ofzd2argumentszd2zzast_appz00(obj_t, obj_t, BgL_nodez00_bglt, obj_t);
extern obj_t BGl_findzd2locationzf2locz20zztools_locationz00(obj_t, obj_t);
extern BgL_vlengthz00_bglt BGl_makezd2vlengthzd2zzast_nodez00(obj_t, BgL_typez00_bglt, obj_t, obj_t, obj_t, obj_t, obj_t, BgL_typez00_bglt);
BGL_EXPORTED_DECL BgL_nodez00_bglt BGl_applicationzd2ze3nodez31zzast_appz00(obj_t, obj_t, obj_t, obj_t);
static obj_t BGl_makezd2fxzd2appzd2nodezd2zzast_appz00(obj_t, BgL_varz00_bglt, obj_t);
static obj_t BGl_makezd2argszd2listz00zzast_appz00(obj_t);
BGL_IMPORT obj_t string_append_3(obj_t, obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzast_appz00(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_modulezd2initializa7ationz75zztools_errorz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_locationz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_sexpz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_identz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5z00(long, char *);
BGL_IMPORT long bgl_list_length(obj_t);
static BgL_nodez00_bglt BGl_makezd2vazd2appzd2nodezd2zzast_appz00(long, obj_t, obj_t, BgL_varz00_bglt, obj_t);
BGL_IMPORT obj_t string_append(obj_t, obj_t);
extern obj_t BGl_shapez00zztools_shapez00(obj_t);
static long BGl_checkzd2userzd2appz00zzast_appz00(BgL_nodez00_bglt, obj_t);
BGL_IMPORT obj_t BGl_memqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_memvz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
extern obj_t BGl_cfunz00zzast_varz00;
extern BgL_vsetz12z12_bglt BGl_makezd2vsetz12zc0zzast_nodez00(obj_t, BgL_typez00_bglt, obj_t, obj_t, obj_t, obj_t, obj_t, BgL_typez00_bglt, BgL_typez00_bglt, BgL_typez00_bglt);
BGL_EXPORTED_DECL BgL_nodez00_bglt BGl_makezd2appzd2nodez00zzast_appz00(obj_t, obj_t, BgL_varz00_bglt, obj_t);
extern obj_t BGl_closurez00zzast_nodez00;
extern BgL_vrefz00_bglt BGl_makezd2vrefzd2zzast_nodez00(obj_t, BgL_typez00_bglt, obj_t, obj_t, obj_t, obj_t, obj_t, BgL_typez00_bglt, BgL_typez00_bglt, BgL_typez00_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);
static obj_t BGl_makezd2thezd2appz00zzast_appz00(obj_t, obj_t, obj_t);
extern obj_t BGl_za2objza2z00zztype_cachez00;
static obj_t BGl_makezd2specialzd2appzd2nodezd2zzast_appz00(obj_t, BgL_varz00_bglt, obj_t);
static obj_t BGl_requirezd2initializa7ationz75zzast_appz00 = BUNSPEC;
extern BgL_vallocz00_bglt BGl_makezd2valloczd2zzast_nodez00(obj_t, BgL_typez00_bglt, obj_t, obj_t, obj_t, obj_t, obj_t, BgL_typez00_bglt, BgL_typez00_bglt);
extern BgL_funcallz00_bglt BGl_makezd2funcallzd2zzast_nodez00(obj_t, BgL_typez00_bglt, BgL_nodez00_bglt, obj_t, obj_t);
static obj_t BGl_libraryzd2moduleszd2initz00zzast_appz00();
extern obj_t BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(obj_t);
static obj_t __cnst[ 18 ] ;


DEFINE_STRING( BGl_string3733z00zzast_appz00, BgL_bgl_string3733za700za7za7ast_appza7003770z00, " arg(s) expected, ", 18 );
DEFINE_EXPORT_PROCEDURE( BGl_correctzd2arityzd2appzf3zd2envz21zzast_appz00, BgL_bgl__correctza7d2arityza7d2appza7f3za7f3za7za7ast_appza7003771za7, BGl__correctzd2arityzd2appzf3zf3zzast_appz00, 0L, 2 );
DEFINE_EXPORT_PROCEDURE( BGl_makezd2appzd2nodezd2envzd2zzast_appz00, BgL_bgl__makeza7d2appza7d2nodeza700za7za7ast_appza7003772z00, BGl__makezd2appzd2nodez00zzast_appz00, 0L, 4 );
DEFINE_EXPORT_PROCEDURE( BGl_applicationzd2ze3nodezd2envze3zzast_appz00, BgL_bgl__applicationza7d2za7e3nodeza731za7za7ast_appza7003773z00, BGl__applicationzd2ze3nodez31zzast_appz00, 0L, 4 );
DEFINE_STRING( BGl_string3742z00zzast_appz00, BgL_bgl_string3742za700za7za7ast_appza7003774z00, "(c-create-vector %%create-vector) (c-vector-set! %%vector-set!) (c-vector-ref %%vector-ref) (c-vector-length %%vector-length) foreign c-cons list \077\077? (c-vector-length %%vector-length c-vector-ref %%vector-ref c-vector-set! %%vector-set! c-create-vector %%create-vector) arg (lambda l l) let fun value (quote ()) app @ quote ", 324 );
DEFINE_STRING( BGl_string3741z00zzast_appz00, BgL_bgl_string3741za700za7za7ast_appza7003775z00, "Illegal special application", 27 );
DEFINE_STRING( BGl_string3740z00zzast_appz00, BgL_bgl_string3740za700za7za7ast_appza7003776z00, "make-special-app-node", 21 );
DEFINE_STRING( BGl_string3739z00zzast_appz00, BgL_bgl_string3739za700za7za7ast_appza7003777z00, "($1,$2,$3)", 10 );
DEFINE_STRING( BGl_string3738z00zzast_appz00, BgL_bgl_string3738za700za7za7ast_appza7003778z00, "($1,$2)", 7 );
DEFINE_STRING( BGl_string3737z00zzast_appz00, BgL_bgl_string3737za700za7za7ast_appza7003779z00, "($1)", 4 );
DEFINE_STRING( BGl_string3736z00zzast_appz00, BgL_bgl_string3736za700za7za7ast_appza7003780z00, "Illegal application: ", 21 );
DEFINE_STRING( BGl_string3735z00zzast_appz00, BgL_bgl_string3735za700za7za7ast_appza7003781z00, " provided", 9 );
DEFINE_STRING( BGl_string3734z00zzast_appz00, BgL_bgl_string3734za700za7za7ast_appza7003782z00, " or more arg(s) expected, ", 26 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzast_appz00(long BgL_checksumz00_1586, char * BgL_fromz00_1587)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzast_appz00))
{ 
BGl_requirezd2initializa7ationz75zzast_appz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzast_appz00(); 
BGl_cnstzd2initzd2zzast_appz00(); 
BGl_importedzd2moduleszd2initz00zzast_appz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzast_appz00()
{ AN_OBJECT;
{ /* ./Ast/app.scm 14 */
BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(((long)0), "ast_app"); 
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "ast_app"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "ast_app"); 
BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5z00(((long)0), "ast_app"); 
BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(((long)0), "ast_app"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzast_appz00()
{ AN_OBJECT;
{ /* ./Ast/app.scm 14 */
{ /* ./Ast/app.scm 14 */
obj_t BgL_cportz00_1577;
BgL_cportz00_1577 = 
open_input_string(BGl_string3742z00zzast_appz00); 
{ 
long BgL_iz00_1578;
BgL_iz00_1578 = ((long)17); 
BgL_loopz00_1579:
{ /* ./Ast/app.scm 14 */
bool_t BgL_test3744z00_1580;
BgL_test3744z00_1580 = 
(BgL_iz00_1578==((long)-1)); 
if(BgL_test3744z00_1580)
{ /* ./Ast/app.scm 14 */
return BUNSPEC;}  else 
{ /* ./Ast/app.scm 14 */
{ /* ./Ast/app.scm 14 */
obj_t BgL_arg3746z00_1581;
{ /* ./Ast/app.scm 14 */
obj_t BgL_list3749z00_1582;
BgL_list3749z00_1582 = 
MAKE_PAIR(BgL_cportz00_1577, BNIL); 
BgL_arg3746z00_1581 = 
BGl_readz00zz__readerz00(BgL_list3749z00_1582); } 
{ /* ./Ast/app.scm 14 */
int BgL_auxz00_1604;
BgL_auxz00_1604 = 
(int)(BgL_iz00_1578); 
CNST_TABLE_SET(BgL_auxz00_1604, BgL_arg3746z00_1581); } } 
{ /* ./Ast/app.scm 14 */
int BgL_auxz00_1583;
{ /* ./Ast/app.scm 14 */
long BgL_auxz00_1607;
BgL_auxz00_1607 = 
(BgL_iz00_1578-((long)1)); 
BgL_auxz00_1583 = 
(int)(BgL_auxz00_1607); } 
{ 
long BgL_iz00_1610;
BgL_iz00_1610 = 
(long)(BgL_auxz00_1583); 
BgL_iz00_1578 = BgL_iz00_1610; 
goto BgL_loopz00_1579;} } } } } } } 
}



/* correct-arity-app? */
BGL_EXPORTED_DEF bool_t BGl_correctzd2arityzd2appzf3zf3zzast_appz00(BgL_variablez00_bglt BgL_varz00_1, obj_t BgL_argsz00_2)
{ AN_OBJECT;
{ /* ./Ast/app.scm 33 */
{ /* ./Ast/app.scm 34 */
long BgL_nbzd2argszd2_688;
BgL_nbzd2argszd2_688 = 
bgl_list_length(BgL_argsz00_2); 
{ /* ./Ast/app.scm 35 */
long BgL_arityz00_689;
{ /* ./Ast/app.scm 36 */
BgL_funz00_bglt BgL_obj1301z00_1366;
{ /* ./Ast/app.scm 36 */
BgL_valuez00_bglt BgL_auxz00_1613;
BgL_auxz00_1613 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_1))->BgL_valuez00); 
BgL_obj1301z00_1366 = 
(BgL_funz00_bglt)(BgL_auxz00_1613); } 
BgL_arityz00_689 = 
(((BgL_funz00_bglt)CREF(BgL_obj1301z00_1366))->BgL_arityz00); } 
{ /* ./Ast/app.scm 36 */

if(
(BgL_arityz00_689==((long)-1)))
{ /* ./Ast/app.scm 38 */
return ((bool_t)1);}  else 
{ /* ./Ast/app.scm 38 */
if(
(BgL_arityz00_689>=((long)0)))
{ /* ./Ast/app.scm 40 */
return 
(BgL_arityz00_689==BgL_nbzd2argszd2_688);}  else 
{ /* ./Ast/app.scm 40 */
{ /* ./Ast/app.scm 43 */
long BgL_auxz00_1622;
{ /* ./Ast/app.scm 43 */
long BgL_auxz00_1625;long BgL_auxz00_1623;
BgL_auxz00_1625 = 
(BgL_nbzd2argszd2_688+((long)1)); 
BgL_auxz00_1623 = 
NEG(BgL_arityz00_689); 
BgL_auxz00_1622 = 
(BgL_auxz00_1623-BgL_auxz00_1625); } 
return 
(BgL_auxz00_1622<=((long)0));} } } } } } } 
}



/* _correct-arity-app? */
obj_t BGl__correctzd2arityzd2appzf3zf3zzast_appz00(obj_t BgL_envz00_1562, obj_t BgL_varz00_1563, obj_t BgL_argsz00_1564)
{ AN_OBJECT;
{ /* ./Ast/app.scm 33 */
{ /* ./Ast/app.scm 34 */
bool_t BgL_auxz00_1629;
BgL_auxz00_1629 = 
BGl_correctzd2arityzd2appzf3zf3zzast_appz00(
(BgL_variablez00_bglt)(BgL_varz00_1563), BgL_argsz00_1564); 
return 
BBOOL(BgL_auxz00_1629);} } 
}



/* clean-user-node! */
BgL_nodez00_bglt BGl_cleanzd2userzd2nodez12z12zzast_appz00(BgL_nodez00_bglt BgL_nodez00_3)
{ AN_OBJECT;
{ /* ./Ast/app.scm 51 */
{ 
BgL_nodez00_bglt BgL_walkz00_696;
BgL_walkz00_696 = BgL_nodez00_3; 
BgL_loopz00_697:
{ /* ./Ast/app.scm 53 */
bool_t BgL_test2694z00_698;
{ /* ./Ast/app.scm 53 */
obj_t BgL_obj2519z00_1378;
BgL_obj2519z00_1378 = 
(obj_t)(BgL_walkz00_696); 
BgL_test2694z00_698 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj2519z00_1378, BGl_letzd2varzd2zzast_nodez00); } 
if(BgL_test2694z00_698)
{ /* ./Ast/app.scm 53 */
{ 
obj_t BgL_l2662z00_699;
{ /* ./Ast/app.scm 57 */
obj_t BgL_arg2696z00_701;
{ /* ./Ast/app.scm 57 */
BgL_letzd2varzd2_bglt BgL_obj2486z00_1379;
BgL_obj2486z00_1379 = 
(BgL_letzd2varzd2_bglt)(BgL_walkz00_696); 
BgL_arg2696z00_701 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_obj2486z00_1379))->BgL_bindingsz00); } 
BgL_l2662z00_699 = BgL_arg2696z00_701; 
BgL_forzd2each2663zd2_700:
{ /* ./Ast/app.scm 55 */
bool_t BgL_test2699z00_702;
BgL_test2699z00_702 = 
PAIRP(BgL_l2662z00_699); 
if(BgL_test2699z00_702)
{ /* ./Ast/app.scm 55 */
{ /* ./Ast/app.scm 56 */
obj_t BgL_bindingz00_703;
BgL_bindingz00_703 = 
CAR(BgL_l2662z00_699); 
{ /* ./Ast/app.scm 56 */
obj_t BgL_arg2701z00_704;
BgL_arg2701z00_704 = 
CAR(BgL_bindingz00_703); 
{ /* ./Ast/app.scm 56 */
BgL_localz00_bglt BgL_obj1265z00_1383;bool_t BgL_val1264z00_1384;
BgL_obj1265z00_1383 = 
(BgL_localz00_bglt)(BgL_arg2701z00_704); 
BgL_val1264z00_1384 = ((bool_t)0); 
((((BgL_localz00_bglt)CREF(BgL_obj1265z00_1383))->BgL_userzf3zf3) = ((bool_t)BgL_val1264z00_1384), BUNSPEC); } } } 
{ /* ./Ast/app.scm 55 */
obj_t BgL_arg2706z00_705;
BgL_arg2706z00_705 = 
CDR(BgL_l2662z00_699); 
{ 
obj_t BgL_l2662z00_1645;
BgL_l2662z00_1645 = BgL_arg2706z00_705; 
BgL_l2662z00_699 = BgL_l2662z00_1645; 
goto BgL_forzd2each2663zd2_700;} } }  else 
{ /* ./Ast/app.scm 55 */((bool_t)1); } } } } 
{ /* ./Ast/app.scm 58 */
BgL_nodez00_bglt BgL_arg2711z00_706;
{ /* ./Ast/app.scm 58 */
BgL_letzd2varzd2_bglt BgL_obj2489z00_1386;
BgL_obj2489z00_1386 = 
(BgL_letzd2varzd2_bglt)(BgL_walkz00_696); 
BgL_arg2711z00_706 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_obj2489z00_1386))->BgL_bodyz00); } 
{ 
BgL_nodez00_bglt BgL_walkz00_1648;
BgL_walkz00_1648 = BgL_arg2711z00_706; 
BgL_walkz00_696 = BgL_walkz00_1648; 
goto BgL_loopz00_697;} } }  else 
{ /* ./Ast/app.scm 53 */
return BgL_nodez00_3;} } } } 
}



/* application->node */
BGL_EXPORTED_DEF BgL_nodez00_bglt BGl_applicationzd2ze3nodez31zzast_appz00(obj_t BgL_expz00_4, obj_t BgL_stackz00_5, obj_t BgL_locz00_6, obj_t BgL_sitez00_7)
{ AN_OBJECT;
{ /* ./Ast/app.scm 73 */
{ 
obj_t BgL_expz00_787;
{ /* ./Ast/app.scm 88 */
obj_t BgL_locz00_708;
BgL_locz00_708 = 
BGl_findzd2locationzf2locz20zztools_locationz00(BgL_expz00_4, BgL_locz00_6); 
{ /* ./Ast/app.scm 88 */
obj_t BgL_errzd2nbzd2_709;
BgL_errzd2nbzd2_709 = BGl_za2nbzd2errorzd2onzd2passza2zd2zztools_errorz00; 
{ /* ./Ast/app.scm 89 */
obj_t BgL_debugstampz00_710;
BgL_debugstampz00_710 = 
PROCEDURE_ENTRY(BGl_gensymz00zz__r4_symbols_6_4z00)(BGl_gensymz00zz__r4_symbols_6_4z00, BEOA); 
{ /* ./Ast/app.scm 91 */
BgL_nodez00_bglt BgL_funz00_712;
{ /* ./Ast/app.scm 93 */
obj_t BgL_arg2864z00_785;obj_t BgL_arg2865z00_786;
BgL_arg2864z00_785 = 
CAR(BgL_expz00_4); 
BgL_arg2865z00_786 = 
CNST_TABLE_REF(((long)2)); 
BgL_funz00_712 = 
BGl_sexpzd2ze3nodez31zzast_sexpz00(BgL_arg2864z00_785, BgL_stackz00_5, BgL_locz00_708, BgL_arg2865z00_786); } 
{ /* ./Ast/app.scm 93 */
bool_t BgL_funzd2errzf3z21_713;
{ /* ./Ast/app.scm 94 */
long BgL_n1z00_1388;long BgL_n2z00_1389;
BgL_n1z00_1388 = 
(long)CINT(BGl_za2nbzd2errorzd2onzd2passza2zd2zztools_errorz00); 
BgL_n2z00_1389 = 
(long)CINT(BgL_errzd2nbzd2_709); 
BgL_funzd2errzf3z21_713 = 
(BgL_n1z00_1388>BgL_n2z00_1389); } 
{ /* ./Ast/app.scm 94 */

{ /* ./Ast/app.scm 95 */
bool_t BgL_test2715z00_714;
{ /* ./Ast/app.scm 95 */
bool_t BgL_test2859z00_784;
BgL_expz00_787 = BgL_expz00_4; 
{ 
obj_t BgL_expz00_789;
BgL_expz00_789 = BgL_expz00_787; 
BgL_loopz00_790:
if(
NULLP(BgL_expz00_789))
{ /* ./Ast/app.scm 76 */
BgL_test2859z00_784 = ((bool_t)1); }  else 
{ 

{ /* ./Ast/app.scm 78 */
obj_t BgL_ezd2124zd2_796;
BgL_ezd2124zd2_796 = 
CAR(BgL_expz00_789); 
if(
PAIRP(BgL_ezd2124zd2_796))
{ /* ./Ast/app.scm 78 */
bool_t BgL_testz00_1663;
{ /* ./Ast/app.scm 78 */
obj_t BgL_auxz00_1666;obj_t BgL_auxz00_1664;
BgL_auxz00_1666 = 
CNST_TABLE_REF(((long)0)); 
BgL_auxz00_1664 = 
CAR(BgL_ezd2124zd2_796); 
BgL_testz00_1663 = 
(BgL_auxz00_1664==BgL_auxz00_1666); } 
if(BgL_testz00_1663)
{ /* ./Ast/app.scm 78 */
{ 
obj_t BgL_expz00_1669;
BgL_expz00_1669 = 
CDR(BgL_expz00_789); 
BgL_expz00_789 = BgL_expz00_1669; 
goto BgL_loopz00_790;} }  else 
{ /* ./Ast/app.scm 78 */
obj_t BgL_cdrzd2130zd2_799;
BgL_cdrzd2130zd2_799 = 
CDR(BgL_ezd2124zd2_796); 
{ /* ./Ast/app.scm 78 */
bool_t BgL_testz00_1672;
{ /* ./Ast/app.scm 78 */
obj_t BgL_auxz00_1675;obj_t BgL_auxz00_1673;
BgL_auxz00_1675 = 
CNST_TABLE_REF(((long)1)); 
BgL_auxz00_1673 = 
CAR(BgL_ezd2124zd2_796); 
BgL_testz00_1672 = 
(BgL_auxz00_1673==BgL_auxz00_1675); } 
if(BgL_testz00_1672)
{ /* ./Ast/app.scm 78 */
if(
PAIRP(BgL_cdrzd2130zd2_799))
{ /* ./Ast/app.scm 78 */
obj_t BgL_cdrzd2132zd2_802;
BgL_cdrzd2132zd2_802 = 
CDR(BgL_cdrzd2130zd2_799); 
{ /* ./Ast/app.scm 78 */
bool_t BgL_testz00_1681;
{ /* ./Ast/app.scm 78 */
obj_t BgL_auxz00_1682;
BgL_auxz00_1682 = 
CAR(BgL_cdrzd2130zd2_799); 
BgL_testz00_1681 = 
SYMBOLP(BgL_auxz00_1682); } 
if(BgL_testz00_1681)
{ /* ./Ast/app.scm 78 */
if(
PAIRP(BgL_cdrzd2132zd2_802))
{ /* ./Ast/app.scm 78 */
bool_t BgL_testz00_1687;
{ /* ./Ast/app.scm 78 */
obj_t BgL_auxz00_1688;
BgL_auxz00_1688 = 
CAR(BgL_cdrzd2132zd2_802); 
BgL_testz00_1687 = 
SYMBOLP(BgL_auxz00_1688); } 
if(BgL_testz00_1687)
{ /* ./Ast/app.scm 78 */
bool_t BgL_testz00_1691;
{ /* ./Ast/app.scm 78 */
obj_t BgL_auxz00_1692;
BgL_auxz00_1692 = 
CDR(BgL_cdrzd2132zd2_802); 
BgL_testz00_1691 = 
NULLP(BgL_auxz00_1692); } 
if(BgL_testz00_1691)
{ /* ./Ast/app.scm 78 */
{ 
obj_t BgL_expz00_1695;
BgL_expz00_1695 = 
CDR(BgL_expz00_789); 
BgL_expz00_789 = BgL_expz00_1695; 
goto BgL_loopz00_790;} }  else 
{ /* ./Ast/app.scm 78 */
BgL_tagzd2123zd2_795:
{ /* ./Ast/app.scm 86 */
bool_t BgL__ortest_2664z00_817;
{ /* ./Ast/app.scm 86 */
obj_t BgL_arg2936z00_819;
BgL_arg2936z00_819 = 
CAR(BgL_expz00_789); 
BgL__ortest_2664z00_817 = 
BGl_iszd2azf3z21zz__objectz00(BgL_arg2936z00_819, BGl_atomz00zzast_nodez00); } 
if(BgL__ortest_2664z00_817)
{ /* ./Ast/app.scm 86 */
BgL_test2859z00_784 = BgL__ortest_2664z00_817; }  else 
{ /* ./Ast/app.scm 87 */
obj_t BgL_arg2932z00_818;
BgL_arg2932z00_818 = 
CAR(BgL_expz00_789); 
BgL_test2859z00_784 = 
BGl_iszd2azf3z21zz__objectz00(BgL_arg2932z00_818, BGl_varz00zzast_nodez00); } } } }  else 
{ /* ./Ast/app.scm 78 */
goto BgL_tagzd2123zd2_795;} }  else 
{ /* ./Ast/app.scm 78 */
goto BgL_tagzd2123zd2_795;} }  else 
{ /* ./Ast/app.scm 78 */
goto BgL_tagzd2123zd2_795;} } }  else 
{ /* ./Ast/app.scm 78 */
goto BgL_tagzd2123zd2_795;} }  else 
{ /* ./Ast/app.scm 78 */
goto BgL_tagzd2123zd2_795;} } } }  else 
{ /* ./Ast/app.scm 78 */
{ 
obj_t BgL_expz00_1702;
BgL_expz00_1702 = 
CDR(BgL_expz00_789); 
BgL_expz00_789 = BgL_expz00_1702; 
goto BgL_loopz00_790;} } } } } 
if(BgL_test2859z00_784)
{ /* ./Ast/app.scm 95 */
obj_t BgL_obj1640z00_1390;
BgL_obj1640z00_1390 = 
(obj_t)(BgL_funz00_712); 
BgL_test2715z00_714 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1640z00_1390, BGl_varz00zzast_nodez00); }  else 
{ /* ./Ast/app.scm 95 */
BgL_test2715z00_714 = ((bool_t)0); } } 
if(BgL_test2715z00_714)
{ /* ./Ast/app.scm 96 */
obj_t BgL_argsz00_715;
BgL_argsz00_715 = 
CDR(BgL_expz00_4); 
{ /* ./Ast/app.scm 96 */
long BgL_deltaz00_716;
BgL_deltaz00_716 = 
BGl_checkzd2userzd2appz00zzast_appz00(BgL_funz00_712, BgL_argsz00_715); 
{ /* ./Ast/app.scm 97 */

{ /* ./Ast/app.scm 99 */
bool_t BgL_test2716z00_717;
{ /* ./Ast/app.scm 99 */
obj_t BgL_obj1640z00_1392;
BgL_obj1640z00_1392 = 
(obj_t)(BgL_funz00_712); 
BgL_test2716z00_717 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1640z00_1392, BGl_varz00zzast_nodez00); } 
if(BgL_test2716z00_717)
{ /* ./Ast/app.scm 101 */
bool_t BgL_test2717z00_718;
BgL_test2717z00_718 = 
(BgL_deltaz00_716==((long)0)); 
if(BgL_test2717z00_718)
{ /* ./Ast/app.scm 101 */
return 
BGl_makezd2appzd2nodez00zzast_appz00(BgL_stackz00_5, BgL_locz00_708, 
(BgL_varz00_bglt)(BgL_funz00_712), BgL_argsz00_715);}  else 
{ /* ./Ast/app.scm 101 */
return 
BGl_wrongzd2numberzd2ofzd2argumentszd2zzast_appz00(BgL_expz00_4, BgL_locz00_708, BgL_funz00_712, BgL_argsz00_715);} }  else 
{ /* ./Ast/app.scm 99 */
return 
BGl_sexpzd2ze3nodez31zzast_sexpz00(
CNST_TABLE_REF(((long)3)), BgL_stackz00_5, BgL_locz00_708, 
CNST_TABLE_REF(((long)4)));} } } } }  else 
{ 
obj_t BgL_oldzd2argszd2_719;obj_t BgL_newzd2argszd2_720;obj_t BgL_bindingsz00_721;
{ /* ./Ast/app.scm 105 */
obj_t BgL_arg2726z00_723;
BgL_arg2726z00_723 = 
CDR(BgL_expz00_4); 
BgL_oldzd2argszd2_719 = BgL_arg2726z00_723; 
BgL_newzd2argszd2_720 = BNIL; 
BgL_bindingsz00_721 = BNIL; 
BgL_loopz00_722:
{ /* ./Ast/app.scm 109 */
bool_t BgL_test2731z00_726;
BgL_test2731z00_726 = 
NULLP(BgL_oldzd2argszd2_719); 
if(BgL_test2731z00_726)
{ /* ./Ast/app.scm 109 */
{ /* ./Ast/app.scm 117 */
bool_t BgL_test2732z00_729;
{ /* ./Ast/app.scm 117 */
obj_t BgL_obj1640z00_1398;
BgL_obj1640z00_1398 = 
(obj_t)(BgL_funz00_712); 
BgL_test2732z00_729 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1640z00_1398, BGl_varz00zzast_nodez00); } 
if(BgL_test2732z00_729)
{ /* ./Ast/app.scm 117 */
{ /* ./Ast/app.scm 121 */
BgL_nodez00_bglt BgL_nodez00_730;
{ /* ./Ast/app.scm 121 */
obj_t BgL_arg2735z00_731;
BgL_arg2735z00_731 = 
BGl_makezd2thezd2appz00zzast_appz00(BgL_newzd2argszd2_720, BgL_bindingsz00_721, 
(obj_t)(BgL_funz00_712)); 
BgL_nodez00_730 = 
BGl_sexpzd2ze3nodez31zzast_sexpz00(BgL_arg2735z00_731, BgL_stackz00_5, BgL_locz00_708, BgL_sitez00_7); } 
return 
BGl_cleanzd2userzd2nodez12z12zzast_appz00(BgL_nodez00_730);} }  else 
{ /* ./Ast/app.scm 126 */
obj_t BgL_newzd2funzd2_732;
{ /* ./Ast/app.scm 126 */
obj_t BgL_arg2765z00_746;
BgL_arg2765z00_746 = 
PROCEDURE_ENTRY(BGl_gensymz00zz__r4_symbols_6_4z00)(BGl_gensymz00zz__r4_symbols_6_4z00, 
CNST_TABLE_REF(((long)5)), BEOA); 
BgL_newzd2funzd2_732 = 
BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(BgL_arg2765z00_746); } 
{ /* ./Ast/app.scm 126 */
obj_t BgL_lexpz00_733;
{ /* ./Ast/app.scm 127 */
obj_t BgL_arg2741z00_735;obj_t BgL_arg2742z00_736;
BgL_arg2741z00_735 = 
CNST_TABLE_REF(((long)6)); 
{ /* ./Ast/app.scm 127 */
obj_t BgL_arg2745z00_737;obj_t BgL_arg2746z00_738;
{ /* ./Ast/app.scm 127 */
obj_t BgL_arg2749z00_739;
{ /* ./Ast/app.scm 127 */
obj_t BgL_arg2753z00_741;
{ /* ./Ast/app.scm 127 */
obj_t BgL_arg2756z00_742;
if(BgL_funzd2errzf3z21_713)
{ /* ./Ast/app.scm 127 */
BgL_arg2756z00_742 = 
CNST_TABLE_REF(((long)7)); }  else 
{ /* ./Ast/app.scm 127 */
BgL_arg2756z00_742 = 
(obj_t)(BgL_funz00_712); } 
BgL_arg2753z00_741 = 
MAKE_PAIR(BgL_arg2756z00_742, BNIL); } 
BgL_arg2749z00_739 = 
MAKE_PAIR(BgL_newzd2funzd2_732, BgL_arg2753z00_741); } 
BgL_arg2745z00_737 = 
MAKE_PAIR(BgL_arg2749z00_739, BNIL); } 
{ /* ./Ast/app.scm 133 */
obj_t BgL_arg2760z00_744;
BgL_arg2760z00_744 = 
BGl_makezd2thezd2appz00zzast_appz00(BgL_newzd2argszd2_720, BgL_bindingsz00_721, BgL_newzd2funzd2_732); 
BgL_arg2746z00_738 = 
MAKE_PAIR(BgL_arg2760z00_744, BNIL); } 
BgL_arg2742z00_736 = 
MAKE_PAIR(BgL_arg2745z00_737, BgL_arg2746z00_738); } 
BgL_lexpz00_733 = 
MAKE_PAIR(BgL_arg2741z00_735, BgL_arg2742z00_736); } 
{ /* ./Ast/app.scm 127 */
BgL_nodez00_bglt BgL_nodez00_734;
BgL_nodez00_734 = 
BGl_sexpzd2ze3nodez31zzast_sexpz00(BgL_lexpz00_733, BgL_stackz00_5, BgL_locz00_708, BgL_sitez00_7); 
{ /* ./Ast/app.scm 134 */

return 
BGl_cleanzd2userzd2nodez12z12zzast_appz00(BgL_nodez00_734);} } } } } }  else 
{ /* ./Ast/app.scm 136 */
bool_t BgL_test2802z00_763;
{ /* ./Ast/app.scm 136 */
bool_t BgL_testz00_1748;
{ /* ./Ast/app.scm 136 */
obj_t BgL_auxz00_1749;
BgL_auxz00_1749 = 
CAR(BgL_oldzd2argszd2_719); 
BgL_testz00_1748 = 
SYMBOLP(BgL_auxz00_1749); } 
if(BgL_testz00_1748)
{ /* ./Ast/app.scm 136 */
BgL_test2802z00_763 = ((bool_t)1); }  else 
{ /* ./Ast/app.scm 137 */
obj_t BgL_auxz00_1752;
BgL_auxz00_1752 = 
CAR(BgL_oldzd2argszd2_719); 
BgL_test2802z00_763 = 
CNSTP(BgL_auxz00_1752); } } 
if(BgL_test2802z00_763)
{ /* ./Ast/app.scm 136 */
{ /* ./Ast/app.scm 138 */
obj_t BgL_arg2804z00_764;obj_t BgL_arg2805z00_765;
BgL_arg2804z00_764 = 
CDR(BgL_oldzd2argszd2_719); 
{ /* ./Ast/app.scm 139 */
bool_t BgL_test2808z00_766;
BgL_test2808z00_766 = 
EXTENDED_PAIRP(BgL_oldzd2argszd2_719); 
if(BgL_test2808z00_766)
{ /* ./Ast/app.scm 140 */
obj_t BgL_arg2810z00_767;obj_t BgL_arg2811z00_768;
BgL_arg2810z00_767 = 
CAR(BgL_oldzd2argszd2_719); 
BgL_arg2811z00_768 = 
CER(BgL_oldzd2argszd2_719); 
{ /* ./Ast/app.scm 140 */
obj_t BgL_res3630z00_1411;
BgL_res3630z00_1411 = 
MAKE_EXTENDED_PAIR(BgL_arg2810z00_767, BgL_newzd2argszd2_720, BgL_arg2811z00_768); 
BgL_arg2805z00_765 = BgL_res3630z00_1411; } }  else 
{ /* ./Ast/app.scm 141 */
obj_t BgL_arg2816z00_769;
BgL_arg2816z00_769 = 
CAR(BgL_oldzd2argszd2_719); 
BgL_arg2805z00_765 = 
MAKE_PAIR(BgL_arg2816z00_769, BgL_newzd2argszd2_720); } } 
{ 
obj_t BgL_newzd2argszd2_1765;obj_t BgL_oldzd2argszd2_1764;
BgL_oldzd2argszd2_1764 = BgL_arg2804z00_764; 
BgL_newzd2argszd2_1765 = BgL_arg2805z00_765; 
BgL_newzd2argszd2_720 = BgL_newzd2argszd2_1765; 
BgL_oldzd2argszd2_719 = BgL_oldzd2argszd2_1764; 
goto BgL_loopz00_722;} } }  else 
{ /* ./Ast/app.scm 136 */
{ /* ./Ast/app.scm 144 */
obj_t BgL_newzd2argzd2_770;
{ /* ./Ast/app.scm 144 */
obj_t BgL_arg2846z00_780;
BgL_arg2846z00_780 = 
PROCEDURE_ENTRY(BGl_gensymz00zz__r4_symbols_6_4z00)(BGl_gensymz00zz__r4_symbols_6_4z00, 
CNST_TABLE_REF(((long)8)), BEOA); 
BgL_newzd2argzd2_770 = 
BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(BgL_arg2846z00_780); } 
{ /* ./Ast/app.scm 145 */
obj_t BgL_arg2821z00_771;obj_t BgL_arg2822z00_772;obj_t BgL_arg2823z00_773;
BgL_arg2821z00_771 = 
CDR(BgL_oldzd2argszd2_719); 
{ /* ./Ast/app.scm 146 */
bool_t BgL_test2826z00_774;
BgL_test2826z00_774 = 
EXTENDED_PAIRP(BgL_oldzd2argszd2_719); 
if(BgL_test2826z00_774)
{ /* ./Ast/app.scm 147 */
obj_t BgL_arg2828z00_775;
BgL_arg2828z00_775 = 
CER(BgL_oldzd2argszd2_719); 
{ /* ./Ast/app.scm 147 */
obj_t BgL_res3631z00_1419;
BgL_res3631z00_1419 = 
MAKE_EXTENDED_PAIR(BgL_newzd2argzd2_770, BgL_newzd2argszd2_720, BgL_arg2828z00_775); 
BgL_arg2822z00_772 = BgL_res3631z00_1419; } }  else 
{ /* ./Ast/app.scm 146 */
BgL_arg2822z00_772 = 
MAKE_PAIR(BgL_newzd2argzd2_770, BgL_newzd2argszd2_720); } } 
{ /* ./Ast/app.scm 149 */
obj_t BgL_arg2834z00_776;
{ /* ./Ast/app.scm 149 */
obj_t BgL_arg2837z00_777;
BgL_arg2837z00_777 = 
CAR(BgL_oldzd2argszd2_719); 
{ /* ./Ast/app.scm 149 */
obj_t BgL_list2839z00_778;
{ /* ./Ast/app.scm 149 */
obj_t BgL_arg2841z00_779;
BgL_arg2841z00_779 = 
MAKE_PAIR(BgL_arg2837z00_777, BNIL); 
BgL_list2839z00_778 = 
MAKE_PAIR(BgL_newzd2argzd2_770, BgL_arg2841z00_779); } 
BgL_arg2834z00_776 = BgL_list2839z00_778; } } 
BgL_arg2823z00_773 = 
MAKE_PAIR(BgL_arg2834z00_776, BgL_bindingsz00_721); } 
{ 
obj_t BgL_bindingsz00_1782;obj_t BgL_newzd2argszd2_1781;obj_t BgL_oldzd2argszd2_1780;
BgL_oldzd2argszd2_1780 = BgL_arg2821z00_771; 
BgL_newzd2argszd2_1781 = BgL_arg2822z00_772; 
BgL_bindingsz00_1782 = BgL_arg2823z00_773; 
BgL_bindingsz00_721 = BgL_bindingsz00_1782; 
BgL_newzd2argszd2_720 = BgL_newzd2argszd2_1781; 
BgL_oldzd2argszd2_719 = BgL_oldzd2argszd2_1780; 
goto BgL_loopz00_722;} } } } } } } } } } } } } } } } } 
}



/* make-the-app */
obj_t BGl_makezd2thezd2appz00zzast_appz00(obj_t BgL_newzd2argszd2_1576, obj_t BgL_bindingsz00_1575, obj_t BgL_funz00_747)
{ AN_OBJECT;
{ /* ./Ast/app.scm 111 */
{ /* ./Ast/app.scm 112 */
bool_t BgL_test2771z00_749;
BgL_test2771z00_749 = 
PAIRP(BgL_bindingsz00_1575); 
if(BgL_test2771z00_749)
{ /* ./Ast/app.scm 114 */
obj_t BgL_arg2773z00_750;obj_t BgL_arg2774z00_751;
BgL_arg2773z00_750 = 
CNST_TABLE_REF(((long)6)); 
{ /* ./Ast/app.scm 113 */
obj_t BgL_arg2777z00_752;obj_t BgL_arg2778z00_753;
BgL_arg2777z00_752 = 
BGl_reversez12z12zz__r4_pairs_and_lists_6_3z00(BgL_bindingsz00_1575); 
{ /* ./Ast/app.scm 114 */
obj_t BgL_arg2782z00_754;
{ /* ./Ast/app.scm 114 */
obj_t BgL_arg2786z00_756;
{ /* ./Ast/app.scm 114 */
obj_t BgL_arg2789z00_757;
BgL_arg2789z00_757 = 
BGl_reversez12z12zz__r4_pairs_and_lists_6_3z00(BgL_newzd2argszd2_1576); 
BgL_arg2786z00_756 = 
BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(BgL_arg2789z00_757, BNIL); } 
BgL_arg2782z00_754 = 
MAKE_PAIR(BgL_funz00_747, BgL_arg2786z00_756); } 
BgL_arg2778z00_753 = 
MAKE_PAIR(BgL_arg2782z00_754, BNIL); } 
BgL_arg2774z00_751 = 
MAKE_PAIR(BgL_arg2777z00_752, BgL_arg2778z00_753); } 
return 
MAKE_PAIR(BgL_arg2773z00_750, BgL_arg2774z00_751);}  else 
{ /* ./Ast/app.scm 115 */
obj_t BgL_arg2794z00_759;
{ /* ./Ast/app.scm 115 */
obj_t BgL_arg2797z00_760;
BgL_arg2797z00_760 = 
BGl_reversez12z12zz__r4_pairs_and_lists_6_3z00(BgL_newzd2argszd2_1576); 
BgL_arg2794z00_759 = 
BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(BgL_arg2797z00_760, BNIL); } 
return 
MAKE_PAIR(BgL_funz00_747, BgL_arg2794z00_759);} } } 
}



/* _application->node */
obj_t BGl__applicationzd2ze3nodez31zzast_appz00(obj_t BgL_envz00_1565, obj_t BgL_expz00_1566, obj_t BgL_stackz00_1567, obj_t BgL_locz00_1568, obj_t BgL_sitez00_1569)
{ AN_OBJECT;
{ /* ./Ast/app.scm 73 */
{ /* ./Ast/app.scm 87 */
BgL_nodez00_bglt BgL_auxz00_1796;
BgL_auxz00_1796 = 
BGl_applicationzd2ze3nodez31zzast_appz00(BgL_expz00_1566, BgL_stackz00_1567, BgL_locz00_1568, BgL_sitez00_1569); 
return 
(obj_t)(BgL_auxz00_1796);} } 
}



/* check-user-app */
long BGl_checkzd2userzd2appz00zzast_appz00(BgL_nodez00_bglt BgL_funz00_8, obj_t BgL_argsz00_9)
{ AN_OBJECT;
{ /* ./Ast/app.scm 157 */
{ /* ./Ast/app.scm 158 */
bool_t BgL_test2940z00_821;
{ /* ./Ast/app.scm 158 */
obj_t BgL_obj1640z00_1445;
BgL_obj1640z00_1445 = 
(obj_t)(BgL_funz00_8); 
BgL_test2940z00_821 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1640z00_1445, BGl_varz00zzast_nodez00); } 
if(BgL_test2940z00_821)
{ /* ./Ast/app.scm 164 */
BgL_variablez00_bglt BgL_varz00_822;
{ /* ./Ast/app.scm 164 */
BgL_varz00_bglt BgL_obj1625z00_1446;
BgL_obj1625z00_1446 = 
(BgL_varz00_bglt)(BgL_funz00_8); 
BgL_varz00_822 = 
(((BgL_varz00_bglt)CREF(BgL_obj1625z00_1446))->BgL_variablez00); } 
{ /* ./Ast/app.scm 164 */
BgL_valuez00_bglt BgL_funz00_823;
BgL_funz00_823 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_822))->BgL_valuez00); 
{ /* ./Ast/app.scm 165 */
long BgL_nbzd2argszd2_824;
BgL_nbzd2argszd2_824 = 
bgl_list_length(BgL_argsz00_9); 
{ /* ./Ast/app.scm 166 */
long BgL_arityz00_825;
{ /* ./Ast/app.scm 168 */
bool_t BgL_test2957z00_833;
{ /* ./Ast/app.scm 168 */
obj_t BgL_obj1344z00_1448;
BgL_obj1344z00_1448 = 
(obj_t)(BgL_funz00_823); 
BgL_test2957z00_833 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1344z00_1448, BGl_funz00zzast_varz00); } 
if(BgL_test2957z00_833)
{ /* ./Ast/app.scm 168 */
{ /* ./Ast/app.scm 169 */
BgL_funz00_bglt BgL_obj1301z00_1449;
BgL_obj1301z00_1449 = 
(BgL_funz00_bglt)(BgL_funz00_823); 
BgL_arityz00_825 = 
(((BgL_funz00_bglt)CREF(BgL_obj1301z00_1449))->BgL_arityz00); } }  else 
{ /* ./Ast/app.scm 168 */
BgL_arityz00_825 = ((long)-1); } } 
{ /* ./Ast/app.scm 167 */

if(
(BgL_arityz00_825==((long)-1)))
{ /* ./Ast/app.scm 173 */
return ((long)0);}  else 
{ /* ./Ast/app.scm 173 */
if(
(BgL_arityz00_825>=((long)0)))
{ /* ./Ast/app.scm 175 */
return 
(BgL_arityz00_825-BgL_nbzd2argszd2_824);}  else 
{ /* ./Ast/app.scm 175 */
{ /* ./Ast/app.scm 178 */
bool_t BgL_testz00_1816;
{ /* ./Ast/app.scm 178 */
long BgL_auxz00_1817;
{ /* ./Ast/app.scm 178 */
long BgL_auxz00_1820;long BgL_auxz00_1818;
BgL_auxz00_1820 = 
(BgL_nbzd2argszd2_824+((long)1)); 
BgL_auxz00_1818 = 
NEG(BgL_arityz00_825); 
BgL_auxz00_1817 = 
(BgL_auxz00_1818-BgL_auxz00_1820); } 
BgL_testz00_1816 = 
(BgL_auxz00_1817<=((long)0)); } 
if(BgL_testz00_1816)
{ /* ./Ast/app.scm 178 */
return ((long)0);}  else 
{ /* ./Ast/app.scm 178 */
return ((long)1);} } } } } } } } }  else 
{ /* ./Ast/app.scm 158 */
return ((long)0);} } } 
}



/* wrong-number-of-arguments */
BgL_nodez00_bglt BGl_wrongzd2numberzd2ofzd2argumentszd2zzast_appz00(obj_t BgL_expz00_10, obj_t BgL_locz00_11, BgL_nodez00_bglt BgL_funz00_12, obj_t BgL_argsz00_13)
{ AN_OBJECT;
{ /* ./Ast/app.scm 185 */
{ /* ./Ast/app.scm 186 */
BgL_variablez00_bglt BgL_varz00_834;
{ /* ./Ast/app.scm 186 */
BgL_varz00_bglt BgL_obj1625z00_1463;
BgL_obj1625z00_1463 = 
(BgL_varz00_bglt)(BgL_funz00_12); 
BgL_varz00_834 = 
(((BgL_varz00_bglt)CREF(BgL_obj1625z00_1463))->BgL_variablez00); } 
{ /* ./Ast/app.scm 186 */
BgL_valuez00_bglt BgL_funz00_835;
BgL_funz00_835 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_834))->BgL_valuez00); 
{ /* ./Ast/app.scm 188 */
long BgL_arityz00_837;
{ /* ./Ast/app.scm 190 */
bool_t BgL_test3000z00_855;
{ /* ./Ast/app.scm 190 */
obj_t BgL_obj1344z00_1465;
BgL_obj1344z00_1465 = 
(obj_t)(BgL_funz00_835); 
BgL_test3000z00_855 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1344z00_1465, BGl_funz00zzast_varz00); } 
if(BgL_test3000z00_855)
{ /* ./Ast/app.scm 190 */
{ /* ./Ast/app.scm 191 */
BgL_funz00_bglt BgL_obj1301z00_1466;
BgL_obj1301z00_1466 = 
(BgL_funz00_bglt)(BgL_funz00_835); 
BgL_arityz00_837 = 
(((BgL_funz00_bglt)CREF(BgL_obj1301z00_1466))->BgL_arityz00); } }  else 
{ /* ./Ast/app.scm 190 */
BgL_arityz00_837 = ((long)-1); } } 
{ /* ./Ast/app.scm 189 */
obj_t BgL_expectz00_838;
{ /* ./Ast/app.scm 195 */
bool_t BgL_test2980z00_846;
BgL_test2980z00_846 = 
(BgL_arityz00_837>=((long)0)); 
if(BgL_test2980z00_846)
{ /* ./Ast/app.scm 195 */
{ /* ./Ast/app.scm 196 */
char * BgL_arg2982z00_847;
BgL_arg2982z00_847 = 
BGl_numberzd2ze3stringz31zz__r4_numbers_6_5z00(
BINT(BgL_arityz00_837), BNIL); 
{ /* ./Ast/app.scm 196 */
obj_t BgL_auxz00_1836;
BgL_auxz00_1836 = 
string_to_bstring(BgL_arg2982z00_847); 
BgL_expectz00_838 = 
string_append(BgL_auxz00_1836, BGl_string3733z00zzast_appz00); } } }  else 
{ /* ./Ast/app.scm 195 */
{ /* ./Ast/app.scm 199 */
char * BgL_arg2988z00_850;
{ /* ./Ast/app.scm 199 */
obj_t BgL_auxz00_1839;
{ /* ./Ast/app.scm 199 */
long BgL_auxz00_1840;
{ /* ./Ast/app.scm 199 */
long BgL_auxz00_1841;
BgL_auxz00_1841 = 
(BgL_arityz00_837+((long)1)); 
BgL_auxz00_1840 = 
NEG(BgL_auxz00_1841); } 
BgL_auxz00_1839 = 
BINT(BgL_auxz00_1840); } 
BgL_arg2988z00_850 = 
BGl_numberzd2ze3stringz31zz__r4_numbers_6_5z00(BgL_auxz00_1839, BNIL); } 
{ /* ./Ast/app.scm 199 */
obj_t BgL_auxz00_1846;
BgL_auxz00_1846 = 
string_to_bstring(BgL_arg2988z00_850); 
BgL_expectz00_838 = 
string_append(BgL_auxz00_1846, BGl_string3734z00zzast_appz00); } } } } 
{ /* ./Ast/app.scm 194 */
obj_t BgL_providez00_839;
{ /* ./Ast/app.scm 201 */
char * BgL_arg2971z00_842;
{ /* ./Ast/app.scm 201 */
obj_t BgL_auxz00_1849;
{ /* ./Ast/app.scm 201 */
long BgL_auxz00_1850;
BgL_auxz00_1850 = 
bgl_list_length(BgL_argsz00_13); 
BgL_auxz00_1849 = 
BINT(BgL_auxz00_1850); } 
BgL_arg2971z00_842 = 
BGl_numberzd2ze3stringz31zz__r4_numbers_6_5z00(BgL_auxz00_1849, BNIL); } 
{ /* ./Ast/app.scm 201 */
obj_t BgL_auxz00_1854;
BgL_auxz00_1854 = 
string_to_bstring(BgL_arg2971z00_842); 
BgL_providez00_839 = 
string_append(BgL_auxz00_1854, BGl_string3735z00zzast_appz00); } } 
{ /* ./Ast/app.scm 201 */

{ /* ./Ast/app.scm 203 */
obj_t BgL_arg2965z00_840;obj_t BgL_arg2966z00_841;
BgL_arg2965z00_840 = 
string_append_3(BGl_string3736z00zzast_appz00, BgL_expectz00_838, BgL_providez00_839); 
BgL_arg2966z00_841 = 
BGl_shapez00zztools_shapez00(BgL_expz00_10); 
return 
BGl_errorzd2sexpzd2ze3nodeze3zzast_sexpz00(BgL_arg2965z00_840, BgL_arg2966z00_841, BgL_locz00_11);} } } } } } } } 
}



/* make-app-node */
BGL_EXPORTED_DEF BgL_nodez00_bglt BGl_makezd2appzd2nodez00zzast_appz00(obj_t BgL_stackz00_14, obj_t BgL_locz00_15, BgL_varz00_bglt BgL_varz00_16, obj_t BgL_argsz00_17)
{ AN_OBJECT;
{ /* ./Ast/app.scm 210 */
{ /* ./Ast/app.scm 211 */
BgL_valuez00_bglt BgL_funz00_856;
{ /* ./Ast/app.scm 211 */
BgL_variablez00_bglt BgL_arg3037z00_873;
BgL_arg3037z00_873 = 
(((BgL_varz00_bglt)CREF(BgL_varz00_16))->BgL_variablez00); 
BgL_funz00_856 = 
(((BgL_variablez00_bglt)CREF(BgL_arg3037z00_873))->BgL_valuez00); } 
{ /* ./Ast/app.scm 212 */
bool_t BgL_test3006z00_857;
{ /* ./Ast/app.scm 212 */
bool_t BgL_test3027z00_869;
{ /* ./Ast/app.scm 212 */
obj_t BgL_obj1344z00_1474;
BgL_obj1344z00_1474 = 
(obj_t)(BgL_funz00_856); 
BgL_test3027z00_869 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1344z00_1474, BGl_funz00zzast_varz00); } 
if(BgL_test3027z00_869)
{ /* ./Ast/app.scm 214 */
bool_t BgL_test3028z00_870;
{ /* ./Ast/app.scm 213 */
long BgL_auxz00_1865;
{ /* ./Ast/app.scm 213 */
BgL_funz00_bglt BgL_obj1301z00_1475;
BgL_obj1301z00_1475 = 
(BgL_funz00_bglt)(BgL_funz00_856); 
BgL_auxz00_1865 = 
(((BgL_funz00_bglt)CREF(BgL_obj1301z00_1475))->BgL_arityz00); } 
BgL_test3028z00_870 = 
(BgL_auxz00_1865>=((long)0)); } 
if(BgL_test3028z00_870)
{ /* ./Ast/app.scm 214 */
BgL_test3006z00_857 = ((bool_t)1); }  else 
{ /* ./Ast/app.scm 214 */
obj_t BgL_obj1489z00_1478;
BgL_obj1489z00_1478 = 
(obj_t)(BgL_funz00_856); 
BgL_test3006z00_857 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1489z00_1478, BGl_cfunz00zzast_varz00); } }  else 
{ /* ./Ast/app.scm 212 */
BgL_test3006z00_857 = ((bool_t)1); } } 
if(BgL_test3006z00_857)
{ /* ./Ast/app.scm 215 */
obj_t BgL_argsz00_858;
{ 
obj_t BgL_argsz00_859;obj_t BgL_resz00_860;
BgL_argsz00_859 = BgL_argsz00_17; 
BgL_resz00_860 = BNIL; 
BgL_loopz00_861:
{ /* ./Ast/app.scm 217 */
bool_t BgL_test3009z00_862;
BgL_test3009z00_862 = 
NULLP(BgL_argsz00_859); 
if(BgL_test3009z00_862)
{ /* ./Ast/app.scm 217 */
BgL_argsz00_858 = 
BGl_reversez12z12zz__r4_pairs_and_lists_6_3z00(BgL_resz00_860); }  else 
{ /* ./Ast/app.scm 219 */
obj_t BgL_az00_863;obj_t BgL_locz00_864;
BgL_az00_863 = 
CAR(BgL_argsz00_859); 
BgL_locz00_864 = 
BGl_findzd2locationzf2locz20zztools_locationz00(BgL_argsz00_859, BgL_locz00_15); 
{ /* ./Ast/app.scm 221 */
obj_t BgL_arg3012z00_865;obj_t BgL_arg3013z00_866;
BgL_arg3012z00_865 = 
CDR(BgL_argsz00_859); 
{ /* ./Ast/app.scm 222 */
BgL_nodez00_bglt BgL_arg3017z00_867;
BgL_arg3017z00_867 = 
BGl_sexpzd2ze3nodez31zzast_sexpz00(BgL_az00_863, BgL_stackz00_14, BgL_locz00_864, 
CNST_TABLE_REF(((long)4))); 
{ /* ./Ast/app.scm 222 */
obj_t BgL_auxz00_1881;
BgL_auxz00_1881 = 
(obj_t)(BgL_arg3017z00_867); 
BgL_arg3013z00_866 = 
MAKE_PAIR(BgL_auxz00_1881, BgL_resz00_860); } } 
{ 
obj_t BgL_resz00_1885;obj_t BgL_argsz00_1884;
BgL_argsz00_1884 = BgL_arg3012z00_865; 
BgL_resz00_1885 = BgL_arg3013z00_866; 
BgL_resz00_860 = BgL_resz00_1885; 
BgL_argsz00_859 = BgL_argsz00_1884; 
goto BgL_loopz00_861;} } } } } 
{ /* ./Ast/app.scm 224 */
obj_t BgL_auxz00_1886;
BgL_auxz00_1886 = 
BGl_makezd2fxzd2appzd2nodezd2zzast_appz00(BgL_locz00_15, BgL_varz00_16, BgL_argsz00_858); 
return 
(BgL_nodez00_bglt)(BgL_auxz00_1886);} }  else 
{ /* ./Ast/app.scm 225 */
long BgL_arg3024z00_868;
{ /* ./Ast/app.scm 225 */
BgL_funz00_bglt BgL_obj1301z00_1482;
BgL_obj1301z00_1482 = 
(BgL_funz00_bglt)(BgL_funz00_856); 
BgL_arg3024z00_868 = 
(((BgL_funz00_bglt)CREF(BgL_obj1301z00_1482))->BgL_arityz00); } 
return 
BGl_makezd2vazd2appzd2nodezd2zzast_appz00(BgL_arg3024z00_868, BgL_stackz00_14, BgL_locz00_15, BgL_varz00_16, BgL_argsz00_17);} } } } 
}



/* _make-app-node */
obj_t BGl__makezd2appzd2nodez00zzast_appz00(obj_t BgL_envz00_1570, obj_t BgL_stackz00_1571, obj_t BgL_locz00_1572, obj_t BgL_varz00_1573, obj_t BgL_argsz00_1574)
{ AN_OBJECT;
{ /* ./Ast/app.scm 210 */
{ /* ./Ast/app.scm 211 */
BgL_nodez00_bglt BgL_auxz00_1892;
BgL_auxz00_1892 = 
BGl_makezd2appzd2nodez00zzast_appz00(BgL_stackz00_1571, BgL_locz00_1572, 
(BgL_varz00_bglt)(BgL_varz00_1573), BgL_argsz00_1574); 
return 
(obj_t)(BgL_auxz00_1892);} } 
}



/* make-fx-app-node */
obj_t BGl_makezd2fxzd2appzd2nodezd2zzast_appz00(obj_t BgL_locz00_18, BgL_varz00_bglt BgL_varz00_19, obj_t BgL_argsz00_20)
{ AN_OBJECT;
{ /* ./Ast/app.scm 236 */
{ /* ./Ast/app.scm 237 */
BgL_variablez00_bglt BgL_vz00_874;
BgL_vz00_874 = 
(((BgL_varz00_bglt)CREF(BgL_varz00_19))->BgL_variablez00); 
{ /* ./Ast/app.scm 239 */
bool_t BgL_test3040z00_875;
{ /* ./Ast/app.scm 239 */
bool_t BgL_test3084z00_900;
{ /* ./Ast/app.scm 239 */
BgL_valuez00_bglt BgL_arg3087z00_901;
BgL_arg3087z00_901 = 
(((BgL_variablez00_bglt)CREF(BgL_vz00_874))->BgL_valuez00); 
{ /* ./Ast/app.scm 239 */
obj_t BgL_obj1489z00_1485;
BgL_obj1489z00_1485 = 
(obj_t)(BgL_arg3087z00_901); 
BgL_test3084z00_900 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1489z00_1485, BGl_cfunz00zzast_varz00); } } 
if(BgL_test3084z00_900)
{ /* ./Ast/app.scm 239 */
obj_t BgL_auxz00_1901;
BgL_auxz00_1901 = 
BGl_memqz00zz__r4_pairs_and_lists_6_3z00(
(((BgL_variablez00_bglt)CREF(BgL_vz00_874))->BgL_idz00), 
CNST_TABLE_REF(((long)9))); 
BgL_test3040z00_875 = 
CBOOL(BgL_auxz00_1901); }  else 
{ /* ./Ast/app.scm 239 */
BgL_test3040z00_875 = ((bool_t)0); } } 
if(BgL_test3040z00_875)
{ /* ./Ast/app.scm 239 */
return 
BGl_makezd2specialzd2appzd2nodezd2zzast_appz00(BgL_locz00_18, BgL_varz00_19, BgL_argsz00_20);}  else 
{ /* ./Ast/app.scm 243 */
bool_t BgL_test3042z00_876;
{ /* ./Ast/app.scm 243 */
BgL_valuez00_bglt BgL_arg3081z00_899;
BgL_arg3081z00_899 = 
(((BgL_variablez00_bglt)CREF(BgL_vz00_874))->BgL_valuez00); 
{ /* ./Ast/app.scm 243 */
obj_t BgL_obj1344z00_1491;
BgL_obj1344z00_1491 = 
(obj_t)(BgL_arg3081z00_899); 
BgL_test3042z00_876 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1344z00_1491, BGl_funz00zzast_varz00); } } 
if(BgL_test3042z00_876)
{ /* ./Ast/app.scm 243 */
{ /* ./Ast/app.scm 246 */
obj_t BgL_arg3044z00_877;BgL_typez00_bglt BgL_arg3045z00_878;BgL_varz00_bglt BgL_arg3048z00_880;obj_t BgL_arg3049z00_881;
BgL_arg3044z00_877 = BgL_locz00_18; 
BgL_arg3045z00_878 = 
(((BgL_variablez00_bglt)CREF(BgL_vz00_874))->BgL_typez00); 
{ /* ./Ast/app.scm 248 */
bool_t BgL_test3052z00_882;
{ /* ./Ast/app.scm 248 */
obj_t BgL_obj1660z00_1493;
BgL_obj1660z00_1493 = 
(obj_t)(BgL_varz00_19); 
BgL_test3052z00_882 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1660z00_1493, BGl_closurez00zzast_nodez00); } 
if(BgL_test3052z00_882)
{ /* ./Ast/app.scm 249 */
BgL_varz00_bglt BgL_new2667z00_884;
{ /* ./Ast/app.scm 249 */
obj_t BgL_arg3054z00_885;BgL_typez00_bglt BgL_arg3055z00_886;BgL_variablez00_bglt BgL_arg3056z00_887;
{ /* ./Ast/app.scm 249 */
BgL_nodez00_bglt BgL_obj1560z00_1494;
BgL_obj1560z00_1494 = 
(BgL_nodez00_bglt)(BgL_varz00_19); 
BgL_arg3054z00_885 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1560z00_1494))->BgL_locz00); } 
{ /* ./Ast/app.scm 249 */
BgL_nodez00_bglt BgL_obj1561z00_1495;
BgL_obj1561z00_1495 = 
(BgL_nodez00_bglt)(BgL_varz00_19); 
BgL_arg3055z00_886 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1561z00_1495))->BgL_typez00); } 
BgL_arg3056z00_887 = 
(((BgL_varz00_bglt)CREF(BgL_varz00_19))->BgL_variablez00); 
BgL_new2667z00_884 = 
BGl_makezd2varzd2zzast_nodez00(BgL_arg3054z00_885, BgL_arg3055z00_886, BgL_arg3056z00_887); } 
{ /* ./Ast/app.scm 249 */

BgL_arg3048z00_880 = BgL_new2667z00_884; } }  else 
{ /* ./Ast/app.scm 248 */
BgL_arg3048z00_880 = BgL_varz00_19; } } 
BgL_arg3049z00_881 = BgL_argsz00_20; 
{ /* ./Ast/app.scm 245 */
BgL_appz00_bglt BgL_auxz00_1922;
BgL_auxz00_1922 = 
BGl_makezd2appzd2zzast_nodez00(BgL_arg3044z00_877, BgL_arg3045z00_878, BUNSPEC, 
BINT(((long)-1)), BgL_arg3048z00_880, BgL_arg3049z00_881); 
return 
(obj_t)(BgL_auxz00_1922);} } }  else 
{ /* ./Ast/app.scm 243 */
{ /* ./Ast/app.scm 255 */
obj_t BgL_arg3063z00_888;obj_t BgL_arg3064z00_889;BgL_varz00_bglt BgL_arg3065z00_890;obj_t BgL_arg3066z00_891;obj_t BgL_arg3067z00_892;
BgL_arg3063z00_888 = BgL_locz00_18; 
BgL_arg3064z00_889 = BGl_za2_za2z00zztype_cachez00; 
BgL_arg3065z00_890 = BgL_varz00_19; 
{ /* ./Ast/app.scm 258 */
BgL_varz00_bglt BgL_arg3070z00_893;
{ /* ./Ast/app.scm 258 */
BgL_varz00_bglt BgL_new2670z00_895;
{ /* ./Ast/app.scm 258 */
obj_t BgL_arg3073z00_896;BgL_typez00_bglt BgL_arg3074z00_897;BgL_variablez00_bglt BgL_arg3075z00_898;
{ /* ./Ast/app.scm 258 */
BgL_nodez00_bglt BgL_obj1560z00_1497;
BgL_obj1560z00_1497 = 
(BgL_nodez00_bglt)(BgL_varz00_19); 
BgL_arg3073z00_896 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1560z00_1497))->BgL_locz00); } 
{ /* ./Ast/app.scm 258 */
BgL_nodez00_bglt BgL_obj1561z00_1498;
BgL_obj1561z00_1498 = 
(BgL_nodez00_bglt)(BgL_varz00_19); 
BgL_arg3074z00_897 = 
(((BgL_nodez00_bglt)CREF(BgL_obj1561z00_1498))->BgL_typez00); } 
BgL_arg3075z00_898 = 
(((BgL_varz00_bglt)CREF(BgL_varz00_19))->BgL_variablez00); 
BgL_new2670z00_895 = 
BGl_makezd2varzd2zzast_nodez00(BgL_arg3073z00_896, BgL_arg3074z00_897, BgL_arg3075z00_898); } 
{ /* ./Ast/app.scm 258 */

BgL_arg3070z00_893 = BgL_new2670z00_895; } } 
{ /* ./Ast/app.scm 258 */
obj_t BgL_auxz00_1932;
BgL_auxz00_1932 = 
(obj_t)(BgL_arg3070z00_893); 
BgL_arg3066z00_891 = 
MAKE_PAIR(BgL_auxz00_1932, BgL_argsz00_20); } } 
BgL_arg3067z00_892 = 
CNST_TABLE_REF(((long)10)); 
{ /* ./Ast/app.scm 254 */
BgL_funcallz00_bglt BgL_auxz00_1936;
BgL_auxz00_1936 = 
BGl_makezd2funcallzd2zzast_nodez00(BgL_arg3063z00_888, 
(BgL_typez00_bglt)(BgL_arg3064z00_889), 
(BgL_nodez00_bglt)(BgL_arg3065z00_890), BgL_arg3066z00_891, BgL_arg3067z00_892); 
return 
(obj_t)(BgL_auxz00_1936);} } } } } } } 
}



/* make-va-app-node */
BgL_nodez00_bglt BGl_makezd2vazd2appzd2nodezd2zzast_appz00(long BgL_arityz00_21, obj_t BgL_stackz00_22, obj_t BgL_locz00_23, BgL_varz00_bglt BgL_varz00_24, obj_t BgL_argsz00_25)
{ AN_OBJECT;
{ /* ./Ast/app.scm 263 */
{ 
obj_t BgL_oldzd2argszd2_903;long BgL_arityz00_904;obj_t BgL_fzd2argszd2_905;
BgL_oldzd2argszd2_903 = BgL_argsz00_25; 
BgL_arityz00_904 = BgL_arityz00_21; 
BgL_fzd2argszd2_905 = BNIL; 
BgL_loopz00_906:
{ /* ./Ast/app.scm 271 */
bool_t BgL_test3092z00_907;
BgL_test3092z00_907 = 
(BgL_arityz00_904==((long)-1)); 
if(BgL_test3092z00_907)
{ /* ./Ast/app.scm 272 */
obj_t BgL_lzd2argzd2_908;
{ /* ./Ast/app.scm 272 */
obj_t BgL_arg3126z00_924;
BgL_arg3126z00_924 = 
PROCEDURE_ENTRY(BGl_gensymz00zz__r4_symbols_6_4z00)(BGl_gensymz00zz__r4_symbols_6_4z00, 
CNST_TABLE_REF(((long)11)), BEOA); 
BgL_lzd2argzd2_908 = 
BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(BgL_arg3126z00_924); } 
{ /* ./Ast/app.scm 272 */
obj_t BgL_lzd2expzd2_909;
{ /* ./Ast/app.scm 273 */
obj_t BgL_arg3105z00_915;obj_t BgL_arg3106z00_916;
BgL_arg3105z00_915 = 
CNST_TABLE_REF(((long)6)); 
{ /* ./Ast/app.scm 273 */
obj_t BgL_arg3109z00_917;obj_t BgL_arg3110z00_918;
{ /* ./Ast/app.scm 273 */
obj_t BgL_arg3113z00_919;
{ /* ./Ast/app.scm 273 */
obj_t BgL_arg3117z00_921;
{ /* ./Ast/app.scm 273 */
obj_t BgL_arg3120z00_922;
BgL_arg3120z00_922 = 
BGl_makezd2argszd2listz00zzast_appz00(BgL_oldzd2argszd2_903); 
BgL_arg3117z00_921 = 
MAKE_PAIR(BgL_arg3120z00_922, BNIL); } 
BgL_arg3113z00_919 = 
MAKE_PAIR(BgL_lzd2argzd2_908, BgL_arg3117z00_921); } 
BgL_arg3109z00_917 = 
MAKE_PAIR(BgL_arg3113z00_919, BNIL); } 
BgL_arg3110z00_918 = 
MAKE_PAIR(BgL_lzd2argzd2_908, BNIL); 
BgL_arg3106z00_916 = 
MAKE_PAIR(BgL_arg3109z00_917, BgL_arg3110z00_918); } 
BgL_lzd2expzd2_909 = 
MAKE_PAIR(BgL_arg3105z00_915, BgL_arg3106z00_916); } 
{ /* ./Ast/app.scm 273 */
BgL_nodez00_bglt BgL_lzd2nodezd2_910;
BgL_lzd2nodezd2_910 = 
BGl_sexpzd2ze3nodez31zzast_sexpz00(BgL_lzd2expzd2_909, BgL_stackz00_22, BgL_locz00_23, 
CNST_TABLE_REF(((long)4))); 
{ /* ./Ast/app.scm 275 */
BgL_nodez00_bglt BgL_lzd2varzd2_911;
{ /* ./Ast/app.scm 276 */
BgL_letzd2varzd2_bglt BgL_obj2489z00_1502;
BgL_obj2489z00_1502 = 
(BgL_letzd2varzd2_bglt)(BgL_lzd2nodezd2_910); 
BgL_lzd2varzd2_911 = 
(((BgL_letzd2varzd2_bglt)CREF(BgL_obj2489z00_1502))->BgL_bodyz00); } 
{ /* ./Ast/app.scm 276 */
obj_t BgL_appz00_912;
{ /* ./Ast/app.scm 279 */
obj_t BgL_arg3096z00_913;
{ /* ./Ast/app.scm 279 */
obj_t BgL_arg3099z00_914;
{ /* ./Ast/app.scm 279 */
obj_t BgL_auxz00_1959;
BgL_auxz00_1959 = 
(obj_t)(BgL_lzd2varzd2_911); 
BgL_arg3099z00_914 = 
MAKE_PAIR(BgL_auxz00_1959, BgL_fzd2argszd2_905); } 
BgL_arg3096z00_913 = 
BGl_reversez12z12zz__r4_pairs_and_lists_6_3z00(BgL_arg3099z00_914); } 
BgL_appz00_912 = 
BGl_makezd2fxzd2appzd2nodezd2zzast_appz00(BgL_locz00_23, BgL_varz00_24, BgL_arg3096z00_913); } 
{ /* ./Ast/app.scm 277 */

{ /* ./Ast/app.scm 280 */
BgL_letzd2varzd2_bglt BgL_obj2491z00_1503;BgL_nodez00_bglt BgL_val2490z00_1504;
BgL_obj2491z00_1503 = 
(BgL_letzd2varzd2_bglt)(BgL_lzd2nodezd2_910); 
BgL_val2490z00_1504 = 
(BgL_nodez00_bglt)(BgL_appz00_912); 
((((BgL_letzd2varzd2_bglt)CREF(BgL_obj2491z00_1503))->BgL_bodyz00) = ((BgL_nodez00_bglt)BgL_val2490z00_1504), BUNSPEC); } 
return 
BGl_cleanzd2userzd2nodez12z12zzast_appz00(BgL_lzd2nodezd2_910);} } } } } }  else 
{ /* ./Ast/app.scm 282 */
obj_t BgL_arg3130z00_925;long BgL_arg3131z00_926;obj_t BgL_arg3132z00_927;
BgL_arg3130z00_925 = 
CDR(BgL_oldzd2argszd2_903); 
BgL_arg3131z00_926 = 
(BgL_arityz00_904+((long)1)); 
{ /* ./Ast/app.scm 284 */
BgL_nodez00_bglt BgL_arg3137z00_928;
{ /* ./Ast/app.scm 284 */
obj_t BgL_arg3140z00_929;obj_t BgL_arg3141z00_930;
BgL_arg3140z00_929 = 
CAR(BgL_oldzd2argszd2_903); 
BgL_arg3141z00_930 = 
CNST_TABLE_REF(((long)4)); 
BgL_arg3137z00_928 = 
BGl_sexpzd2ze3nodez31zzast_sexpz00(BgL_arg3140z00_929, BgL_stackz00_22, BgL_locz00_23, BgL_arg3141z00_930); } 
{ /* ./Ast/app.scm 284 */
obj_t BgL_auxz00_1973;
BgL_auxz00_1973 = 
(obj_t)(BgL_arg3137z00_928); 
BgL_arg3132z00_927 = 
MAKE_PAIR(BgL_auxz00_1973, BgL_fzd2argszd2_905); } } 
{ 
obj_t BgL_fzd2argszd2_1978;long BgL_arityz00_1977;obj_t BgL_oldzd2argszd2_1976;
BgL_oldzd2argszd2_1976 = BgL_arg3130z00_925; 
BgL_arityz00_1977 = BgL_arg3131z00_926; 
BgL_fzd2argszd2_1978 = BgL_arg3132z00_927; 
BgL_fzd2argszd2_905 = BgL_fzd2argszd2_1978; 
BgL_arityz00_904 = BgL_arityz00_1977; 
BgL_oldzd2argszd2_903 = BgL_oldzd2argszd2_1976; 
goto BgL_loopz00_906;} } } } } 
}



/* make-args-list */
obj_t BGl_makezd2argszd2listz00zzast_appz00(obj_t BgL_argsz00_931)
{ AN_OBJECT;
{ /* ./Ast/app.scm 267 */
{ /* ./Ast/app.scm 265 */
bool_t BgL_test3146z00_933;
BgL_test3146z00_933 = 
NULLP(BgL_argsz00_931); 
if(BgL_test3146z00_933)
{ /* ./Ast/app.scm 265 */
return 
CNST_TABLE_REF(((long)3));}  else 
{ /* ./Ast/app.scm 267 */
obj_t BgL_arg3148z00_934;obj_t BgL_arg3149z00_935;
{ /* ./Ast/app.scm 267 */
obj_t BgL_arg3152z00_936;obj_t BgL_arg3153z00_937;
BgL_arg3152z00_936 = 
CNST_TABLE_REF(((long)1)); 
{ /* ./Ast/app.scm 267 */
obj_t BgL_arg3156z00_938;obj_t BgL_arg3157z00_939;
BgL_arg3156z00_938 = 
CNST_TABLE_REF(((long)12)); 
{ /* ./Ast/app.scm 267 */
obj_t BgL_auxz00_1984;
BgL_auxz00_1984 = 
CNST_TABLE_REF(((long)13)); 
BgL_arg3157z00_939 = 
MAKE_PAIR(BgL_auxz00_1984, BNIL); } 
BgL_arg3153z00_937 = 
MAKE_PAIR(BgL_arg3156z00_938, BgL_arg3157z00_939); } 
BgL_arg3148z00_934 = 
MAKE_PAIR(BgL_arg3152z00_936, BgL_arg3153z00_937); } 
{ /* ./Ast/app.scm 267 */
obj_t BgL_arg3161z00_940;obj_t BgL_arg3162z00_941;
BgL_arg3161z00_940 = 
CAR(BgL_argsz00_931); 
{ /* ./Ast/app.scm 267 */
obj_t BgL_arg3166z00_942;
{ /* ./Ast/app.scm 267 */
obj_t BgL_arg3170z00_944;
BgL_arg3170z00_944 = 
CDR(BgL_argsz00_931); 
BgL_arg3166z00_942 = 
BGl_makezd2argszd2listz00zzast_appz00(BgL_arg3170z00_944); } 
BgL_arg3162z00_941 = 
MAKE_PAIR(BgL_arg3166z00_942, BNIL); } 
BgL_arg3149z00_935 = 
MAKE_PAIR(BgL_arg3161z00_940, BgL_arg3162z00_941); } 
return 
MAKE_PAIR(BgL_arg3148z00_934, BgL_arg3149z00_935);} } } 
}



/* make-special-app-node */
obj_t BGl_makezd2specialzd2appzd2nodezd2zzast_appz00(obj_t BgL_locz00_27, BgL_varz00_bglt BgL_variablez00_28, obj_t BgL_argsz00_29)
{ AN_OBJECT;
{ /* ./Ast/app.scm 302 */
{ /* ./Ast/app.scm 303 */
BgL_variablez00_bglt BgL_varz00_948;
BgL_varz00_948 = 
(((BgL_varz00_bglt)CREF(BgL_variablez00_28))->BgL_variablez00); 
{ /* ./Ast/app.scm 303 */
obj_t BgL_gnamez00_949;
BgL_gnamez00_949 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_948))->BgL_namez00); 
{ /* ./Ast/app.scm 304 */

{ /* ./Ast/app.scm 305 */
obj_t BgL_casezd2valuezd2_950;
BgL_casezd2valuezd2_950 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_948))->BgL_idz00); 
{ /* ./Ast/app.scm 305 */
bool_t BgL_test3179z00_951;
{ /* ./Ast/app.scm 305 */
obj_t BgL_auxz00_1998;
BgL_auxz00_1998 = 
BGl_memvz00zz__r4_pairs_and_lists_6_3z00(BgL_casezd2valuezd2_950, 
CNST_TABLE_REF(((long)14))); 
BgL_test3179z00_951 = 
CBOOL(BgL_auxz00_1998); } 
if(BgL_test3179z00_951)
{ /* ./Ast/app.scm 308 */
obj_t BgL_arg3181z00_952;BgL_typez00_bglt BgL_arg3183z00_953;obj_t BgL_arg3185z00_955;obj_t BgL_arg3186z00_956;obj_t BgL_arg3187z00_957;
BgL_arg3181z00_952 = BgL_locz00_27; 
BgL_arg3183z00_953 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_948))->BgL_typez00); 
BgL_arg3185z00_955 = BgL_argsz00_29; 
BgL_arg3186z00_956 = 
string_append(BgL_gnamez00_949, BGl_string3737z00zzast_appz00); 
{ /* ./Ast/app.scm 312 */
obj_t BgL_auxz00_2005;
{ /* ./Ast/app.scm 312 */
BgL_cfunz00_bglt BgL_obj1445z00_1520;
{ /* ./Ast/app.scm 312 */
BgL_valuez00_bglt BgL_auxz00_2006;
BgL_auxz00_2006 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_948))->BgL_valuez00); 
BgL_obj1445z00_1520 = 
(BgL_cfunz00_bglt)(BgL_auxz00_2006); } 
BgL_auxz00_2005 = 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_1520))->BgL_argszd2typezd2); } 
BgL_arg3187z00_957 = 
CAR(BgL_auxz00_2005); } 
{ /* ./Ast/app.scm 307 */
BgL_vlengthz00_bglt BgL_auxz00_2011;
BgL_auxz00_2011 = 
BGl_makezd2vlengthzd2zzast_nodez00(BgL_arg3181z00_952, BgL_arg3183z00_953, BUNSPEC, 
BINT(((long)-1)), BgL_arg3185z00_955, BUNSPEC, BgL_arg3186z00_956, 
(BgL_typez00_bglt)(BgL_arg3187z00_957)); 
return 
(obj_t)(BgL_auxz00_2011);} }  else 
{ /* ./Ast/app.scm 305 */
bool_t BgL_test3198z00_960;
{ /* ./Ast/app.scm 305 */
obj_t BgL_auxz00_2016;
BgL_auxz00_2016 = 
BGl_memvz00zz__r4_pairs_and_lists_6_3z00(BgL_casezd2valuezd2_950, 
CNST_TABLE_REF(((long)15))); 
BgL_test3198z00_960 = 
CBOOL(BgL_auxz00_2016); } 
if(BgL_test3198z00_960)
{ /* ./Ast/app.scm 315 */
obj_t BgL_arg3201z00_961;BgL_typez00_bglt BgL_arg3202z00_962;obj_t BgL_arg3204z00_964;obj_t BgL_arg3205z00_965;BgL_typez00_bglt BgL_arg3206z00_966;obj_t BgL_arg3207z00_967;obj_t BgL_arg3208z00_968;
BgL_arg3201z00_961 = BgL_locz00_27; 
BgL_arg3202z00_962 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_948))->BgL_typez00); 
BgL_arg3204z00_964 = BgL_argsz00_29; 
BgL_arg3205z00_965 = 
string_append(BgL_gnamez00_949, BGl_string3738z00zzast_appz00); 
BgL_arg3206z00_966 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_948))->BgL_typez00); 
{ /* ./Ast/app.scm 321 */
obj_t BgL_auxz00_2024;
{ /* ./Ast/app.scm 321 */
obj_t BgL_auxz00_2025;
{ /* ./Ast/app.scm 321 */
BgL_cfunz00_bglt BgL_obj1445z00_1525;
{ /* ./Ast/app.scm 321 */
BgL_valuez00_bglt BgL_auxz00_2026;
BgL_auxz00_2026 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_948))->BgL_valuez00); 
BgL_obj1445z00_1525 = 
(BgL_cfunz00_bglt)(BgL_auxz00_2026); } 
BgL_auxz00_2025 = 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_1525))->BgL_argszd2typezd2); } 
BgL_auxz00_2024 = 
CDR(BgL_auxz00_2025); } 
BgL_arg3207z00_967 = 
CAR(BgL_auxz00_2024); } 
{ /* ./Ast/app.scm 319 */
obj_t BgL_auxz00_2032;
{ /* ./Ast/app.scm 319 */
BgL_cfunz00_bglt BgL_obj1445z00_1531;
{ /* ./Ast/app.scm 319 */
BgL_valuez00_bglt BgL_auxz00_2033;
BgL_auxz00_2033 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_948))->BgL_valuez00); 
BgL_obj1445z00_1531 = 
(BgL_cfunz00_bglt)(BgL_auxz00_2033); } 
BgL_auxz00_2032 = 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_1531))->BgL_argszd2typezd2); } 
BgL_arg3208z00_968 = 
CAR(BgL_auxz00_2032); } 
{ /* ./Ast/app.scm 314 */
BgL_vrefz00_bglt BgL_auxz00_2038;
BgL_auxz00_2038 = 
BGl_makezd2vrefzd2zzast_nodez00(BgL_arg3201z00_961, BgL_arg3202z00_962, BUNSPEC, 
BINT(((long)-1)), BgL_arg3204z00_964, BUNSPEC, BgL_arg3205z00_965, BgL_arg3206z00_966, 
(BgL_typez00_bglt)(BgL_arg3207z00_967), 
(BgL_typez00_bglt)(BgL_arg3208z00_968)); 
return 
(obj_t)(BgL_auxz00_2038);} }  else 
{ /* ./Ast/app.scm 305 */
bool_t BgL_test3227z00_973;
{ /* ./Ast/app.scm 305 */
obj_t BgL_auxz00_2044;
BgL_auxz00_2044 = 
BGl_memvz00zz__r4_pairs_and_lists_6_3z00(BgL_casezd2valuezd2_950, 
CNST_TABLE_REF(((long)16))); 
BgL_test3227z00_973 = 
CBOOL(BgL_auxz00_2044); } 
if(BgL_test3227z00_973)
{ /* ./Ast/app.scm 324 */
obj_t BgL_arg3229z00_974;BgL_typez00_bglt BgL_arg3230z00_975;obj_t BgL_arg3232z00_977;obj_t BgL_arg3233z00_978;obj_t BgL_arg3234z00_979;obj_t BgL_arg3235z00_980;obj_t BgL_arg3236z00_981;
BgL_arg3229z00_974 = BgL_locz00_27; 
BgL_arg3230z00_975 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_948))->BgL_typez00); 
BgL_arg3232z00_977 = BgL_argsz00_29; 
BgL_arg3233z00_978 = 
string_append(BgL_gnamez00_949, BGl_string3739z00zzast_appz00); 
{ /* ./Ast/app.scm 330 */
obj_t BgL_auxz00_2051;
{ /* ./Ast/app.scm 330 */
obj_t BgL_auxz00_2052;
{ /* ./Ast/app.scm 330 */
obj_t BgL_auxz00_2053;
{ /* ./Ast/app.scm 330 */
BgL_cfunz00_bglt BgL_obj1445z00_1535;
{ /* ./Ast/app.scm 330 */
BgL_valuez00_bglt BgL_auxz00_2054;
BgL_auxz00_2054 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_948))->BgL_valuez00); 
BgL_obj1445z00_1535 = 
(BgL_cfunz00_bglt)(BgL_auxz00_2054); } 
BgL_auxz00_2053 = 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_1535))->BgL_argszd2typezd2); } 
BgL_auxz00_2052 = 
CDR(BgL_auxz00_2053); } 
BgL_auxz00_2051 = 
CDR(BgL_auxz00_2052); } 
BgL_arg3234z00_979 = 
CAR(BgL_auxz00_2051); } 
{ /* ./Ast/app.scm 329 */
obj_t BgL_auxz00_2061;
{ /* ./Ast/app.scm 329 */
obj_t BgL_auxz00_2062;
{ /* ./Ast/app.scm 329 */
BgL_cfunz00_bglt BgL_obj1445z00_1543;
{ /* ./Ast/app.scm 329 */
BgL_valuez00_bglt BgL_auxz00_2063;
BgL_auxz00_2063 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_948))->BgL_valuez00); 
BgL_obj1445z00_1543 = 
(BgL_cfunz00_bglt)(BgL_auxz00_2063); } 
BgL_auxz00_2062 = 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_1543))->BgL_argszd2typezd2); } 
BgL_auxz00_2061 = 
CDR(BgL_auxz00_2062); } 
BgL_arg3235z00_980 = 
CAR(BgL_auxz00_2061); } 
{ /* ./Ast/app.scm 328 */
obj_t BgL_auxz00_2069;
{ /* ./Ast/app.scm 328 */
BgL_cfunz00_bglt BgL_obj1445z00_1549;
{ /* ./Ast/app.scm 328 */
BgL_valuez00_bglt BgL_auxz00_2070;
BgL_auxz00_2070 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_948))->BgL_valuez00); 
BgL_obj1445z00_1549 = 
(BgL_cfunz00_bglt)(BgL_auxz00_2070); } 
BgL_auxz00_2069 = 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_1549))->BgL_argszd2typezd2); } 
BgL_arg3236z00_981 = 
CAR(BgL_auxz00_2069); } 
{ /* ./Ast/app.scm 323 */
BgL_vsetz12z12_bglt BgL_auxz00_2075;
BgL_auxz00_2075 = 
BGl_makezd2vsetz12zc0zzast_nodez00(BgL_arg3229z00_974, BgL_arg3230z00_975, BUNSPEC, 
BINT(((long)-1)), BgL_arg3232z00_977, BUNSPEC, BgL_arg3233z00_978, 
(BgL_typez00_bglt)(BgL_arg3234z00_979), 
(BgL_typez00_bglt)(BgL_arg3235z00_980), 
(BgL_typez00_bglt)(BgL_arg3236z00_981)); 
return 
(obj_t)(BgL_auxz00_2075);} }  else 
{ /* ./Ast/app.scm 305 */
bool_t BgL_test3263z00_988;
{ /* ./Ast/app.scm 305 */
obj_t BgL_auxz00_2082;
BgL_auxz00_2082 = 
BGl_memvz00zz__r4_pairs_and_lists_6_3z00(BgL_casezd2valuezd2_950, 
CNST_TABLE_REF(((long)17))); 
BgL_test3263z00_988 = 
CBOOL(BgL_auxz00_2082); } 
if(BgL_test3263z00_988)
{ /* ./Ast/app.scm 332 */
obj_t BgL_stackzd2alloczd2_989;
{ /* ./Ast/app.scm 332 */
BgL_funz00_bglt BgL_obj1308z00_1552;
{ /* ./Ast/app.scm 332 */
BgL_valuez00_bglt BgL_auxz00_2087;
BgL_auxz00_2087 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_948))->BgL_valuez00); 
BgL_obj1308z00_1552 = 
(BgL_funz00_bglt)(BgL_auxz00_2087); } 
BgL_stackzd2alloczd2_989 = 
(((BgL_funz00_bglt)CREF(BgL_obj1308z00_1552))->BgL_stackzd2allocatorzd2); } 
{ /* ./Ast/app.scm 332 */
obj_t BgL_heapzd2formatzd2_990;
BgL_heapzd2formatzd2_990 = 
string_append(BgL_gnamez00_949, BGl_string3737z00zzast_appz00); 
{ /* ./Ast/app.scm 333 */
obj_t BgL_stackzd2formatzd2_991;
{ /* ./Ast/app.scm 334 */
bool_t BgL_test3280z00_1000;
BgL_test3280z00_1000 = 
BGl_iszd2azf3z21zz__objectz00(BgL_stackzd2alloczd2_989, BGl_globalz00zzast_varz00); 
if(BgL_test3280z00_1000)
{ /* ./Ast/app.scm 335 */
obj_t BgL_arg3282z00_1001;
{ /* ./Ast/app.scm 335 */
BgL_variablez00_bglt BgL_obj1094z00_1554;
BgL_obj1094z00_1554 = 
(BgL_variablez00_bglt)(BgL_stackzd2alloczd2_989); 
BgL_arg3282z00_1001 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1094z00_1554))->BgL_namez00); } 
BgL_stackzd2formatzd2_991 = 
string_append(BgL_arg3282z00_1001, BGl_string3737z00zzast_appz00); }  else 
{ /* ./Ast/app.scm 334 */
BgL_stackzd2formatzd2_991 = BgL_heapzd2formatzd2_990; } } 
{ /* ./Ast/app.scm 334 */

{ /* ./Ast/app.scm 339 */
obj_t BgL_arg3265z00_992;BgL_typez00_bglt BgL_arg3266z00_993;obj_t BgL_arg3268z00_995;obj_t BgL_arg3269z00_996;obj_t BgL_arg3270z00_997;
BgL_arg3265z00_992 = BgL_locz00_27; 
BgL_arg3266z00_993 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_948))->BgL_typez00); 
BgL_arg3268z00_995 = BgL_argsz00_29; 
BgL_arg3269z00_996 = BgL_heapzd2formatzd2_990; 
{ /* ./Ast/app.scm 342 */
obj_t BgL_auxz00_2098;
{ /* ./Ast/app.scm 342 */
BgL_cfunz00_bglt BgL_obj1445z00_1557;
{ /* ./Ast/app.scm 342 */
BgL_valuez00_bglt BgL_auxz00_2099;
BgL_auxz00_2099 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_948))->BgL_valuez00); 
BgL_obj1445z00_1557 = 
(BgL_cfunz00_bglt)(BgL_auxz00_2099); } 
BgL_auxz00_2098 = 
(((BgL_cfunz00_bglt)CREF(BgL_obj1445z00_1557))->BgL_argszd2typezd2); } 
BgL_arg3270z00_997 = 
CAR(BgL_auxz00_2098); } 
{ /* ./Ast/app.scm 338 */
BgL_vallocz00_bglt BgL_auxz00_2104;
BgL_auxz00_2104 = 
BGl_makezd2valloczd2zzast_nodez00(BgL_arg3265z00_992, BgL_arg3266z00_993, BUNSPEC, 
BINT(((long)-1)), BgL_arg3268z00_995, BUNSPEC, BgL_arg3269z00_996, 
(BgL_typez00_bglt)(BGl_za2objza2z00zztype_cachez00), 
(BgL_typez00_bglt)(BgL_arg3270z00_997)); 
return 
(obj_t)(BgL_auxz00_2104);} } } } } }  else 
{ /* ./Ast/app.scm 345 */
obj_t BgL_arg3295z00_1006;
BgL_arg3295z00_1006 = 
BGl_shapez00zztools_shapez00(
(obj_t)(BgL_varz00_948)); 
FAILURE(BGl_string3740z00zzast_appz00,BGl_string3741z00zzast_appz00,BgL_arg3295z00_1006);} } } } } } } } } } 
}



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



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzast_appz00()
{ AN_OBJECT;
{ /* ./Ast/app.scm 14 */
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "ast_app"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "ast_app"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "ast_app"); 
BGl_modulezd2initializa7ationz75zztools_tracez00(((long)59211), "ast_app"); 
BGl_modulezd2initializa7ationz75zztools_errorz00(((long)25566), "ast_app"); 
BGl_modulezd2initializa7ationz75zztools_locationz00(((long)32118), "ast_app"); 
BGl_modulezd2initializa7ationz75zztools_shapez00(((long)30833), "ast_app"); 
BGl_modulezd2initializa7ationz75zztype_cachez00(((long)25848), "ast_app"); 
BGl_modulezd2initializa7ationz75zzast_sexpz00(((long)15705), "ast_app"); 
return 
BGl_modulezd2initializa7ationz75zzast_identz00(((long)51504), "ast_app");} 
}

