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

#include <bigloo.h>


/* Object type definitions */
typedef struct BgL_ccompz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_producerz00;
   obj_t BgL_consumerz00;
   obj_t BgL_finaliza7erza7;
} *BgL_ccompz00_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;

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_caliasz00_bgl {
   bool_t BgL_arrayzf3zf3;
} *BgL_caliasz00_bglt;

typedef struct BgL_cenumz00_bgl {
   struct BgL_typez00_bgl * BgL_btypez00;
   obj_t BgL_literalsz00;
} *BgL_cenumz00_bglt;

typedef struct BgL_copaquez00_bgl {
   struct BgL_typez00_bgl * BgL_btypez00;
} *BgL_copaquez00_bglt;

typedef struct BgL_cfunctionz00_bgl {
   struct BgL_typez00_bgl * BgL_btypez00;
   long BgL_arityz00;
   struct BgL_typez00_bgl * BgL_typezd2reszd2;
   obj_t BgL_typezd2argszd2;
} *BgL_cfunctionz00_bglt;

typedef struct BgL_cptrz00_bgl {
   struct BgL_typez00_bgl * BgL_btypez00;
   struct BgL_typez00_bgl * BgL_pointzd2tozd2;
   bool_t BgL_arrayzf3zf3;
} *BgL_cptrz00_bglt;

typedef struct BgL_cstructz00_bgl {
   bool_t BgL_structzf3zf3;
   obj_t BgL_fieldsz00;
   obj_t BgL_cstructza2za2;
} *BgL_cstructz00_bglt;

typedef struct BgL_cstructza2za2_bgl {
   struct BgL_typez00_bgl * BgL_btypez00;
   struct BgL_cstructz00_bgl * BgL_cstructz00;
} *BgL_cstructza2za2_bglt;


static obj_t BGl_methodzd2initzd2zzmodule_foreignz00();
BGL_IMPORT obj_t open_input_string(obj_t);
extern BgL_ccompz00_bglt BGl_makezd2ccompzd2zzmodule_modulez00(obj_t, obj_t, obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_foreignzd2accesseszd2addz12z12zzmodule_foreignz00(obj_t);
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
static obj_t BGl_zc3anonymousza32109ze3z83zzmodule_foreignz00(obj_t, obj_t, obj_t);
BGL_IMPORT bool_t BGl_iszd2azf3z21zz__objectz00(obj_t, obj_t);
static obj_t BGl__externzd2producerzd2zzmodule_foreignz00(obj_t, obj_t);
static obj_t BGl_zc3anonymousza32118ze3z83zzmodule_foreignz00(obj_t, obj_t, obj_t);
extern BgL_typez00_bglt BGl_getzd2defaultzd2czd2typezd2zztype_cachez00();
static obj_t BGl_zc3anonymousza32120ze3z83zzmodule_foreignz00(obj_t);
static obj_t BGl_defaultzd2czd2typez00zzmodule_foreignz00(obj_t, obj_t);
static obj_t BGl_externzd2parserzd2zzmodule_foreignz00(obj_t);
static obj_t BGl_foreignzd2producerzd2zzmodule_foreignz00(obj_t);
extern obj_t BGl_za2targetzd2languageza2zd2zzengine_paramz00;
extern obj_t BGl_globalz00zzast_varz00;
extern obj_t BGl_findzd2locationzd2zztools_locationz00(obj_t);
static obj_t BGl_za2foreignzd2exportedza2zd2zzmodule_foreignz00 = BUNSPEC;
extern obj_t BGl_typez00zztype_typez00;
BGL_IMPORT obj_t BGl_reversez12z12zz__r4_pairs_and_lists_6_3z00(obj_t);
static obj_t BGl_parsezd2czd2foreignzd2typezd2zzmodule_foreignz00(obj_t);
static obj_t BGl_cnstzd2initzd2zzmodule_foreignz00();
static bool_t BGl_checkzd2czd2foreignzd2typezd2expzf3zf3zzmodule_foreignz00(obj_t);
BGL_EXPORTED_DECL obj_t BGl_makezd2externzd2compilerz00zzmodule_foreignz00();
static obj_t BGl__foreignzd2accesseszd2addz12z12zzmodule_foreignz00(obj_t, obj_t);
static obj_t BGl_importedzd2moduleszd2initz00zzmodule_foreignz00();
static obj_t BGl__makezd2externzd2compilerz00zzmodule_foreignz00(obj_t);
static obj_t BGl_czd2externzd2typezd2ze3czd2foreignzd2typez31zzmodule_foreignz00(obj_t);
static obj_t BGl_foreignzd2parserzd2zzmodule_foreignz00(obj_t);
static obj_t BGl_toplevelzd2initzd2zzmodule_foreignz00();
extern obj_t BGl_userzd2warningzd2zztools_errorz00(obj_t, obj_t, obj_t);
extern obj_t BGl_caliasz00zzforeign_ctypez00;
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzmodule_foreignz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_tracez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzmodule_modulez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzmodule_checksumz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_glozd2declzd2(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_errorz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_envz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_toolsz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_envz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_identz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzforeign_ctypez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzforeign_accessz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_locationz00(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 *);
extern obj_t BGl_userzd2errorzd2zztools_errorz00(obj_t, obj_t, obj_t, obj_t);
extern obj_t BGl_findzd2globalzd2zzast_envz00(obj_t, obj_t);
static obj_t BGl_parsezd2czd2externzd2typezd2zzmodule_foreignz00(obj_t);
BGL_EXPORTED_DECL obj_t BGl_makezd2foreignzd2compilerz00zzmodule_foreignz00();
static bool_t BGl_checkzd2czd2argszf3zf3zzmodule_foreignz00(obj_t);
extern obj_t BGl_za2includezd2foreignza2zd2zzengine_paramz00;
static obj_t BGl_za2foreignzd2accessesza2zd2zzmodule_foreignz00 = BUNSPEC;
extern BgL_typez00_bglt BGl_getzd2defaultzd2typez00zztype_cachez00();
BGL_IMPORT obj_t BGl_memqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
static obj_t BGl_externzd2producerzd2zzmodule_foreignz00(obj_t);
extern obj_t BGl_checkzd2idzd2zzast_identz00(obj_t, obj_t);
extern obj_t BGl_cstructz00zzforeign_ctypez00;
static obj_t BGl__foreignzd2producerzd2zzmodule_foreignz00(obj_t, obj_t);
static obj_t BGl__foreignzd2finaliza7erz75zzmodule_foreignz00(obj_t);
extern obj_t BGl_makezd2ctypezd2accessesz12z12zzforeign_accessz00(BgL_typez00_bglt, BgL_typez00_bglt, obj_t);
extern obj_t BGl_za2passza2z00zzengine_paramz00;
BGL_IMPORT obj_t create_struct(obj_t, int);
BGL_IMPORT obj_t BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(obj_t);
extern BgL_globalz00_bglt BGl_declarezd2globalzd2cfunz12z12zzast_glozd2declzd2(obj_t, obj_t, obj_t, obj_t, bool_t, bool_t, obj_t, obj_t);
BGL_IMPORT obj_t bgl_append2(obj_t, obj_t);
static obj_t BGl_foreignzd2finaliza7erz75zzmodule_foreignz00();
extern obj_t BGl_declarezd2czd2typez12z12zzforeign_ctypez00(obj_t, obj_t, obj_t, obj_t);
extern BgL_typez00_bglt BGl_declarezd2typez12zc0zztype_envz00(obj_t, obj_t, obj_t);
static obj_t BGl_requirezd2initializa7ationz75zzmodule_foreignz00 = BUNSPEC;
extern obj_t BGl_parsezd2idzd2zzast_identz00(obj_t, obj_t);
static obj_t BGl_libraryzd2moduleszd2initz00zzmodule_foreignz00();
static obj_t BGl__makezd2foreignzd2compilerz00zzmodule_foreignz00(obj_t);
extern obj_t BGl_userzd2warningzf2locationz20zztools_errorz00(obj_t, obj_t, obj_t, obj_t);
extern BgL_globalz00_bglt BGl_declarezd2globalzd2cvarz12z12zzast_glozd2declzd2(obj_t, obj_t, obj_t, bool_t, obj_t, obj_t);
BGL_IMPORT obj_t BGl_memberz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
extern obj_t BGl_makezd2pointerzd2tozd2namezd2zztype_toolsz00(BgL_typez00_bglt);
static obj_t __cnst[ 23 ] ;


DEFINE_EXPORT_PROCEDURE( BGl_makezd2foreignzd2compilerzd2envzd2zzmodule_foreignz00, BgL_bgl__makeza7d2foreignza7d2compilerza700za7za7module_foreignza7004384z00, BGl__makezd2foreignzd2compilerz00zzmodule_foreignz00, 0L, 0 );
DEFINE_STATIC_PROCEDURE( BGl_foreignzd2finaliza7erzd2envza7zzmodule_foreignz00, BgL_bgl__foreignza7d2finaliza7a7erza775za7za7module_foreignza7004385z00, BGl__foreignzd2finaliza7erz75zzmodule_foreignz00, 0L, 0 );
DEFINE_STATIC_PROCEDURE( BGl_foreignzd2producerzd2envz00zzmodule_foreignz00, BgL_bgl__foreignza7d2producerza7d2za7za7module_foreignza7004386za7, BGl__foreignzd2producerzd2zzmodule_foreignz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc4338z00zzmodule_foreignz00, BgL_bgl_za7c3anonymousza7a32109za7e3za783za7za7module_foreignza7004387za7, BGl_zc3anonymousza32109ze3z83zzmodule_foreignz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_proc4340z00zzmodule_foreignz00, BgL_bgl_za7c3anonymousza7a32118za7e3za783za7za7module_foreignza7004388za7, BGl_zc3anonymousza32118ze3z83zzmodule_foreignz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_proc4339z00zzmodule_foreignz00, BgL_bgl_za7c3anonymousza7a32120za7e3za783za7za7module_foreignza7004389za7, BGl_zc3anonymousza32120ze3z83zzmodule_foreignz00, 0L, 0 );
DEFINE_STRING( BGl_string4356z00zzmodule_foreignz00, BgL_bgl_string4356za700za7za7module_foreignza7004390z00, "unit make-heap make-add-heap union* struct* array enum function pointer opaque struct union C * macro export type include infix (jvm .net) void extern foreign ", 159 );
DEFINE_STRING( BGl_string4355z00zzmodule_foreignz00, BgL_bgl_string4355za700za7za7module_foreignza7004391z00, "Unspecified C type, using type", 30 );
DEFINE_STRING( BGl_string4354z00zzmodule_foreignz00, BgL_bgl_string4354za700za7za7module_foreignza7004392z00, "Unbound global variable", 23 );
DEFINE_STRING( BGl_string4353z00zzmodule_foreignz00, BgL_bgl_string4353za700za7za7module_foreignza7004393z00, "Re-exportation of global variable (ignored)", 43 );
DEFINE_STRING( BGl_string4352z00zzmodule_foreignz00, BgL_bgl_string4352za700za7za7module_foreignza7004394z00, "Foreign", 7 );
DEFINE_STRING( BGl_string4351z00zzmodule_foreignz00, BgL_bgl_string4351za700za7za7module_foreignza7004395z00, "Illegal `C extern type'", 23 );
DEFINE_STRING( BGl_string4350z00zzmodule_foreignz00, BgL_bgl_string4350za700za7za7module_foreignza7004396z00, "Illegal `C foreign type'", 24 );
DEFINE_STRING( BGl_string4349z00zzmodule_foreignz00, BgL_bgl_string4349za700za7za7module_foreignza7004397z00, "Illegal extern form", 19 );
DEFINE_STRING( BGl_string4348z00zzmodule_foreignz00, BgL_bgl_string4348za700za7za7module_foreignza7004398z00, "Illegal `variable' form", 23 );
DEFINE_STRING( BGl_string4347z00zzmodule_foreignz00, BgL_bgl_string4347za700za7za7module_foreignza7004399z00, "Illegal `function' form", 23 );
DEFINE_STRING( BGl_string4346z00zzmodule_foreignz00, BgL_bgl_string4346za700za7za7module_foreignza7004400z00, "Illegal `macro' form", 20 );
DEFINE_STRING( BGl_string4345z00zzmodule_foreignz00, BgL_bgl_string4345za700za7za7module_foreignza7004401z00, "Illegal foreign form", 20 );
DEFINE_STRING( BGl_string4344z00zzmodule_foreignz00, BgL_bgl_string4344za700za7za7module_foreignza7004402z00, "Illegal `include' clause", 24 );
DEFINE_STRING( BGl_string4343z00zzmodule_foreignz00, BgL_bgl_string4343za700za7za7module_foreignza7004403z00, "Illegal `extern' clause", 23 );
DEFINE_STRING( BGl_string4342z00zzmodule_foreignz00, BgL_bgl_string4342za700za7za7module_foreignza7004404z00, "Illegal `foreign' clause", 24 );
DEFINE_STRING( BGl_string4341z00zzmodule_foreignz00, BgL_bgl_string4341za700za7za7module_foreignza7004405z00, "Parse error", 11 );
DEFINE_EXPORT_PROCEDURE( BGl_makezd2externzd2compilerzd2envzd2zzmodule_foreignz00, BgL_bgl__makeza7d2externza7d2compilerza700za7za7module_foreignza7004406z00, BGl__makezd2externzd2compilerz00zzmodule_foreignz00, 0L, 0 );
DEFINE_STATIC_PROCEDURE( BGl_externzd2producerzd2envz00zzmodule_foreignz00, BgL_bgl__externza7d2producerza7d2za7za7module_foreignza7004407za7, BGl__externzd2producerzd2zzmodule_foreignz00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_foreignzd2accesseszd2addz12zd2envzc0zzmodule_foreignz00, BgL_bgl__foreignza7d2accessesza7d2addza712za712za7za7module_foreignza7004408za7, BGl__foreignzd2accesseszd2addz12z12zzmodule_foreignz00, 0L, 1 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzmodule_foreignz00(long BgL_checksumz00_2192, char * BgL_fromz00_2193)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzmodule_foreignz00))
{ 
BGl_requirezd2initializa7ationz75zzmodule_foreignz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzmodule_foreignz00(); 
BGl_cnstzd2initzd2zzmodule_foreignz00(); 
BGl_importedzd2moduleszd2initz00zzmodule_foreignz00(); 
BGl_toplevelzd2initzd2zzmodule_foreignz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzmodule_foreignz00()
{ AN_OBJECT;
{ /* ./Module/foreign.scm 18 */
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "module_foreign"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "module_foreign"); 
BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(((long)0), "module_foreign"); 
BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(((long)0), "module_foreign"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzmodule_foreignz00()
{ AN_OBJECT;
{ /* ./Module/foreign.scm 18 */
{ /* ./Module/foreign.scm 18 */
obj_t BgL_cportz00_2181;
BgL_cportz00_2181 = 
open_input_string(BGl_string4356z00zzmodule_foreignz00); 
{ 
long BgL_iz00_2182;
BgL_iz00_2182 = ((long)22); 
BgL_loopz00_2183:
{ /* ./Module/foreign.scm 18 */
bool_t BgL_test4358z00_2184;
BgL_test4358z00_2184 = 
(BgL_iz00_2182==((long)-1)); 
if(BgL_test4358z00_2184)
{ /* ./Module/foreign.scm 18 */
return BUNSPEC;}  else 
{ /* ./Module/foreign.scm 18 */
{ /* ./Module/foreign.scm 18 */
obj_t BgL_arg4360z00_2185;
{ /* ./Module/foreign.scm 18 */
obj_t BgL_list4363z00_2186;
BgL_list4363z00_2186 = 
MAKE_PAIR(BgL_cportz00_2181, BNIL); 
BgL_arg4360z00_2185 = 
BGl_readz00zz__readerz00(BgL_list4363z00_2186); } 
{ /* ./Module/foreign.scm 18 */
int BgL_auxz00_2210;
BgL_auxz00_2210 = 
(int)(BgL_iz00_2182); 
CNST_TABLE_SET(BgL_auxz00_2210, BgL_arg4360z00_2185); } } 
{ /* ./Module/foreign.scm 18 */
int BgL_auxz00_2187;
{ /* ./Module/foreign.scm 18 */
long BgL_auxz00_2213;
BgL_auxz00_2213 = 
(BgL_iz00_2182-((long)1)); 
BgL_auxz00_2187 = 
(int)(BgL_auxz00_2213); } 
{ 
long BgL_iz00_2216;
BgL_iz00_2216 = 
(long)(BgL_auxz00_2187); 
BgL_iz00_2182 = BgL_iz00_2216; 
goto BgL_loopz00_2183;} } } } } } } 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzmodule_foreignz00()
{ AN_OBJECT;
{ /* ./Module/foreign.scm 18 */
BGl_za2foreignzd2accessesza2zd2zzmodule_foreignz00 = BNIL; 
return ( 
BGl_za2foreignzd2exportedza2zd2zzmodule_foreignz00 = BNIL, BUNSPEC) ;} 
}



/* make-foreign-compiler */
BGL_EXPORTED_DEF obj_t BGl_makezd2foreignzd2compilerz00zzmodule_foreignz00()
{ AN_OBJECT;
{ /* ./Module/foreign.scm 44 */
{ /* ./Module/foreign.scm 45 */
obj_t BgL_arg2103z00_373;obj_t BgL_arg2105z00_374;obj_t BgL_arg2107z00_376;
BgL_arg2103z00_373 = 
CNST_TABLE_REF(((long)0)); 
BgL_arg2105z00_374 = BGl_foreignzd2producerzd2envz00zzmodule_foreignz00; 
BgL_arg2107z00_376 = BGl_foreignzd2finaliza7erzd2envza7zzmodule_foreignz00; 
{ /* ./Module/foreign.scm 45 */
BgL_ccompz00_bglt BgL_auxz00_2219;
BgL_auxz00_2219 = 
BGl_makezd2ccompzd2zzmodule_modulez00(BgL_arg2103z00_373, BgL_arg2105z00_374, BGl_proc4338z00zzmodule_foreignz00, BgL_arg2107z00_376); 
return 
(obj_t)(BgL_auxz00_2219);} } } 
}



/* _make-foreign-compiler */
obj_t BGl__makezd2foreignzd2compilerz00zzmodule_foreignz00(obj_t BgL_envz00_2157)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 44 */
return 
BGl_makezd2foreignzd2compilerz00zzmodule_foreignz00();} 
}



/* <anonymous:2109> */
obj_t BGl_zc3anonymousza32109ze3z83zzmodule_foreignz00(obj_t BgL_envz00_2158, obj_t BgL_mz00_2159, obj_t BgL_cz00_2160)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 47 */
return 
BGl_foreignzd2producerzd2zzmodule_foreignz00(BgL_cz00_2160);} 
}



/* make-extern-compiler */
BGL_EXPORTED_DEF obj_t BGl_makezd2externzd2compilerz00zzmodule_foreignz00()
{ AN_OBJECT;
{ /* ./Module/foreign.scm 53 */
{ /* ./Module/foreign.scm 54 */
obj_t BgL_arg2112z00_381;obj_t BgL_arg2113z00_382;
BgL_arg2112z00_381 = 
CNST_TABLE_REF(((long)1)); 
BgL_arg2113z00_382 = BGl_externzd2producerzd2envz00zzmodule_foreignz00; 
{ /* ./Module/foreign.scm 54 */
BgL_ccompz00_bglt BgL_auxz00_2225;
BgL_auxz00_2225 = 
BGl_makezd2ccompzd2zzmodule_modulez00(BgL_arg2112z00_381, BgL_arg2113z00_382, BGl_proc4340z00zzmodule_foreignz00, BGl_proc4339z00zzmodule_foreignz00); 
return 
(obj_t)(BgL_auxz00_2225);} } } 
}



/* _make-extern-compiler */
obj_t BGl__makezd2externzd2compilerz00zzmodule_foreignz00(obj_t BgL_envz00_2166)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 53 */
return 
BGl_makezd2externzd2compilerz00zzmodule_foreignz00();} 
}



/* <anonymous:2120> */
obj_t BGl_zc3anonymousza32120ze3z83zzmodule_foreignz00(obj_t BgL_envz00_2167)
{ AN_OBJECT;
{ /* ./Module/module.scm 50 */
{ 

return 
CNST_TABLE_REF(((long)2));} } 
}



/* <anonymous:2118> */
obj_t BGl_zc3anonymousza32118ze3z83zzmodule_foreignz00(obj_t BgL_envz00_2168, obj_t BgL_mz00_2169, obj_t BgL_cz00_2170)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 56 */
return 
BGl_externzd2producerzd2zzmodule_foreignz00(BgL_cz00_2170);} 
}



/* foreign-producer */
obj_t BGl_foreignzd2producerzd2zzmodule_foreignz00(obj_t BgL_clausez00_19)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 61 */
{ /* ./Module/foreign.scm 62 */
bool_t BgL_test2121z00_391;
{ /* ./Module/foreign.scm 62 */
obj_t BgL_auxz00_2231;
BgL_auxz00_2231 = 
BGl_memqz00zz__r4_pairs_and_lists_6_3z00(BGl_za2targetzd2languageza2zd2zzengine_paramz00, 
CNST_TABLE_REF(((long)3))); 
BgL_test2121z00_391 = 
CBOOL(BgL_auxz00_2231); } 
if(BgL_test2121z00_391)
{ /* ./Module/foreign.scm 62 */
return BNIL;}  else 
{ 
obj_t BgL_protosz00_392;
{ /* ./Module/foreign.scm 63 */
bool_t BgL_test2122z00_396;
BgL_test2122z00_396 = 
PAIRP(BgL_clausez00_19); 
if(BgL_test2122z00_396)
{ /* ./Module/foreign.scm 63 */
obj_t BgL_arg2124z00_397;
BgL_arg2124z00_397 = 
CDR(BgL_clausez00_19); 
BgL_protosz00_392 = BgL_arg2124z00_397; 
{ 
obj_t BgL_l2060z00_398;
BgL_l2060z00_398 = BgL_protosz00_392; 
BgL_forzd2each2061zd2_399:
{ /* ./Module/foreign.scm 65 */
bool_t BgL_test2130z00_400;
BgL_test2130z00_400 = 
PAIRP(BgL_l2060z00_398); 
if(BgL_test2130z00_400)
{ /* ./Module/foreign.scm 65 */
{ /* ./Module/foreign.scm 65 */
obj_t BgL_arg2132z00_401;
BgL_arg2132z00_401 = 
CAR(BgL_l2060z00_398); 
BGl_foreignzd2parserzd2zzmodule_foreignz00(BgL_arg2132z00_401); } 
{ /* ./Module/foreign.scm 65 */
obj_t BgL_arg2136z00_402;
BgL_arg2136z00_402 = 
CDR(BgL_l2060z00_398); 
{ 
obj_t BgL_l2060z00_2244;
BgL_l2060z00_2244 = BgL_arg2136z00_402; 
BgL_l2060z00_398 = BgL_l2060z00_2244; 
goto BgL_forzd2each2061zd2_399;} } }  else 
{ /* ./Module/foreign.scm 65 */((bool_t)1); } } } 
return BNIL;}  else 
{ /* ./Module/foreign.scm 63 */
{ /* ./Module/foreign.scm 68 */
obj_t BgL_list2141z00_403;
BgL_list2141z00_403 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4342z00zzmodule_foreignz00, BgL_clausez00_19, BgL_list2141z00_403);} } } } } } 
}



/* _foreign-producer */
obj_t BGl__foreignzd2producerzd2zzmodule_foreignz00(obj_t BgL_envz00_2161, obj_t BgL_clausez00_2162)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 61 */
return 
BGl_foreignzd2producerzd2zzmodule_foreignz00(BgL_clausez00_2162);} 
}



