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

#include <bigloo.h>


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

typedef struct BgL_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;

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;


BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzforeign_cstructz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_tracez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_toolsz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_envz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_miscz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzforeign_ctypez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzforeign_accessz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzforeign_libraryz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzmodule_modulez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_identz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(long, char *);
static obj_t BGl_makezd2ctypezd2accessesz12zd2cstructza21600z62zzforeign_cstructz00(obj_t, obj_t, obj_t, obj_t);
BGL_IMPORT obj_t BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
extern obj_t BGl_cstructza2za2zzforeign_ctypez00;
static obj_t BGl_methodzd2initzd2zzforeign_cstructz00();
BGL_IMPORT obj_t open_input_string(obj_t);
extern obj_t BGl_producezd2modulezd2clausez12z12zzmodule_modulez00(obj_t);
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
BGL_IMPORT bool_t BGl_iszd2azf3z21zz__objectz00(obj_t, obj_t);
static obj_t BGl_makezd2ctypezd2accessesz12zd2cstruct1598zc0zzforeign_cstructz00(obj_t, obj_t, obj_t, obj_t);
BGL_IMPORT obj_t string_append(obj_t, obj_t);
extern BgL_typez00_bglt BGl_usezd2typez12zc0zztype_envz00(obj_t, obj_t);
extern obj_t BGl_cstructz00zzforeign_ctypez00;
BGL_IMPORT obj_t string_to_bstring(char *);
BGL_IMPORT obj_t BGl_gensymz00zz__r4_symbols_6_4z00;
extern obj_t BGl_makezd2protozd2inlinez00zzforeign_libraryz00(obj_t);
extern obj_t BGl_makezd2definezd2inlinez00zzforeign_libraryz00(obj_t, obj_t);
extern BgL_typez00_bglt BGl_getzd2aliasedzd2typez00zztype_typez00(BgL_typez00_bglt);
BGL_IMPORT obj_t BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(obj_t);
static obj_t BGl_cnstzd2initzd2zzforeign_cstructz00();
BGL_IMPORT obj_t bgl_append2(obj_t, obj_t);
BGL_IMPORT obj_t BGl_stringzd2appendzd2zz__r4_strings_6_7z00(obj_t);
static obj_t BGl_importedzd2moduleszd2initz00zzforeign_cstructz00();
extern obj_t BGl_registerzd2foreignzd2accesszd2identsz12zc0zzforeign_libraryz00(obj_t);
static obj_t BGl_requirezd2initializa7ationz75zzforeign_cstructz00 = BUNSPEC;
BGL_IMPORT obj_t BGl_addzd2methodz12zc0zz__objectz00(obj_t, obj_t, obj_t);
static obj_t BGl_libraryzd2moduleszd2initz00zzforeign_cstructz00();
extern obj_t BGl_makezd2typedzd2identz00zzast_identz00(obj_t, obj_t);
extern obj_t BGl_stringzd2sanszd2z42z42zztype_toolsz00(obj_t);
static obj_t BGl_toplevelzd2initzd2zzforeign_cstructz00();
BGL_IMPORT obj_t string_append_3(obj_t, obj_t, obj_t);
static obj_t __cnst[ 34 ] ;


