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

#include <bigloo.h>


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

typedef struct BgL_valuez00_bgl {
   header_t header;
   obj_t widening;
} *BgL_valuez00_bglt;

typedef struct BgL_variablez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_valuez00_bgl * BgL_valuez00;
   obj_t BgL_accessz00;
   obj_t BgL_fastzd2alphazd2;
   obj_t BgL_removablez00;
   long BgL_occurrencez00;
} *BgL_variablez00_bglt;

typedef struct BgL_globalz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_valuez00_bgl * BgL_valuez00;
   obj_t BgL_accessz00;
   obj_t BgL_fastzd2alphazd2;
   obj_t BgL_removablez00;
   long BgL_occurrencez00;
   obj_t BgL_modulez00;
   obj_t BgL_importz00;
   bool_t BgL_evaluablezf3zf3;
   bool_t BgL_libraryzf3zf3;
   bool_t BgL_userzf3zf3;
   obj_t BgL_pragmaz00;
   obj_t BgL_srcz00;
   obj_t BgL_jvmzd2typezd2namez00;
} *BgL_globalz00_bglt;

typedef struct BgL_localz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_valuez00_bgl * BgL_valuez00;
   obj_t BgL_accessz00;
   obj_t BgL_fastzd2alphazd2;
   obj_t BgL_removablez00;
   long BgL_occurrencez00;
   bool_t BgL_userzf3zf3;
   long BgL_keyz00;
} *BgL_localz00_bglt;

typedef struct BgL_funz00_bgl {
   header_t header;
   obj_t widening;
   long BgL_arityz00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_predicatezd2ofzd2;
   obj_t BgL_stackzd2allocatorzd2;
   bool_t BgL_topzf3zf3;
   obj_t BgL_thezd2closurezd2;
   obj_t BgL_effectz00;
} *BgL_funz00_bglt;

typedef struct BgL_sfunz00_bgl {
   header_t header;
   obj_t widening;
   long BgL_arityz00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_predicatezd2ofzd2;
   obj_t BgL_stackzd2allocatorzd2;
   bool_t BgL_topzf3zf3;
   obj_t BgL_thezd2closurezd2;
   obj_t BgL_effectz00;
   obj_t BgL_propertyz00;
   obj_t BgL_argsz00;
   obj_t BgL_bodyz00;
   obj_t BgL_classz00;
   obj_t BgL_dssslzd2keywordszd2;
   obj_t BgL_locz00;
} *BgL_sfunz00_bglt;

typedef struct BgL_cfunz00_bgl {
   header_t header;
   obj_t widening;
   long BgL_arityz00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_predicatezd2ofzd2;
   obj_t BgL_stackzd2allocatorzd2;
   bool_t BgL_topzf3zf3;
   obj_t BgL_thezd2closurezd2;
   obj_t BgL_effectz00;
   obj_t BgL_argszd2typezd2;
   bool_t BgL_macrozf3zf3;
   bool_t BgL_infixzf3zf3;
   obj_t BgL_methodz00;
} *BgL_cfunz00_bglt;

typedef struct BgL_svarz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
} *BgL_svarz00_bglt;

typedef struct BgL_scnstz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_nodez00;
   obj_t BgL_classz00;
   obj_t BgL_locz00;
} *BgL_scnstz00_bglt;

typedef struct BgL_cvarz00_bgl {
   header_t header;
   obj_t widening;
   bool_t BgL_macrozf3zf3;
} *BgL_cvarz00_bglt;

typedef struct BgL_sexitz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_handlerz00;
   bool_t BgL_detachedzf3zf3;
} *BgL_sexitz00_bglt;

typedef struct BgL_feffectz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_readz00;
   obj_t BgL_writez00;
} *BgL_feffectz00_bglt;

typedef struct BgL_nodez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
} *BgL_nodez00_bglt;

typedef struct BgL_nodezf2effectzf2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
} *BgL_nodezf2effectzf2_bglt;

typedef struct BgL_atomz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_valuez00;
} *BgL_atomz00_bglt;

typedef struct BgL_varz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_variablez00_bgl * BgL_variablez00;
} *BgL_varz00_bglt;

typedef struct BgL_closurez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_variablez00_bgl * BgL_variablez00;
} *BgL_closurez00_bglt;

typedef struct BgL_kwotez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_valuez00;
} *BgL_kwotez00_bglt;

typedef struct BgL_sequencez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_nodesz00;
} *BgL_sequencez00_bglt;

typedef struct BgL_appz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   struct BgL_varz00_bgl * BgL_funz00;
   obj_t BgL_argsz00;
} *BgL_appz00_bglt;

typedef struct BgL_appzd2lyzd2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_nodez00_bgl * BgL_funz00;
   struct BgL_nodez00_bgl * BgL_argz00;
} *BgL_appzd2lyzd2_bglt;

typedef struct BgL_funcallz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_nodez00_bgl * BgL_funz00;
   obj_t BgL_argsz00;
   obj_t BgL_strengthz00;
} *BgL_funcallz00_bglt;

typedef struct BgL_externz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
} *BgL_externz00_bglt;

typedef struct BgL_pragmaz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_formatz00;
} *BgL_pragmaz00_bglt;

typedef struct BgL_getfieldz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_fnamez00;
   struct BgL_typez00_bgl * BgL_ftypez00;
   struct BgL_typez00_bgl * BgL_otypez00;
} *BgL_getfieldz00_bglt;

typedef struct BgL_setfieldz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_fnamez00;
   struct BgL_typez00_bgl * BgL_ftypez00;
   struct BgL_typez00_bgl * BgL_otypez00;
} *BgL_setfieldz00_bglt;

typedef struct BgL_newz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
} *BgL_newz00_bglt;

typedef struct BgL_vallocz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_czd2heapzd2formatz00;
   struct BgL_typez00_bgl * BgL_ftypez00;
   struct BgL_typez00_bgl * BgL_otypez00;
} *BgL_vallocz00_bglt;

typedef struct BgL_vrefz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_czd2formatzd2;
   struct BgL_typez00_bgl * BgL_ftypez00;
   struct BgL_typez00_bgl * BgL_otypez00;
   struct BgL_typez00_bgl * BgL_vtypez00;
} *BgL_vrefz00_bglt;

typedef struct BgL_vsetz12z12_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_czd2formatzd2;
   struct BgL_typez00_bgl * BgL_ftypez00;
   struct BgL_typez00_bgl * BgL_otypez00;
   struct BgL_typez00_bgl * BgL_vtypez00;
} *BgL_vsetz12z12_bglt;

typedef struct BgL_vlengthz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   obj_t BgL_czd2formatzd2;
   struct BgL_typez00_bgl * BgL_vtypez00;
} *BgL_vlengthz00_bglt;

typedef struct BgL_isaz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_exprza2za2;
   obj_t BgL_effectz00;
   struct BgL_typez00_bgl * BgL_classz00;
} *BgL_isaz00_bglt;

typedef struct BgL_castz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_nodez00_bgl * BgL_argz00;
} *BgL_castz00_bglt;

typedef struct BgL_setqz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_varz00_bgl * BgL_varz00;
   struct BgL_nodez00_bgl * BgL_valuez00;
} *BgL_setqz00_bglt;

typedef struct BgL_conditionalz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   struct BgL_nodez00_bgl * BgL_testz00;
   struct BgL_nodez00_bgl * BgL_truez00;
   struct BgL_nodez00_bgl * BgL_falsez00;
} *BgL_conditionalz00_bglt;

typedef struct BgL_failz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_nodez00_bgl * BgL_procz00;
   struct BgL_nodez00_bgl * BgL_msgz00;
   struct BgL_nodez00_bgl * BgL_objz00;
} *BgL_failz00_bglt;

typedef struct BgL_selectz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   struct BgL_nodez00_bgl * BgL_testz00;
   obj_t BgL_clausesz00;
   struct BgL_typez00_bgl * BgL_itemzd2typezd2;
} *BgL_selectz00_bglt;

typedef struct BgL_letzd2funzd2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_localsz00;
   struct BgL_nodez00_bgl * BgL_bodyz00;
} *BgL_letzd2funzd2_bglt;

typedef struct BgL_letzd2varzd2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   obj_t BgL_bindingsz00;
   struct BgL_nodez00_bgl * BgL_bodyz00;
   bool_t BgL_removablezf3zf3;
} *BgL_letzd2varzd2_bglt;

typedef struct BgL_setzd2exzd2itz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_varz00_bgl * BgL_varz00;
   struct BgL_nodez00_bgl * BgL_bodyz00;
} *BgL_setzd2exzd2itz00_bglt;

typedef struct BgL_jumpzd2exzd2itz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_nodez00_bgl * BgL_exitz00;
   struct BgL_nodez00_bgl * BgL_valuez00;
} *BgL_jumpzd2exzd2itz00_bglt;

typedef struct BgL_makezd2boxzd2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   struct BgL_nodez00_bgl * BgL_valuez00;
} *BgL_makezd2boxzd2_bglt;

typedef struct BgL_boxzd2refzd2_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_keyz00;
   struct BgL_varz00_bgl * BgL_varz00;
} *BgL_boxzd2refzd2_bglt;

typedef struct BgL_boxzd2setz12zc0_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_varz00_bgl * BgL_varz00;
   struct BgL_nodez00_bgl * BgL_valuez00;
} *BgL_boxzd2setz12zc0_bglt;

typedef struct BgL_localzf2variantzf2_bgl {
   bool_t BgL_variantz00;
} *BgL_localzf2variantzf2_bglt;