/* extern-producer */
obj_t BGl_externzd2producerzd2zzmodule_foreignz00(obj_t BgL_clausez00_20)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 77 */
{ /* ./Module/foreign.scm 78 */
bool_t BgL_test2144z00_404;
{ /* ./Module/foreign.scm 78 */
obj_t BgL_auxz00_2248;
BgL_auxz00_2248 = 
BGl_memqz00zz__r4_pairs_and_lists_6_3z00(BGl_za2targetzd2languageza2zd2zzengine_paramz00, 
CNST_TABLE_REF(((long)3))); 
BgL_test2144z00_404 = 
CBOOL(BgL_auxz00_2248); } 
if(BgL_test2144z00_404)
{ /* ./Module/foreign.scm 78 */
return BNIL;}  else 
{ 
obj_t BgL_protosz00_405;
{ /* ./Module/foreign.scm 79 */
bool_t BgL_test2145z00_409;
BgL_test2145z00_409 = 
PAIRP(BgL_clausez00_20); 
if(BgL_test2145z00_409)
{ /* ./Module/foreign.scm 79 */
obj_t BgL_arg2147z00_410;
BgL_arg2147z00_410 = 
CDR(BgL_clausez00_20); 
BgL_protosz00_405 = BgL_arg2147z00_410; 
{ 
obj_t BgL_l2062z00_411;
BgL_l2062z00_411 = BgL_protosz00_405; 
BgL_forzd2each2063zd2_412:
{ /* ./Module/foreign.scm 81 */
bool_t BgL_test2153z00_413;
BgL_test2153z00_413 = 
PAIRP(BgL_l2062z00_411); 
if(BgL_test2153z00_413)
{ /* ./Module/foreign.scm 81 */
{ /* ./Module/foreign.scm 81 */
obj_t BgL_arg2155z00_414;
BgL_arg2155z00_414 = 
CAR(BgL_l2062z00_411); 
BGl_externzd2parserzd2zzmodule_foreignz00(BgL_arg2155z00_414); } 
{ /* ./Module/foreign.scm 81 */
obj_t BgL_arg2159z00_415;
BgL_arg2159z00_415 = 
CDR(BgL_l2062z00_411); 
{ 
obj_t BgL_l2062z00_2261;
BgL_l2062z00_2261 = BgL_arg2159z00_415; 
BgL_l2062z00_411 = BgL_l2062z00_2261; 
goto BgL_forzd2each2063zd2_412;} } }  else 
{ /* ./Module/foreign.scm 81 */((bool_t)1); } } } 
return BNIL;}  else 
{ /* ./Module/foreign.scm 79 */
{ /* ./Module/foreign.scm 84 */
obj_t BgL_list2164z00_416;
BgL_list2164z00_416 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4343z00zzmodule_foreignz00, BgL_clausez00_20, BgL_list2164z00_416);} } } } } } 
}



/* _extern-producer */
obj_t BGl__externzd2producerzd2zzmodule_foreignz00(obj_t BgL_envz00_2171, obj_t BgL_clausez00_2172)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 77 */
return 
BGl_externzd2producerzd2zzmodule_foreignz00(BgL_clausez00_2172);} 
}



/* check-c-args? */
bool_t BGl_checkzd2czd2argszf3zf3zzmodule_foreignz00(obj_t BgL_protoz00_21)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 93 */
{ 
obj_t BgL_protoz00_417;
BgL_protoz00_417 = BgL_protoz00_21; 
BgL_loopz00_418:
if(
NULLP(BgL_protoz00_417))
{ /* ./Module/foreign.scm 96 */
return ((bool_t)1);}  else 
{ /* ./Module/foreign.scm 96 */
if(
SYMBOLP(BgL_protoz00_417))
{ /* ./Module/foreign.scm 98 */
return ((bool_t)1);}  else 
{ /* ./Module/foreign.scm 98 */
if(
PAIRP(BgL_protoz00_417))
{ /* ./Module/foreign.scm 102 */
bool_t BgL_testz00_2271;
{ /* ./Module/foreign.scm 102 */
obj_t BgL_auxz00_2272;
BgL_auxz00_2272 = 
CAR(BgL_protoz00_417); 
BgL_testz00_2271 = 
SYMBOLP(BgL_auxz00_2272); } 
if(BgL_testz00_2271)
{ /* ./Module/foreign.scm 102 */
{ 
obj_t BgL_protoz00_2275;
BgL_protoz00_2275 = 
CDR(BgL_protoz00_417); 
BgL_protoz00_417 = BgL_protoz00_2275; 
goto BgL_loopz00_418;} }  else 
{ /* ./Module/foreign.scm 102 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 100 */
return ((bool_t)0);} } } } } 
}



/* foreign-parser */
obj_t BGl_foreignzd2parserzd2zzmodule_foreignz00(obj_t BgL_foreignz00_22)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 110 */
{ 
obj_t BgL_typez00_447;obj_t BgL_lzd2namezd2_448;obj_t BgL_czd2namezd2_449;obj_t BgL_typez00_442;obj_t BgL_lzd2namezd2_443;obj_t BgL_protoz00_444;obj_t BgL_czd2namezd2_445;obj_t BgL_typez00_437;obj_t BgL_lzd2namezd2_438;obj_t BgL_czd2namezd2_439;obj_t BgL_typez00_432;obj_t BgL_lzd2namezd2_433;obj_t BgL_protoz00_434;obj_t BgL_czd2namezd2_435;obj_t BgL_stringz00_425;
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2183z00_453;
BgL_test2183z00_453 = 
PAIRP(BgL_foreignz00_22); 
if(BgL_test2183z00_453)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2156zd2_454;
BgL_cdrzd2156zd2_454 = 
CDR(BgL_foreignz00_22); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2184z00_455;
{ /* ./Module/foreign.scm 112 */
obj_t BgL_auxz00_2282;obj_t BgL_auxz00_2280;
BgL_auxz00_2282 = 
CNST_TABLE_REF(((long)5)); 
BgL_auxz00_2280 = 
CAR(BgL_foreignz00_22); 
BgL_test2184z00_455 = 
(BgL_auxz00_2280==BgL_auxz00_2282); } 
if(BgL_test2184z00_455)
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2185z00_456;
BgL_test2185z00_456 = 
PAIRP(BgL_cdrzd2156zd2_454); 
if(BgL_test2185z00_456)
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2186z00_457;
{ /* ./Module/foreign.scm 112 */
obj_t BgL_auxz00_2288;
BgL_auxz00_2288 = 
CDR(BgL_cdrzd2156zd2_454); 
BgL_test2186z00_457 = 
NULLP(BgL_auxz00_2288); } 
if(BgL_test2186z00_457)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_arg2188z00_458;
BgL_arg2188z00_458 = 
CAR(BgL_cdrzd2156zd2_454); 
BgL_stringz00_425 = BgL_arg2188z00_458; 
{ /* ./Module/foreign.scm 114 */
bool_t BgL_test2462z00_578;
BgL_test2462z00_578 = 
STRINGP(BgL_stringz00_425); 
if(BgL_test2462z00_578)
{ /* ./Module/foreign.scm 116 */
bool_t BgL_test2463z00_579;
{ /* ./Module/foreign.scm 116 */
obj_t BgL_auxz00_2295;
BgL_auxz00_2295 = 
BGl_memberz00zz__r4_pairs_and_lists_6_3z00(BgL_stringz00_425, BGl_za2includezd2foreignza2zd2zzengine_paramz00); 
BgL_test2463z00_579 = 
CBOOL(BgL_auxz00_2295); } 
if(BgL_test2463z00_579)
{ /* ./Module/foreign.scm 116 */
return BFALSE;}  else 
{ /* ./Module/foreign.scm 116 */
return ( 
BGl_za2includezd2foreignza2zd2zzengine_paramz00 = 
MAKE_PAIR(BgL_stringz00_425, BGl_za2includezd2foreignza2zd2zzengine_paramz00), BUNSPEC) ;} }  else 
{ /* ./Module/foreign.scm 115 */
obj_t BgL_list2467z00_580;
BgL_list2467z00_580 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4344z00zzmodule_foreignz00, BgL_foreignz00_22, BgL_list2467z00_580);} } }  else 
{ /* ./Module/foreign.scm 112 */
BgL_tagzd2139zd2_431:
{ /* ./Module/foreign.scm 124 */
obj_t BgL_list2473z00_581;
BgL_list2473z00_581 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4345z00zzmodule_foreignz00, BgL_foreignz00_22, BgL_list2473z00_581);} } }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2139zd2_431;} }  else 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2198z00_460;
{ /* ./Module/foreign.scm 112 */
obj_t BgL_auxz00_2306;obj_t BgL_auxz00_2304;
BgL_auxz00_2306 = 
CNST_TABLE_REF(((long)6)); 
BgL_auxz00_2304 = 
CAR(BgL_foreignz00_22); 
BgL_test2198z00_460 = 
(BgL_auxz00_2304==BgL_auxz00_2306); } 
if(BgL_test2198z00_460)
{ /* ./Module/foreign.scm 112 */
return 
BGl_parsezd2czd2foreignzd2typezd2zzmodule_foreignz00(BgL_foreignz00_22);}  else 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2200z00_462;
{ /* ./Module/foreign.scm 112 */
obj_t BgL_auxz00_2313;obj_t BgL_auxz00_2311;
BgL_auxz00_2313 = 
CNST_TABLE_REF(((long)7)); 
BgL_auxz00_2311 = 
CAR(BgL_foreignz00_22); 
BgL_test2200z00_462 = 
(BgL_auxz00_2311==BgL_auxz00_2313); } 
if(BgL_test2200z00_462)
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2201z00_463;
BgL_test2201z00_463 = 
PAIRP(BgL_cdrzd2156zd2_454); 
if(BgL_test2201z00_463)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_carzd2217zd2_464;obj_t BgL_cdrzd2218zd2_465;
BgL_carzd2217zd2_464 = 
CAR(BgL_cdrzd2156zd2_454); 
BgL_cdrzd2218zd2_465 = 
CDR(BgL_cdrzd2156zd2_454); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2202z00_466;
BgL_test2202z00_466 = 
SYMBOLP(BgL_carzd2217zd2_464); 
if(BgL_test2202z00_466)
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2203z00_467;
BgL_test2203z00_467 = 
PAIRP(BgL_cdrzd2218zd2_465); 
if(BgL_test2203z00_467)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_carzd2223zd2_468;
BgL_carzd2223zd2_468 = 
CAR(BgL_cdrzd2218zd2_465); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2204z00_469;
BgL_test2204z00_469 = 
STRINGP(BgL_carzd2223zd2_468); 
if(BgL_test2204z00_469)
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2205z00_470;
{ /* ./Module/foreign.scm 112 */
obj_t BgL_auxz00_2328;
BgL_auxz00_2328 = 
CDR(BgL_cdrzd2218zd2_465); 
BgL_test2205z00_470 = 
NULLP(BgL_auxz00_2328); } 
if(BgL_test2205z00_470)
{ /* ./Module/foreign.scm 112 */
return ( 
BGl_za2foreignzd2exportedza2zd2zzmodule_foreignz00 = 
MAKE_PAIR(BgL_foreignz00_22, BGl_za2foreignzd2exportedza2zd2zzmodule_foreignz00), BUNSPEC) ;}  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2139zd2_431;} }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2139zd2_431;} } }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2139zd2_431;} }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2139zd2_431;} } }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2139zd2_431;} }  else 
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2270zd2_472;
BgL_cdrzd2270zd2_472 = 
CDR(BgL_foreignz00_22); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2223z00_473;
{ /* ./Module/foreign.scm 112 */
obj_t BgL_auxz00_2336;obj_t BgL_auxz00_2334;
BgL_auxz00_2336 = 
CNST_TABLE_REF(((long)8)); 
BgL_auxz00_2334 = 
CAR(BgL_foreignz00_22); 
BgL_test2223z00_473 = 
(BgL_auxz00_2334==BgL_auxz00_2336); } 
if(BgL_test2223z00_473)
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2224z00_474;
BgL_test2224z00_474 = 
PAIRP(BgL_cdrzd2270zd2_472); 
if(BgL_test2224z00_474)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2276zd2_475;
BgL_cdrzd2276zd2_475 = 
CDR(BgL_cdrzd2270zd2_472); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2225z00_476;
BgL_test2225z00_476 = 
PAIRP(BgL_cdrzd2276zd2_475); 
if(BgL_test2225z00_476)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2282zd2_477;
BgL_cdrzd2282zd2_477 = 
CDR(BgL_cdrzd2276zd2_475); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2226z00_478;
BgL_test2226z00_478 = 
PAIRP(BgL_cdrzd2282zd2_477); 
if(BgL_test2226z00_478)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2287zd2_479;
BgL_cdrzd2287zd2_479 = 
CDR(BgL_cdrzd2282zd2_477); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2227z00_480;
BgL_test2227z00_480 = 
PAIRP(BgL_cdrzd2287zd2_479); 
if(BgL_test2227z00_480)
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2228z00_481;
{ /* ./Module/foreign.scm 112 */
obj_t BgL_auxz00_2351;
BgL_auxz00_2351 = 
CDR(BgL_cdrzd2287zd2_479); 
BgL_test2228z00_481 = 
NULLP(BgL_auxz00_2351); } 
if(BgL_test2228z00_481)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_arg2230z00_482;obj_t BgL_arg2231z00_483;obj_t BgL_arg2232z00_484;obj_t BgL_arg2233z00_485;
BgL_arg2230z00_482 = 
CAR(BgL_cdrzd2270zd2_472); 
BgL_arg2231z00_483 = 
CAR(BgL_cdrzd2276zd2_475); 
BgL_arg2232z00_484 = 
CAR(BgL_cdrzd2282zd2_477); 
BgL_arg2233z00_485 = 
CAR(BgL_cdrzd2287zd2_479); 
BgL_typez00_432 = BgL_arg2230z00_482; 
BgL_lzd2namezd2_433 = BgL_arg2231z00_483; 
BgL_protoz00_434 = BgL_arg2232z00_484; 
BgL_czd2namezd2_435 = BgL_arg2233z00_485; 
BgL_tagzd2140zd2_436:
{ /* ./Module/foreign.scm 127 */
bool_t BgL_test2475z00_582;
if(
STRINGP(BgL_czd2namezd2_435))
{ /* ./Module/foreign.scm 127 */
if(
SYMBOLP(BgL_typez00_432))
{ /* ./Module/foreign.scm 128 */
if(
SYMBOLP(BgL_lzd2namezd2_433))
{ /* ./Module/foreign.scm 129 */
BgL_test2475z00_582 = 
BGl_checkzd2czd2argszf3zf3zzmodule_foreignz00(BgL_protoz00_434); }  else 
{ /* ./Module/foreign.scm 129 */
BgL_test2475z00_582 = ((bool_t)0); } }  else 
{ /* ./Module/foreign.scm 128 */
BgL_test2475z00_582 = ((bool_t)0); } }  else 
{ /* ./Module/foreign.scm 127 */
BgL_test2475z00_582 = ((bool_t)0); } 
if(BgL_test2475z00_582)
{ /* ./Module/foreign.scm 136 */
bool_t BgL_arg2477z00_583;
{ /* ./Module/foreign.scm 136 */
obj_t BgL_auxz00_2369;obj_t BgL_auxz00_2367;
BgL_auxz00_2369 = 
CNST_TABLE_REF(((long)4)); 
BgL_auxz00_2367 = 
CAR(BgL_foreignz00_22); 
BgL_arg2477z00_583 = 
(BgL_auxz00_2367==BgL_auxz00_2369); } 
{ /* ./Module/foreign.scm 132 */
BgL_globalz00_bglt BgL_auxz00_2372;
BgL_auxz00_2372 = 
BGl_declarezd2globalzd2cfunz12z12zzast_glozd2declzd2(BgL_lzd2namezd2_433, BgL_czd2namezd2_435, BgL_typez00_432, BgL_protoz00_434, BgL_arg2477z00_583, ((bool_t)1), BgL_foreignz00_22, BgL_foreignz00_22); 
return 
(obj_t)(BgL_auxz00_2372);} }  else 
{ /* ./Module/foreign.scm 131 */
obj_t BgL_list2485z00_586;
BgL_list2485z00_586 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4346z00zzmodule_foreignz00, BgL_foreignz00_22, BgL_list2485z00_586);} } }  else 
{ /* ./Module/foreign.scm 112 */
BgL_tagzd2142zd2_441:
{ /* ./Module/foreign.scm 147 */
obj_t BgL_list2505z00_594;
BgL_list2505z00_594 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4345z00zzmodule_foreignz00, BgL_foreignz00_22, BgL_list2505z00_594);} } }  else 
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2334zd2_488;
BgL_cdrzd2334zd2_488 = 
CDR(BgL_cdrzd2270zd2_472); 
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2342zd2_489;
BgL_cdrzd2342zd2_489 = 
CDR(BgL_cdrzd2334zd2_488); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2244z00_490;
{ /* ./Module/foreign.scm 112 */
obj_t BgL_auxz00_2381;
BgL_auxz00_2381 = 
CDR(BgL_cdrzd2342zd2_489); 
BgL_test2244z00_490 = 
NULLP(BgL_auxz00_2381); } 
if(BgL_test2244z00_490)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_arg2246z00_491;obj_t BgL_arg2247z00_492;obj_t BgL_arg2248z00_493;
BgL_arg2246z00_491 = 
CAR(BgL_cdrzd2270zd2_472); 
BgL_arg2247z00_492 = 
CAR(BgL_cdrzd2334zd2_488); 
BgL_arg2248z00_493 = 
CAR(BgL_cdrzd2342zd2_489); 
BgL_typez00_437 = BgL_arg2246z00_491; 
BgL_lzd2namezd2_438 = BgL_arg2247z00_492; 
BgL_czd2namezd2_439 = BgL_arg2248z00_493; 
{ /* ./Module/foreign.scm 141 */
bool_t BgL_test2494z00_590;
if(
STRINGP(BgL_czd2namezd2_439))
{ /* ./Module/foreign.scm 141 */
if(
SYMBOLP(BgL_typez00_437))
{ /* ./Module/foreign.scm 142 */
BgL_test2494z00_590 = 
SYMBOLP(BgL_lzd2namezd2_438); }  else 
{ /* ./Module/foreign.scm 142 */
BgL_test2494z00_590 = ((bool_t)0); } }  else 
{ /* ./Module/foreign.scm 141 */
BgL_test2494z00_590 = ((bool_t)0); } 
if(BgL_test2494z00_590)
{ /* ./Module/foreign.scm 145 */
BgL_globalz00_bglt BgL_auxz00_2394;
BgL_auxz00_2394 = 
BGl_declarezd2globalzd2cvarz12z12zzast_glozd2declzd2(BgL_lzd2namezd2_438, BgL_czd2namezd2_439, BgL_typez00_437, ((bool_t)1), BgL_foreignz00_22, BgL_foreignz00_22); 
return 
(obj_t)(BgL_auxz00_2394);}  else 
{ /* ./Module/foreign.scm 144 */
obj_t BgL_list2497z00_591;
BgL_list2497z00_591 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4346z00zzmodule_foreignz00, BgL_foreignz00_22, BgL_list2497z00_591);} } }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2142zd2_441;} } } } } }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2142zd2_441;} } }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2142zd2_441;} } }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2142zd2_441;} }  else 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2271z00_496;
{ /* ./Module/foreign.scm 112 */
obj_t BgL_auxz00_2401;obj_t BgL_auxz00_2399;
BgL_auxz00_2401 = 
CNST_TABLE_REF(((long)4)); 
BgL_auxz00_2399 = 
CAR(BgL_foreignz00_22); 
BgL_test2271z00_496 = 
(BgL_auxz00_2399==BgL_auxz00_2401); } 
if(BgL_test2271z00_496)
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2272z00_497;
BgL_test2272z00_497 = 
PAIRP(BgL_cdrzd2270zd2_472); 
if(BgL_test2272z00_497)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2414zd2_498;
BgL_cdrzd2414zd2_498 = 
CDR(BgL_cdrzd2270zd2_472); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2273z00_499;
{ /* ./Module/foreign.scm 112 */
obj_t BgL_auxz00_2410;obj_t BgL_auxz00_2408;
BgL_auxz00_2410 = 
CNST_TABLE_REF(((long)8)); 
BgL_auxz00_2408 = 
CAR(BgL_cdrzd2270zd2_472); 
BgL_test2273z00_499 = 
(BgL_auxz00_2408==BgL_auxz00_2410); } 
if(BgL_test2273z00_499)
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2274z00_500;
BgL_test2274z00_500 = 
PAIRP(BgL_cdrzd2414zd2_498); 
if(BgL_test2274z00_500)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2420zd2_501;
BgL_cdrzd2420zd2_501 = 
CDR(BgL_cdrzd2414zd2_498); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2275z00_502;
BgL_test2275z00_502 = 
PAIRP(BgL_cdrzd2420zd2_501); 
if(BgL_test2275z00_502)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2426zd2_503;
BgL_cdrzd2426zd2_503 = 
CDR(BgL_cdrzd2420zd2_501); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2276z00_504;
BgL_test2276z00_504 = 
PAIRP(BgL_cdrzd2426zd2_503); 
if(BgL_test2276z00_504)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2431zd2_505;
BgL_cdrzd2431zd2_505 = 
CDR(BgL_cdrzd2426zd2_503); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2277z00_506;
BgL_test2277z00_506 = 
PAIRP(BgL_cdrzd2431zd2_505); 
if(BgL_test2277z00_506)
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2278z00_507;
{ /* ./Module/foreign.scm 112 */
obj_t BgL_auxz00_2425;
BgL_auxz00_2425 = 
CDR(BgL_cdrzd2431zd2_505); 
BgL_test2278z00_507 = 
NULLP(BgL_auxz00_2425); } 
if(BgL_test2278z00_507)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_arg2280z00_508;obj_t BgL_arg2281z00_509;obj_t BgL_arg2282z00_510;obj_t BgL_arg2283z00_511;
BgL_arg2280z00_508 = 
CAR(BgL_cdrzd2414zd2_498); 
BgL_arg2281z00_509 = 
CAR(BgL_cdrzd2420zd2_501); 
BgL_arg2282z00_510 = 
CAR(BgL_cdrzd2426zd2_503); 
BgL_arg2283z00_511 = 
CAR(BgL_cdrzd2431zd2_505); 
{ 
obj_t BgL_czd2namezd2_2436;obj_t BgL_protoz00_2435;obj_t BgL_lzd2namezd2_2434;obj_t BgL_typez00_2433;
BgL_typez00_2433 = BgL_arg2280z00_508; 
BgL_lzd2namezd2_2434 = BgL_arg2281z00_509; 
BgL_protoz00_2435 = BgL_arg2282z00_510; 
BgL_czd2namezd2_2436 = BgL_arg2283z00_511; 
BgL_czd2namezd2_435 = BgL_czd2namezd2_2436; 
BgL_protoz00_434 = BgL_protoz00_2435; 
BgL_lzd2namezd2_433 = BgL_lzd2namezd2_2434; 
BgL_typez00_432 = BgL_typez00_2433; 
goto BgL_tagzd2140zd2_436;} }  else 
{ /* ./Module/foreign.scm 112 */
BgL_tagzd2145zd2_451:
{ /* ./Module/foreign.scm 169 */
obj_t BgL_list2530z00_604;
BgL_list2530z00_604 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4345z00zzmodule_foreignz00, BgL_foreignz00_22, BgL_list2530z00_604);} } }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2145zd2_451;} } }  else 
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2515zd2_513;
BgL_cdrzd2515zd2_513 = 
CDR(BgL_foreignz00_22); 
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2523zd2_514;
BgL_cdrzd2523zd2_514 = 
CDR(BgL_cdrzd2515zd2_513); 
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2530zd2_515;
BgL_cdrzd2530zd2_515 = 
CDR(BgL_cdrzd2523zd2_514); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2297z00_516;
{ /* ./Module/foreign.scm 112 */
obj_t BgL_auxz00_2442;
BgL_auxz00_2442 = 
CDR(BgL_cdrzd2530zd2_515); 
BgL_test2297z00_516 = 
NULLP(BgL_auxz00_2442); } 
if(BgL_test2297z00_516)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_arg2299z00_517;obj_t BgL_arg2300z00_518;obj_t BgL_arg2301z00_519;obj_t BgL_arg2303z00_520;
BgL_arg2299z00_517 = 
CAR(BgL_foreignz00_22); 
BgL_arg2300z00_518 = 
CAR(BgL_cdrzd2515zd2_513); 
BgL_arg2301z00_519 = 
CAR(BgL_cdrzd2523zd2_514); 
BgL_arg2303z00_520 = 
CAR(BgL_cdrzd2530zd2_515); 
BgL_typez00_442 = BgL_arg2299z00_517; 
BgL_lzd2namezd2_443 = BgL_arg2300z00_518; 
BgL_protoz00_444 = BgL_arg2301z00_519; 
BgL_czd2namezd2_445 = BgL_arg2303z00_520; 
BgL_tagzd2143zd2_446:
{ /* ./Module/foreign.scm 149 */
bool_t BgL_test2507z00_595;
if(
STRINGP(BgL_czd2namezd2_445))
{ /* ./Module/foreign.scm 149 */
if(
SYMBOLP(BgL_typez00_442))
{ /* ./Module/foreign.scm 150 */
if(
SYMBOLP(BgL_lzd2namezd2_443))
{ /* ./Module/foreign.scm 151 */
BgL_test2507z00_595 = 
BGl_checkzd2czd2argszf3zf3zzmodule_foreignz00(BgL_protoz00_444); }  else 
{ /* ./Module/foreign.scm 151 */
BgL_test2507z00_595 = ((bool_t)0); } }  else 
{ /* ./Module/foreign.scm 150 */
BgL_test2507z00_595 = ((bool_t)0); } }  else 
{ /* ./Module/foreign.scm 149 */
BgL_test2507z00_595 = ((bool_t)0); } 
if(BgL_test2507z00_595)
{ /* ./Module/foreign.scm 154 */
BgL_globalz00_bglt BgL_auxz00_2458;
BgL_auxz00_2458 = 
BGl_declarezd2globalzd2cfunz12z12zzast_glozd2declzd2(BgL_lzd2namezd2_443, BgL_czd2namezd2_445, BgL_typez00_442, BgL_protoz00_444, ((bool_t)0), ((bool_t)0), BgL_foreignz00_22, BgL_foreignz00_22); 
return 
(obj_t)(BgL_auxz00_2458);}  else 
{ /* ./Module/foreign.scm 153 */
obj_t BgL_list2510z00_596;
BgL_list2510z00_596 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4347z00zzmodule_foreignz00, BgL_foreignz00_22, BgL_list2510z00_596);} } }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2145zd2_451;} } } } } } }  else 
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2573zd2_522;
BgL_cdrzd2573zd2_522 = 
CDR(BgL_foreignz00_22); 
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2579zd2_523;
BgL_cdrzd2579zd2_523 = 
CDR(BgL_cdrzd2573zd2_522); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2319z00_524;
{ /* ./Module/foreign.scm 112 */
obj_t BgL_auxz00_2465;
BgL_auxz00_2465 = 
CDR(BgL_cdrzd2579zd2_523); 
BgL_test2319z00_524 = 
NULLP(BgL_auxz00_2465); } 
if(BgL_test2319z00_524)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_arg2321z00_525;obj_t BgL_arg2322z00_526;obj_t BgL_arg2323z00_527;
BgL_arg2321z00_525 = 
CAR(BgL_foreignz00_22); 
BgL_arg2322z00_526 = 
CAR(BgL_cdrzd2573zd2_522); 
BgL_arg2323z00_527 = 
CAR(BgL_cdrzd2579zd2_523); 
BgL_typez00_447 = BgL_arg2321z00_525; 
BgL_lzd2namezd2_448 = BgL_arg2322z00_526; 
BgL_czd2namezd2_449 = BgL_arg2323z00_527; 
BgL_tagzd2144zd2_450:
{ /* ./Module/foreign.scm 163 */
bool_t BgL_test2519z00_600;
if(
STRINGP(BgL_czd2namezd2_449))
{ /* ./Module/foreign.scm 163 */
if(
SYMBOLP(BgL_typez00_447))
{ /* ./Module/foreign.scm 164 */
BgL_test2519z00_600 = 
SYMBOLP(BgL_lzd2namezd2_448); }  else 
{ /* ./Module/foreign.scm 164 */
BgL_test2519z00_600 = ((bool_t)0); } }  else 
{ /* ./Module/foreign.scm 163 */
BgL_test2519z00_600 = ((bool_t)0); } 
if(BgL_test2519z00_600)
{ /* ./Module/foreign.scm 167 */
BgL_globalz00_bglt BgL_auxz00_2478;
BgL_auxz00_2478 = 
BGl_declarezd2globalzd2cvarz12z12zzast_glozd2declzd2(BgL_lzd2namezd2_448, BgL_czd2namezd2_449, BgL_typez00_447, ((bool_t)0), BgL_foreignz00_22, BFALSE); 
return 
(obj_t)(BgL_auxz00_2478);}  else 
{ /* ./Module/foreign.scm 166 */
obj_t BgL_list2522z00_601;
BgL_list2522z00_601 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4348z00zzmodule_foreignz00, BgL_foreignz00_22, BgL_list2522z00_601);} } }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2145zd2_451;} } } } } }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2145zd2_451;} }  else 
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2632zd2_529;
BgL_cdrzd2632zd2_529 = 
CDR(BgL_foreignz00_22); 
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2638zd2_530;
BgL_cdrzd2638zd2_530 = 
CDR(BgL_cdrzd2632zd2_529); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2339z00_531;
BgL_test2339z00_531 = 
PAIRP(BgL_cdrzd2638zd2_530); 
if(BgL_test2339z00_531)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2643zd2_532;
BgL_cdrzd2643zd2_532 = 
CDR(BgL_cdrzd2638zd2_530); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2340z00_533;
BgL_test2340z00_533 = 
PAIRP(BgL_cdrzd2643zd2_532); 
if(BgL_test2340z00_533)
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2341z00_534;
{ /* ./Module/foreign.scm 112 */
obj_t BgL_auxz00_2490;
BgL_auxz00_2490 = 
CDR(BgL_cdrzd2643zd2_532); 
BgL_test2341z00_534 = 
NULLP(BgL_auxz00_2490); } 
if(BgL_test2341z00_534)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_arg2343z00_535;obj_t BgL_arg2344z00_536;obj_t BgL_arg2345z00_537;obj_t BgL_arg2346z00_538;
BgL_arg2343z00_535 = 
CAR(BgL_foreignz00_22); 
BgL_arg2344z00_536 = 
CAR(BgL_cdrzd2632zd2_529); 
BgL_arg2345z00_537 = 
CAR(BgL_cdrzd2638zd2_530); 
BgL_arg2346z00_538 = 
CAR(BgL_cdrzd2643zd2_532); 
{ 
obj_t BgL_czd2namezd2_2501;obj_t BgL_protoz00_2500;obj_t BgL_lzd2namezd2_2499;obj_t BgL_typez00_2498;
BgL_typez00_2498 = BgL_arg2343z00_535; 
BgL_lzd2namezd2_2499 = BgL_arg2344z00_536; 
BgL_protoz00_2500 = BgL_arg2345z00_537; 
BgL_czd2namezd2_2501 = BgL_arg2346z00_538; 
BgL_czd2namezd2_445 = BgL_czd2namezd2_2501; 
BgL_protoz00_444 = BgL_protoz00_2500; 
BgL_lzd2namezd2_443 = BgL_lzd2namezd2_2499; 
BgL_typez00_442 = BgL_typez00_2498; 
goto BgL_tagzd2143zd2_446;} }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2145zd2_451;} }  else 
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2673zd2_541;
BgL_cdrzd2673zd2_541 = 
CDR(BgL_cdrzd2632zd2_529); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2357z00_542;
{ /* ./Module/foreign.scm 112 */
obj_t BgL_auxz00_2503;
BgL_auxz00_2503 = 
CDR(BgL_cdrzd2673zd2_541); 
BgL_test2357z00_542 = 
NULLP(BgL_auxz00_2503); } 
if(BgL_test2357z00_542)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_arg2360z00_543;obj_t BgL_arg2361z00_544;obj_t BgL_arg2362z00_545;
BgL_arg2360z00_543 = 
CAR(BgL_foreignz00_22); 
BgL_arg2361z00_544 = 
CAR(BgL_cdrzd2632zd2_529); 
BgL_arg2362z00_545 = 
CAR(BgL_cdrzd2673zd2_541); 
{ 
obj_t BgL_czd2namezd2_2512;obj_t BgL_lzd2namezd2_2511;obj_t BgL_typez00_2510;
BgL_typez00_2510 = BgL_arg2360z00_543; 
BgL_lzd2namezd2_2511 = BgL_arg2361z00_544; 
BgL_czd2namezd2_2512 = BgL_arg2362z00_545; 
BgL_czd2namezd2_449 = BgL_czd2namezd2_2512; 
BgL_lzd2namezd2_448 = BgL_lzd2namezd2_2511; 
BgL_typez00_447 = BgL_typez00_2510; 
goto BgL_tagzd2144zd2_450;} }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2145zd2_451;} } } } }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2145zd2_451;} } } } } }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2145zd2_451;} }  else 
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2734zd2_549;
BgL_cdrzd2734zd2_549 = 
CDR(BgL_foreignz00_22); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2388z00_550;
BgL_test2388z00_550 = 
PAIRP(BgL_cdrzd2734zd2_549); 
if(BgL_test2388z00_550)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2740zd2_551;
BgL_cdrzd2740zd2_551 = 
CDR(BgL_cdrzd2734zd2_549); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2389z00_552;
BgL_test2389z00_552 = 
PAIRP(BgL_cdrzd2740zd2_551); 
if(BgL_test2389z00_552)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2745zd2_553;
BgL_cdrzd2745zd2_553 = 
CDR(BgL_cdrzd2740zd2_551); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2390z00_554;
BgL_test2390z00_554 = 
PAIRP(BgL_cdrzd2745zd2_553); 
if(BgL_test2390z00_554)
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2391z00_555;
{ /* ./Module/foreign.scm 112 */
obj_t BgL_auxz00_2522;
BgL_auxz00_2522 = 
CDR(BgL_cdrzd2745zd2_553); 
BgL_test2391z00_555 = 
NULLP(BgL_auxz00_2522); } 
if(BgL_test2391z00_555)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_arg2393z00_556;obj_t BgL_arg2394z00_557;obj_t BgL_arg2395z00_558;obj_t BgL_arg2396z00_559;
BgL_arg2393z00_556 = 
CAR(BgL_foreignz00_22); 
BgL_arg2394z00_557 = 
CAR(BgL_cdrzd2734zd2_549); 
BgL_arg2395z00_558 = 
CAR(BgL_cdrzd2740zd2_551); 
BgL_arg2396z00_559 = 
CAR(BgL_cdrzd2745zd2_553); 
{ 
obj_t BgL_czd2namezd2_2533;obj_t BgL_protoz00_2532;obj_t BgL_lzd2namezd2_2531;obj_t BgL_typez00_2530;
BgL_typez00_2530 = BgL_arg2393z00_556; 
BgL_lzd2namezd2_2531 = BgL_arg2394z00_557; 
BgL_protoz00_2532 = BgL_arg2395z00_558; 
BgL_czd2namezd2_2533 = BgL_arg2396z00_559; 
BgL_czd2namezd2_445 = BgL_czd2namezd2_2533; 
BgL_protoz00_444 = BgL_protoz00_2532; 
BgL_lzd2namezd2_443 = BgL_lzd2namezd2_2531; 
BgL_typez00_442 = BgL_typez00_2530; 
goto BgL_tagzd2143zd2_446;} }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2145zd2_451;} }  else 
{ /* ./Module/foreign.scm 112 */
obj_t BgL_cdrzd2778zd2_562;
BgL_cdrzd2778zd2_562 = 
CDR(BgL_cdrzd2734zd2_549); 
{ /* ./Module/foreign.scm 112 */
bool_t BgL_test2407z00_563;
{ /* ./Module/foreign.scm 112 */
obj_t BgL_auxz00_2535;
BgL_auxz00_2535 = 
CDR(BgL_cdrzd2778zd2_562); 
BgL_test2407z00_563 = 
NULLP(BgL_auxz00_2535); } 
if(BgL_test2407z00_563)
{ /* ./Module/foreign.scm 112 */
obj_t BgL_arg2409z00_564;obj_t BgL_arg2410z00_565;obj_t BgL_arg2411z00_566;
BgL_arg2409z00_564 = 
CAR(BgL_foreignz00_22); 
BgL_arg2410z00_565 = 
CAR(BgL_cdrzd2734zd2_549); 
BgL_arg2411z00_566 = 
CAR(BgL_cdrzd2778zd2_562); 
{ 
obj_t BgL_czd2namezd2_2544;obj_t BgL_lzd2namezd2_2543;obj_t BgL_typez00_2542;
BgL_typez00_2542 = BgL_arg2409z00_564; 
BgL_lzd2namezd2_2543 = BgL_arg2410z00_565; 
BgL_czd2namezd2_2544 = BgL_arg2411z00_566; 
BgL_czd2namezd2_449 = BgL_czd2namezd2_2544; 
BgL_lzd2namezd2_448 = BgL_lzd2namezd2_2543; 
BgL_typez00_447 = BgL_typez00_2542; 
goto BgL_tagzd2144zd2_450;} }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2145zd2_451;} } } } }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2145zd2_451;} } }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2145zd2_451;} } } } } } } } } }  else 
{ /* ./Module/foreign.scm 112 */
goto BgL_tagzd2145zd2_451;} } } } 
}



