/*===========================================================================*/
/*   (Type/pptype.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 Type/pptype.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;


BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zztype_pptypez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(long, char *);
static obj_t BGl_methodzd2initzd2zztype_pptypez00();
BGL_IMPORT obj_t BGl_stringzd2downcasezd2zz__r4_strings_6_7z00(obj_t);
BGL_IMPORT obj_t string_to_bstring(char *);
static obj_t BGl__functionzd2typezd2ze3stringze3zztype_pptypez00(obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_variablezd2typezd2ze3stringze3zztype_pptypez00(BgL_variablez00_bglt);
BGL_EXPORTED_DECL obj_t BGl_functionzd2typezd2ze3stringze3zztype_pptypez00(BgL_variablez00_bglt);
static obj_t BGl_loopz00zztype_pptypez00(obj_t);
static obj_t BGl__variablezd2typezd2ze3stringze3zztype_pptypez00(obj_t, obj_t);
static obj_t BGl_importedzd2moduleszd2initz00zztype_pptypez00();
static obj_t BGl_requirezd2initializa7ationz75zztype_pptypez00 = BUNSPEC;
static obj_t BGl_libraryzd2moduleszd2initz00zztype_pptypez00();
BGL_IMPORT obj_t string_append_3(obj_t, obj_t, obj_t);
static obj_t *__cnst;


DEFINE_EXPORT_PROCEDURE( BGl_functionzd2typezd2ze3stringzd2envz31zztype_pptypez00, BgL_bgl__functionza7d2typeza7d2za7e3stringza7e3za7za7type_pptypeza7001749za7, BGl__functionzd2typezd2ze3stringze3zztype_pptypez00, 0L, 1 );
DEFINE_STRING( BGl_string1740z00zztype_pptypez00, BgL_bgl_string1740za700za7za7type_pptypeza7001750z00, "", 0 );
DEFINE_STRING( BGl_string1739z00zztype_pptypez00, BgL_bgl_string1739za700za7za7type_pptypeza7001751z00, " -> ", 4 );
DEFINE_EXPORT_PROCEDURE( BGl_variablezd2typezd2ze3stringzd2envz31zztype_pptypez00, BgL_bgl__variableza7d2typeza7d2za7e3stringza7e3za7za7type_pptypeza7001752za7, BGl__variablezd2typezd2ze3stringze3zztype_pptypez00, 0L, 1 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zztype_pptypez00(long BgL_checksumz00_437, char * BgL_fromz00_438)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zztype_pptypez00))
{ 
BGl_requirezd2initializa7ationz75zztype_pptypez00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zztype_pptypez00(); 
BGl_importedzd2moduleszd2initz00zztype_pptypez00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zztype_pptypez00()
{ AN_OBJECT;
{ /* ./Type/pptype.scm 15 */
BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(((long)0), "type_pptype"); 
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "type_pptype"); 
return BUNSPEC;} 
}



/* function-type->string */
BGL_EXPORTED_DEF obj_t BGl_functionzd2typezd2ze3stringze3zztype_pptypez00(BgL_variablez00_bglt BgL_variablez00_2)
{ AN_OBJECT;
{ /* ./Type/pptype.scm 32 */
{ /* ./Type/pptype.scm 33 */
BgL_valuez00_bglt BgL_sfunz00_279;
BgL_sfunz00_279 = 
(((BgL_variablez00_bglt)CREF(BgL_variablez00_2))->BgL_valuez00); 
{ /* ./Type/pptype.scm 34 */
obj_t BgL_arg1570z00_280;obj_t BgL_arg1573z00_282;
{ /* ./Type/pptype.scm 34 */
obj_t BgL_arg1576z00_285;
{ /* ./Type/pptype.scm 34 */
BgL_sfunz00_bglt BgL_obj1367z00_418;
BgL_obj1367z00_418 = 
(BgL_sfunz00_bglt)(BgL_sfunz00_279); 
BgL_arg1576z00_285 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_418))->BgL_argsz00); } 
BgL_arg1570z00_280 = 
BGl_loopz00zztype_pptypez00(BgL_arg1576z00_285); } 
{ /* ./Type/pptype.scm 47 */
obj_t BgL_arg1613z00_297;
{ /* ./Type/pptype.scm 47 */
obj_t BgL_arg1617z00_298;
{ /* ./Type/pptype.scm 47 */
BgL_typez00_bglt BgL_arg1620z00_299;
BgL_arg1620z00_299 = 
(((BgL_variablez00_bglt)CREF(BgL_variablez00_2))->BgL_typez00); 
BgL_arg1617z00_298 = 
(((BgL_typez00_bglt)CREF(BgL_arg1620z00_299))->BgL_idz00); } 
BgL_arg1613z00_297 = 
SYMBOL_TO_STRING(BgL_arg1617z00_298); } 
BgL_arg1573z00_282 = 
BGl_stringzd2downcasezd2zz__r4_strings_6_7z00(BgL_arg1613z00_297); } 
return 
string_append_3(BgL_arg1570z00_280, BGl_string1739z00zztype_pptypez00, BgL_arg1573z00_282);} } } 
}