static obj_t BGl_methodzd2initzd2zzinline_variantz00();
static obj_t BGl_objectzd2ze3structzd2localzf2variant2737z11zzinline_variantz00(obj_t, obj_t);
static obj_t BGl__localzf2variantzf3z01zzinline_variantz00(obj_t, obj_t);
BGL_IMPORT obj_t open_input_string(obj_t);
BGL_EXPORTED_DECL BgL_localzf2variantzf2_bglt BGl_makezd2localzf2variantz20zzinline_variantz00(obj_t, obj_t, BgL_typez00_bglt, BgL_valuez00_bglt, obj_t, obj_t, obj_t, long, bool_t, long, bool_t);
BGL_IMPORT long BGl_classzd2numzd2zz__objectz00(obj_t);
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
BGL_IMPORT bool_t BGl_iszd2azf3z21zz__objectz00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_objectzd2ze3structz31zz__objectz00(BgL_objectz00_bglt);
static obj_t BGl__shrinkzd2argsz12zc0zzinline_variantz00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_registerzd2classz12zc0zz__objectz00(obj_t, obj_t, obj_t, obj_t, long, obj_t, obj_t, obj_t);
static obj_t BGl__invariantzd2argszd2zzinline_variantz00(obj_t, obj_t, obj_t);
BGL_EXPORTED_DECL BgL_appz00_bglt BGl_removezd2invariantzd2argsz12z12zzinline_variantz00(BgL_appz00_bglt);
static obj_t BGl__substitutionsz00zzinline_variantz00(obj_t, obj_t, obj_t, obj_t);
BGL_IMPORT obj_t BGl_za2classesza2z00zz__objectz00;
BGL_EXPORTED_DEF obj_t BGl_localzf2variantzf2zzinline_variantz00 = BUNSPEC;
BGL_IMPORT obj_t BGl_reversez12z12zz__r4_pairs_and_lists_6_3z00(obj_t);
BGL_EXPORTED_DECL obj_t BGl_shrinkzd2argsz12zc0zzinline_variantz00(BgL_variablez00_bglt);
extern obj_t BGl_varz00zzast_nodez00;
static obj_t BGl_cnstzd2initzd2zzinline_variantz00();
static obj_t BGl_importedzd2moduleszd2initz00zzinline_variantz00();
static obj_t BGl__allocatezd2localzf2variantz20zzinline_variantz00(obj_t);
BGL_EXPORTED_DECL obj_t BGl_invariantzd2argszd2zzinline_variantz00(BgL_variablez00_bglt, obj_t);
BGL_IMPORT obj_t make_struct(obj_t, int, obj_t);
static obj_t BGl__fillzd2localzf2variantz12z32zzinline_variantz00(obj_t, obj_t, obj_t);
BGL_EXPORTED_DECL BgL_localzf2variantzf2_bglt BGl_fillzd2localzf2variantz12z32zzinline_variantz00(BgL_localzf2variantzf2_bglt, bool_t);
static obj_t BGl__wideningzd2localzf2variantz20zzinline_variantz00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_addzd2methodz12zc0zz__objectz00(obj_t, obj_t, obj_t);
BGL_EXPORTED_DECL BgL_localzf2variantzf2_bglt BGl_wideningzd2localzf2variantz20zzinline_variantz00(bool_t);
static obj_t BGl__variantzd2argszd2zzinline_variantz00(obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzinline_variantz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_tracez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
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_EXPORTED_DECL obj_t BGl_variantzd2argszd2zzinline_variantz00(BgL_variablez00_bglt);
BGL_EXPORTED_DECL BgL_localz00_bglt BGl_allocatezd2localzf2variantz20zzinline_variantz00();
BGL_IMPORT BgL_objectz00_bglt BGl_structzb2objectzd2ze3objectz83zz__objectz00(BgL_objectz00_bglt, obj_t);
static obj_t BGl_structzb2objectzd2ze3objectzd2localzf2variant2740za3zzinline_variantz00(obj_t, obj_t, obj_t);
BGL_EXPORTED_DECL bool_t BGl_localzf2variantzf3z01zzinline_variantz00(obj_t);
static obj_t BGl__removezd2invariantzd2argsz12z12zzinline_variantz00(obj_t, obj_t);
extern obj_t BGl_localz00zzast_varz00;
static obj_t BGl__makezd2localzf2variantz20zzinline_variantz00(obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
static obj_t BGl_objectzd2initzd2zzinline_variantz00();
static obj_t BGl_requirezd2initializa7ationz75zzinline_variantz00 = BUNSPEC;
BGL_EXPORTED_DECL obj_t BGl_substitutionsz00zzinline_variantz00(BgL_variablez00_bglt, obj_t, obj_t);
extern BgL_localz00_bglt BGl_makezd2localzd2zzast_varz00(obj_t, obj_t, BgL_typez00_bglt, BgL_valuez00_bglt, obj_t, obj_t, obj_t, long, bool_t, long);
BGL_IMPORT obj_t BGl_classzd2superzd2zz__objectz00(obj_t);
static obj_t BGl_libraryzd2moduleszd2initz00zzinline_variantz00();
BGL_IMPORT obj_t BGl_findzd2superzd2classzd2methodzd2zz__objectz00(BgL_objectz00_bglt, obj_t, obj_t);
static obj_t __cnst[ 3 ] ;


BGL_IMPORT obj_t BGl_objectzd2ze3structzd2envze3zz__objectz00;
DEFINE_STRING( BGl_string3513z00zzinline_variantz00, BgL_bgl_string3513za700za7za7inline_variantza7003542z00, "local/variant done read ", 24 );
DEFINE_EXPORT_PROCEDURE( BGl_allocatezd2localzf2variantzd2envzf2zzinline_variantz00, BgL_bgl__allocateza7d2localza7f2variantza720za7za7inline_variantza7003543z00, BGl__allocatezd2localzf2variantz20zzinline_variantz00, 0L, 0 );
DEFINE_EXPORT_PROCEDURE( BGl_variantzd2argszd2envz00zzinline_variantz00, BgL_bgl__variantza7d2argsza7d2za7za7inline_variantza7003544za7, BGl__variantzd2argszd2zzinline_variantz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc3511z00zzinline_variantz00, BgL_bgl_objectza7d2za7e3structza7d2localza7f2variant2737za711za7za7inline_variantza7003545z00, BGl_objectzd2ze3structzd2localzf2variant2737z11zzinline_variantz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc3512z00zzinline_variantz00, BgL_bgl_structza7b2objectza7d2za7e3objectza7d2localza7f2variant2740za7a3za7za7inline_variantza7003546za7, BGl_structzb2objectzd2ze3objectzd2localzf2variant2740za3zzinline_variantz00, 0L, 2 );
DEFINE_EXPORT_PROCEDURE( BGl_wideningzd2localzf2variantzd2envzf2zzinline_variantz00, BgL_bgl__wideningza7d2localza7f2variantza720za7za7inline_variantza7003547z00, BGl__wideningzd2localzf2variantz20zzinline_variantz00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_removezd2invariantzd2argsz12zd2envzc0zzinline_variantz00, BgL_bgl__removeza7d2invariantza7d2argsza712za712za7za7inline_variantza7003548za7, BGl__removezd2invariantzd2argsz12z12zzinline_variantz00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_substitutionszd2envzd2zzinline_variantz00, BgL_bgl__substitutionsza700za7za7inline_variantza7003549z00, BGl__substitutionsz00zzinline_variantz00, 0L, 3 );
DEFINE_EXPORT_PROCEDURE( BGl_shrinkzd2argsz12zd2envz12zzinline_variantz00, BgL_bgl__shrinkza7d2argsza712za7c0za7za7inline_variantza7003550z00, BGl__shrinkzd2argsz12zc0zzinline_variantz00, 0L, 1 );
DEFINE_EXPORT_PROCEDURE( BGl_makezd2localzf2variantzd2envzf2zzinline_variantz00, BgL_bgl__makeza7d2localza7f2variantza720za7za7inline_variantza7003551z00, BGl__makezd2localzf2variantz20zzinline_variantz00, 0L, 11 );
BGL_IMPORT obj_t BGl_structzb2objectzd2ze3objectzd2envz51zz__objectz00;
DEFINE_EXPORT_PROCEDURE( BGl_fillzd2localzf2variantz12zd2envze0zzinline_variantz00, BgL_bgl__fillza7d2localza7f2variantza712za732za7za7inline_variantza7003552za7, BGl__fillzd2localzf2variantz12z32zzinline_variantz00, 0L, 2 );
DEFINE_EXPORT_PROCEDURE( BGl_invariantzd2argszd2envz00zzinline_variantz00, BgL_bgl__invariantza7d2argsza7d2za7za7inline_variantza7003553za7, BGl__invariantzd2argszd2zzinline_variantz00, 0L, 2 );
DEFINE_EXPORT_PROCEDURE( BGl_localzf2variantzf3zd2envzd3zzinline_variantz00, BgL_bgl__localza7f2variantza7f3za701za7za7inline_variantza7003554z00, BGl__localzf2variantzf3z01zzinline_variantz00, 0L, 1 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzinline_variantz00(long BgL_checksumz00_1441, char * BgL_fromz00_1442)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzinline_variantz00))
{ 
BGl_requirezd2initializa7ationz75zzinline_variantz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzinline_variantz00(); 
BGl_cnstzd2initzd2zzinline_variantz00(); 
BGl_importedzd2moduleszd2initz00zzinline_variantz00(); 
BGl_objectzd2initzd2zzinline_variantz00(); 
BGl_methodzd2initzd2zzinline_variantz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



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



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzinline_variantz00()
{ AN_OBJECT;
{ /* ./Inline/variant.scm 15 */
{ /* ./Inline/variant.scm 15 */
obj_t BgL_cportz00_1419;
BgL_cportz00_1419 = 
open_input_string(BGl_string3513z00zzinline_variantz00); 
{ 
long BgL_iz00_1420;
BgL_iz00_1420 = ((long)2); 
BgL_loopz00_1421:
{ /* ./Inline/variant.scm 15 */
bool_t BgL_test3515z00_1422;
BgL_test3515z00_1422 = 
(BgL_iz00_1420==((long)-1)); 
if(BgL_test3515z00_1422)
{ /* ./Inline/variant.scm 15 */
return BUNSPEC;}  else 
{ /* ./Inline/variant.scm 15 */
{ /* ./Inline/variant.scm 15 */
obj_t BgL_arg3517z00_1423;
{ /* ./Inline/variant.scm 15 */
obj_t BgL_list3520z00_1424;
BgL_list3520z00_1424 = 
MAKE_PAIR(BgL_cportz00_1419, BNIL); 
BgL_arg3517z00_1423 = 
BGl_readz00zz__readerz00(BgL_list3520z00_1424); } 
{ /* ./Inline/variant.scm 15 */
int BgL_auxz00_1459;
BgL_auxz00_1459 = 
(int)(BgL_iz00_1420); 
CNST_TABLE_SET(BgL_auxz00_1459, BgL_arg3517z00_1423); } } 
{ /* ./Inline/variant.scm 15 */
int BgL_auxz00_1425;
{ /* ./Inline/variant.scm 15 */
long BgL_auxz00_1462;
BgL_auxz00_1462 = 
(BgL_iz00_1420-((long)1)); 
BgL_auxz00_1425 = 
(int)(BgL_auxz00_1462); } 
{ 
long BgL_iz00_1465;
BgL_iz00_1465 = 
(long)(BgL_auxz00_1425); 
BgL_iz00_1420 = BgL_iz00_1465; 
goto BgL_loopz00_1421;} } } } } } } 
}



/* invariant-args */
BGL_EXPORTED_DEF obj_t BGl_invariantzd2argszd2zzinline_variantz00(BgL_variablez00_bglt BgL_varz00_1, obj_t BgL_callsz00_2)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 34 */
{ /* ./Inline/variant.scm 35 */
BgL_valuez00_bglt BgL_funz00_687;
BgL_funz00_687 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_1))->BgL_valuez00); 
{ /* ./Inline/variant.scm 35 */
obj_t BgL_argsz00_688;
{ /* ./Inline/variant.scm 36 */
BgL_sfunz00_bglt BgL_obj1367z00_1206;
BgL_obj1367z00_1206 = 
(BgL_sfunz00_bglt)(BgL_funz00_687); 
BgL_argsz00_688 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1206))->BgL_argsz00); } 
{ /* ./Inline/variant.scm 36 */

{ 
obj_t BgL_l2722z00_689;
BgL_l2722z00_689 = BgL_argsz00_688; 
BgL_forzd2each2723zd2_690:
{ /* ./Inline/variant.scm 38 */
bool_t BgL_test2742z00_691;
BgL_test2742z00_691 = 
PAIRP(BgL_l2722z00_689); 
if(BgL_test2742z00_691)
{ /* ./Inline/variant.scm 38 */
{ /* ./Inline/variant.scm 39 */
obj_t BgL_localz00_692;
BgL_localz00_692 = 
CAR(BgL_l2722z00_689); 
{ /* ./Inline/variant.scm 39 */
bool_t BgL_test2743z00_693;
{ /* ./Inline/variant.scm 39 */
obj_t BgL_auxz00_1476;obj_t BgL_auxz00_1473;
BgL_auxz00_1476 = 
CNST_TABLE_REF(((long)0)); 
{ /* ./Inline/variant.scm 39 */
BgL_variablez00_bglt BgL_obj1103z00_1209;
BgL_obj1103z00_1209 = 
(BgL_variablez00_bglt)(BgL_localz00_692); 
BgL_auxz00_1473 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1103z00_1209))->BgL_accessz00); } 
BgL_test2743z00_693 = 
(BgL_auxz00_1473==BgL_auxz00_1476); } 
if(BgL_test2743z00_693)
{ /* ./Inline/variant.scm 40 */
BgL_localz00_bglt BgL_obj2724z00_694;
{ 
BgL_localz00_bglt BgL_auxz00_1480;
BgL_auxz00_1480 = 
(BgL_localz00_bglt)(BgL_localz00_692); 
BgL_obj2724z00_694 = 
((BgL_localz00_bglt)BgL_auxz00_1480); } 
{ /* ./Inline/variant.scm 40 */
BgL_localzf2variantzf2_bglt BgL_arg2745z00_695;
{ /* ./Inline/variant.scm 40 */
bool_t BgL_arg2748z00_696;
BgL_arg2748z00_696 = ((bool_t)0); 
{ /* ./Inline/variant.scm 40 */
BgL_localzf2variantzf2_bglt BgL_res3385z00_1216;
{ /* ./Inline/variant.scm 40 */
BgL_localzf2variantzf2_bglt BgL_new2663z00_1211;
BgL_new2663z00_1211 = 
((BgL_localzf2variantzf2_bglt)BREF( GC_MALLOC (sizeof(struct BgL_localzf2variantzf2_bgl)))); 
{ /* ./Inline/variant.scm 40 */
BgL_localzf2variantzf2_bglt BgL_res3384z00_1215;
{ /* ./Inline/variant.scm 40 */
BgL_localzf2variantzf2_bglt BgL_new2679z00_1212;
BgL_new2679z00_1212 = BgL_new2663z00_1211; 
{ /* ./Inline/variant.scm 40 */
bool_t BgL_variant2678z00_1214;
BgL_variant2678z00_1214 = BgL_arg2748z00_696; 
((((BgL_localzf2variantzf2_bglt)CREF(BgL_new2679z00_1212))->BgL_variantz00) = ((bool_t)BgL_variant2678z00_1214), BUNSPEC); 
BgL_res3384z00_1215 = BgL_new2679z00_1212; } } BgL_res3384z00_1215; } 
BgL_res3385z00_1216 = BgL_new2663z00_1211; } 
BgL_arg2745z00_695 = BgL_res3385z00_1216; } } 
{ /* ./Inline/variant.scm 40 */
obj_t BgL_auxz00_1487;BgL_objectz00_bglt BgL_auxz00_1485;
BgL_auxz00_1487 = 
(obj_t)(BgL_arg2745z00_695); 
BgL_auxz00_1485 = 
(BgL_objectz00_bglt)(BgL_obj2724z00_694); 
BGL_OBJECT_WIDENING_SET(BgL_auxz00_1485, BgL_auxz00_1487); } } 
{ /* ./Inline/variant.scm 40 */
long BgL_arg2751z00_697;
BgL_arg2751z00_697 = 
BGl_classzd2numzd2zz__objectz00(BGl_localzf2variantzf2zzinline_variantz00); 
{ /* ./Inline/variant.scm 40 */
BgL_objectz00_bglt BgL_objz00_1217;
BgL_objz00_1217 = 
(BgL_objectz00_bglt)(BgL_obj2724z00_694); 
BGL_OBJECT_CLASS_NUM_SET(BgL_objz00_1217, BgL_arg2751z00_697); } } 
{ /* ./Inline/variant.scm 40 */
obj_t BgL_objz00_1219;
BgL_objz00_1219 = 
(obj_t)(BgL_obj2724z00_694); 
BGL_HEAP_DEBUG_MARK_OBJ(BgL_objz00_1219); BUNSPEC; } BgL_obj2724z00_694; }  else 
{ /* ./Inline/variant.scm 41 */
BgL_localz00_bglt BgL_obj2725z00_698;
{ 
BgL_localz00_bglt BgL_auxz00_1495;
BgL_auxz00_1495 = 
(BgL_localz00_bglt)(BgL_localz00_692); 
BgL_obj2725z00_698 = 
((BgL_localz00_bglt)BgL_auxz00_1495); } 
{ /* ./Inline/variant.scm 41 */
BgL_localzf2variantzf2_bglt BgL_arg2756z00_699;
{ /* ./Inline/variant.scm 41 */
bool_t BgL_arg2759z00_700;
BgL_arg2759z00_700 = ((bool_t)1); 
{ /* ./Inline/variant.scm 41 */
BgL_localzf2variantzf2_bglt BgL_res3387z00_1226;
{ /* ./Inline/variant.scm 41 */
BgL_localzf2variantzf2_bglt BgL_new2663z00_1221;
BgL_new2663z00_1221 = 
((BgL_localzf2variantzf2_bglt)BREF( GC_MALLOC (sizeof(struct BgL_localzf2variantzf2_bgl)))); 
{ /* ./Inline/variant.scm 41 */
BgL_localzf2variantzf2_bglt BgL_res3386z00_1225;
{ /* ./Inline/variant.scm 41 */
BgL_localzf2variantzf2_bglt BgL_new2679z00_1222;
BgL_new2679z00_1222 = BgL_new2663z00_1221; 
{ /* ./Inline/variant.scm 41 */
bool_t BgL_variant2678z00_1224;
BgL_variant2678z00_1224 = BgL_arg2759z00_700; 
((((BgL_localzf2variantzf2_bglt)CREF(BgL_new2679z00_1222))->BgL_variantz00) = ((bool_t)BgL_variant2678z00_1224), BUNSPEC); 
BgL_res3386z00_1225 = BgL_new2679z00_1222; } } BgL_res3386z00_1225; } 
BgL_res3387z00_1226 = BgL_new2663z00_1221; } 
BgL_arg2756z00_699 = BgL_res3387z00_1226; } } 
{ /* ./Inline/variant.scm 41 */
obj_t BgL_auxz00_1502;BgL_objectz00_bglt BgL_auxz00_1500;
BgL_auxz00_1502 = 
(obj_t)(BgL_arg2756z00_699); 
BgL_auxz00_1500 = 
(BgL_objectz00_bglt)(BgL_obj2725z00_698); 
BGL_OBJECT_WIDENING_SET(BgL_auxz00_1500, BgL_auxz00_1502); } } 
{ /* ./Inline/variant.scm 41 */
long BgL_arg2762z00_701;
BgL_arg2762z00_701 = 
BGl_classzd2numzd2zz__objectz00(BGl_localzf2variantzf2zzinline_variantz00); 
{ /* ./Inline/variant.scm 41 */
BgL_objectz00_bglt BgL_objz00_1227;
BgL_objz00_1227 = 
(BgL_objectz00_bglt)(BgL_obj2725z00_698); 
BGL_OBJECT_CLASS_NUM_SET(BgL_objz00_1227, BgL_arg2762z00_701); } } 
{ /* ./Inline/variant.scm 41 */
obj_t BgL_objz00_1229;
BgL_objz00_1229 = 
(obj_t)(BgL_obj2725z00_698); 
BGL_HEAP_DEBUG_MARK_OBJ(BgL_objz00_1229); BUNSPEC; } BgL_obj2725z00_698; } } } 
{ /* ./Inline/variant.scm 38 */
obj_t BgL_arg2773z00_704;
BgL_arg2773z00_704 = 
CDR(BgL_l2722z00_689); 
{ 
obj_t BgL_l2722z00_1511;
BgL_l2722z00_1511 = BgL_arg2773z00_704; 
BgL_l2722z00_689 = BgL_l2722z00_1511; 
goto BgL_forzd2each2723zd2_690;} } }  else 
{ /* ./Inline/variant.scm 38 */((bool_t)1); } } } 
{ 
obj_t BgL_l2726z00_705;
BgL_l2726z00_705 = BgL_callsz00_2; 
BgL_forzd2each2727zd2_706:
{ /* ./Inline/variant.scm 44 */
bool_t BgL_test2778z00_707;
BgL_test2778z00_707 = 
PAIRP(BgL_l2726z00_705); 
if(BgL_test2778z00_707)
{ /* ./Inline/variant.scm 44 */
{ /* ./Inline/variant.scm 45 */
BgL_appz00_bglt BgL_appz00_708;
{ /* ./Inline/variant.scm 45 */
obj_t BgL_auxz00_1514;
BgL_auxz00_1514 = 
CAR(BgL_l2726z00_705); 
BgL_appz00_708 = 
(BgL_appz00_bglt)(BgL_auxz00_1514); } 
{ 
obj_t BgL_actualsz00_709;obj_t BgL_argsz00_710;
{ /* ./Inline/variant.scm 45 */
obj_t BgL_arg2780z00_712;
BgL_arg2780z00_712 = 
(((BgL_appz00_bglt)CREF(BgL_appz00_708))->BgL_argsz00); 
BgL_actualsz00_709 = BgL_arg2780z00_712; 
BgL_argsz00_710 = BgL_argsz00_688; 
BgL_loopz00_711:
{ /* ./Inline/variant.scm 48 */
bool_t BgL_test2783z00_713;
BgL_test2783z00_713 = 
NULLP(BgL_argsz00_710); 
if(BgL_test2783z00_713)
{ /* ./Inline/variant.scm 48 */
CNST_TABLE_REF(((long)1)); }  else 
{ /* ./Inline/variant.scm 50 */
bool_t BgL_test2784z00_714;
BgL_test2784z00_714 = 
NULLP(BgL_actualsz00_709); 
if(BgL_test2784z00_714)
{ /* ./Inline/variant.scm 50 */
{ 
obj_t BgL_l2728z00_715;
{ /* ./Inline/variant.scm 51 */
bool_t BgL_auxz00_1523;
BgL_l2728z00_715 = BgL_argsz00_710; 
BgL_forzd2each2729zd2_716:
{ /* ./Inline/variant.scm 51 */
bool_t BgL_test2786z00_717;
BgL_test2786z00_717 = 
PAIRP(BgL_l2728z00_715); 
if(BgL_test2786z00_717)
{ /* ./Inline/variant.scm 51 */
{ /* ./Inline/variant.scm 52 */
obj_t BgL_localz00_718;
BgL_localz00_718 = 
CAR(BgL_l2728z00_715); 
{ /* ./Inline/variant.scm 52 */
BgL_localzf2variantzf2_bglt BgL_obj2693z00_1238;bool_t BgL_val2692z00_1239;
BgL_obj2693z00_1238 = 
(BgL_localzf2variantzf2_bglt)(BgL_localz00_718); 
BgL_val2692z00_1239 = ((bool_t)1); 
{ 
obj_t BgL_auxz00_1528;
{ /* ./Inline/variant.scm 52 */
BgL_objectz00_bglt BgL_auxz00_1529;
BgL_auxz00_1529 = 
(BgL_objectz00_bglt)(BgL_obj2693z00_1238); 
BgL_auxz00_1528 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1529); } 
((((BgL_localzf2variantzf2_bglt)CREF(BgL_auxz00_1528))->BgL_variantz00) = ((bool_t)BgL_val2692z00_1239), BUNSPEC); } } } 
{ /* ./Inline/variant.scm 51 */
obj_t BgL_arg2790z00_719;
BgL_arg2790z00_719 = 
CDR(BgL_l2728z00_715); 
{ 
obj_t BgL_l2728z00_1534;
BgL_l2728z00_1534 = BgL_arg2790z00_719; 
BgL_l2728z00_715 = BgL_l2728z00_1534; 
goto BgL_forzd2each2729zd2_716;} } }  else 
{ /* ./Inline/variant.scm 51 */
BgL_auxz00_1523 = ((bool_t)1); } } 
BBOOL(BgL_auxz00_1523); } } }  else 
{ /* ./Inline/variant.scm 54 */
bool_t BgL_test2794z00_720;
{ /* ./Inline/variant.scm 54 */
bool_t BgL_test2811z00_726;
{ /* ./Inline/variant.scm 54 */
obj_t BgL_arg2822z00_730;
BgL_arg2822z00_730 = 
CAR(BgL_actualsz00_709); 
BgL_test2811z00_726 = 
BGl_iszd2azf3z21zz__objectz00(BgL_arg2822z00_730, BGl_varz00zzast_nodez00); } 
if(BgL_test2811z00_726)
{ /* ./Inline/variant.scm 55 */
obj_t BgL_auxz00_1546;obj_t BgL_auxz00_1539;
BgL_auxz00_1546 = 
CAR(BgL_argsz00_710); 
{ /* ./Inline/variant.scm 55 */
BgL_variablez00_bglt BgL_auxz00_1540;
{ /* ./Inline/variant.scm 55 */
BgL_varz00_bglt BgL_obj1625z00_1244;
{ /* ./Inline/variant.scm 55 */
obj_t BgL_auxz00_1541;
BgL_auxz00_1541 = 
CAR(BgL_actualsz00_709); 
BgL_obj1625z00_1244 = 
(BgL_varz00_bglt)(BgL_auxz00_1541); } 
BgL_auxz00_1540 = 
(((BgL_varz00_bglt)CREF(BgL_obj1625z00_1244))->BgL_variablez00); } 
BgL_auxz00_1539 = 
(obj_t)(BgL_auxz00_1540); } 
BgL_test2794z00_720 = 
(BgL_auxz00_1539==BgL_auxz00_1546); }  else 
{ /* ./Inline/variant.scm 54 */
BgL_test2794z00_720 = ((bool_t)0); } } 
if(BgL_test2794z00_720)
{ /* ./Inline/variant.scm 54 */
{ /* ./Inline/variant.scm 56 */
obj_t BgL_arg2796z00_721;obj_t BgL_arg2797z00_722;
BgL_arg2796z00_721 = 
CDR(BgL_actualsz00_709); 
BgL_arg2797z00_722 = 
CDR(BgL_argsz00_710); 
{ 
obj_t BgL_argsz00_1553;obj_t BgL_actualsz00_1552;
BgL_actualsz00_1552 = BgL_arg2796z00_721; 
BgL_argsz00_1553 = BgL_arg2797z00_722; 
BgL_argsz00_710 = BgL_argsz00_1553; 
BgL_actualsz00_709 = BgL_actualsz00_1552; 
goto BgL_loopz00_711;} } }  else 
{ /* ./Inline/variant.scm 54 */
{ /* ./Inline/variant.scm 58 */
obj_t BgL_arg2802z00_723;
BgL_arg2802z00_723 = 
CAR(BgL_argsz00_710); 
{ /* ./Inline/variant.scm 58 */
BgL_localzf2variantzf2_bglt BgL_obj2693z00_1249;bool_t BgL_val2692z00_1250;
BgL_obj2693z00_1249 = 
(BgL_localzf2variantzf2_bglt)(BgL_arg2802z00_723); 
BgL_val2692z00_1250 = ((bool_t)1); 
{ 
obj_t BgL_auxz00_1556;
{ /* ./Inline/variant.scm 58 */
BgL_objectz00_bglt BgL_auxz00_1557;
BgL_auxz00_1557 = 
(BgL_objectz00_bglt)(BgL_obj2693z00_1249); 
BgL_auxz00_1556 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1557); } 
((((BgL_localzf2variantzf2_bglt)CREF(BgL_auxz00_1556))->BgL_variantz00) = ((bool_t)BgL_val2692z00_1250), BUNSPEC); } } } 
{ /* ./Inline/variant.scm 59 */
obj_t BgL_arg2806z00_724;obj_t BgL_arg2807z00_725;
BgL_arg2806z00_724 = 
CDR(BgL_actualsz00_709); 
BgL_arg2807z00_725 = 
CDR(BgL_argsz00_710); 
{ 
obj_t BgL_argsz00_1564;obj_t BgL_actualsz00_1563;
BgL_actualsz00_1563 = BgL_arg2806z00_724; 
BgL_argsz00_1564 = BgL_arg2807z00_725; 
BgL_argsz00_710 = BgL_argsz00_1564; 
BgL_actualsz00_709 = BgL_actualsz00_1563; 
goto BgL_loopz00_711;} } } } } } } } } 
{ /* ./Inline/variant.scm 44 */
obj_t BgL_arg2829z00_731;
BgL_arg2829z00_731 = 
CDR(BgL_l2726z00_705); 
{ 
obj_t BgL_l2726z00_1566;
BgL_l2726z00_1566 = BgL_arg2829z00_731; 
BgL_l2726z00_705 = BgL_l2726z00_1566; 
goto BgL_forzd2each2727zd2_706;} } }  else 
{ /* ./Inline/variant.scm 44 */((bool_t)1); } } } 
{ 
obj_t BgL_argsz00_732;obj_t BgL_invariantz00_733;
BgL_argsz00_732 = BgL_argsz00_688; 
BgL_invariantz00_733 = BNIL; 
BgL_loopz00_734:
{ /* ./Inline/variant.scm 64 */
bool_t BgL_test2834z00_735;
BgL_test2834z00_735 = 
NULLP(BgL_argsz00_732); 
if(BgL_test2834z00_735)
{ /* ./Inline/variant.scm 64 */
return 
BGl_reversez12z12zz__r4_pairs_and_lists_6_3z00(BgL_invariantz00_733);}  else 
{ /* ./Inline/variant.scm 66 */
obj_t BgL_arg2837z00_736;obj_t BgL_arg2838z00_737;
BgL_arg2837z00_736 = 
CDR(BgL_argsz00_732); 
{ /* ./Inline/variant.scm 67 */
bool_t BgL_test2841z00_738;
{ /* ./Inline/variant.scm 67 */
BgL_localzf2variantzf2_bglt BgL_obj2691z00_1257;
{ /* ./Inline/variant.scm 67 */
obj_t BgL_auxz00_1571;
BgL_auxz00_1571 = 
CAR(BgL_argsz00_732); 
BgL_obj2691z00_1257 = 
(BgL_localzf2variantzf2_bglt)(BgL_auxz00_1571); } 
{ 
obj_t BgL_auxz00_1574;
{ /* ./Inline/variant.scm 67 */
BgL_objectz00_bglt BgL_auxz00_1575;
BgL_auxz00_1575 = 
(BgL_objectz00_bglt)(BgL_obj2691z00_1257); 
BgL_auxz00_1574 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1575); } 
BgL_test2841z00_738 = 
(((BgL_localzf2variantzf2_bglt)CREF(BgL_auxz00_1574))->BgL_variantz00); } } 
if(BgL_test2841z00_738)
{ /* ./Inline/variant.scm 67 */
BgL_arg2838z00_737 = BgL_invariantz00_733; }  else 
{ /* ./Inline/variant.scm 69 */
obj_t BgL_arg2843z00_739;
BgL_arg2843z00_739 = 
CAR(BgL_argsz00_732); 
BgL_arg2838z00_737 = 
MAKE_PAIR(BgL_arg2843z00_739, BgL_invariantz00_733); } } 
{ 
obj_t BgL_invariantz00_1583;obj_t BgL_argsz00_1582;
BgL_argsz00_1582 = BgL_arg2837z00_736; 
BgL_invariantz00_1583 = BgL_arg2838z00_737; 
BgL_invariantz00_733 = BgL_invariantz00_1583; 
BgL_argsz00_732 = BgL_argsz00_1582; 
goto BgL_loopz00_734;} } } } } } } } 
}