/* extern-parser */
obj_t BGl_externzd2parserzd2zzmodule_foreignz00(obj_t BgL_externz00_23)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 174 */
{ 
obj_t BgL_idz00_619;obj_t BgL_czd2namezd2_620;obj_t BgL_idz00_615;obj_t BgL_protoz00_616;obj_t BgL_cnz00_617;obj_t BgL_idz00_611;obj_t BgL_czd2namezd2_612;obj_t BgL_idz00_607;obj_t BgL_protoz00_608;obj_t BgL_cnz00_609;
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2532z00_624;
BgL_test2532z00_624 = 
PAIRP(BgL_externz00_23); 
if(BgL_test2532z00_624)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2533z00_625;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2549;obj_t BgL_auxz00_2547;
BgL_auxz00_2549 = 
CNST_TABLE_REF(((long)6)); 
BgL_auxz00_2547 = 
CAR(BgL_externz00_23); 
BgL_test2533z00_625 = 
(BgL_auxz00_2547==BgL_auxz00_2549); } 
if(BgL_test2533z00_625)
{ /* ./Module/foreign.scm 176 */
return 
BGl_parsezd2czd2externzd2typezd2zzmodule_foreignz00(BgL_externz00_23);}  else 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd2881zd2_626;
BgL_carzd2881zd2_626 = 
CAR(BgL_externz00_23); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2535z00_627;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2555;
BgL_auxz00_2555 = 
CNST_TABLE_REF(((long)7)); 
BgL_test2535z00_627 = 
(BgL_carzd2881zd2_626==BgL_auxz00_2555); } 
if(BgL_test2535z00_627)
{ /* ./Module/foreign.scm 176 */
return 
BGl_foreignzd2parserzd2zzmodule_foreignz00(BgL_externz00_23);}  else 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2537z00_628;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2560;
BgL_auxz00_2560 = 
CNST_TABLE_REF(((long)5)); 
BgL_test2537z00_628 = 
(BgL_carzd2881zd2_626==BgL_auxz00_2560); } 
if(BgL_test2537z00_628)
{ /* ./Module/foreign.scm 176 */
return 
BGl_foreignzd2parserzd2zzmodule_foreignz00(BgL_externz00_23);}  else 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_cdrzd2896zd2_629;
BgL_cdrzd2896zd2_629 = 
CDR(BgL_externz00_23); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2539z00_630;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2566;
BgL_auxz00_2566 = 
CNST_TABLE_REF(((long)8)); 
BgL_test2539z00_630 = 
(BgL_carzd2881zd2_626==BgL_auxz00_2566); } 
if(BgL_test2539z00_630)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2540z00_631;
BgL_test2540z00_631 = 
PAIRP(BgL_cdrzd2896zd2_629); 
if(BgL_test2540z00_631)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd2900zd2_632;obj_t BgL_cdrzd2901zd2_633;
BgL_carzd2900zd2_632 = 
CAR(BgL_cdrzd2896zd2_629); 
BgL_cdrzd2901zd2_633 = 
CDR(BgL_cdrzd2896zd2_629); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2541z00_634;
BgL_test2541z00_634 = 
SYMBOLP(BgL_carzd2900zd2_632); 
if(BgL_test2541z00_634)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2542z00_635;
BgL_test2542z00_635 = 
PAIRP(BgL_cdrzd2901zd2_633); 
if(BgL_test2542z00_635)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_cdrzd2908zd2_636;
BgL_cdrzd2908zd2_636 = 
CDR(BgL_cdrzd2901zd2_633); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2543z00_637;
BgL_test2543z00_637 = 
PAIRP(BgL_cdrzd2908zd2_636); 
if(BgL_test2543z00_637)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd2911zd2_638;
BgL_carzd2911zd2_638 = 
CAR(BgL_cdrzd2908zd2_636); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2544z00_639;
BgL_test2544z00_639 = 
STRINGP(BgL_carzd2911zd2_638); 
if(BgL_test2544z00_639)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2545z00_640;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2584;
BgL_auxz00_2584 = 
CDR(BgL_cdrzd2908zd2_636); 
BgL_test2545z00_640 = 
NULLP(BgL_auxz00_2584); } 
if(BgL_test2545z00_640)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_arg2547z00_641;
BgL_arg2547z00_641 = 
CAR(BgL_cdrzd2901zd2_633); 
BgL_idz00_607 = BgL_carzd2900zd2_632; 
BgL_protoz00_608 = BgL_arg2547z00_641; 
BgL_cnz00_609 = BgL_carzd2911zd2_638; 
BgL_tagzd2864zd2_610:
{ /* ./Module/foreign.scm 185 */
obj_t BgL_pidz00_760;
{ /* ./Module/foreign.scm 185 */
obj_t BgL_arg2856z00_772;
BgL_arg2856z00_772 = 
BGl_findzd2locationzd2zztools_locationz00(BgL_externz00_23); 
BgL_pidz00_760 = 
BGl_parsezd2idzd2zzast_identz00(BgL_idz00_607, BgL_arg2856z00_772); } 
{ /* ./Module/foreign.scm 185 */
obj_t BgL_lnz00_761;
BgL_lnz00_761 = 
CAR(BgL_pidz00_760); 
{ /* ./Module/foreign.scm 186 */
obj_t BgL_typez00_762;
{ /* ./Module/foreign.scm 187 */
obj_t BgL_arg2848z00_770;
{ /* ./Module/foreign.scm 187 */
obj_t BgL_arg2851z00_771;
BgL_arg2851z00_771 = 
CDR(BgL_pidz00_760); 
BgL_arg2848z00_770 = 
BGl_defaultzd2czd2typez00zzmodule_foreignz00(BgL_arg2851z00_771, BgL_externz00_23); } 
{ /* ./Module/foreign.scm 187 */
BgL_typez00_bglt BgL_obj1023z00_1768;
BgL_obj1023z00_1768 = 
(BgL_typez00_bglt)(BgL_arg2848z00_770); 
BgL_typez00_762 = 
(((BgL_typez00_bglt)CREF(BgL_obj1023z00_1768))->BgL_idz00); } } 
{ /* ./Module/foreign.scm 187 */

{ /* ./Module/foreign.scm 188 */
bool_t BgL_test2833z00_763;
{ /* ./Module/foreign.scm 188 */
bool_t BgL_test2843z00_768;
{ /* ./Module/foreign.scm 188 */
obj_t BgL_xz00_2176;
BgL_xz00_2176 = 
BGl_checkzd2idzd2zzast_identz00(BgL_pidz00_760, BgL_externz00_23); 
BgL_test2843z00_768 = ((bool_t)1); } 
if(BgL_test2843z00_768)
{ /* ./Module/foreign.scm 188 */
if(
BGl_checkzd2czd2argszf3zf3zzmodule_foreignz00(BgL_protoz00_608))
{ /* ./Module/foreign.scm 189 */
BgL_test2833z00_763 = ((bool_t)0); }  else 
{ /* ./Module/foreign.scm 189 */
BgL_test2833z00_763 = ((bool_t)1); } }  else 
{ /* ./Module/foreign.scm 188 */
BgL_test2833z00_763 = ((bool_t)1); } } 
if(BgL_test2833z00_763)
{ /* ./Module/foreign.scm 190 */
obj_t BgL_list2835z00_764;
BgL_list2835z00_764 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4349z00zzmodule_foreignz00, BgL_externz00_23, BgL_list2835z00_764);}  else 
{ /* ./Module/foreign.scm 191 */
bool_t BgL_infixzf3zf3_765;
{ /* ./Module/foreign.scm 191 */
obj_t BgL_auxz00_2605;obj_t BgL_auxz00_2603;
BgL_auxz00_2605 = 
CNST_TABLE_REF(((long)4)); 
BgL_auxz00_2603 = 
CAR(BgL_externz00_23); 
BgL_infixzf3zf3_765 = 
(BgL_auxz00_2603==BgL_auxz00_2605); } 
{ /* ./Module/foreign.scm 192 */
BgL_globalz00_bglt BgL_auxz00_2608;
BgL_auxz00_2608 = 
BGl_declarezd2globalzd2cfunz12z12zzast_glozd2declzd2(BgL_lnz00_761, BgL_cnz00_609, BgL_typez00_762, BgL_protoz00_608, BgL_infixzf3zf3_765, ((bool_t)1), BgL_externz00_23, BFALSE); 
return 
(obj_t)(BgL_auxz00_2608);} } } } } } } }  else 
{ /* ./Module/foreign.scm 176 */
BgL_tagzd2866zd2_614:
{ /* ./Module/foreign.scm 202 */
obj_t BgL_list2878z00_781;
BgL_list2878z00_781 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4349z00zzmodule_foreignz00, BgL_externz00_23, BgL_list2878z00_781);} } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2866zd2_614;} } }  else 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_cdrzd2958zd2_643;
BgL_cdrzd2958zd2_643 = 
CDR(BgL_externz00_23); 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd2963zd2_644;obj_t BgL_cdrzd2964zd2_645;
BgL_carzd2963zd2_644 = 
CAR(BgL_cdrzd2958zd2_643); 
BgL_cdrzd2964zd2_645 = 
CDR(BgL_cdrzd2958zd2_643); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2558z00_646;
BgL_test2558z00_646 = 
SYMBOLP(BgL_carzd2963zd2_644); 
if(BgL_test2558z00_646)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd2972zd2_647;
BgL_carzd2972zd2_647 = 
CAR(BgL_cdrzd2964zd2_645); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2559z00_648;
BgL_test2559z00_648 = 
STRINGP(BgL_carzd2972zd2_647); 
if(BgL_test2559z00_648)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2560z00_649;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2621;
BgL_auxz00_2621 = 
CDR(BgL_cdrzd2964zd2_645); 
BgL_test2560z00_649 = 
NULLP(BgL_auxz00_2621); } 
if(BgL_test2560z00_649)
{ /* ./Module/foreign.scm 176 */
BgL_idz00_611 = BgL_carzd2963zd2_644; 
BgL_czd2namezd2_612 = BgL_carzd2972zd2_647; 
BgL_tagzd2865zd2_613:
{ /* ./Module/foreign.scm 195 */
obj_t BgL_pidz00_773;
{ /* ./Module/foreign.scm 195 */
obj_t BgL_arg2874z00_780;
BgL_arg2874z00_780 = 
BGl_findzd2locationzd2zztools_locationz00(BgL_externz00_23); 
BgL_pidz00_773 = 
BGl_parsezd2idzd2zzast_identz00(BgL_idz00_611, BgL_arg2874z00_780); } 
{ /* ./Module/foreign.scm 195 */
obj_t BgL_lzd2namezd2_774;
BgL_lzd2namezd2_774 = 
CAR(BgL_pidz00_773); 
{ /* ./Module/foreign.scm 196 */
obj_t BgL_typez00_775;
{ /* ./Module/foreign.scm 197 */
obj_t BgL_arg2866z00_778;
{ /* ./Module/foreign.scm 197 */
obj_t BgL_arg2869z00_779;
BgL_arg2869z00_779 = 
CDR(BgL_pidz00_773); 
BgL_arg2866z00_778 = 
BGl_defaultzd2czd2typez00zzmodule_foreignz00(BgL_arg2869z00_779, BgL_externz00_23); } 
{ /* ./Module/foreign.scm 197 */
BgL_typez00_bglt BgL_obj1023z00_1772;
BgL_obj1023z00_1772 = 
(BgL_typez00_bglt)(BgL_arg2866z00_778); 
BgL_typez00_775 = 
(((BgL_typez00_bglt)CREF(BgL_obj1023z00_1772))->BgL_idz00); } } 
{ /* ./Module/foreign.scm 197 */

{ /* ./Module/foreign.scm 198 */
bool_t BgL_test2859z00_776;
{ /* ./Module/foreign.scm 198 */
obj_t BgL_xz00_2177;
BgL_xz00_2177 = 
BGl_checkzd2idzd2zzast_identz00(BgL_pidz00_773, BgL_externz00_23); 
BgL_test2859z00_776 = ((bool_t)1); } 
if(BgL_test2859z00_776)
{ /* ./Module/foreign.scm 200 */
BgL_globalz00_bglt BgL_auxz00_2634;
BgL_auxz00_2634 = 
BGl_declarezd2globalzd2cvarz12z12zzast_glozd2declzd2(BgL_lzd2namezd2_774, BgL_czd2namezd2_612, BgL_typez00_775, ((bool_t)1), BgL_externz00_23, BFALSE); 
return 
(obj_t)(BgL_auxz00_2634);}  else 
{ /* ./Module/foreign.scm 199 */
obj_t BgL_list2862z00_777;
BgL_list2862z00_777 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4349z00zzmodule_foreignz00, BgL_externz00_23, BgL_list2862z00_777);} } } } } } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2866zd2_614;} }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2866zd2_614;} } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2866zd2_614;} } } } } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2866zd2_614;} }  else 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_cdrzd21015zd2_651;
BgL_cdrzd21015zd2_651 = 
CDR(BgL_externz00_23); 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21018zd2_652;obj_t BgL_cdrzd21019zd2_653;
BgL_carzd21018zd2_652 = 
CAR(BgL_cdrzd21015zd2_651); 
BgL_cdrzd21019zd2_653 = 
CDR(BgL_cdrzd21015zd2_651); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2579z00_654;
BgL_test2579z00_654 = 
SYMBOLP(BgL_carzd21018zd2_652); 
if(BgL_test2579z00_654)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2580z00_655;
BgL_test2580z00_655 = 
PAIRP(BgL_cdrzd21019zd2_653); 
if(BgL_test2580z00_655)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21024zd2_656;
BgL_carzd21024zd2_656 = 
CAR(BgL_cdrzd21019zd2_653); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2581z00_657;
BgL_test2581z00_657 = 
STRINGP(BgL_carzd21024zd2_656); 
if(BgL_test2581z00_657)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2582z00_658;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2649;
BgL_auxz00_2649 = 
CDR(BgL_cdrzd21019zd2_653); 
BgL_test2582z00_658 = 
NULLP(BgL_auxz00_2649); } 
if(BgL_test2582z00_658)
{ 
obj_t BgL_czd2namezd2_2654;obj_t BgL_idz00_2653;
BgL_idz00_2653 = BgL_carzd21018zd2_652; 
BgL_czd2namezd2_2654 = BgL_carzd21024zd2_656; 
BgL_czd2namezd2_612 = BgL_czd2namezd2_2654; 
BgL_idz00_611 = BgL_idz00_2653; 
goto BgL_tagzd2865zd2_613;}  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2866zd2_614;} }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2866zd2_614;} } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2866zd2_614;} }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2866zd2_614;} } } } } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2866zd2_614;} }  else 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_cdrzd21062zd2_660;
BgL_cdrzd21062zd2_660 = 
CDR(BgL_externz00_23); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2604z00_661;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2658;obj_t BgL_auxz00_2656;
BgL_auxz00_2658 = 
CNST_TABLE_REF(((long)4)); 
BgL_auxz00_2656 = 
CAR(BgL_externz00_23); 
BgL_test2604z00_661 = 
(BgL_auxz00_2656==BgL_auxz00_2658); } 
if(BgL_test2604z00_661)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2605z00_662;
BgL_test2605z00_662 = 
PAIRP(BgL_cdrzd21062zd2_660); 
if(BgL_test2605z00_662)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_cdrzd21067zd2_663;
BgL_cdrzd21067zd2_663 = 
CDR(BgL_cdrzd21062zd2_660); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2606z00_664;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2667;obj_t BgL_auxz00_2665;
BgL_auxz00_2667 = 
CNST_TABLE_REF(((long)8)); 
BgL_auxz00_2665 = 
CAR(BgL_cdrzd21062zd2_660); 
BgL_test2606z00_664 = 
(BgL_auxz00_2665==BgL_auxz00_2667); } 
if(BgL_test2606z00_664)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2607z00_665;
BgL_test2607z00_665 = 
PAIRP(BgL_cdrzd21067zd2_663); 
if(BgL_test2607z00_665)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21071zd2_666;obj_t BgL_cdrzd21072zd2_667;
BgL_carzd21071zd2_666 = 
CAR(BgL_cdrzd21067zd2_663); 
BgL_cdrzd21072zd2_667 = 
CDR(BgL_cdrzd21067zd2_663); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2608z00_668;
BgL_test2608z00_668 = 
SYMBOLP(BgL_carzd21071zd2_666); 
if(BgL_test2608z00_668)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2609z00_669;
BgL_test2609z00_669 = 
PAIRP(BgL_cdrzd21072zd2_667); 
if(BgL_test2609z00_669)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_cdrzd21079zd2_670;
BgL_cdrzd21079zd2_670 = 
CDR(BgL_cdrzd21072zd2_667); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2610z00_671;
BgL_test2610z00_671 = 
PAIRP(BgL_cdrzd21079zd2_670); 
if(BgL_test2610z00_671)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21082zd2_672;
BgL_carzd21082zd2_672 = 
CAR(BgL_cdrzd21079zd2_670); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2611z00_673;
BgL_test2611z00_673 = 
STRINGP(BgL_carzd21082zd2_672); 
if(BgL_test2611z00_673)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2612z00_674;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2685;
BgL_auxz00_2685 = 
CDR(BgL_cdrzd21079zd2_670); 
BgL_test2612z00_674 = 
NULLP(BgL_auxz00_2685); } 
if(BgL_test2612z00_674)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_arg2614z00_675;
BgL_arg2614z00_675 = 
CAR(BgL_cdrzd21072zd2_667); 
{ 
obj_t BgL_cnz00_2692;obj_t BgL_protoz00_2691;obj_t BgL_idz00_2690;
BgL_idz00_2690 = BgL_carzd21071zd2_666; 
BgL_protoz00_2691 = BgL_arg2614z00_675; 
BgL_cnz00_2692 = BgL_carzd21082zd2_672; 
BgL_cnz00_609 = BgL_cnz00_2692; 
BgL_protoz00_608 = BgL_protoz00_2691; 
BgL_idz00_607 = BgL_idz00_2690; 
goto BgL_tagzd2864zd2_610;} }  else 
{ /* ./Module/foreign.scm 176 */
BgL_tagzd2869zd2_622:
{ /* ./Module/foreign.scm 221 */
obj_t BgL_list2921z00_800;
BgL_list2921z00_800 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4349z00zzmodule_foreignz00, BgL_externz00_23, BgL_list2921z00_800);} } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } }  else 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21171zd2_677;
BgL_carzd21171zd2_677 = 
CAR(BgL_externz00_23); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2628z00_679;
BgL_test2628z00_679 = 
SYMBOLP(BgL_carzd21171zd2_677); 
if(BgL_test2628z00_679)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_cdrzd21180zd2_680;
BgL_cdrzd21180zd2_680 = 
CDR(BgL_cdrzd21062zd2_660); 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21184zd2_681;
BgL_carzd21184zd2_681 = 
CAR(BgL_cdrzd21180zd2_680); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2629z00_682;
BgL_test2629z00_682 = 
STRINGP(BgL_carzd21184zd2_681); 
if(BgL_test2629z00_682)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2630z00_683;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2702;
BgL_auxz00_2702 = 
CDR(BgL_cdrzd21180zd2_680); 
BgL_test2630z00_683 = 
NULLP(BgL_auxz00_2702); } 
if(BgL_test2630z00_683)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_arg2632z00_684;
BgL_arg2632z00_684 = 
CAR(BgL_cdrzd21062zd2_660); 
BgL_idz00_615 = BgL_carzd21171zd2_677; 
BgL_protoz00_616 = BgL_arg2632z00_684; 
BgL_cnz00_617 = BgL_carzd21184zd2_681; 
BgL_tagzd2867zd2_618:
{ /* ./Module/foreign.scm 205 */
obj_t BgL_pidz00_782;
{ /* ./Module/foreign.scm 205 */
obj_t BgL_arg2898z00_791;
BgL_arg2898z00_791 = 
BGl_findzd2locationzd2zztools_locationz00(BgL_externz00_23); 
BgL_pidz00_782 = 
BGl_parsezd2idzd2zzast_identz00(BgL_idz00_615, BgL_arg2898z00_791); } 
{ /* ./Module/foreign.scm 205 */
obj_t BgL_lnz00_783;
BgL_lnz00_783 = 
CAR(BgL_pidz00_782); 
{ /* ./Module/foreign.scm 206 */
obj_t BgL_typez00_784;
{ /* ./Module/foreign.scm 207 */
obj_t BgL_arg2890z00_789;
{ /* ./Module/foreign.scm 207 */
obj_t BgL_arg2893z00_790;
BgL_arg2893z00_790 = 
CDR(BgL_pidz00_782); 
BgL_arg2890z00_789 = 
BGl_defaultzd2czd2typez00zzmodule_foreignz00(BgL_arg2893z00_790, BgL_externz00_23); } 
{ /* ./Module/foreign.scm 207 */
BgL_typez00_bglt BgL_obj1023z00_1775;
BgL_obj1023z00_1775 = 
(BgL_typez00_bglt)(BgL_arg2890z00_789); 
BgL_typez00_784 = 
(((BgL_typez00_bglt)CREF(BgL_obj1023z00_1775))->BgL_idz00); } } 
{ /* ./Module/foreign.scm 207 */

{ /* ./Module/foreign.scm 208 */
bool_t BgL_test2880z00_785;
{ /* ./Module/foreign.scm 208 */
bool_t BgL_test2885z00_787;
{ /* ./Module/foreign.scm 208 */
obj_t BgL_xz00_2178;
BgL_xz00_2178 = 
BGl_checkzd2idzd2zzast_identz00(BgL_pidz00_782, BgL_externz00_23); 
BgL_test2885z00_787 = ((bool_t)1); } 
if(BgL_test2885z00_787)
{ /* ./Module/foreign.scm 208 */
if(
BGl_checkzd2czd2argszf3zf3zzmodule_foreignz00(BgL_protoz00_616))
{ /* ./Module/foreign.scm 209 */
BgL_test2880z00_785 = ((bool_t)0); }  else 
{ /* ./Module/foreign.scm 209 */
BgL_test2880z00_785 = ((bool_t)1); } }  else 
{ /* ./Module/foreign.scm 208 */
BgL_test2880z00_785 = ((bool_t)1); } } 
if(BgL_test2880z00_785)
{ /* ./Module/foreign.scm 210 */
obj_t BgL_list2882z00_786;
BgL_list2882z00_786 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4349z00zzmodule_foreignz00, BgL_externz00_23, BgL_list2882z00_786);}  else 
{ /* ./Module/foreign.scm 211 */
BgL_globalz00_bglt BgL_auxz00_2721;
BgL_auxz00_2721 = 
BGl_declarezd2globalzd2cfunz12z12zzast_glozd2declzd2(BgL_lnz00_783, BgL_cnz00_617, BgL_typez00_784, BgL_protoz00_616, ((bool_t)0), ((bool_t)0), BgL_externz00_23, BFALSE); 
return 
(obj_t)(BgL_auxz00_2721);} } } } } } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } } }  else 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21220zd2_686;
BgL_carzd21220zd2_686 = 
CAR(BgL_externz00_23); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2649z00_688;
BgL_test2649z00_688 = 
SYMBOLP(BgL_carzd21220zd2_686); 
if(BgL_test2649z00_688)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_cdrzd21228zd2_689;
BgL_cdrzd21228zd2_689 = 
CDR(BgL_cdrzd21062zd2_660); 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21231zd2_690;
BgL_carzd21231zd2_690 = 
CAR(BgL_cdrzd21228zd2_689); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2650z00_691;
BgL_test2650z00_691 = 
STRINGP(BgL_carzd21231zd2_690); 
if(BgL_test2650z00_691)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2651z00_692;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2731;
BgL_auxz00_2731 = 
CDR(BgL_cdrzd21228zd2_689); 
BgL_test2651z00_692 = 
NULLP(BgL_auxz00_2731); } 
if(BgL_test2651z00_692)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_arg2653z00_693;
BgL_arg2653z00_693 = 
CAR(BgL_cdrzd21062zd2_660); 
{ 
obj_t BgL_cnz00_2738;obj_t BgL_protoz00_2737;obj_t BgL_idz00_2736;
BgL_idz00_2736 = BgL_carzd21220zd2_686; 
BgL_protoz00_2737 = BgL_arg2653z00_693; 
BgL_cnz00_2738 = BgL_carzd21231zd2_690; 
BgL_cnz00_617 = BgL_cnz00_2738; 
BgL_protoz00_616 = BgL_protoz00_2737; 
BgL_idz00_615 = BgL_idz00_2736; 
goto BgL_tagzd2867zd2_618;} }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } } } }  else 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21269zd2_695;
BgL_carzd21269zd2_695 = 
CAR(BgL_externz00_23); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2672z00_697;
BgL_test2672z00_697 = 
SYMBOLP(BgL_carzd21269zd2_695); 
if(BgL_test2672z00_697)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21275zd2_698;
BgL_carzd21275zd2_698 = 
CAR(BgL_cdrzd21062zd2_660); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2673z00_699;
BgL_test2673z00_699 = 
STRINGP(BgL_carzd21275zd2_698); 
if(BgL_test2673z00_699)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2674z00_700;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2745;
BgL_auxz00_2745 = 
CDR(BgL_cdrzd21062zd2_660); 
BgL_test2674z00_700 = 
NULLP(BgL_auxz00_2745); } 
if(BgL_test2674z00_700)
{ /* ./Module/foreign.scm 176 */
BgL_idz00_619 = BgL_carzd21269zd2_695; 
BgL_czd2namezd2_620 = BgL_carzd21275zd2_698; 
BgL_tagzd2868zd2_621:
{ /* ./Module/foreign.scm 214 */
obj_t BgL_pidz00_792;
{ /* ./Module/foreign.scm 214 */
obj_t BgL_arg2917z00_799;
BgL_arg2917z00_799 = 
BGl_findzd2locationzd2zztools_locationz00(BgL_externz00_23); 
BgL_pidz00_792 = 
BGl_parsezd2idzd2zzast_identz00(BgL_idz00_619, BgL_arg2917z00_799); } 
{ /* ./Module/foreign.scm 214 */
obj_t BgL_lzd2namezd2_793;
BgL_lzd2namezd2_793 = 
CAR(BgL_pidz00_792); 
{ /* ./Module/foreign.scm 215 */
obj_t BgL_typez00_794;
{ /* ./Module/foreign.scm 216 */
obj_t BgL_arg2908z00_797;
{ /* ./Module/foreign.scm 216 */
obj_t BgL_arg2912z00_798;
BgL_arg2912z00_798 = 
CDR(BgL_pidz00_792); 
BgL_arg2908z00_797 = 
BGl_defaultzd2czd2typez00zzmodule_foreignz00(BgL_arg2912z00_798, BgL_externz00_23); } 
{ /* ./Module/foreign.scm 216 */
BgL_typez00_bglt BgL_obj1023z00_1778;
BgL_obj1023z00_1778 = 
(BgL_typez00_bglt)(BgL_arg2908z00_797); 
BgL_typez00_794 = 
(((BgL_typez00_bglt)CREF(BgL_obj1023z00_1778))->BgL_idz00); } } 
{ /* ./Module/foreign.scm 216 */

{ /* ./Module/foreign.scm 217 */
bool_t BgL_test2901z00_795;
{ /* ./Module/foreign.scm 217 */
obj_t BgL_xz00_2179;
BgL_xz00_2179 = 
BGl_checkzd2idzd2zzast_identz00(BgL_pidz00_792, BgL_externz00_23); 
BgL_test2901z00_795 = ((bool_t)1); } 
if(BgL_test2901z00_795)
{ /* ./Module/foreign.scm 219 */
BgL_globalz00_bglt BgL_auxz00_2758;
BgL_auxz00_2758 = 
BGl_declarezd2globalzd2cvarz12z12zzast_glozd2declzd2(BgL_lzd2namezd2_793, BgL_czd2namezd2_620, BgL_typez00_794, ((bool_t)0), BgL_externz00_23, BFALSE); 
return 
(obj_t)(BgL_auxz00_2758);}  else 
{ /* ./Module/foreign.scm 218 */
obj_t BgL_list2904z00_796;
BgL_list2904z00_796 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4349z00zzmodule_foreignz00, BgL_externz00_23, BgL_list2904z00_796);} } } } } } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } } }  else 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21297zd2_702;
BgL_carzd21297zd2_702 = 
CAR(BgL_externz00_23); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2689z00_704;
BgL_test2689z00_704 = 
SYMBOLP(BgL_carzd21297zd2_702); 
if(BgL_test2689z00_704)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_cdrzd21305zd2_705;
BgL_cdrzd21305zd2_705 = 
CDR(BgL_cdrzd21062zd2_660); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2690z00_706;
BgL_test2690z00_706 = 
PAIRP(BgL_cdrzd21305zd2_705); 
if(BgL_test2690z00_706)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21308zd2_707;
BgL_carzd21308zd2_707 = 
CAR(BgL_cdrzd21305zd2_705); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2691z00_708;
BgL_test2691z00_708 = 
STRINGP(BgL_carzd21308zd2_707); 
if(BgL_test2691z00_708)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2692z00_709;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2772;
BgL_auxz00_2772 = 
CDR(BgL_cdrzd21305zd2_705); 
BgL_test2692z00_709 = 
NULLP(BgL_auxz00_2772); } 
if(BgL_test2692z00_709)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_arg2694z00_710;
BgL_arg2694z00_710 = 
CAR(BgL_cdrzd21062zd2_660); 
{ 
obj_t BgL_cnz00_2779;obj_t BgL_protoz00_2778;obj_t BgL_idz00_2777;
BgL_idz00_2777 = BgL_carzd21297zd2_702; 
BgL_protoz00_2778 = BgL_arg2694z00_710; 
BgL_cnz00_2779 = BgL_carzd21308zd2_707; 
BgL_cnz00_617 = BgL_cnz00_2779; 
BgL_protoz00_616 = BgL_protoz00_2778; 
BgL_idz00_615 = BgL_idz00_2777; 
goto BgL_tagzd2867zd2_618;} }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } }  else 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_cdrzd21329zd2_713;
BgL_cdrzd21329zd2_713 = 
CDR(BgL_externz00_23); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2705z00_714;
BgL_test2705z00_714 = 
SYMBOLP(BgL_carzd21297zd2_702); 
if(BgL_test2705z00_714)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21335zd2_715;
BgL_carzd21335zd2_715 = 
CAR(BgL_cdrzd21329zd2_713); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2706z00_716;
BgL_test2706z00_716 = 
STRINGP(BgL_carzd21335zd2_715); 
if(BgL_test2706z00_716)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2707z00_717;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2786;
BgL_auxz00_2786 = 
CDR(BgL_cdrzd21329zd2_713); 
BgL_test2707z00_717 = 
NULLP(BgL_auxz00_2786); } 
if(BgL_test2707z00_717)
{ 
obj_t BgL_czd2namezd2_2791;obj_t BgL_idz00_2790;
BgL_idz00_2790 = BgL_carzd21297zd2_702; 
BgL_czd2namezd2_2791 = BgL_carzd21335zd2_715; 
BgL_czd2namezd2_620 = BgL_czd2namezd2_2791; 
BgL_idz00_619 = BgL_idz00_2790; 
goto BgL_tagzd2868zd2_621;}  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } } } }  else 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_cdrzd21347zd2_720;
BgL_cdrzd21347zd2_720 = 
CDR(BgL_externz00_23); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2723z00_721;
BgL_test2723z00_721 = 
SYMBOLP(BgL_carzd21297zd2_702); 
if(BgL_test2723z00_721)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21352zd2_722;
BgL_carzd21352zd2_722 = 
CAR(BgL_cdrzd21347zd2_720); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2724z00_723;
BgL_test2724z00_723 = 
STRINGP(BgL_carzd21352zd2_722); 
if(BgL_test2724z00_723)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2725z00_724;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2798;
BgL_auxz00_2798 = 
CDR(BgL_cdrzd21347zd2_720); 
BgL_test2725z00_724 = 
NULLP(BgL_auxz00_2798); } 
if(BgL_test2725z00_724)
{ 
obj_t BgL_czd2namezd2_2803;obj_t BgL_idz00_2802;
BgL_idz00_2802 = BgL_carzd21297zd2_702; 
BgL_czd2namezd2_2803 = BgL_carzd21352zd2_722; 
BgL_czd2namezd2_620 = BgL_czd2namezd2_2803; 
BgL_idz00_619 = BgL_idz00_2802; 
goto BgL_tagzd2868zd2_621;}  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } } } } } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} }  else 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21395zd2_728;
BgL_carzd21395zd2_728 = 
CAR(BgL_externz00_23); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2750z00_730;
BgL_test2750z00_730 = 
SYMBOLP(BgL_carzd21395zd2_728); 
if(BgL_test2750z00_730)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2751z00_731;
BgL_test2751z00_731 = 
PAIRP(BgL_cdrzd21062zd2_660); 
if(BgL_test2751z00_731)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_cdrzd21403zd2_732;
BgL_cdrzd21403zd2_732 = 
CDR(BgL_cdrzd21062zd2_660); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2752z00_733;
BgL_test2752z00_733 = 
PAIRP(BgL_cdrzd21403zd2_732); 
if(BgL_test2752z00_733)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21406zd2_734;
BgL_carzd21406zd2_734 = 
CAR(BgL_cdrzd21403zd2_732); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2753z00_735;
BgL_test2753z00_735 = 
STRINGP(BgL_carzd21406zd2_734); 
if(BgL_test2753z00_735)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2754z00_736;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2815;
BgL_auxz00_2815 = 
CDR(BgL_cdrzd21403zd2_732); 
BgL_test2754z00_736 = 
NULLP(BgL_auxz00_2815); } 
if(BgL_test2754z00_736)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_arg2756z00_737;
BgL_arg2756z00_737 = 
CAR(BgL_cdrzd21062zd2_660); 
{ 
obj_t BgL_cnz00_2822;obj_t BgL_protoz00_2821;obj_t BgL_idz00_2820;
BgL_idz00_2820 = BgL_carzd21395zd2_728; 
BgL_protoz00_2821 = BgL_arg2756z00_737; 
BgL_cnz00_2822 = BgL_carzd21406zd2_734; 
BgL_cnz00_617 = BgL_cnz00_2822; 
BgL_protoz00_616 = BgL_protoz00_2821; 
BgL_idz00_615 = BgL_idz00_2820; 
goto BgL_tagzd2867zd2_618;} }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } }  else 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_cdrzd21430zd2_740;
BgL_cdrzd21430zd2_740 = 
CDR(BgL_externz00_23); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2767z00_741;
BgL_test2767z00_741 = 
SYMBOLP(BgL_carzd21395zd2_728); 
if(BgL_test2767z00_741)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21438zd2_742;
BgL_carzd21438zd2_742 = 
CAR(BgL_cdrzd21430zd2_740); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2768z00_743;
BgL_test2768z00_743 = 
STRINGP(BgL_carzd21438zd2_742); 
if(BgL_test2768z00_743)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2769z00_744;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2829;
BgL_auxz00_2829 = 
CDR(BgL_cdrzd21430zd2_740); 
BgL_test2769z00_744 = 
NULLP(BgL_auxz00_2829); } 
if(BgL_test2769z00_744)
{ 
obj_t BgL_czd2namezd2_2834;obj_t BgL_idz00_2833;
BgL_idz00_2833 = BgL_carzd21395zd2_728; 
BgL_czd2namezd2_2834 = BgL_carzd21438zd2_742; 
BgL_czd2namezd2_620 = BgL_czd2namezd2_2834; 
BgL_idz00_619 = BgL_idz00_2833; 
goto BgL_tagzd2868zd2_621;}  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } } } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} }  else 
{ /* ./Module/foreign.scm 176 */
obj_t BgL_cdrzd21455zd2_747;
BgL_cdrzd21455zd2_747 = 
CDR(BgL_externz00_23); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2787z00_748;
BgL_test2787z00_748 = 
SYMBOLP(BgL_carzd21395zd2_728); 
if(BgL_test2787z00_748)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2788z00_749;
BgL_test2788z00_749 = 
PAIRP(BgL_cdrzd21455zd2_747); 
if(BgL_test2788z00_749)
{ /* ./Module/foreign.scm 176 */
obj_t BgL_carzd21460zd2_750;
BgL_carzd21460zd2_750 = 
CAR(BgL_cdrzd21455zd2_747); 
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2789z00_751;
BgL_test2789z00_751 = 
STRINGP(BgL_carzd21460zd2_750); 
if(BgL_test2789z00_751)
{ /* ./Module/foreign.scm 176 */
bool_t BgL_test2790z00_752;
{ /* ./Module/foreign.scm 176 */
obj_t BgL_auxz00_2843;
BgL_auxz00_2843 = 
CDR(BgL_cdrzd21455zd2_747); 
BgL_test2790z00_752 = 
NULLP(BgL_auxz00_2843); } 
if(BgL_test2790z00_752)
{ 
obj_t BgL_czd2namezd2_2848;obj_t BgL_idz00_2847;
BgL_idz00_2847 = BgL_carzd21395zd2_728; 
BgL_czd2namezd2_2848 = BgL_carzd21460zd2_750; 
BgL_czd2namezd2_620 = BgL_czd2namezd2_2848; 
BgL_idz00_619 = BgL_idz00_2847; 
goto BgL_tagzd2868zd2_621;}  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } } } } } } } } } } } }  else 
{ /* ./Module/foreign.scm 176 */
goto BgL_tagzd2869zd2_622;} } } } 
}



