/*===========================================================================*/
/*   (Expand/case.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 Expand/case.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;


BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzexpand_casez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_tracez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_prognz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_errorz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_identz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(long, char *);
extern obj_t BGl_normaliza7ezd2prognz75zztools_prognz00(obj_t);
BGL_IMPORT obj_t BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
static obj_t BGl_methodzd2initzd2zzexpand_casez00();
BGL_IMPORT obj_t open_input_string(obj_t);
static obj_t BGl_dozd2cnstzd2casez00zzexpand_casez00(obj_t, obj_t, obj_t);
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
static obj_t BGl_dozd2genericzd2casez00zzexpand_casez00(obj_t, obj_t, obj_t);
BGL_IMPORT obj_t BGl_gensymz00zz__r4_symbols_6_4z00;
static obj_t BGl__expandzd2casezd2zzexpand_casez00(obj_t, obj_t, obj_t);
static obj_t BGl_loopz00zzexpand_casez00(obj_t);
static obj_t BGl_casezd2typezd2zzexpand_casez00(obj_t, obj_t);
static obj_t BGl_cnstzd2initzd2zzexpand_casez00();
static obj_t BGl_loopz72z72zzexpand_casez00(obj_t, obj_t, obj_t);
static bool_t BGl_typezd2matchzf3z21zzexpand_casez00(obj_t, obj_t);
static obj_t BGl_generalz00zzexpand_casez00(obj_t, obj_t);
static obj_t BGl_dozd2typedzd2casez00zzexpand_casez00(obj_t, obj_t, obj_t, obj_t);
static obj_t BGl_importedzd2moduleszd2initz00zzexpand_casez00();
static obj_t BGl_requirezd2initializa7ationz75zzexpand_casez00 = BUNSPEC;
BGL_EXPORTED_DECL obj_t BGl_expandzd2casezd2zzexpand_casez00(obj_t, obj_t);
BGL_IMPORT bool_t BGl_eqvzf3zf3zz__r4_equivalence_6_2z00(obj_t, obj_t);
static obj_t BGl_libraryzd2moduleszd2initz00zzexpand_casez00();
static obj_t BGl_typezd2testzd2zzexpand_casez00(obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
extern obj_t BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(obj_t);
static obj_t __cnst[ 20 ] ;


DEFINE_EXPORT_PROCEDURE( BGl_expandzd2casezd2envz00zzexpand_casez00, BgL_bgl__expandza7d2caseza7d2za7za7expand_caseza7001954za7, BGl__expandzd2casezd2zzexpand_casez00, 0L, 2 );
DEFINE_STRING( BGl_string1927z00zzexpand_casez00, BgL_bgl_string1927za700za7za7expand_caseza7001955z00, "memv quote eqv? case-value c-fixnum? c-char? labels cnst->integer cnst? if let case aux else etherogeneous fail-type cnst char long integer ", 140 );
DEFINE_STRING( BGl_string1926z00zzexpand_casez00, BgL_bgl_string1926za700za7za7expand_caseza7001956z00, "Unknown `case' type", 19 );
DEFINE_STRING( BGl_string1925z00zzexpand_casez00, BgL_bgl_string1925za700za7za7expand_caseza7001957z00, "type-test", 9 );
DEFINE_STRING( BGl_string1924z00zzexpand_casez00, BgL_bgl_string1924za700za7za7expand_caseza7001958z00, "Illegal `case' clause", 21 );
DEFINE_STRING( BGl_string1923z00zzexpand_casez00, BgL_bgl_string1923za700za7za7expand_caseza7001959z00, "case_else", 9 );
DEFINE_STRING( BGl_string1922z00zzexpand_casez00, BgL_bgl_string1922za700za7za7expand_caseza7001960z00, "Illegal `case' form", 19 );
DEFINE_STRING( BGl_string1921z00zzexpand_casez00, BgL_bgl_string1921za700za7za7expand_caseza7001961z00, "case", 4 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzexpand_casez00(long BgL_checksumz00_627, char * BgL_fromz00_628)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzexpand_casez00))
{ 
BGl_requirezd2initializa7ationz75zzexpand_casez00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzexpand_casez00(); 
BGl_cnstzd2initzd2zzexpand_casez00(); 
BGl_importedzd2moduleszd2initz00zzexpand_casez00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzexpand_casez00()
{ AN_OBJECT;
{ /* ./Expand/case.scm 15 */
BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(((long)0), "expand_case"); 
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "expand_case"); 
BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(((long)0), "expand_case"); 
BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(((long)0), "expand_case"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzexpand_casez00()
{ AN_OBJECT;
{ /* ./Expand/case.scm 15 */
{ /* ./Expand/case.scm 15 */
obj_t BgL_cportz00_620;
BgL_cportz00_620 = 
open_input_string(BGl_string1927z00zzexpand_casez00); 
{ 
long BgL_iz00_621;
BgL_iz00_621 = ((long)19); 
BgL_loopz00_622:
{ /* ./Expand/case.scm 15 */
bool_t BgL_test1929z00_623;
BgL_test1929z00_623 = 
(BgL_iz00_621==((long)-1)); 
if(BgL_test1929z00_623)
{ /* ./Expand/case.scm 15 */
return BUNSPEC;}  else 
{ /* ./Expand/case.scm 15 */
{ /* ./Expand/case.scm 15 */
obj_t BgL_arg1931z00_624;
{ /* ./Expand/case.scm 15 */
obj_t BgL_list1934z00_625;
BgL_list1934z00_625 = 
MAKE_PAIR(BgL_cportz00_620, BNIL); 
BgL_arg1931z00_624 = 
BGl_readz00zz__readerz00(BgL_list1934z00_625); } 
{ /* ./Expand/case.scm 15 */
int BgL_auxz00_644;
BgL_auxz00_644 = 
(int)(BgL_iz00_621); 
CNST_TABLE_SET(BgL_auxz00_644, BgL_arg1931z00_624); } } 
{ /* ./Expand/case.scm 15 */
int BgL_auxz00_626;
{ /* ./Expand/case.scm 15 */
long BgL_auxz00_647;
BgL_auxz00_647 = 
(BgL_iz00_621-((long)1)); 
BgL_auxz00_626 = 
(int)(BgL_auxz00_647); } 
{ 
long BgL_iz00_650;
BgL_iz00_650 = 
(long)(BgL_auxz00_626); 
BgL_iz00_621 = BgL_iz00_650; 
goto BgL_loopz00_622;} } } } } } } 
}



/* expand-case */
BGL_EXPORTED_DEF obj_t BGl_expandzd2casezd2zzexpand_casez00(obj_t BgL_xz00_1, obj_t BgL_ez00_2)
{ AN_OBJECT;
{ /* ./Expand/case.scm 34 */
{ 
obj_t BgL_valuez00_78;obj_t BgL_clausesz00_79;
{ /* ./Expand/case.scm 36 */
bool_t BgL_test1111z00_83;
BgL_test1111z00_83 = 
PAIRP(BgL_xz00_1); 
if(BgL_test1111z00_83)
{ /* ./Expand/case.scm 36 */
obj_t BgL_cdrzd2128zd2_84;
BgL_cdrzd2128zd2_84 = 
CDR(BgL_xz00_1); 
{ /* ./Expand/case.scm 36 */
bool_t BgL_test1112z00_85;
BgL_test1112z00_85 = 
PAIRP(BgL_cdrzd2128zd2_84); 
if(BgL_test1112z00_85)
{ /* ./Expand/case.scm 36 */
obj_t BgL_arg1114z00_86;obj_t BgL_arg1115z00_87;
BgL_arg1114z00_86 = 
CAR(BgL_cdrzd2128zd2_84); 
BgL_arg1115z00_87 = 
CDR(BgL_cdrzd2128zd2_84); 
BgL_valuez00_78 = BgL_arg1114z00_86; 
BgL_clausesz00_79 = BgL_arg1115z00_87; 
{ /* ./Expand/case.scm 38 */
obj_t BgL_casezd2valuezd2_88;
BgL_casezd2valuezd2_88 = 
BGl_casezd2typezd2zzexpand_casez00(BgL_xz00_1, BgL_clausesz00_79); 
{ /* ./Expand/case.scm 38 */
bool_t BgL_test1125z00_89;
BgL_test1125z00_89 = 
BGl_eqvzf3zf3zz__r4_equivalence_6_2z00(BgL_casezd2valuezd2_88, 
CNST_TABLE_REF(((long)0))); 
if(BgL_test1125z00_89)
{ /* ./Expand/case.scm 38 */
return 
BGl_dozd2typedzd2casez00zzexpand_casez00(
CNST_TABLE_REF(((long)1)), BgL_valuez00_78, BgL_clausesz00_79, BgL_ez00_2);}  else 
{ /* ./Expand/case.scm 38 */
bool_t BgL_test1127z00_90;
BgL_test1127z00_90 = 
BGl_eqvzf3zf3zz__r4_equivalence_6_2z00(BgL_casezd2valuezd2_88, 
CNST_TABLE_REF(((long)2))); 
if(BgL_test1127z00_90)
{ /* ./Expand/case.scm 38 */
return 
BGl_dozd2typedzd2casez00zzexpand_casez00(
CNST_TABLE_REF(((long)2)), BgL_valuez00_78, BgL_clausesz00_79, BgL_ez00_2);}  else 
{ /* ./Expand/case.scm 38 */
bool_t BgL_test1129z00_91;
BgL_test1129z00_91 = 
BGl_eqvzf3zf3zz__r4_equivalence_6_2z00(BgL_casezd2valuezd2_88, 
CNST_TABLE_REF(((long)3))); 
if(BgL_test1129z00_91)
{ /* ./Expand/case.scm 38 */
return 
BGl_dozd2cnstzd2casez00zzexpand_casez00(BgL_valuez00_78, BgL_clausesz00_79, BgL_ez00_2);}  else 
{ /* ./Expand/case.scm 38 */
return 
BGl_dozd2genericzd2casez00zzexpand_casez00(BgL_valuez00_78, BgL_clausesz00_79, BgL_ez00_2);} } } } } }  else 
{ /* ./Expand/case.scm 36 */
BgL_tagzd2121zd2_81:
FAILURE(BGl_string1921z00zzexpand_casez00,BGl_string1922z00zzexpand_casez00,BgL_xz00_1);} } }  else 
{ /* ./Expand/case.scm 36 */
goto BgL_tagzd2121zd2_81;} } } } 
}



/* _expand-case */
obj_t BGl__expandzd2casezd2zzexpand_casez00(obj_t BgL_envz00_615, obj_t BgL_xz00_616, obj_t BgL_ez00_617)
{ AN_OBJECT;
{ /* ./Expand/case.scm 34 */
return 
BGl_expandzd2casezd2zzexpand_casez00(BgL_xz00_616, BgL_ez00_617);} 
}



/* case-type */
obj_t BGl_casezd2typezd2zzexpand_casez00(obj_t BgL_xz00_3, obj_t BgL_clausesz00_4)
{ AN_OBJECT;
{ /* ./Expand/case.scm 65 */
{ 
obj_t BgL_datumz00_98;obj_t BgL_datumsz00_100;
{ 
obj_t BgL_clausesz00_102;obj_t BgL_typez00_103;
BgL_clausesz00_102 = BgL_clausesz00_4; 
BgL_typez00_103 = BNIL; 
BgL_loopz00_104:
{ /* ./Expand/case.scm 110 */
bool_t BgL_test1138z00_105;
BgL_test1138z00_105 = 
NULLP(BgL_clausesz00_102); 
if(BgL_test1138z00_105)
{ /* ./Expand/case.scm 110 */
return BgL_typez00_103;}  else 
{ 
obj_t BgL_expsz00_106;obj_t BgL_datumz00_108;obj_t BgL_expsz00_109;
{ /* ./Expand/case.scm 112 */
obj_t BgL_ezd2138zd2_112;
BgL_ezd2138zd2_112 = 
CAR(BgL_clausesz00_102); 
{ /* ./Expand/case.scm 112 */
bool_t BgL_test1139z00_113;
BgL_test1139z00_113 = 
PAIRP(BgL_ezd2138zd2_112); 
if(BgL_test1139z00_113)
{ /* ./Expand/case.scm 112 */
bool_t BgL_test1140z00_114;
{ /* ./Expand/case.scm 112 */
obj_t BgL_auxz00_684;obj_t BgL_auxz00_682;
BgL_auxz00_684 = 
CNST_TABLE_REF(((long)6)); 
BgL_auxz00_682 = 
CAR(BgL_ezd2138zd2_112); 
BgL_test1140z00_114 = 
(BgL_auxz00_682==BgL_auxz00_684); } 
if(BgL_test1140z00_114)
{ /* ./Expand/case.scm 112 */
obj_t BgL_arg1142z00_115;
BgL_arg1142z00_115 = 
CDR(BgL_ezd2138zd2_112); 
BgL_expsz00_106 = BgL_arg1142z00_115; 
{ /* ./Expand/case.scm 114 */
bool_t BgL_test1161z00_121;
{ /* ./Expand/case.scm 114 */
bool_t BgL_testz00_689;
{ /* ./Expand/case.scm 114 */
obj_t BgL_auxz00_690;
BgL_auxz00_690 = 
CDR(BgL_clausesz00_102); 
BgL_testz00_689 = 
NULLP(BgL_auxz00_690); } 
if(BgL_testz00_689)
{ /* ./Expand/case.scm 114 */
BgL_test1161z00_121 = 
NULLP(BgL_expsz00_106); }  else 
{ /* ./Expand/case.scm 114 */
BgL_test1161z00_121 = ((bool_t)1); } } 
if(BgL_test1161z00_121)
{ /* ./Expand/case.scm 114 */
FAILURE(BGl_string1921z00zzexpand_casez00,BGl_string1922z00zzexpand_casez00,BgL_xz00_3);}  else 
{ /* ./Expand/case.scm 114 */
return BgL_typez00_103;} } }  else 
{ /* ./Expand/case.scm 112 */
obj_t BgL_carzd2149zd2_116;
BgL_carzd2149zd2_116 = 
CAR(BgL_ezd2138zd2_112); 
{ /* ./Expand/case.scm 112 */
bool_t BgL_test1145z00_117;
BgL_test1145z00_117 = 
NULLP(BgL_carzd2149zd2_116); 
if(BgL_test1145z00_117)
{ /* ./Expand/case.scm 112 */
BgL_tagzd2137zd2_111:
FAILURE(BGl_string1921z00zzexpand_casez00,BGl_string1922z00zzexpand_casez00,BgL_xz00_3);}  else 
{ /* ./Expand/case.scm 112 */
obj_t BgL_arg1148z00_118;
BgL_arg1148z00_118 = 
CDR(BgL_ezd2138zd2_112); 
BgL_datumz00_108 = BgL_carzd2149zd2_116; 
BgL_expsz00_109 = BgL_arg1148z00_118; 
{ /* ./Expand/case.scm 119 */
bool_t BgL_test1169z00_124;
BgL_test1169z00_124 = 
NULLP(BgL_expsz00_109); 
if(BgL_test1169z00_124)
{ /* ./Expand/case.scm 119 */
FAILURE(BGl_string1921z00zzexpand_casez00,BGl_string1922z00zzexpand_casez00,BgL_xz00_3);}  else 
{ /* ./Expand/case.scm 121 */
obj_t BgL_dtypez00_125;
BgL_datumsz00_100 = BgL_datumz00_108; 
{ 
obj_t BgL_datumsz00_143;obj_t BgL_typez00_144;
BgL_datumsz00_143 = BgL_datumsz00_100; 
BgL_typez00_144 = BNIL; 
BgL_loopz00_145:
{ /* ./Expand/case.scm 95 */
bool_t BgL_test1209z00_146;
BgL_test1209z00_146 = 
NULLP(BgL_datumsz00_143); 
if(BgL_test1209z00_146)
{ /* ./Expand/case.scm 95 */
BgL_dtypez00_125 = BgL_typez00_144; }  else 
{ /* ./Expand/case.scm 97 */
bool_t BgL_test1210z00_147;
BgL_test1210z00_147 = 
PAIRP(BgL_datumsz00_143); 
if(BgL_test1210z00_147)
{ /* ./Expand/case.scm 97 */
{ /* ./Expand/case.scm 103 */
obj_t BgL_dtypez00_148;
BgL_datumz00_98 = 
CAR(BgL_datumsz00_143); 
if(
INTEGERP(BgL_datumz00_98))
{ /* ./Expand/case.scm 84 */
BgL_dtypez00_148 = 
CNST_TABLE_REF(((long)0)); }  else 
{ /* ./Expand/case.scm 84 */
if(
CHARP(BgL_datumz00_98))
{ /* ./Expand/case.scm 86 */
BgL_dtypez00_148 = 
CNST_TABLE_REF(((long)2)); }  else 
{ /* ./Expand/case.scm 86 */
if(
CNSTP(BgL_datumz00_98))
{ /* ./Expand/case.scm 88 */
BgL_dtypez00_148 = 
CNST_TABLE_REF(((long)3)); }  else 
{ /* ./Expand/case.scm 88 */
BgL_dtypez00_148 = 
CNST_TABLE_REF(((long)4)); } } } 
{ /* ./Expand/case.scm 104 */
bool_t BgL_test1211z00_149;
BgL_test1211z00_149 = 
BGl_typezd2matchzf3z21zzexpand_casez00(BgL_dtypez00_148, BgL_typez00_144); 
if(BgL_test1211z00_149)
{ /* ./Expand/case.scm 105 */
obj_t BgL_arg1213z00_150;obj_t BgL_arg1214z00_151;
BgL_arg1213z00_150 = 
CDR(BgL_datumsz00_143); 
BgL_arg1214z00_151 = 
BGl_generalz00zzexpand_casez00(BgL_dtypez00_148, BgL_typez00_144); 
{ 
obj_t BgL_typez00_724;obj_t BgL_datumsz00_723;
BgL_datumsz00_723 = BgL_arg1213z00_150; 
BgL_typez00_724 = BgL_arg1214z00_151; 
BgL_typez00_144 = BgL_typez00_724; 
BgL_datumsz00_143 = BgL_datumsz00_723; 
goto BgL_loopz00_145;} }  else 
{ /* ./Expand/case.scm 104 */
BgL_dtypez00_125 = 
CNST_TABLE_REF(((long)4)); } } } }  else 
{ /* ./Expand/case.scm 97 */
FAILURE(BGl_string1921z00zzexpand_casez00,BGl_string1922z00zzexpand_casez00,BgL_xz00_3);} } } } 
{ /* ./Expand/case.scm 122 */
bool_t BgL_test1171z00_126;
BgL_test1171z00_126 = 
BGl_typezd2matchzf3z21zzexpand_casez00(BgL_dtypez00_125, BgL_typez00_103); 
if(BgL_test1171z00_126)
{ /* ./Expand/case.scm 123 */
obj_t BgL_arg1177z00_127;obj_t BgL_arg1178z00_128;
BgL_arg1177z00_127 = 
CDR(BgL_clausesz00_102); 
BgL_arg1178z00_128 = 
BGl_generalz00zzexpand_casez00(BgL_dtypez00_125, BgL_typez00_103); 
{ 
obj_t BgL_typez00_732;obj_t BgL_clausesz00_731;
BgL_clausesz00_731 = BgL_arg1177z00_127; 
BgL_typez00_732 = BgL_arg1178z00_128; 
BgL_typez00_103 = BgL_typez00_732; 
BgL_clausesz00_102 = BgL_clausesz00_731; 
goto BgL_loopz00_104;} }  else 
{ /* ./Expand/case.scm 122 */
return 
CNST_TABLE_REF(((long)5));} } } } } } } }  else 
{ /* ./Expand/case.scm 112 */
goto BgL_tagzd2137zd2_111;} } } } } } } } 
}



/* type-match? */
bool_t BGl_typezd2matchzf3z21zzexpand_casez00(obj_t BgL_type1z00_92, obj_t BgL_type2z00_93)
{ AN_OBJECT;
{ /* ./Expand/case.scm 66 */
{ /* ./Expand/case.scm 66 */
bool_t BgL__ortest_1089z00_129;
BgL__ortest_1089z00_129 = 
NULLP(BgL_type1z00_92); 
if(BgL__ortest_1089z00_129)
{ /* ./Expand/case.scm 66 */
return BgL__ortest_1089z00_129;}  else 
{ /* ./Expand/case.scm 67 */
bool_t BgL__ortest_1090z00_130;
BgL__ortest_1090z00_130 = 
NULLP(BgL_type2z00_93); 
if(BgL__ortest_1090z00_130)
{ /* ./Expand/case.scm 67 */
return BgL__ortest_1090z00_130;}  else 
{ /* ./Expand/case.scm 68 */
bool_t BgL_testz00_738;
{ /* ./Expand/case.scm 68 */
bool_t BgL_testz00_739;
{ /* ./Expand/case.scm 68 */
obj_t BgL_auxz00_740;
BgL_auxz00_740 = 
CNST_TABLE_REF(((long)4)); 
BgL_testz00_739 = 
(BgL_type1z00_92==BgL_auxz00_740); } 
if(BgL_testz00_739)
{ /* ./Expand/case.scm 68 */
BgL_testz00_738 = ((bool_t)0)
; }  else 
{ /* ./Expand/case.scm 68 */
BgL_testz00_738 = ((bool_t)1)
; } } 
if(BgL_testz00_738)
{ /* ./Expand/case.scm 69 */
bool_t BgL__ortest_1092z00_132;
BgL__ortest_1092z00_132 = 
(BgL_type1z00_92==BgL_type2z00_93); 
if(BgL__ortest_1092z00_132)
{ /* ./Expand/case.scm 69 */
return BgL__ortest_1092z00_132;}  else 
{ /* ./Expand/case.scm 70 */
bool_t BgL__ortest_1093z00_133;
{ /* ./Expand/case.scm 70 */
bool_t BgL_testz00_745;
{ /* ./Expand/case.scm 70 */
obj_t BgL_auxz00_746;
BgL_auxz00_746 = 
CNST_TABLE_REF(((long)3)); 
BgL_testz00_745 = 
(BgL_type1z00_92==BgL_auxz00_746); } 
if(BgL_testz00_745)
{ /* ./Expand/case.scm 71 */
obj_t BgL_auxz00_749;
BgL_auxz00_749 = 
CNST_TABLE_REF(((long)2)); 
BgL__ortest_1093z00_133 = 
(BgL_type2z00_93==BgL_auxz00_749); }  else 
{ /* ./Expand/case.scm 70 */
BgL__ortest_1093z00_133 = ((bool_t)0); } } 
if(BgL__ortest_1093z00_133)
{ /* ./Expand/case.scm 70 */
return BgL__ortest_1093z00_133;}  else 
{ /* ./Expand/case.scm 72 */
bool_t BgL_testz00_753;
{ /* ./Expand/case.scm 72 */
obj_t BgL_auxz00_754;
BgL_auxz00_754 = 
CNST_TABLE_REF(((long)2)); 
BgL_testz00_753 = 
(BgL_type1z00_92==BgL_auxz00_754); } 
if(BgL_testz00_753)
{ /* ./Expand/case.scm 73 */
obj_t BgL_auxz00_757;
BgL_auxz00_757 = 
CNST_TABLE_REF(((long)3)); 
return 
(BgL_type2z00_93==BgL_auxz00_757);}  else 
{ /* ./Expand/case.scm 72 */
return ((bool_t)0);} } } }  else 
{ /* ./Expand/case.scm 68 */
return ((bool_t)0);} } } } } 
}



/* general */
obj_t BGl_generalz00zzexpand_casez00(obj_t BgL_type1z00_95, obj_t BgL_type2z00_96)
{ AN_OBJECT;
{ /* ./Expand/case.scm 74 */
if(
(BgL_type1z00_95==BgL_type2z00_96))
{ /* ./Expand/case.scm 75 */
return BgL_type1z00_95;}  else 
{ /* ./Expand/case.scm 77 */
bool_t BgL_testz00_762;
{ /* ./Expand/case.scm 77 */
obj_t BgL_auxz00_763;
BgL_auxz00_763 = 
CNST_TABLE_REF(((long)3)); 
BgL_testz00_762 = 
(BgL_type1z00_95==BgL_auxz00_763); } 
if(BgL_testz00_762)
{ /* ./Expand/case.scm 77 */
return BgL_type1z00_95;}  else 
{ /* ./Expand/case.scm 77 */
if(
NULLP(BgL_type2z00_96))
{ /* ./Expand/case.scm 79 */
return BgL_type1z00_95;}  else 
{ /* ./Expand/case.scm 79 */
return BgL_type2z00_96;} } } } 
}



/* do-typed-case */
obj_t BGl_dozd2typedzd2casez00zzexpand_casez00(obj_t BgL_typez00_5, obj_t BgL_valuez00_6, obj_t BgL_clausesz00_7, obj_t BgL_ez00_8)
{ AN_OBJECT;
{ /* ./Expand/case.scm 132 */
{ /* ./Expand/case.scm 133 */
obj_t BgL_elsezd2bodyzd2_153;
{ 
obj_t BgL_clausesz00_219;
BgL_clausesz00_219 = BgL_clausesz00_7; 
BgL_loopz00_220:
{ /* ./Expand/case.scm 134 */
bool_t BgL_test1358z00_221;
BgL_test1358z00_221 = 
NULLP(BgL_clausesz00_219); 
if(BgL_test1358z00_221)
{ /* ./Expand/case.scm 135 */
obj_t BgL_list1360z00_222;
BgL_list1360z00_222 = 
MAKE_PAIR(BUNSPEC, BNIL); 
BgL_elsezd2bodyzd2_153 = BgL_list1360z00_222; }  else 
{ 
obj_t BgL_bodyz00_224;
{ /* ./Expand/case.scm 136 */
obj_t BgL_ezd2162zd2_227;
BgL_ezd2162zd2_227 = 
CAR(BgL_clausesz00_219); 
{ /* ./Expand/case.scm 136 */
bool_t BgL_test1363z00_228;
BgL_test1363z00_228 = 
NULLP(BgL_ezd2162zd2_227); 
if(BgL_test1363z00_228)
{ /* ./Expand/case.scm 136 */
BgL_elsezd2bodyzd2_153 = BUNSPEC; }  else 
{ /* ./Expand/case.scm 136 */
bool_t BgL_test1365z00_229;
BgL_test1365z00_229 = 
PAIRP(BgL_ezd2162zd2_227); 
if(BgL_test1365z00_229)
{ /* ./Expand/case.scm 136 */
bool_t BgL_test1366z00_230;
{ /* ./Expand/case.scm 136 */
obj_t BgL_auxz00_778;obj_t BgL_auxz00_776;
BgL_auxz00_778 = 
CNST_TABLE_REF(((long)6)); 
BgL_auxz00_776 = 
CAR(BgL_ezd2162zd2_227); 
BgL_test1366z00_230 = 
(BgL_auxz00_776==BgL_auxz00_778); } 
if(BgL_test1366z00_230)
{ /* ./Expand/case.scm 136 */
obj_t BgL_arg1368z00_231;
BgL_arg1368z00_231 = 
CDR(BgL_ezd2162zd2_227); 
BgL_bodyz00_224 = BgL_arg1368z00_231; 
{ /* ./Expand/case.scm 140 */
bool_t BgL_test1382z00_235;
BgL_test1382z00_235 = 
NULLP(BgL_bodyz00_224); 
if(BgL_test1382z00_235)
{ /* ./Expand/case.scm 140 */
BgL_elsezd2bodyzd2_153 = BNIL; }  else 
{ /* ./Expand/case.scm 140 */
obj_t BgL_head1098z00_236;
BgL_head1098z00_236 = 
MAKE_PAIR(BNIL, BNIL); 
{ 
obj_t BgL_l1096z00_237;obj_t BgL_tail1099z00_238;
BgL_l1096z00_237 = BgL_bodyz00_224; 
BgL_tail1099z00_238 = BgL_head1098z00_236; 
BgL_map1097z00_239:
{ /* ./Expand/case.scm 140 */
bool_t BgL_test1384z00_240;
BgL_test1384z00_240 = 
NULLP(BgL_l1096z00_237); 
if(BgL_test1384z00_240)
{ /* ./Expand/case.scm 140 */
BgL_elsezd2bodyzd2_153 = 
CDR(BgL_head1098z00_236); }  else 
{ /* ./Expand/case.scm 140 */
obj_t BgL_newtail1100z00_241;
{ /* ./Expand/case.scm 140 */
obj_t BgL_arg1392z00_243;
{ /* ./Expand/case.scm 140 */
obj_t BgL_xz00_245;
BgL_xz00_245 = 
CAR(BgL_l1096z00_237); 
BgL_arg1392z00_243 = 
PROCEDURE_ENTRY(BgL_ez00_8)(BgL_ez00_8, BgL_xz00_245, BgL_ez00_8, BEOA); } 
BgL_newtail1100z00_241 = 
MAKE_PAIR(BgL_arg1392z00_243, BNIL); } 
SET_CDR(BgL_tail1099z00_238, BgL_newtail1100z00_241); 
{ /* ./Expand/case.scm 140 */
obj_t BgL_arg1388z00_242;
BgL_arg1388z00_242 = 
CDR(BgL_l1096z00_237); 
{ 
obj_t BgL_tail1099z00_796;obj_t BgL_l1096z00_795;
BgL_l1096z00_795 = BgL_arg1388z00_242; 
BgL_tail1099z00_796 = BgL_newtail1100z00_241; 
BgL_tail1099z00_238 = BgL_tail1099z00_796; 
BgL_l1096z00_237 = BgL_l1096z00_795; 
goto BgL_map1097z00_239;} } } } } } } }  else 
{ /* ./Expand/case.scm 136 */
BgL_tagzd2161zd2_226:
{ /* ./Expand/case.scm 142 */
obj_t BgL_arg1401z00_246;
BgL_arg1401z00_246 = 
CDR(BgL_clausesz00_219); 
{ 
obj_t BgL_clausesz00_798;
BgL_clausesz00_798 = BgL_arg1401z00_246; 
BgL_clausesz00_219 = BgL_clausesz00_798; 
goto BgL_loopz00_220;} } } }  else 
{ /* ./Expand/case.scm 136 */
goto BgL_tagzd2161zd2_226;} } } } } } } 
{ /* ./Expand/case.scm 133 */
obj_t BgL_elsezd2namezd2_154;
{ /* ./Expand/case.scm 143 */
obj_t BgL_arg1354z00_218;
BgL_arg1354z00_218 = 
PROCEDURE_ENTRY(BGl_gensymz00zz__r4_symbols_6_4z00)(BGl_gensymz00zz__r4_symbols_6_4z00, BGl_string1923z00zzexpand_casez00, BEOA); 
BgL_elsezd2namezd2_154 = 
BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(BgL_arg1354z00_218); } 
{ /* ./Expand/case.scm 143 */
obj_t BgL_auxz00_155;
{ /* ./Expand/case.scm 144 */
obj_t BgL_arg1349z00_217;
BgL_arg1349z00_217 = 
PROCEDURE_ENTRY(BGl_gensymz00zz__r4_symbols_6_4z00)(BGl_gensymz00zz__r4_symbols_6_4z00, 
CNST_TABLE_REF(((long)7)), BEOA); 
BgL_auxz00_155 = 
BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(BgL_arg1349z00_217); } 
{ /* ./Expand/case.scm 144 */

{ /* ./Expand/case.scm 145 */
obj_t BgL_casez00_156;
{ /* ./Expand/case.scm 145 */
obj_t BgL_arg1229z00_157;obj_t BgL_arg1230z00_158;
BgL_arg1229z00_157 = 
CNST_TABLE_REF(((long)8)); 
{ /* ./Expand/case.scm 146 */
obj_t BgL_arg1233z00_159;
{ /* ./Expand/case.scm 146 */
obj_t BgL_arg1237z00_160;
BgL_arg1237z00_160 = 
BGl_loopz72z72zzexpand_casez00(BgL_elsezd2namezd2_154, BgL_ez00_8, BgL_clausesz00_7); 
BgL_arg1233z00_159 = 
BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(BgL_arg1237z00_160, BNIL); } 
BgL_arg1230z00_158 = 
MAKE_PAIR(BgL_auxz00_155, BgL_arg1233z00_159); } 
BgL_casez00_156 = 
MAKE_PAIR(BgL_arg1229z00_157, BgL_arg1230z00_158); } 
return 
BGl_typezd2testzd2zzexpand_casez00(BgL_auxz00_155, BgL_typez00_5, BgL_valuez00_6, BgL_casez00_156, BgL_elsezd2bodyzd2_153, BgL_elsezd2namezd2_154, BgL_ez00_8);} } } } } } 
}



/* loop' */
obj_t BGl_loopz72z72zzexpand_casez00(obj_t BgL_elsezd2namezd2_619, obj_t BgL_ez00_618, obj_t BgL_clausesz00_162)
{ AN_OBJECT;
{ /* ./Expand/case.scm 146 */
{ /* ./Expand/case.scm 147 */
bool_t BgL_test1241z00_164;
BgL_test1241z00_164 = 
NULLP(BgL_clausesz00_162); 
if(BgL_test1241z00_164)
{ /* ./Expand/case.scm 147 */
{ /* ./Expand/case.scm 149 */
obj_t BgL_arg1243z00_165;
{ /* ./Expand/case.scm 149 */
obj_t BgL_arg1249z00_167;obj_t BgL_arg1250z00_168;
BgL_arg1249z00_167 = 
CNST_TABLE_REF(((long)6)); 
BgL_arg1250z00_168 = 
MAKE_PAIR(BUNSPEC, BNIL); 
BgL_arg1243z00_165 = 
MAKE_PAIR(BgL_arg1249z00_167, BgL_arg1250z00_168); } 
return 
MAKE_PAIR(BgL_arg1243z00_165, BNIL);} }  else 
{ 
obj_t BgL_bodyz00_170;obj_t BgL_datumsz00_172;obj_t BgL_bodyz00_173;
{ /* ./Expand/case.scm 150 */
obj_t BgL_ezd2173zd2_176;
BgL_ezd2173zd2_176 = 
CAR(BgL_clausesz00_162); 
{ /* ./Expand/case.scm 150 */
bool_t BgL_test1253z00_177;
BgL_test1253z00_177 = 
NULLP(BgL_ezd2173zd2_176); 
if(BgL_test1253z00_177)
{ /* ./Expand/case.scm 150 */
{ /* ./Expand/case.scm 152 */
obj_t BgL_arg1284z00_185;
{ /* ./Expand/case.scm 152 */
obj_t BgL_arg1288z00_187;obj_t BgL_arg1289z00_188;
BgL_arg1288z00_187 = 
CNST_TABLE_REF(((long)6)); 
BgL_arg1289z00_188 = 
MAKE_PAIR(BUNSPEC, BNIL); 
BgL_arg1284z00_185 = 
MAKE_PAIR(BgL_arg1288z00_187, BgL_arg1289z00_188); } 
return 
MAKE_PAIR(BgL_arg1284z00_185, BNIL);} }  else 
{ /* ./Expand/case.scm 150 */
bool_t BgL_test1255z00_178;
BgL_test1255z00_178 = 
PAIRP(BgL_ezd2173zd2_176); 
if(BgL_test1255z00_178)
{ /* ./Expand/case.scm 150 */
bool_t BgL_test1256z00_179;
{ /* ./Expand/case.scm 150 */
obj_t BgL_auxz00_829;obj_t BgL_auxz00_827;
BgL_auxz00_829 = 
CNST_TABLE_REF(((long)6)); 
BgL_auxz00_827 = 
CAR(BgL_ezd2173zd2_176); 
BgL_test1256z00_179 = 
(BgL_auxz00_827==BgL_auxz00_829); } 
if(BgL_test1256z00_179)
{ /* ./Expand/case.scm 150 */
obj_t BgL_arg1258z00_180;
BgL_arg1258z00_180 = 
CDR(BgL_ezd2173zd2_176); 
BgL_bodyz00_170 = BgL_arg1258z00_180; 
{ /* ./Expand/case.scm 154 */
obj_t BgL_arg1293z00_189;
{ /* ./Expand/case.scm 154 */
obj_t BgL_arg1297z00_191;obj_t BgL_arg1298z00_192;
BgL_arg1297z00_191 = 
CNST_TABLE_REF(((long)6)); 
{ /* ./Expand/case.scm 154 */
obj_t BgL_arg1301z00_193;
BgL_arg1301z00_193 = 
MAKE_PAIR(BgL_elsezd2namezd2_619, BNIL); 
BgL_arg1298z00_192 = 
MAKE_PAIR(BgL_arg1301z00_193, BNIL); } 
BgL_arg1293z00_189 = 
MAKE_PAIR(BgL_arg1297z00_191, BgL_arg1298z00_192); } 
return 
MAKE_PAIR(BgL_arg1293z00_189, BNIL);} }  else 
{ /* ./Expand/case.scm 150 */
obj_t BgL_arg1265z00_181;obj_t BgL_arg1266z00_182;
BgL_arg1265z00_181 = 
CAR(BgL_ezd2173zd2_176); 
BgL_arg1266z00_182 = 
CDR(BgL_ezd2173zd2_176); 
BgL_datumsz00_172 = BgL_arg1265z00_181; 
BgL_bodyz00_173 = BgL_arg1266z00_182; 
{ /* ./Expand/case.scm 156 */
bool_t BgL_test1305z00_195;
BgL_test1305z00_195 = 
NULLP(BgL_bodyz00_173); 
if(BgL_test1305z00_195)
{ /* ./Expand/case.scm 157 */
obj_t BgL_arg1309z00_198;
BgL_arg1309z00_198 = 
CAR(BgL_clausesz00_162); 
FAILURE(BGl_string1921z00zzexpand_casez00,BGl_string1924z00zzexpand_casez00,BgL_arg1309z00_198);}  else 
{ /* ./Expand/case.scm 161 */
obj_t BgL_arg1313z00_199;obj_t BgL_arg1314z00_200;
{ /* ./Expand/case.scm 161 */
obj_t BgL_arg1317z00_201;
{ /* ./Expand/case.scm 161 */
obj_t BgL_arg1320z00_202;
if(BgL_test1305z00_195)
{ /* ./Expand/case.scm 161 */
BgL_arg1320z00_202 = BNIL; }  else 
{ /* ./Expand/case.scm 161 */
obj_t BgL_head1103z00_206;
BgL_head1103z00_206 = 
MAKE_PAIR(BNIL, BNIL); 
{ 
obj_t BgL_l1101z00_207;obj_t BgL_tail1104z00_208;
BgL_l1101z00_207 = BgL_bodyz00_173; 
BgL_tail1104z00_208 = BgL_head1103z00_206; 
BgL_map1102z00_209:
{ /* ./Expand/case.scm 161 */
bool_t BgL_test1325z00_210;
BgL_test1325z00_210 = 
NULLP(BgL_l1101z00_207); 
if(BgL_test1325z00_210)
{ /* ./Expand/case.scm 161 */
BgL_arg1320z00_202 = 
CDR(BgL_head1103z00_206); }  else 
{ /* ./Expand/case.scm 161 */
obj_t BgL_newtail1105z00_211;
{ /* ./Expand/case.scm 161 */
obj_t BgL_arg1333z00_213;
{ /* ./Expand/case.scm 161 */
obj_t BgL_xz00_215;
BgL_xz00_215 = 
CAR(BgL_l1101z00_207); 
BgL_arg1333z00_213 = 
PROCEDURE_ENTRY(BgL_ez00_618)(BgL_ez00_618, BgL_xz00_215, BgL_ez00_618, BEOA); } 
BgL_newtail1105z00_211 = 
MAKE_PAIR(BgL_arg1333z00_213, BNIL); } 
SET_CDR(BgL_tail1104z00_208, BgL_newtail1105z00_211); 
{ /* ./Expand/case.scm 161 */
obj_t BgL_arg1329z00_212;
BgL_arg1329z00_212 = 
CDR(BgL_l1101z00_207); 
{ 
obj_t BgL_tail1104z00_857;obj_t BgL_l1101z00_856;
BgL_l1101z00_856 = BgL_arg1329z00_212; 
BgL_tail1104z00_857 = BgL_newtail1105z00_211; 
BgL_tail1104z00_208 = BgL_tail1104z00_857; 
BgL_l1101z00_207 = BgL_l1101z00_856; 
goto BgL_map1102z00_209;} } } } } } 
BgL_arg1317z00_201 = 
BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(BgL_arg1320z00_202, BNIL); } 
BgL_arg1313z00_199 = 
MAKE_PAIR(BgL_datumsz00_172, BgL_arg1317z00_201); } 
{ /* ./Expand/case.scm 163 */
obj_t BgL_arg1342z00_216;
BgL_arg1342z00_216 = 
CDR(BgL_clausesz00_162); 
BgL_arg1314z00_200 = 
BGl_loopz72z72zzexpand_casez00(BgL_elsezd2namezd2_619, BgL_ez00_618, BgL_arg1342z00_216); } 
return 
MAKE_PAIR(BgL_arg1313z00_199, BgL_arg1314z00_200);} } } }  else 
{ /* ./Expand/case.scm 150 */
FAILURE(BGl_string1921z00zzexpand_casez00,BGl_string1922z00zzexpand_casez00,BgL_clausesz00_162);} } } } } } } 
}



/* do-cnst-case */
obj_t BGl_dozd2cnstzd2casez00zzexpand_casez00(obj_t BgL_valuez00_9, obj_t BgL_clausesz00_10, obj_t BgL_ez00_11)
{ AN_OBJECT;
{ /* ./Expand/case.scm 177 */
{ /* ./Expand/case.scm 178 */
obj_t BgL_auxz00_247;
{ /* ./Expand/case.scm 178 */
obj_t BgL_arg1506z00_293;
BgL_arg1506z00_293 = 
PROCEDURE_ENTRY(BGl_gensymz00zz__r4_symbols_6_4z00)(BGl_gensymz00zz__r4_symbols_6_4z00, 
CNST_TABLE_REF(((long)7)), BEOA); 
BgL_auxz00_247 = 
BGl_markzd2symbolzd2nonzd2userz12zc0zzast_identz00(BgL_arg1506z00_293); } 
{ /* ./Expand/case.scm 178 */
obj_t BgL_valuez00_248;
{ /* ./Expand/case.scm 179 */
obj_t BgL_arg1456z00_274;obj_t BgL_arg1457z00_275;
BgL_arg1456z00_274 = 
CNST_TABLE_REF(((long)9)); 
{ /* ./Expand/case.scm 179 */
obj_t BgL_arg1461z00_276;obj_t BgL_arg1463z00_277;
{ /* ./Expand/case.scm 179 */
obj_t BgL_arg1466z00_278;
{ /* ./Expand/case.scm 179 */
obj_t BgL_arg1471z00_280;
BgL_arg1471z00_280 = 
MAKE_PAIR(BgL_valuez00_9, BNIL); 
BgL_arg1466z00_278 = 
MAKE_PAIR(BgL_auxz00_247, BgL_arg1471z00_280); } 
BgL_arg1461z00_276 = 
MAKE_PAIR(BgL_arg1466z00_278, BNIL); } 
{ /* ./Expand/case.scm 180 */
obj_t BgL_arg1476z00_281;
{ /* ./Expand/case.scm 180 */
obj_t BgL_arg1480z00_283;obj_t BgL_arg1481z00_284;
BgL_arg1480z00_283 = 
CNST_TABLE_REF(((long)10)); 
{ /* ./Expand/case.scm 180 */
obj_t BgL_arg1484z00_285;obj_t BgL_arg1486z00_286;
{ /* ./Expand/case.scm 180 */
obj_t BgL_arg1490z00_287;obj_t BgL_arg1491z00_288;
BgL_arg1490z00_287 = 
CNST_TABLE_REF(((long)11)); 
BgL_arg1491z00_288 = 
MAKE_PAIR(BgL_auxz00_247, BNIL); 
BgL_arg1484z00_285 = 
MAKE_PAIR(BgL_arg1490z00_287, BgL_arg1491z00_288); } 
{ /* ./Expand/case.scm 181 */
obj_t BgL_arg1496z00_289;obj_t BgL_arg1497z00_290;
{ /* ./Expand/case.scm 181 */
obj_t BgL_arg1500z00_291;obj_t BgL_arg1501z00_292;
BgL_arg1500z00_291 = 
CNST_TABLE_REF(((long)12)); 
BgL_arg1501z00_292 = 
MAKE_PAIR(BgL_auxz00_247, BNIL); 
BgL_arg1496z00_289 = 
MAKE_PAIR(BgL_arg1500z00_291, BgL_arg1501z00_292); } 
{ /* ./Expand/case.scm 180 */
obj_t BgL_auxz00_879;
BgL_auxz00_879 = 
BINT(((long)-1)); 
BgL_arg1497z00_290 = 
MAKE_PAIR(BgL_auxz00_879, BNIL); } 
BgL_arg1486z00_286 = 
MAKE_PAIR(BgL_arg1496z00_289, BgL_arg1497z00_290); } 
BgL_arg1481z00_284 = 
MAKE_PAIR(BgL_arg1484z00_285, BgL_arg1486z00_286); } 
BgL_arg1476z00_281 = 
MAKE_PAIR(BgL_arg1480z00_283, BgL_arg1481z00_284); } 
BgL_arg1463z00_277 = 
MAKE_PAIR(BgL_arg1476z00_281, BNIL); } 
BgL_arg1457z00_275 = 
MAKE_PAIR(BgL_arg1461z00_276, BgL_arg1463z00_277); } 
BgL_valuez00_248 = 
MAKE_PAIR(BgL_arg1456z00_274, BgL_arg1457z00_275); } 
{ /* ./Expand/case.scm 179 */

{ 
obj_t BgL_cz00_249;
BgL_cz00_249 = BgL_clausesz00_10; 
BgL_loopz00_250:
{ /* ./Expand/case.scm 186 */
bool_t BgL_test1406z00_251;
BgL_test1406z00_251 = 
NULLP(BgL_cz00_249); 
if(BgL_test1406z00_251)
{ /* ./Expand/case.scm 186 */
return 
BGl_dozd2typedzd2casez00zzexpand_casez00(
CNST_TABLE_REF(((long)1)), BgL_valuez00_248, BgL_clausesz00_10, BgL_ez00_11);}  else 
{ /* ./Expand/case.scm 188 */
obj_t BgL_clausez00_252;
BgL_clausez00_252 = 
CAR(BgL_cz00_249); 
{ /* ./Expand/case.scm 189 */
bool_t BgL_test1408z00_253;
{ /* ./Expand/case.scm 189 */
obj_t BgL_auxz00_895;obj_t BgL_auxz00_893;
BgL_auxz00_895 = 
CNST_TABLE_REF(((long)6)); 
BgL_auxz00_893 = 
CAR(BgL_clausez00_252); 
BgL_test1408z00_253 = 
(BgL_auxz00_893==BgL_auxz00_895); } 
if(BgL_test1408z00_253)
{ /* ./Expand/case.scm 189 */BFALSE; }  else 
{ /* ./Expand/case.scm 190 */
obj_t BgL_arg1410z00_254;
{ /* ./Expand/case.scm 190 */
obj_t BgL_l1106z00_255;
BgL_l1106z00_255 = 
CAR(BgL_clausez00_252); 
{ /* ./Expand/case.scm 190 */
bool_t BgL_test1412z00_256;
BgL_test1412z00_256 = 
NULLP(BgL_l1106z00_255); 
if(BgL_test1412z00_256)
{ /* ./Expand/case.scm 190 */
BgL_arg1410z00_254 = BNIL; }  else 
{ /* ./Expand/case.scm 190 */
obj_t BgL_head1108z00_257;
{ /* ./Expand/case.scm 190 */
long BgL_arg1433z00_268;
{ /* ./Expand/case.scm 190 */
obj_t BgL_arg1437z00_270;
BgL_arg1437z00_270 = 
CAR(BgL_l1106z00_255); 
BgL_arg1433z00_268 = 
CCNST(BgL_arg1437z00_270); } 
{ /* ./Expand/case.scm 190 */
obj_t BgL_obj1z00_560;
BgL_obj1z00_560 = 
BINT(BgL_arg1433z00_268); 
BgL_head1108z00_257 = 
MAKE_PAIR(BgL_obj1z00_560, BNIL); } } 
{ 
obj_t BgL_l1106z00_258;obj_t BgL_tail1109z00_259;
{ /* ./Expand/case.scm 190 */
obj_t BgL_arg1414z00_261;
BgL_arg1414z00_261 = 
CDR(BgL_l1106z00_255); 
BgL_l1106z00_258 = BgL_arg1414z00_261; 
BgL_tail1109z00_259 = BgL_head1108z00_257; 
BgL_map1107z00_260:
{ /* ./Expand/case.scm 190 */
bool_t BgL_test1417z00_262;
BgL_test1417z00_262 = 
NULLP(BgL_l1106z00_258); 
if(BgL_test1417z00_262)
{ /* ./Expand/case.scm 190 */
BgL_arg1410z00_254 = BgL_head1108z00_257; }  else 
{ /* ./Expand/case.scm 190 */
obj_t BgL_newtail1110z00_263;
{ /* ./Expand/case.scm 190 */
long BgL_arg1424z00_265;
{ /* ./Expand/case.scm 190 */
obj_t BgL_arg1428z00_267;
BgL_arg1428z00_267 = 
CAR(BgL_l1106z00_258); 
BgL_arg1424z00_265 = 
CCNST(BgL_arg1428z00_267); } 
{ /* ./Expand/case.scm 190 */
obj_t BgL_obj1z00_565;
BgL_obj1z00_565 = 
BINT(BgL_arg1424z00_265); 
BgL_newtail1110z00_263 = 
MAKE_PAIR(BgL_obj1z00_565, BNIL); } } 
SET_CDR(BgL_tail1109z00_259, BgL_newtail1110z00_263); 
{ /* ./Expand/case.scm 190 */
obj_t BgL_arg1420z00_264;
BgL_arg1420z00_264 = 
CDR(BgL_l1106z00_258); 
{ 
obj_t BgL_tail1109z00_916;obj_t BgL_l1106z00_915;
BgL_l1106z00_915 = BgL_arg1420z00_264; 
BgL_tail1109z00_916 = BgL_newtail1110z00_263; 
BgL_tail1109z00_259 = BgL_tail1109z00_916; 
BgL_l1106z00_258 = BgL_l1106z00_915; 
goto BgL_map1107z00_260;} } } } } } } } } 
SET_CAR(BgL_clausez00_252, BgL_arg1410z00_254); } } 
{ /* ./Expand/case.scm 191 */
obj_t BgL_arg1450z00_273;
BgL_arg1450z00_273 = 
CDR(BgL_cz00_249); 
{ 
obj_t BgL_cz00_919;
BgL_cz00_919 = BgL_arg1450z00_273; 
BgL_cz00_249 = BgL_cz00_919; 
goto BgL_loopz00_250;} } } } } } } } } 
}



/* type-test */
obj_t BGl_typezd2testzd2zzexpand_casez00(obj_t BgL_auxz00_12, obj_t BgL_typez00_13, obj_t BgL_valuez00_14, obj_t BgL_casez00_15, obj_t BgL_elsezd2bodyzd2_16, obj_t BgL_elsezd2namezd2_17, obj_t BgL_ez00_18)
{ AN_OBJECT;
{ /* ./Expand/case.scm 196 */
{ /* ./Expand/case.scm 198 */
bool_t BgL_test1509z00_294;
{ /* ./Expand/case.scm 198 */
obj_t BgL_auxz00_920;
BgL_auxz00_920 = 
CNST_TABLE_REF(((long)2)); 
BgL_test1509z00_294 = 
(BgL_typez00_13==BgL_auxz00_920); } 
if(BgL_test1509z00_294)
{ /* ./Expand/case.scm 198 */
{ /* ./Expand/case.scm 199 */
obj_t BgL_arg1511z00_295;obj_t BgL_arg1513z00_296;
BgL_arg1511z00_295 = 
CNST_TABLE_REF(((long)13)); 
{ /* ./Expand/case.scm 199 */
obj_t BgL_arg1516z00_297;obj_t BgL_arg1518z00_298;
{ /* ./Expand/case.scm 199 */
obj_t BgL_arg1521z00_299;
{ /* ./Expand/case.scm 199 */
obj_t BgL_arg1527z00_301;
{ /* ./Expand/case.scm 199 */
obj_t BgL_arg1531z00_303;
BgL_arg1531z00_303 = 
BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(BgL_elsezd2bodyzd2_16, BNIL); 
BgL_arg1527z00_301 = 
MAKE_PAIR(BNIL, BgL_arg1531z00_303); } 
BgL_arg1521z00_299 = 
MAKE_PAIR(BgL_elsezd2namezd2_17, BgL_arg1527z00_301); } 
BgL_arg1516z00_297 = 
MAKE_PAIR(BgL_arg1521z00_299, BNIL); } 
{ /* ./Expand/case.scm 200 */
obj_t BgL_arg1537z00_304;
{ /* ./Expand/case.scm 200 */
obj_t BgL_arg1541z00_306;obj_t BgL_arg1543z00_307;
BgL_arg1541z00_306 = 
CNST_TABLE_REF(((long)9)); 
{ /* ./Expand/case.scm 200 */
obj_t BgL_arg1547z00_308;obj_t BgL_arg1548z00_309;
{ /* ./Expand/case.scm 200 */
obj_t BgL_arg1551z00_310;
{ /* ./Expand/case.scm 200 */
obj_t BgL_arg1555z00_312;
{ /* ./Expand/case.scm 200 */
obj_t BgL_arg1558z00_313;
BgL_arg1558z00_313 = 
PROCEDURE_ENTRY(BgL_ez00_18)(BgL_ez00_18, BgL_valuez00_14, BgL_ez00_18, BEOA); 
BgL_arg1555z00_312 = 
MAKE_PAIR(BgL_arg1558z00_313, BNIL); } 
BgL_arg1551z00_310 = 
MAKE_PAIR(BgL_auxz00_12, BgL_arg1555z00_312); } 
BgL_arg1547z00_308 = 
MAKE_PAIR(BgL_arg1551z00_310, BNIL); } 
{ /* ./Expand/case.scm 201 */
obj_t BgL_arg1564z00_315;
{ /* ./Expand/case.scm 201 */
obj_t BgL_arg1568z00_317;obj_t BgL_arg1569z00_318;
BgL_arg1568z00_317 = 
CNST_TABLE_REF(((long)10)); 
{ /* ./Expand/case.scm 201 */
obj_t BgL_arg1572z00_319;obj_t BgL_arg1573z00_320;
{ /* ./Expand/case.scm 201 */
obj_t BgL_arg1576z00_321;obj_t BgL_arg1578z00_322;
BgL_arg1576z00_321 = 
CNST_TABLE_REF(((long)14)); 
BgL_arg1578z00_322 = 
MAKE_PAIR(BgL_auxz00_12, BNIL); 
BgL_arg1572z00_319 = 
MAKE_PAIR(BgL_arg1576z00_321, BgL_arg1578z00_322); } 
{ /* ./Expand/case.scm 203 */
obj_t BgL_arg1586z00_323;
{ /* ./Expand/case.scm 203 */
obj_t BgL_arg1589z00_324;
BgL_arg1589z00_324 = 
MAKE_PAIR(BgL_elsezd2namezd2_17, BNIL); 
BgL_arg1586z00_323 = 
MAKE_PAIR(BgL_arg1589z00_324, BNIL); } 
BgL_arg1573z00_320 = 
MAKE_PAIR(BgL_casez00_15, BgL_arg1586z00_323); } 
BgL_arg1569z00_318 = 
MAKE_PAIR(BgL_arg1572z00_319, BgL_arg1573z00_320); } 
BgL_arg1564z00_315 = 
MAKE_PAIR(BgL_arg1568z00_317, BgL_arg1569z00_318); } 
BgL_arg1548z00_309 = 
MAKE_PAIR(BgL_arg1564z00_315, BNIL); } 
BgL_arg1543z00_307 = 
MAKE_PAIR(BgL_arg1547z00_308, BgL_arg1548z00_309); } 
BgL_arg1537z00_304 = 
MAKE_PAIR(BgL_arg1541z00_306, BgL_arg1543z00_307); } 
BgL_arg1518z00_298 = 
MAKE_PAIR(BgL_arg1537z00_304, BNIL); } 
BgL_arg1513z00_296 = 
MAKE_PAIR(BgL_arg1516z00_297, BgL_arg1518z00_298); } 
return 
MAKE_PAIR(BgL_arg1511z00_295, BgL_arg1513z00_296);} }  else 
{ /* ./Expand/case.scm 204 */
bool_t BgL_test1593z00_326;
{ /* ./Expand/case.scm 204 */
obj_t BgL_auxz00_950;
BgL_auxz00_950 = 
CNST_TABLE_REF(((long)1)); 
BgL_test1593z00_326 = 
(BgL_typez00_13==BgL_auxz00_950); } 
if(BgL_test1593z00_326)
{ /* ./Expand/case.scm 204 */
{ /* ./Expand/case.scm 205 */
obj_t BgL_arg1596z00_327;obj_t BgL_arg1597z00_328;
BgL_arg1596z00_327 = 
CNST_TABLE_REF(((long)13)); 
{ /* ./Expand/case.scm 205 */
obj_t BgL_arg1600z00_329;obj_t BgL_arg1601z00_330;
{ /* ./Expand/case.scm 205 */
obj_t BgL_arg1604z00_331;
{ /* ./Expand/case.scm 205 */
obj_t BgL_arg1610z00_333;
{ /* ./Expand/case.scm 205 */
obj_t BgL_arg1614z00_335;
BgL_arg1614z00_335 = 
BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(BgL_elsezd2bodyzd2_16, BNIL); 
BgL_arg1610z00_333 = 
MAKE_PAIR(BNIL, BgL_arg1614z00_335); } 
BgL_arg1604z00_331 = 
MAKE_PAIR(BgL_elsezd2namezd2_17, BgL_arg1610z00_333); } 
BgL_arg1600z00_329 = 
MAKE_PAIR(BgL_arg1604z00_331, BNIL); } 
{ /* ./Expand/case.scm 206 */
obj_t BgL_arg1618z00_336;
{ /* ./Expand/case.scm 206 */
obj_t BgL_arg1624z00_338;obj_t BgL_arg1625z00_339;
BgL_arg1624z00_338 = 
CNST_TABLE_REF(((long)9)); 
{ /* ./Expand/case.scm 206 */
obj_t BgL_arg1628z00_340;obj_t BgL_arg1629z00_341;
{ /* ./Expand/case.scm 206 */
obj_t BgL_arg1632z00_342;
{ /* ./Expand/case.scm 206 */
obj_t BgL_arg1638z00_344;
{ /* ./Expand/case.scm 206 */
obj_t BgL_arg1641z00_345;
BgL_arg1641z00_345 = 
PROCEDURE_ENTRY(BgL_ez00_18)(BgL_ez00_18, BgL_valuez00_14, BgL_ez00_18, BEOA); 
BgL_arg1638z00_344 = 
MAKE_PAIR(BgL_arg1641z00_345, BNIL); } 
BgL_arg1632z00_342 = 
MAKE_PAIR(BgL_auxz00_12, BgL_arg1638z00_344); } 
BgL_arg1628z00_340 = 
MAKE_PAIR(BgL_arg1632z00_342, BNIL); } 
{ /* ./Expand/case.scm 207 */
obj_t BgL_arg1648z00_347;
{ /* ./Expand/case.scm 207 */
obj_t BgL_arg1654z00_349;obj_t BgL_arg1655z00_350;
BgL_arg1654z00_349 = 
CNST_TABLE_REF(((long)10)); 
{ /* ./Expand/case.scm 207 */
obj_t BgL_arg1658z00_351;obj_t BgL_arg1659z00_352;
{ /* ./Expand/case.scm 207 */
obj_t BgL_arg1662z00_353;obj_t BgL_arg1663z00_354;
BgL_arg1662z00_353 = 
CNST_TABLE_REF(((long)15)); 
BgL_arg1663z00_354 = 
MAKE_PAIR(BgL_auxz00_12, BNIL); 
BgL_arg1658z00_351 = 
MAKE_PAIR(BgL_arg1662z00_353, BgL_arg1663z00_354); } 
{ /* ./Expand/case.scm 209 */
obj_t BgL_arg1667z00_355;
{ /* ./Expand/case.scm 209 */
obj_t BgL_arg1670z00_356;
BgL_arg1670z00_356 = 
MAKE_PAIR(BgL_elsezd2namezd2_17, BNIL); 
BgL_arg1667z00_355 = 
MAKE_PAIR(BgL_arg1670z00_356, BNIL); } 
BgL_arg1659z00_352 = 
MAKE_PAIR(BgL_casez00_15, BgL_arg1667z00_355); } 
BgL_arg1655z00_350 = 
MAKE_PAIR(BgL_arg1658z00_351, BgL_arg1659z00_352); } 
BgL_arg1648z00_347 = 
MAKE_PAIR(BgL_arg1654z00_349, BgL_arg1655z00_350); } 
BgL_arg1629z00_341 = 
MAKE_PAIR(BgL_arg1648z00_347, BNIL); } 
BgL_arg1625z00_339 = 
MAKE_PAIR(BgL_arg1628z00_340, BgL_arg1629z00_341); } 
BgL_arg1618z00_336 = 
MAKE_PAIR(BgL_arg1624z00_338, BgL_arg1625z00_339); } 
BgL_arg1601z00_330 = 
MAKE_PAIR(BgL_arg1618z00_336, BNIL); } 
BgL_arg1597z00_328 = 
MAKE_PAIR(BgL_arg1600z00_329, BgL_arg1601z00_330); } 
return 
MAKE_PAIR(BgL_arg1596z00_327, BgL_arg1597z00_328);} }  else 
{ /* ./Expand/case.scm 204 */
FAILURE(BGl_string1925z00zzexpand_casez00,BGl_string1926z00zzexpand_casez00,BgL_typez00_13);} } } } 
}



/* do-generic-case */
obj_t BGl_dozd2genericzd2casez00zzexpand_casez00(obj_t BgL_valuez00_19, obj_t BgL_clausesz00_20, obj_t BgL_ez00_21)
{ AN_OBJECT;
{ /* ./Expand/case.scm 217 */
{ /* ./Expand/case.scm 218 */
obj_t BgL_arg1678z00_358;
{ /* ./Expand/case.scm 218 */
obj_t BgL_arg1681z00_359;obj_t BgL_arg1682z00_360;
BgL_arg1681z00_359 = 
CNST_TABLE_REF(((long)9)); 
{ /* ./Expand/case.scm 218 */
obj_t BgL_arg1685z00_361;obj_t BgL_arg1686z00_362;
{ /* ./Expand/case.scm 218 */
obj_t BgL_arg1689z00_363;
{ /* ./Expand/case.scm 218 */
obj_t BgL_arg1695z00_365;obj_t BgL_arg1696z00_366;
BgL_arg1695z00_365 = 
CNST_TABLE_REF(((long)16)); 
BgL_arg1696z00_366 = 
MAKE_PAIR(BgL_valuez00_19, BNIL); 
BgL_arg1689z00_363 = 
MAKE_PAIR(BgL_arg1695z00_365, BgL_arg1696z00_366); } 
BgL_arg1685z00_361 = 
MAKE_PAIR(BgL_arg1689z00_363, BNIL); } 
{ /* ./Expand/case.scm 219 */
obj_t BgL_arg1700z00_367;
BgL_arg1700z00_367 = 
BGl_loopz00zzexpand_casez00(BgL_clausesz00_20); 
BgL_arg1686z00_362 = 
MAKE_PAIR(BgL_arg1700z00_367, BNIL); } 
BgL_arg1682z00_360 = 
MAKE_PAIR(BgL_arg1685z00_361, BgL_arg1686z00_362); } 
BgL_arg1678z00_358 = 
MAKE_PAIR(BgL_arg1681z00_359, BgL_arg1682z00_360); } 
return 
PROCEDURE_ENTRY(BgL_ez00_21)(BgL_ez00_21, BgL_arg1678z00_358, BgL_ez00_21, BEOA);} } 
}



/* loop */
obj_t BGl_loopz00zzexpand_casez00(obj_t BgL_clausesz00_369)
{ AN_OBJECT;
{ /* ./Expand/case.scm 219 */
{ /* ./Expand/case.scm 220 */
bool_t BgL_test1704z00_371;
BgL_test1704z00_371 = 
NULLP(BgL_clausesz00_369); 
if(BgL_test1704z00_371)
{ /* ./Expand/case.scm 220 */
return BUNSPEC;}  else 
{ 
obj_t BgL_datumsz00_375;obj_t BgL_bodyz00_376;obj_t BgL_datumsz00_378;obj_t BgL_bodyz00_379;
{ /* ./Expand/case.scm 222 */
obj_t BgL_ezd2198zd2_381;
BgL_ezd2198zd2_381 = 
CAR(BgL_clausesz00_369); 
{ /* ./Expand/case.scm 222 */
bool_t BgL_test1705z00_382;
BgL_test1705z00_382 = 
NULLP(BgL_ezd2198zd2_381); 
if(BgL_test1705z00_382)
{ /* ./Expand/case.scm 222 */
return BUNSPEC;}  else 
{ /* ./Expand/case.scm 222 */
bool_t BgL_test1707z00_383;
BgL_test1707z00_383 = 
PAIRP(BgL_ezd2198zd2_381); 
if(BgL_test1707z00_383)
{ /* ./Expand/case.scm 222 */
bool_t BgL_test1708z00_384;
{ /* ./Expand/case.scm 222 */
obj_t BgL_auxz00_1001;obj_t BgL_auxz00_999;
BgL_auxz00_1001 = 
CNST_TABLE_REF(((long)6)); 
BgL_auxz00_999 = 
CAR(BgL_ezd2198zd2_381); 
BgL_test1708z00_384 = 
(BgL_auxz00_999==BgL_auxz00_1001); } 
if(BgL_test1708z00_384)
{ /* ./Expand/case.scm 222 */
obj_t BgL_arg1710z00_385;
BgL_arg1710z00_385 = 
CDR(BgL_ezd2198zd2_381); 
{ /* ./Expand/case.scm 222 */
bool_t BgL_test1763z00_583;
BgL_test1763z00_583 = 
NULLP(BgL_arg1710z00_385); 
if(BgL_test1763z00_583)
{ /* ./Expand/case.scm 222 */
return BFALSE;}  else 
{ /* ./Expand/case.scm 222 */
return 
BGl_normaliza7ezd2prognz75zztools_prognz00(BgL_arg1710z00_385);} } }  else 
{ /* ./Expand/case.scm 222 */
obj_t BgL_carzd2211zd2_386;
BgL_carzd2211zd2_386 = 
CAR(BgL_ezd2198zd2_381); 
{ /* ./Expand/case.scm 222 */
bool_t BgL_test1713z00_387;
BgL_test1713z00_387 = 
PAIRP(BgL_carzd2211zd2_386); 
if(BgL_test1713z00_387)
{ /* ./Expand/case.scm 222 */
bool_t BgL_test1715z00_388;
{ /* ./Expand/case.scm 222 */
obj_t BgL_auxz00_1012;
BgL_auxz00_1012 = 
CDR(BgL_carzd2211zd2_386); 
BgL_test1715z00_388 = 
PAIRP(BgL_auxz00_1012); } 
if(BgL_test1715z00_388)
{ /* ./Expand/case.scm 222 */
obj_t BgL_arg1717z00_389;
BgL_arg1717z00_389 = 
CDR(BgL_ezd2198zd2_381); 
BgL_datumsz00_375 = BgL_carzd2211zd2_386; 
BgL_bodyz00_376 = BgL_arg1717z00_389; 
{ /* ./Expand/case.scm 230 */
bool_t BgL_test1766z00_405;
BgL_test1766z00_405 = 
NULLP(BgL_bodyz00_376); 
if(BgL_test1766z00_405)
{ /* ./Expand/case.scm 231 */
obj_t BgL_arg1772z00_408;
BgL_arg1772z00_408 = 
CAR(BgL_clausesz00_369); 
FAILURE(BGl_string1921z00zzexpand_casez00,BGl_string1924z00zzexpand_casez00,BgL_arg1772z00_408);}  else 
{ /* ./Expand/case.scm 234 */
obj_t BgL_arg1776z00_409;obj_t BgL_arg1777z00_410;
BgL_arg1776z00_409 = 
CNST_TABLE_REF(((long)10)); 
{ /* ./Expand/case.scm 232 */
obj_t BgL_arg1780z00_411;obj_t BgL_arg1781z00_412;
{ /* ./Expand/case.scm 232 */
obj_t BgL_arg1784z00_413;obj_t BgL_arg1785z00_414;
BgL_arg1784z00_413 = 
CNST_TABLE_REF(((long)19)); 
{ /* ./Expand/case.scm 232 */
obj_t BgL_arg1788z00_415;obj_t BgL_arg1789z00_416;
BgL_arg1788z00_415 = 
CNST_TABLE_REF(((long)16)); 
{ /* ./Expand/case.scm 232 */
obj_t BgL_arg1792z00_417;
{ /* ./Expand/case.scm 232 */
obj_t BgL_arg1798z00_419;obj_t BgL_arg1799z00_420;
BgL_arg1798z00_419 = 
CNST_TABLE_REF(((long)18)); 
BgL_arg1799z00_420 = 
MAKE_PAIR(BgL_datumsz00_375, BNIL); 
BgL_arg1792z00_417 = 
MAKE_PAIR(BgL_arg1798z00_419, BgL_arg1799z00_420); } 
BgL_arg1789z00_416 = 
MAKE_PAIR(BgL_arg1792z00_417, BNIL); } 
BgL_arg1785z00_414 = 
MAKE_PAIR(BgL_arg1788z00_415, BgL_arg1789z00_416); } 
BgL_arg1780z00_411 = 
MAKE_PAIR(BgL_arg1784z00_413, BgL_arg1785z00_414); } 
{ /* ./Expand/case.scm 233 */
obj_t BgL_arg1804z00_421;obj_t BgL_arg1805z00_422;
BgL_arg1804z00_421 = 
BGl_normaliza7ezd2prognz75zztools_prognz00(BgL_bodyz00_376); 
{ /* ./Expand/case.scm 234 */
obj_t BgL_arg1809z00_423;
{ /* ./Expand/case.scm 234 */
obj_t BgL_arg1813z00_425;
BgL_arg1813z00_425 = 
CDR(BgL_clausesz00_369); 
BgL_arg1809z00_423 = 
BGl_loopz00zzexpand_casez00(BgL_arg1813z00_425); } 
BgL_arg1805z00_422 = 
MAKE_PAIR(BgL_arg1809z00_423, BNIL); } 
BgL_arg1781z00_412 = 
MAKE_PAIR(BgL_arg1804z00_421, BgL_arg1805z00_422); } 
BgL_arg1777z00_410 = 
MAKE_PAIR(BgL_arg1780z00_411, BgL_arg1781z00_412); } 
return 
MAKE_PAIR(BgL_arg1776z00_409, BgL_arg1777z00_410);} } }  else 
{ /* ./Expand/case.scm 222 */
bool_t BgL_test1721z00_391;
{ /* ./Expand/case.scm 222 */
obj_t BgL_auxz00_1037;
BgL_auxz00_1037 = 
CDR(BgL_carzd2211zd2_386); 
BgL_test1721z00_391 = 
NULLP(BgL_auxz00_1037); } 
if(BgL_test1721z00_391)
{ /* ./Expand/case.scm 222 */
obj_t BgL_arg1723z00_392;obj_t BgL_arg1724z00_393;
BgL_arg1723z00_392 = 
CAR(BgL_carzd2211zd2_386); 
BgL_arg1724z00_393 = 
CDR(BgL_ezd2198zd2_381); 
BgL_datumsz00_378 = BgL_arg1723z00_392; 
BgL_bodyz00_379 = BgL_arg1724z00_393; 
BgL_tagzd2197zd2_380:
{ /* ./Expand/case.scm 236 */
bool_t BgL_test1817z00_426;
BgL_test1817z00_426 = 
NULLP(BgL_bodyz00_379); 
if(BgL_test1817z00_426)
{ /* ./Expand/case.scm 237 */
obj_t BgL_arg1824z00_429;
BgL_arg1824z00_429 = 
CAR(BgL_clausesz00_369); 
FAILURE(BGl_string1921z00zzexpand_casez00,BGl_string1924z00zzexpand_casez00,BgL_arg1824z00_429);}  else 
{ /* ./Expand/case.scm 240 */
obj_t BgL_arg1829z00_430;obj_t BgL_arg1830z00_431;
BgL_arg1829z00_430 = 
CNST_TABLE_REF(((long)10)); 
{ /* ./Expand/case.scm 238 */
obj_t BgL_arg1833z00_432;obj_t BgL_arg1836z00_433;
{ /* ./Expand/case.scm 238 */
obj_t BgL_arg1839z00_434;obj_t BgL_arg1840z00_435;
BgL_arg1839z00_434 = 
CNST_TABLE_REF(((long)17)); 
{ /* ./Expand/case.scm 238 */
obj_t BgL_arg1843z00_436;obj_t BgL_arg1845z00_437;
BgL_arg1843z00_436 = 
CNST_TABLE_REF(((long)16)); 
{ /* ./Expand/case.scm 238 */
obj_t BgL_arg1848z00_438;
{ /* ./Expand/case.scm 238 */
obj_t BgL_arg1853z00_440;obj_t BgL_arg1854z00_441;
BgL_arg1853z00_440 = 
CNST_TABLE_REF(((long)18)); 
BgL_arg1854z00_441 = 
MAKE_PAIR(BgL_datumsz00_378, BNIL); 
BgL_arg1848z00_438 = 
MAKE_PAIR(BgL_arg1853z00_440, BgL_arg1854z00_441); } 
BgL_arg1845z00_437 = 
MAKE_PAIR(BgL_arg1848z00_438, BNIL); } 
BgL_arg1840z00_435 = 
MAKE_PAIR(BgL_arg1843z00_436, BgL_arg1845z00_437); } 
BgL_arg1833z00_432 = 
MAKE_PAIR(BgL_arg1839z00_434, BgL_arg1840z00_435); } 
{ /* ./Expand/case.scm 239 */
obj_t BgL_arg1859z00_442;obj_t BgL_arg1862z00_443;
BgL_arg1859z00_442 = 
BGl_normaliza7ezd2prognz75zztools_prognz00(BgL_bodyz00_379); 
{ /* ./Expand/case.scm 240 */
obj_t BgL_arg1866z00_444;
{ /* ./Expand/case.scm 240 */
obj_t BgL_arg1870z00_446;
BgL_arg1870z00_446 = 
CDR(BgL_clausesz00_369); 
BgL_arg1866z00_444 = 
BGl_loopz00zzexpand_casez00(BgL_arg1870z00_446); } 
BgL_arg1862z00_443 = 
MAKE_PAIR(BgL_arg1866z00_444, BNIL); } 
BgL_arg1836z00_433 = 
MAKE_PAIR(BgL_arg1859z00_442, BgL_arg1862z00_443); } 
BgL_arg1830z00_431 = 
MAKE_PAIR(BgL_arg1833z00_432, BgL_arg1836z00_433); } 
return 
MAKE_PAIR(BgL_arg1829z00_430, BgL_arg1830z00_431);} } }  else 
{ /* ./Expand/case.scm 222 */
return BFALSE;} } }  else 
{ /* ./Expand/case.scm 222 */
bool_t BgL_test1737z00_397;
BgL_test1737z00_397 = 
PAIRP(BgL_carzd2211zd2_386); 
if(BgL_test1737z00_397)
{ /* ./Expand/case.scm 222 */
bool_t BgL_test1738z00_398;
{ /* ./Expand/case.scm 222 */
obj_t BgL_auxz00_1065;
BgL_auxz00_1065 = 
CDR(BgL_carzd2211zd2_386); 
BgL_test1738z00_398 = 
NULLP(BgL_auxz00_1065); } 
if(BgL_test1738z00_398)
{ /* ./Expand/case.scm 222 */
obj_t BgL_arg1741z00_399;obj_t BgL_arg1743z00_400;
BgL_arg1741z00_399 = 
CAR(BgL_carzd2211zd2_386); 
BgL_arg1743z00_400 = 
CDR(BgL_ezd2198zd2_381); 
{ 
obj_t BgL_bodyz00_1072;obj_t BgL_datumsz00_1071;
BgL_datumsz00_1071 = BgL_arg1741z00_399; 
BgL_bodyz00_1072 = BgL_arg1743z00_400; 
BgL_bodyz00_379 = BgL_bodyz00_1072; 
BgL_datumsz00_378 = BgL_datumsz00_1071; 
goto BgL_tagzd2197zd2_380;} }  else 
{ /* ./Expand/case.scm 222 */
return BFALSE;} }  else 
{ /* ./Expand/case.scm 222 */
return BFALSE;} } } } }  else 
{ /* ./Expand/case.scm 222 */
return BFALSE;} } } } } } } 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzexpand_casez00()
{ AN_OBJECT;
{ /* ./Expand/case.scm 15 */
return BUNSPEC;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzexpand_casez00()
{ AN_OBJECT;
{ /* ./Expand/case.scm 15 */
BGl_modulezd2initializa7ationz75zztools_tracez00(((long)59211), "expand_case"); 
BGl_modulezd2initializa7ationz75zztools_prognz00(((long)55569), "expand_case"); 
BGl_modulezd2initializa7ationz75zztools_errorz00(((long)25566), "expand_case"); 
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "expand_case"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "expand_case"); 
return 
BGl_modulezd2initializa7ationz75zzast_identz00(((long)51504), "expand_case");} 
}

