/*===========================================================================*/
/*   (Llib/struct.scm)                                                       */
/*   Bigloo (2.6b)                                                           */
/*   Inria -- Sophia Antipolis (c)       Mon Dec 15 12:14:36 CET 2003        */
/*===========================================================================*/
/* COMPILATION: (/users/serrano/prgm/project/bigloo/bin/bigloo -O3 -mklib -cc gcc-2.95 -fsharing -q -rm -s -unsafev -eval (set! *indent* 4) -copt -DBGL_NO_PIC -g -c Llib/struct.scm -indent -o objs/obj_s/Llib/struct.c)*/
/* GC selection */
#define THE_GC BOEHM_GC

/* debug mode */
#define BIGLOO_DEBUG 1

#include <bigloo.h>
#include <signal.h>

BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zz__structurez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
extern obj_t BGl_debugzd2errorzf2locationz20zz__errorz00(obj_t, obj_t, obj_t, obj_t, obj_t);
static obj_t BGl__recordzf3zf3zz__structurez00(obj_t, obj_t);
static obj_t BGl_symbol1878z00zz__structurez00 = BUNSPEC;
static obj_t BGl_symbol1877z00zz__structurez00 = BUNSPEC;
static obj_t BGl_symbol1873z00zz__structurez00 = BUNSPEC;
static obj_t BGl_symbol1872z00zz__structurez00 = BUNSPEC;
static obj_t BGl_symbol1871z00zz__structurez00 = BUNSPEC;
static obj_t BGl_symbol1870z00zz__structurez00 = BUNSPEC;
static obj_t BGl_symbol1869z00zz__structurez00 = BUNSPEC;
BGL_EXPORTED_DECL obj_t BGl_makezd2structzd2zz__structurez00(obj_t, int, obj_t);
static obj_t BGl_symbol1868z00zz__structurez00 = BUNSPEC;
static obj_t BGl_symbol1867z00zz__structurez00 = BUNSPEC;
static obj_t BGl_symbol1866z00zz__structurez00 = BUNSPEC;
static obj_t BGl_symbol1865z00zz__structurez00 = BUNSPEC;
static obj_t BGl_symbol1863z00zz__structurez00 = BUNSPEC;
static obj_t BGl_symbol1862z00zz__structurez00 = BUNSPEC;
static obj_t BGl_symbol1861z00zz__structurez00 = BUNSPEC;
static obj_t BGl_symbol1860z00zz__structurez00 = BUNSPEC;
static obj_t BGl_symbol1856z00zz__structurez00 = BUNSPEC;
static obj_t BGl_symbol1855z00zz__structurez00 = BUNSPEC;
BGL_EXPORTED_DECL bool_t BGl_recordzf3zf3zz__structurez00(obj_t);
BGL_EXPORTED_DECL obj_t BGl_structzd2setz12zc0zz__structurez00(obj_t, int, obj_t);
BGL_EXPORTED_DECL int BGl_structzd2lengthzd2zz__structurez00(obj_t);
static obj_t BGl_cnstzd2initzd2zz__structurez00();
BGL_EXPORTED_DECL obj_t BGl_structzd2refzd2zz__structurez00(obj_t, int);
static obj_t BGl__structzd2updatez12zc0zz__structurez00(obj_t, obj_t, obj_t);
static obj_t BGl__structzd2lengthzd2zz__structurez00(obj_t, obj_t);
static obj_t BGl__structzf3zf3zz__structurez00(obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_structzd2keyzd2setz12z12zz__structurez00(obj_t, obj_t);
extern obj_t string_to_symbol(char *);
BGL_EXPORTED_DECL bool_t BGl_structzf3zf3zz__structurez00(obj_t);
BGL_EXPORTED_DECL obj_t BGl_structzd2keyzd2zz__structurez00(obj_t);
static obj_t BGl__structzd2refzd2zz__structurez00(obj_t, obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_structzd2updatez12zc0zz__structurez00(obj_t, obj_t);
static obj_t BGl__structzd2setz12zc0zz__structurez00(obj_t, obj_t, obj_t, obj_t);
static obj_t BGl_importedzd2moduleszd2initz00zz__structurez00();
extern obj_t make_struct(obj_t, int, obj_t);
extern obj_t BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(obj_t, obj_t, obj_t, obj_t, obj_t);
static obj_t BGl_requirezd2initializa7ationz75zz__structurez00 = BUNSPEC;
static obj_t BGl__structzd2keyzd2zz__structurez00(obj_t, obj_t);
static obj_t BGl__makezd2structzd2zz__structurez00(obj_t, obj_t, obj_t, obj_t);
extern obj_t BGl_errorzf2czd2locationz20zz__errorz00(obj_t, obj_t, obj_t, char *, long);
static obj_t BGl__structzd2keyzd2setz12z12zz__structurez00(obj_t, obj_t, obj_t);
static obj_t *__cnst;


DEFINE_EXPORT_PROCEDURE( BGl_structzd2keyzd2envz00zz__structurez00, BgL_bgl__structza7d2keyza7d2za7za7__structureza7001890za7, BGl__structzd2keyzd2zz__structurez00, 0L, 1 );
DEFINE_STRING( BGl_string1876z00zz__structurez00, BgL_bgl_string1876za700za7za7__structureza7001891z00, "Incompatible structures", 23 );
DEFINE_STRING( BGl_string1875z00zz__structurez00, BgL_bgl_string1875za700za7za7__structureza7001892z00, "struct-update!", 14 );
DEFINE_STRING( BGl_string1874z00zz__structurez00, BgL_bgl_string1874za700za7za7__structureza7001893z00, "pair-nil", 8 );
DEFINE_STRING( BGl_string1864z00zz__structurez00, BgL_bgl_string1864za700za7za7__structureza7001894z00, "struct", 6 );
DEFINE_STRING( BGl_string1859z00zz__structurez00, BgL_bgl_string1859za700za7za7__structureza7001895z00, "int", 3 );
DEFINE_STRING( BGl_string1858z00zz__structurez00, BgL_bgl_string1858za700za7za7__structureza7001896z00, "/tmp/bigloo/runtime/./Llib/struct.scm", 37 );
DEFINE_STRING( BGl_string1857z00zz__structurez00, BgL_bgl_string1857za700za7za7__structureza7001897z00, "symbol", 6 );
DEFINE_EXPORT_PROCEDURE( BGl_structzf3zd2envz21zz__structurez00, BgL_bgl__structza7f3za7f3za7za7__structureza7001898za7, BGl__structzf3zf3zz__structurez00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_makezd2structzd2envz00zz__structurez00, BgL_bgl__makeza7d2structza7d2za7za7__structureza7001899za7, BGl__makezd2structzd2zz__structurez00, 0L, 3 );
DEFINE_EXPORT_PROCEDURE( BGl_structzd2refzd2envz00zz__structurez00, BgL_bgl__structza7d2refza7d2za7za7__structureza7001900za7, BGl__structzd2refzd2zz__structurez00, 0L, 2 );
DEFINE_EXPORT_PROCEDURE( BGl_recordzf3zd2envz21zz__structurez00, BgL_bgl__recordza7f3za7f3za7za7__structureza7001901za7, BGl__recordzf3zf3zz__structurez00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_structzd2lengthzd2envz00zz__structurez00, BgL_bgl__structza7d2lengthza7d2za7za7__structureza7001902za7, BGl__structzd2lengthzd2zz__structurez00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_structzd2updatez12zd2envz12zz__structurez00, BgL_bgl__structza7d2updateza712za7c0za7za7__structureza7001903z00, BGl__structzd2updatez12zc0zz__structurez00, 0L, 2 );
DEFINE_EXPORT_PROCEDURE( BGl_structzd2keyzd2setz12zd2envzc0zz__structurez00, BgL_bgl__structza7d2keyza7d2setza712za712za7za7__structureza7001904za7, BGl__structzd2keyzd2setz12z12zz__structurez00, 0L, 2 );
DEFINE_EXPORT_PROCEDURE( BGl_structzd2setz12zd2envz12zz__structurez00, BgL_bgl__structza7d2setza712za7c0za7za7__structureza7001905z00, BGl__structzd2setz12zc0zz__structurez00, 0L, 3 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zz__structurez00(long BgL_checksumz00_616, char * BgL_fromz00_617)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zz__structurez00))
{ 
BGl_requirezd2initializa7ationz75zz__structurez00 = 
BBOOL(((bool_t)0)); 
BGl_cnstzd2initzd2zz__structurez00(); 
BGl_importedzd2moduleszd2initz00zz__structurez00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zz__structurez00()
{ AN_OBJECT;
{ /* ./Llib/struct.scm 18 */
BGl_symbol1855z00zz__structurez00 = 
string_to_symbol("make-struct"); 
BGl_symbol1856z00zz__structurez00 = 
string_to_symbol("_make-struct"); 
BGl_symbol1860z00zz__structurez00 = 
string_to_symbol("struct?"); 
BGl_symbol1861z00zz__structurez00 = 
string_to_symbol("record?"); 
BGl_symbol1862z00zz__structurez00 = 
string_to_symbol("struct-key"); 
BGl_symbol1863z00zz__structurez00 = 
string_to_symbol("_struct-key"); 
BGl_symbol1865z00zz__structurez00 = 
string_to_symbol("struct-key-set!"); 
BGl_symbol1866z00zz__structurez00 = 
string_to_symbol("_struct-key-set!"); 
BGl_symbol1867z00zz__structurez00 = 
string_to_symbol("struct-length"); 
BGl_symbol1868z00zz__structurez00 = 
string_to_symbol("_struct-length"); 
BGl_symbol1869z00zz__structurez00 = 
string_to_symbol("struct-ref"); 
BGl_symbol1870z00zz__structurez00 = 
string_to_symbol("_struct-ref"); 
BGl_symbol1871z00zz__structurez00 = 
string_to_symbol("struct-set!"); 
BGl_symbol1872z00zz__structurez00 = 
string_to_symbol("_struct-set!"); 
BGl_symbol1873z00zz__structurez00 = 
string_to_symbol("struct-update!"); 
BGl_symbol1877z00zz__structurez00 = 
string_to_symbol("_struct-update!"); 
return ( 
BGl_symbol1878z00zz__structurez00 = 
string_to_symbol("%import@__structure"), BUNSPEC) ;} 
}



/* make-struct */
BGL_EXPORTED_DEF obj_t BGl_makezd2structzd2zz__structurez00(obj_t BgL_keyz00_1, int BgL_lenz00_2, obj_t BgL_initz00_3)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 117 */
{ /* ./Llib/struct.scm 118 */
obj_t BgL_symbol1628z00_558;
BgL_symbol1628z00_558 = BGl_symbol1855z00zz__structurez00; 
{ /* ./Llib/struct.scm 118 */

PUSH_TRACE(BgL_symbol1628z00_558); BUNSPEC; 
{ /* ./Llib/struct.scm 118 */
obj_t BgL_aux1627z00_559;
BgL_aux1627z00_559 = 
make_struct(BgL_keyz00_1, BgL_lenz00_2, BgL_initz00_3); 
POP_TRACE(); 
return BgL_aux1627z00_559;} } } } 
}