/* parse-c-foreign-type */
obj_t BGl_parsezd2czd2foreignzd2typezd2zzmodule_foreignz00(obj_t BgL_typez00_24)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 226 */
{ 
obj_t BgL_idz00_804;obj_t BgL_tzd2expzd2_805;obj_t BgL_namez00_806;
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2923z00_810;
BgL_test2923z00_810 = 
PAIRP(BgL_typez00_24); 
if(BgL_test2923z00_810)
{ /* ./Module/foreign.scm 227 */
obj_t BgL_cdrzd21514zd2_811;
BgL_cdrzd21514zd2_811 = 
CDR(BgL_typez00_24); 
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2924z00_812;
{ /* ./Module/foreign.scm 227 */
obj_t BgL_auxz00_2854;obj_t BgL_auxz00_2852;
BgL_auxz00_2854 = 
CNST_TABLE_REF(((long)6)); 
BgL_auxz00_2852 = 
CAR(BgL_typez00_24); 
BgL_test2924z00_812 = 
(BgL_auxz00_2852==BgL_auxz00_2854); } 
if(BgL_test2924z00_812)
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2925z00_813;
BgL_test2925z00_813 = 
PAIRP(BgL_cdrzd21514zd2_811); 
if(BgL_test2925z00_813)
{ /* ./Module/foreign.scm 227 */
obj_t BgL_carzd21517zd2_814;obj_t BgL_cdrzd21518zd2_815;
BgL_carzd21517zd2_814 = 
CAR(BgL_cdrzd21514zd2_811); 
BgL_cdrzd21518zd2_815 = 
CDR(BgL_cdrzd21514zd2_811); 
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2926z00_816;
BgL_test2926z00_816 = 
SYMBOLP(BgL_carzd21517zd2_814); 
if(BgL_test2926z00_816)
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2927z00_817;
BgL_test2927z00_817 = 
PAIRP(BgL_cdrzd21518zd2_815); 
if(BgL_test2927z00_817)
{ /* ./Module/foreign.scm 227 */
obj_t BgL_carzd21523zd2_818;
BgL_carzd21523zd2_818 = 
CAR(BgL_cdrzd21518zd2_815); 
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2928z00_819;
BgL_test2928z00_819 = 
STRINGP(BgL_carzd21523zd2_818); 
if(BgL_test2928z00_819)
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2929z00_820;
{ /* ./Module/foreign.scm 227 */
obj_t BgL_auxz00_2869;
BgL_auxz00_2869 = 
CDR(BgL_cdrzd21518zd2_815); 
BgL_test2929z00_820 = 
NULLP(BgL_auxz00_2869); } 
if(BgL_test2929z00_820)
{ /* ./Module/foreign.scm 227 */
BgL_typez00_bglt BgL_auxz00_2873;
BgL_auxz00_2873 = 
BGl_declarezd2typez12zc0zztype_envz00(BgL_carzd21517zd2_814, BgL_carzd21523zd2_818, 
CNST_TABLE_REF(((long)10))); 
return 
(obj_t)(BgL_auxz00_2873);}  else 
{ /* ./Module/foreign.scm 227 */
obj_t BgL_carzd21543zd2_822;obj_t BgL_cdrzd21544zd2_823;
BgL_carzd21543zd2_822 = 
CAR(BgL_cdrzd21514zd2_811); 
BgL_cdrzd21544zd2_823 = 
CDR(BgL_cdrzd21514zd2_811); 
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2931z00_824;
BgL_test2931z00_824 = 
SYMBOLP(BgL_carzd21543zd2_822); 
if(BgL_test2931z00_824)
{ /* ./Module/foreign.scm 227 */
obj_t BgL_cdrzd21554zd2_825;
BgL_cdrzd21554zd2_825 = 
CDR(BgL_cdrzd21544zd2_823); 
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2932z00_826;
BgL_test2932z00_826 = 
PAIRP(BgL_cdrzd21554zd2_825); 
if(BgL_test2932z00_826)
{ /* ./Module/foreign.scm 227 */
obj_t BgL_carzd21558zd2_827;
BgL_carzd21558zd2_827 = 
CAR(BgL_cdrzd21554zd2_825); 
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2933z00_828;
BgL_test2933z00_828 = 
STRINGP(BgL_carzd21558zd2_827); 
if(BgL_test2933z00_828)
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2934z00_829;
{ /* ./Module/foreign.scm 227 */
obj_t BgL_auxz00_2887;
BgL_auxz00_2887 = 
CDR(BgL_cdrzd21554zd2_825); 
BgL_test2934z00_829 = 
NULLP(BgL_auxz00_2887); } 
if(BgL_test2934z00_829)
{ /* ./Module/foreign.scm 227 */
obj_t BgL_arg2936z00_830;
BgL_arg2936z00_830 = 
CAR(BgL_cdrzd21544zd2_823); 
BgL_idz00_804 = BgL_carzd21543zd2_822; 
BgL_tzd2expzd2_805 = BgL_arg2936z00_830; 
BgL_namez00_806 = BgL_carzd21558zd2_827; 
BgL_tagzd21505zd2_807:
{ /* ./Module/foreign.scm 231 */
bool_t BgL_test3029z00_858;
BgL_test3029z00_858 = 
BGl_checkzd2czd2foreignzd2typezd2expzf3zf3zzmodule_foreignz00(BgL_tzd2expzd2_805); 
if(BgL_test3029z00_858)
{ /* ./Module/foreign.scm 232 */
obj_t BgL_ctypez00_859;obj_t BgL_locz00_860;
BgL_ctypez00_859 = 
BGl_declarezd2czd2typez12z12zzforeign_ctypez00(BgL_typez00_24, BgL_idz00_804, BgL_tzd2expzd2_805, BgL_namez00_806); 
BgL_locz00_860 = 
BGl_findzd2locationzd2zztools_locationz00(BgL_typez00_24); 
{ /* ./Module/foreign.scm 236 */
bool_t BgL_test3030z00_861;
BgL_test3030z00_861 = 
BGl_iszd2azf3z21zz__objectz00(BgL_ctypez00_859, BGl_typez00zztype_typez00); 
if(BgL_test3030z00_861)
{ /* ./Module/foreign.scm 237 */
obj_t BgL_accessesz00_862;
BgL_accessesz00_862 = 
BGl_makezd2ctypezd2accessesz12z12zzforeign_accessz00(
(BgL_typez00_bglt)(BgL_ctypez00_859), 
(BgL_typez00_bglt)(BgL_ctypez00_859), BgL_locz00_860); 
BGl_za2foreignzd2accessesza2zd2zzmodule_foreignz00 = 
bgl_append2(BgL_accessesz00_862, BGl_za2foreignzd2accessesza2zd2zzmodule_foreignz00); 
{ /* ./Module/foreign.scm 242 */
bool_t BgL_test3032z00_863;
{ /* ./Module/foreign.scm 242 */
bool_t BgL_test3065z00_877;
BgL_test3065z00_877 = 
BGl_iszd2azf3z21zz__objectz00(BgL_ctypez00_859, BGl_caliasz00zzforeign_ctypez00); 
if(BgL_test3065z00_877)
{ /* ./Module/foreign.scm 242 */
obj_t BgL_arg3067z00_878;
{ /* ./Module/foreign.scm 242 */
BgL_typez00_bglt BgL_obj1048z00_1830;
BgL_obj1048z00_1830 = 
(BgL_typez00_bglt)(BgL_ctypez00_859); 
BgL_arg3067z00_878 = 
(((BgL_typez00_bglt)CREF(BgL_obj1048z00_1830))->BgL_aliasz00); } 
BgL_test3032z00_863 = 
BGl_iszd2azf3z21zz__objectz00(BgL_arg3067z00_878, BGl_cstructz00zzforeign_ctypez00); }  else 
{ /* ./Module/foreign.scm 242 */
BgL_test3032z00_863 = ((bool_t)0); } } 
if(BgL_test3032z00_863)
{ /* ./Module/foreign.scm 244 */
obj_t BgL_arg3034z00_864;
{ /* ./Module/foreign.scm 244 */
obj_t BgL_arg3037z00_865;obj_t BgL_arg3038z00_866;
BgL_arg3037z00_865 = 
CNST_TABLE_REF(((long)6)); 
{ /* ./Module/foreign.scm 244 */
obj_t BgL_arg3041z00_867;obj_t BgL_arg3042z00_868;
{ /* ./Module/foreign.scm 244 */
obj_t BgL_list3045z00_869;
{ /* ./Module/foreign.scm 244 */
obj_t BgL_arg3047z00_870;
{ /* ./Module/foreign.scm 244 */
obj_t BgL_auxz00_2909;
BgL_auxz00_2909 = 
CNST_TABLE_REF(((long)9)); 
BgL_arg3047z00_870 = 
MAKE_PAIR(BgL_auxz00_2909, BNIL); } 
BgL_list3045z00_869 = 
MAKE_PAIR(BgL_idz00_804, BgL_arg3047z00_870); } 
BgL_arg3041z00_867 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list3045z00_869); } 
{ /* ./Module/foreign.scm 245 */
obj_t BgL_arg3051z00_871;obj_t BgL_arg3052z00_872;
{ /* ./Module/foreign.scm 245 */
obj_t BgL_list3055z00_873;
{ /* ./Module/foreign.scm 245 */
obj_t BgL_arg3057z00_874;
{ /* ./Module/foreign.scm 245 */
obj_t BgL_auxz00_2914;
BgL_auxz00_2914 = 
CNST_TABLE_REF(((long)9)); 
BgL_arg3057z00_874 = 
MAKE_PAIR(BgL_auxz00_2914, BNIL); } 
BgL_list3055z00_873 = 
MAKE_PAIR(BgL_tzd2expzd2_805, BgL_arg3057z00_874); } 
BgL_arg3051z00_871 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list3055z00_873); } 
{ /* ./Module/foreign.scm 246 */
obj_t BgL_arg3061z00_875;
BgL_arg3061z00_875 = 
BGl_makezd2pointerzd2tozd2namezd2zztype_toolsz00(
(BgL_typez00_bglt)(BgL_ctypez00_859)); 
BgL_arg3052z00_872 = 
MAKE_PAIR(BgL_arg3061z00_875, BNIL); } 
BgL_arg3042z00_868 = 
MAKE_PAIR(BgL_arg3051z00_871, BgL_arg3052z00_872); } 
BgL_arg3038z00_866 = 
MAKE_PAIR(BgL_arg3041z00_867, BgL_arg3042z00_868); } 
BgL_arg3034z00_864 = 
MAKE_PAIR(BgL_arg3037z00_865, BgL_arg3038z00_866); } 
BGl_parsezd2czd2foreignzd2typezd2zzmodule_foreignz00(BgL_arg3034z00_864); }  else 
{ /* ./Module/foreign.scm 242 */BFALSE; } } }  else 
{ /* ./Module/foreign.scm 236 */BFALSE; } } 
return BUNSPEC;}  else 
{ /* ./Module/foreign.scm 248 */
obj_t BgL_list3076z00_879;
BgL_list3076z00_879 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4350z00zzmodule_foreignz00, BgL_typez00_24, BgL_list3076z00_879);} } }  else 
{ /* ./Module/foreign.scm 227 */
BgL_tagzd21506zd2_808:
{ /* ./Module/foreign.scm 250 */
obj_t BgL_list3080z00_880;
BgL_list3080z00_880 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4350z00zzmodule_foreignz00, BgL_typez00_24, BgL_list3080z00_880);} } }  else 
{ /* ./Module/foreign.scm 227 */
goto BgL_tagzd21506zd2_808;} } }  else 
{ /* ./Module/foreign.scm 227 */
goto BgL_tagzd21506zd2_808;} } }  else 
{ /* ./Module/foreign.scm 227 */
goto BgL_tagzd21506zd2_808;} } } }  else 
{ /* ./Module/foreign.scm 227 */
obj_t BgL_carzd21576zd2_834;obj_t BgL_cdrzd21577zd2_835;
BgL_carzd21576zd2_834 = 
CAR(BgL_cdrzd21514zd2_811); 
BgL_cdrzd21577zd2_835 = 
CDR(BgL_cdrzd21514zd2_811); 
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2959z00_836;
BgL_test2959z00_836 = 
SYMBOLP(BgL_carzd21576zd2_834); 
if(BgL_test2959z00_836)
{ /* ./Module/foreign.scm 227 */
obj_t BgL_cdrzd21586zd2_837;
BgL_cdrzd21586zd2_837 = 
CDR(BgL_cdrzd21577zd2_835); 
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2960z00_838;
BgL_test2960z00_838 = 
PAIRP(BgL_cdrzd21586zd2_837); 
if(BgL_test2960z00_838)
{ /* ./Module/foreign.scm 227 */
obj_t BgL_carzd21589zd2_839;
BgL_carzd21589zd2_839 = 
CAR(BgL_cdrzd21586zd2_837); 
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2961z00_840;
BgL_test2961z00_840 = 
STRINGP(BgL_carzd21589zd2_839); 
if(BgL_test2961z00_840)
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2962z00_841;
{ /* ./Module/foreign.scm 227 */
obj_t BgL_auxz00_2940;
BgL_auxz00_2940 = 
CDR(BgL_cdrzd21586zd2_837); 
BgL_test2962z00_841 = 
NULLP(BgL_auxz00_2940); } 
if(BgL_test2962z00_841)
{ /* ./Module/foreign.scm 227 */
obj_t BgL_arg2964z00_842;
BgL_arg2964z00_842 = 
CAR(BgL_cdrzd21577zd2_835); 
{ 
obj_t BgL_namez00_2947;obj_t BgL_tzd2expzd2_2946;obj_t BgL_idz00_2945;
BgL_idz00_2945 = BgL_carzd21576zd2_834; 
BgL_tzd2expzd2_2946 = BgL_arg2964z00_842; 
BgL_namez00_2947 = BgL_carzd21589zd2_839; 
BgL_namez00_806 = BgL_namez00_2947; 
BgL_tzd2expzd2_805 = BgL_tzd2expzd2_2946; 
BgL_idz00_804 = BgL_idz00_2945; 
goto BgL_tagzd21505zd2_807;} }  else 
{ /* ./Module/foreign.scm 227 */
goto BgL_tagzd21506zd2_808;} }  else 
{ /* ./Module/foreign.scm 227 */
goto BgL_tagzd21506zd2_808;} } }  else 
{ /* ./Module/foreign.scm 227 */
goto BgL_tagzd21506zd2_808;} } }  else 
{ /* ./Module/foreign.scm 227 */
goto BgL_tagzd21506zd2_808;} } } } }  else 
{ /* ./Module/foreign.scm 227 */
goto BgL_tagzd21506zd2_808;} }  else 
{ /* ./Module/foreign.scm 227 */
obj_t BgL_carzd21612zd2_845;obj_t BgL_cdrzd21613zd2_846;
BgL_carzd21612zd2_845 = 
CAR(BgL_cdrzd21514zd2_811); 
BgL_cdrzd21613zd2_846 = 
CDR(BgL_cdrzd21514zd2_811); 
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2987z00_847;
BgL_test2987z00_847 = 
SYMBOLP(BgL_carzd21612zd2_845); 
if(BgL_test2987z00_847)
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2988z00_848;
BgL_test2988z00_848 = 
PAIRP(BgL_cdrzd21613zd2_846); 
if(BgL_test2988z00_848)
{ /* ./Module/foreign.scm 227 */
obj_t BgL_cdrzd21620zd2_849;
BgL_cdrzd21620zd2_849 = 
CDR(BgL_cdrzd21613zd2_846); 
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2989z00_850;
BgL_test2989z00_850 = 
PAIRP(BgL_cdrzd21620zd2_849); 
if(BgL_test2989z00_850)
{ /* ./Module/foreign.scm 227 */
obj_t BgL_carzd21623zd2_851;
BgL_carzd21623zd2_851 = 
CAR(BgL_cdrzd21620zd2_849); 
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2990z00_852;
BgL_test2990z00_852 = 
STRINGP(BgL_carzd21623zd2_851); 
if(BgL_test2990z00_852)
{ /* ./Module/foreign.scm 227 */
bool_t BgL_test2991z00_853;
{ /* ./Module/foreign.scm 227 */
obj_t BgL_auxz00_2960;
BgL_auxz00_2960 = 
CDR(BgL_cdrzd21620zd2_849); 
BgL_test2991z00_853 = 
NULLP(BgL_auxz00_2960); } 
if(BgL_test2991z00_853)
{ /* ./Module/foreign.scm 227 */
obj_t BgL_arg2993z00_854;
BgL_arg2993z00_854 = 
CAR(BgL_cdrzd21613zd2_846); 
{ 
obj_t BgL_namez00_2967;obj_t BgL_tzd2expzd2_2966;obj_t BgL_idz00_2965;
BgL_idz00_2965 = BgL_carzd21612zd2_845; 
BgL_tzd2expzd2_2966 = BgL_arg2993z00_854; 
BgL_namez00_2967 = BgL_carzd21623zd2_851; 
BgL_namez00_806 = BgL_namez00_2967; 
BgL_tzd2expzd2_805 = BgL_tzd2expzd2_2966; 
BgL_idz00_804 = BgL_idz00_2965; 
goto BgL_tagzd21505zd2_807;} }  else 
{ /* ./Module/foreign.scm 227 */
goto BgL_tagzd21506zd2_808;} }  else 
{ /* ./Module/foreign.scm 227 */
goto BgL_tagzd21506zd2_808;} } }  else 
{ /* ./Module/foreign.scm 227 */
goto BgL_tagzd21506zd2_808;} } }  else 
{ /* ./Module/foreign.scm 227 */
goto BgL_tagzd21506zd2_808;} }  else 
{ /* ./Module/foreign.scm 227 */
goto BgL_tagzd21506zd2_808;} } } } }  else 
{ /* ./Module/foreign.scm 227 */
goto BgL_tagzd21506zd2_808;} }  else 
{ /* ./Module/foreign.scm 227 */
goto BgL_tagzd21506zd2_808;} } }  else 
{ /* ./Module/foreign.scm 227 */
goto BgL_tagzd21506zd2_808;} } } } 
}