extern obj_t BGl_makezd2ctypezd2accessesz12zd2envzc0zzforeign_accessz00;
DEFINE_STRING( BGl_string2530z00zzforeign_cstructz00, BgL_bgl_string2530za700za7za7foreign_cstructza7002559z00, "predicate-of static foreign -null? v ::obj -set! - let new * pragma make- pragma:: make-null- pragma::bool -null?::bool (pragma::bool \"($1 == $2)\" o1 o2) o2 o1 ?::bool = quote foreign-id eq? o foreign? if o::obj symbol macro ::bool ? -> ", 237 );
DEFINE_STRING( BGl_string2529z00zzforeign_cstructz00, BgL_bgl_string2529za700za7za7foreign_cstructza7002560z00, "((((", 4 );
DEFINE_STRING( BGl_string2528z00zzforeign_cstructz00, BgL_bgl_string2528za700za7za7foreign_cstructza7002561z00, "(((", 3 );
DEFINE_STRING( BGl_string2527z00zzforeign_cstructz00, BgL_bgl_string2527za700za7za7foreign_cstructza7002562z00, ")", 1 );
DEFINE_STRING( BGl_string2526z00zzforeign_cstructz00, BgL_bgl_string2526za700za7za7foreign_cstructza7002563z00, "&((((", 5 );
DEFINE_STRING( BGl_string2525z00zzforeign_cstructz00, BgL_bgl_string2525za700za7za7foreign_cstructza7002564z00, ")$1)->", 6 );
DEFINE_STRING( BGl_string2524z00zzforeign_cstructz00, BgL_bgl_string2524za700za7za7foreign_cstructza7002565z00, "))", 2 );
DEFINE_STRING( BGl_string2523z00zzforeign_cstructz00, BgL_bgl_string2523za700za7za7foreign_cstructza7002566z00, ")GC_MALLOC( sizeof( ", 20 );
DEFINE_STRING( BGl_string2522z00zzforeign_cstructz00, BgL_bgl_string2522za700za7za7foreign_cstructza7002567z00, " ) )", 4 );
DEFINE_STRING( BGl_string2521z00zzforeign_cstructz00, BgL_bgl_string2521za700za7za7foreign_cstructza7002568z00, "((", 2 );
DEFINE_STRING( BGl_string2520z00zzforeign_cstructz00, BgL_bgl_string2520za700za7za7foreign_cstructza7002569z00, ")0L)", 4 );
DEFINE_STRING( BGl_string2519z00zzforeign_cstructz00, BgL_bgl_string2519za700za7za7foreign_cstructza7002570z00, "($1 == (", 8 );
DEFINE_STRING( BGl_string2518z00zzforeign_cstructz00, BgL_bgl_string2518za700za7za7foreign_cstructza7002571z00, ")FOREIGN_TO_COBJ", 16 );
DEFINE_STRING( BGl_string2517z00zzforeign_cstructz00, BgL_bgl_string2517za700za7za7foreign_cstructza7002572z00, "(", 1 );
DEFINE_STRING( BGl_string2516z00zzforeign_cstructz00, BgL_bgl_string2516za700za7za7foreign_cstructza7002573z00, "cobj_to_foreign", 15 );
DEFINE_STRING( BGl_string2515z00zzforeign_cstructz00, BgL_bgl_string2515za700za7za7foreign_cstructza7002574z00, ") 0)", 4 );
DEFINE_STRING( BGl_string2514z00zzforeign_cstructz00, BgL_bgl_string2514za700za7za7foreign_cstructza7002575z00, "*((", 3 );
DEFINE_STATIC_PROCEDURE( BGl_proc2512z00zzforeign_cstructz00, BgL_bgl_makeza7d2ctypeza7d2accessesza712za7d2cstruct1598za7c0za7za7foreign_cstructza7002576z00, BGl_makezd2ctypezd2accessesz12zd2cstruct1598zc0zzforeign_cstructz00, 0L, 3 );
DEFINE_STATIC_PROCEDURE( BGl_proc2513z00zzforeign_cstructz00, BgL_bgl_makeza7d2ctypeza7d2accessesza712za7d2cstructza7a21600za762za7za7foreign_cstructza7002577za7, BGl_makezd2ctypezd2accessesz12zd2cstructza21600z62zzforeign_cstructz00, 0L, 3 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzforeign_cstructz00(long BgL_checksumz00_628, char * BgL_fromz00_629)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzforeign_cstructz00))
{ 
BGl_requirezd2initializa7ationz75zzforeign_cstructz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzforeign_cstructz00(); 
BGl_cnstzd2initzd2zzforeign_cstructz00(); 
BGl_importedzd2moduleszd2initz00zzforeign_cstructz00(); 
BGl_methodzd2initzd2zzforeign_cstructz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzforeign_cstructz00()
{ AN_OBJECT;
{ /* ./Foreign/cstruct.scm 15 */
BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(((long)0), "foreign_cstruct"); 
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "foreign_cstruct"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "foreign_cstruct"); 
BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(((long)0), "foreign_cstruct"); 
BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(((long)0), "foreign_cstruct"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzforeign_cstructz00()
{ AN_OBJECT;
{ /* ./Foreign/cstruct.scm 15 */
{ /* ./Foreign/cstruct.scm 15 */
obj_t BgL_cportz00_618;
BgL_cportz00_618 = 
open_input_string(BGl_string2530z00zzforeign_cstructz00); 
{ 
long BgL_iz00_619;
BgL_iz00_619 = ((long)33); 
BgL_loopz00_620:
{ /* ./Foreign/cstruct.scm 15 */
bool_t BgL_test2532z00_621;
BgL_test2532z00_621 = 
(BgL_iz00_619==((long)-1)); 
if(BgL_test2532z00_621)
{ /* ./Foreign/cstruct.scm 15 */
return BUNSPEC;}  else 
{ /* ./Foreign/cstruct.scm 15 */
{ /* ./Foreign/cstruct.scm 15 */
obj_t BgL_arg2534z00_622;
{ /* ./Foreign/cstruct.scm 15 */
obj_t BgL_list2537z00_623;
BgL_list2537z00_623 = 
MAKE_PAIR(BgL_cportz00_618, BNIL); 
BgL_arg2534z00_622 = 
BGl_readz00zz__readerz00(BgL_list2537z00_623); } 
{ /* ./Foreign/cstruct.scm 15 */
int BgL_auxz00_647;
BgL_auxz00_647 = 
(int)(BgL_iz00_619); 
CNST_TABLE_SET(BgL_auxz00_647, BgL_arg2534z00_622); } } 
{ /* ./Foreign/cstruct.scm 15 */
int BgL_auxz00_624;
{ /* ./Foreign/cstruct.scm 15 */
long BgL_auxz00_650;
BgL_auxz00_650 = 
(BgL_iz00_619-((long)1)); 
BgL_auxz00_624 = 
(int)(BgL_auxz00_650); } 
{ 
long BgL_iz00_653;
BgL_iz00_653 = 
(long)(BgL_auxz00_624); 
BgL_iz00_619 = BgL_iz00_653; 
goto BgL_loopz00_620;} } } } } } } 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzforeign_cstructz00()
{ AN_OBJECT;
{ /* ./Foreign/cstruct.scm 15 */
return BUNSPEC;} 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzforeign_cstructz00()
{ AN_OBJECT;
{ /* ./Foreign/cstruct.scm 15 */
BGl_addzd2methodz12zc0zz__objectz00(BGl_makezd2ctypezd2accessesz12zd2envzc0zzforeign_accessz00, BGl_cstructz00zzforeign_ctypez00, BGl_proc2512z00zzforeign_cstructz00); 
return 
BGl_addzd2methodz12zc0zz__objectz00(BGl_makezd2ctypezd2accessesz12zd2envzc0zzforeign_accessz00, BGl_cstructza2za2zzforeign_ctypez00, BGl_proc2513z00zzforeign_cstructz00);} 
}



/* make-ctype-accesses!-cstruct*1600 */
obj_t BGl_makezd2ctypezd2accessesz12zd2cstructza21600z62zzforeign_cstructz00(obj_t BgL_envz00_606, obj_t BgL_whatz00_607, obj_t BgL_whoz00_608, obj_t BgL_locz00_609)
{ AN_OBJECT;
{ /* ./Foreign/cstruct.scm 38 */
{ 
BgL_cstructza2za2_bglt BgL_whatz00_182;BgL_typez00_bglt BgL_whoz00_183;obj_t BgL_locz00_184;
BgL_whatz00_182 = 
(BgL_cstructza2za2_bglt)(BgL_whatz00_607); 
BgL_whoz00_183 = 
(BgL_typez00_bglt)(BgL_whoz00_608); 
BgL_locz00_184 = BgL_locz00_609; 
{ /* ./Foreign/cstruct.scm 41 */
BgL_typez00_bglt BgL_btypez00_187;
{ 
obj_t BgL_auxz00_657;
{ /* ./Foreign/cstruct.scm 41 */
BgL_objectz00_bglt BgL_auxz00_658;
BgL_auxz00_658 = 
(BgL_objectz00_bglt)(BgL_whatz00_182); 
BgL_auxz00_657 = 
BGL_OBJECT_WIDENING(BgL_auxz00_658); } 
BgL_btypez00_187 = 
(((BgL_cstructza2za2_bglt)CREF(BgL_auxz00_657))->BgL_btypez00); } 
{ /* ./Foreign/cstruct.scm 41 */
obj_t BgL_idz00_188;
BgL_idz00_188 = 
(((BgL_typez00_bglt)CREF(BgL_whoz00_183))->BgL_idz00); 
{ /* ./Foreign/cstruct.scm 42 */
obj_t BgL_widz00_189;
{ /* ./Foreign/cstruct.scm 43 */
BgL_typez00_bglt BgL_obj1003z00_548;
BgL_obj1003z00_548 = 
(BgL_typez00_bglt)(BgL_whatz00_182); 
BgL_widz00_189 = 
(((BgL_typez00_bglt)CREF(BgL_obj1003z00_548))->BgL_idz00); } 
{ /* ./Foreign/cstruct.scm 43 */
obj_t BgL_bidz00_190;
BgL_bidz00_190 = 
(((BgL_typez00_bglt)CREF(BgL_btypez00_187))->BgL_idz00); 
{ /* ./Foreign/cstruct.scm 44 */
obj_t BgL_idzd2ze3bidz31_191;
{ /* ./Foreign/cstruct.scm 45 */
obj_t BgL_list2439z00_540;
{ /* ./Foreign/cstruct.scm 45 */
obj_t BgL_arg2441z00_541;
{ /* ./Foreign/cstruct.scm 45 */
obj_t BgL_arg2444z00_542;obj_t BgL_arg2445z00_543;
BgL_arg2444z00_542 = 
CNST_TABLE_REF(((long)0)); 
BgL_arg2445z00_543 = 
MAKE_PAIR(BgL_bidz00_190, BNIL); 
BgL_arg2441z00_541 = 
MAKE_PAIR(BgL_arg2444z00_542, BgL_arg2445z00_543); } 
BgL_list2439z00_540 = 
MAKE_PAIR(BgL_idz00_188, BgL_arg2441z00_541); } 
BgL_idzd2ze3bidz31_191 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list2439z00_540); } 
{ /* ./Foreign/cstruct.scm 45 */
obj_t BgL_bidzd2ze3idz31_192;
{ /* ./Foreign/cstruct.scm 46 */
obj_t BgL_list2429z00_536;
{ /* ./Foreign/cstruct.scm 46 */
obj_t BgL_arg2431z00_537;
{ /* ./Foreign/cstruct.scm 46 */
obj_t BgL_arg2434z00_538;obj_t BgL_arg2435z00_539;
BgL_arg2434z00_538 = 
CNST_TABLE_REF(((long)0)); 
BgL_arg2435z00_539 = 
MAKE_PAIR(BgL_idz00_188, BNIL); 
BgL_arg2431z00_537 = 
MAKE_PAIR(BgL_arg2434z00_538, BgL_arg2435z00_539); } 
BgL_list2429z00_536 = 
MAKE_PAIR(BgL_bidz00_190, BgL_arg2431z00_537); } 
BgL_bidzd2ze3idz31_192 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list2429z00_536); } 
{ /* ./Foreign/cstruct.scm 46 */
obj_t BgL_bidzf3zf3_193;
{ /* ./Foreign/cstruct.scm 47 */
obj_t BgL_list2423z00_534;
{ /* ./Foreign/cstruct.scm 47 */
obj_t BgL_arg2425z00_535;
{ /* ./Foreign/cstruct.scm 47 */
obj_t BgL_auxz00_676;
BgL_auxz00_676 = 
CNST_TABLE_REF(((long)1)); 
BgL_arg2425z00_535 = 
MAKE_PAIR(BgL_auxz00_676, BNIL); } 
BgL_list2423z00_534 = 
MAKE_PAIR(BgL_idz00_188, BgL_arg2425z00_535); } 
BgL_bidzf3zf3_193 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list2423z00_534); } 
{ /* ./Foreign/cstruct.scm 47 */
obj_t BgL_bidzf3zd2boolz21_194;
{ /* ./Foreign/cstruct.scm 48 */
obj_t BgL_list2417z00_532;
{ /* ./Foreign/cstruct.scm 48 */
obj_t BgL_arg2419z00_533;
{ /* ./Foreign/cstruct.scm 48 */
obj_t BgL_auxz00_681;
BgL_auxz00_681 = 
CNST_TABLE_REF(((long)2)); 
BgL_arg2419z00_533 = 
MAKE_PAIR(BgL_auxz00_681, BNIL); } 
BgL_list2417z00_532 = 
MAKE_PAIR(BgL_bidzf3zf3_193, BgL_arg2419z00_533); } 
BgL_bidzf3zd2boolz21_194 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list2417z00_532); } 
{ /* ./Foreign/cstruct.scm 48 */
obj_t BgL_namez00_195;
BgL_namez00_195 = 
(((BgL_typez00_bglt)CREF(BgL_whoz00_183))->BgL_namez00); 
{ /* ./Foreign/cstruct.scm 49 */
obj_t BgL_namezd2sanszd2z42z42_196;
BgL_namezd2sanszd2z42z42_196 = 
BGl_stringzd2sanszd2z42z42zztype_toolsz00(BgL_namez00_195); 
{ /* ./Foreign/cstruct.scm 50 */
BgL_cstructz00_bglt BgL_cstructz00_197;
{ 
obj_t BgL_auxz00_688;
{ /* ./Foreign/cstruct.scm 51 */
BgL_objectz00_bglt BgL_auxz00_689;
BgL_auxz00_689 = 
(BgL_objectz00_bglt)(BgL_whatz00_182); 
BgL_auxz00_688 = 
BGL_OBJECT_WIDENING(BgL_auxz00_689); } 
BgL_cstructz00_197 = 
(((BgL_cstructza2za2_bglt)CREF(BgL_auxz00_688))->BgL_cstructz00); } 
{ /* ./Foreign/cstruct.scm 51 */
obj_t BgL_cstructzd2fieldszd2_198;
{ 
obj_t BgL_auxz00_693;
{ /* ./Foreign/cstruct.scm 52 */
BgL_objectz00_bglt BgL_auxz00_694;
BgL_auxz00_694 = 
(BgL_objectz00_bglt)(BgL_cstructz00_197); 
BgL_auxz00_693 = 
BGL_OBJECT_WIDENING(BgL_auxz00_694); } 
BgL_cstructzd2fieldszd2_198 = 
(((BgL_cstructz00_bglt)CREF(BgL_auxz00_693))->BgL_fieldsz00); } 
{ /* ./Foreign/cstruct.scm 52 */
obj_t BgL_siza7eofza7_199;
BgL_siza7eofza7_199 = 
string_append_3(BGl_string2514z00zzforeign_cstructz00, BgL_namezd2sanszd2z42z42_196, BGl_string2515z00zzforeign_cstructz00); 
{ /* ./Foreign/cstruct.scm 53 */

{ 
obj_t BgL_fieldz00_277;
{ /* ./Foreign/cstruct.scm 171 */
obj_t BgL_arg1692z00_210;obj_t BgL_arg1695z00_211;obj_t BgL_arg1696z00_212;obj_t BgL_arg1697z00_213;
{ /* ./Foreign/cstruct.scm 171 */
obj_t BgL_list1717z00_220;
{ /* ./Foreign/cstruct.scm 171 */
obj_t BgL_arg1719z00_221;obj_t BgL_arg1720z00_222;
BgL_arg1719z00_221 = 
CNST_TABLE_REF(((long)21)); 
BgL_arg1720z00_222 = 
MAKE_PAIR(BgL_idz00_188, BNIL); 
BgL_list1717z00_220 = 
MAKE_PAIR(BgL_arg1719z00_221, BgL_arg1720z00_222); } 
BgL_arg1692z00_210 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list1717z00_220); } 
{ /* ./Foreign/cstruct.scm 173 */
obj_t BgL_list1724z00_223;
{ /* ./Foreign/cstruct.scm 173 */
obj_t BgL_arg1726z00_224;obj_t BgL_arg1727z00_225;
BgL_arg1726z00_224 = 
CNST_TABLE_REF(((long)12)); 
{ /* ./Foreign/cstruct.scm 173 */
obj_t BgL_arg1731z00_226;
{ /* ./Foreign/cstruct.scm 173 */
obj_t BgL_auxz00_704;
BgL_auxz00_704 = 
CNST_TABLE_REF(((long)1)); 
BgL_arg1731z00_226 = 
MAKE_PAIR(BgL_auxz00_704, BNIL); } 
BgL_arg1727z00_225 = 
MAKE_PAIR(BgL_idz00_188, BgL_arg1731z00_226); } 
BgL_list1724z00_223 = 
MAKE_PAIR(BgL_arg1726z00_224, BgL_arg1727z00_225); } 
BgL_arg1695z00_211 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list1724z00_223); } 
{ /* ./Foreign/cstruct.scm 175 */
obj_t BgL_list1735z00_227;
{ /* ./Foreign/cstruct.scm 175 */
obj_t BgL_arg1737z00_228;
{ /* ./Foreign/cstruct.scm 175 */
obj_t BgL_auxz00_710;
BgL_auxz00_710 = 
CNST_TABLE_REF(((long)30)); 
BgL_arg1737z00_228 = 
MAKE_PAIR(BgL_auxz00_710, BNIL); } 
BgL_list1735z00_227 = 
MAKE_PAIR(BgL_idz00_188, BgL_arg1737z00_228); } 
BgL_arg1696z00_212 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list1735z00_227); } 
{ /* ./Foreign/cstruct.scm 176 */
obj_t BgL_list1741z00_229;
{ /* ./Foreign/cstruct.scm 176 */
obj_t BgL_arg1743z00_230;obj_t BgL_arg1744z00_231;
BgL_arg1743z00_230 = 
CNST_TABLE_REF(((long)19)); 
BgL_arg1744z00_231 = 
MAKE_PAIR(BgL_idz00_188, BNIL); 
BgL_list1741z00_229 = 
MAKE_PAIR(BgL_arg1743z00_230, BgL_arg1744z00_231); } 
BgL_arg1697z00_213 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list1741z00_229); } 
{ /* ./Foreign/cstruct.scm 170 */
obj_t BgL_list1699z00_214;
{ /* ./Foreign/cstruct.scm 170 */
obj_t BgL_arg1701z00_215;
{ /* ./Foreign/cstruct.scm 170 */
obj_t BgL_arg1704z00_216;
{ /* ./Foreign/cstruct.scm 170 */
obj_t BgL_arg1707z00_217;
{ /* ./Foreign/cstruct.scm 170 */
obj_t BgL_arg1710z00_218;
{ /* ./Foreign/cstruct.scm 170 */
obj_t BgL_arg1713z00_219;
BgL_arg1713z00_219 = 
MAKE_PAIR(BgL_arg1697z00_213, BNIL); 
BgL_arg1710z00_218 = 
MAKE_PAIR(BgL_arg1696z00_212, BgL_arg1713z00_219); } 
BgL_arg1707z00_217 = 
MAKE_PAIR(BgL_bidzf3zf3_193, BgL_arg1710z00_218); } 
BgL_arg1704z00_216 = 
MAKE_PAIR(BgL_arg1695z00_211, BgL_arg1707z00_217); } 
BgL_arg1701z00_215 = 
MAKE_PAIR(BgL_idz00_188, BgL_arg1704z00_216); } 
BgL_list1699z00_214 = 
MAKE_PAIR(BgL_arg1692z00_210, BgL_arg1701z00_215); } 
BGl_registerzd2foreignzd2accesszd2identsz12zc0zzforeign_libraryz00(BgL_list1699z00_214); } } 
{ /* ./Foreign/cstruct.scm 188 */
obj_t BgL_arg1748z00_232;
{ /* ./Foreign/cstruct.scm 188 */
obj_t BgL_arg1752z00_233;obj_t BgL_arg1755z00_234;
BgL_arg1752z00_233 = 
CNST_TABLE_REF(((long)31)); 
{ /* ./Foreign/cstruct.scm 188 */
obj_t BgL_arg1758z00_235;obj_t BgL_arg1760z00_236;
{ /* ./Foreign/cstruct.scm 59 */
obj_t BgL_arg2392z00_514;obj_t BgL_arg2393z00_515;
BgL_arg2392z00_514 = 
CNST_TABLE_REF(((long)3)); 
{ /* ./Foreign/cstruct.scm 59 */
obj_t BgL_arg2396z00_516;
{ /* ./Foreign/cstruct.scm 59 */
obj_t BgL_arg2399z00_517;
{ /* ./Foreign/cstruct.scm 59 */
obj_t BgL_arg2402z00_518;obj_t BgL_arg2403z00_519;
{ /* ./Foreign/cstruct.scm 59 */
obj_t BgL_arg2406z00_520;obj_t BgL_arg2407z00_521;
BgL_arg2406z00_520 = 
CNST_TABLE_REF(((long)4)); 
BgL_arg2407z00_521 = 
MAKE_PAIR(BgL_idz00_188, BNIL); 
BgL_arg2402z00_518 = 
MAKE_PAIR(BgL_arg2406z00_520, BgL_arg2407z00_521); } 
BgL_arg2403z00_519 = 
MAKE_PAIR(BGl_string2516z00zzforeign_cstructz00, BNIL); 
BgL_arg2399z00_517 = 
MAKE_PAIR(BgL_arg2402z00_518, BgL_arg2403z00_519); } 
BgL_arg2396z00_516 = 
MAKE_PAIR(BgL_idzd2ze3bidz31_191, BgL_arg2399z00_517); } 
BgL_arg2393z00_515 = 
MAKE_PAIR(BgL_bidz00_190, BgL_arg2396z00_516); } 
BgL_arg1758z00_235 = 
MAKE_PAIR(BgL_arg2392z00_514, BgL_arg2393z00_515); } 
{ /* ./Foreign/cstruct.scm 188 */
obj_t BgL_arg1766z00_237;
{ /* ./Foreign/cstruct.scm 62 */
obj_t BgL_mnamez00_506;
BgL_mnamez00_506 = 
string_append_3(BGl_string2517z00zzforeign_cstructz00, BgL_namezd2sanszd2z42z42_196, BGl_string2518z00zzforeign_cstructz00); 
{ /* ./Foreign/cstruct.scm 63 */
obj_t BgL_arg2373z00_507;obj_t BgL_arg2374z00_508;
BgL_arg2373z00_507 = 
CNST_TABLE_REF(((long)3)); 
{ /* ./Foreign/cstruct.scm 63 */
obj_t BgL_arg2377z00_509;
{ /* ./Foreign/cstruct.scm 63 */
obj_t BgL_arg2381z00_510;
{ /* ./Foreign/cstruct.scm 63 */
obj_t BgL_arg2384z00_511;obj_t BgL_arg2385z00_512;
BgL_arg2384z00_511 = 
MAKE_PAIR(BgL_bidz00_190, BNIL); 
BgL_arg2385z00_512 = 
MAKE_PAIR(BgL_mnamez00_506, BNIL); 
BgL_arg2381z00_510 = 
MAKE_PAIR(BgL_arg2384z00_511, BgL_arg2385z00_512); } 
BgL_arg2377z00_509 = 
MAKE_PAIR(BgL_bidzd2ze3idz31_192, BgL_arg2381z00_510); } 
BgL_arg2374z00_508 = 
MAKE_PAIR(BgL_idz00_188, BgL_arg2377z00_509); } 
BgL_arg1766z00_237 = 
MAKE_PAIR(BgL_arg2373z00_507, BgL_arg2374z00_508); } } 
BgL_arg1760z00_236 = 
MAKE_PAIR(BgL_arg1766z00_237, BNIL); } 
BgL_arg1755z00_234 = 
MAKE_PAIR(BgL_arg1758z00_235, BgL_arg1760z00_236); } 
BgL_arg1748z00_232 = 
MAKE_PAIR(BgL_arg1752z00_233, BgL_arg1755z00_234); } 
BGl_producezd2modulezd2clausez12z12zzmodule_modulez00(BgL_arg1748z00_232); } 
{ /* ./Foreign/cstruct.scm 190 */
obj_t BgL_arg1771z00_239;
{ /* ./Foreign/cstruct.scm 190 */
obj_t BgL_arg1775z00_240;obj_t BgL_arg1776z00_241;
BgL_arg1775z00_240 = 
CNST_TABLE_REF(((long)32)); 
{ /* ./Foreign/cstruct.scm 191 */
obj_t BgL_arg1779z00_242;
{ /* ./Foreign/cstruct.scm 191 */
obj_t BgL_arg1783z00_244;
{ /* ./Foreign/cstruct.scm 191 */
obj_t BgL_arg1786z00_245;
{ /* ./Foreign/cstruct.scm 191 */
obj_t BgL_auxz00_749;
BgL_auxz00_749 = 
CNST_TABLE_REF(((long)28)); 
BgL_arg1786z00_245 = 
MAKE_PAIR(BgL_auxz00_749, BNIL); } 
BgL_arg1783z00_244 = 
MAKE_PAIR(BgL_bidzf3zd2boolz21_194, BgL_arg1786z00_245); } 
BgL_arg1779z00_242 = 
BGl_makezd2protozd2inlinez00zzforeign_libraryz00(BgL_arg1783z00_244); } 
BgL_arg1776z00_241 = 
MAKE_PAIR(BgL_arg1779z00_242, BNIL); } 
BgL_arg1771z00_239 = 
MAKE_PAIR(BgL_arg1775z00_240, BgL_arg1776z00_241); } 
BGl_producezd2modulezd2clausez12z12zzmodule_modulez00(BgL_arg1771z00_239); } 
{ /* ./Foreign/cstruct.scm 192 */
obj_t BgL_arg1790z00_246;
{ /* ./Foreign/cstruct.scm 192 */
obj_t BgL_arg1793z00_247;obj_t BgL_arg1794z00_248;
BgL_arg1793z00_247 = 
CNST_TABLE_REF(((long)22)); 
{ /* ./Foreign/cstruct.scm 192 */
obj_t BgL_arg1798z00_249;
{ /* ./Foreign/cstruct.scm 192 */
obj_t BgL_arg1802z00_251;
{ /* ./Foreign/cstruct.scm 192 */
obj_t BgL_arg1805z00_252;
{ /* ./Foreign/cstruct.scm 192 */
obj_t BgL_arg1809z00_254;obj_t BgL_arg1810z00_255;
BgL_arg1809z00_254 = 
CNST_TABLE_REF(((long)33)); 
BgL_arg1810z00_255 = 
MAKE_PAIR(BgL_widz00_189, BNIL); 
BgL_arg1805z00_252 = 
MAKE_PAIR(BgL_arg1809z00_254, BgL_arg1810z00_255); } 
BgL_arg1802z00_251 = 
MAKE_PAIR(BgL_arg1805z00_252, BNIL); } 
BgL_arg1798z00_249 = 
MAKE_PAIR(BgL_bidzf3zf3_193, BgL_arg1802z00_251); } 
BgL_arg1794z00_248 = 
MAKE_PAIR(BgL_arg1798z00_249, BNIL); } 
BgL_arg1790z00_246 = 
MAKE_PAIR(BgL_arg1793z00_247, BgL_arg1794z00_248); } 
BGl_producezd2modulezd2clausez12z12zzmodule_modulez00(BgL_arg1790z00_246); } 
{ /* ./Foreign/cstruct.scm 194 */
obj_t BgL_arg1815z00_256;obj_t BgL_arg1816z00_257;
{ /* ./Foreign/cstruct.scm 99 */
obj_t BgL_arg2181z00_422;obj_t BgL_arg2182z00_423;
{ /* ./Foreign/cstruct.scm 99 */
obj_t BgL_arg2185z00_424;
{ /* ./Foreign/cstruct.scm 99 */
obj_t BgL_arg2190z00_426;
{ /* ./Foreign/cstruct.scm 99 */
obj_t BgL_list2193z00_427;
{ /* ./Foreign/cstruct.scm 99 */
obj_t BgL_arg2195z00_428;obj_t BgL_arg2196z00_429;
BgL_arg2195z00_428 = 
CNST_TABLE_REF(((long)21)); 
BgL_arg2196z00_429 = 
MAKE_PAIR(BgL_idz00_188, BNIL); 
BgL_list2193z00_427 = 
MAKE_PAIR(BgL_arg2195z00_428, BgL_arg2196z00_429); } 
BgL_arg2190z00_426 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list2193z00_427); } 
BgL_arg2185z00_424 = 
BGl_makezd2typedzd2identz00zzast_identz00(BgL_arg2190z00_426, BgL_idz00_188); } 
BgL_arg2181z00_422 = 
MAKE_PAIR(BgL_arg2185z00_424, BNIL); } 
{ /* ./Foreign/cstruct.scm 100 */
obj_t BgL_arg2200z00_430;obj_t BgL_arg2201z00_431;
BgL_arg2200z00_430 = 
BGl_makezd2typedzd2identz00zzast_identz00(
CNST_TABLE_REF(((long)22)), BgL_idz00_188); 
{ /* ./Foreign/cstruct.scm 101 */
obj_t BgL_arg2205z00_432;
{ /* ./Foreign/cstruct.scm 101 */
obj_t BgL_list2209z00_434;
{ /* ./Foreign/cstruct.scm 101 */
obj_t BgL_arg2212z00_436;
{ /* ./Foreign/cstruct.scm 101 */
obj_t BgL_arg2215z00_437;
{ /* ./Foreign/cstruct.scm 101 */
obj_t BgL_arg2219z00_439;
{ /* ./Foreign/cstruct.scm 101 */
obj_t BgL_arg2222z00_440;
BgL_arg2222z00_440 = 
MAKE_PAIR(BGl_string2522z00zzforeign_cstructz00, BNIL); 
BgL_arg2219z00_439 = 
MAKE_PAIR(BgL_siza7eofza7_199, BgL_arg2222z00_440); } 
BgL_arg2215z00_437 = 
MAKE_PAIR(BGl_string2523z00zzforeign_cstructz00, BgL_arg2219z00_439); } 
BgL_arg2212z00_436 = 
MAKE_PAIR(BgL_namezd2sanszd2z42z42_196, BgL_arg2215z00_437); } 
BgL_list2209z00_434 = 
MAKE_PAIR(BGl_string2517z00zzforeign_cstructz00, BgL_arg2212z00_436); } 
BgL_arg2205z00_432 = 
BGl_stringzd2appendzd2zz__r4_strings_6_7z00(BgL_list2209z00_434); } 
BgL_arg2201z00_431 = 
MAKE_PAIR(BgL_arg2205z00_432, BNIL); } 
BgL_arg2182z00_423 = 
MAKE_PAIR(BgL_arg2200z00_430, BgL_arg2201z00_431); } 
BgL_arg1815z00_256 = 
BGl_makezd2definezd2inlinez00zzforeign_libraryz00(BgL_arg2181z00_422, BgL_arg2182z00_423); } 
{ /* ./Foreign/cstruct.scm 195 */
obj_t BgL_arg1821z00_258;obj_t BgL_arg1822z00_259;
{ /* ./Foreign/cstruct.scm 107 */
obj_t BgL_formalszd2typedzd2_357;obj_t BgL_newz00_358;
{ /* ./Foreign/cstruct.scm 107 */
bool_t BgL_test2145z00_402;
BgL_test2145z00_402 = 
NULLP(BgL_cstructzd2fieldszd2_198); 
if(BgL_test2145z00_402)
{ /* ./Foreign/cstruct.scm 107 */
BgL_formalszd2typedzd2_357 = BNIL; }  else 
{ /* ./Foreign/cstruct.scm 107 */
obj_t BgL_head1589z00_403;
BgL_head1589z00_403 = 
MAKE_PAIR(BNIL, BNIL); 
{ 
obj_t BgL_l1587z00_404;obj_t BgL_tail1590z00_405;
BgL_l1587z00_404 = BgL_cstructzd2fieldszd2_198; 
BgL_tail1590z00_405 = BgL_head1589z00_403; 
BgL_map1588z00_406:
{ /* ./Foreign/cstruct.scm 107 */
bool_t BgL_test2147z00_407;
BgL_test2147z00_407 = 
NULLP(BgL_l1587z00_404); 
if(BgL_test2147z00_407)
{ /* ./Foreign/cstruct.scm 107 */
BgL_formalszd2typedzd2_357 = 
CDR(BgL_head1589z00_403); }  else 
{ /* ./Foreign/cstruct.scm 108 */
obj_t BgL_newtail1591z00_408;
{ /* ./Foreign/cstruct.scm 108 */
obj_t BgL_arg2155z00_410;
{ /* ./Foreign/cstruct.scm 108 */
obj_t BgL_fz00_412;
BgL_fz00_412 = 
CAR(BgL_l1587z00_404); 
{ /* ./Foreign/cstruct.scm 108 */
obj_t BgL_fzd2idzd2_413;
{ /* ./Foreign/cstruct.scm 108 */
obj_t BgL_auxz00_790;
BgL_auxz00_790 = 
CDR(BgL_fz00_412); 
BgL_fzd2idzd2_413 = 
CAR(BgL_auxz00_790); } 
{ /* ./Foreign/cstruct.scm 108 */
obj_t BgL_fzd2typezd2idz00_414;
BgL_fzd2typezd2idz00_414 = 
CAR(BgL_fz00_412); 
{ /* ./Foreign/cstruct.scm 109 */
BgL_typez00_bglt BgL_fzd2typezd2_415;
BgL_fzd2typezd2_415 = 
BGl_usezd2typez12zc0zztype_envz00(BgL_fzd2typezd2idz00_414, BgL_locz00_184); 
{ /* ./Foreign/cstruct.scm 110 */
BgL_typez00_bglt BgL_afzd2typezd2_416;
BgL_afzd2typezd2_416 = 
BGl_getzd2aliasedzd2typez00zztype_typez00(BgL_fzd2typezd2_415); 
{ /* ./Foreign/cstruct.scm 112 */

{ /* ./Foreign/cstruct.scm 114 */
bool_t BgL_test2158z00_417;
{ /* ./Foreign/cstruct.scm 114 */
obj_t BgL_obj1453z00_583;
BgL_obj1453z00_583 = 
(obj_t)(BgL_afzd2typezd2_416); 
BgL_test2158z00_417 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1453z00_583, BGl_cstructz00zzforeign_ctypez00); } 
if(BgL_test2158z00_417)
{ /* ./Foreign/cstruct.scm 117 */
obj_t BgL_arg2160z00_418;
{ /* ./Foreign/cstruct.scm 117 */
obj_t BgL_list2163z00_419;
{ /* ./Foreign/cstruct.scm 117 */
obj_t BgL_arg2165z00_420;
{ /* ./Foreign/cstruct.scm 117 */
obj_t BgL_auxz00_799;
BgL_auxz00_799 = 
CNST_TABLE_REF(((long)23)); 
BgL_arg2165z00_420 = 
MAKE_PAIR(BgL_auxz00_799, BNIL); } 
BgL_list2163z00_419 = 
MAKE_PAIR(BgL_fzd2typezd2idz00_414, BgL_arg2165z00_420); } 
BgL_arg2160z00_418 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list2163z00_419); } 
BgL_arg2155z00_410 = 
BGl_makezd2typedzd2identz00zzast_identz00(BgL_fzd2idzd2_413, BgL_arg2160z00_418); }  else 
{ /* ./Foreign/cstruct.scm 114 */
BgL_arg2155z00_410 = 
BGl_makezd2typedzd2identz00zzast_identz00(BgL_fzd2idzd2_413, BgL_fzd2typezd2idz00_414); } } } } } } } } 
BgL_newtail1591z00_408 = 
MAKE_PAIR(BgL_arg2155z00_410, BNIL); } 
SET_CDR(BgL_tail1590z00_405, BgL_newtail1591z00_408); 
{ /* ./Foreign/cstruct.scm 107 */
obj_t BgL_arg2151z00_409;
BgL_arg2151z00_409 = 
CDR(BgL_l1587z00_404); 
{ 
obj_t BgL_tail1590z00_810;obj_t BgL_l1587z00_809;
BgL_l1587z00_809 = BgL_arg2151z00_409; 
BgL_tail1590z00_810 = BgL_newtail1591z00_408; 
BgL_tail1590z00_405 = BgL_tail1590z00_810; 
BgL_l1587z00_404 = BgL_l1587z00_809; 
goto BgL_map1588z00_406;} } } } } } } 
BgL_newz00_358 = 
PROCEDURE_ENTRY(BGl_gensymz00zz__r4_symbols_6_4z00)(BGl_gensymz00zz__r4_symbols_6_4z00, 
CNST_TABLE_REF(((long)24)), BEOA); 
{ /* ./Foreign/cstruct.scm 123 */
obj_t BgL_arg2058z00_359;obj_t BgL_arg2059z00_360;
{ /* ./Foreign/cstruct.scm 123 */
obj_t BgL_arg2062z00_361;obj_t BgL_arg2063z00_362;
BgL_arg2062z00_361 = 
BGl_makezd2typedzd2identz00zzast_identz00(BgL_idz00_188, BgL_idz00_188); 
BgL_arg2063z00_362 = 
BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(BgL_formalszd2typedzd2_357, BNIL); 
BgL_arg2058z00_359 = 
MAKE_PAIR(BgL_arg2062z00_361, BgL_arg2063z00_362); } 
{ /* ./Foreign/cstruct.scm 124 */
obj_t BgL_arg2068z00_363;obj_t BgL_arg2069z00_364;
BgL_arg2068z00_363 = 
CNST_TABLE_REF(((long)25)); 
{ /* ./Foreign/cstruct.scm 124 */
obj_t BgL_arg2072z00_365;obj_t BgL_arg2073z00_366;
{ /* ./Foreign/cstruct.scm 124 */
obj_t BgL_arg2076z00_367;
{ /* ./Foreign/cstruct.scm 124 */
obj_t BgL_arg2080z00_369;obj_t BgL_arg2081z00_370;
BgL_arg2080z00_369 = 
BGl_makezd2typedzd2identz00zzast_identz00(BgL_newz00_358, BgL_idz00_188); 
{ /* ./Foreign/cstruct.scm 125 */
obj_t BgL_arg2085z00_371;
{ /* ./Foreign/cstruct.scm 125 */
obj_t BgL_arg2089z00_373;
{ /* ./Foreign/cstruct.scm 125 */
obj_t BgL_list2093z00_375;
{ /* ./Foreign/cstruct.scm 125 */
obj_t BgL_arg2095z00_376;obj_t BgL_arg2096z00_377;
BgL_arg2095z00_376 = 
CNST_TABLE_REF(((long)21)); 
BgL_arg2096z00_377 = 
MAKE_PAIR(BgL_idz00_188, BNIL); 
BgL_list2093z00_375 = 
MAKE_PAIR(BgL_arg2095z00_376, BgL_arg2096z00_377); } 
BgL_arg2089z00_373 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list2093z00_375); } 
BgL_arg2085z00_371 = 
MAKE_PAIR(BgL_arg2089z00_373, BNIL); } 
BgL_arg2081z00_370 = 
MAKE_PAIR(BgL_arg2085z00_371, BNIL); } 
BgL_arg2076z00_367 = 
MAKE_PAIR(BgL_arg2080z00_369, BgL_arg2081z00_370); } 
BgL_arg2072z00_365 = 
MAKE_PAIR(BgL_arg2076z00_367, BNIL); } 
{ /* ./Foreign/cstruct.scm 126 */
obj_t BgL_arg2100z00_378;obj_t BgL_arg2101z00_379;
{ /* ./Foreign/cstruct.scm 126 */
bool_t BgL_test2103z00_381;
BgL_test2103z00_381 = 
NULLP(BgL_cstructzd2fieldszd2_198); 
if(BgL_test2103z00_381)
{ /* ./Foreign/cstruct.scm 126 */
BgL_arg2100z00_378 = BNIL; }  else 
{ /* ./Foreign/cstruct.scm 126 */
obj_t BgL_head1594z00_382;
BgL_head1594z00_382 = 
MAKE_PAIR(BNIL, BNIL); 
{ 
obj_t BgL_l1592z00_383;obj_t BgL_tail1595z00_384;
BgL_l1592z00_383 = BgL_cstructzd2fieldszd2_198; 
BgL_tail1595z00_384 = BgL_head1594z00_382; 
BgL_map1593z00_385:
{ /* ./Foreign/cstruct.scm 126 */
bool_t BgL_test2105z00_386;
BgL_test2105z00_386 = 
NULLP(BgL_l1592z00_383); 
if(BgL_test2105z00_386)
{ /* ./Foreign/cstruct.scm 126 */
BgL_arg2100z00_378 = 
CDR(BgL_head1594z00_382); }  else 
{ /* ./Foreign/cstruct.scm 127 */
obj_t BgL_newtail1596z00_387;
{ /* ./Foreign/cstruct.scm 127 */
obj_t BgL_arg2113z00_389;
{ /* ./Foreign/cstruct.scm 127 */
obj_t BgL_fz00_391;
BgL_fz00_391 = 
CAR(BgL_l1592z00_383); 
{ /* ./Foreign/cstruct.scm 127 */
obj_t BgL_fzd2idzd2_392;
{ /* ./Foreign/cstruct.scm 127 */
obj_t BgL_auxz00_834;
BgL_auxz00_834 = 
CDR(BgL_fz00_391); 
BgL_fzd2idzd2_392 = 
CAR(BgL_auxz00_834); } 
{ /* ./Foreign/cstruct.scm 128 */
obj_t BgL_arg2118z00_393;obj_t BgL_arg2119z00_394;
{ /* ./Foreign/cstruct.scm 128 */
obj_t BgL_list2122z00_395;
{ /* ./Foreign/cstruct.scm 128 */
obj_t BgL_arg2124z00_396;
{ /* ./Foreign/cstruct.scm 128 */
obj_t BgL_arg2127z00_397;obj_t BgL_arg2128z00_398;
BgL_arg2127z00_397 = 
CNST_TABLE_REF(((long)26)); 
{ /* ./Foreign/cstruct.scm 128 */
obj_t BgL_arg2132z00_399;
{ /* ./Foreign/cstruct.scm 128 */
obj_t BgL_auxz00_838;
BgL_auxz00_838 = 
CNST_TABLE_REF(((long)27)); 
BgL_arg2132z00_399 = 
MAKE_PAIR(BgL_auxz00_838, BNIL); } 
BgL_arg2128z00_398 = 
MAKE_PAIR(BgL_fzd2idzd2_392, BgL_arg2132z00_399); } 
BgL_arg2124z00_396 = 
MAKE_PAIR(BgL_arg2127z00_397, BgL_arg2128z00_398); } 
BgL_list2122z00_395 = 
MAKE_PAIR(BgL_idz00_188, BgL_arg2124z00_396); } 
BgL_arg2118z00_393 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list2122z00_395); } 
{ /* ./Foreign/cstruct.scm 128 */
obj_t BgL_arg2136z00_400;
BgL_arg2136z00_400 = 
MAKE_PAIR(BgL_fzd2idzd2_392, BNIL); 
BgL_arg2119z00_394 = 
MAKE_PAIR(BgL_newz00_358, BgL_arg2136z00_400); } 
BgL_arg2113z00_389 = 
MAKE_PAIR(BgL_arg2118z00_393, BgL_arg2119z00_394); } } } 
BgL_newtail1596z00_387 = 
MAKE_PAIR(BgL_arg2113z00_389, BNIL); } 
SET_CDR(BgL_tail1595z00_384, BgL_newtail1596z00_387); 
{ /* ./Foreign/cstruct.scm 126 */
obj_t BgL_arg2109z00_388;
BgL_arg2109z00_388 = 
CDR(BgL_l1592z00_383); 
{ 
obj_t BgL_tail1595z00_852;obj_t BgL_l1592z00_851;
BgL_l1592z00_851 = BgL_arg2109z00_388; 
BgL_tail1595z00_852 = BgL_newtail1596z00_387; 
BgL_tail1595z00_384 = BgL_tail1595z00_852; 
BgL_l1592z00_383 = BgL_l1592z00_851; 
goto BgL_map1593z00_385;} } } } } } } 
BgL_arg2101z00_379 = 
MAKE_PAIR(BgL_newz00_358, BNIL); 
BgL_arg2073z00_366 = 
BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(BgL_arg2100z00_378, BgL_arg2101z00_379); } 
BgL_arg2069z00_364 = 
MAKE_PAIR(BgL_arg2072z00_365, BgL_arg2073z00_366); } 
BgL_arg2059z00_360 = 
MAKE_PAIR(BgL_arg2068z00_363, BgL_arg2069z00_364); } 
BgL_arg1821z00_258 = 
BGl_makezd2definezd2inlinez00zzforeign_libraryz00(BgL_arg2058z00_359, BgL_arg2059z00_360); } } 
{ /* ./Foreign/cstruct.scm 196 */
obj_t BgL_arg1826z00_260;obj_t BgL_arg1829z00_261;
{ /* ./Foreign/cstruct.scm 76 */
obj_t BgL_arg2292z00_471;obj_t BgL_arg2293z00_472;
{ /* ./Foreign/cstruct.scm 76 */
obj_t BgL_arg2296z00_473;obj_t BgL_arg2297z00_474;
{ /* ./Foreign/cstruct.scm 76 */
obj_t BgL_list2300z00_475;
{ /* ./Foreign/cstruct.scm 76 */
obj_t BgL_arg2303z00_476;obj_t BgL_arg2304z00_477;
BgL_arg2303z00_476 = 
CNST_TABLE_REF(((long)12)); 
{ /* ./Foreign/cstruct.scm 76 */
obj_t BgL_arg2307z00_478;
{ /* ./Foreign/cstruct.scm 76 */
obj_t BgL_auxz00_859;
BgL_auxz00_859 = 
CNST_TABLE_REF(((long)13)); 
BgL_arg2307z00_478 = 
MAKE_PAIR(BgL_auxz00_859, BNIL); } 
BgL_arg2304z00_477 = 
MAKE_PAIR(BgL_idz00_188, BgL_arg2307z00_478); } 
BgL_list2300z00_475 = 
MAKE_PAIR(BgL_arg2303z00_476, BgL_arg2304z00_477); } 
BgL_arg2296z00_473 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list2300z00_475); } 
{ /* ./Foreign/cstruct.scm 77 */
obj_t BgL_arg2311z00_479;obj_t BgL_arg2312z00_480;
BgL_arg2311z00_479 = 
BGl_makezd2typedzd2identz00zzast_identz00(
CNST_TABLE_REF(((long)14)), BgL_idz00_188); 
{ /* ./Foreign/cstruct.scm 78 */
obj_t BgL_arg2316z00_481;
BgL_arg2316z00_481 = 
BGl_makezd2typedzd2identz00zzast_identz00(
CNST_TABLE_REF(((long)15)), BgL_idz00_188); 
BgL_arg2312z00_480 = 
MAKE_PAIR(BgL_arg2316z00_481, BNIL); } 
BgL_arg2297z00_474 = 
MAKE_PAIR(BgL_arg2311z00_479, BgL_arg2312z00_480); } 
BgL_arg2292z00_471 = 
MAKE_PAIR(BgL_arg2296z00_473, BgL_arg2297z00_474); } 
BgL_arg2293z00_472 = 
CNST_TABLE_REF(((long)16)); 
BgL_arg1826z00_260 = 
BGl_makezd2definezd2inlinez00zzforeign_libraryz00(BgL_arg2292z00_471, BgL_arg2293z00_472); } 
{ /* ./Foreign/cstruct.scm 197 */
obj_t BgL_arg1833z00_262;obj_t BgL_arg1836z00_263;
{ /* ./Foreign/cstruct.scm 84 */
obj_t BgL_arg2262z00_458;obj_t BgL_arg2263z00_459;
{ /* ./Foreign/cstruct.scm 84 */
obj_t BgL_arg2266z00_460;obj_t BgL_arg2267z00_461;
{ /* ./Foreign/cstruct.scm 84 */
obj_t BgL_list2270z00_462;
{ /* ./Foreign/cstruct.scm 84 */
obj_t BgL_arg2272z00_463;
{ /* ./Foreign/cstruct.scm 84 */
obj_t BgL_auxz00_874;
BgL_auxz00_874 = 
CNST_TABLE_REF(((long)17)); 
BgL_arg2272z00_463 = 
MAKE_PAIR(BgL_auxz00_874, BNIL); } 
BgL_list2270z00_462 = 
MAKE_PAIR(BgL_idz00_188, BgL_arg2272z00_463); } 
BgL_arg2266z00_460 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list2270z00_462); } 
{ /* ./Foreign/cstruct.scm 85 */
obj_t BgL_arg2276z00_464;
BgL_arg2276z00_464 = 
BGl_makezd2typedzd2identz00zzast_identz00(
CNST_TABLE_REF(((long)8)), BgL_idz00_188); 
BgL_arg2267z00_461 = 
MAKE_PAIR(BgL_arg2276z00_464, BNIL); } 
BgL_arg2262z00_458 = 
MAKE_PAIR(BgL_arg2266z00_460, BgL_arg2267z00_461); } 
{ /* ./Foreign/cstruct.scm 86 */
obj_t BgL_arg2281z00_466;obj_t BgL_arg2282z00_467;
BgL_arg2281z00_466 = 
CNST_TABLE_REF(((long)18)); 
{ /* ./Foreign/cstruct.scm 86 */
obj_t BgL_arg2285z00_468;obj_t BgL_arg2286z00_469;
BgL_arg2285z00_468 = 
string_append_3(BGl_string2519z00zzforeign_cstructz00, BgL_namezd2sanszd2z42z42_196, BGl_string2520z00zzforeign_cstructz00); 
{ /* ./Foreign/cstruct.scm 86 */
obj_t BgL_auxz00_885;
BgL_auxz00_885 = 
CNST_TABLE_REF(((long)8)); 
BgL_arg2286z00_469 = 
MAKE_PAIR(BgL_auxz00_885, BNIL); } 
BgL_arg2282z00_467 = 
MAKE_PAIR(BgL_arg2285z00_468, BgL_arg2286z00_469); } 
BgL_arg2263z00_459 = 
MAKE_PAIR(BgL_arg2281z00_466, BgL_arg2282z00_467); } 
BgL_arg1833z00_262 = 
BGl_makezd2definezd2inlinez00zzforeign_libraryz00(BgL_arg2262z00_458, BgL_arg2263z00_459); } 
{ /* ./Foreign/cstruct.scm 198 */
obj_t BgL_arg1840z00_264;obj_t BgL_arg1842z00_265;
{ /* ./Foreign/cstruct.scm 92 */
obj_t BgL_arg2227z00_442;obj_t BgL_arg2228z00_443;
{ /* ./Foreign/cstruct.scm 92 */
obj_t BgL_arg2231z00_444;
{ /* ./Foreign/cstruct.scm 92 */
obj_t BgL_arg2235z00_446;
{ /* ./Foreign/cstruct.scm 92 */
obj_t BgL_list2238z00_447;
{ /* ./Foreign/cstruct.scm 92 */
obj_t BgL_arg2240z00_448;obj_t BgL_arg2241z00_449;
BgL_arg2240z00_448 = 
CNST_TABLE_REF(((long)19)); 
BgL_arg2241z00_449 = 
MAKE_PAIR(BgL_idz00_188, BNIL); 
BgL_list2238z00_447 = 
MAKE_PAIR(BgL_arg2240z00_448, BgL_arg2241z00_449); } 
BgL_arg2235z00_446 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list2238z00_447); } 
BgL_arg2231z00_444 = 
BGl_makezd2typedzd2identz00zzast_identz00(BgL_arg2235z00_446, BgL_idz00_188); } 
BgL_arg2227z00_442 = 
MAKE_PAIR(BgL_arg2231z00_444, BNIL); } 
{ /* ./Foreign/cstruct.scm 93 */
obj_t BgL_arg2245z00_450;obj_t BgL_arg2246z00_451;
{ /* ./Foreign/cstruct.scm 93 */
obj_t BgL_list2249z00_452;
{ /* ./Foreign/cstruct.scm 93 */
obj_t BgL_arg2251z00_453;obj_t BgL_arg2252z00_454;
BgL_arg2251z00_453 = 
CNST_TABLE_REF(((long)20)); 
BgL_arg2252z00_454 = 
MAKE_PAIR(BgL_idz00_188, BNIL); 
BgL_list2249z00_452 = 
MAKE_PAIR(BgL_arg2251z00_453, BgL_arg2252z00_454); } 
BgL_arg2245z00_450 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list2249z00_452); } 
{ /* ./Foreign/cstruct.scm 94 */
obj_t BgL_arg2256z00_455;
BgL_arg2256z00_455 = 
string_append_3(BGl_string2521z00zzforeign_cstructz00, BgL_namezd2sanszd2z42z42_196, BGl_string2520z00zzforeign_cstructz00); 
BgL_arg2246z00_451 = 
MAKE_PAIR(BgL_arg2256z00_455, BNIL); } 
BgL_arg2228z00_443 = 
MAKE_PAIR(BgL_arg2245z00_450, BgL_arg2246z00_451); } 
BgL_arg1840z00_264 = 
BGl_makezd2definezd2inlinez00zzforeign_libraryz00(BgL_arg2227z00_442, BgL_arg2228z00_443); } 
{ /* ./Foreign/cstruct.scm 199 */
obj_t BgL_arg1846z00_266;obj_t BgL_arg1848z00_267;
{ /* ./Foreign/cstruct.scm 68 */
obj_t BgL_arg2322z00_484;obj_t BgL_arg2323z00_485;
{ /* ./Foreign/cstruct.scm 68 */
obj_t BgL_arg2326z00_486;
{ /* ./Foreign/cstruct.scm 68 */
obj_t BgL_auxz00_905;
BgL_auxz00_905 = 
CNST_TABLE_REF(((long)5)); 
BgL_arg2326z00_486 = 
MAKE_PAIR(BgL_auxz00_905, BNIL); } 
BgL_arg2322z00_484 = 
MAKE_PAIR(BgL_bidzf3zd2boolz21_194, BgL_arg2326z00_486); } 
{ /* ./Foreign/cstruct.scm 69 */
obj_t BgL_arg2330z00_487;obj_t BgL_arg2331z00_488;
BgL_arg2330z00_487 = 
CNST_TABLE_REF(((long)6)); 
{ /* ./Foreign/cstruct.scm 69 */
obj_t BgL_arg2334z00_489;obj_t BgL_arg2335z00_490;
{ /* ./Foreign/cstruct.scm 69 */
obj_t BgL_arg2339z00_491;obj_t BgL_arg2341z00_492;
BgL_arg2339z00_491 = 
CNST_TABLE_REF(((long)7)); 
{ /* ./Foreign/cstruct.scm 69 */
obj_t BgL_auxz00_911;
BgL_auxz00_911 = 
CNST_TABLE_REF(((long)8)); 
BgL_arg2341z00_492 = 
MAKE_PAIR(BgL_auxz00_911, BNIL); } 
BgL_arg2334z00_489 = 
MAKE_PAIR(BgL_arg2339z00_491, BgL_arg2341z00_492); } 
{ /* ./Foreign/cstruct.scm 70 */
obj_t BgL_arg2345z00_493;obj_t BgL_arg2346z00_494;
{ /* ./Foreign/cstruct.scm 70 */
obj_t BgL_arg2349z00_495;obj_t BgL_arg2350z00_496;
BgL_arg2349z00_495 = 
CNST_TABLE_REF(((long)9)); 
{ /* ./Foreign/cstruct.scm 70 */
obj_t BgL_arg2353z00_497;obj_t BgL_arg2354z00_498;
{ /* ./Foreign/cstruct.scm 70 */
obj_t BgL_arg2357z00_499;obj_t BgL_arg2358z00_500;
BgL_arg2357z00_499 = 
CNST_TABLE_REF(((long)10)); 
{ /* ./Foreign/cstruct.scm 70 */
obj_t BgL_auxz00_917;
BgL_auxz00_917 = 
CNST_TABLE_REF(((long)8)); 
BgL_arg2358z00_500 = 
MAKE_PAIR(BgL_auxz00_917, BNIL); } 
BgL_arg2353z00_497 = 
MAKE_PAIR(BgL_arg2357z00_499, BgL_arg2358z00_500); } 
{ /* ./Foreign/cstruct.scm 70 */
obj_t BgL_arg2362z00_501;
{ /* ./Foreign/cstruct.scm 70 */
obj_t BgL_arg2366z00_503;obj_t BgL_arg2367z00_504;
BgL_arg2366z00_503 = 
CNST_TABLE_REF(((long)11)); 
BgL_arg2367z00_504 = 
MAKE_PAIR(BgL_bidz00_190, BNIL); 
BgL_arg2362z00_501 = 
MAKE_PAIR(BgL_arg2366z00_503, BgL_arg2367z00_504); } 
BgL_arg2354z00_498 = 
MAKE_PAIR(BgL_arg2362z00_501, BNIL); } 
BgL_arg2350z00_496 = 
MAKE_PAIR(BgL_arg2353z00_497, BgL_arg2354z00_498); } 
BgL_arg2345z00_493 = 
MAKE_PAIR(BgL_arg2349z00_495, BgL_arg2350z00_496); } 
BgL_arg2346z00_494 = 
MAKE_PAIR(BFALSE, BNIL); 
BgL_arg2335z00_490 = 
MAKE_PAIR(BgL_arg2345z00_493, BgL_arg2346z00_494); } 
BgL_arg2331z00_488 = 
MAKE_PAIR(BgL_arg2334z00_489, BgL_arg2335z00_490); } 
BgL_arg2323z00_485 = 
MAKE_PAIR(BgL_arg2330z00_487, BgL_arg2331z00_488); } 
BgL_arg1846z00_266 = 
BGl_makezd2definezd2inlinez00zzforeign_libraryz00(BgL_arg2322z00_484, BgL_arg2323z00_485); } 
{ 
obj_t BgL_fieldsz00_269;obj_t BgL_resz00_270;
BgL_fieldsz00_269 = BgL_cstructzd2fieldszd2_198; 
BgL_resz00_270 = BNIL; 
BgL_loopz00_271:
{ /* ./Foreign/cstruct.scm 182 */
bool_t BgL_test1855z00_272;
BgL_test1855z00_272 = 
NULLP(BgL_fieldsz00_269); 
if(BgL_test1855z00_272)
{ /* ./Foreign/cstruct.scm 182 */
BgL_arg1848z00_267 = BgL_resz00_270; }  else 
{ /* ./Foreign/cstruct.scm 184 */
obj_t BgL_arg1857z00_273;obj_t BgL_arg1859z00_274;
BgL_arg1857z00_273 = 
CDR(BgL_fieldsz00_269); 
{ /* ./Foreign/cstruct.scm 185 */
obj_t BgL_arg1864z00_275;
{ /* ./Foreign/cstruct.scm 185 */
obj_t BgL_arg1867z00_276;
BgL_arg1867z00_276 = 
CAR(BgL_fieldsz00_269); 
BgL_fieldz00_277 = BgL_arg1867z00_276; 
{ /* ./Foreign/cstruct.scm 135 */
obj_t BgL_fzd2typezd2idz00_279;
BgL_fzd2typezd2idz00_279 = 
CAR(BgL_fieldz00_277); 
{ /* ./Foreign/cstruct.scm 135 */
BgL_typez00_bglt BgL_fzd2typezd2_280;
BgL_fzd2typezd2_280 = 
BGl_usezd2typez12zc0zztype_envz00(BgL_fzd2typezd2idz00_279, BgL_locz00_184); 
{ /* ./Foreign/cstruct.scm 136 */
BgL_typez00_bglt BgL_afzd2typezd2_281;
BgL_afzd2typezd2_281 = 
BGl_getzd2aliasedzd2typez00zztype_typez00(BgL_fzd2typezd2_280); 
{ /* ./Foreign/cstruct.scm 137 */
obj_t BgL_fzd2idzd2_282;
{ /* ./Foreign/cstruct.scm 138 */
obj_t BgL_auxz00_939;
BgL_auxz00_939 = 
CDR(BgL_fieldz00_277); 
BgL_fzd2idzd2_282 = 
CAR(BgL_auxz00_939); } 
{ /* ./Foreign/cstruct.scm 138 */
obj_t BgL_fzd2namezd2_283;
{ /* ./Foreign/cstruct.scm 139 */
obj_t BgL_auxz00_942;
{ /* ./Foreign/cstruct.scm 139 */
obj_t BgL_auxz00_943;
BgL_auxz00_943 = 
CDR(BgL_fieldz00_277); 
BgL_auxz00_942 = 
CDR(BgL_auxz00_943); } 
BgL_fzd2namezd2_283 = 
CAR(BgL_auxz00_942); } 
{ /* ./Foreign/cstruct.scm 139 */
obj_t BgL_getzd2namezd2_284;
{ /* ./Foreign/cstruct.scm 140 */
obj_t BgL_list2042z00_352;
{ /* ./Foreign/cstruct.scm 140 */
obj_t BgL_arg2044z00_353;
{ /* ./Foreign/cstruct.scm 140 */
obj_t BgL_arg2047z00_354;obj_t BgL_arg2048z00_355;
BgL_arg2047z00_354 = 
CNST_TABLE_REF(((long)26)); 
BgL_arg2048z00_355 = 
MAKE_PAIR(BgL_fzd2idzd2_282, BNIL); 
BgL_arg2044z00_353 = 
MAKE_PAIR(BgL_arg2047z00_354, BgL_arg2048z00_355); } 
BgL_list2042z00_352 = 
MAKE_PAIR(BgL_idz00_188, BgL_arg2044z00_353); } 
BgL_getzd2namezd2_284 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list2042z00_352); } 
{ /* ./Foreign/cstruct.scm 140 */
obj_t BgL_setzd2namezd2_285;
{ /* ./Foreign/cstruct.scm 141 */
obj_t BgL_list2028z00_347;
{ /* ./Foreign/cstruct.scm 141 */
obj_t BgL_arg2030z00_348;
{ /* ./Foreign/cstruct.scm 141 */
obj_t BgL_arg2033z00_349;obj_t BgL_arg2035z00_350;
BgL_arg2033z00_349 = 
CNST_TABLE_REF(((long)26)); 
{ /* ./Foreign/cstruct.scm 141 */
obj_t BgL_arg2038z00_351;
{ /* ./Foreign/cstruct.scm 141 */
obj_t BgL_auxz00_953;
BgL_auxz00_953 = 
CNST_TABLE_REF(((long)27)); 
BgL_arg2038z00_351 = 
MAKE_PAIR(BgL_auxz00_953, BNIL); } 
BgL_arg2035z00_350 = 
MAKE_PAIR(BgL_fzd2idzd2_282, BgL_arg2038z00_351); } 
BgL_arg2030z00_348 = 
MAKE_PAIR(BgL_arg2033z00_349, BgL_arg2035z00_350); } 
BgL_list2028z00_347 = 
MAKE_PAIR(BgL_idz00_188, BgL_arg2030z00_348); } 
BgL_setzd2namezd2_285 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list2028z00_347); } 
{ /* ./Foreign/cstruct.scm 141 */
obj_t BgL_getzd2typezd2idz00_286;
{ /* ./Foreign/cstruct.scm 142 */
bool_t BgL_test2019z00_344;
{ /* ./Foreign/cstruct.scm 142 */
obj_t BgL_obj1453z00_567;
BgL_obj1453z00_567 = 
(obj_t)(BgL_afzd2typezd2_281); 
BgL_test2019z00_344 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1453z00_567, BGl_cstructz00zzforeign_ctypez00); } 
if(BgL_test2019z00_344)
{ /* ./Foreign/cstruct.scm 143 */
obj_t BgL_list2021z00_345;
{ /* ./Foreign/cstruct.scm 143 */
obj_t BgL_arg2023z00_346;
{ /* ./Foreign/cstruct.scm 143 */
obj_t BgL_auxz00_963;
BgL_auxz00_963 = 
CNST_TABLE_REF(((long)23)); 
BgL_arg2023z00_346 = 
MAKE_PAIR(BgL_auxz00_963, BNIL); } 
BgL_list2021z00_345 = 
MAKE_PAIR(BgL_fzd2typezd2idz00_279, BgL_arg2023z00_346); } 
BgL_getzd2typezd2idz00_286 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list2021z00_345); }  else 
{ /* ./Foreign/cstruct.scm 142 */
BgL_getzd2typezd2idz00_286 = BgL_fzd2typezd2idz00_279; } } 
{ /* ./Foreign/cstruct.scm 142 */
obj_t BgL_structzd2refzd2fmtz00_287;
{ /* ./Foreign/cstruct.scm 145 */
bool_t BgL_test1976z00_329;
{ /* ./Foreign/cstruct.scm 145 */
obj_t BgL_obj1453z00_568;
BgL_obj1453z00_568 = 
(obj_t)(BgL_afzd2typezd2_281); 
BgL_test1976z00_329 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1453z00_568, BGl_cstructz00zzforeign_ctypez00); } 
if(BgL_test1976z00_329)
{ /* ./Foreign/cstruct.scm 146 */
obj_t BgL_list1978z00_330;
{ /* ./Foreign/cstruct.scm 146 */
obj_t BgL_arg1982z00_332;
{ /* ./Foreign/cstruct.scm 146 */
obj_t BgL_arg1987z00_333;
{ /* ./Foreign/cstruct.scm 146 */
obj_t BgL_arg1993z00_335;
{ /* ./Foreign/cstruct.scm 146 */
obj_t BgL_arg1996z00_336;
BgL_arg1996z00_336 = 
MAKE_PAIR(BGl_string2524z00zzforeign_cstructz00, BNIL); 
BgL_arg1993z00_335 = 
MAKE_PAIR(BgL_fzd2namezd2_283, BgL_arg1996z00_336); } 
BgL_arg1987z00_333 = 
MAKE_PAIR(BGl_string2525z00zzforeign_cstructz00, BgL_arg1993z00_335); } 
BgL_arg1982z00_332 = 
MAKE_PAIR(BgL_namezd2sanszd2z42z42_196, BgL_arg1987z00_333); } 
BgL_list1978z00_330 = 
MAKE_PAIR(BGl_string2526z00zzforeign_cstructz00, BgL_arg1982z00_332); } 
BgL_structzd2refzd2fmtz00_287 = 
BGl_stringzd2appendzd2zz__r4_strings_6_7z00(BgL_list1978z00_330); }  else 
{ /* ./Foreign/cstruct.scm 148 */
obj_t BgL_list2000z00_337;
{ /* ./Foreign/cstruct.scm 148 */
obj_t BgL_arg2005z00_339;
{ /* ./Foreign/cstruct.scm 148 */
obj_t BgL_arg2008z00_340;
{ /* ./Foreign/cstruct.scm 148 */
obj_t BgL_arg2012z00_342;
{ /* ./Foreign/cstruct.scm 148 */
obj_t BgL_arg2015z00_343;
BgL_arg2015z00_343 = 
MAKE_PAIR(BGl_string2527z00zzforeign_cstructz00, BNIL); 
BgL_arg2012z00_342 = 
MAKE_PAIR(BgL_fzd2namezd2_283, BgL_arg2015z00_343); } 
BgL_arg2008z00_340 = 
MAKE_PAIR(BGl_string2525z00zzforeign_cstructz00, BgL_arg2012z00_342); } 
BgL_arg2005z00_339 = 
MAKE_PAIR(BgL_namezd2sanszd2z42z42_196, BgL_arg2008z00_340); } 
BgL_list2000z00_337 = 
MAKE_PAIR(BGl_string2528z00zzforeign_cstructz00, BgL_arg2005z00_339); } 
BgL_structzd2refzd2fmtz00_287 = 
BGl_stringzd2appendzd2zz__r4_strings_6_7z00(BgL_list2000z00_337); } } 
{ /* ./Foreign/cstruct.scm 145 */
obj_t BgL_structzd2setzd2fmtz00_288;
{ /* ./Foreign/cstruct.scm 150 */
obj_t BgL_list1960z00_322;
{ /* ./Foreign/cstruct.scm 150 */
obj_t BgL_arg1963z00_324;
{ /* ./Foreign/cstruct.scm 150 */
obj_t BgL_arg1966z00_325;
{ /* ./Foreign/cstruct.scm 150 */
obj_t BgL_arg1970z00_327;
{ /* ./Foreign/cstruct.scm 150 */
obj_t BgL_arg1973z00_328;
BgL_arg1973z00_328 = 
MAKE_PAIR(BGl_string2527z00zzforeign_cstructz00, BNIL); 
BgL_arg1970z00_327 = 
MAKE_PAIR(BgL_fzd2namezd2_283, BgL_arg1973z00_328); } 
BgL_arg1966z00_325 = 
MAKE_PAIR(BGl_string2525z00zzforeign_cstructz00, BgL_arg1970z00_327); } 
BgL_arg1963z00_324 = 
MAKE_PAIR(BgL_namezd2sanszd2z42z42_196, BgL_arg1966z00_325); } 
BgL_list1960z00_322 = 
MAKE_PAIR(BGl_string2529z00zzforeign_cstructz00, BgL_arg1963z00_324); } 
BgL_structzd2setzd2fmtz00_288 = 
BGl_stringzd2appendzd2zz__r4_strings_6_7z00(BgL_list1960z00_322); } 
{ /* ./Foreign/cstruct.scm 150 */
char * BgL_structzd2setvzd2fmtz00_289;
{ /* ./Foreign/cstruct.scm 152 */
bool_t BgL_test1957z00_321;
{ /* ./Foreign/cstruct.scm 152 */
obj_t BgL_obj1453z00_569;
BgL_obj1453z00_569 = 
(obj_t)(BgL_afzd2typezd2_281); 
BgL_test1957z00_321 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj1453z00_569, BGl_cstructz00zzforeign_ctypez00); } 
if(BgL_test1957z00_321)
{ /* ./Foreign/cstruct.scm 152 */
BgL_structzd2setvzd2fmtz00_289 = " = (*($2)), BUNSPEC)"; }  else 
{ /* ./Foreign/cstruct.scm 152 */
BgL_structzd2setvzd2fmtz00_289 = " = ($2), BUNSPEC)"; } } 
{ /* ./Foreign/cstruct.scm 152 */

{ /* ./Foreign/cstruct.scm 155 */
obj_t BgL_list1873z00_290;
{ /* ./Foreign/cstruct.scm 155 */
obj_t BgL_arg1875z00_291;
BgL_arg1875z00_291 = 
MAKE_PAIR(BgL_setzd2namezd2_285, BNIL); 
BgL_list1873z00_290 = 
MAKE_PAIR(BgL_getzd2namezd2_284, BgL_arg1875z00_291); } 
BGl_registerzd2foreignzd2accesszd2identsz12zc0zzforeign_libraryz00(BgL_list1873z00_290); } 
{ /* ./Foreign/cstruct.scm 157 */
obj_t BgL_arg1879z00_292;obj_t BgL_arg1880z00_293;
{ /* ./Foreign/cstruct.scm 157 */
obj_t BgL_arg1888z00_296;obj_t BgL_arg1889z00_297;
{ /* ./Foreign/cstruct.scm 157 */
obj_t BgL_arg1892z00_298;obj_t BgL_arg1893z00_299;
BgL_arg1892z00_298 = 
BGl_makezd2typedzd2identz00zzast_identz00(BgL_getzd2namezd2_284, BgL_getzd2typezd2idz00_286); 
{ /* ./Foreign/cstruct.scm 158 */
obj_t BgL_arg1897z00_300;
BgL_arg1897z00_300 = 
BGl_makezd2typedzd2identz00zzast_identz00(
CNST_TABLE_REF(((long)8)), BgL_idz00_188); 
BgL_arg1893z00_299 = 
MAKE_PAIR(BgL_arg1897z00_300, BNIL); } 
BgL_arg1888z00_296 = 
MAKE_PAIR(BgL_arg1892z00_298, BgL_arg1893z00_299); } 
{ /* ./Foreign/cstruct.scm 159 */
obj_t BgL_arg1902z00_302;obj_t BgL_arg1904z00_303;
BgL_arg1902z00_302 = 
BGl_makezd2typedzd2identz00zzast_identz00(
CNST_TABLE_REF(((long)22)), BgL_getzd2typezd2idz00_286); 
{ /* ./Foreign/cstruct.scm 159 */
obj_t BgL_arg1908z00_304;
{ /* ./Foreign/cstruct.scm 159 */
obj_t BgL_auxz00_1002;
BgL_auxz00_1002 = 
CNST_TABLE_REF(((long)8)); 
BgL_arg1908z00_304 = 
MAKE_PAIR(BgL_auxz00_1002, BNIL); } 
BgL_arg1904z00_303 = 
MAKE_PAIR(BgL_structzd2refzd2fmtz00_287, BgL_arg1908z00_304); } 
BgL_arg1889z00_297 = 
MAKE_PAIR(BgL_arg1902z00_302, BgL_arg1904z00_303); } 
BgL_arg1879z00_292 = 
BGl_makezd2definezd2inlinez00zzforeign_libraryz00(BgL_arg1888z00_296, BgL_arg1889z00_297); } 
{ /* ./Foreign/cstruct.scm 161 */
obj_t BgL_arg1915z00_305;obj_t BgL_arg1916z00_306;
{ /* ./Foreign/cstruct.scm 161 */
obj_t BgL_arg1919z00_307;obj_t BgL_arg1920z00_308;
{ /* ./Foreign/cstruct.scm 161 */
obj_t BgL_list1923z00_309;
{ /* ./Foreign/cstruct.scm 161 */
obj_t BgL_arg1925z00_310;
{ /* ./Foreign/cstruct.scm 161 */
obj_t BgL_auxz00_1008;
BgL_auxz00_1008 = 
CNST_TABLE_REF(((long)28)); 
BgL_arg1925z00_310 = 
MAKE_PAIR(BgL_auxz00_1008, BNIL); } 
BgL_list1923z00_309 = 
MAKE_PAIR(BgL_setzd2namezd2_285, BgL_arg1925z00_310); } 
BgL_arg1919z00_307 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list1923z00_309); } 
{ /* ./Foreign/cstruct.scm 162 */
obj_t BgL_arg1930z00_311;obj_t BgL_arg1931z00_312;
BgL_arg1930z00_311 = 
BGl_makezd2typedzd2identz00zzast_identz00(
CNST_TABLE_REF(((long)8)), BgL_idz00_188); 
{ /* ./Foreign/cstruct.scm 163 */
obj_t BgL_arg1935z00_313;
BgL_arg1935z00_313 = 
BGl_makezd2typedzd2identz00zzast_identz00(
CNST_TABLE_REF(((long)29)), BgL_getzd2typezd2idz00_286); 
BgL_arg1931z00_312 = 
MAKE_PAIR(BgL_arg1935z00_313, BNIL); } 
BgL_arg1920z00_308 = 
MAKE_PAIR(BgL_arg1930z00_311, BgL_arg1931z00_312); } 
BgL_arg1915z00_305 = 
MAKE_PAIR(BgL_arg1919z00_307, BgL_arg1920z00_308); } 
{ /* ./Foreign/cstruct.scm 164 */
obj_t BgL_arg1941z00_315;obj_t BgL_arg1945z00_316;
BgL_arg1941z00_315 = 
CNST_TABLE_REF(((long)22)); 
{ /* ./Foreign/cstruct.scm 165 */
obj_t BgL_arg1948z00_317;obj_t BgL_arg1949z00_318;
{ /* ./Foreign/cstruct.scm 165 */
obj_t BgL_auxz00_1021;
BgL_auxz00_1021 = 
string_to_bstring(BgL_structzd2setvzd2fmtz00_289); 
BgL_arg1948z00_317 = 
string_append(BgL_structzd2setzd2fmtz00_288, BgL_auxz00_1021); } 
{ /* ./Foreign/cstruct.scm 164 */
obj_t BgL_arg1953z00_319;obj_t BgL_arg1954z00_320;
BgL_arg1953z00_319 = 
CNST_TABLE_REF(((long)8)); 
{ /* ./Foreign/cstruct.scm 164 */
obj_t BgL_auxz00_1025;
BgL_auxz00_1025 = 
CNST_TABLE_REF(((long)29)); 
BgL_arg1954z00_320 = 
MAKE_PAIR(BgL_auxz00_1025, BNIL); } 
BgL_arg1949z00_318 = 
MAKE_PAIR(BgL_arg1953z00_319, BgL_arg1954z00_320); } 
BgL_arg1945z00_316 = 
MAKE_PAIR(BgL_arg1948z00_317, BgL_arg1949z00_318); } 
BgL_arg1916z00_306 = 
MAKE_PAIR(BgL_arg1941z00_315, BgL_arg1945z00_316); } 
BgL_arg1880z00_293 = 
BGl_makezd2definezd2inlinez00zzforeign_libraryz00(BgL_arg1915z00_305, BgL_arg1916z00_306); } 
{ /* ./Foreign/cstruct.scm 156 */
obj_t BgL_list1882z00_294;
{ /* ./Foreign/cstruct.scm 156 */
obj_t BgL_arg1884z00_295;
BgL_arg1884z00_295 = 
MAKE_PAIR(BgL_arg1880z00_293, BNIL); 
BgL_list1882z00_294 = 
MAKE_PAIR(BgL_arg1879z00_292, BgL_arg1884z00_295); } 
BgL_arg1864z00_275 = BgL_list1882z00_294; } } } } } } } } } } } } } } } 
BgL_arg1859z00_274 = 
bgl_append2(BgL_arg1864z00_275, BgL_resz00_270); } 
{ 
obj_t BgL_resz00_1036;obj_t BgL_fieldsz00_1035;
BgL_fieldsz00_1035 = BgL_arg1857z00_273; 
BgL_resz00_1036 = BgL_arg1859z00_274; 
BgL_resz00_270 = BgL_resz00_1036; 
BgL_fieldsz00_269 = BgL_fieldsz00_1035; 
goto BgL_loopz00_271;} } } } 
BgL_arg1842z00_265 = 
MAKE_PAIR(BgL_arg1846z00_266, BgL_arg1848z00_267); } 
BgL_arg1836z00_263 = 
MAKE_PAIR(BgL_arg1840z00_264, BgL_arg1842z00_265); } 
BgL_arg1829z00_261 = 
MAKE_PAIR(BgL_arg1833z00_262, BgL_arg1836z00_263); } 
BgL_arg1822z00_259 = 
MAKE_PAIR(BgL_arg1826z00_260, BgL_arg1829z00_261); } 
BgL_arg1816z00_257 = 
MAKE_PAIR(BgL_arg1821z00_258, BgL_arg1822z00_259); } 
return 
MAKE_PAIR(BgL_arg1815z00_256, BgL_arg1816z00_257);} } } } } } } } } } } } } } } } } } 
}