/* _make-struct */
obj_t BGl__makezd2structzd2zz__structurez00(obj_t BgL_envz00_501, obj_t BgL_keyz00_502, obj_t BgL_lenz00_503, obj_t BgL_initz00_504)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 117 */
{ /* ./Llib/struct.scm 118 */
obj_t BgL_res1879z00_565;
{ /* ./Llib/struct.scm 118 */
obj_t BgL_keyz00_560;int BgL_lenz00_561;
if(
SYMBOLP(BgL_keyz00_502))
{ /* ./Llib/struct.scm 118 */
BgL_keyz00_560 = BgL_keyz00_502; }  else 
{ /* ./Llib/struct.scm 118 */
BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(BGl_symbol1856z00zz__structurez00, BGl_string1857z00zz__structurez00, BgL_keyz00_502, BGl_string1858z00zz__structurez00, 
BINT(((long)5025))); 
exit( -1 );} 
{ /* ./Llib/struct.scm 118 */
obj_t BgL_auxz00_648;
if(
INTEGERP(BgL_lenz00_503))
{ /* ./Llib/struct.scm 118 */
BgL_auxz00_648 = BgL_lenz00_503
; }  else 
{ /* ./Llib/struct.scm 118 */
BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(BGl_symbol1856z00zz__structurez00, BGl_string1859z00zz__structurez00, BgL_lenz00_503, BGl_string1858z00zz__structurez00, 
BINT(((long)5025))); 
exit( -1 );} 
BgL_lenz00_561 = 
CINT(BgL_auxz00_648); } 
{ /* ./Llib/struct.scm 118 */
obj_t BgL_symbol1628z00_563;
BgL_symbol1628z00_563 = BGl_symbol1855z00zz__structurez00; 
{ /* ./Llib/struct.scm 118 */

PUSH_TRACE(BgL_symbol1628z00_563); BUNSPEC; 
{ /* ./Llib/struct.scm 118 */
obj_t BgL_aux1627z00_564;
BgL_aux1627z00_564 = 
make_struct(BgL_keyz00_560, BgL_lenz00_561, BgL_initz00_504); 
POP_TRACE(); 
BgL_res1879z00_565 = BgL_aux1627z00_564; } } } } 
return BgL_res1879z00_565;} } 
}