/* _invariant-args */
obj_t BGl__invariantzd2argszd2zzinline_variantz00(obj_t BgL_envz00_1374, obj_t BgL_varz00_1375, obj_t BgL_callsz00_1376)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 34 */
return 
BGl_invariantzd2argszd2zzinline_variantz00(
(BgL_variablez00_bglt)(BgL_varz00_1375), BgL_callsz00_1376);} 
}



/* variant-args */
BGL_EXPORTED_DEF obj_t BGl_variantzd2argszd2zzinline_variantz00(BgL_variablez00_bglt BgL_varz00_3)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 76 */
{ /* ./Inline/variant.scm 77 */
BgL_valuez00_bglt BgL_funz00_741;
BgL_funz00_741 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_3))->BgL_valuez00); 
{ /* ./Inline/variant.scm 77 */
obj_t BgL_argsz00_742;
{ /* ./Inline/variant.scm 78 */
BgL_sfunz00_bglt BgL_obj1367z00_1260;
BgL_obj1367z00_1260 = 
(BgL_sfunz00_bglt)(BgL_funz00_741); 
BgL_argsz00_742 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1260))->BgL_argsz00); } 
{ /* ./Inline/variant.scm 78 */

{ 
obj_t BgL_argsz00_743;obj_t BgL_variantz00_744;
BgL_argsz00_743 = BgL_argsz00_742; 
BgL_variantz00_744 = BNIL; 
BgL_loopz00_745:
{ /* ./Inline/variant.scm 81 */
bool_t BgL_test2854z00_746;
BgL_test2854z00_746 = 
NULLP(BgL_argsz00_743); 
if(BgL_test2854z00_746)
{ /* ./Inline/variant.scm 81 */
return 
BGl_reversez12z12zz__r4_pairs_and_lists_6_3z00(BgL_variantz00_744);}  else 
{ /* ./Inline/variant.scm 83 */
obj_t BgL_arg2857z00_747;obj_t BgL_arg2858z00_748;
BgL_arg2857z00_747 = 
CDR(BgL_argsz00_743); 
{ /* ./Inline/variant.scm 84 */
bool_t BgL_test2861z00_749;
{ /* ./Inline/variant.scm 84 */
BgL_localzf2variantzf2_bglt BgL_obj2691z00_1264;
{ /* ./Inline/variant.scm 84 */
obj_t BgL_auxz00_1593;
BgL_auxz00_1593 = 
CAR(BgL_argsz00_743); 
BgL_obj2691z00_1264 = 
(BgL_localzf2variantzf2_bglt)(BgL_auxz00_1593); } 
{ 
obj_t BgL_auxz00_1596;
{ /* ./Inline/variant.scm 84 */
BgL_objectz00_bglt BgL_auxz00_1597;
BgL_auxz00_1597 = 
(BgL_objectz00_bglt)(BgL_obj2691z00_1264); 
BgL_auxz00_1596 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1597); } 
BgL_test2861z00_749 = 
(((BgL_localzf2variantzf2_bglt)CREF(BgL_auxz00_1596))->BgL_variantz00); } } 
if(BgL_test2861z00_749)
{ /* ./Inline/variant.scm 85 */
obj_t BgL_arg2863z00_750;
BgL_arg2863z00_750 = 
CAR(BgL_argsz00_743); 
BgL_arg2858z00_748 = 
MAKE_PAIR(BgL_arg2863z00_750, BgL_variantz00_744); }  else 
{ /* ./Inline/variant.scm 84 */
BgL_arg2858z00_748 = BgL_variantz00_744; } } 
{ 
obj_t BgL_variantz00_1605;obj_t BgL_argsz00_1604;
BgL_argsz00_1604 = BgL_arg2857z00_747; 
BgL_variantz00_1605 = BgL_arg2858z00_748; 
BgL_variantz00_744 = BgL_variantz00_1605; 
BgL_argsz00_743 = BgL_argsz00_1604; 
goto BgL_loopz00_745;} } } } } } } } 
}



