/*===========================================================================*/
/*   (Inline/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 Inline/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;

typedef struct BgL_isfunz00_bgl {
   struct BgL_nodez00_bgl * BgL_originalzd2bodyzd2;
   obj_t BgL_recursivezd2callszd2;
} *BgL_isfunz00_bglt;


extern obj_t BGl_za2optimzd2unrollzd2loopzf3za2zf3zzengine_paramz00;
static obj_t BGl_methodzd2initzd2zzinline_appz00();
BGL_IMPORT obj_t open_input_string(obj_t);
extern obj_t BGl_sfunz00zzast_varz00;
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
BGL_IMPORT bool_t BGl_iszd2azf3z21zz__objectz00(obj_t, obj_t);
extern obj_t BGl_za2userzd2inliningzf3za2z21zzengine_paramz00;
extern obj_t BGl_za2inliningzf3za2zf3zzengine_paramz00;
extern obj_t BGl_za2inlinezd2modeza2zd2zzinline_walkz00;
extern obj_t BGl_globalz00zzast_varz00;
extern long BGl_nodezd2siza7ez75zzinline_siza7eza7(BgL_nodez00_bglt);
extern bool_t BGl_iszd2recursivezf3z21zzinline_recursionz00(BgL_variablez00_bglt);
static obj_t BGl__inlinezd2appzf33150z21zzinline_appz00(obj_t, obj_t, obj_t, obj_t, obj_t);
static obj_t BGl_cnstzd2initzd2zzinline_appz00();
extern BgL_nodez00_bglt BGl_inlinezd2appzd2recursivez00zzinline_recursionz00(BgL_nodez00_bglt, long, obj_t);
static obj_t BGl_importedzd2moduleszd2initz00zzinline_appz00();
extern obj_t BGl_za2optimzd2loopzd2inliningzf3za2zf3zzengine_paramz00;
BGL_EXPORTED_DECL BgL_nodez00_bglt BGl_inlinezd2appzd2zzinline_appz00(BgL_appz00_bglt, long, obj_t);
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzinline_appz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_tracez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_errorz00(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_modulezd2initializa7ationz75zzinline_walkz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzinline_inlinez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzinline_siza7eza7(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzinline_simplez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzinline_recursionz00(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 long bgl_list_length(obj_t);
BGL_IMPORT obj_t BGl_memqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
extern BgL_nodez00_bglt BGl_inlinezd2appzd2simplez00zzinline_simplez00(BgL_nodez00_bglt, long, obj_t, obj_t);
static obj_t BGl__inlinezd2app3148zd2zzinline_appz00(obj_t, obj_t, obj_t, obj_t);
BGL_EXPORTED_DECL bool_t BGl_inlinezd2appzf3z21zzinline_appz00(BgL_variablez00_bglt, long, long, obj_t);
extern obj_t BGl_isfunz00zzinline_inlinez00;
static obj_t BGl_requirezd2initializa7ationz75zzinline_appz00 = BUNSPEC;
extern obj_t BGl_za2nonzd2inlinedzd2callsza2z00zzinline_walkz00;
extern obj_t BGl_za2inlinedzd2callsza2zd2zzinline_walkz00;
static obj_t BGl_libraryzd2moduleszd2initz00zzinline_appz00();
static obj_t __cnst[ 4 ] ;


DEFINE_STRING( BGl_string3197z00zzinline_appz00, BgL_bgl_string3197za700za7za7inline_appza7003223z00, "import predicate snifun sifun ", 30 );
DEFINE_EXPORT_PROCEDURE( BGl_inlinezd2appzd2envz00zzinline_appz00, BgL_bgl__inlineza7d2app3148za7d2za7za7inline_appza7003224za7, BGl__inlinezd2app3148zd2zzinline_appz00, 0L, 3 );
DEFINE_STRING( BGl_string3196z00zzinline_appz00, BgL_bgl_string3196za700za7za7inline_appza7003225z00, "simple", 6 );
DEFINE_EXPORT_PROCEDURE( BGl_inlinezd2appzf3zd2envzf3zzinline_appz00, BgL_bgl__inlineza7d2appza7f33150za721za7za7inline_appza7003226z00, BGl__inlinezd2appzf33150z21zzinline_appz00, 0L, 4 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzinline_appz00(long BgL_checksumz00_1120, char * BgL_fromz00_1121)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzinline_appz00))
{ 
BGl_requirezd2initializa7ationz75zzinline_appz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzinline_appz00(); 
BGl_cnstzd2initzd2zzinline_appz00(); 
BGl_importedzd2moduleszd2initz00zzinline_appz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzinline_appz00()
{ AN_OBJECT;
{ /* ./Inline/app.scm 15 */
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "inline_app"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "inline_app"); 
BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(((long)0), "inline_app"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzinline_appz00()
{ AN_OBJECT;
{ /* ./Inline/app.scm 15 */
{ /* ./Inline/app.scm 15 */
obj_t BgL_cportz00_1113;
BgL_cportz00_1113 = 
open_input_string(BGl_string3197z00zzinline_appz00); 
{ 
long BgL_iz00_1114;
BgL_iz00_1114 = ((long)3); 
BgL_loopz00_1115:
{ /* ./Inline/app.scm 15 */
bool_t BgL_test3199z00_1116;
BgL_test3199z00_1116 = 
(BgL_iz00_1114==((long)-1)); 
if(BgL_test3199z00_1116)
{ /* ./Inline/app.scm 15 */
return BUNSPEC;}  else 
{ /* ./Inline/app.scm 15 */
{ /* ./Inline/app.scm 15 */
obj_t BgL_arg3201z00_1117;
{ /* ./Inline/app.scm 15 */
obj_t BgL_list3204z00_1118;
BgL_list3204z00_1118 = 
MAKE_PAIR(BgL_cportz00_1113, BNIL); 
BgL_arg3201z00_1117 = 
BGl_readz00zz__readerz00(BgL_list3204z00_1118); } 
{ /* ./Inline/app.scm 15 */
int BgL_auxz00_1136;
BgL_auxz00_1136 = 
(int)(BgL_iz00_1114); 
CNST_TABLE_SET(BgL_auxz00_1136, BgL_arg3201z00_1117); } } 
{ /* ./Inline/app.scm 15 */
int BgL_auxz00_1119;
{ /* ./Inline/app.scm 15 */
long BgL_auxz00_1139;
BgL_auxz00_1139 = 
(BgL_iz00_1114-((long)1)); 
BgL_auxz00_1119 = 
(int)(BgL_auxz00_1139); } 
{ 
long BgL_iz00_1142;
BgL_iz00_1142 = 
(long)(BgL_auxz00_1119); 
BgL_iz00_1114 = BgL_iz00_1142; 
goto BgL_loopz00_1115;} } } } } } } 
}



/* inline-app */
BGL_EXPORTED_DEF BgL_nodez00_bglt BGl_inlinezd2appzd2zzinline_appz00(BgL_appz00_bglt BgL_nodez00_1, long BgL_kfactorz00_2, obj_t BgL_stackz00_3)
{ AN_OBJECT;
{ /* ./Inline/app.scm 34 */
{ /* ./Inline/app.scm 35 */
BgL_varz00_bglt BgL_calleez00_673;
BgL_calleez00_673 = 
(((BgL_appz00_bglt)CREF(BgL_nodez00_1))->BgL_funz00); 
{ /* ./Inline/app.scm 35 */
BgL_variablez00_bglt BgL_varz00_674;
BgL_varz00_674 = 
(((BgL_varz00_bglt)CREF(BgL_calleez00_673))->BgL_variablez00); 
{ /* ./Inline/app.scm 36 */
BgL_valuez00_bglt BgL_sfunz00_675;
BgL_sfunz00_675 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_674))->BgL_valuez00); 
{ /* ./Inline/app.scm 39 */

{ /* ./Inline/app.scm 41 */
bool_t BgL_test2731z00_678;
{ /* ./Inline/app.scm 41 */
obj_t BgL_obj1425z00_1080;
BgL_obj1425z00_1080 = 
(obj_t)(BgL_sfunz00_675); 
BgL_test2731z00_678 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1425z00_1080, BGl_sfunz00zzast_varz00); } 
if(BgL_test2731z00_678)
{ /* ./Inline/app.scm 43 */
bool_t BgL_test2732z00_679;
{ /* ./Inline/app.scm 45 */
long BgL_arg2746z00_684;
{ /* ./Inline/app.scm 45 */
long BgL_auxz00_1150;
BgL_auxz00_1150 = 
bgl_list_length(
(((BgL_appz00_bglt)CREF(BgL_nodez00_1))->BgL_argsz00)); 
BgL_arg2746z00_684 = 
(((long)1)+BgL_auxz00_1150); } 
BgL_test2732z00_679 = 
BGl_inlinezd2appzf3z21zzinline_appz00(BgL_varz00_674, BgL_kfactorz00_2, BgL_arg2746z00_684, BgL_stackz00_3); } 
if(BgL_test2732z00_679)
{ /* ./Inline/app.scm 43 */
{ /* ./Inline/app.scm 48 */
bool_t BgL_test2733z00_680;
{ /* ./Inline/app.scm 48 */
obj_t BgL_auxz00_1159;obj_t BgL_auxz00_1156;
BgL_auxz00_1159 = 
CNST_TABLE_REF(((long)0)); 
{ /* ./Inline/app.scm 48 */
BgL_sfunz00_bglt BgL_obj1374z00_1084;
BgL_obj1374z00_1084 = 
(BgL_sfunz00_bglt)(BgL_sfunz00_675); 
BgL_auxz00_1156 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1374z00_1084))->BgL_classz00); } 
BgL_test2733z00_680 = 
(BgL_auxz00_1156==BgL_auxz00_1159); } 
if(BgL_test2733z00_680)
{ /* ./Inline/app.scm 48 */BFALSE; }  else 
{ /* ./Inline/app.scm 49 */
long BgL_za71za7_1085;
BgL_za71za7_1085 = 
(long)CINT(BGl_za2inlinedzd2callsza2zd2zzinline_walkz00); 
{ /* ./Inline/app.scm 49 */
long BgL_auxz00_1164;
BgL_auxz00_1164 = 
(BgL_za71za7_1085+((long)1)); 
BGl_za2inlinedzd2callsza2zd2zzinline_walkz00 = 
BINT(BgL_auxz00_1164); } } } 
{ /* ./Inline/app.scm 50 */
bool_t BgL_test2740z00_683;
if(
CBOOL(BGl_za2optimzd2loopzd2inliningzf3za2zf3zzengine_paramz00))
{ /* ./Inline/app.scm 50 */
BgL_test2740z00_683 = 
BGl_iszd2recursivezf3z21zzinline_recursionz00(BgL_varz00_674); }  else 
{ /* ./Inline/app.scm 50 */
BgL_test2740z00_683 = ((bool_t)0); } 
if(BgL_test2740z00_683)
{ /* ./Inline/app.scm 50 */
return 
BGl_inlinezd2appzd2recursivez00zzinline_recursionz00(
(BgL_nodez00_bglt)(BgL_nodez00_1), BgL_kfactorz00_2, BgL_stackz00_3);}  else 
{ /* ./Inline/app.scm 50 */
return 
BGl_inlinezd2appzd2simplez00zzinline_simplez00(
(BgL_nodez00_bglt)(BgL_nodez00_1), BgL_kfactorz00_2, BgL_stackz00_3, BGl_string3196z00zzinline_appz00);} } }  else 
{ /* ./Inline/app.scm 43 */
{ /* ./Inline/app.scm 54 */
long BgL_za71za7_1087;
BgL_za71za7_1087 = 
(long)CINT(BGl_za2nonzd2inlinedzd2callsza2z00zzinline_walkz00); 
{ /* ./Inline/app.scm 54 */
long BgL_auxz00_1176;
BgL_auxz00_1176 = 
(BgL_za71za7_1087+((long)1)); 
BGl_za2nonzd2inlinedzd2callsza2z00zzinline_walkz00 = 
BINT(BgL_auxz00_1176); } } 
return 
(BgL_nodez00_bglt)(BgL_nodez00_1);} }  else 
{ /* ./Inline/app.scm 41 */
return 
(BgL_nodez00_bglt)(BgL_nodez00_1);} } } } } } } 
}