/* struct? */
BGL_EXPORTED_DEF bool_t BGl_structzf3zf3zz__structurez00(obj_t BgL_oz00_4)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 123 */
{ /* ./Llib/struct.scm 124 */
obj_t BgL_symbol1632z00_566;
BgL_symbol1632z00_566 = BGl_symbol1860z00zz__structurez00; 
{ /* ./Llib/struct.scm 124 */

PUSH_TRACE(BgL_symbol1632z00_566); BUNSPEC; 
{ /* ./Llib/struct.scm 124 */
bool_t BgL_aux1631z00_567;
BgL_aux1631z00_567 = 
STRUCTP(BgL_oz00_4); 
POP_TRACE(); 
return BgL_aux1631z00_567;} } } } 
}



/* _struct? */
obj_t BGl__structzf3zf3zz__structurez00(obj_t BgL_envz00_505, obj_t BgL_oz00_506)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 123 */
{ /* ./Llib/struct.scm 124 */
bool_t BgL_auxz00_661;
{ /* ./Llib/struct.scm 124 */
bool_t BgL_res1880z00_571;
{ /* ./Llib/struct.scm 124 */
obj_t BgL_symbol1632z00_569;
BgL_symbol1632z00_569 = BGl_symbol1860z00zz__structurez00; 
{ /* ./Llib/struct.scm 124 */

PUSH_TRACE(BgL_symbol1632z00_569); BUNSPEC; 
{ /* ./Llib/struct.scm 124 */
bool_t BgL_aux1631z00_570;
BgL_aux1631z00_570 = 
STRUCTP(BgL_oz00_506); 
POP_TRACE(); 
BgL_res1880z00_571 = BgL_aux1631z00_570; } } } 
BgL_auxz00_661 = BgL_res1880z00_571; } 
return 
BBOOL(BgL_auxz00_661);} } 
}