/* _variant-args */
obj_t BGl__variantzd2argszd2zzinline_variantz00(obj_t BgL_envz00_1377, obj_t BgL_varz00_1378)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 76 */
return 
BGl_variantzd2argszd2zzinline_variantz00(
(BgL_variablez00_bglt)(BgL_varz00_1378));} 
}



/* substitutions */
BGL_EXPORTED_DEF obj_t BGl_substitutionsz00zzinline_variantz00(BgL_variablez00_bglt BgL_varz00_4, obj_t BgL_actualsz00_5, obj_t BgL_varzd2argszd2_6)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 91 */
{ /* ./Inline/variant.scm 92 */
BgL_valuez00_bglt BgL_funz00_752;
BgL_funz00_752 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_4))->BgL_valuez00); 
{ /* ./Inline/variant.scm 92 */
obj_t BgL_allzd2argszd2_753;
{ /* ./Inline/variant.scm 93 */
BgL_sfunz00_bglt BgL_obj1367z00_1267;
BgL_obj1367z00_1267 = 
(BgL_sfunz00_bglt)(BgL_funz00_752); 
BgL_allzd2argszd2_753 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1267))->BgL_argsz00); } 
{ /* ./Inline/variant.scm 93 */

{ 
obj_t BgL_actualsz00_754;obj_t BgL_allzd2argszd2_755;obj_t BgL_varzd2argszd2_756;obj_t BgL_substitutionsz00_757;
BgL_actualsz00_754 = BgL_actualsz00_5; 
BgL_allzd2argszd2_755 = BgL_allzd2argszd2_753; 
BgL_varzd2argszd2_756 = BgL_varzd2argszd2_6; 
BgL_substitutionsz00_757 = BNIL; 
BgL_loopz00_758:
{ /* ./Inline/variant.scm 99 */
bool_t BgL_test2875z00_759;
BgL_test2875z00_759 = 
NULLP(BgL_allzd2argszd2_755); 
if(BgL_test2875z00_759)
{ /* ./Inline/variant.scm 99 */
return 
BGl_reversez12z12zz__r4_pairs_and_lists_6_3z00(BgL_substitutionsz00_757);}  else 
{ /* ./Inline/variant.scm 101 */
bool_t BgL_test2877z00_760;
{ /* ./Inline/variant.scm 101 */
BgL_localzf2variantzf2_bglt BgL_obj2691z00_1270;
{ /* ./Inline/variant.scm 101 */
obj_t BgL_auxz00_1614;
BgL_auxz00_1614 = 
CAR(BgL_allzd2argszd2_755); 
BgL_obj2691z00_1270 = 
(BgL_localzf2variantzf2_bglt)(BgL_auxz00_1614); } 
{ 
obj_t BgL_auxz00_1617;
{ /* ./Inline/variant.scm 101 */
BgL_objectz00_bglt BgL_auxz00_1618;
BgL_auxz00_1618 = 
(BgL_objectz00_bglt)(BgL_obj2691z00_1270); 
BgL_auxz00_1617 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1618); } 
BgL_test2877z00_760 = 
(((BgL_localzf2variantzf2_bglt)CREF(BgL_auxz00_1617))->BgL_variantz00); } } 
if(BgL_test2877z00_760)
{ /* ./Inline/variant.scm 101 */
{ /* ./Inline/variant.scm 102 */
obj_t BgL_arg2879z00_761;obj_t BgL_arg2880z00_762;obj_t BgL_arg2882z00_763;obj_t BgL_arg2883z00_764;
BgL_arg2879z00_761 = 
CDR(BgL_actualsz00_754); 
BgL_arg2880z00_762 = 
CDR(BgL_allzd2argszd2_755); 
BgL_arg2882z00_763 = 
CDR(BgL_varzd2argszd2_756); 
{ /* ./Inline/variant.scm 105 */
obj_t BgL_arg2889z00_765;
BgL_arg2889z00_765 = 
CAR(BgL_varzd2argszd2_756); 
BgL_arg2883z00_764 = 
MAKE_PAIR(BgL_arg2889z00_765, BgL_substitutionsz00_757); } 
{ 
obj_t BgL_substitutionsz00_1631;obj_t BgL_varzd2argszd2_1630;obj_t BgL_allzd2argszd2_1629;obj_t BgL_actualsz00_1628;
BgL_actualsz00_1628 = BgL_arg2879z00_761; 
BgL_allzd2argszd2_1629 = BgL_arg2880z00_762; 
BgL_varzd2argszd2_1630 = BgL_arg2882z00_763; 
BgL_substitutionsz00_1631 = BgL_arg2883z00_764; 
BgL_substitutionsz00_757 = BgL_substitutionsz00_1631; 
BgL_varzd2argszd2_756 = BgL_varzd2argszd2_1630; 
BgL_allzd2argszd2_755 = BgL_allzd2argszd2_1629; 
BgL_actualsz00_754 = BgL_actualsz00_1628; 
goto BgL_loopz00_758;} } }  else 
{ /* ./Inline/variant.scm 101 */
{ /* ./Inline/variant.scm 107 */
obj_t BgL_arg2893z00_766;obj_t BgL_arg2894z00_767;obj_t BgL_arg2895z00_768;
BgL_arg2893z00_766 = 
CDR(BgL_actualsz00_754); 
BgL_arg2894z00_767 = 
CDR(BgL_allzd2argszd2_755); 
{ /* ./Inline/variant.scm 110 */
obj_t BgL_arg2900z00_769;
{ /* ./Inline/variant.scm 110 */
bool_t BgL_test2902z00_770;
{ /* ./Inline/variant.scm 110 */
obj_t BgL_arg2909z00_772;
BgL_arg2909z00_772 = 
CAR(BgL_actualsz00_754); 
BgL_test2902z00_770 = 
BGl_iszd2azf3z21zz__objectz00(BgL_arg2909z00_772, BGl_varz00zzast_nodez00); } 
if(BgL_test2902z00_770)
{ /* ./Inline/variant.scm 111 */
BgL_varz00_bglt BgL_obj1625z00_1280;
{ /* ./Inline/variant.scm 111 */
obj_t BgL_auxz00_1637;
BgL_auxz00_1637 = 
CAR(BgL_actualsz00_754); 
BgL_obj1625z00_1280 = 
(BgL_varz00_bglt)(BgL_auxz00_1637); } 
{ /* ./Inline/variant.scm 111 */
BgL_variablez00_bglt BgL_auxz00_1640;
BgL_auxz00_1640 = 
(((BgL_varz00_bglt)CREF(BgL_obj1625z00_1280))->BgL_variablez00); 
BgL_arg2900z00_769 = 
(obj_t)(BgL_auxz00_1640); } }  else 
{ /* ./Inline/variant.scm 110 */
BgL_arg2900z00_769 = 
CAR(BgL_actualsz00_754); } } 
BgL_arg2895z00_768 = 
MAKE_PAIR(BgL_arg2900z00_769, BgL_substitutionsz00_757); } 
{ 
obj_t BgL_substitutionsz00_1647;obj_t BgL_allzd2argszd2_1646;obj_t BgL_actualsz00_1645;
BgL_actualsz00_1645 = BgL_arg2893z00_766; 
BgL_allzd2argszd2_1646 = BgL_arg2894z00_767; 
BgL_substitutionsz00_1647 = BgL_arg2895z00_768; 
BgL_substitutionsz00_757 = BgL_substitutionsz00_1647; 
BgL_allzd2argszd2_755 = BgL_allzd2argszd2_1646; 
BgL_actualsz00_754 = BgL_actualsz00_1645; 
goto BgL_loopz00_758;} } } } } } } } } } 
}