/* check-c-foreign-type-exp? */
bool_t BGl_checkzd2czd2foreignzd2typezd2expzf3zf3zzmodule_foreignz00(obj_t BgL_tzd2expzd2_25)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 255 */
{ 
obj_t BgL_slotsz00_890;obj_t BgL_slotsz00_882;
if(
SYMBOLP(BgL_tzd2expzd2_25))
{ /* ./Module/foreign.scm 256 */
return ((bool_t)1);}  else 
{ /* ./Module/foreign.scm 256 */
if(
PAIRP(BgL_tzd2expzd2_25))
{ /* ./Module/foreign.scm 256 */
obj_t BgL_carzd21661zd2_896;
BgL_carzd21661zd2_896 = 
CAR(BgL_tzd2expzd2_25); 
{ 

{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_2973;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_2974;
BgL_auxz00_2974 = 
CNST_TABLE_REF(((long)11)); 
BgL_testz00_2973 = 
(BgL_carzd21661zd2_896==BgL_auxz00_2974); } 
if(BgL_testz00_2973)
{ /* ./Module/foreign.scm 256 */
BgL_kapzd21663zd2_897:
BgL_slotsz00_882 = 
CDR(BgL_tzd2expzd2_25); 
{ 
obj_t BgL_slotsz00_1014;
BgL_slotsz00_1014 = BgL_slotsz00_882; 
BgL_loopz00_1015:
if(
NULLP(BgL_slotsz00_1014))
{ /* ./Module/foreign.scm 261 */
return ((bool_t)1);}  else 
{ 

{ /* ./Module/foreign.scm 263 */
obj_t BgL_ezd21915zd2_1019;
BgL_ezd21915zd2_1019 = 
CAR(BgL_slotsz00_1014); 
if(
PAIRP(BgL_ezd21915zd2_1019))
{ /* ./Module/foreign.scm 263 */
obj_t BgL_cdrzd21917zd2_1021;
BgL_cdrzd21917zd2_1021 = 
CDR(BgL_ezd21915zd2_1019); 
{ /* ./Module/foreign.scm 263 */
bool_t BgL_testz00_2983;
{ /* ./Module/foreign.scm 263 */
obj_t BgL_auxz00_2984;
BgL_auxz00_2984 = 
CAR(BgL_ezd21915zd2_1019); 
BgL_testz00_2983 = 
SYMBOLP(BgL_auxz00_2984); } 
if(BgL_testz00_2983)
{ /* ./Module/foreign.scm 263 */
if(
PAIRP(BgL_cdrzd21917zd2_1021))
{ /* ./Module/foreign.scm 263 */
obj_t BgL_cdrzd21919zd2_1024;
BgL_cdrzd21919zd2_1024 = 
CDR(BgL_cdrzd21917zd2_1021); 
{ /* ./Module/foreign.scm 263 */
bool_t BgL_testz00_2990;
{ /* ./Module/foreign.scm 263 */
obj_t BgL_auxz00_2991;
BgL_auxz00_2991 = 
CAR(BgL_cdrzd21917zd2_1021); 
BgL_testz00_2990 = 
SYMBOLP(BgL_auxz00_2991); } 
if(BgL_testz00_2990)
{ /* ./Module/foreign.scm 263 */
if(
PAIRP(BgL_cdrzd21919zd2_1024))
{ /* ./Module/foreign.scm 263 */
bool_t BgL_testz00_2996;
{ /* ./Module/foreign.scm 263 */
obj_t BgL_auxz00_2997;
BgL_auxz00_2997 = 
CAR(BgL_cdrzd21919zd2_1024); 
BgL_testz00_2996 = 
STRINGP(BgL_auxz00_2997); } 
if(BgL_testz00_2996)
{ /* ./Module/foreign.scm 263 */
bool_t BgL_testz00_3000;
{ /* ./Module/foreign.scm 263 */
obj_t BgL_auxz00_3001;
BgL_auxz00_3001 = 
CDR(BgL_cdrzd21919zd2_1024); 
BgL_testz00_3000 = 
NULLP(BgL_auxz00_3001); } 
if(BgL_testz00_3000)
{ /* ./Module/foreign.scm 263 */
{ 
obj_t BgL_slotsz00_3004;
BgL_slotsz00_3004 = 
CDR(BgL_slotsz00_1014); 
BgL_slotsz00_1014 = BgL_slotsz00_3004; 
goto BgL_loopz00_1015;} }  else 
{ /* ./Module/foreign.scm 263 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 263 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 263 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 263 */
return ((bool_t)0);} } }  else 
{ /* ./Module/foreign.scm 263 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 263 */
return ((bool_t)0);} } }  else 
{ /* ./Module/foreign.scm 263 */
return ((bool_t)0);} } } } }  else 
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3007;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3008;
BgL_auxz00_3008 = 
CNST_TABLE_REF(((long)12)); 
BgL_testz00_3007 = 
(BgL_carzd21661zd2_896==BgL_auxz00_3008); } 
if(BgL_testz00_3007)
{ /* ./Module/foreign.scm 256 */
goto BgL_kapzd21663zd2_897;}  else 
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3011;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3012;
BgL_auxz00_3012 = 
CNST_TABLE_REF(((long)13)); 
BgL_testz00_3011 = 
(BgL_carzd21661zd2_896==BgL_auxz00_3012); } 
if(BgL_testz00_3011)
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3015;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3016;
BgL_auxz00_3016 = 
CDR(BgL_tzd2expzd2_25); 
BgL_testz00_3015 = 
NULLP(BgL_auxz00_3016); } 
if(BgL_testz00_3015)
{ /* ./Module/foreign.scm 256 */
return ((bool_t)1);}  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 256 */
obj_t BgL_cdrzd21709zd2_910;
BgL_cdrzd21709zd2_910 = 
CDR(BgL_tzd2expzd2_25); 
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3020;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3023;obj_t BgL_auxz00_3021;
BgL_auxz00_3023 = 
CNST_TABLE_REF(((long)14)); 
BgL_auxz00_3021 = 
CAR(BgL_tzd2expzd2_25); 
BgL_testz00_3020 = 
(BgL_auxz00_3021==BgL_auxz00_3023); } 
if(BgL_testz00_3020)
{ /* ./Module/foreign.scm 256 */
if(
PAIRP(BgL_cdrzd21709zd2_910))
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3028;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3029;
BgL_auxz00_3029 = 
CAR(BgL_cdrzd21709zd2_910); 
BgL_testz00_3028 = 
SYMBOLP(BgL_auxz00_3029); } 
if(BgL_testz00_3028)
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3032;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3033;
BgL_auxz00_3033 = 
CDR(BgL_cdrzd21709zd2_910); 
BgL_testz00_3032 = 
NULLP(BgL_auxz00_3033); } 
if(BgL_testz00_3032)
{ /* ./Module/foreign.scm 256 */
return ((bool_t)1);}  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 256 */
obj_t BgL_carzd21760zd2_923;
BgL_carzd21760zd2_923 = 
CAR(BgL_tzd2expzd2_25); 
{ 

{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3037;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3038;
BgL_auxz00_3038 = 
CNST_TABLE_REF(((long)18)); 
BgL_testz00_3037 = 
(BgL_carzd21760zd2_923==BgL_auxz00_3038); } 
if(BgL_testz00_3037)
{ /* ./Module/foreign.scm 256 */
BgL_kapzd21762zd2_925:
if(
PAIRP(BgL_cdrzd21709zd2_910))
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3043;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3044;
BgL_auxz00_3044 = 
CAR(BgL_cdrzd21709zd2_910); 
BgL_testz00_3043 = 
SYMBOLP(BgL_auxz00_3044); } 
if(BgL_testz00_3043)
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3047;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3048;
BgL_auxz00_3048 = 
CDR(BgL_cdrzd21709zd2_910); 
BgL_testz00_3047 = 
NULLP(BgL_auxz00_3048); } 
if(BgL_testz00_3047)
{ /* ./Module/foreign.scm 256 */
return ((bool_t)1);}  else 
{ /* ./Module/foreign.scm 256 */
obj_t BgL_cdrzd21771zd2_959;
BgL_cdrzd21771zd2_959 = 
CDR(BgL_tzd2expzd2_25); 
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3052;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3055;obj_t BgL_auxz00_3053;
BgL_auxz00_3055 = 
CNST_TABLE_REF(((long)15)); 
BgL_auxz00_3053 = 
CAR(BgL_tzd2expzd2_25); 
BgL_testz00_3052 = 
(BgL_auxz00_3053==BgL_auxz00_3055); } 
if(BgL_testz00_3052)
{ /* ./Module/foreign.scm 256 */
obj_t BgL_cdrzd21774zd2_961;
BgL_cdrzd21774zd2_961 = 
CDR(BgL_cdrzd21771zd2_959); 
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3059;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3060;
BgL_auxz00_3060 = 
CAR(BgL_cdrzd21771zd2_959); 
BgL_testz00_3059 = 
SYMBOLP(BgL_auxz00_3060); } 
if(BgL_testz00_3059)
{ /* ./Module/foreign.scm 256 */
if(
PAIRP(BgL_cdrzd21774zd2_961))
{ /* ./Module/foreign.scm 256 */
obj_t BgL_carzd21776zd2_964;
BgL_carzd21776zd2_964 = 
CAR(BgL_cdrzd21774zd2_961); 
{ 

if(
NULLP(BgL_carzd21776zd2_964))
{ /* ./Module/foreign.scm 256 */
BgL_kapzd21780zd2_965:
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3068;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3069;
BgL_auxz00_3069 = 
CDR(BgL_cdrzd21774zd2_961); 
BgL_testz00_3068 = 
NULLP(BgL_auxz00_3069); } 
if(BgL_testz00_3068)
{ /* ./Module/foreign.scm 256 */
return 
BGl_checkzd2czd2argszf3zf3zzmodule_foreignz00(BgL_carzd21776zd2_964);}  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} } }  else 
{ /* ./Module/foreign.scm 256 */
if(
PAIRP(BgL_carzd21776zd2_964))
{ /* ./Module/foreign.scm 256 */
goto BgL_kapzd21780zd2_965;}  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} } } }  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} } }  else 
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3075;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3078;obj_t BgL_auxz00_3076;
BgL_auxz00_3078 = 
CNST_TABLE_REF(((long)16)); 
BgL_auxz00_3076 = 
CAR(BgL_tzd2expzd2_25); 
BgL_testz00_3075 = 
(BgL_auxz00_3076==BgL_auxz00_3078); } 
if(BgL_testz00_3075)
{ /* ./Module/foreign.scm 256 */
BgL_slotsz00_890 = BgL_cdrzd21771zd2_959; 
BgL_tagzd21653zd2_891:
{ 
obj_t BgL_slotsz00_1034;
BgL_slotsz00_1034 = BgL_slotsz00_890; 
BgL_loopz00_1035:
if(
NULLP(BgL_slotsz00_1034))
{ /* ./Module/foreign.scm 280 */
return ((bool_t)1);}  else 
{ 

{ /* ./Module/foreign.scm 282 */
obj_t BgL_ezd21924zd2_1039;
BgL_ezd21924zd2_1039 = 
CAR(BgL_slotsz00_1034); 
if(
PAIRP(BgL_ezd21924zd2_1039))
{ /* ./Module/foreign.scm 282 */
obj_t BgL_cdrzd21926zd2_1041;
BgL_cdrzd21926zd2_1041 = 
CDR(BgL_ezd21924zd2_1039); 
{ /* ./Module/foreign.scm 282 */
bool_t BgL_testz00_3087;
{ /* ./Module/foreign.scm 282 */
obj_t BgL_auxz00_3088;
BgL_auxz00_3088 = 
CAR(BgL_ezd21924zd2_1039); 
BgL_testz00_3087 = 
SYMBOLP(BgL_auxz00_3088); } 
if(BgL_testz00_3087)
{ /* ./Module/foreign.scm 282 */
if(
PAIRP(BgL_cdrzd21926zd2_1041))
{ /* ./Module/foreign.scm 282 */
bool_t BgL_testz00_3093;
{ /* ./Module/foreign.scm 282 */
obj_t BgL_auxz00_3094;
BgL_auxz00_3094 = 
CAR(BgL_cdrzd21926zd2_1041); 
BgL_testz00_3093 = 
STRINGP(BgL_auxz00_3094); } 
if(BgL_testz00_3093)
{ /* ./Module/foreign.scm 282 */
bool_t BgL_testz00_3097;
{ /* ./Module/foreign.scm 282 */
obj_t BgL_auxz00_3098;
BgL_auxz00_3098 = 
CDR(BgL_cdrzd21926zd2_1041); 
BgL_testz00_3097 = 
NULLP(BgL_auxz00_3098); } 
if(BgL_testz00_3097)
{ /* ./Module/foreign.scm 282 */
{ 
obj_t BgL_slotsz00_3101;
BgL_slotsz00_3101 = 
CDR(BgL_slotsz00_1034); 
BgL_slotsz00_1034 = BgL_slotsz00_3101; 
goto BgL_loopz00_1035;} }  else 
{ /* ./Module/foreign.scm 282 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 282 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 282 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 282 */
return ((bool_t)0);} } }  else 
{ /* ./Module/foreign.scm 282 */
return ((bool_t)0);} } } } }  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} } } } }  else 
{ /* ./Module/foreign.scm 256 */
obj_t BgL_cdrzd21798zd2_978;
BgL_cdrzd21798zd2_978 = 
CDR(BgL_tzd2expzd2_25); 
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3104;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3107;obj_t BgL_auxz00_3105;
BgL_auxz00_3107 = 
CNST_TABLE_REF(((long)17)); 
BgL_auxz00_3105 = 
CAR(BgL_tzd2expzd2_25); 
BgL_testz00_3104 = 
(BgL_auxz00_3105==BgL_auxz00_3107); } 
if(BgL_testz00_3104)
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3110;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3111;
BgL_auxz00_3111 = 
CAR(BgL_cdrzd21798zd2_978); 
BgL_testz00_3110 = 
SYMBOLP(BgL_auxz00_3111); } 
if(BgL_testz00_3110)
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3114;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3115;
BgL_auxz00_3115 = 
CDR(BgL_cdrzd21798zd2_978); 
BgL_testz00_3114 = 
NULLP(BgL_auxz00_3115); } 
if(BgL_testz00_3114)
{ /* ./Module/foreign.scm 256 */
return ((bool_t)1);}  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3118;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3121;obj_t BgL_auxz00_3119;
BgL_auxz00_3121 = 
CNST_TABLE_REF(((long)15)); 
BgL_auxz00_3119 = 
CAR(BgL_tzd2expzd2_25); 
BgL_testz00_3118 = 
(BgL_auxz00_3119==BgL_auxz00_3121); } 
if(BgL_testz00_3118)
{ /* ./Module/foreign.scm 256 */
obj_t BgL_cdrzd21818zd2_986;
BgL_cdrzd21818zd2_986 = 
CDR(BgL_cdrzd21798zd2_978); 
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3125;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3126;
BgL_auxz00_3126 = 
CAR(BgL_cdrzd21798zd2_978); 
BgL_testz00_3125 = 
SYMBOLP(BgL_auxz00_3126); } 
if(BgL_testz00_3125)
{ /* ./Module/foreign.scm 256 */
if(
PAIRP(BgL_cdrzd21818zd2_986))
{ /* ./Module/foreign.scm 256 */
obj_t BgL_carzd21820zd2_989;
BgL_carzd21820zd2_989 = 
CAR(BgL_cdrzd21818zd2_986); 
{ 

if(
NULLP(BgL_carzd21820zd2_989))
{ /* ./Module/foreign.scm 256 */
BgL_kapzd21824zd2_990:
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3134;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3135;
BgL_auxz00_3135 = 
CDR(BgL_cdrzd21818zd2_986); 
BgL_testz00_3134 = 
NULLP(BgL_auxz00_3135); } 
if(BgL_testz00_3134)
{ /* ./Module/foreign.scm 256 */
return 
BGl_checkzd2czd2argszf3zf3zzmodule_foreignz00(BgL_carzd21820zd2_989);}  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} } }  else 
{ /* ./Module/foreign.scm 256 */
if(
PAIRP(BgL_carzd21820zd2_989))
{ /* ./Module/foreign.scm 256 */
goto BgL_kapzd21824zd2_990;}  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} } } }  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} } }  else 
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3141;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3144;obj_t BgL_auxz00_3142;
BgL_auxz00_3144 = 
CNST_TABLE_REF(((long)16)); 
BgL_auxz00_3142 = 
CAR(BgL_tzd2expzd2_25); 
BgL_testz00_3141 = 
(BgL_auxz00_3142==BgL_auxz00_3144); } 
if(BgL_testz00_3141)
{ 
obj_t BgL_slotsz00_3147;
BgL_slotsz00_3147 = 
CDR(BgL_tzd2expzd2_25); 
BgL_slotsz00_890 = BgL_slotsz00_3147; 
goto BgL_tagzd21653zd2_891;}  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} } } } } }  else 
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3149;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3152;obj_t BgL_auxz00_3150;
BgL_auxz00_3152 = 
CNST_TABLE_REF(((long)16)); 
BgL_auxz00_3150 = 
CAR(BgL_tzd2expzd2_25); 
BgL_testz00_3149 = 
(BgL_auxz00_3150==BgL_auxz00_3152); } 
if(BgL_testz00_3149)
{ 
obj_t BgL_slotsz00_3155;
BgL_slotsz00_3155 = 
CDR(BgL_tzd2expzd2_25); 
BgL_slotsz00_890 = BgL_slotsz00_3155; 
goto BgL_tagzd21653zd2_891;}  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} } }  else 
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3157;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3158;
BgL_auxz00_3158 = 
CNST_TABLE_REF(((long)19)); 
BgL_testz00_3157 = 
(BgL_carzd21760zd2_923==BgL_auxz00_3158); } 
if(BgL_testz00_3157)
{ /* ./Module/foreign.scm 256 */
goto BgL_kapzd21762zd2_925;}  else 
{ /* ./Module/foreign.scm 256 */
obj_t BgL_cdrzd21852zd2_928;
BgL_cdrzd21852zd2_928 = 
CDR(BgL_tzd2expzd2_25); 
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3162;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3165;obj_t BgL_auxz00_3163;
BgL_auxz00_3165 = 
CNST_TABLE_REF(((long)17)); 
BgL_auxz00_3163 = 
CAR(BgL_tzd2expzd2_25); 
BgL_testz00_3162 = 
(BgL_auxz00_3163==BgL_auxz00_3165); } 
if(BgL_testz00_3162)
{ /* ./Module/foreign.scm 256 */
if(
PAIRP(BgL_cdrzd21852zd2_928))
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3170;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3171;
BgL_auxz00_3171 = 
CAR(BgL_cdrzd21852zd2_928); 
BgL_testz00_3170 = 
SYMBOLP(BgL_auxz00_3171); } 
if(BgL_testz00_3170)
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3174;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3175;
BgL_auxz00_3175 = 
CDR(BgL_cdrzd21852zd2_928); 
BgL_testz00_3174 = 
NULLP(BgL_auxz00_3175); } 
if(BgL_testz00_3174)
{ /* ./Module/foreign.scm 256 */
return ((bool_t)1);}  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3178;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3181;obj_t BgL_auxz00_3179;
BgL_auxz00_3181 = 
CNST_TABLE_REF(((long)15)); 
BgL_auxz00_3179 = 
CAR(BgL_tzd2expzd2_25); 
BgL_testz00_3178 = 
(BgL_auxz00_3179==BgL_auxz00_3181); } 
if(BgL_testz00_3178)
{ /* ./Module/foreign.scm 256 */
if(
PAIRP(BgL_cdrzd21852zd2_928))
{ /* ./Module/foreign.scm 256 */
obj_t BgL_cdrzd21877zd2_938;
BgL_cdrzd21877zd2_938 = 
CDR(BgL_cdrzd21852zd2_928); 
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3187;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3188;
BgL_auxz00_3188 = 
CAR(BgL_cdrzd21852zd2_928); 
BgL_testz00_3187 = 
SYMBOLP(BgL_auxz00_3188); } 
if(BgL_testz00_3187)
{ /* ./Module/foreign.scm 256 */
if(
PAIRP(BgL_cdrzd21877zd2_938))
{ /* ./Module/foreign.scm 256 */
obj_t BgL_carzd21879zd2_941;
BgL_carzd21879zd2_941 = 
CAR(BgL_cdrzd21877zd2_938); 
{ 

if(
NULLP(BgL_carzd21879zd2_941))
{ /* ./Module/foreign.scm 256 */
BgL_kapzd21883zd2_942:
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3196;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3197;
BgL_auxz00_3197 = 
CDR(BgL_cdrzd21877zd2_938); 
BgL_testz00_3196 = 
NULLP(BgL_auxz00_3197); } 
if(BgL_testz00_3196)
{ /* ./Module/foreign.scm 256 */
return 
BGl_checkzd2czd2argszf3zf3zzmodule_foreignz00(BgL_carzd21879zd2_941);}  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} } }  else 
{ /* ./Module/foreign.scm 256 */
if(
PAIRP(BgL_carzd21879zd2_941))
{ /* ./Module/foreign.scm 256 */
goto BgL_kapzd21883zd2_942;}  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} } } }  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} } }  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} }  else 
{ /* ./Module/foreign.scm 256 */
bool_t BgL_testz00_3203;
{ /* ./Module/foreign.scm 256 */
obj_t BgL_auxz00_3206;obj_t BgL_auxz00_3204;
BgL_auxz00_3206 = 
CNST_TABLE_REF(((long)16)); 
BgL_auxz00_3204 = 
CAR(BgL_tzd2expzd2_25); 
BgL_testz00_3203 = 
(BgL_auxz00_3204==BgL_auxz00_3206); } 
if(BgL_testz00_3203)
{ 
obj_t BgL_slotsz00_3209;
BgL_slotsz00_3209 = 
CDR(BgL_tzd2expzd2_25); 
BgL_slotsz00_890 = BgL_slotsz00_3209; 
goto BgL_tagzd21653zd2_891;}  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} } } } } } } } } } } } } } } }  else 
{ /* ./Module/foreign.scm 256 */
return ((bool_t)0);} } } } 
}