/* record? */
BGL_EXPORTED_DEF bool_t BGl_recordzf3zf3zz__structurez00(obj_t BgL_oz00_5)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 129 */
{ /* ./Llib/struct.scm 130 */
obj_t BgL_symbol1636z00_572;
BgL_symbol1636z00_572 = BGl_symbol1861z00zz__structurez00; 
{ /* ./Llib/struct.scm 130 */

PUSH_TRACE(BgL_symbol1636z00_572); BUNSPEC; 
{ /* ./Llib/struct.scm 130 */
bool_t BgL_aux1635z00_573;
BgL_aux1635z00_573 = 
STRUCTP(BgL_oz00_5); 
POP_TRACE(); 
return BgL_aux1635z00_573;} } } } 
}



/* _record? */
obj_t BGl__recordzf3zf3zz__structurez00(obj_t BgL_envz00_507, obj_t BgL_oz00_508)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 129 */
{ /* ./Llib/struct.scm 130 */
bool_t BgL_auxz00_669;
{ /* ./Llib/struct.scm 130 */
bool_t BgL_res1881z00_577;
{ /* ./Llib/struct.scm 130 */
obj_t BgL_symbol1636z00_575;
BgL_symbol1636z00_575 = BGl_symbol1861z00zz__structurez00; 
{ /* ./Llib/struct.scm 130 */

PUSH_TRACE(BgL_symbol1636z00_575); BUNSPEC; 
{ /* ./Llib/struct.scm 130 */
bool_t BgL_aux1635z00_576;
BgL_aux1635z00_576 = 
STRUCTP(BgL_oz00_508); 
POP_TRACE(); 
BgL_res1881z00_577 = BgL_aux1635z00_576; } } } 
BgL_auxz00_669 = BgL_res1881z00_577; } 
return 
BBOOL(BgL_auxz00_669);} } 
}



/* struct-key */
BGL_EXPORTED_DEF obj_t BGl_structzd2keyzd2zz__structurez00(obj_t BgL_sz00_6)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 135 */
{ /* ./Llib/struct.scm 136 */
obj_t BgL_symbol1640z00_578;
BgL_symbol1640z00_578 = BGl_symbol1862z00zz__structurez00; 
{ /* ./Llib/struct.scm 136 */

PUSH_TRACE(BgL_symbol1640z00_578); BUNSPEC; 
{ /* ./Llib/struct.scm 136 */
obj_t BgL_aux1639z00_579;
{ /* ./Llib/struct.scm 136 */
obj_t BgL_aux1700z00_580;
BgL_aux1700z00_580 = 
STRUCT_KEY(BgL_sz00_6); 
if(
SYMBOLP(BgL_aux1700z00_580))
{ /* ./Llib/struct.scm 136 */
BgL_aux1639z00_579 = BgL_aux1700z00_580; }  else 
{ /* ./Llib/struct.scm 136 */
BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(BGl_symbol1862z00zz__structurez00, BGl_string1857z00zz__structurez00, BgL_aux1700z00_580, BGl_string1858z00zz__structurez00, 
BINT(((long)5847))); 
exit( -1 );} } 
POP_TRACE(); 
return BgL_aux1639z00_579;} } } } 
}



/* _struct-key */
obj_t BGl__structzd2keyzd2zz__structurez00(obj_t BgL_envz00_509, obj_t BgL_sz00_510)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 135 */
{ /* ./Llib/struct.scm 136 */
obj_t BgL_res1882z00_585;
{ /* ./Llib/struct.scm 136 */
obj_t BgL_sz00_581;
if(
STRUCTP(BgL_sz00_510))
{ /* ./Llib/struct.scm 136 */
BgL_sz00_581 = BgL_sz00_510; }  else 
{ /* ./Llib/struct.scm 136 */
BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(BGl_symbol1863z00zz__structurez00, BGl_string1864z00zz__structurez00, BgL_sz00_510, BGl_string1858z00zz__structurez00, 
BINT(((long)5847))); 
exit( -1 );} 
{ /* ./Llib/struct.scm 136 */
obj_t BgL_symbol1640z00_582;
BgL_symbol1640z00_582 = BGl_symbol1862z00zz__structurez00; 
{ /* ./Llib/struct.scm 136 */

PUSH_TRACE(BgL_symbol1640z00_582); BUNSPEC; 
{ /* ./Llib/struct.scm 136 */
obj_t BgL_aux1639z00_583;
{ /* ./Llib/struct.scm 136 */
obj_t BgL_aux1700z00_584;
BgL_aux1700z00_584 = 
STRUCT_KEY(BgL_sz00_581); 
if(
SYMBOLP(BgL_aux1700z00_584))
{ /* ./Llib/struct.scm 136 */
BgL_aux1639z00_583 = BgL_aux1700z00_584; }  else 
{ /* ./Llib/struct.scm 136 */
BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(BGl_symbol1862z00zz__structurez00, BGl_string1857z00zz__structurez00, BgL_aux1700z00_584, BGl_string1858z00zz__structurez00, 
BINT(((long)5847))); 
exit( -1 );} } 
POP_TRACE(); 
BgL_res1882z00_585 = BgL_aux1639z00_583; } } } } 
return BgL_res1882z00_585;} } 
}