/* _substitutions */
obj_t BGl__substitutionsz00zzinline_variantz00(obj_t BgL_envz00_1379, obj_t BgL_varz00_1380, obj_t BgL_actualsz00_1381, obj_t BgL_varzd2argszd2_1382)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 91 */
return 
BGl_substitutionsz00zzinline_variantz00(
(BgL_variablez00_bglt)(BgL_varz00_1380), BgL_actualsz00_1381, BgL_varzd2argszd2_1382);} 
}



/* shrink-args! */
BGL_EXPORTED_DEF obj_t BGl_shrinkzd2argsz12zc0zzinline_variantz00(BgL_variablez00_bglt BgL_varz00_7)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 118 */
{ /* ./Inline/variant.scm 119 */
BgL_valuez00_bglt BgL_funz00_774;
BgL_funz00_774 = 
(((BgL_variablez00_bglt)CREF(BgL_varz00_7))->BgL_valuez00); 
{ /* ./Inline/variant.scm 119 */
obj_t BgL_argsz00_775;
{ /* ./Inline/variant.scm 120 */
BgL_sfunz00_bglt BgL_obj1367z00_1283;
BgL_obj1367z00_1283 = 
(BgL_sfunz00_bglt)(BgL_funz00_774); 
BgL_argsz00_775 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1283))->BgL_argsz00); } 
{ /* ./Inline/variant.scm 120 */

{ 
obj_t BgL_l2730z00_776;
{ /* ./Inline/variant.scm 121 */
bool_t BgL_auxz00_1653;
BgL_l2730z00_776 = BgL_argsz00_775; 
BgL_forzd2each2731zd2_777:
{ /* ./Inline/variant.scm 121 */
bool_t BgL_test2920z00_778;
BgL_test2920z00_778 = 
PAIRP(BgL_l2730z00_776); 
if(BgL_test2920z00_778)
{ /* ./Inline/variant.scm 121 */
{ /* ./Inline/variant.scm 121 */
obj_t BgL_az00_779;
BgL_az00_779 = 
CAR(BgL_l2730z00_776); 
{ /* ./Inline/variant.scm 121 */
bool_t BgL_test2921z00_780;
{ /* ./Inline/variant.scm 121 */
bool_t BgL_testz00_1657;
{ /* ./Inline/variant.scm 121 */
obj_t BgL_auxz00_1658;
{ /* ./Inline/variant.scm 121 */
BgL_objectz00_bglt BgL_auxz00_1659;
BgL_auxz00_1659 = 
(BgL_objectz00_bglt)(BgL_az00_779); 
BgL_auxz00_1658 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1659); } 
BgL_testz00_1657 = 
CBOOL(BgL_auxz00_1658); } 
if(BgL_testz00_1657)
{ /* ./Inline/variant.scm 121 */
BgL_test2921z00_780 = ((bool_t)1); }  else 
{ /* ./Inline/variant.scm 121 */
BgL_test2921z00_780 = ((bool_t)0); } } 
if(BgL_test2921z00_780)
{ /* ./Inline/variant.scm 121 */
{ /* ./Inline/variant.scm 121 */
long BgL_arg2924z00_782;
{ /* ./Inline/variant.scm 121 */
obj_t BgL_arg2927z00_783;
{ /* ./Inline/variant.scm 121 */
obj_t BgL_arg2930z00_784;
{ /* ./Inline/variant.scm 121 */
BgL_objectz00_bglt BgL_objectz00_1289;
BgL_objectz00_1289 = 
(BgL_objectz00_bglt)(BgL_az00_779); 
{ /* ./Inline/variant.scm 121 */
long BgL_arg2036z00_1290;
{ /* ./Inline/variant.scm 121 */
long BgL_arg2039z00_1291;
BgL_arg2039z00_1291 = 
BGL_OBJECT_CLASS_NUM(BgL_objectz00_1289); 
BgL_arg2036z00_1290 = 
(BgL_arg2039z00_1291-OBJECT_TYPE); } 
{ /* ./Inline/variant.scm 121 */
obj_t BgL_vectorz00_1295;int BgL_kz00_1296;
BgL_vectorz00_1295 = BGl_za2classesza2z00zz__objectz00; 
BgL_kz00_1296 = 
(int)(BgL_arg2036z00_1290); 
BgL_arg2930z00_784 = 
VECTOR_REF(BgL_vectorz00_1295,BgL_kz00_1296); } } } 
BgL_arg2927z00_783 = 
BGl_classzd2superzd2zz__objectz00(BgL_arg2930z00_784); } 
BgL_arg2924z00_782 = 
BGl_classzd2numzd2zz__objectz00(BgL_arg2927z00_783); } 
{ /* ./Inline/variant.scm 121 */
BgL_objectz00_bglt BgL_objz00_1297;
BgL_objz00_1297 = 
(BgL_objectz00_bglt)(BgL_az00_779); 
BGL_OBJECT_CLASS_NUM_SET(BgL_objz00_1297, BgL_arg2924z00_782); } } 
{ /* ./Inline/variant.scm 121 */
BgL_objectz00_bglt BgL_auxz00_1673;
BgL_auxz00_1673 = 
(BgL_objectz00_bglt)(BgL_az00_779); 
BGL_OBJECT_WIDENING_SET(BgL_auxz00_1673, BFALSE); } BgL_az00_779; }  else 
{ /* ./Inline/variant.scm 121 */BFALSE; } } } 
{ /* ./Inline/variant.scm 121 */
obj_t BgL_arg2937z00_785;
BgL_arg2937z00_785 = 
CDR(BgL_l2730z00_776); 
{ 
obj_t BgL_l2730z00_1677;
BgL_l2730z00_1677 = BgL_arg2937z00_785; 
BgL_l2730z00_776 = BgL_l2730z00_1677; 
goto BgL_forzd2each2731zd2_777;} } }  else 
{ /* ./Inline/variant.scm 121 */
BgL_auxz00_1653 = ((bool_t)1); } } 
return 
BBOOL(BgL_auxz00_1653);} } } } } } 
}