/* make-ctype-accesses!-cstruct1598 */
obj_t BGl_makezd2ctypezd2accessesz12zd2cstruct1598zc0zzforeign_cstructz00(obj_t BgL_envz00_610, obj_t BgL_whatz00_611, obj_t BgL_whoz00_612, obj_t BgL_locz00_613)
{ AN_OBJECT;
{ /* ./Foreign/cstruct.scm 32 */
return BNIL;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzforeign_cstructz00()
{ AN_OBJECT;
{ /* ./Foreign/cstruct.scm 15 */
BGl_modulezd2initializa7ationz75zztools_tracez00(((long)59211), "foreign_cstruct"); 
BGl_modulezd2initializa7ationz75zztype_toolsz00(((long)15091), "foreign_cstruct"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "foreign_cstruct"); 
BGl_modulezd2initializa7ationz75zztype_envz00(((long)25186), "foreign_cstruct"); 
BGl_modulezd2initializa7ationz75zztools_shapez00(((long)30833), "foreign_cstruct"); 
BGl_modulezd2initializa7ationz75zztools_miscz00(((long)64117), "foreign_cstruct"); 
BGl_modulezd2initializa7ationz75zzforeign_ctypez00(((long)51394), "foreign_cstruct"); 
BGl_modulezd2initializa7ationz75zzforeign_accessz00(((long)13730), "foreign_cstruct"); 
BGl_modulezd2initializa7ationz75zzforeign_libraryz00(((long)43975), "foreign_cstruct"); 
BGl_modulezd2initializa7ationz75zzmodule_modulez00(((long)8699), "foreign_cstruct"); 
return 
BGl_modulezd2initializa7ationz75zzast_identz00(((long)51504), "foreign_cstruct");} 
}