/* parse-c-extern-type */
obj_t BGl_parsezd2czd2externzd2typezd2zzmodule_foreignz00(obj_t BgL_typez00_26)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 293 */
{ 
obj_t BgL_idz00_1053;obj_t BgL_tzd2expzd2_1054;
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3455z00_1058;
BgL_test3455z00_1058 = 
PAIRP(BgL_typez00_26); 
if(BgL_test3455z00_1058)
{ /* ./Module/foreign.scm 294 */
obj_t BgL_cdrzd21939zd2_1059;
BgL_cdrzd21939zd2_1059 = 
CDR(BgL_typez00_26); 
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3456z00_1060;
{ /* ./Module/foreign.scm 294 */
obj_t BgL_auxz00_3216;obj_t BgL_auxz00_3214;
BgL_auxz00_3216 = 
CNST_TABLE_REF(((long)6)); 
BgL_auxz00_3214 = 
CAR(BgL_typez00_26); 
BgL_test3456z00_1060 = 
(BgL_auxz00_3214==BgL_auxz00_3216); } 
if(BgL_test3456z00_1060)
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3457z00_1061;
BgL_test3457z00_1061 = 
PAIRP(BgL_cdrzd21939zd2_1059); 
if(BgL_test3457z00_1061)
{ /* ./Module/foreign.scm 294 */
obj_t BgL_carzd21942zd2_1062;obj_t BgL_cdrzd21943zd2_1063;
BgL_carzd21942zd2_1062 = 
CAR(BgL_cdrzd21939zd2_1059); 
BgL_cdrzd21943zd2_1063 = 
CDR(BgL_cdrzd21939zd2_1059); 
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3458z00_1064;
BgL_test3458z00_1064 = 
SYMBOLP(BgL_carzd21942zd2_1062); 
if(BgL_test3458z00_1064)
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3459z00_1065;
BgL_test3459z00_1065 = 
PAIRP(BgL_cdrzd21943zd2_1063); 
if(BgL_test3459z00_1065)
{ /* ./Module/foreign.scm 294 */
obj_t BgL_carzd21948zd2_1066;
BgL_carzd21948zd2_1066 = 
CAR(BgL_cdrzd21943zd2_1063); 
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3460z00_1067;
BgL_test3460z00_1067 = 
STRINGP(BgL_carzd21948zd2_1066); 
if(BgL_test3460z00_1067)
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3461z00_1068;
{ /* ./Module/foreign.scm 294 */
obj_t BgL_auxz00_3231;
BgL_auxz00_3231 = 
CDR(BgL_cdrzd21943zd2_1063); 
BgL_test3461z00_1068 = 
NULLP(BgL_auxz00_3231); } 
if(BgL_test3461z00_1068)
{ /* ./Module/foreign.scm 294 */
return 
BGl_parsezd2czd2foreignzd2typezd2zzmodule_foreignz00(BgL_typez00_26);}  else 
{ /* ./Module/foreign.scm 294 */
obj_t BgL_carzd21965zd2_1070;obj_t BgL_cdrzd21966zd2_1071;
BgL_carzd21965zd2_1070 = 
CAR(BgL_cdrzd21939zd2_1059); 
BgL_cdrzd21966zd2_1071 = 
CDR(BgL_cdrzd21939zd2_1059); 
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3463z00_1072;
BgL_test3463z00_1072 = 
SYMBOLP(BgL_carzd21965zd2_1070); 
if(BgL_test3463z00_1072)
{ /* ./Module/foreign.scm 294 */
obj_t BgL_cdrzd21975zd2_1073;
BgL_cdrzd21975zd2_1073 = 
CDR(BgL_cdrzd21966zd2_1071); 
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3464z00_1074;
BgL_test3464z00_1074 = 
PAIRP(BgL_cdrzd21975zd2_1073); 
if(BgL_test3464z00_1074)
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3465z00_1075;
{ /* ./Module/foreign.scm 294 */
obj_t BgL_auxz00_3243;
BgL_auxz00_3243 = 
CAR(BgL_cdrzd21975zd2_1073); 
BgL_test3465z00_1075 = 
STRINGP(BgL_auxz00_3243); } 
if(BgL_test3465z00_1075)
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3466z00_1076;
{ /* ./Module/foreign.scm 294 */
obj_t BgL_auxz00_3247;
BgL_auxz00_3247 = 
CDR(BgL_cdrzd21975zd2_1073); 
BgL_test3466z00_1076 = 
NULLP(BgL_auxz00_3247); } 
if(BgL_test3466z00_1076)
{ /* ./Module/foreign.scm 294 */
obj_t BgL_arg3468z00_1077;
BgL_arg3468z00_1077 = 
CAR(BgL_cdrzd21966zd2_1071); 
BgL_idz00_1053 = BgL_carzd21965zd2_1070; 
BgL_tzd2expzd2_1054 = BgL_arg3468z00_1077; 
BgL_tagzd21930zd2_1055:
{ /* ./Module/foreign.scm 298 */
obj_t BgL_foreignzd2typezd2_1106;
BgL_foreignzd2typezd2_1106 = 
BGl_czd2externzd2typezd2ze3czd2foreignzd2typez31zzmodule_foreignz00(BgL_tzd2expzd2_1054); 
if(
CBOOL(BgL_foreignzd2typezd2_1106))
{ /* ./Module/foreign.scm 299 */
return 
BGl_parsezd2czd2foreignzd2typezd2zzmodule_foreignz00(BgL_typez00_26);}  else 
{ /* ./Module/foreign.scm 301 */
obj_t BgL_list3571z00_1107;
BgL_list3571z00_1107 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4351z00zzmodule_foreignz00, BgL_typez00_26, BgL_list3571z00_1107);} } }  else 
{ /* ./Module/foreign.scm 294 */
BgL_tagzd21931zd2_1056:
{ /* ./Module/foreign.scm 303 */
obj_t BgL_list3575z00_1108;
BgL_list3575z00_1108 = 
MAKE_PAIR(BNIL, BNIL); 
return 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4341z00zzmodule_foreignz00, BGl_string4351z00zzmodule_foreignz00, BgL_typez00_26, BgL_list3575z00_1108);} } }  else 
{ /* ./Module/foreign.scm 294 */
goto BgL_tagzd21931zd2_1056;} }  else 
{ /* ./Module/foreign.scm 294 */
goto BgL_tagzd21931zd2_1056;} } }  else 
{ /* ./Module/foreign.scm 294 */
goto BgL_tagzd21931zd2_1056;} } } }  else 
{ /* ./Module/foreign.scm 294 */
obj_t BgL_carzd21990zd2_1082;obj_t BgL_cdrzd21991zd2_1083;
BgL_carzd21990zd2_1082 = 
CAR(BgL_cdrzd21939zd2_1059); 
BgL_cdrzd21991zd2_1083 = 
CDR(BgL_cdrzd21939zd2_1059); 
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3493z00_1084;
BgL_test3493z00_1084 = 
SYMBOLP(BgL_carzd21990zd2_1082); 
if(BgL_test3493z00_1084)
{ /* ./Module/foreign.scm 294 */
obj_t BgL_cdrzd21999zd2_1085;
BgL_cdrzd21999zd2_1085 = 
CDR(BgL_cdrzd21991zd2_1083); 
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3494z00_1086;
BgL_test3494z00_1086 = 
PAIRP(BgL_cdrzd21999zd2_1085); 
if(BgL_test3494z00_1086)
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3495z00_1087;
{ /* ./Module/foreign.scm 294 */
obj_t BgL_auxz00_3267;
BgL_auxz00_3267 = 
CAR(BgL_cdrzd21999zd2_1085); 
BgL_test3495z00_1087 = 
STRINGP(BgL_auxz00_3267); } 
if(BgL_test3495z00_1087)
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3496z00_1088;
{ /* ./Module/foreign.scm 294 */
obj_t BgL_auxz00_3271;
BgL_auxz00_3271 = 
CDR(BgL_cdrzd21999zd2_1085); 
BgL_test3496z00_1088 = 
NULLP(BgL_auxz00_3271); } 
if(BgL_test3496z00_1088)
{ /* ./Module/foreign.scm 294 */
obj_t BgL_arg3498z00_1089;
BgL_arg3498z00_1089 = 
CAR(BgL_cdrzd21991zd2_1083); 
{ 
obj_t BgL_tzd2expzd2_3277;obj_t BgL_idz00_3276;
BgL_idz00_3276 = BgL_carzd21990zd2_1082; 
BgL_tzd2expzd2_3277 = BgL_arg3498z00_1089; 
BgL_tzd2expzd2_1054 = BgL_tzd2expzd2_3277; 
BgL_idz00_1053 = BgL_idz00_3276; 
goto BgL_tagzd21930zd2_1055;} }  else 
{ /* ./Module/foreign.scm 294 */
goto BgL_tagzd21931zd2_1056;} }  else 
{ /* ./Module/foreign.scm 294 */
goto BgL_tagzd21931zd2_1056;} }  else 
{ /* ./Module/foreign.scm 294 */
goto BgL_tagzd21931zd2_1056;} } }  else 
{ /* ./Module/foreign.scm 294 */
goto BgL_tagzd21931zd2_1056;} } } } }  else 
{ /* ./Module/foreign.scm 294 */
goto BgL_tagzd21931zd2_1056;} }  else 
{ /* ./Module/foreign.scm 294 */
obj_t BgL_carzd22016zd2_1093;obj_t BgL_cdrzd22017zd2_1094;
BgL_carzd22016zd2_1093 = 
CAR(BgL_cdrzd21939zd2_1059); 
BgL_cdrzd22017zd2_1094 = 
CDR(BgL_cdrzd21939zd2_1059); 
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3523z00_1095;
BgL_test3523z00_1095 = 
SYMBOLP(BgL_carzd22016zd2_1093); 
if(BgL_test3523z00_1095)
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3524z00_1096;
BgL_test3524z00_1096 = 
PAIRP(BgL_cdrzd22017zd2_1094); 
if(BgL_test3524z00_1096)
{ /* ./Module/foreign.scm 294 */
obj_t BgL_cdrzd22023zd2_1097;
BgL_cdrzd22023zd2_1097 = 
CDR(BgL_cdrzd22017zd2_1094); 
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3525z00_1098;
BgL_test3525z00_1098 = 
PAIRP(BgL_cdrzd22023zd2_1097); 
if(BgL_test3525z00_1098)
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3526z00_1099;
{ /* ./Module/foreign.scm 294 */
obj_t BgL_auxz00_3287;
BgL_auxz00_3287 = 
CAR(BgL_cdrzd22023zd2_1097); 
BgL_test3526z00_1099 = 
STRINGP(BgL_auxz00_3287); } 
if(BgL_test3526z00_1099)
{ /* ./Module/foreign.scm 294 */
bool_t BgL_test3527z00_1100;
{ /* ./Module/foreign.scm 294 */
obj_t BgL_auxz00_3291;
BgL_auxz00_3291 = 
CDR(BgL_cdrzd22023zd2_1097); 
BgL_test3527z00_1100 = 
NULLP(BgL_auxz00_3291); } 
if(BgL_test3527z00_1100)
{ /* ./Module/foreign.scm 294 */
obj_t BgL_arg3529z00_1101;
BgL_arg3529z00_1101 = 
CAR(BgL_cdrzd22017zd2_1094); 
{ 
obj_t BgL_tzd2expzd2_3297;obj_t BgL_idz00_3296;
BgL_idz00_3296 = BgL_carzd22016zd2_1093; 
BgL_tzd2expzd2_3297 = BgL_arg3529z00_1101; 
BgL_tzd2expzd2_1054 = BgL_tzd2expzd2_3297; 
BgL_idz00_1053 = BgL_idz00_3296; 
goto BgL_tagzd21930zd2_1055;} }  else 
{ /* ./Module/foreign.scm 294 */
goto BgL_tagzd21931zd2_1056;} }  else 
{ /* ./Module/foreign.scm 294 */
goto BgL_tagzd21931zd2_1056;} }  else 
{ /* ./Module/foreign.scm 294 */
goto BgL_tagzd21931zd2_1056;} } }  else 
{ /* ./Module/foreign.scm 294 */
goto BgL_tagzd21931zd2_1056;} }  else 
{ /* ./Module/foreign.scm 294 */
goto BgL_tagzd21931zd2_1056;} } } } }  else 
{ /* ./Module/foreign.scm 294 */
goto BgL_tagzd21931zd2_1056;} }  else 
{ /* ./Module/foreign.scm 294 */
goto BgL_tagzd21931zd2_1056;} } }  else 
{ /* ./Module/foreign.scm 294 */
goto BgL_tagzd21931zd2_1056;} } } } 
}