/* _inline-app3148 */
obj_t BGl__inlinezd2app3148zd2zzinline_appz00(obj_t BgL_envz00_1104, obj_t BgL_nodez00_1105, obj_t BgL_kfactorz00_1106, obj_t BgL_stackz00_1107)
{ AN_OBJECT;
{ /* ./Inline/app.scm 34 */
{ /* ./Inline/app.scm 35 */
BgL_nodez00_bglt BgL_auxz00_1181;
BgL_auxz00_1181 = 
BGl_inlinezd2appzd2zzinline_appz00(
(BgL_appz00_bglt)(BgL_nodez00_1105), 
(long)CINT(BgL_kfactorz00_1106), BgL_stackz00_1107); 
return 
(obj_t)(BgL_auxz00_1181);} } 
}



/* inline-app? */
BGL_EXPORTED_DEF bool_t BGl_inlinezd2appzf3z21zzinline_appz00(BgL_variablez00_bglt BgL_varz00_4, long BgL_kfactorz00_5, long BgL_callzd2siza7ez75_6, obj_t BgL_stackz00_7)
{ AN_OBJECT;
{ /* ./Inline/app.scm 60 */
{ /* ./Inline/app.scm 65 */
BgL_valuez00_bglt BgL_sfunz00_688;
BgL_sfunz00_688 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_4))->BgL_valuez00); 
{ /* ./Inline/app.scm 65 */
obj_t BgL_bodyz00_689;
{ /* ./Inline/app.scm 66 */
bool_t BgL_test2805z00_712;
{ /* ./Inline/app.scm 66 */
obj_t BgL_obj2684z00_1090;
BgL_obj2684z00_1090 = 
(obj_t)(BgL_sfunz00_688); 
BgL_test2805z00_712 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj2684z00_1090, BGl_isfunz00zzinline_inlinez00); } 
if(BgL_test2805z00_712)
{ /* ./Inline/app.scm 67 */
BgL_isfunz00_bglt BgL_obj2686z00_1091;
BgL_obj2686z00_1091 = 
(BgL_isfunz00_bglt)(BgL_sfunz00_688); 
{ /* ./Inline/app.scm 67 */
BgL_nodez00_bglt BgL_auxz00_1191;
{ 
obj_t BgL_auxz00_1192;
{ /* ./Inline/app.scm 67 */
BgL_objectz00_bglt BgL_auxz00_1193;
BgL_auxz00_1193 = 
(BgL_objectz00_bglt)(BgL_obj2686z00_1091); 
BgL_auxz00_1192 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1193); } 
BgL_auxz00_1191 = 
(((BgL_isfunz00_bglt)CREF(BgL_auxz00_1192))->BgL_originalzd2bodyzd2); } 
BgL_bodyz00_689 = 
(obj_t)(BgL_auxz00_1191); } }  else 
{ /* ./Inline/app.scm 68 */
BgL_sfunz00_bglt BgL_obj1370z00_1092;
BgL_obj1370z00_1092 = 
(BgL_sfunz00_bglt)(BgL_sfunz00_688); 
BgL_bodyz00_689 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1370z00_1092))->BgL_bodyz00); } } 
{ /* ./Inline/app.scm 66 */

if(
CBOOL(BGl_za2inliningzf3za2zf3zzengine_paramz00))
{ /* ./Inline/app.scm 74 */
bool_t BgL_test2762z00_690;
if(
CBOOL(BGl_za2optimzd2loopzd2inliningzf3za2zf3zzengine_paramz00))
{ /* ./Inline/app.scm 74 */
if(
CBOOL(BGl_za2optimzd2unrollzd2loopzf3za2zf3zzengine_paramz00))
{ /* ./Inline/app.scm 75 */
BgL_test2762z00_690 = ((bool_t)0); }  else 
{ /* ./Inline/app.scm 76 */
obj_t BgL_auxz00_1206;
BgL_auxz00_1206 = 
BGl_memqz00zz__r4_pairs_and_lists_6_3z00(
(obj_t)(BgL_varz00_4), BgL_stackz00_7); 
BgL_test2762z00_690 = 
CBOOL(BgL_auxz00_1206); } }  else 
{ /* ./Inline/app.scm 74 */
BgL_test2762z00_690 = ((bool_t)0); } 
if(BgL_test2762z00_690)
{ /* ./Inline/app.scm 74 */
return ((bool_t)0);}  else 
{ /* ./Inline/app.scm 80 */
bool_t BgL_test2763z00_691;
{ /* ./Inline/app.scm 80 */
obj_t BgL_auxz00_1214;obj_t BgL_auxz00_1211;
BgL_auxz00_1214 = 
CNST_TABLE_REF(((long)1)); 
{ /* ./Inline/app.scm 80 */
BgL_sfunz00_bglt BgL_obj1374z00_1093;
BgL_obj1374z00_1093 = 
(BgL_sfunz00_bglt)(BgL_sfunz00_688); 
BgL_auxz00_1211 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1374z00_1093))->BgL_classz00); } 
BgL_test2763z00_691 = 
(BgL_auxz00_1211==BgL_auxz00_1214); } 
if(BgL_test2763z00_691)
{ /* ./Inline/app.scm 80 */
return ((bool_t)0);}  else 
{ /* ./Inline/app.scm 84 */
bool_t BgL_test2764z00_692;
{ /* ./Inline/app.scm 84 */
bool_t BgL_test2788z00_704;
{ /* ./Inline/app.scm 84 */
obj_t BgL_auxz00_1221;obj_t BgL_auxz00_1218;
BgL_auxz00_1221 = 
CNST_TABLE_REF(((long)0)); 
{ /* ./Inline/app.scm 84 */
BgL_sfunz00_bglt BgL_obj1374z00_1094;
BgL_obj1374z00_1094 = 
(BgL_sfunz00_bglt)(BgL_sfunz00_688); 
BgL_auxz00_1218 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1374z00_1094))->BgL_classz00); } 
BgL_test2788z00_704 = 
(BgL_auxz00_1218==BgL_auxz00_1221); } 
if(BgL_test2788z00_704)
{ /* ./Inline/app.scm 85 */
bool_t BgL_test2789z00_705;
{ /* ./Inline/app.scm 85 */
obj_t BgL_auxz00_1225;
BgL_auxz00_1225 = 
BGl_memqz00zz__r4_pairs_and_lists_6_3z00(
(obj_t)(BgL_varz00_4), BgL_stackz00_7); 
BgL_test2789z00_705 = 
CBOOL(BgL_auxz00_1225); } 
if(BgL_test2789z00_705)
{ /* ./Inline/app.scm 85 */
BgL_test2764z00_692 = ((bool_t)0); }  else 
{ /* ./Inline/app.scm 86 */
bool_t BgL__ortest_2730z00_706;
{ /* ./Inline/app.scm 86 */
bool_t BgL_test2791z00_707;
{ /* ./Inline/app.scm 86 */
obj_t BgL_auxz00_1230;
BgL_auxz00_1230 = 
CNST_TABLE_REF(((long)2)); 
BgL_test2791z00_707 = 
(BGl_za2inlinezd2modeza2zd2zzinline_walkz00==BgL_auxz00_1230); } 
if(BgL_test2791z00_707)
{ /* ./Inline/app.scm 86 */
BgL__ortest_2730z00_706 = ((bool_t)0); }  else 
{ /* ./Inline/app.scm 86 */
BgL__ortest_2730z00_706 = ((bool_t)1); } } 
if(BgL__ortest_2730z00_706)
{ /* ./Inline/app.scm 86 */
BgL_test2764z00_692 = BgL__ortest_2730z00_706; }  else 
{ /* ./Inline/app.scm 87 */
BgL_funz00_bglt BgL_obj1305z00_1095;
BgL_obj1305z00_1095 = 
(BgL_funz00_bglt)(BgL_sfunz00_688); 
{ /* ./Inline/app.scm 87 */
obj_t BgL_auxz00_1236;
BgL_auxz00_1236 = 
(((BgL_funz00_bglt)CREF(BgL_obj1305z00_1095))->BgL_predicatezd2ofzd2); 
BgL_test2764z00_692 = 
CBOOL(BgL_auxz00_1236); } } } }  else 
{ /* ./Inline/app.scm 84 */
BgL_test2764z00_692 = ((bool_t)0); } } 
if(BgL_test2764z00_692)
{ /* ./Inline/app.scm 84 */
return ((bool_t)1);}  else 
{ /* ./Inline/app.scm 91 */
bool_t BgL_test2765z00_693;
{ /* ./Inline/app.scm 91 */
bool_t BgL_test2781z00_701;
{ /* ./Inline/app.scm 91 */
obj_t BgL_obj1240z00_1096;
BgL_obj1240z00_1096 = 
(obj_t)(BgL_varz00_4); 
BgL_test2781z00_701 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1240z00_1096, BGl_globalz00zzast_varz00); } 
if(BgL_test2781z00_701)
{ /* ./Inline/app.scm 91 */
obj_t BgL_auxz00_1246;obj_t BgL_auxz00_1243;
BgL_auxz00_1246 = 
CNST_TABLE_REF(((long)3)); 
{ /* ./Inline/app.scm 91 */
BgL_globalz00_bglt BgL_obj1168z00_1097;
BgL_obj1168z00_1097 = 
(BgL_globalz00_bglt)(BgL_varz00_4); 
BgL_auxz00_1243 = 
(((BgL_globalz00_bglt)CREF(BgL_obj1168z00_1097))->BgL_importz00); } 
BgL_test2765z00_693 = 
(BgL_auxz00_1243==BgL_auxz00_1246); }  else 
{ /* ./Inline/app.scm 91 */
BgL_test2765z00_693 = ((bool_t)0); } } 
if(BgL_test2765z00_693)
{ /* ./Inline/app.scm 91 */
return ((bool_t)0);}  else 
{ /* ./Inline/app.scm 95 */
bool_t BgL_test2766z00_694;
if(
CBOOL(BGl_za2userzd2inliningzf3za2z21zzengine_paramz00))
{ /* ./Inline/app.scm 96 */
long BgL_arg2776z00_699;long BgL_arg2777z00_700;
BgL_arg2776z00_699 = 
BGl_nodezd2siza7ez75zzinline_siza7eza7(
(BgL_nodez00_bglt)(BgL_bodyz00_689)); 
BgL_arg2777z00_700 = 
(BgL_kfactorz00_5*BgL_callzd2siza7ez75_6); 
BgL_test2766z00_694 = 
(BgL_arg2776z00_699<BgL_arg2777z00_700); }  else 
{ /* ./Inline/app.scm 95 */
BgL_test2766z00_694 = ((bool_t)0); } 
if(BgL_test2766z00_694)
{ /* ./Inline/app.scm 95 */
return ((bool_t)1);}  else 
{ /* ./Inline/app.scm 104 */
bool_t BgL_test2767z00_695;
if(
CBOOL(BGl_za2userzd2inliningzf3za2z21zzengine_paramz00))
{ /* ./Inline/app.scm 105 */
bool_t BgL_test2768z00_696;
{ /* ./Inline/app.scm 105 */
long BgL_arg2772z00_698;
BgL_arg2772z00_698 = 
BGl_nodezd2siza7ez75zzinline_siza7eza7(
(BgL_nodez00_bglt)(BgL_bodyz00_689)); 
BgL_test2768z00_696 = 
(BgL_arg2772z00_698==BgL_callzd2siza7ez75_6); } 
if(BgL_test2768z00_696)
{ /* ./Inline/app.scm 106 */
bool_t BgL_testz00_1263;
{ /* ./Inline/app.scm 106 */
obj_t BgL_auxz00_1264;
BgL_auxz00_1264 = 
BGl_memqz00zz__r4_pairs_and_lists_6_3z00(
(obj_t)(BgL_varz00_4), BgL_stackz00_7); 
BgL_testz00_1263 = 
CBOOL(BgL_auxz00_1264); } 
if(BgL_testz00_1263)
{ /* ./Inline/app.scm 106 */
BgL_test2767z00_695 = ((bool_t)0); }  else 
{ /* ./Inline/app.scm 106 */
BgL_test2767z00_695 = ((bool_t)1); } }  else 
{ /* ./Inline/app.scm 105 */
BgL_test2767z00_695 = ((bool_t)0); } }  else 
{ /* ./Inline/app.scm 104 */
BgL_test2767z00_695 = ((bool_t)0); } 
if(BgL_test2767z00_695)
{ /* ./Inline/app.scm 104 */
return ((bool_t)1);}  else 
{ /* ./Inline/app.scm 104 */
return ((bool_t)0);} } } } } } }  else 
{ /* ./Inline/app.scm 70 */
return ((bool_t)0);} } } } } 
}