/* struct-key-set! */
BGL_EXPORTED_DEF obj_t BGl_structzd2keyzd2setz12z12zz__structurez00(obj_t BgL_sz00_7, obj_t BgL_kz00_8)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 141 */
{ /* ./Llib/struct.scm 142 */
obj_t BgL_symbol1644z00_586;
BgL_symbol1644z00_586 = BGl_symbol1865z00zz__structurez00; 
{ /* ./Llib/struct.scm 142 */

PUSH_TRACE(BgL_symbol1644z00_586); BUNSPEC; 
{ /* ./Llib/struct.scm 142 */
obj_t BgL_aux1643z00_587;
BgL_aux1643z00_587 = 
STRUCT_KEY_SET(BgL_sz00_7, BgL_kz00_8); 
POP_TRACE(); 
return BgL_aux1643z00_587;} } } } 
}



/* _struct-key-set! */
obj_t BGl__structzd2keyzd2setz12z12zz__structurez00(obj_t BgL_envz00_511, obj_t BgL_sz00_512, obj_t BgL_kz00_513)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 141 */
{ /* ./Llib/struct.scm 142 */
obj_t BgL_sz00_588;obj_t BgL_kz00_589;
if(
STRUCTP(BgL_sz00_512))
{ /* ./Llib/struct.scm 142 */
BgL_sz00_588 = BgL_sz00_512; }  else 
{ /* ./Llib/struct.scm 142 */
BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(BGl_symbol1866z00zz__structurez00, BGl_string1864z00zz__structurez00, BgL_sz00_512, BGl_string1858z00zz__structurez00, 
BINT(((long)6128))); 
exit( -1 );} 
if(
SYMBOLP(BgL_kz00_513))
{ /* ./Llib/struct.scm 142 */
BgL_kz00_589 = BgL_kz00_513; }  else 
{ /* ./Llib/struct.scm 142 */
BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(BGl_symbol1866z00zz__structurez00, BGl_string1857z00zz__structurez00, BgL_kz00_513, BGl_string1858z00zz__structurez00, 
BINT(((long)6128))); 
exit( -1 );} 
{ /* ./Llib/struct.scm 142 */
obj_t BgL_symbol1644z00_590;
BgL_symbol1644z00_590 = BGl_symbol1865z00zz__structurez00; 
{ /* ./Llib/struct.scm 142 */

PUSH_TRACE(BgL_symbol1644z00_590); BUNSPEC; 
{ /* ./Llib/struct.scm 142 */
obj_t BgL_aux1643z00_591;
BgL_aux1643z00_591 = 
STRUCT_KEY_SET(BgL_sz00_588, BgL_kz00_589); 
POP_TRACE(); 
return BgL_aux1643z00_591;} } } } } 
}



/* struct-length */
BGL_EXPORTED_DEF int BGl_structzd2lengthzd2zz__structurez00(obj_t BgL_sz00_9)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 147 */
{ /* ./Llib/struct.scm 148 */
obj_t BgL_symbol1648z00_592;
BgL_symbol1648z00_592 = BGl_symbol1867z00zz__structurez00; 
{ /* ./Llib/struct.scm 148 */

PUSH_TRACE(BgL_symbol1648z00_592); BUNSPEC; 
{ /* ./Llib/struct.scm 148 */
int BgL_aux1647z00_593;
BgL_aux1647z00_593 = 
STRUCT_LENGTH(BgL_sz00_9); 
POP_TRACE(); 
return BgL_aux1647z00_593;} } } } 
}



/* _struct-length */
obj_t BGl__structzd2lengthzd2zz__structurez00(obj_t BgL_envz00_514, obj_t BgL_sz00_515)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 147 */
{ /* ./Llib/struct.scm 148 */
int BgL_auxz00_714;
{ /* ./Llib/struct.scm 148 */
int BgL_res1883z00_597;
{ /* ./Llib/struct.scm 148 */
obj_t BgL_sz00_594;
if(
STRUCTP(BgL_sz00_515))
{ /* ./Llib/struct.scm 148 */
BgL_sz00_594 = BgL_sz00_515; }  else 
{ /* ./Llib/struct.scm 148 */
BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(BGl_symbol1868z00zz__structurez00, BGl_string1864z00zz__structurez00, BgL_sz00_515, BGl_string1858z00zz__structurez00, 
BINT(((long)6413))); 
exit( -1 );} 
{ /* ./Llib/struct.scm 148 */
obj_t BgL_symbol1648z00_595;
BgL_symbol1648z00_595 = BGl_symbol1867z00zz__structurez00; 
{ /* ./Llib/struct.scm 148 */

PUSH_TRACE(BgL_symbol1648z00_595); BUNSPEC; 
{ /* ./Llib/struct.scm 148 */
int BgL_aux1647z00_596;
BgL_aux1647z00_596 = 
STRUCT_LENGTH(BgL_sz00_594); 
POP_TRACE(); 
BgL_res1883z00_597 = BgL_aux1647z00_596; } } } } 
BgL_auxz00_714 = BgL_res1883z00_597; } 
return 
BINT(BgL_auxz00_714);} } 
}