/* c-extern-type->c-foreign-type */
obj_t BGl_czd2externzd2typezd2ze3czd2foreignzd2typez31zzmodule_foreignz00(obj_t BgL_tzd2expzd2_27)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 308 */
{ 
obj_t BgL_slotsz00_1117;obj_t BgL_slotsz00_1110;
{ /* ./Module/foreign.scm 309 */
bool_t BgL_test3577z00_1122;
BgL_test3577z00_1122 = 
SYMBOLP(BgL_tzd2expzd2_27); 
if(BgL_test3577z00_1122)
{ /* ./Module/foreign.scm 309 */
return BgL_tzd2expzd2_27;}  else 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_test3579z00_1123;
BgL_test3579z00_1123 = 
PAIRP(BgL_tzd2expzd2_27); 
if(BgL_test3579z00_1123)
{ /* ./Module/foreign.scm 309 */
obj_t BgL_carzd22054zd2_1124;
BgL_carzd22054zd2_1124 = 
CAR(BgL_tzd2expzd2_27); 
{ 

{ /* ./Module/foreign.scm 309 */
bool_t BgL_test3580z00_1126;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3303;
BgL_auxz00_3303 = 
CNST_TABLE_REF(((long)11)); 
BgL_test3580z00_1126 = 
(BgL_carzd22054zd2_1124==BgL_auxz00_3303); } 
if(BgL_test3580z00_1126)
{ /* ./Module/foreign.scm 309 */
BgL_kapzd22056zd2_1125:
{ /* ./Module/foreign.scm 309 */
obj_t BgL_arg3858z00_1239;
BgL_arg3858z00_1239 = 
CDR(BgL_tzd2expzd2_27); 
BgL_slotsz00_1110 = BgL_arg3858z00_1239; 
{ 
obj_t BgL_slotsz00_1240;
BgL_slotsz00_1240 = BgL_slotsz00_1110; 
BgL_loopz00_1241:
{ /* ./Module/foreign.scm 314 */
bool_t BgL_test3866z00_1242;
BgL_test3866z00_1242 = 
NULLP(BgL_slotsz00_1240); 
if(BgL_test3866z00_1242)
{ /* ./Module/foreign.scm 314 */
return BgL_tzd2expzd2_27;}  else 
{ 
obj_t BgL_idz00_1243;obj_t BgL_namez00_1244;
{ /* ./Module/foreign.scm 316 */
obj_t BgL_ezd22269zd2_1247;
BgL_ezd22269zd2_1247 = 
CAR(BgL_slotsz00_1240); 
{ /* ./Module/foreign.scm 316 */
bool_t BgL_test3867z00_1248;
BgL_test3867z00_1248 = 
PAIRP(BgL_ezd22269zd2_1247); 
if(BgL_test3867z00_1248)
{ /* ./Module/foreign.scm 316 */
obj_t BgL_carzd22274zd2_1249;obj_t BgL_cdrzd22275zd2_1250;
BgL_carzd22274zd2_1249 = 
CAR(BgL_ezd22269zd2_1247); 
BgL_cdrzd22275zd2_1250 = 
CDR(BgL_ezd22269zd2_1247); 
{ /* ./Module/foreign.scm 316 */
bool_t BgL_test3868z00_1251;
BgL_test3868z00_1251 = 
SYMBOLP(BgL_carzd22274zd2_1249); 
if(BgL_test3868z00_1251)
{ /* ./Module/foreign.scm 316 */
bool_t BgL_test3869z00_1252;
BgL_test3869z00_1252 = 
PAIRP(BgL_cdrzd22275zd2_1250); 
if(BgL_test3869z00_1252)
{ /* ./Module/foreign.scm 316 */
obj_t BgL_carzd22279zd2_1253;
BgL_carzd22279zd2_1253 = 
CAR(BgL_cdrzd22275zd2_1250); 
{ /* ./Module/foreign.scm 316 */
bool_t BgL_test3870z00_1254;
BgL_test3870z00_1254 = 
STRINGP(BgL_carzd22279zd2_1253); 
if(BgL_test3870z00_1254)
{ /* ./Module/foreign.scm 316 */
bool_t BgL_test3871z00_1255;
{ /* ./Module/foreign.scm 316 */
obj_t BgL_auxz00_3322;
BgL_auxz00_3322 = 
CDR(BgL_cdrzd22275zd2_1250); 
BgL_test3871z00_1255 = 
NULLP(BgL_auxz00_3322); } 
if(BgL_test3871z00_1255)
{ /* ./Module/foreign.scm 316 */
BgL_idz00_1243 = BgL_carzd22274zd2_1249; 
BgL_namez00_1244 = BgL_carzd22279zd2_1253; 
{ /* ./Module/foreign.scm 318 */
obj_t BgL_pidz00_1257;
{ /* ./Module/foreign.scm 318 */
obj_t BgL_arg3915z00_1267;
BgL_arg3915z00_1267 = 
BGl_findzd2locationzd2zztools_locationz00(BgL_tzd2expzd2_27); 
BgL_pidz00_1257 = 
BGl_parsezd2idzd2zzast_identz00(BgL_idz00_1243, BgL_arg3915z00_1267); } 
{ /* ./Module/foreign.scm 318 */
obj_t BgL_sidz00_1258;
BgL_sidz00_1258 = 
CAR(BgL_pidz00_1257); 
{ /* ./Module/foreign.scm 319 */
obj_t BgL_typez00_1259;
{ /* ./Module/foreign.scm 320 */
BgL_typez00_bglt BgL_obj1023z00_2088;
{ /* ./Module/foreign.scm 320 */
obj_t BgL_auxz00_3329;
BgL_auxz00_3329 = 
CDR(BgL_pidz00_1257); 
BgL_obj1023z00_2088 = 
(BgL_typez00_bglt)(BgL_auxz00_3329); } 
BgL_typez00_1259 = 
(((BgL_typez00_bglt)CREF(BgL_obj1023z00_2088))->BgL_idz00); } 
{ /* ./Module/foreign.scm 320 */

{ /* ./Module/foreign.scm 321 */
bool_t BgL_test3890z00_1260;
{ /* ./Module/foreign.scm 321 */
obj_t BgL_xz00_2180;
BgL_xz00_2180 = 
BGl_checkzd2idzd2zzast_identz00(BgL_pidz00_1257, BgL_tzd2expzd2_27); 
BgL_test3890z00_1260 = ((bool_t)1); } 
if(BgL_test3890z00_1260)
{ /* ./Module/foreign.scm 321 */
{ /* ./Module/foreign.scm 324 */
obj_t BgL_arg3892z00_1261;obj_t BgL_arg3893z00_1262;
BgL_arg3892z00_1261 = 
CAR(BgL_slotsz00_1240); 
{ /* ./Module/foreign.scm 324 */
obj_t BgL_arg3897z00_1263;
BgL_arg3897z00_1263 = 
MAKE_PAIR(BgL_namez00_1244, BNIL); 
BgL_arg3893z00_1262 = 
MAKE_PAIR(BgL_sidz00_1258, BgL_arg3897z00_1263); } 
SET_CDR(BgL_arg3892z00_1261, BgL_arg3893z00_1262); } 
{ /* ./Module/foreign.scm 325 */
obj_t BgL_arg3901z00_1264;
BgL_arg3901z00_1264 = 
CAR(BgL_slotsz00_1240); 
SET_CAR(BgL_arg3901z00_1264, BgL_typez00_1259); } 
{ /* ./Module/foreign.scm 326 */
obj_t BgL_arg3905z00_1265;
BgL_arg3905z00_1265 = 
CDR(BgL_slotsz00_1240); 
{ 
obj_t BgL_slotsz00_3342;
BgL_slotsz00_3342 = BgL_arg3905z00_1265; 
BgL_slotsz00_1240 = BgL_slotsz00_3342; 
goto BgL_loopz00_1241;} } }  else 
{ /* ./Module/foreign.scm 321 */
return BFALSE;} } } } } } }  else 
{ /* ./Module/foreign.scm 316 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 316 */
return BFALSE;} } }  else 
{ /* ./Module/foreign.scm 316 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 316 */
return BFALSE;} } }  else 
{ /* ./Module/foreign.scm 316 */
return BFALSE;} } } } } } } }  else 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_test3582z00_1127;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3343;
BgL_auxz00_3343 = 
CNST_TABLE_REF(((long)12)); 
BgL_test3582z00_1127 = 
(BgL_carzd22054zd2_1124==BgL_auxz00_3343); } 
if(BgL_test3582z00_1127)
{ /* ./Module/foreign.scm 309 */
goto BgL_kapzd22056zd2_1125;}  else 
{ /* ./Module/foreign.scm 309 */
obj_t BgL_cdrzd22061zd2_1128;
BgL_cdrzd22061zd2_1128 = 
CDR(BgL_tzd2expzd2_27); 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3348;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3349;
BgL_auxz00_3349 = 
CNST_TABLE_REF(((long)14)); 
BgL_testz00_3348 = 
(BgL_carzd22054zd2_1124==BgL_auxz00_3349); } 
if(BgL_testz00_3348)
{ /* ./Module/foreign.scm 309 */
if(
PAIRP(BgL_cdrzd22061zd2_1128))
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3354;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3355;
BgL_auxz00_3355 = 
CAR(BgL_cdrzd22061zd2_1128); 
BgL_testz00_3354 = 
SYMBOLP(BgL_auxz00_3355); } 
if(BgL_testz00_3354)
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3358;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3359;
BgL_auxz00_3359 = 
CDR(BgL_cdrzd22061zd2_1128); 
BgL_testz00_3358 = 
NULLP(BgL_auxz00_3359); } 
if(BgL_testz00_3358)
{ /* ./Module/foreign.scm 309 */
return BgL_tzd2expzd2_27;}  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 309 */
obj_t BgL_carzd22112zd2_1141;obj_t BgL_cdrzd22113zd2_1142;
BgL_carzd22112zd2_1141 = 
CAR(BgL_tzd2expzd2_27); 
BgL_cdrzd22113zd2_1142 = 
CDR(BgL_tzd2expzd2_27); 
{ 

{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3364;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3365;
BgL_auxz00_3365 = 
CNST_TABLE_REF(((long)18)); 
BgL_testz00_3364 = 
(BgL_carzd22112zd2_1141==BgL_auxz00_3365); } 
if(BgL_testz00_3364)
{ /* ./Module/foreign.scm 309 */
BgL_kapzd22114zd2_1143:
if(
PAIRP(BgL_cdrzd22113zd2_1142))
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3370;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3371;
BgL_auxz00_3371 = 
CAR(BgL_cdrzd22113zd2_1142); 
BgL_testz00_3370 = 
SYMBOLP(BgL_auxz00_3371); } 
if(BgL_testz00_3370)
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3374;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3375;
BgL_auxz00_3375 = 
CDR(BgL_cdrzd22113zd2_1142); 
BgL_testz00_3374 = 
NULLP(BgL_auxz00_3375); } 
if(BgL_testz00_3374)
{ /* ./Module/foreign.scm 309 */
return BgL_tzd2expzd2_27;}  else 
{ /* ./Module/foreign.scm 309 */
obj_t BgL_cdrzd22123zd2_1182;
BgL_cdrzd22123zd2_1182 = 
CDR(BgL_tzd2expzd2_27); 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3379;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3382;obj_t BgL_auxz00_3380;
BgL_auxz00_3382 = 
CNST_TABLE_REF(((long)15)); 
BgL_auxz00_3380 = 
CAR(BgL_tzd2expzd2_27); 
BgL_testz00_3379 = 
(BgL_auxz00_3380==BgL_auxz00_3382); } 
if(BgL_testz00_3379)
{ /* ./Module/foreign.scm 309 */
obj_t BgL_cdrzd22126zd2_1184;
BgL_cdrzd22126zd2_1184 = 
CDR(BgL_cdrzd22123zd2_1182); 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3386;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3387;
BgL_auxz00_3387 = 
CAR(BgL_cdrzd22123zd2_1182); 
BgL_testz00_3386 = 
SYMBOLP(BgL_auxz00_3387); } 
if(BgL_testz00_3386)
{ /* ./Module/foreign.scm 309 */
if(
PAIRP(BgL_cdrzd22126zd2_1184))
{ /* ./Module/foreign.scm 309 */
obj_t BgL_carzd22128zd2_1187;
BgL_carzd22128zd2_1187 = 
CAR(BgL_cdrzd22126zd2_1184); 
{ 

if(
NULLP(BgL_carzd22128zd2_1187))
{ /* ./Module/foreign.scm 309 */
BgL_kapzd22132zd2_1188:
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3395;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3396;
BgL_auxz00_3396 = 
CDR(BgL_cdrzd22126zd2_1184); 
BgL_testz00_3395 = 
NULLP(BgL_auxz00_3396); } 
if(BgL_testz00_3395)
{ /* ./Module/foreign.scm 309 */
if(
BGl_checkzd2czd2argszf3zf3zzmodule_foreignz00(BgL_carzd22128zd2_1187))
{ /* ./Module/foreign.scm 309 */
return BgL_tzd2expzd2_27;}  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} } }  else 
{ /* ./Module/foreign.scm 309 */
if(
PAIRP(BgL_carzd22128zd2_1187))
{ /* ./Module/foreign.scm 309 */
goto BgL_kapzd22132zd2_1188;}  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} } } }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} } }  else 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3403;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3406;obj_t BgL_auxz00_3404;
BgL_auxz00_3406 = 
CNST_TABLE_REF(((long)16)); 
BgL_auxz00_3404 = 
CAR(BgL_tzd2expzd2_27); 
BgL_testz00_3403 = 
(BgL_auxz00_3404==BgL_auxz00_3406); } 
if(BgL_testz00_3403)
{ /* ./Module/foreign.scm 309 */
BgL_slotsz00_1117 = BgL_cdrzd22123zd2_1182; 
BgL_tagzd22045zd2_1118:
{ 
obj_t BgL_slotsz00_1269;
BgL_slotsz00_1269 = BgL_slotsz00_1117; 
BgL_loopz00_1270:
if(
NULLP(BgL_slotsz00_1269))
{ /* ./Module/foreign.scm 341 */
return BgL_tzd2expzd2_27;}  else 
{ 

{ /* ./Module/foreign.scm 343 */
obj_t BgL_ezd22285zd2_1274;
BgL_ezd22285zd2_1274 = 
CAR(BgL_slotsz00_1269); 
if(
PAIRP(BgL_ezd22285zd2_1274))
{ /* ./Module/foreign.scm 343 */
obj_t BgL_cdrzd22287zd2_1276;
BgL_cdrzd22287zd2_1276 = 
CDR(BgL_ezd22285zd2_1274); 
{ /* ./Module/foreign.scm 343 */
bool_t BgL_testz00_3415;
{ /* ./Module/foreign.scm 343 */
obj_t BgL_auxz00_3416;
BgL_auxz00_3416 = 
CAR(BgL_ezd22285zd2_1274); 
BgL_testz00_3415 = 
SYMBOLP(BgL_auxz00_3416); } 
if(BgL_testz00_3415)
{ /* ./Module/foreign.scm 343 */
if(
PAIRP(BgL_cdrzd22287zd2_1276))
{ /* ./Module/foreign.scm 343 */
bool_t BgL_testz00_3421;
{ /* ./Module/foreign.scm 343 */
obj_t BgL_auxz00_3422;
BgL_auxz00_3422 = 
CAR(BgL_cdrzd22287zd2_1276); 
BgL_testz00_3421 = 
STRINGP(BgL_auxz00_3422); } 
if(BgL_testz00_3421)
{ /* ./Module/foreign.scm 343 */
bool_t BgL_testz00_3425;
{ /* ./Module/foreign.scm 343 */
obj_t BgL_auxz00_3426;
BgL_auxz00_3426 = 
CDR(BgL_cdrzd22287zd2_1276); 
BgL_testz00_3425 = 
NULLP(BgL_auxz00_3426); } 
if(BgL_testz00_3425)
{ /* ./Module/foreign.scm 343 */
{ 
obj_t BgL_slotsz00_3429;
BgL_slotsz00_3429 = 
CDR(BgL_slotsz00_1269); 
BgL_slotsz00_1269 = BgL_slotsz00_3429; 
goto BgL_loopz00_1270;} }  else 
{ /* ./Module/foreign.scm 343 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 343 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 343 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 343 */
return BFALSE;} } }  else 
{ /* ./Module/foreign.scm 343 */
return BFALSE;} } } } }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} } } } }  else 
{ /* ./Module/foreign.scm 309 */
obj_t BgL_cdrzd22150zd2_1201;
BgL_cdrzd22150zd2_1201 = 
CDR(BgL_tzd2expzd2_27); 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3432;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3435;obj_t BgL_auxz00_3433;
BgL_auxz00_3435 = 
CNST_TABLE_REF(((long)17)); 
BgL_auxz00_3433 = 
CAR(BgL_tzd2expzd2_27); 
BgL_testz00_3432 = 
(BgL_auxz00_3433==BgL_auxz00_3435); } 
if(BgL_testz00_3432)
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3438;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3439;
BgL_auxz00_3439 = 
CAR(BgL_cdrzd22150zd2_1201); 
BgL_testz00_3438 = 
SYMBOLP(BgL_auxz00_3439); } 
if(BgL_testz00_3438)
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3442;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3443;
BgL_auxz00_3443 = 
CDR(BgL_cdrzd22150zd2_1201); 
BgL_testz00_3442 = 
NULLP(BgL_auxz00_3443); } 
if(BgL_testz00_3442)
{ /* ./Module/foreign.scm 309 */
return BgL_tzd2expzd2_27;}  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3446;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3449;obj_t BgL_auxz00_3447;
BgL_auxz00_3449 = 
CNST_TABLE_REF(((long)15)); 
BgL_auxz00_3447 = 
CAR(BgL_tzd2expzd2_27); 
BgL_testz00_3446 = 
(BgL_auxz00_3447==BgL_auxz00_3449); } 
if(BgL_testz00_3446)
{ /* ./Module/foreign.scm 309 */
obj_t BgL_cdrzd22170zd2_1209;
BgL_cdrzd22170zd2_1209 = 
CDR(BgL_cdrzd22150zd2_1201); 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3453;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3454;
BgL_auxz00_3454 = 
CAR(BgL_cdrzd22150zd2_1201); 
BgL_testz00_3453 = 
SYMBOLP(BgL_auxz00_3454); } 
if(BgL_testz00_3453)
{ /* ./Module/foreign.scm 309 */
if(
PAIRP(BgL_cdrzd22170zd2_1209))
{ /* ./Module/foreign.scm 309 */
obj_t BgL_carzd22172zd2_1212;
BgL_carzd22172zd2_1212 = 
CAR(BgL_cdrzd22170zd2_1209); 
{ 

if(
NULLP(BgL_carzd22172zd2_1212))
{ /* ./Module/foreign.scm 309 */
BgL_kapzd22176zd2_1213:
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3462;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3463;
BgL_auxz00_3463 = 
CDR(BgL_cdrzd22170zd2_1209); 
BgL_testz00_3462 = 
NULLP(BgL_auxz00_3463); } 
if(BgL_testz00_3462)
{ /* ./Module/foreign.scm 309 */
if(
BGl_checkzd2czd2argszf3zf3zzmodule_foreignz00(BgL_carzd22172zd2_1212))
{ /* ./Module/foreign.scm 309 */
return BgL_tzd2expzd2_27;}  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} } }  else 
{ /* ./Module/foreign.scm 309 */
if(
PAIRP(BgL_carzd22172zd2_1212))
{ /* ./Module/foreign.scm 309 */
goto BgL_kapzd22176zd2_1213;}  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} } } }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} } }  else 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3470;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3473;obj_t BgL_auxz00_3471;
BgL_auxz00_3473 = 
CNST_TABLE_REF(((long)16)); 
BgL_auxz00_3471 = 
CAR(BgL_tzd2expzd2_27); 
BgL_testz00_3470 = 
(BgL_auxz00_3471==BgL_auxz00_3473); } 
if(BgL_testz00_3470)
{ 
obj_t BgL_slotsz00_3476;
BgL_slotsz00_3476 = 
CDR(BgL_tzd2expzd2_27); 
BgL_slotsz00_1117 = BgL_slotsz00_3476; 
goto BgL_tagzd22045zd2_1118;}  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} } } } } }  else 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3478;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3481;obj_t BgL_auxz00_3479;
BgL_auxz00_3481 = 
CNST_TABLE_REF(((long)16)); 
BgL_auxz00_3479 = 
CAR(BgL_tzd2expzd2_27); 
BgL_testz00_3478 = 
(BgL_auxz00_3479==BgL_auxz00_3481); } 
if(BgL_testz00_3478)
{ 
obj_t BgL_slotsz00_3484;
BgL_slotsz00_3484 = 
CDR(BgL_tzd2expzd2_27); 
BgL_slotsz00_1117 = BgL_slotsz00_3484; 
goto BgL_tagzd22045zd2_1118;}  else 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3486;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3489;obj_t BgL_auxz00_3487;
BgL_auxz00_3489 = 
CNST_TABLE_REF(((long)13)); 
BgL_auxz00_3487 = 
CAR(BgL_tzd2expzd2_27); 
BgL_testz00_3486 = 
(BgL_auxz00_3487==BgL_auxz00_3489); } 
if(BgL_testz00_3486)
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3492;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3493;
BgL_auxz00_3493 = 
CDR(BgL_tzd2expzd2_27); 
BgL_testz00_3492 = 
NULLP(BgL_auxz00_3493); } 
if(BgL_testz00_3492)
{ /* ./Module/foreign.scm 309 */
return BgL_tzd2expzd2_27;}  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} } } }  else 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3496;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3497;
BgL_auxz00_3497 = 
CNST_TABLE_REF(((long)19)); 
BgL_testz00_3496 = 
(BgL_carzd22112zd2_1141==BgL_auxz00_3497); } 
if(BgL_testz00_3496)
{ /* ./Module/foreign.scm 309 */
goto BgL_kapzd22114zd2_1143;}  else 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3500;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3503;obj_t BgL_auxz00_3501;
BgL_auxz00_3503 = 
CNST_TABLE_REF(((long)17)); 
BgL_auxz00_3501 = 
CAR(BgL_tzd2expzd2_27); 
BgL_testz00_3500 = 
(BgL_auxz00_3501==BgL_auxz00_3503); } 
if(BgL_testz00_3500)
{ /* ./Module/foreign.scm 309 */
if(
PAIRP(BgL_cdrzd22113zd2_1142))
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3508;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3509;
BgL_auxz00_3509 = 
CAR(BgL_cdrzd22113zd2_1142); 
BgL_testz00_3508 = 
SYMBOLP(BgL_auxz00_3509); } 
if(BgL_testz00_3508)
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3512;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3513;
BgL_auxz00_3513 = 
CDR(BgL_cdrzd22113zd2_1142); 
BgL_testz00_3512 = 
NULLP(BgL_auxz00_3513); } 
if(BgL_testz00_3512)
{ /* ./Module/foreign.scm 309 */
return BgL_tzd2expzd2_27;}  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 309 */
obj_t BgL_cdrzd22228zd2_1153;
BgL_cdrzd22228zd2_1153 = 
CDR(BgL_tzd2expzd2_27); 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3517;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3520;obj_t BgL_auxz00_3518;
BgL_auxz00_3520 = 
CNST_TABLE_REF(((long)15)); 
BgL_auxz00_3518 = 
CAR(BgL_tzd2expzd2_27); 
BgL_testz00_3517 = 
(BgL_auxz00_3518==BgL_auxz00_3520); } 
if(BgL_testz00_3517)
{ /* ./Module/foreign.scm 309 */
if(
PAIRP(BgL_cdrzd22228zd2_1153))
{ /* ./Module/foreign.scm 309 */
obj_t BgL_cdrzd22231zd2_1156;
BgL_cdrzd22231zd2_1156 = 
CDR(BgL_cdrzd22228zd2_1153); 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3526;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3527;
BgL_auxz00_3527 = 
CAR(BgL_cdrzd22228zd2_1153); 
BgL_testz00_3526 = 
SYMBOLP(BgL_auxz00_3527); } 
if(BgL_testz00_3526)
{ /* ./Module/foreign.scm 309 */
if(
PAIRP(BgL_cdrzd22231zd2_1156))
{ /* ./Module/foreign.scm 309 */
obj_t BgL_carzd22233zd2_1159;
BgL_carzd22233zd2_1159 = 
CAR(BgL_cdrzd22231zd2_1156); 
{ 

if(
NULLP(BgL_carzd22233zd2_1159))
{ /* ./Module/foreign.scm 309 */
BgL_kapzd22237zd2_1160:
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3535;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3536;
BgL_auxz00_3536 = 
CDR(BgL_cdrzd22231zd2_1156); 
BgL_testz00_3535 = 
NULLP(BgL_auxz00_3536); } 
if(BgL_testz00_3535)
{ /* ./Module/foreign.scm 309 */
if(
BGl_checkzd2czd2argszf3zf3zzmodule_foreignz00(BgL_carzd22233zd2_1159))
{ /* ./Module/foreign.scm 309 */
return BgL_tzd2expzd2_27;}  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} } }  else 
{ /* ./Module/foreign.scm 309 */
if(
PAIRP(BgL_carzd22233zd2_1159))
{ /* ./Module/foreign.scm 309 */
goto BgL_kapzd22237zd2_1160;}  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} } } }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} } }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3543;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3546;obj_t BgL_auxz00_3544;
BgL_auxz00_3546 = 
CNST_TABLE_REF(((long)16)); 
BgL_auxz00_3544 = 
CAR(BgL_tzd2expzd2_27); 
BgL_testz00_3543 = 
(BgL_auxz00_3544==BgL_auxz00_3546); } 
if(BgL_testz00_3543)
{ 
obj_t BgL_slotsz00_3549;
BgL_slotsz00_3549 = BgL_cdrzd22228zd2_1153; 
BgL_slotsz00_1117 = BgL_slotsz00_3549; 
goto BgL_tagzd22045zd2_1118;}  else 
{ /* ./Module/foreign.scm 309 */
bool_t BgL_testz00_3550;
{ /* ./Module/foreign.scm 309 */
obj_t BgL_auxz00_3553;obj_t BgL_auxz00_3551;
BgL_auxz00_3553 = 
CNST_TABLE_REF(((long)13)); 
BgL_auxz00_3551 = 
CAR(BgL_tzd2expzd2_27); 
BgL_testz00_3550 = 
(BgL_auxz00_3551==BgL_auxz00_3553); } 
if(BgL_testz00_3550)
{ /* ./Module/foreign.scm 309 */
if(
NULLP(BgL_cdrzd22228zd2_1153))
{ /* ./Module/foreign.scm 309 */
return BgL_tzd2expzd2_27;}  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} } } } } } } } } } } } } } } }  else 
{ /* ./Module/foreign.scm 309 */
return BFALSE;} } } } } 
}