/* _shrink-args! */
obj_t BGl__shrinkzd2argsz12zc0zzinline_variantz00(obj_t BgL_envz00_1383, obj_t BgL_varz00_1384)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 118 */
return 
BGl_shrinkzd2argsz12zc0zzinline_variantz00(
(BgL_variablez00_bglt)(BgL_varz00_1384));} 
}



/* remove-invariant-args! */
BGL_EXPORTED_DEF BgL_appz00_bglt BGl_removezd2invariantzd2argsz12z12zzinline_variantz00(BgL_appz00_bglt BgL_appz00_8)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 132 */
{ 
obj_t BgL_formalsz00_787;obj_t BgL_oldzd2argszd2_788;obj_t BgL_newzd2argszd2_789;
{ /* ./Inline/variant.scm 134 */
obj_t BgL_arg2944z00_791;obj_t BgL_arg2946z00_792;
{ /* ./Inline/variant.scm 134 */
BgL_sfunz00_bglt BgL_obj1367z00_1303;
{ /* ./Inline/variant.scm 134 */
BgL_valuez00_bglt BgL_auxz00_1681;
{ /* ./Inline/variant.scm 134 */
BgL_variablez00_bglt BgL_arg2953z00_795;
{ /* ./Inline/variant.scm 134 */
BgL_varz00_bglt BgL_arg2956z00_796;
BgL_arg2956z00_796 = 
(((BgL_appz00_bglt)CREF(BgL_appz00_8))->BgL_funz00); 
BgL_arg2953z00_795 = 
(((BgL_varz00_bglt)CREF(BgL_arg2956z00_796))->BgL_variablez00); } 
BgL_auxz00_1681 = 
(((BgL_variablez00_bglt)CREF(BgL_arg2953z00_795))->BgL_valuez00); } 
BgL_obj1367z00_1303 = 
(BgL_sfunz00_bglt)(BgL_auxz00_1681); } 
BgL_arg2944z00_791 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1303))->BgL_argsz00); } 
BgL_arg2946z00_792 = 
(((BgL_appz00_bglt)CREF(BgL_appz00_8))->BgL_argsz00); 
BgL_formalsz00_787 = BgL_arg2944z00_791; 
BgL_oldzd2argszd2_788 = BgL_arg2946z00_792; 
BgL_newzd2argszd2_789 = BNIL; 
BgL_loopz00_790:
{ /* ./Inline/variant.scm 138 */
bool_t BgL_test2960z00_797;
BgL_test2960z00_797 = 
NULLP(BgL_oldzd2argszd2_788); 
if(BgL_test2960z00_797)
{ /* ./Inline/variant.scm 138 */
{ /* ./Inline/variant.scm 139 */
obj_t BgL_arg2962z00_798;
BgL_arg2962z00_798 = 
BGl_reversez12z12zz__r4_pairs_and_lists_6_3z00(BgL_newzd2argszd2_789); 
{ /* ./Inline/variant.scm 139 */
BgL_appz00_bglt BgL_obj1724z00_1306;obj_t BgL_val1723z00_1307;
BgL_obj1724z00_1306 = BgL_appz00_8; 
BgL_val1723z00_1307 = BgL_arg2962z00_798; 
((((BgL_appz00_bglt)CREF(BgL_obj1724z00_1306))->BgL_argsz00) = ((obj_t)BgL_val1723z00_1307), BUNSPEC); } } 
return BgL_appz00_8;}  else 
{ /* ./Inline/variant.scm 141 */
bool_t BgL_test2965z00_799;
{ /* ./Inline/variant.scm 141 */
bool_t BgL_test2983z00_806;
{ /* ./Inline/variant.scm 141 */
obj_t BgL_arg2990z00_809;
BgL_arg2990z00_809 = 
CAR(BgL_formalsz00_787); 
BgL_test2983z00_806 = 
BGl_iszd2azf3z21zz__objectz00(BgL_arg2990z00_809, BGl_localzf2variantzf2zzinline_variantz00); } 
if(BgL_test2983z00_806)
{ /* ./Inline/variant.scm 142 */
bool_t BgL_testz00_1695;
{ /* ./Inline/variant.scm 142 */
BgL_localzf2variantzf2_bglt BgL_obj2691z00_1311;
{ /* ./Inline/variant.scm 142 */
obj_t BgL_auxz00_1696;
BgL_auxz00_1696 = 
CAR(BgL_formalsz00_787); 
BgL_obj2691z00_1311 = 
(BgL_localzf2variantzf2_bglt)(BgL_auxz00_1696); } 
{ 
obj_t BgL_auxz00_1699;
{ /* ./Inline/variant.scm 142 */
BgL_objectz00_bglt BgL_auxz00_1700;
BgL_auxz00_1700 = 
(BgL_objectz00_bglt)(BgL_obj2691z00_1311); 
BgL_auxz00_1699 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1700); } 
BgL_testz00_1695 = 
(((BgL_localzf2variantzf2_bglt)CREF(BgL_auxz00_1699))->BgL_variantz00); } } 
if(BgL_testz00_1695)
{ /* ./Inline/variant.scm 142 */
BgL_test2965z00_799 = ((bool_t)0); }  else 
{ /* ./Inline/variant.scm 142 */
BgL_test2965z00_799 = ((bool_t)1); } }  else 
{ /* ./Inline/variant.scm 141 */
BgL_test2965z00_799 = ((bool_t)0); } } 
if(BgL_test2965z00_799)
{ /* ./Inline/variant.scm 141 */
{ /* ./Inline/variant.scm 143 */
obj_t BgL_arg2967z00_800;obj_t BgL_arg2968z00_801;
BgL_arg2967z00_800 = 
CDR(BgL_formalsz00_787); 
BgL_arg2968z00_801 = 
CDR(BgL_oldzd2argszd2_788); 
{ 
obj_t BgL_oldzd2argszd2_1708;obj_t BgL_formalsz00_1707;
BgL_formalsz00_1707 = BgL_arg2967z00_800; 
BgL_oldzd2argszd2_1708 = BgL_arg2968z00_801; 
BgL_oldzd2argszd2_788 = BgL_oldzd2argszd2_1708; 
BgL_formalsz00_787 = BgL_formalsz00_1707; 
goto BgL_loopz00_790;} } }  else 
{ /* ./Inline/variant.scm 141 */
{ /* ./Inline/variant.scm 147 */
obj_t BgL_arg2973z00_802;obj_t BgL_arg2974z00_803;obj_t BgL_arg2975z00_804;
BgL_arg2973z00_802 = 
CDR(BgL_formalsz00_787); 
BgL_arg2974z00_803 = 
CDR(BgL_oldzd2argszd2_788); 
{ /* ./Inline/variant.scm 149 */
obj_t BgL_arg2980z00_805;
BgL_arg2980z00_805 = 
CAR(BgL_oldzd2argszd2_788); 
BgL_arg2975z00_804 = 
MAKE_PAIR(BgL_arg2980z00_805, BgL_newzd2argszd2_789); } 
{ 
obj_t BgL_newzd2argszd2_1715;obj_t BgL_oldzd2argszd2_1714;obj_t BgL_formalsz00_1713;
BgL_formalsz00_1713 = BgL_arg2973z00_802; 
BgL_oldzd2argszd2_1714 = BgL_arg2974z00_803; 
BgL_newzd2argszd2_1715 = BgL_arg2975z00_804; 
BgL_newzd2argszd2_789 = BgL_newzd2argszd2_1715; 
BgL_oldzd2argszd2_788 = BgL_oldzd2argszd2_1714; 
BgL_formalsz00_787 = BgL_formalsz00_1713; 
goto BgL_loopz00_790;} } } } } } } } 
}



/* _remove-invariant-args! */
obj_t BGl__removezd2invariantzd2argsz12z12zzinline_variantz00(obj_t BgL_envz00_1385, obj_t BgL_appz00_1386)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 132 */
{ /* ./Inline/variant.scm 133 */
BgL_appz00_bglt BgL_auxz00_1716;
BgL_auxz00_1716 = 
BGl_removezd2invariantzd2argsz12z12zzinline_variantz00(
(BgL_appz00_bglt)(BgL_appz00_1386)); 
return 
(obj_t)(BgL_auxz00_1716);} } 
}



/* object-init */
obj_t BGl_objectzd2initzd2zzinline_variantz00()
{ AN_OBJECT;
{ /* ./Inline/variant.scm 15 */
{ /* ./Inline/variant.scm 20 */
obj_t BgL_arg2995z00_810;obj_t BgL_arg2996z00_811;obj_t BgL_arg3000z00_815;
BgL_arg2995z00_810 = 
CNST_TABLE_REF(((long)2)); 
BgL_arg2996z00_811 = BGl_localz00zzast_varz00; 
{ /* ./Inline/variant.scm 20 */
obj_t BgL_v2735z00_816;
{ 
int BgL_auxz00_1721;
BgL_auxz00_1721 = 
(int)(((long)0)); 
BgL_v2735z00_816 = 
create_vector(BgL_auxz00_1721); } 
BgL_arg3000z00_815 = BgL_v2735z00_816; } 
BGl_localzf2variantzf2zzinline_variantz00 = 
BGl_registerzd2classz12zc0zz__objectz00(BgL_arg2995z00_810, BgL_arg2996z00_811, BFALSE, BGl_allocatezd2localzf2variantzd2envzf2zzinline_variantz00, ((long)60474), BNIL, BFALSE, BgL_arg3000z00_815); } 
return BUNSPEC;} 
}



/* local/variant? */
BGL_EXPORTED_DEF bool_t BGl_localzf2variantzf3z01zzinline_variantz00(obj_t BgL_obj2690z00_9)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 20 */
return 
BGl_iszd2azf3z21zz__objectz00(BgL_obj2690z00_9, BGl_localzf2variantzf2zzinline_variantz00);} 
}



/* _local/variant? */
obj_t BGl__localzf2variantzf3z01zzinline_variantz00(obj_t BgL_envz00_1388, obj_t BgL_obj2690z00_1389)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 20 */
{ /* ./Inline/variant.scm 20 */
bool_t BgL_auxz00_1726;
BgL_auxz00_1726 = 
BGl_iszd2azf3z21zz__objectz00(BgL_obj2690z00_1389, BGl_localzf2variantzf2zzinline_variantz00); 
return 
BBOOL(BgL_auxz00_1726);} } 
}