/* struct-ref */
BGL_EXPORTED_DEF obj_t BGl_structzd2refzd2zz__structurez00(obj_t BgL_sz00_10, int BgL_kz00_11)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 153 */
{ /* ./Llib/struct.scm 154 */
obj_t BgL_symbol1652z00_598;
BgL_symbol1652z00_598 = BGl_symbol1869z00zz__structurez00; 
{ /* ./Llib/struct.scm 154 */

PUSH_TRACE(BgL_symbol1652z00_598); BUNSPEC; 
{ /* ./Llib/struct.scm 154 */
obj_t BgL_aux1651z00_599;
BgL_aux1651z00_599 = 
STRUCT_REF(BgL_sz00_10, BgL_kz00_11); 
POP_TRACE(); 
return BgL_aux1651z00_599;} } } } 
}



/* _struct-ref */
obj_t BGl__structzd2refzd2zz__structurez00(obj_t BgL_envz00_516, obj_t BgL_sz00_517, obj_t BgL_kz00_518)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 153 */
{ /* ./Llib/struct.scm 154 */
obj_t BgL_sz00_600;int BgL_kz00_601;
if(
STRUCTP(BgL_sz00_517))
{ /* ./Llib/struct.scm 154 */
BgL_sz00_600 = BgL_sz00_517; }  else 
{ /* ./Llib/struct.scm 154 */
BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(BGl_symbol1870z00zz__structurez00, BGl_string1864z00zz__structurez00, BgL_sz00_517, BGl_string1858z00zz__structurez00, 
BINT(((long)6696))); 
exit( -1 );} 
{ /* ./Llib/struct.scm 154 */
obj_t BgL_auxz00_732;
if(
INTEGERP(BgL_kz00_518))
{ /* ./Llib/struct.scm 154 */
BgL_auxz00_732 = BgL_kz00_518
; }  else 
{ /* ./Llib/struct.scm 154 */
BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(BGl_symbol1870z00zz__structurez00, BGl_string1859z00zz__structurez00, BgL_kz00_518, BGl_string1858z00zz__structurez00, 
BINT(((long)6696))); 
exit( -1 );} 
BgL_kz00_601 = 
CINT(BgL_auxz00_732); } 
{ /* ./Llib/struct.scm 154 */
obj_t BgL_symbol1652z00_602;
BgL_symbol1652z00_602 = BGl_symbol1869z00zz__structurez00; 
{ /* ./Llib/struct.scm 154 */

PUSH_TRACE(BgL_symbol1652z00_602); BUNSPEC; 
{ /* ./Llib/struct.scm 154 */
obj_t BgL_aux1651z00_603;
BgL_aux1651z00_603 = 
STRUCT_REF(BgL_sz00_600, BgL_kz00_601); 
POP_TRACE(); 
return BgL_aux1651z00_603;} } } } } 
}



/* struct-set! */
BGL_EXPORTED_DEF obj_t BGl_structzd2setz12zc0zz__structurez00(obj_t BgL_sz00_12, int BgL_kz00_13, obj_t BgL_oz00_14)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 159 */
{ /* ./Llib/struct.scm 160 */
obj_t BgL_symbol1656z00_604;
BgL_symbol1656z00_604 = BGl_symbol1871z00zz__structurez00; 
{ /* ./Llib/struct.scm 160 */

PUSH_TRACE(BgL_symbol1656z00_604); BUNSPEC; 
{ /* ./Llib/struct.scm 160 */
obj_t BgL_aux1655z00_605;
BgL_aux1655z00_605 = 
STRUCT_SET(BgL_sz00_12, BgL_kz00_13, BgL_oz00_14); 
POP_TRACE(); 
return BgL_aux1655z00_605;} } } } 
}



/* _struct-set! */
obj_t BGl__structzd2setz12zc0zz__structurez00(obj_t BgL_envz00_519, obj_t BgL_sz00_520, obj_t BgL_kz00_521, obj_t BgL_oz00_522)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 159 */
{ /* ./Llib/struct.scm 160 */
obj_t BgL_sz00_606;int BgL_kz00_607;
if(
STRUCTP(BgL_sz00_520))
{ /* ./Llib/struct.scm 160 */
BgL_sz00_606 = BgL_sz00_520; }  else 
{ /* ./Llib/struct.scm 160 */
BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(BGl_symbol1872z00zz__structurez00, BGl_string1864z00zz__structurez00, BgL_sz00_520, BGl_string1858z00zz__structurez00, 
BINT(((long)6978))); 
exit( -1 );} 
{ /* ./Llib/struct.scm 160 */
obj_t BgL_auxz00_750;
if(
INTEGERP(BgL_kz00_521))
{ /* ./Llib/struct.scm 160 */
BgL_auxz00_750 = BgL_kz00_521
; }  else 
{ /* ./Llib/struct.scm 160 */
BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(BGl_symbol1872z00zz__structurez00, BGl_string1859z00zz__structurez00, BgL_kz00_521, BGl_string1858z00zz__structurez00, 
BINT(((long)6978))); 
exit( -1 );} 
BgL_kz00_607 = 
CINT(BgL_auxz00_750); } 
{ /* ./Llib/struct.scm 160 */
obj_t BgL_symbol1656z00_609;
BgL_symbol1656z00_609 = BGl_symbol1871z00zz__structurez00; 
{ /* ./Llib/struct.scm 160 */

PUSH_TRACE(BgL_symbol1656z00_609); BUNSPEC; 
{ /* ./Llib/struct.scm 160 */
obj_t BgL_aux1655z00_610;
BgL_aux1655z00_610 = 
STRUCT_SET(BgL_sz00_606, BgL_kz00_607, BgL_oz00_522); 
POP_TRACE(); 
return BgL_aux1655z00_610;} } } } } 
}