/* foreign-accesses-add! */
BGL_EXPORTED_DEF obj_t BGl_foreignzd2accesseszd2addz12z12zzmodule_foreignz00(obj_t BgL_accessesz00_28)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 366 */
return ( 
BGl_za2foreignzd2accessesza2zd2zzmodule_foreignz00 = 
bgl_append2(BgL_accessesz00_28, BGl_za2foreignzd2accessesza2zd2zzmodule_foreignz00), BUNSPEC) ;} 
}



/* _foreign-accesses-add! */
obj_t BGl__foreignzd2accesseszd2addz12z12zzmodule_foreignz00(obj_t BgL_envz00_2173, obj_t BgL_accessesz00_2174)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 366 */
return 
BGl_foreignzd2accesseszd2addz12z12zzmodule_foreignz00(BgL_accessesz00_2174);} 
}



/* foreign-finalizer */
obj_t BGl_foreignzd2finaliza7erz75zzmodule_foreignz00()
{ AN_OBJECT;
{ /* ./Module/foreign.scm 372 */
{ 
obj_t BgL_l2064z00_1285;
BgL_l2064z00_1285 = BGl_za2foreignzd2exportedza2zd2zzmodule_foreignz00; 
BgL_forzd2each2065zd2_1286:
{ /* ./Module/foreign.scm 374 */
bool_t BgL_test3958z00_1287;
BgL_test3958z00_1287 = 
PAIRP(BgL_l2064z00_1285); 
if(BgL_test3958z00_1287)
{ /* ./Module/foreign.scm 374 */
{ /* ./Module/foreign.scm 375 */
obj_t BgL_foreignz00_1288;
BgL_foreignz00_1288 = 
CAR(BgL_l2064z00_1285); 
{ /* ./Module/foreign.scm 375 */
obj_t BgL_globalz00_1289;obj_t BgL_namez00_1290;
{ /* ./Module/foreign.scm 375 */
obj_t BgL_arg3976z00_1297;
{ /* ./Module/foreign.scm 375 */
obj_t BgL_auxz00_3563;
BgL_auxz00_3563 = 
CDR(BgL_foreignz00_1288); 
BgL_arg3976z00_1297 = 
CAR(BgL_auxz00_3563); } 
BgL_globalz00_1289 = 
BGl_findzd2globalzd2zzast_envz00(BgL_arg3976z00_1297, BNIL); } 
{ /* ./Module/foreign.scm 376 */
obj_t BgL_auxz00_3567;
{ /* ./Module/foreign.scm 376 */
obj_t BgL_auxz00_3568;
BgL_auxz00_3568 = 
CDR(BgL_foreignz00_1288); 
BgL_auxz00_3567 = 
CDR(BgL_auxz00_3568); } 
BgL_namez00_1290 = 
CAR(BgL_auxz00_3567); } 
{ /* ./Module/foreign.scm 378 */
bool_t BgL_test3959z00_1291;
BgL_test3959z00_1291 = 
BGl_iszd2azf3z21zz__objectz00(BgL_globalz00_1289, BGl_globalz00zzast_varz00); 
if(BgL_test3959z00_1291)
{ /* ./Module/foreign.scm 385 */
bool_t BgL_test3960z00_1292;
{ /* ./Module/foreign.scm 385 */
obj_t BgL_auxz00_3574;
{ /* ./Module/foreign.scm 385 */
BgL_variablez00_bglt BgL_obj1114z00_2122;
BgL_obj1114z00_2122 = 
(BgL_variablez00_bglt)(BgL_globalz00_1289); 
BgL_auxz00_3574 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1114z00_2122))->BgL_namez00); } 
BgL_test3960z00_1292 = 
STRINGP(BgL_auxz00_3574); } 
if(BgL_test3960z00_1292)
{ /* ./Module/foreign.scm 385 */
BGl_userzd2warningzd2zztools_errorz00(BGl_string4352z00zzmodule_foreignz00, BGl_string4353z00zzmodule_foreignz00, BgL_foreignz00_1288); }  else 
{ /* ./Module/foreign.scm 385 */
{ /* ./Module/foreign.scm 391 */
BgL_variablez00_bglt BgL_obj1116z00_2124;obj_t BgL_val1115z00_2125;
BgL_obj1116z00_2124 = 
(BgL_variablez00_bglt)(BgL_globalz00_1289); 
BgL_val1115z00_2125 = BgL_namez00_1290; 
((((BgL_variablez00_bglt)CREF(BgL_obj1116z00_2124))->BgL_namez00) = ((obj_t)BgL_val1115z00_2125), BUNSPEC); } } }  else 
{ /* ./Module/foreign.scm 378 */
{ /* ./Module/foreign.scm 379 */
bool_t BgL_test3967z00_1294;
{ /* ./Module/foreign.scm 379 */
bool_t BgL_test3971z00_1296;
{ /* ./Module/foreign.scm 379 */
obj_t BgL_auxz00_3582;
BgL_auxz00_3582 = 
CNST_TABLE_REF(((long)20)); 
BgL_test3971z00_1296 = 
(BGl_za2passza2z00zzengine_paramz00==BgL_auxz00_3582); } 
if(BgL_test3971z00_1296)
{ /* ./Module/foreign.scm 379 */
BgL_test3967z00_1294 = ((bool_t)1); }  else 
{ /* ./Module/foreign.scm 380 */
obj_t BgL_auxz00_3586;
BgL_auxz00_3586 = 
CNST_TABLE_REF(((long)21)); 
BgL_test3967z00_1294 = 
(BGl_za2passza2z00zzengine_paramz00==BgL_auxz00_3586); } } 
if(BgL_test3967z00_1294)
{ /* ./Module/foreign.scm 379 */BFALSE; }  else 
{ /* ./Module/foreign.scm 381 */
obj_t BgL_list3969z00_1295;
BgL_list3969z00_1295 = 
MAKE_PAIR(BNIL, BNIL); 
BGl_userzd2errorzd2zztools_errorz00(BGl_string4352z00zzmodule_foreignz00, BGl_string4354z00zzmodule_foreignz00, BgL_foreignz00_1288, BgL_list3969z00_1295); } } } } } } 
{ /* ./Module/foreign.scm 374 */
obj_t BgL_arg3983z00_1299;
BgL_arg3983z00_1299 = 
CDR(BgL_l2064z00_1285); 
{ 
obj_t BgL_l2064z00_3593;
BgL_l2064z00_3593 = BgL_arg3983z00_1299; 
BgL_l2064z00_1285 = BgL_l2064z00_3593; 
goto BgL_forzd2each2065zd2_1286;} } }  else 
{ /* ./Module/foreign.scm 374 */((bool_t)1); } } } 
BGl_za2foreignzd2exportedza2zd2zzmodule_foreignz00 = BNIL; 
{ /* ./Module/foreign.scm 395 */
bool_t BgL_test3987z00_1300;
{ /* ./Module/foreign.scm 395 */
obj_t BgL_objz00_2127;
BgL_objz00_2127 = BGl_za2foreignzd2accessesza2zd2zzmodule_foreignz00; 
BgL_test3987z00_1300 = 
NULLP(BgL_objz00_2127); } 
if(BgL_test3987z00_1300)
{ /* ./Module/foreign.scm 395 */
return 
CNST_TABLE_REF(((long)2));}  else 
{ /* ./Module/foreign.scm 397 */
obj_t BgL_accessesz00_1301;
BgL_accessesz00_1301 = 
BGl_reversez12z12zz__r4_pairs_and_lists_6_3z00(BGl_za2foreignzd2accessesza2zd2zzmodule_foreignz00); 
BGl_za2foreignzd2accessesza2zd2zzmodule_foreignz00 = BNIL; 
{ /* ./Module/foreign.scm 399 */
obj_t BgL_arg3989z00_1302;
{ /* ./Module/foreign.scm 399 */
obj_t BgL_idz00_2128;
BgL_idz00_2128 = 
CNST_TABLE_REF(((long)0)); 
{ /* ./Module/foreign.scm 399 */
obj_t BgL_newz00_2132;
{ /* ./Module/foreign.scm 399 */
int BgL_auxz00_3601;obj_t BgL_auxz00_3599;
BgL_auxz00_3601 = 
(int)(((long)4)); 
BgL_auxz00_3599 = 
CNST_TABLE_REF(((long)22)); 
BgL_newz00_2132 = 
create_struct(BgL_auxz00_3599, BgL_auxz00_3601); } 
{ /* ./Module/foreign.scm 399 */
int BgL_kz00_2136;
BgL_kz00_2136 = 
(int)(((long)3)); 
STRUCT_SET(BgL_newz00_2132, BgL_kz00_2136, BTRUE); } 
{ /* ./Module/foreign.scm 399 */
int BgL_kz00_2141;
BgL_kz00_2141 = 
(int)(((long)2)); 
STRUCT_SET(BgL_newz00_2132, BgL_kz00_2141, BgL_accessesz00_1301); } 
{ /* ./Module/foreign.scm 399 */
int BgL_kz00_2146;obj_t BgL_oz00_2147;
BgL_kz00_2146 = 
(int)(((long)1)); 
BgL_oz00_2147 = 
BINT(((long)48)); 
STRUCT_SET(BgL_newz00_2132, BgL_kz00_2146, BgL_oz00_2147); } 
{ /* ./Module/foreign.scm 399 */
int BgL_kz00_2151;
BgL_kz00_2151 = 
(int)(((long)0)); 
STRUCT_SET(BgL_newz00_2132, BgL_kz00_2151, BgL_idz00_2128); } 
BgL_arg3989z00_1302 = BgL_newz00_2132; } } 
{ /* ./Module/foreign.scm 399 */
obj_t BgL_list3991z00_1303;
BgL_list3991z00_1303 = 
MAKE_PAIR(BgL_arg3989z00_1302, BNIL); 
return BgL_list3991z00_1303;} } } } } 
}



/* _foreign-finalizer */
obj_t BGl__foreignzd2finaliza7erz75zzmodule_foreignz00(obj_t BgL_envz00_2163)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 372 */
return 
BGl_foreignzd2finaliza7erz75zzmodule_foreignz00();} 
}



/* default-c-type */
obj_t BGl_defaultzd2czd2typez00zzmodule_foreignz00(obj_t BgL_typez00_29, obj_t BgL_srcz00_30)
{ AN_OBJECT;
{ /* ./Module/foreign.scm 404 */
{ /* ./Module/foreign.scm 405 */
bool_t BgL_test3996z00_1304;
{ /* ./Module/foreign.scm 405 */
BgL_typez00_bglt BgL_arg4007z00_1310;
BgL_arg4007z00_1310 = 
BGl_getzd2defaultzd2typez00zztype_cachez00(); 
{ /* ./Module/foreign.scm 405 */
obj_t BgL_auxz00_3616;
BgL_auxz00_3616 = 
(obj_t)(BgL_arg4007z00_1310); 
BgL_test3996z00_1304 = 
(BgL_typez00_29==BgL_auxz00_3616); } } 
if(BgL_test3996z00_1304)
{ /* ./Module/foreign.scm 406 */
BgL_typez00_bglt BgL_defaultz00_1305;
BgL_defaultz00_1305 = 
BGl_getzd2defaultzd2czd2typezd2zztype_cachez00(); 
{ /* ./Module/foreign.scm 407 */
obj_t BgL_arg3998z00_1306;obj_t BgL_arg4001z00_1309;
BgL_arg3998z00_1306 = 
BGl_findzd2locationzd2zztools_locationz00(BgL_srcz00_30); 
BgL_arg4001z00_1309 = 
(((BgL_typez00_bglt)CREF(BgL_defaultz00_1305))->BgL_idz00); 
BGl_userzd2warningzf2locationz20zztools_errorz00(BgL_arg3998z00_1306, BGl_string4352z00zzmodule_foreignz00, BGl_string4355z00zzmodule_foreignz00, BgL_arg4001z00_1309); } 
return 
(obj_t)(BgL_defaultz00_1305);}  else 
{ /* ./Module/foreign.scm 405 */
return BgL_typez00_29;} } } 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzmodule_foreignz00()
{ AN_OBJECT;
{ /* ./Module/foreign.scm 18 */
return BUNSPEC;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzmodule_foreignz00()
{ AN_OBJECT;
{ /* ./Module/foreign.scm 18 */
BGl_modulezd2initializa7ationz75zztools_tracez00(((long)59211), "module_foreign"); 
BGl_modulezd2initializa7ationz75zzmodule_modulez00(((long)8699), "module_foreign"); 
BGl_modulezd2initializa7ationz75zzmodule_checksumz00(((long)54092), "module_foreign"); 
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "module_foreign"); 
BGl_modulezd2initializa7ationz75zzast_glozd2declzd2(((long)31087), "module_foreign"); 
BGl_modulezd2initializa7ationz75zztools_errorz00(((long)25566), "module_foreign"); 
BGl_modulezd2initializa7ationz75zztools_shapez00(((long)30833), "module_foreign"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "module_foreign"); 
BGl_modulezd2initializa7ationz75zztype_envz00(((long)25186), "module_foreign"); 
BGl_modulezd2initializa7ationz75zztype_toolsz00(((long)15091), "module_foreign"); 
BGl_modulezd2initializa7ationz75zztype_cachez00(((long)25848), "module_foreign"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "module_foreign"); 
BGl_modulezd2initializa7ationz75zzast_envz00(((long)62031), "module_foreign"); 
BGl_modulezd2initializa7ationz75zzast_identz00(((long)51504), "module_foreign"); 
BGl_modulezd2initializa7ationz75zzforeign_ctypez00(((long)51394), "module_foreign"); 
BGl_modulezd2initializa7ationz75zzforeign_accessz00(((long)13730), "module_foreign"); 
return 
BGl_modulezd2initializa7ationz75zztools_locationz00(((long)32118), "module_foreign");} 
}

