/*===========================================================================*/
/*   (Foreign/library.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 Foreign/library.scm)*/
/* GC selection */
#define THE_GC BOEHM_GC

#include <bigloo.h>


/* Object type definitions */
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_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_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;


BGL_IMPORT obj_t BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
static obj_t BGl_methodzd2initzd2zzforeign_libraryz00();
BGL_IMPORT obj_t open_input_string(obj_t);
static obj_t BGl__makezd2protozd2inlinez00zzforeign_libraryz00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
static obj_t BGl__makezd2definezd2inlinez00zzforeign_libraryz00(obj_t, obj_t, obj_t);
BGL_IMPORT bool_t BGl_iszd2azf3z21zz__objectz00(obj_t, obj_t);
extern obj_t BGl_globalz00zzast_varz00;
BGL_EXPORTED_DECL obj_t BGl_preparezd2foreignzd2accessz12z12zzforeign_libraryz00();
BGL_EXPORTED_DECL obj_t BGl_makezd2protozd2inlinez00zzforeign_libraryz00(obj_t);
static obj_t BGl_cnstzd2initzd2zzforeign_libraryz00();
static obj_t BGl__registerzd2foreignzd2accesszd2identsz12zc0zzforeign_libraryz00(obj_t, obj_t);
static obj_t BGl_importedzd2moduleszd2initz00zzforeign_libraryz00();
static obj_t BGl_toplevelzd2initzd2zzforeign_libraryz00();
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzforeign_libraryz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_envz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(long, char *);
extern obj_t BGl_findzd2globalzd2zzast_envz00(obj_t, obj_t);
static obj_t BGl__preparezd2foreignzd2accessz12z12zzforeign_libraryz00(obj_t);
static obj_t BGl_za2registeredzd2identza2zd2zzforeign_libraryz00 = BUNSPEC;
BGL_EXPORTED_DECL obj_t BGl_makezd2definezd2inlinez00zzforeign_libraryz00(obj_t, obj_t);
BGL_IMPORT obj_t bgl_append2(obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_registerzd2foreignzd2accesszd2identsz12zc0zzforeign_libraryz00(obj_t);
static obj_t BGl_requirezd2initializa7ationz75zzforeign_libraryz00 = BUNSPEC;
static obj_t BGl_libraryzd2moduleszd2initz00zzforeign_libraryz00();
static obj_t __cnst[ 5 ] ;


DEFINE_EXPORT_PROCEDURE( BGl_registerzd2foreignzd2accesszd2identsz12zd2envz12zzforeign_libraryz00, BgL_bgl__registerza7d2foreignza7d2accessza7d2identsza712za7c0za7za7foreign_libraryza7003063z00, va_generic_entry, BGl__registerzd2foreignzd2accesszd2identsz12zc0zzforeign_libraryz00, -1 );
DEFINE_EXPORT_PROCEDURE( BGl_preparezd2foreignzd2accessz12zd2envzc0zzforeign_libraryz00, BgL_bgl__prepareza7d2foreignza7d2accessza712za712za7za7foreign_libraryza7003064za7, BGl__preparezd2foreignzd2accessz12z12zzforeign_libraryz00, 0L, 0 );
DEFINE_STRING( BGl_string3036z00zzforeign_libraryz00, BgL_bgl_string3036za700za7za7foreign_libraryza7003065z00, "foreign export inline define define-inline ", 43 );
DEFINE_STRING( BGl_string3035z00zzforeign_libraryz00, BgL_bgl_string3035za700za7za7foreign_libraryza7003066z00, "Can't find global", 17 );
DEFINE_STRING( BGl_string3034z00zzforeign_libraryz00, BgL_bgl_string3034za700za7za7foreign_libraryza7003067z00, "prepare-foreign-access!", 23 );
DEFINE_EXPORT_PROCEDURE( BGl_makezd2protozd2inlinezd2envzd2zzforeign_libraryz00, BgL_bgl__makeza7d2protoza7d2inlineza700za7za7foreign_libraryza7003068z00, BGl__makezd2protozd2inlinez00zzforeign_libraryz00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_makezd2definezd2inlinezd2envzd2zzforeign_libraryz00, BgL_bgl__makeza7d2defineza7d2inlineza700za7za7foreign_libraryza7003069z00, BGl__makezd2definezd2inlinez00zzforeign_libraryz00, 0L, 2 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzforeign_libraryz00(long BgL_checksumz00_1064, char * BgL_fromz00_1065)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzforeign_libraryz00))
{ 
BGl_requirezd2initializa7ationz75zzforeign_libraryz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzforeign_libraryz00(); 
BGl_cnstzd2initzd2zzforeign_libraryz00(); 
BGl_importedzd2moduleszd2initz00zzforeign_libraryz00(); 
BGl_toplevelzd2initzd2zzforeign_libraryz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzforeign_libraryz00()
{ AN_OBJECT;
{ /* ./Foreign/library.scm 15 */
BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(((long)0), "foreign_library"); 
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "foreign_library"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "foreign_library"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzforeign_libraryz00()
{ AN_OBJECT;
{ /* ./Foreign/library.scm 15 */
{ /* ./Foreign/library.scm 15 */
obj_t BgL_cportz00_1057;
BgL_cportz00_1057 = 
open_input_string(BGl_string3036z00zzforeign_libraryz00); 
{ 
long BgL_iz00_1058;
BgL_iz00_1058 = ((long)4); 
BgL_loopz00_1059:
{ /* ./Foreign/library.scm 15 */
bool_t BgL_test3038z00_1060;
BgL_test3038z00_1060 = 
(BgL_iz00_1058==((long)-1)); 
if(BgL_test3038z00_1060)
{ /* ./Foreign/library.scm 15 */
return BUNSPEC;}  else 
{ /* ./Foreign/library.scm 15 */
{ /* ./Foreign/library.scm 15 */
obj_t BgL_arg3040z00_1061;
{ /* ./Foreign/library.scm 15 */
obj_t BgL_list3043z00_1062;
BgL_list3043z00_1062 = 
MAKE_PAIR(BgL_cportz00_1057, BNIL); 
BgL_arg3040z00_1061 = 
BGl_readz00zz__readerz00(BgL_list3043z00_1062); } 
{ /* ./Foreign/library.scm 15 */
int BgL_auxz00_1081;
BgL_auxz00_1081 = 
(int)(BgL_iz00_1058); 
CNST_TABLE_SET(BgL_auxz00_1081, BgL_arg3040z00_1061); } } 
{ /* ./Foreign/library.scm 15 */
int BgL_auxz00_1063;
{ /* ./Foreign/library.scm 15 */
long BgL_auxz00_1084;
BgL_auxz00_1084 = 
(BgL_iz00_1058-((long)1)); 
BgL_auxz00_1063 = 
(int)(BgL_auxz00_1084); } 
{ 
long BgL_iz00_1087;
BgL_iz00_1087 = 
(long)(BgL_auxz00_1063); 
BgL_iz00_1058 = BgL_iz00_1087; 
goto BgL_loopz00_1059;} } } } } } } 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzforeign_libraryz00()
{ AN_OBJECT;
{ /* ./Foreign/library.scm 15 */
return ( 
BGl_za2registeredzd2identza2zd2zzforeign_libraryz00 = BNIL, BUNSPEC) ;} 
}



/* make-define-inline */
BGL_EXPORTED_DEF obj_t BGl_makezd2definezd2inlinez00zzforeign_libraryz00(obj_t BgL_protoz00_1, obj_t BgL_bodyz00_2)
{ AN_OBJECT;
{ /* ./Foreign/library.scm 37 */
{ /* ./Foreign/library.scm 38 */
bool_t BgL_test2663z00_662;
BgL_test2663z00_662 = ((bool_t)1); 
if(BgL_test2663z00_662)
{ /* ./Foreign/library.scm 39 */
obj_t BgL_arg2665z00_663;obj_t BgL_arg2666z00_664;
BgL_arg2665z00_663 = 
CNST_TABLE_REF(((long)0)); 
{ /* ./Foreign/library.scm 39 */
obj_t BgL_arg2669z00_665;
BgL_arg2669z00_665 = 
MAKE_PAIR(BgL_bodyz00_2, BNIL); 
BgL_arg2666z00_664 = 
MAKE_PAIR(BgL_protoz00_1, BgL_arg2669z00_665); } 
return 
MAKE_PAIR(BgL_arg2665z00_663, BgL_arg2666z00_664);}  else 
{ /* ./Foreign/library.scm 40 */
obj_t BgL_arg2673z00_666;obj_t BgL_arg2674z00_667;
BgL_arg2673z00_666 = 
CNST_TABLE_REF(((long)1)); 
{ /* ./Foreign/library.scm 40 */
obj_t BgL_arg2677z00_668;
BgL_arg2677z00_668 = 
MAKE_PAIR(BgL_bodyz00_2, BNIL); 
BgL_arg2674z00_667 = 
MAKE_PAIR(BgL_protoz00_1, BgL_arg2677z00_668); } 
return 
MAKE_PAIR(BgL_arg2673z00_666, BgL_arg2674z00_667);} } } 
}



/* _make-define-inline */
obj_t BGl__makezd2definezd2inlinez00zzforeign_libraryz00(obj_t BgL_envz00_1049, obj_t BgL_protoz00_1050, obj_t BgL_bodyz00_1051)
{ AN_OBJECT;
{ /* ./Foreign/library.scm 37 */
return 
BGl_makezd2definezd2inlinez00zzforeign_libraryz00(BgL_protoz00_1050, BgL_bodyz00_1051);} 
}



/* make-proto-inline */
BGL_EXPORTED_DEF obj_t BGl_makezd2protozd2inlinez00zzforeign_libraryz00(obj_t BgL_protoz00_3)
{ AN_OBJECT;
{ /* ./Foreign/library.scm 45 */
{ /* ./Foreign/library.scm 46 */
bool_t BgL_test2681z00_669;
BgL_test2681z00_669 = ((bool_t)1); 
if(BgL_test2681z00_669)
{ /* ./Foreign/library.scm 47 */
obj_t BgL_arg2683z00_670;obj_t BgL_arg2684z00_671;
BgL_arg2683z00_670 = 
CNST_TABLE_REF(((long)2)); 
BgL_arg2684z00_671 = 
BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(BgL_protoz00_3, BNIL); 
return 
MAKE_PAIR(BgL_arg2683z00_670, BgL_arg2684z00_671);}  else 
{ /* ./Foreign/library.scm 46 */
return BgL_protoz00_3;} } } 
}



/* _make-proto-inline */
obj_t BGl__makezd2protozd2inlinez00zzforeign_libraryz00(obj_t BgL_envz00_1052, obj_t BgL_protoz00_1053)
{ AN_OBJECT;
{ /* ./Foreign/library.scm 45 */
return 
BGl_makezd2protozd2inlinez00zzforeign_libraryz00(BgL_protoz00_1053);} 
}



/* register-foreign-access-idents! */
BGL_EXPORTED_DEF obj_t BGl_registerzd2foreignzd2accesszd2identsz12zc0zzforeign_libraryz00(obj_t BgL_idsz00_4)
{ AN_OBJECT;
{ /* ./Foreign/library.scm 58 */
return ( 
BGl_za2registeredzd2identza2zd2zzforeign_libraryz00 = 
bgl_append2(BgL_idsz00_4, BGl_za2registeredzd2identza2zd2zzforeign_libraryz00), BUNSPEC) ;} 
}



/* _register-foreign-access-idents! */
obj_t BGl__registerzd2foreignzd2accesszd2identsz12zc0zzforeign_libraryz00(obj_t BgL_envz00_1054, obj_t BgL_idsz00_1055)
{ AN_OBJECT;
{ /* ./Foreign/library.scm 58 */
return 
BGl_registerzd2foreignzd2accesszd2identsz12zc0zzforeign_libraryz00(BgL_idsz00_1055);} 
}



/* prepare-foreign-access! */
BGL_EXPORTED_DEF obj_t BGl_preparezd2foreignzd2accessz12z12zzforeign_libraryz00()
{ AN_OBJECT;
{ /* ./Foreign/library.scm 75 */
{ 
obj_t BgL_l2661z00_672;
BgL_l2661z00_672 = BGl_za2registeredzd2identza2zd2zzforeign_libraryz00; 
BgL_forzd2each2662zd2_673:
{ /* ./Foreign/library.scm 76 */
bool_t BgL_test2690z00_674;
BgL_test2690z00_674 = 
PAIRP(BgL_l2661z00_672); 
if(BgL_test2690z00_674)
{ /* ./Foreign/library.scm 76 */
{ /* ./Foreign/library.scm 77 */
obj_t BgL_idz00_675;
BgL_idz00_675 = 
CAR(BgL_l2661z00_672); 
{ /* ./Foreign/library.scm 77 */
obj_t BgL_gz00_676;
BgL_gz00_676 = 
BGl_findzd2globalzd2zzast_envz00(BgL_idz00_675, BNIL); 
{ /* ./Foreign/library.scm 78 */
bool_t BgL_test2691z00_677;
BgL_test2691z00_677 = 
BGl_iszd2azf3z21zz__objectz00(BgL_gz00_676, BGl_globalz00zzast_varz00); 
if(BgL_test2691z00_677)
{ /* ./Foreign/library.scm 78 */
{ /* ./Foreign/library.scm 80 */
BgL_globalz00_bglt BgL_obj2186z00_1041;obj_t BgL_val2185z00_1042;
BgL_obj2186z00_1041 = 
(BgL_globalz00_bglt)(BgL_gz00_676); 
BgL_val2185z00_1042 = 
CNST_TABLE_REF(((long)3)); 
((((BgL_globalz00_bglt)CREF(BgL_obj2186z00_1041))->BgL_importz00) = ((obj_t)BgL_val2185z00_1042), BUNSPEC); } 
{ /* ./Foreign/library.scm 82 */
BgL_globalz00_bglt BgL_obj2183z00_1043;obj_t BgL_val2182z00_1044;
BgL_obj2183z00_1043 = 
(BgL_globalz00_bglt)(BgL_gz00_676); 
BgL_val2182z00_1044 = 
CNST_TABLE_REF(((long)4)); 
((((BgL_globalz00_bglt)CREF(BgL_obj2183z00_1043))->BgL_modulez00) = ((obj_t)BgL_val2182z00_1044), BUNSPEC); } }  else 
{ /* ./Foreign/library.scm 78 */
FAILURE(BGl_string3034z00zzforeign_libraryz00,BGl_string3035z00zzforeign_libraryz00,BgL_idz00_675);} } } } 
{ /* ./Foreign/library.scm 76 */
obj_t BgL_arg2700z00_679;
BgL_arg2700z00_679 = 
CDR(BgL_l2661z00_672); 
{ 
obj_t BgL_l2661z00_1120;
BgL_l2661z00_1120 = BgL_arg2700z00_679; 
BgL_l2661z00_672 = BgL_l2661z00_1120; 
goto BgL_forzd2each2662zd2_673;} } }  else 
{ /* ./Foreign/library.scm 76 */((bool_t)1); } } } 
return ( 
BGl_za2registeredzd2identza2zd2zzforeign_libraryz00 = BNIL, BUNSPEC) ;} 
}



/* _prepare-foreign-access! */
obj_t BGl__preparezd2foreignzd2accessz12z12zzforeign_libraryz00(obj_t BgL_envz00_1056)
{ AN_OBJECT;
{ /* ./Foreign/library.scm 75 */
return 
BGl_preparezd2foreignzd2accessz12z12zzforeign_libraryz00();} 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzforeign_libraryz00()
{ AN_OBJECT;
{ /* ./Foreign/library.scm 15 */
return BUNSPEC;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzforeign_libraryz00()
{ AN_OBJECT;
{ /* ./Foreign/library.scm 15 */
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "foreign_library"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "foreign_library"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "foreign_library"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "foreign_library"); 
return 
BGl_modulezd2initializa7ationz75zzast_envz00(((long)62031), "foreign_library");} 
}