/* _inline-app?3150 */
obj_t BGl__inlinezd2appzf33150z21zzinline_appz00(obj_t BgL_envz00_1108, obj_t BgL_varz00_1109, obj_t BgL_kfactorz00_1110, obj_t BgL_callzd2siza7ez75_1111, obj_t BgL_stackz00_1112)
{ AN_OBJECT;
{ /* ./Inline/app.scm 60 */
{ /* ./Inline/app.scm 61 */
bool_t BgL_auxz00_1269;
BgL_auxz00_1269 = 
BGl_inlinezd2appzf3z21zzinline_appz00(
(BgL_variablez00_bglt)(BgL_varz00_1109), 
(long)CINT(BgL_kfactorz00_1110), 
(long)CINT(BgL_callzd2siza7ez75_1111), BgL_stackz00_1112); 
return 
BBOOL(BgL_auxz00_1269);} } 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzinline_appz00()
{ AN_OBJECT;
{ /* ./Inline/app.scm 15 */
return BUNSPEC;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzinline_appz00()
{ AN_OBJECT;
{ /* ./Inline/app.scm 15 */
BGl_modulezd2initializa7ationz75zztools_tracez00(((long)59211), "inline_app"); 
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "inline_app"); 
BGl_modulezd2initializa7ationz75zztools_shapez00(((long)30833), "inline_app"); 
BGl_modulezd2initializa7ationz75zztools_errorz00(((long)25566), "inline_app"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "inline_app"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "inline_app"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "inline_app"); 
BGl_modulezd2initializa7ationz75zzinline_walkz00(((long)10614), "inline_app"); 
BGl_modulezd2initializa7ationz75zzinline_inlinez00(((long)63036), "inline_app"); 
BGl_modulezd2initializa7ationz75zzinline_siza7eza7(((long)54525), "inline_app"); 
BGl_modulezd2initializa7ationz75zzinline_simplez00(((long)169), "inline_app"); 
return 
BGl_modulezd2initializa7ationz75zzinline_recursionz00(((long)57168), "inline_app");} 
}