/* widening-local/variant */
BGL_EXPORTED_DEF BgL_localzf2variantzf2_bglt BGl_wideningzd2localzf2variantz20zzinline_variantz00(bool_t BgL_variant2662z00_13)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 20 */
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_new2663z00_1317;
BgL_new2663z00_1317 = 
((BgL_localzf2variantzf2_bglt)BREF( GC_MALLOC (sizeof(struct BgL_localzf2variantzf2_bgl)))); 
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_res3389z00_1321;
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_new2679z00_1318;
BgL_new2679z00_1318 = BgL_new2663z00_1317; 
{ /* ./Inline/variant.scm 20 */
bool_t BgL_variant2678z00_1320;
BgL_variant2678z00_1320 = BgL_variant2662z00_13; 
((((BgL_localzf2variantzf2_bglt)CREF(BgL_new2679z00_1318))->BgL_variantz00) = ((bool_t)BgL_variant2678z00_1320), BUNSPEC); 
BgL_res3389z00_1321 = BgL_new2679z00_1318; } } BgL_res3389z00_1321; } 
return BgL_new2663z00_1317;} } 
}



/* _widening-local/variant */
obj_t BGl__wideningzd2localzf2variantz20zzinline_variantz00(obj_t BgL_envz00_1390, obj_t BgL_variant2662z00_1391)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 20 */
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_auxz00_1731;
BgL_auxz00_1731 = 
BGl_wideningzd2localzf2variantz20zzinline_variantz00(
CBOOL(BgL_variant2662z00_1391)); 
return 
(obj_t)(BgL_auxz00_1731);} } 
}



/* make-local/variant */
BGL_EXPORTED_DEF BgL_localzf2variantzf2_bglt BGl_makezd2localzf2variantz20zzinline_variantz00(obj_t BgL_id2666z00_14, obj_t BgL_name2667z00_15, BgL_typez00_bglt BgL_type2668z00_16, BgL_valuez00_bglt BgL_value2669z00_17, obj_t BgL_access2670z00_18, obj_t BgL_fastzd2alpha2671zd2_19, obj_t BgL_removable2672z00_20, long BgL_occurrence2673z00_21, bool_t BgL_userzf32674zf3_22, long BgL_key2675z00_23, bool_t BgL_variant2665z00_24)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 20 */
{ /* ./Inline/variant.scm 20 */
BgL_localz00_bglt BgL_aux2676z00_1322;
BgL_aux2676z00_1322 = 
BGl_makezd2localzd2zzast_varz00(BgL_id2666z00_14, BgL_name2667z00_15, BgL_type2668z00_16, BgL_value2669z00_17, BgL_access2670z00_18, BgL_fastzd2alpha2671zd2_19, BgL_removable2672z00_20, BgL_occurrence2673z00_21, BgL_userzf32674zf3_22, BgL_key2675z00_23); 
{ /* ./Inline/variant.scm 20 */
long BgL_arg3007z00_1323;
BgL_arg3007z00_1323 = 
BGl_classzd2numzd2zz__objectz00(BGl_localzf2variantzf2zzinline_variantz00); 
{ /* ./Inline/variant.scm 20 */
BgL_objectz00_bglt BgL_objz00_1326;
BgL_objz00_1326 = 
(BgL_objectz00_bglt)(BgL_aux2676z00_1322); 
BGL_OBJECT_CLASS_NUM_SET(BgL_objz00_1326, BgL_arg3007z00_1323); } } 
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_arg3011z00_1324;
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_res3391z00_1334;
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_new2663z00_1329;
BgL_new2663z00_1329 = 
((BgL_localzf2variantzf2_bglt)BREF( GC_MALLOC (sizeof(struct BgL_localzf2variantzf2_bgl)))); 
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_res3390z00_1333;
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_new2679z00_1330;
BgL_new2679z00_1330 = BgL_new2663z00_1329; 
{ /* ./Inline/variant.scm 20 */
bool_t BgL_variant2678z00_1332;
BgL_variant2678z00_1332 = BgL_variant2665z00_24; 
((((BgL_localzf2variantzf2_bglt)CREF(BgL_new2679z00_1330))->BgL_variantz00) = ((bool_t)BgL_variant2678z00_1332), BUNSPEC); 
BgL_res3390z00_1333 = BgL_new2679z00_1330; } } BgL_res3390z00_1333; } 
BgL_res3391z00_1334 = BgL_new2663z00_1329; } 
BgL_arg3011z00_1324 = BgL_res3391z00_1334; } 
{ /* ./Inline/variant.scm 20 */
obj_t BgL_auxz00_1743;BgL_objectz00_bglt BgL_auxz00_1741;
BgL_auxz00_1743 = 
(obj_t)(BgL_arg3011z00_1324); 
BgL_auxz00_1741 = 
(BgL_objectz00_bglt)(BgL_aux2676z00_1322); 
BGL_OBJECT_WIDENING_SET(BgL_auxz00_1741, BgL_auxz00_1743); } } 
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_new2677z00_1325;
{ 
BgL_localzf2variantzf2_bglt BgL_auxz00_1746;
BgL_auxz00_1746 = 
(BgL_localzf2variantzf2_bglt)(BgL_aux2676z00_1322); 
BgL_new2677z00_1325 = 
((BgL_localzf2variantzf2_bglt)BgL_auxz00_1746); } 
{ /* ./Inline/variant.scm 20 */
obj_t BgL_objz00_1335;
BgL_objz00_1335 = 
(obj_t)(BgL_new2677z00_1325); 
BGL_HEAP_DEBUG_MARK_OBJ(BgL_objz00_1335); BUNSPEC; } 
return BgL_new2677z00_1325;} } } 
}



/* _make-local/variant */
obj_t BGl__makezd2localzf2variantz20zzinline_variantz00(obj_t BgL_envz00_1392, obj_t BgL_id2666z00_1393, obj_t BgL_name2667z00_1394, obj_t BgL_type2668z00_1395, obj_t BgL_value2669z00_1396, obj_t BgL_access2670z00_1397, obj_t BgL_fastzd2alpha2671zd2_1398, obj_t BgL_removable2672z00_1399, obj_t BgL_occurrence2673z00_1400, obj_t BgL_userzf32674zf3_1401, obj_t BgL_key2675z00_1402, obj_t BgL_variant2665z00_1403)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 20 */
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_auxz00_1751;
BgL_auxz00_1751 = 
BGl_makezd2localzf2variantz20zzinline_variantz00(BgL_id2666z00_1393, BgL_name2667z00_1394, 
(BgL_typez00_bglt)(BgL_type2668z00_1395), 
(BgL_valuez00_bglt)(BgL_value2669z00_1396), BgL_access2670z00_1397, BgL_fastzd2alpha2671zd2_1398, BgL_removable2672z00_1399, 
(long)CINT(BgL_occurrence2673z00_1400), 
CBOOL(BgL_userzf32674zf3_1401), 
(long)CINT(BgL_key2675z00_1402), 
CBOOL(BgL_variant2665z00_1403)); 
return 
(obj_t)(BgL_auxz00_1751);} } 
}



/* fill-local/variant! */
BGL_EXPORTED_DEF BgL_localzf2variantzf2_bglt BGl_fillzd2localzf2variantz12z32zzinline_variantz00(BgL_localzf2variantzf2_bglt BgL_new2679z00_25, bool_t BgL_variant2678z00_26)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 20 */
{ /* ./Inline/variant.scm 20 */
bool_t BgL_variant2678z00_1427;
BgL_variant2678z00_1427 = BgL_variant2678z00_26; 
((((BgL_localzf2variantzf2_bglt)CREF(BgL_new2679z00_25))->BgL_variantz00) = ((bool_t)BgL_variant2678z00_1427), BUNSPEC); 
return BgL_new2679z00_25;} } 
}



/* _fill-local/variant! */
obj_t BGl__fillzd2localzf2variantz12z32zzinline_variantz00(obj_t BgL_envz00_1404, obj_t BgL_new2679z00_1405, obj_t BgL_variant2678z00_1406)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 20 */
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_auxz00_1761;
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_res3529z00_1431;
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_new2679z00_1428;bool_t BgL_variant2678z00_1429;
BgL_new2679z00_1428 = 
(BgL_localzf2variantzf2_bglt)(BgL_new2679z00_1405); 
BgL_variant2678z00_1429 = 
CBOOL(BgL_variant2678z00_1406); 
{ /* ./Inline/variant.scm 20 */
bool_t BgL_variant2678z00_1430;
BgL_variant2678z00_1430 = BgL_variant2678z00_1429; 
((((BgL_localzf2variantzf2_bglt)CREF(BgL_new2679z00_1428))->BgL_variantz00) = ((bool_t)BgL_variant2678z00_1430), BUNSPEC); 
BgL_res3529z00_1431 = BgL_new2679z00_1428; } } 
BgL_auxz00_1761 = BgL_res3529z00_1431; } 
return 
(obj_t)(BgL_auxz00_1761);} } 
}



/* allocate-local/variant */
BGL_EXPORTED_DEF BgL_localz00_bglt BGl_allocatezd2localzf2variantz20zzinline_variantz00()
{ AN_OBJECT;
{ /* ./Inline/variant.scm 20 */
{ /* ./Inline/variant.scm 20 */
BgL_localz00_bglt BgL_new2682z00_1432;
BgL_new2682z00_1432 = 
((BgL_localz00_bglt)BREF( GC_MALLOC ( sizeof(struct BgL_localz00_bgl) ))); 
{ /* ./Inline/variant.scm 20 */
long BgL_arg3017z00_1433;
BgL_arg3017z00_1433 = 
BGl_classzd2numzd2zz__objectz00(BGl_localzf2variantzf2zzinline_variantz00); 
{ /* ./Inline/variant.scm 20 */
BgL_objectz00_bglt BgL_objz00_1434;
BgL_objz00_1434 = 
(BgL_objectz00_bglt)(BgL_new2682z00_1432); 
BGL_OBJECT_CLASS_NUM_SET(BgL_objz00_1434, BgL_arg3017z00_1433); } } 
{ /* ./Inline/variant.scm 20 */
BgL_objectz00_bglt BgL_auxz00_1770;
BgL_auxz00_1770 = 
(BgL_objectz00_bglt)(BgL_new2682z00_1432); 
BGL_OBJECT_WIDENING_SET(BgL_auxz00_1770, BFALSE); } 
{ /* ./Inline/variant.scm 20 */
obj_t BgL_objz00_1435;
BgL_objz00_1435 = 
(obj_t)(BgL_new2682z00_1432); 
BGL_HEAP_DEBUG_MARK_OBJ(BgL_objz00_1435); BUNSPEC; } 
return BgL_new2682z00_1432;} } 
}



/* _allocate-local/variant */
obj_t BGl__allocatezd2localzf2variantz20zzinline_variantz00(obj_t BgL_envz00_1387)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 20 */
{ /* ./Inline/variant.scm 20 */
BgL_localz00_bglt BgL_auxz00_1775;
{ /* ./Inline/variant.scm 20 */
BgL_localz00_bglt BgL_res3530z00_1440;
{ /* ./Inline/variant.scm 20 */
BgL_localz00_bglt BgL_new2682z00_1436;
BgL_new2682z00_1436 = 
((BgL_localz00_bglt)BREF( GC_MALLOC ( sizeof(struct BgL_localz00_bgl) ))); 
{ /* ./Inline/variant.scm 20 */
long BgL_arg3017z00_1437;
BgL_arg3017z00_1437 = 
BGl_classzd2numzd2zz__objectz00(BGl_localzf2variantzf2zzinline_variantz00); 
{ /* ./Inline/variant.scm 20 */
BgL_objectz00_bglt BgL_objz00_1438;
BgL_objz00_1438 = 
(BgL_objectz00_bglt)(BgL_new2682z00_1436); 
BGL_OBJECT_CLASS_NUM_SET(BgL_objz00_1438, BgL_arg3017z00_1437); } } 
{ /* ./Inline/variant.scm 20 */
BgL_objectz00_bglt BgL_auxz00_1780;
BgL_auxz00_1780 = 
(BgL_objectz00_bglt)(BgL_new2682z00_1436); 
BGL_OBJECT_WIDENING_SET(BgL_auxz00_1780, BFALSE); } 
{ /* ./Inline/variant.scm 20 */
obj_t BgL_objz00_1439;
BgL_objz00_1439 = 
(obj_t)(BgL_new2682z00_1436); 
BGL_HEAP_DEBUG_MARK_OBJ(BgL_objz00_1439); BUNSPEC; } 
BgL_res3530z00_1440 = BgL_new2682z00_1436; } 
BgL_auxz00_1775 = BgL_res3530z00_1440; } 
return 
(obj_t)(BgL_auxz00_1775);} } 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzinline_variantz00()
{ AN_OBJECT;
{ /* ./Inline/variant.scm 15 */
BGl_addzd2methodz12zc0zz__objectz00(BGl_objectzd2ze3structzd2envze3zz__objectz00, BGl_localzf2variantzf2zzinline_variantz00, BGl_proc3511z00zzinline_variantz00); 
return 
BGl_addzd2methodz12zc0zz__objectz00(BGl_structzb2objectzd2ze3objectzd2envz51zz__objectz00, BGl_localzf2variantzf2zzinline_variantz00, BGl_proc3512z00zzinline_variantz00);} 
}