/* struct-update! */
BGL_EXPORTED_DEF obj_t BGl_structzd2updatez12zc0zz__structurez00(obj_t BgL_dstz00_15, obj_t BgL_srcz00_16)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 165 */
{ /* ./Llib/struct.scm 166 */
obj_t BgL_symbol1660z00_497;
BgL_symbol1660z00_497 = BGl_symbol1873z00zz__structurez00; 
{ /* ./Llib/struct.scm 166 */

PUSH_TRACE(BgL_symbol1660z00_497); BUNSPEC; 
{ /* ./Llib/struct.scm 166 */
obj_t BgL_aux1659z00_498;
{ /* ./Llib/struct.scm 166 */
bool_t BgL_test1011z00_295;
{ /* ./Llib/struct.scm 166 */
bool_t BgL_test1045z00_311;
{ /* ./Llib/struct.scm 166 */
obj_t BgL_arg1053z00_314;obj_t BgL_arg1054z00_315;
{ /* ./Llib/struct.scm 166 */
obj_t BgL_res1624z00_452;
{ /* ./Llib/struct.scm 166 */
obj_t BgL_aux1793z00_548;
BgL_aux1793z00_548 = 
STRUCT_KEY(BgL_dstz00_15); 
if(
SYMBOLP(BgL_aux1793z00_548))
{ /* ./Llib/struct.scm 166 */
BgL_res1624z00_452 = BgL_aux1793z00_548; }  else 
{ /* ./Llib/struct.scm 166 */
BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(BGl_symbol1873z00zz__structurez00, BGl_string1857z00zz__structurez00, BgL_aux1793z00_548, BGl_string1858z00zz__structurez00, 
BINT(((long)7274))); 
exit( -1 );} } 
BgL_arg1053z00_314 = BgL_res1624z00_452; } 
{ /* ./Llib/struct.scm 166 */
obj_t BgL_res1625z00_454;
{ /* ./Llib/struct.scm 166 */
obj_t BgL_aux1803z00_550;
BgL_aux1803z00_550 = 
STRUCT_KEY(BgL_srcz00_16); 
if(
SYMBOLP(BgL_aux1803z00_550))
{ /* ./Llib/struct.scm 166 */
BgL_res1625z00_454 = BgL_aux1803z00_550; }  else 
{ /* ./Llib/struct.scm 166 */
BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(BGl_symbol1873z00zz__structurez00, BGl_string1857z00zz__structurez00, BgL_aux1803z00_550, BGl_string1858z00zz__structurez00, 
BINT(((long)7291))); 
exit( -1 );} } 
BgL_arg1054z00_315 = BgL_res1625z00_454; } 
BgL_test1045z00_311 = 
(BgL_arg1053z00_314==BgL_arg1054z00_315); } 
if(BgL_test1045z00_311)
{ /* ./Llib/struct.scm 167 */
long BgL_auxz00_779;long BgL_auxz00_775;
{ /* ./Llib/struct.scm 167 */
int BgL_auxz00_780;
BgL_auxz00_780 = 
STRUCT_LENGTH(BgL_srcz00_16); 
BgL_auxz00_779 = 
(long)(BgL_auxz00_780); } 
{ /* ./Llib/struct.scm 167 */
int BgL_auxz00_776;
BgL_auxz00_776 = 
STRUCT_LENGTH(BgL_dstz00_15); 
BgL_auxz00_775 = 
(long)(BgL_auxz00_776); } 
BgL_test1011z00_295 = 
(BgL_auxz00_775==BgL_auxz00_779); }  else 
{ /* ./Llib/struct.scm 166 */
BgL_test1011z00_295 = ((bool_t)0); } } 
if(BgL_test1011z00_295)
{ 
long BgL_iz00_296;
{ /* ./Llib/struct.scm 168 */
long BgL_auxz00_796;
{ /* ./Llib/struct.scm 168 */
int BgL_auxz00_797;
BgL_auxz00_797 = 
STRUCT_LENGTH(BgL_dstz00_15); 
BgL_auxz00_796 = 
(long)(BgL_auxz00_797); } 
BgL_iz00_296 = 
(BgL_auxz00_796-((long)1)); } 
BgL_loopz00_297:
if(
(BgL_iz00_296==((long)-1)))
{ /* ./Llib/struct.scm 169 */
BgL_aux1659z00_498 = BgL_dstz00_15; }  else 
{ /* ./Llib/struct.scm 169 */
{ /* ./Llib/struct.scm 172 */
obj_t BgL_auxz00_789;int BgL_auxz00_787;
{ /* ./Llib/struct.scm 172 */
int BgL_auxz00_790;
BgL_auxz00_790 = 
(int)(BgL_iz00_296); 
BgL_auxz00_789 = 
STRUCT_REF(BgL_srcz00_16, BgL_auxz00_790); } 
BgL_auxz00_787 = 
(int)(BgL_iz00_296); 
STRUCT_SET(BgL_dstz00_15, BgL_auxz00_787, BgL_auxz00_789); } 
{ 
long BgL_iz00_794;
BgL_iz00_794 = 
(BgL_iz00_296-((long)1)); 
BgL_iz00_296 = BgL_iz00_794; 
goto BgL_loopz00_297;} } }  else 
{ /* ./Llib/struct.scm 166 */
{ /* ./Llib/struct.scm 174 */
obj_t BgL_arg1033z00_306;
{ /* ./Llib/struct.scm 174 */
obj_t BgL_list1038z00_309;
{ /* ./Llib/struct.scm 174 */
obj_t BgL_arg1041z00_310;
BgL_arg1041z00_310 = 
MAKE_PAIR(BgL_srcz00_16, BNIL); 
BgL_list1038z00_309 = 
MAKE_PAIR(BgL_dstz00_15, BgL_arg1041z00_310); } 
{ /* ./Llib/struct.scm 174 */
obj_t BgL_res1626z00_472;
if(((bool_t)1))
{ /* ./Llib/struct.scm 174 */
BgL_res1626z00_472 = BgL_list1038z00_309; }  else 
{ /* ./Llib/struct.scm 174 */
BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(BGl_symbol1873z00zz__structurez00, BGl_string1874z00zz__structurez00, BgL_list1038z00_309, BGl_string1858z00zz__structurez00, 
BINT(((long)7577))); 
exit( -1 );} 
BgL_arg1033z00_306 = BgL_res1626z00_472; } } 
BGl_errorzf2czd2locationz20zz__errorz00(BGl_string1875z00zz__structurez00, BGl_string1876z00zz__structurez00, BgL_arg1033z00_306, "./Llib/struct.scm", ((long)7527)); } 
BgL_aux1659z00_498 = 
BGl_debugzd2errorzf2locationz20zz__errorz00(BFALSE, BFALSE, BFALSE, BGl_string1858z00zz__structurez00, 
BINT(((long)7575))); } } 
POP_TRACE(); 
return BgL_aux1659z00_498;} } } } 
}