/* loop */
obj_t BGl_loopz00zztype_pptypez00(obj_t BgL_argsz00_283)
{ AN_OBJECT;
{ /* ./Type/pptype.scm 34 */
{ /* ./Type/pptype.scm 35 */
bool_t BgL_test1579z00_286;
BgL_test1579z00_286 = 
NULLP(BgL_argsz00_283); 
if(BgL_test1579z00_286)
{ /* ./Type/pptype.scm 35 */
return BGl_string1740z00zztype_pptypez00;}  else 
{ /* ./Type/pptype.scm 40 */
obj_t BgL_arg1581z00_287;char * BgL_arg1586z00_288;obj_t BgL_arg1587z00_289;
{ /* ./Type/pptype.scm 40 */
obj_t BgL_arg1590z00_290;
{ /* ./Type/pptype.scm 40 */
obj_t BgL_arg1593z00_291;
{ /* ./Type/pptype.scm 40 */
BgL_typez00_bglt BgL_arg1596z00_292;
{ /* ./Type/pptype.scm 40 */
BgL_variablez00_bglt BgL_obj1097z00_421;
{ /* ./Type/pptype.scm 40 */
obj_t BgL_auxz00_457;
BgL_auxz00_457 = 
CAR(BgL_argsz00_283); 
BgL_obj1097z00_421 = 
(BgL_variablez00_bglt)(BgL_auxz00_457); } 
BgL_arg1596z00_292 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1097z00_421))->BgL_typez00); } 
BgL_arg1593z00_291 = 
(((BgL_typez00_bglt)CREF(BgL_arg1596z00_292))->BgL_idz00); } 
BgL_arg1590z00_290 = 
SYMBOL_TO_STRING(BgL_arg1593z00_291); } 
BgL_arg1581z00_287 = 
BGl_stringzd2downcasezd2zz__r4_strings_6_7z00(BgL_arg1590z00_290); } 
{ /* ./Type/pptype.scm 41 */
bool_t BgL_testz00_464;
{ /* ./Type/pptype.scm 41 */
obj_t BgL_auxz00_465;
BgL_auxz00_465 = 
CDR(BgL_argsz00_283); 
BgL_testz00_464 = 
NULLP(BgL_auxz00_465); } 
if(BgL_testz00_464)
{ /* ./Type/pptype.scm 41 */
BgL_arg1586z00_288 = ""; }  else 
{ /* ./Type/pptype.scm 41 */
BgL_arg1586z00_288 = " x "; } } 
{ /* ./Type/pptype.scm 44 */
obj_t BgL_arg1608z00_296;
BgL_arg1608z00_296 = 
CDR(BgL_argsz00_283); 
BgL_arg1587z00_289 = 
BGl_loopz00zztype_pptypez00(BgL_arg1608z00_296); } 
{ /* ./Type/pptype.scm 37 */
obj_t BgL_auxz00_470;
BgL_auxz00_470 = 
string_to_bstring(BgL_arg1586z00_288); 
return 
string_append_3(BgL_arg1581z00_287, BgL_auxz00_470, BgL_arg1587z00_289);} } } } 
}



/* _function-type->string */
obj_t BGl__functionzd2typezd2ze3stringze3zztype_pptypez00(obj_t BgL_envz00_433, obj_t BgL_variablez00_434)
{ AN_OBJECT;
{ /* ./Type/pptype.scm 32 */
return 
BGl_functionzd2typezd2ze3stringze3zztype_pptypez00(
(BgL_variablez00_bglt)(BgL_variablez00_434));} 
}



/* variable-type->string */
BGL_EXPORTED_DEF obj_t BGl_variablezd2typezd2ze3stringze3zztype_pptypez00(BgL_variablez00_bglt BgL_variablez00_3)
{ AN_OBJECT;
{ /* ./Type/pptype.scm 52 */
{ /* ./Type/pptype.scm 53 */
obj_t BgL_arg1625z00_300;
{ /* ./Type/pptype.scm 53 */
obj_t BgL_arg1628z00_301;
{ /* ./Type/pptype.scm 53 */
BgL_typez00_bglt BgL_arg1631z00_302;
BgL_arg1631z00_302 = 
(((BgL_variablez00_bglt)CREF(BgL_variablez00_3))->BgL_typez00); 
BgL_arg1628z00_301 = 
(((BgL_typez00_bglt)CREF(BgL_arg1631z00_302))->BgL_idz00); } 
BgL_arg1625z00_300 = 
SYMBOL_TO_STRING(BgL_arg1628z00_301); } 
return 
BGl_stringzd2downcasezd2zz__r4_strings_6_7z00(BgL_arg1625z00_300);} } 
}



/* _variable-type->string */
obj_t BGl__variablezd2typezd2ze3stringze3zztype_pptypez00(obj_t BgL_envz00_435, obj_t BgL_variablez00_436)
{ AN_OBJECT;
{ /* ./Type/pptype.scm 52 */
return 
BGl_variablezd2typezd2ze3stringze3zztype_pptypez00(
(BgL_variablez00_bglt)(BgL_variablez00_436));} 
}



/* method-init */
obj_t BGl_methodzd2initzd2zztype_pptypez00()
{ AN_OBJECT;
{ /* ./Type/pptype.scm 15 */
return BUNSPEC;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zztype_pptypez00()
{ AN_OBJECT;
{ /* ./Type/pptype.scm 15 */
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "type_pptype"); 
return 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "type_pptype");} 
}