/* struct+object->object-local/variant2740 */
obj_t BGl_structzb2objectzd2ze3objectzd2localzf2variant2740za3zzinline_variantz00(obj_t BgL_envz00_1414, obj_t BgL_oz00_1415, obj_t BgL_sz00_1416)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 20 */
{ 
BgL_localzf2variantzf2_bglt BgL_oz00_1193;obj_t BgL_sz00_1194;
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_auxz00_1788;
BgL_oz00_1193 = 
(BgL_localzf2variantzf2_bglt)(BgL_oz00_1415); 
BgL_sz00_1194 = BgL_sz00_1416; 
{ 

{ /* ./Inline/variant.scm 20 */
obj_t BgL_old2686z00_1197;obj_t BgL_aux2687z00_1198;
{ /* ./Inline/variant.scm 20 */
obj_t BgL_nextzd2method2739zd2_1203;
BgL_nextzd2method2739zd2_1203 = 
BGl_findzd2superzd2classzd2methodzd2zz__objectz00(
(BgL_objectz00_bglt)(BgL_oz00_1193), BGl_structzb2objectzd2ze3objectzd2envz51zz__objectz00, BGl_localzf2variantzf2zzinline_variantz00); 
{ /* ./Inline/variant.scm 20 */
bool_t BgL_test3375z00_1204;
BgL_test3375z00_1204 = 
PROCEDUREP(BgL_nextzd2method2739zd2_1203); 
if(BgL_test3375z00_1204)
{ /* ./Inline/variant.scm 20 */
BgL_old2686z00_1197 = 
PROCEDURE_ENTRY(BgL_nextzd2method2739zd2_1203)(BgL_nextzd2method2739zd2_1203, 
(obj_t)(BgL_oz00_1193), BgL_sz00_1194, BEOA); }  else 
{ /* ./Inline/variant.scm 20 */
{ /* ./Inline/variant.scm 20 */
BgL_objectz00_bglt BgL_auxz00_1796;
BgL_auxz00_1796 = 
BGl_structzb2objectzd2ze3objectz83zz__objectz00(
(BgL_objectz00_bglt)(BgL_oz00_1193), BgL_sz00_1194); 
BgL_old2686z00_1197 = 
(obj_t)(BgL_auxz00_1796); } } } } 
{ /* ./Inline/variant.scm 20 */
int BgL_auxz00_1800;
BgL_auxz00_1800 = 
(int)(((long)0)); 
BgL_aux2687z00_1198 = 
STRUCT_REF(BgL_sz00_1194, BgL_auxz00_1800); } 
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_new2688z00_1199;
BgL_new2688z00_1199 = 
((BgL_localzf2variantzf2_bglt)(BgL_old2686z00_1197)); 
{ /* ./Inline/variant.scm 20 */
long BgL_arg3362z00_1200;
BgL_arg3362z00_1200 = 
BGl_classzd2numzd2zz__objectz00(BGl_localzf2variantzf2zzinline_variantz00); 
{ /* ./Inline/variant.scm 20 */
BgL_objectz00_bglt BgL_objz00_1361;
BgL_objz00_1361 = 
(BgL_objectz00_bglt)(BgL_new2688z00_1199); 
BGL_OBJECT_CLASS_NUM_SET(BgL_objz00_1361, BgL_arg3362z00_1200); } } 
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_arg3366z00_1201;
{ /* ./Inline/variant.scm 20 */
obj_t BgL_arg3369z00_1202;
{ /* ./Inline/variant.scm 20 */
int BgL_auxz00_1807;
BgL_auxz00_1807 = 
(int)(((long)0)); 
BgL_arg3369z00_1202 = 
STRUCT_REF(BgL_aux2687z00_1198, BgL_auxz00_1807); } 
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_res3394z00_1371;
{ /* ./Inline/variant.scm 20 */
bool_t BgL_variant2662z00_1365;
BgL_variant2662z00_1365 = 
CBOOL(BgL_arg3369z00_1202); 
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_new2663z00_1366;
BgL_new2663z00_1366 = 
((BgL_localzf2variantzf2_bglt)BREF( GC_MALLOC (sizeof(struct BgL_localzf2variantzf2_bgl)))); 
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_res3393z00_1370;
{ /* ./Inline/variant.scm 20 */
BgL_localzf2variantzf2_bglt BgL_new2679z00_1367;
BgL_new2679z00_1367 = BgL_new2663z00_1366; 
{ /* ./Inline/variant.scm 20 */
bool_t BgL_variant2678z00_1369;
BgL_variant2678z00_1369 = BgL_variant2662z00_1365; 
((((BgL_localzf2variantzf2_bglt)CREF(BgL_new2679z00_1367))->BgL_variantz00) = ((bool_t)BgL_variant2678z00_1369), BUNSPEC); 
BgL_res3393z00_1370 = BgL_new2679z00_1367; } } BgL_res3393z00_1370; } 
BgL_res3394z00_1371 = BgL_new2663z00_1366; } } 
BgL_arg3366z00_1201 = BgL_res3394z00_1371; } } 
{ /* ./Inline/variant.scm 20 */
obj_t BgL_auxz00_1815;BgL_objectz00_bglt BgL_auxz00_1813;
BgL_auxz00_1815 = 
(obj_t)(BgL_arg3366z00_1201); 
BgL_auxz00_1813 = 
(BgL_objectz00_bglt)(BgL_new2688z00_1199); 
BGL_OBJECT_WIDENING_SET(BgL_auxz00_1813, BgL_auxz00_1815); } } 
{ /* ./Inline/variant.scm 20 */
obj_t BgL_objz00_1372;
BgL_objz00_1372 = 
(obj_t)(BgL_new2688z00_1199); 
BGL_HEAP_DEBUG_MARK_OBJ(BgL_objz00_1372); BUNSPEC; } 
BgL_auxz00_1788 = BgL_new2688z00_1199; } } } 
return 
(obj_t)(BgL_auxz00_1788);} } } 
}



/* object->struct-local/variant2737 */
obj_t BGl_objectzd2ze3structzd2localzf2variant2737z11zzinline_variantz00(obj_t BgL_envz00_1417, obj_t BgL_obj2683z00_1418)
{ AN_OBJECT;
{ /* ./Inline/variant.scm 20 */
{ 
BgL_localzf2variantzf2_bglt BgL_obj2683z00_1183;
BgL_obj2683z00_1183 = 
(BgL_localzf2variantzf2_bglt)(BgL_obj2683z00_1418); 
{ 

{ /* ./Inline/variant.scm 20 */
obj_t BgL_res2684z00_1186;
{ /* ./Inline/variant.scm 20 */
obj_t BgL_nextzd2method2736zd2_1191;
BgL_nextzd2method2736zd2_1191 = 
BGl_findzd2superzd2classzd2methodzd2zz__objectz00(
(BgL_objectz00_bglt)(BgL_obj2683z00_1183), BGl_objectzd2ze3structzd2envze3zz__objectz00, BGl_localzf2variantzf2zzinline_variantz00); 
{ /* ./Inline/variant.scm 20 */
bool_t BgL_test3354z00_1192;
BgL_test3354z00_1192 = 
PROCEDUREP(BgL_nextzd2method2736zd2_1191); 
if(BgL_test3354z00_1192)
{ /* ./Inline/variant.scm 20 */
BgL_res2684z00_1186 = 
PROCEDURE_ENTRY(BgL_nextzd2method2736zd2_1191)(BgL_nextzd2method2736zd2_1191, 
(obj_t)(BgL_obj2683z00_1183), BEOA); }  else 
{ /* ./Inline/variant.scm 20 */
BgL_res2684z00_1186 = 
BGl_objectzd2ze3structz31zz__objectz00(
(BgL_objectz00_bglt)(BgL_obj2683z00_1183)); } } } 
{ /* ./Inline/variant.scm 20 */
obj_t BgL_aux2685z00_1187;
{ /* ./Inline/variant.scm 20 */
obj_t BgL_keyz00_1342;int BgL_lenz00_1343;
BgL_keyz00_1342 = 
CNST_TABLE_REF(((long)2)); 
BgL_lenz00_1343 = 
(int)(((long)1)); 
BgL_aux2685z00_1187 = 
make_struct(BgL_keyz00_1342, BgL_lenz00_1343, BUNSPEC); } 
{ /* ./Inline/variant.scm 20 */
bool_t BgL_arg3343z00_1189;
{ 
obj_t BgL_auxz00_1834;
{ /* ./Inline/variant.scm 20 */
BgL_objectz00_bglt BgL_auxz00_1835;
BgL_auxz00_1835 = 
(BgL_objectz00_bglt)(BgL_obj2683z00_1183); 
BgL_auxz00_1834 = 
BGL_OBJECT_WIDENING(BgL_auxz00_1835); } 
BgL_arg3343z00_1189 = 
(((BgL_localzf2variantzf2_bglt)CREF(BgL_auxz00_1834))->BgL_variantz00); } 
{ /* ./Inline/variant.scm 20 */
int BgL_kz00_1347;obj_t BgL_oz00_1348;
BgL_kz00_1347 = 
(int)(((long)0)); 
BgL_oz00_1348 = 
BBOOL(BgL_arg3343z00_1189); 
STRUCT_SET(BgL_aux2685z00_1187, BgL_kz00_1347, BgL_oz00_1348); } } 
{ /* ./Inline/variant.scm 20 */
int BgL_kz00_1350;
BgL_kz00_1350 = 
(int)(((long)0)); 
STRUCT_SET(BgL_res2684z00_1186, BgL_kz00_1350, BgL_aux2685z00_1187); } 
{ /* ./Inline/variant.scm 20 */
obj_t BgL_arg3348z00_1190;
BgL_arg3348z00_1190 = 
STRUCT_KEY(BgL_res2684z00_1186); 
STRUCT_KEY_SET(BgL_aux2685z00_1187, BgL_arg3348z00_1190); } 
{ /* ./Inline/variant.scm 20 */
obj_t BgL_kz00_1357;
BgL_kz00_1357 = 
CNST_TABLE_REF(((long)2)); 
STRUCT_KEY_SET(BgL_res2684z00_1186, BgL_kz00_1357); } 
return BgL_res2684z00_1186;} } } } } 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzinline_variantz00()
{ AN_OBJECT;
{ /* ./Inline/variant.scm 15 */
BGl_modulezd2initializa7ationz75zztools_tracez00(((long)59211), "inline_variant"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "inline_variant"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "inline_variant"); 
return 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "inline_variant");} 
}