/* _struct-update! */
obj_t BGl__structzd2updatez12zc0zz__structurez00(obj_t BgL_envz00_523, obj_t BgL_dstz00_524, obj_t BgL_srcz00_525)
{ AN_OBJECT;
{ /* ./Llib/struct.scm 165 */
{ /* ./Llib/struct.scm 166 */
obj_t BgL_auxz00_817;obj_t BgL_auxz00_811;
if(
STRUCTP(BgL_srcz00_525))
{ /* ./Llib/struct.scm 166 */
BgL_auxz00_817 = BgL_srcz00_525
; }  else 
{ /* ./Llib/struct.scm 166 */
BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(BGl_symbol1877z00zz__structurez00, BGl_string1864z00zz__structurez00, BgL_srcz00_525, BGl_string1858z00zz__structurez00, 
BINT(((long)7260))); 
exit( -1 );} 
if(
STRUCTP(BgL_dstz00_524))
{ /* ./Llib/struct.scm 166 */
BgL_auxz00_811 = BgL_dstz00_524
; }  else 
{ /* ./Llib/struct.scm 166 */
BGl_bigloozd2typezd2errorzf2locationzf2zz__errorz00(BGl_symbol1877z00zz__structurez00, BGl_string1864z00zz__structurez00, BgL_dstz00_524, BGl_string1858z00zz__structurez00, 
BINT(((long)7260))); 
exit( -1 );} 
return 
BGl_structzd2updatez12zc0zz__structurez00(BgL_auxz00_811, BgL_auxz00_817);} } 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zz__structurez00()
{ AN_OBJECT;
{ /* ./Llib/struct.scm 18 */
{ /* ./Llib/struct.scm 18 */
obj_t BgL_symbol1664z00_499;
BgL_symbol1664z00_499 = BGl_symbol1878z00zz__structurez00; 
{ /* ./Llib/struct.scm 18 */

PUSH_TRACE(BgL_symbol1664z00_499); BUNSPEC; 
{ /* ./Llib/struct.scm 18 */
obj_t BgL_aux1663z00_500;
BgL_aux1663z00_500 = 
BGl_modulezd2initializa7ationz75zz__errorz00(((long)11084), "__structure"); 
POP_TRACE(); 
return BgL_aux1663z00_500;} } } } 
}

