/*===========================================================================*/
/*   (Write/ast.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 Write/ast.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;


static obj_t BGl_makezd2sfunzd2sinfoz00zzwrite_astz00(BgL_globalz00_bglt);
static obj_t BGl_methodzd2initzd2zzwrite_astz00();
BGL_IMPORT obj_t open_input_string(obj_t);
extern obj_t BGl_za2srczd2filesza2zd2zzengine_paramz00;
extern obj_t BGl_writezd2schemezd2filezd2headerzd2zzwrite_schemez00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_stringzd2downcasezd2zz__r4_strings_6_7z00(obj_t);
BGL_IMPORT obj_t BGl_dynamiczd2windzd2zz__r4_control_features_6_9z00(obj_t, obj_t, obj_t);
BGL_IMPORT obj_t BGl_ppz00zz__ppz00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
BGL_IMPORT bool_t BGl_iszd2azf3z21zz__objectz00(obj_t, obj_t);
BGL_IMPORT char * BGl_numberzd2ze3stringz31zz__r4_numbers_6_5z00(obj_t, obj_t);
static obj_t BGl__writezd2astzd2zzwrite_astz00(obj_t, obj_t);
BGL_IMPORT obj_t string_to_bstring(char *);
static obj_t BGl_escapez00zzwrite_astz00(obj_t, obj_t);
extern obj_t BGl_typez00zztype_typez00;
extern obj_t BGl_argszd2listzd2ze3argsza2z41zztools_argsz00(obj_t, obj_t);
extern obj_t BGl_za2astzd2casezd2sensitiveza2z00zzengine_paramz00;
static obj_t BGl_zc3anonymousza32689ze3z83zzwrite_astz00(obj_t);
static obj_t BGl_zc3anonymousza32691ze3z83zzwrite_astz00(obj_t);
static obj_t BGl_cnstzd2initzd2zzwrite_astz00();
static obj_t BGl_zc3exitza32681ze3z83zzwrite_astz00(obj_t, obj_t, obj_t, obj_t);
static obj_t BGl_zc3anonymousza32695ze3z83zzwrite_astz00(obj_t, obj_t, obj_t, obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_writezd2astzd2zzwrite_astz00(obj_t);
BGL_IMPORT obj_t BGl_displayzd22zd2zz__r4_output_6_10_3z00(obj_t, obj_t);
extern obj_t BGl_za2currentzd2passza2zd2zzengine_passz00;
static obj_t BGl_zc3anonymousza32698ze3z83zzwrite_astz00(obj_t);
BGL_IMPORT obj_t BGl_stringzd2appendzd2zz__r4_strings_6_7z00(obj_t);
BGL_IMPORT obj_t open_output_string();
static obj_t BGl_importedzd2moduleszd2initz00zzwrite_astz00();
BGL_IMPORT obj_t BGl_notifyzd2errorzd2zz__errorz00(obj_t, obj_t, obj_t);
BGL_IMPORT obj_t BGl_addzd2errorzd2handlerz12z12zz__errorz00(obj_t, obj_t);
BGL_IMPORT obj_t string_append_3(obj_t, obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzwrite_astz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_speekz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_errorz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_passz00(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 *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzinit_mainz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzwrite_schemez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_pptypez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_argsz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__osz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__bexitz00(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__ppz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5z00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_control_features_6_9z00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(long, char *);
static obj_t BGl_handlerz00zzwrite_astz00(obj_t, obj_t, obj_t, obj_t, obj_t);
BGL_IMPORT obj_t close_output_port(obj_t);
static obj_t BGl_atomzd2ze3stringz31zzwrite_astz00(obj_t);
BGL_IMPORT obj_t string_append(obj_t, obj_t);
extern obj_t BGl_shapez00zztools_shapez00(obj_t);
BGL_IMPORT obj_t BGl_unwindzd2untilz12zc0zz__bexitz00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_integerzd2ze3stringz31zz__r4_numbers_6_5_fixnumz00(long, obj_t);
extern obj_t BGl_za2destza2z00zzengine_paramz00;
extern obj_t BGl_functionzd2typezd2ze3stringze3zztype_pptypez00(BgL_variablez00_bglt);
BGL_IMPORT obj_t BGl_removezd2errorzd2handlerz12z12zz__errorz00();
BGL_IMPORT obj_t open_output_file(obj_t);
extern obj_t BGl_writezd2schemezd2commentz00zzwrite_schemez00(obj_t, obj_t);
static obj_t BGl_requirezd2initializa7ationz75zzwrite_astz00 = BUNSPEC;
BGL_IMPORT obj_t BGl_za2ppzd2caseza2zd2zz__ppz00;
BGL_IMPORT obj_t BGl_prefixz00zz__osz00(obj_t);
BGL_IMPORT bool_t BGl_eqvzf3zf3zz__r4_equivalence_6_2z00(obj_t, obj_t);
static obj_t BGl_libraryzd2moduleszd2initz00zzwrite_astz00();
extern obj_t BGl_exitzd2bigloozd2zzinit_mainz00(obj_t);
static obj_t __cnst[ 8 ] ;


DEFINE_STRING( BGl_string3389z00zzwrite_astz00, BgL_bgl_string3389za700za7za7write_astza7003424z00, "define define-method smfun define-inline sifun define-generic sgfun lower ", 74 );
DEFINE_STRING( BGl_string3388z00zzwrite_astz00, BgL_bgl_string3388za700za7za7write_astza7003425z00, "#unspecified", 12 );
DEFINE_STRING( BGl_string3387z00zzwrite_astz00, BgL_bgl_string3387za700za7za7write_astza7003426z00, "#f", 2 );
DEFINE_STRING( BGl_string3386z00zzwrite_astz00, BgL_bgl_string3386za700za7za7write_astza7003427z00, "#t", 2 );
DEFINE_STRING( BGl_string3385z00zzwrite_astz00, BgL_bgl_string3385za700za7za7write_astza7003428z00, "[", 1 );
DEFINE_STRING( BGl_string3384z00zzwrite_astz00, BgL_bgl_string3384za700za7za7write_astza7003429z00, "  side-effect: ", 15 );
DEFINE_STRING( BGl_string3383z00zzwrite_astz00, BgL_bgl_string3383za700za7za7write_astza7003430z00, "  occ: ", 7 );
DEFINE_STRING( BGl_string3382z00zzwrite_astz00, BgL_bgl_string3382za700za7za7write_astza7003431z00, "  rm: ", 6 );
DEFINE_STRING( BGl_string3381z00zzwrite_astz00, BgL_bgl_string3381za700za7za7write_astza7003432z00, "  loc: ", 7 );
DEFINE_STRING( BGl_string3380z00zzwrite_astz00, BgL_bgl_string3380za700za7za7write_astza7003433z00, "]", 1 );
DEFINE_STRING( BGl_string3379z00zzwrite_astz00, BgL_bgl_string3379za700za7za7write_astza7003434z00, "", 0 );
DEFINE_STRING( BGl_string3378z00zzwrite_astz00, BgL_bgl_string3378za700za7za7write_astza7003435z00, "  predicate-of: ", 16 );
DEFINE_STRING( BGl_string3377z00zzwrite_astz00, BgL_bgl_string3377za700za7za7write_astza7003436z00, ")", 1 );
DEFINE_STRING( BGl_string3376z00zzwrite_astz00, BgL_bgl_string3376za700za7za7write_astza7003437z00, "The AST (", 9 );
DEFINE_STRING( BGl_string3375z00zzwrite_astz00, BgL_bgl_string3375za700za7za7write_astza7003438z00, "Can't open output file", 22 );
DEFINE_STRING( BGl_string3374z00zzwrite_astz00, BgL_bgl_string3374za700za7za7write_astza7003439z00, "write-ast", 9 );
DEFINE_STRING( BGl_string3373z00zzwrite_astz00, BgL_bgl_string3373za700za7za7write_astza7003440z00, ".ast", 4 );
DEFINE_EXPORT_PROCEDURE( BGl_writezd2astzd2envz00zzwrite_astz00, BgL_bgl__writeza7d2astza7d2za7za7write_astza7003441za7, BGl__writezd2astzd2zzwrite_astz00, 0L, 1 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzwrite_astz00(long BgL_checksumz00_1270, char * BgL_fromz00_1271)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzwrite_astz00))
{ 
BGl_requirezd2initializa7ationz75zzwrite_astz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzwrite_astz00(); 
BGl_cnstzd2initzd2zzwrite_astz00(); 
BGl_importedzd2moduleszd2initz00zzwrite_astz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzwrite_astz00()
{ AN_OBJECT;
{ /* ./Write/ast.scm 15 */
BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(((long)0), "write_ast"); 
BGl_modulezd2initializa7ationz75zz__r4_control_features_6_9z00(((long)0), "write_ast"); 
BGl_modulezd2initializa7ationz75zz__ppz00(((long)0), "write_ast"); 
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "write_ast"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "write_ast"); 
BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5z00(((long)0), "write_ast"); 
BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(((long)0), "write_ast"); 
BGl_modulezd2initializa7ationz75zz__errorz00(((long)0), "write_ast"); 
BGl_modulezd2initializa7ationz75zz__bexitz00(((long)0), "write_ast"); 
BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(((long)0), "write_ast"); 
BGl_modulezd2initializa7ationz75zz__osz00(((long)0), "write_ast"); 
BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(((long)0), "write_ast"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzwrite_astz00()
{ AN_OBJECT;
{ /* ./Write/ast.scm 15 */
{ /* ./Write/ast.scm 15 */
obj_t BgL_cportz00_1263;
BgL_cportz00_1263 = 
open_input_string(BGl_string3389z00zzwrite_astz00); 
{ 
long BgL_iz00_1264;
BgL_iz00_1264 = ((long)7); 
BgL_loopz00_1265:
{ /* ./Write/ast.scm 15 */
bool_t BgL_test3391z00_1266;
BgL_test3391z00_1266 = 
(BgL_iz00_1264==((long)-1)); 
if(BgL_test3391z00_1266)
{ /* ./Write/ast.scm 15 */
return BUNSPEC;}  else 
{ /* ./Write/ast.scm 15 */
{ /* ./Write/ast.scm 15 */
obj_t BgL_arg3393z00_1267;
{ /* ./Write/ast.scm 15 */
obj_t BgL_list3396z00_1268;
BgL_list3396z00_1268 = 
MAKE_PAIR(BgL_cportz00_1263, BNIL); 
BgL_arg3393z00_1267 = 
BGl_readz00zz__readerz00(BgL_list3396z00_1268); } 
{ /* ./Write/ast.scm 15 */
int BgL_auxz00_1295;
BgL_auxz00_1295 = 
(int)(BgL_iz00_1264); 
CNST_TABLE_SET(BgL_auxz00_1295, BgL_arg3393z00_1267); } } 
{ /* ./Write/ast.scm 15 */
int BgL_auxz00_1269;
{ /* ./Write/ast.scm 15 */
long BgL_auxz00_1298;
BgL_auxz00_1298 = 
(BgL_iz00_1264-((long)1)); 
BgL_auxz00_1269 = 
(int)(BgL_auxz00_1298); } 
{ 
long BgL_iz00_1301;
BgL_iz00_1301 = 
(long)(BgL_auxz00_1269); 
BgL_iz00_1264 = BgL_iz00_1301; 
goto BgL_loopz00_1265;} } } } } } } 
}



/* write-ast */
BGL_EXPORTED_DEF obj_t BGl_writezd2astzd2zzwrite_astz00(obj_t BgL_globalsz00_1)
{ AN_OBJECT;
{ /* ./Write/ast.scm 29 */
{ /* ./Write/ast.scm 32 */
obj_t BgL_outputzd2namezd2_660;
{ /* ./Write/ast.scm 32 */
bool_t BgL_test2809z00_741;
{ /* ./Write/ast.scm 32 */
obj_t BgL_objz00_1163;
BgL_objz00_1163 = BGl_za2destza2z00zzengine_paramz00; 
BgL_test2809z00_741 = 
STRINGP(BgL_objz00_1163); } 
if(BgL_test2809z00_741)
{ /* ./Write/ast.scm 32 */
BgL_outputzd2namezd2_660 = BGl_za2destza2z00zzengine_paramz00; }  else 
{ /* ./Write/ast.scm 34 */
bool_t BgL_test2810z00_742;
{ /* ./Write/ast.scm 34 */
bool_t BgL_test2819z00_746;
{ /* ./Write/ast.scm 34 */
obj_t BgL_objz00_1164;
BgL_objz00_1164 = BGl_za2srczd2filesza2zd2zzengine_paramz00; 
BgL_test2819z00_746 = 
PAIRP(BgL_objz00_1164); } 
if(BgL_test2819z00_746)
{ /* ./Write/ast.scm 35 */
obj_t BgL_arg2821z00_747;
{ /* ./Write/ast.scm 35 */
obj_t BgL_pairz00_1165;
BgL_pairz00_1165 = BGl_za2srczd2filesza2zd2zzengine_paramz00; 
BgL_arg2821z00_747 = 
CAR(BgL_pairz00_1165); } 
BgL_test2810z00_742 = 
STRINGP(BgL_arg2821z00_747); }  else 
{ /* ./Write/ast.scm 34 */
BgL_test2810z00_742 = ((bool_t)0); } } 
if(BgL_test2810z00_742)
{ /* ./Write/ast.scm 36 */
obj_t BgL_arg2812z00_743;
{ /* ./Write/ast.scm 36 */
obj_t BgL_arg2816z00_745;
{ /* ./Write/ast.scm 36 */
obj_t BgL_pairz00_1167;
BgL_pairz00_1167 = BGl_za2srczd2filesza2zd2zzengine_paramz00; 
BgL_arg2816z00_745 = 
CAR(BgL_pairz00_1167); } 
BgL_arg2812z00_743 = 
BGl_prefixz00zz__osz00(BgL_arg2816z00_745); } 
BgL_outputzd2namezd2_660 = 
string_append(BgL_arg2812z00_743, BGl_string3373z00zzwrite_astz00); }  else 
{ /* ./Write/ast.scm 34 */
BgL_outputzd2namezd2_660 = BFALSE; } } } 
{ /* ./Write/ast.scm 32 */
obj_t BgL_portz00_661;
{ /* ./Write/ast.scm 39 */
bool_t BgL_test2805z00_740;
BgL_test2805z00_740 = 
STRINGP(BgL_outputzd2namezd2_660); 
if(BgL_test2805z00_740)
{ /* ./Write/ast.scm 39 */
BgL_portz00_661 = 
open_output_file(BgL_outputzd2namezd2_660); }  else 
{ /* ./Write/ast.scm 39 */
BgL_portz00_661 = 
BGL_CURRENT_OUTPUT_PORT(); } } 
{ /* ./Write/ast.scm 39 */

{ /* ./Write/ast.scm 42 */
bool_t BgL_test2680z00_662;
BgL_test2680z00_662 = 
OUTPUT_PORTP(BgL_portz00_661); 
if(BgL_test2680z00_662)
{ /* ./Write/ast.scm 45 */
obj_t BgL_handlerz00_1225;
{ 
int BgL_auxz00_1321;int BgL_auxz00_1319;
BgL_auxz00_1321 = 
(int)(((long)1)); 
BgL_auxz00_1319 = 
(int)(((long)4)); 
BgL_handlerz00_1225 = 
make_fx_procedure(BGl_handlerz00zzwrite_astz00, BgL_auxz00_1319, BgL_auxz00_1321); } 
{ /* ./Write/ast.scm 45 */
int BgL_auxz00_1324;
BgL_auxz00_1324 = 
(int)(((long)0)); 
PROCEDURE_SET(BgL_handlerz00_1225, BgL_auxz00_1324, BgL_portz00_661); } 
{ /* ./Write/ast.scm 48 */
obj_t BgL_armed2665z00_664;obj_t BgL_handler2662z00_665;
BgL_armed2665z00_664 = 
MAKE_CELL(BUNSPEC); 
BgL_handler2662z00_665 = 
MAKE_CELL(BUNSPEC); 
{ /* ./Write/ast.scm 48 */
obj_t BgL_zc3anonymousza32698ze3z83_1221;obj_t BgL_zc3anonymousza32695ze3z83_1223;
{ 
int BgL_auxz00_1329;int BgL_auxz00_1327;
BgL_auxz00_1329 = 
(int)(((long)2)); 
BgL_auxz00_1327 = 
(int)(((long)0)); 
BgL_zc3anonymousza32698ze3z83_1221 = 
make_fx_procedure(BGl_zc3anonymousza32698ze3z83zzwrite_astz00, BgL_auxz00_1327, BgL_auxz00_1329); } 
{ 
int BgL_auxz00_1334;int BgL_auxz00_1332;
BgL_auxz00_1334 = 
(int)(((long)2)); 
BgL_auxz00_1332 = 
(int)(((long)4)); 
BgL_zc3anonymousza32695ze3z83_1223 = 
make_fx_procedure(BGl_zc3anonymousza32695ze3z83zzwrite_astz00, BgL_auxz00_1332, BgL_auxz00_1334); } 
{ /* ./Write/ast.scm 48 */
int BgL_auxz00_1337;
BgL_auxz00_1337 = 
(int)(((long)0)); 
PROCEDURE_SET(BgL_zc3anonymousza32698ze3z83_1221, BgL_auxz00_1337, BgL_portz00_661); } 
{ /* ./Write/ast.scm 48 */
int BgL_auxz00_1340;
BgL_auxz00_1340 = 
(int)(((long)1)); 
PROCEDURE_SET(BgL_zc3anonymousza32698ze3z83_1221, BgL_auxz00_1340, BgL_globalsz00_1); } 
{ /* ./Write/ast.scm 48 */
int BgL_auxz00_1343;
BgL_auxz00_1343 = 
(int)(((long)0)); 
PROCEDURE_SET(BgL_zc3anonymousza32695ze3z83_1223, BgL_auxz00_1343, BgL_armed2665z00_664); } 
{ /* ./Write/ast.scm 48 */
int BgL_auxz00_1346;
BgL_auxz00_1346 = 
(int)(((long)1)); 
PROCEDURE_SET(BgL_zc3anonymousza32695ze3z83_1223, BgL_auxz00_1346, BgL_handler2662z00_665); } 
CELL_SET(BgL_handler2662z00_665, BgL_handlerz00_1225); 
CELL_SET(BgL_armed2665z00_664, BTRUE); 
return 
BGl_zc3exitza32681ze3z83zzwrite_astz00(BgL_zc3anonymousza32698ze3z83_1221, BgL_zc3anonymousza32695ze3z83_1223, BgL_handler2662z00_665, BgL_armed2665z00_664);} } }  else 
{ /* ./Write/ast.scm 42 */
FAILURE(BGl_string3374z00zzwrite_astz00,BGl_string3375z00zzwrite_astz00,BgL_outputzd2namezd2_660);} } } } } } 
}



/* <exit:2681> */
obj_t BGl_zc3exitza32681ze3z83zzwrite_astz00(obj_t BgL_zc3anonymousza32698ze3z83_1262, obj_t BgL_zc3anonymousza32695ze3z83_1261, obj_t BgL_handler2662z00_1260, obj_t BgL_armed2665z00_1259)
{ AN_OBJECT;
{ /* ./Write/ast.scm 48 */
jmp_buf jmpbuf; 
obj_t BgL_an_exit2673z00_669;
if( SET_EXIT(BgL_an_exit2673z00_669) ) { 
return 
_exit_value_;
} else {
BgL_an_exit2673z00_669 = 
(obj_t)jmpbuf; 
{ /* ./Write/ast.scm 48 */

PUSH_EXIT(BgL_an_exit2673z00_669, ((bool_t)1)); 
{ /* ./Write/ast.scm 48 */
obj_t BgL_an_exitd2674z00_670;
BgL_an_exitd2674z00_670 = 
BGL_EXITD_TOP(); 
{ /* ./Write/ast.scm 48 */
obj_t BgL_escapez00_1222;
{ 
int BgL_auxz00_1357;int BgL_auxz00_1355;
BgL_auxz00_1357 = 
(int)(((long)1)); 
BgL_auxz00_1355 = 
(int)(((long)1)); 
BgL_escapez00_1222 = 
make_fx_procedure(BGl_escapez00zzwrite_astz00, BgL_auxz00_1355, BgL_auxz00_1357); } 
{ /* ./Write/ast.scm 48 */
int BgL_auxz00_1360;
BgL_auxz00_1360 = 
(int)(((long)0)); 
PROCEDURE_SET(BgL_escapez00_1222, BgL_auxz00_1360, BgL_an_exitd2674z00_670); } 
{ /* ./Write/ast.scm 48 */
obj_t BgL_res2676z00_673;
{ /* ./Write/ast.scm 48 */
obj_t BgL_zc3anonymousza32691ze3z83_1220;obj_t BgL_zc3anonymousza32689ze3z83_1224;
{ 
int BgL_auxz00_1365;int BgL_auxz00_1363;
BgL_auxz00_1365 = 
(int)(((long)1)); 
BgL_auxz00_1363 = 
(int)(((long)0)); 
BgL_zc3anonymousza32691ze3z83_1220 = 
make_fx_procedure(BGl_zc3anonymousza32691ze3z83zzwrite_astz00, BgL_auxz00_1363, BgL_auxz00_1365); } 
{ 
int BgL_auxz00_1370;int BgL_auxz00_1368;
BgL_auxz00_1370 = 
(int)(((long)5)); 
BgL_auxz00_1368 = 
(int)(((long)0)); 
BgL_zc3anonymousza32689ze3z83_1224 = 
make_fx_procedure(BGl_zc3anonymousza32689ze3z83zzwrite_astz00, BgL_auxz00_1368, BgL_auxz00_1370); } 
{ /* ./Write/ast.scm 48 */
int BgL_auxz00_1373;
BgL_auxz00_1373 = 
(int)(((long)0)); 
PROCEDURE_SET(BgL_zc3anonymousza32691ze3z83_1220, BgL_auxz00_1373, BgL_armed2665z00_1259); } 
{ /* ./Write/ast.scm 48 */
int BgL_auxz00_1376;
BgL_auxz00_1376 = 
(int)(((long)0)); 
PROCEDURE_SET(BgL_zc3anonymousza32689ze3z83_1224, BgL_auxz00_1376, BgL_an_exitd2674z00_670); } 
{ /* ./Write/ast.scm 48 */
int BgL_auxz00_1379;
BgL_auxz00_1379 = 
(int)(((long)1)); 
PROCEDURE_SET(BgL_zc3anonymousza32689ze3z83_1224, BgL_auxz00_1379, BgL_armed2665z00_1259); } 
{ /* ./Write/ast.scm 48 */
int BgL_auxz00_1382;
BgL_auxz00_1382 = 
(int)(((long)2)); 
PROCEDURE_SET(BgL_zc3anonymousza32689ze3z83_1224, BgL_auxz00_1382, BgL_handler2662z00_1260); } 
{ /* ./Write/ast.scm 48 */
int BgL_auxz00_1385;
BgL_auxz00_1385 = 
(int)(((long)3)); 
PROCEDURE_SET(BgL_zc3anonymousza32689ze3z83_1224, BgL_auxz00_1385, BgL_zc3anonymousza32695ze3z83_1261); } 
{ /* ./Write/ast.scm 48 */
int BgL_auxz00_1388;
BgL_auxz00_1388 = 
(int)(((long)4)); 
PROCEDURE_SET(BgL_zc3anonymousza32689ze3z83_1224, BgL_auxz00_1388, BgL_escapez00_1222); } 
BgL_res2676z00_673 = 
BGl_dynamiczd2windzd2zz__r4_control_features_6_9z00(BgL_zc3anonymousza32689ze3z83_1224, BgL_zc3anonymousza32698ze3z83_1262, BgL_zc3anonymousza32691ze3z83_1220); } 
POP_EXIT(); 
return BgL_res2676z00_673;} } } } 
} } 
}



/* _write-ast */
obj_t BGl__writezd2astzd2zzwrite_astz00(obj_t BgL_envz00_1226, obj_t BgL_globalsz00_1227)
{ AN_OBJECT;
{ /* ./Write/ast.scm 29 */
return 
BGl_writezd2astzd2zzwrite_astz00(BgL_globalsz00_1227);} 
}



/* <anonymous:2691> */
obj_t BGl_zc3anonymousza32691ze3z83zzwrite_astz00(obj_t BgL_envz00_1228)
{ AN_OBJECT;
{ /* ./Write/ast.scm 48 */
{ /* ./Write/ast.scm 48 */
obj_t BgL_armed2665z00_1229;
{ /* ./Write/ast.scm 48 */
int BgL_auxz00_1394;
BgL_auxz00_1394 = 
(int)(((long)0)); 
BgL_armed2665z00_1229 = 
PROCEDURE_REF(BgL_envz00_1228, BgL_auxz00_1394); } 
{ 

{ /* ./Write/ast.scm 48 */
bool_t BgL_testz00_1397;
{ /* ./Write/ast.scm 48 */
obj_t BgL_auxz00_1398;
BgL_auxz00_1398 = 
CELL_REF(BgL_armed2665z00_1229); 
BgL_testz00_1397 = 
CBOOL(BgL_auxz00_1398); } 
if(BgL_testz00_1397)
{ /* ./Write/ast.scm 48 */
CELL_SET(BgL_armed2665z00_1229, BFALSE); 
return 
BGl_removezd2errorzd2handlerz12z12zz__errorz00();}  else 
{ /* ./Write/ast.scm 48 */
return BFALSE;} } } } } 
}



/* <anonymous:2698> */
obj_t BGl_zc3anonymousza32698ze3z83zzwrite_astz00(obj_t BgL_envz00_1231)
{ AN_OBJECT;
{ /* ./Write/ast.scm 48 */
{ /* ./Write/ast.scm 49 */
obj_t BgL_portz00_1232;obj_t BgL_globalsz00_1233;
{ /* ./Write/ast.scm 49 */
int BgL_auxz00_1401;
BgL_auxz00_1401 = 
(int)(((long)0)); 
BgL_portz00_1232 = 
PROCEDURE_REF(BgL_envz00_1231, BgL_auxz00_1401); } 
{ /* ./Write/ast.scm 49 */
int BgL_auxz00_1404;
BgL_auxz00_1404 = 
(int)(((long)1)); 
BgL_globalsz00_1233 = 
PROCEDURE_REF(BgL_envz00_1231, BgL_auxz00_1404); } 
{ 

if(
CBOOL(BGl_za2astzd2casezd2sensitiveza2z00zzengine_paramz00))
{ /* ./Write/ast.scm 49 */BFALSE; }  else 
{ /* ./Write/ast.scm 49 */
BGl_za2ppzd2caseza2zd2zz__ppz00 = 
CNST_TABLE_REF(((long)0)); } 
{ /* ./Write/ast.scm 52 */
obj_t BgL_arg2700z00_686;
BgL_arg2700z00_686 = 
string_append_3(BGl_string3376z00zzwrite_astz00, BGl_za2currentzd2passza2zd2zzengine_passz00, BGl_string3377z00zzwrite_astz00); 
BGl_writezd2schemezd2filezd2headerzd2zzwrite_schemez00(BgL_portz00_1232, BgL_arg2700z00_686); } 
{ 
obj_t BgL_l2666z00_687;
BgL_l2666z00_687 = BgL_globalsz00_1233; 
BgL_forzd2each2667zd2_688:
{ /* ./Write/ast.scm 55 */
bool_t BgL_test2704z00_689;
BgL_test2704z00_689 = 
PAIRP(BgL_l2666z00_687); 
if(BgL_test2704z00_689)
{ /* ./Write/ast.scm 55 */
{ /* ./Write/ast.scm 57 */
obj_t BgL_gz00_690;
BgL_gz00_690 = 
CAR(BgL_l2666z00_687); 
{ /* ./Write/ast.scm 57 */
BgL_valuez00_bglt BgL_funz00_691;
{ /* ./Write/ast.scm 57 */
BgL_variablez00_bglt BgL_obj1100z00_1173;
BgL_obj1100z00_1173 = 
(BgL_variablez00_bglt)(BgL_gz00_690); 
BgL_funz00_691 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1173))->BgL_valuez00); } 
{ /* ./Write/ast.scm 58 */
obj_t BgL_arg2706z00_692;
BgL_arg2706z00_692 = 
BGl_shapez00zztools_shapez00(BgL_gz00_690); 
{ /* ./Write/ast.scm 58 */
obj_t BgL_list2708z00_693;
BgL_list2708z00_693 = 
MAKE_PAIR(BgL_arg2706z00_692, BNIL); 
BGl_writezd2schemezd2commentz00zzwrite_schemez00(BgL_portz00_1232, BgL_list2708z00_693); } } 
{ /* ./Write/ast.scm 60 */
obj_t BgL_arg2712z00_694;
BgL_arg2712z00_694 = 
BGl_functionzd2typezd2ze3stringze3zztype_pptypez00(
(BgL_variablez00_bglt)(BgL_gz00_690)); 
{ /* ./Write/ast.scm 59 */
obj_t BgL_list2714z00_695;
BgL_list2714z00_695 = 
MAKE_PAIR(BgL_arg2712z00_694, BNIL); 
BGl_writezd2schemezd2commentz00zzwrite_schemez00(BgL_portz00_1232, BgL_list2714z00_695); } } 
{ /* ./Write/ast.scm 61 */
obj_t BgL_arg2718z00_696;
BgL_arg2718z00_696 = 
BGl_makezd2sfunzd2sinfoz00zzwrite_astz00(
(BgL_globalz00_bglt)(BgL_gz00_690)); 
{ /* ./Write/ast.scm 61 */
obj_t BgL_list2720z00_697;
BgL_list2720z00_697 = 
MAKE_PAIR(BgL_arg2718z00_696, BNIL); 
BGl_writezd2schemezd2commentz00zzwrite_schemez00(BgL_portz00_1232, BgL_list2720z00_697); } } 
{ /* ./Write/ast.scm 62 */
obj_t BgL_arg2724z00_698;
{ /* ./Write/ast.scm 62 */
obj_t BgL_arg2729z00_700;obj_t BgL_arg2730z00_701;
{ /* ./Write/ast.scm 62 */
obj_t BgL_casezd2valuezd2_702;
{ /* ./Write/ast.scm 62 */
BgL_sfunz00_bglt BgL_obj1374z00_1174;
BgL_obj1374z00_1174 = 
(BgL_sfunz00_bglt)(BgL_funz00_691); 
BgL_casezd2valuezd2_702 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1374z00_1174))->BgL_classz00); } 
if(
BGl_eqvzf3zf3zz__r4_equivalence_6_2z00(BgL_casezd2valuezd2_702, 
CNST_TABLE_REF(((long)1))))
{ /* ./Write/ast.scm 62 */
BgL_arg2729z00_700 = 
CNST_TABLE_REF(((long)2)); }  else 
{ /* ./Write/ast.scm 62 */
if(
BGl_eqvzf3zf3zz__r4_equivalence_6_2z00(BgL_casezd2valuezd2_702, 
CNST_TABLE_REF(((long)3))))
{ /* ./Write/ast.scm 62 */
BgL_arg2729z00_700 = 
CNST_TABLE_REF(((long)4)); }  else 
{ /* ./Write/ast.scm 62 */
if(
BGl_eqvzf3zf3zz__r4_equivalence_6_2z00(BgL_casezd2valuezd2_702, 
CNST_TABLE_REF(((long)5))))
{ /* ./Write/ast.scm 62 */
BgL_arg2729z00_700 = 
CNST_TABLE_REF(((long)6)); }  else 
{ /* ./Write/ast.scm 62 */
BgL_arg2729z00_700 = 
CNST_TABLE_REF(((long)7)); } } } } 
{ /* ./Write/ast.scm 71 */
obj_t BgL_arg2740z00_706;obj_t BgL_arg2741z00_707;
{ /* ./Write/ast.scm 71 */
obj_t BgL_arg2744z00_708;obj_t BgL_arg2745z00_709;
BgL_arg2744z00_708 = 
BGl_shapez00zztools_shapez00(BgL_gz00_690); 
{ /* ./Write/ast.scm 73 */
obj_t BgL_arg2749z00_710;long BgL_arg2750z00_711;
{ /* ./Write/ast.scm 73 */
obj_t BgL_l2668z00_712;
{ /* ./Write/ast.scm 73 */
BgL_sfunz00_bglt BgL_obj1367z00_1175;
BgL_obj1367z00_1175 = 
(BgL_sfunz00_bglt)(BgL_funz00_691); 
BgL_l2668z00_712 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1367z00_1175))->BgL_argsz00); } 
{ /* ./Write/ast.scm 73 */
bool_t BgL_test2752z00_713;
BgL_test2752z00_713 = 
NULLP(BgL_l2668z00_712); 
if(BgL_test2752z00_713)
{ /* ./Write/ast.scm 73 */
BgL_arg2749z00_710 = BNIL; }  else 
{ /* ./Write/ast.scm 73 */
obj_t BgL_head2670z00_714;
{ /* ./Write/ast.scm 73 */
obj_t BgL_arg2773z00_725;
{ /* ./Write/ast.scm 73 */
obj_t BgL_arg2777z00_727;
BgL_arg2777z00_727 = 
CAR(BgL_l2668z00_712); 
BgL_arg2773z00_725 = 
BGl_shapez00zztools_shapez00(BgL_arg2777z00_727); } 
BgL_head2670z00_714 = 
MAKE_PAIR(BgL_arg2773z00_725, BNIL); } 
{ 
obj_t BgL_l2668z00_715;obj_t BgL_tail2671z00_716;
{ /* ./Write/ast.scm 73 */
obj_t BgL_arg2754z00_718;
BgL_arg2754z00_718 = 
CDR(BgL_l2668z00_712); 
BgL_l2668z00_715 = BgL_arg2754z00_718; 
BgL_tail2671z00_716 = BgL_head2670z00_714; 
BgL_map2669z00_717:
{ /* ./Write/ast.scm 73 */
bool_t BgL_test2757z00_719;
BgL_test2757z00_719 = 
NULLP(BgL_l2668z00_715); 
if(BgL_test2757z00_719)
{ /* ./Write/ast.scm 73 */
BgL_arg2749z00_710 = BgL_head2670z00_714; }  else 
{ /* ./Write/ast.scm 73 */
obj_t BgL_newtail2672z00_720;
{ /* ./Write/ast.scm 73 */
obj_t BgL_arg2764z00_722;
{ /* ./Write/ast.scm 73 */
obj_t BgL_arg2768z00_724;
BgL_arg2768z00_724 = 
CAR(BgL_l2668z00_715); 
BgL_arg2764z00_722 = 
BGl_shapez00zztools_shapez00(BgL_arg2768z00_724); } 
BgL_newtail2672z00_720 = 
MAKE_PAIR(BgL_arg2764z00_722, BNIL); } 
SET_CDR(BgL_tail2671z00_716, BgL_newtail2672z00_720); 
{ /* ./Write/ast.scm 73 */
obj_t BgL_arg2760z00_721;
BgL_arg2760z00_721 = 
CDR(BgL_l2668z00_715); 
{ 
obj_t BgL_tail2671z00_1460;obj_t BgL_l2668z00_1459;
BgL_l2668z00_1459 = BgL_arg2760z00_721; 
BgL_tail2671z00_1460 = BgL_newtail2672z00_720; 
BgL_tail2671z00_716 = BgL_tail2671z00_1460; 
BgL_l2668z00_715 = BgL_l2668z00_1459; 
goto BgL_map2669z00_717;} } } } } } } } } 
{ /* ./Write/ast.scm 74 */
BgL_funz00_bglt BgL_obj1301z00_1188;
BgL_obj1301z00_1188 = 
(BgL_funz00_bglt)(BgL_funz00_691); 
BgL_arg2750z00_711 = 
(((BgL_funz00_bglt)CREF(BgL_obj1301z00_1188))->BgL_arityz00); } 
BgL_arg2745z00_709 = 
BGl_argszd2listzd2ze3argsza2z41zztools_argsz00(BgL_arg2749z00_710, 
BINT(BgL_arg2750z00_711)); } 
BgL_arg2740z00_706 = 
MAKE_PAIR(BgL_arg2744z00_708, BgL_arg2745z00_709); } 
{ /* ./Write/ast.scm 75 */
obj_t BgL_arg2784z00_728;
{ /* ./Write/ast.scm 75 */
obj_t BgL_arg2788z00_730;
{ /* ./Write/ast.scm 75 */
BgL_sfunz00_bglt BgL_obj1370z00_1189;
BgL_obj1370z00_1189 = 
(BgL_sfunz00_bglt)(BgL_funz00_691); 
BgL_arg2788z00_730 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1370z00_1189))->BgL_bodyz00); } 
BgL_arg2784z00_728 = 
BGl_shapez00zztools_shapez00(BgL_arg2788z00_730); } 
BgL_arg2741z00_707 = 
MAKE_PAIR(BgL_arg2784z00_728, BNIL); } 
BgL_arg2730z00_701 = 
MAKE_PAIR(BgL_arg2740z00_706, BgL_arg2741z00_707); } 
BgL_arg2724z00_698 = 
MAKE_PAIR(BgL_arg2729z00_700, BgL_arg2730z00_701); } 
{ /* ./Write/ast.scm 62 */
obj_t BgL_list2726z00_699;
BgL_list2726z00_699 = 
MAKE_PAIR(BgL_portz00_1232, BNIL); 
BGl_ppz00zz__ppz00(BgL_arg2724z00_698, BgL_list2726z00_699); } } } } 
{ /* ./Write/ast.scm 55 */
obj_t BgL_arg2794z00_731;
BgL_arg2794z00_731 = 
CDR(BgL_l2666z00_687); 
{ 
obj_t BgL_l2666z00_1475;
BgL_l2666z00_1475 = BgL_arg2794z00_731; 
BgL_l2666z00_687 = BgL_l2666z00_1475; 
goto BgL_forzd2each2667zd2_688;} } }  else 
{ /* ./Write/ast.scm 55 */((bool_t)1); } } } 
return 
close_output_port(BgL_portz00_1232);} } } 
}



/* <anonymous:2689> */
obj_t BGl_zc3anonymousza32689ze3z83zzwrite_astz00(obj_t BgL_envz00_1234)
{ AN_OBJECT;
{ /* ./Write/ast.scm 48 */
{ /* ./Write/ast.scm 48 */
obj_t BgL_zc3anonymousza32695ze3z83_1238;obj_t BgL_escapez00_1239;
{ /* ./Write/ast.scm 48 */
int BgL_auxz00_1477;
BgL_auxz00_1477 = 
(int)(((long)3)); 
BgL_zc3anonymousza32695ze3z83_1238 = 
PROCEDURE_REF(BgL_envz00_1234, BgL_auxz00_1477); } 
{ /* ./Write/ast.scm 48 */
int BgL_auxz00_1480;
BgL_auxz00_1480 = 
(int)(((long)4)); 
BgL_escapez00_1239 = 
PROCEDURE_REF(BgL_envz00_1234, BgL_auxz00_1480); } 
{ 

return 
BGl_addzd2errorzd2handlerz12z12zz__errorz00(BgL_zc3anonymousza32695ze3z83_1238, BgL_escapez00_1239);} } } 
}



/* escape */
obj_t BGl_escapez00zzwrite_astz00(obj_t BgL_envz00_1240, obj_t BgL_val2675z00_1242)
{ AN_OBJECT;
{ /* ./Write/ast.scm 48 */
{ /* ./Write/ast.scm 48 */
obj_t BgL_an_exitd2674z00_1241;
{ /* ./Write/ast.scm 48 */
int BgL_auxz00_1484;
BgL_auxz00_1484 = 
(int)(((long)0)); 
BgL_an_exitd2674z00_1241 = 
PROCEDURE_REF(BgL_envz00_1240, BgL_auxz00_1484); } 
{ 
obj_t BgL_val2675z00_671;
BgL_val2675z00_671 = BgL_val2675z00_1242; 
return 
BGl_unwindzd2untilz12zc0zz__bexitz00(BgL_an_exitd2674z00_1241, BgL_val2675z00_671);} } } 
}



/* <anonymous:2695> */
obj_t BGl_zc3anonymousza32695ze3z83zzwrite_astz00(obj_t BgL_envz00_1243, obj_t BgL_escz00_1246, obj_t BgL_objz00_1247, obj_t BgL_procz00_1248, obj_t BgL_msgz00_1249)
{ AN_OBJECT;
{ /* ./Write/ast.scm 48 */
{ /* ./Write/ast.scm 48 */
obj_t BgL_armed2665z00_1244;obj_t BgL_handler2662z00_1245;
{ /* ./Write/ast.scm 48 */
int BgL_auxz00_1488;
BgL_auxz00_1488 = 
(int)(((long)0)); 
BgL_armed2665z00_1244 = 
PROCEDURE_REF(BgL_envz00_1243, BgL_auxz00_1488); } 
{ /* ./Write/ast.scm 48 */
int BgL_auxz00_1491;
BgL_auxz00_1491 = 
(int)(((long)1)); 
BgL_handler2662z00_1245 = 
PROCEDURE_REF(BgL_envz00_1243, BgL_auxz00_1491); } 
{ 
obj_t BgL_escz00_680;obj_t BgL_objz00_681;obj_t BgL_procz00_682;obj_t BgL_msgz00_683;
BgL_escz00_680 = BgL_escz00_1246; 
BgL_objz00_681 = BgL_objz00_1247; 
BgL_procz00_682 = BgL_procz00_1248; 
BgL_msgz00_683 = BgL_msgz00_1249; 
CELL_SET(BgL_armed2665z00_1244, BFALSE); 
BGl_removezd2errorzd2handlerz12z12zz__errorz00(); 
{ /* ./Write/ast.scm 48 */
obj_t BgL_auxz00_1496;
BgL_auxz00_1496 = 
CELL_REF(BgL_handler2662z00_1245); 
return 
PROCEDURE_ENTRY(BgL_auxz00_1496)(
CELL_REF(BgL_handler2662z00_1245), BgL_escz00_680, BgL_objz00_681, BgL_procz00_682, BgL_msgz00_683, BEOA);} } } } 
}



/* handler */
obj_t BGl_handlerz00zzwrite_astz00(obj_t BgL_envz00_1251, obj_t BgL_escapez00_1253, obj_t BgL_procz00_1254, obj_t BgL_mesz00_1255, obj_t BgL_objz00_1256)
{ AN_OBJECT;
{ /* ./Write/ast.scm 44 */
{ /* ./Write/ast.scm 45 */
obj_t BgL_portz00_1252;
{ /* ./Write/ast.scm 45 */
int BgL_auxz00_1497;
BgL_auxz00_1497 = 
(int)(((long)0)); 
BgL_portz00_1252 = 
PROCEDURE_REF(BgL_envz00_1251, BgL_auxz00_1497); } 
{ 
obj_t BgL_escapez00_734;obj_t BgL_procz00_735;obj_t BgL_mesz00_736;obj_t BgL_objz00_737;
BgL_escapez00_734 = BgL_escapez00_1253; 
BgL_procz00_735 = BgL_procz00_1254; 
BgL_mesz00_736 = BgL_mesz00_1255; 
BgL_objz00_737 = BgL_objz00_1256; 
BGl_notifyzd2errorzd2zz__errorz00(BgL_procz00_735, BgL_mesz00_736, BgL_objz00_737); 
close_output_port(BgL_portz00_1252); 
return 
BGl_exitzd2bigloozd2zzinit_mainz00(
BINT(((long)8)));} } } 
}



/* make-sfun-sinfo */
obj_t BGl_makezd2sfunzd2sinfoz00zzwrite_astz00(BgL_globalz00_bglt BgL_gz00_2)
{ AN_OBJECT;
{ /* ./Write/ast.scm 84 */
{ /* ./Write/ast.scm 107 */
BgL_valuez00_bglt BgL_sfunz00_749;
{ /* ./Write/ast.scm 107 */
BgL_variablez00_bglt BgL_obj1100z00_1196;
BgL_obj1100z00_1196 = 
(BgL_variablez00_bglt)(BgL_gz00_2); 
BgL_sfunz00_749 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1100z00_1196))->BgL_valuez00); } 
{ /* ./Write/ast.scm 108 */
obj_t BgL_arg2828z00_751;obj_t BgL_arg2830z00_753;obj_t BgL_arg2831z00_754;obj_t BgL_arg2833z00_756;obj_t BgL_arg2835z00_758;obj_t BgL_arg2837z00_760;char * BgL_arg2838z00_761;
if(
CBOOL(BGl_za2astzd2casezd2sensitiveza2z00zzengine_paramz00))
{ /* ./Write/ast.scm 110 */
obj_t BgL_arg2882z00_776;
BgL_arg2882z00_776 = 
(((BgL_globalz00_bglt)CREF(BgL_gz00_2))->BgL_importz00); 
BgL_arg2828z00_751 = 
SYMBOL_TO_STRING(BgL_arg2882z00_776); }  else 
{ /* ./Write/ast.scm 111 */
obj_t BgL_arg2886z00_777;
{ /* ./Write/ast.scm 111 */
obj_t BgL_arg2889z00_778;
BgL_arg2889z00_778 = 
(((BgL_globalz00_bglt)CREF(BgL_gz00_2))->BgL_importz00); 
BgL_arg2886z00_777 = 
SYMBOL_TO_STRING(BgL_arg2889z00_778); } 
BgL_arg2828z00_751 = 
BGl_stringzd2downcasezd2zz__r4_strings_6_7z00(BgL_arg2886z00_777); } 
{ /* ./Write/ast.scm 112 */
obj_t BgL_arg2893z00_779;
{ /* ./Write/ast.scm 112 */
BgL_funz00_bglt BgL_obj1302z00_1201;
BgL_obj1302z00_1201 = 
(BgL_funz00_bglt)(BgL_sfunz00_749); 
BgL_arg2893z00_779 = 
(((BgL_funz00_bglt)CREF(BgL_obj1302z00_1201))->BgL_sidezd2effectzf3z21); } 
BgL_arg2830z00_753 = 
BGl_atomzd2ze3stringz31zzwrite_astz00(BgL_arg2893z00_779); } 
{ /* ./Write/ast.scm 113 */
obj_t BgL_tz00_780;
{ /* ./Write/ast.scm 113 */
BgL_funz00_bglt BgL_obj1305z00_1202;
BgL_obj1305z00_1202 = 
(BgL_funz00_bglt)(BgL_sfunz00_749); 
BgL_tz00_780 = 
(((BgL_funz00_bglt)CREF(BgL_obj1305z00_1202))->BgL_predicatezd2ofzd2); } 
{ /* ./Write/ast.scm 114 */
bool_t BgL_test2896z00_781;
BgL_test2896z00_781 = 
BGl_iszd2azf3z21zz__objectz00(BgL_tz00_780, BGl_typez00zztype_typez00); 
if(BgL_test2896z00_781)
{ /* ./Write/ast.scm 115 */
obj_t BgL_arg2899z00_783;
{ /* ./Write/ast.scm 116 */
obj_t BgL_arg2902z00_784;
BgL_arg2902z00_784 = 
BGl_shapez00zztools_shapez00(BgL_tz00_780); 
BgL_arg2899z00_783 = 
BGl_atomzd2ze3stringz31zzwrite_astz00(BgL_arg2902z00_784); } 
BgL_arg2831z00_754 = 
string_append(BGl_string3378z00zzwrite_astz00, BgL_arg2899z00_783); }  else 
{ /* ./Write/ast.scm 114 */
BgL_arg2831z00_754 = BGl_string3379z00zzwrite_astz00; } } } 
{ /* ./Write/ast.scm 118 */
long BgL_auxz00_1523;
{ /* ./Write/ast.scm 118 */
BgL_variablez00_bglt BgL_obj1112z00_1204;
BgL_obj1112z00_1204 = 
(BgL_variablez00_bglt)(BgL_gz00_2); 
BgL_auxz00_1523 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1112z00_1204))->BgL_occurrencez00); } 
BgL_arg2833z00_756 = 
BGl_integerzd2ze3stringz31zz__r4_numbers_6_5_fixnumz00(BgL_auxz00_1523, BNIL); } 
{ /* ./Write/ast.scm 119 */
obj_t BgL_arg2913z00_787;
{ /* ./Write/ast.scm 119 */
BgL_variablez00_bglt BgL_obj1109z00_1205;
BgL_obj1109z00_1205 = 
(BgL_variablez00_bglt)(BgL_gz00_2); 
BgL_arg2913z00_787 = 
(((BgL_variablez00_bglt)CREF(BgL_obj1109z00_1205))->BgL_removablez00); } 
BgL_arg2835z00_758 = 
BGl_atomzd2ze3stringz31zzwrite_astz00(BgL_arg2913z00_787); } 
{ /* ./Write/ast.scm 120 */
obj_t BgL_pz00_788;
BgL_pz00_788 = 
open_output_string(); 
{ /* ./Write/ast.scm 121 */
obj_t BgL_arg2917z00_789;
{ /* ./Write/ast.scm 121 */
BgL_sfunz00_bglt BgL_obj1380z00_1206;
BgL_obj1380z00_1206 = 
(BgL_sfunz00_bglt)(BgL_sfunz00_749); 
BgL_arg2917z00_789 = 
(((BgL_sfunz00_bglt)CREF(BgL_obj1380z00_1206))->BgL_locz00); } 
BGl_displayzd22zd2zz__r4_output_6_10_3z00(BgL_arg2917z00_789, BgL_pz00_788); } 
BgL_arg2837z00_760 = 
close_output_port(BgL_pz00_788); } 
if(
(((BgL_globalz00_bglt)CREF(BgL_gz00_2))->BgL_userzf3zf3))
{ /* ./Write/ast.scm 123 */
BgL_arg2838z00_761 = "  user?: #t"; }  else 
{ /* ./Write/ast.scm 123 */
BgL_arg2838z00_761 = "  user?: #f"; } 
{ /* ./Write/ast.scm 108 */
obj_t BgL_list2841z00_763;
{ /* ./Write/ast.scm 108 */
obj_t BgL_arg2843z00_764;
{ /* ./Write/ast.scm 108 */
obj_t BgL_arg2846z00_765;
{ /* ./Write/ast.scm 108 */
obj_t BgL_arg2849z00_766;
{ /* ./Write/ast.scm 108 */
obj_t BgL_arg2852z00_767;
{ /* ./Write/ast.scm 108 */
obj_t BgL_arg2855z00_768;
{ /* ./Write/ast.scm 108 */
obj_t BgL_arg2858z00_769;
{ /* ./Write/ast.scm 108 */
obj_t BgL_arg2861z00_770;
{ /* ./Write/ast.scm 108 */
obj_t BgL_arg2864z00_771;
{ /* ./Write/ast.scm 108 */
obj_t BgL_arg2868z00_772;
{ /* ./Write/ast.scm 108 */
obj_t BgL_arg2871z00_773;
{ /* ./Write/ast.scm 108 */
obj_t BgL_arg2874z00_774;
{ /* ./Write/ast.scm 108 */
obj_t BgL_arg2877z00_775;
BgL_arg2877z00_775 = 
MAKE_PAIR(BGl_string3380z00zzwrite_astz00, BNIL); 
{ /* ./Write/ast.scm 108 */
obj_t BgL_auxz00_1538;
BgL_auxz00_1538 = 
string_to_bstring(BgL_arg2838z00_761); 
BgL_arg2874z00_774 = 
MAKE_PAIR(BgL_auxz00_1538, BgL_arg2877z00_775); } } 
BgL_arg2871z00_773 = 
MAKE_PAIR(BgL_arg2837z00_760, BgL_arg2874z00_774); } 
BgL_arg2868z00_772 = 
MAKE_PAIR(BGl_string3381z00zzwrite_astz00, BgL_arg2871z00_773); } 
BgL_arg2864z00_771 = 
MAKE_PAIR(BgL_arg2835z00_758, BgL_arg2868z00_772); } 
BgL_arg2861z00_770 = 
MAKE_PAIR(BGl_string3382z00zzwrite_astz00, BgL_arg2864z00_771); } 
BgL_arg2858z00_769 = 
MAKE_PAIR(BgL_arg2833z00_756, BgL_arg2861z00_770); } 
BgL_arg2855z00_768 = 
MAKE_PAIR(BGl_string3383z00zzwrite_astz00, BgL_arg2858z00_769); } 
BgL_arg2852z00_767 = 
MAKE_PAIR(BgL_arg2831z00_754, BgL_arg2855z00_768); } 
BgL_arg2849z00_766 = 
MAKE_PAIR(BgL_arg2830z00_753, BgL_arg2852z00_767); } 
BgL_arg2846z00_765 = 
MAKE_PAIR(BGl_string3384z00zzwrite_astz00, BgL_arg2849z00_766); } 
BgL_arg2843z00_764 = 
MAKE_PAIR(BgL_arg2828z00_751, BgL_arg2846z00_765); } 
BgL_list2841z00_763 = 
MAKE_PAIR(BGl_string3385z00zzwrite_astz00, BgL_arg2843z00_764); } 
return 
BGl_stringzd2appendzd2zz__r4_strings_6_7z00(BgL_list2841z00_763);} } } } 
}



/* atom->string */
obj_t BGl_atomzd2ze3stringz31zzwrite_astz00(obj_t BgL_atomz00_791)
{ AN_OBJECT;
{ /* ./Write/ast.scm 106 */
{ 

{ /* ./Write/ast.scm 86 */
long BgL_aux2679z00_794;
{ /* ./Write/ast.scm 86 */
bool_t BgL_test2930z00_797;
BgL_test2930z00_797 = 
CNSTP(BgL_atomz00_791); 
if(BgL_test2930z00_797)
{ /* ./Write/ast.scm 86 */
BgL_aux2679z00_794 = 
CCNST(BgL_atomz00_791); }  else 
{ /* ./Write/ast.scm 86 */
BgL_aux2679z00_794 = ((long)-1); } } 
switch( BgL_aux2679z00_794) { case ((long)2) : 

return BGl_string3386z00zzwrite_astz00;break;case ((long)1) : 

return BGl_string3387z00zzwrite_astz00;break;case ((long)3) : 

return BGl_string3388z00zzwrite_astz00;break;
default: 
{ /* ./Write/ast.scm 95 */
bool_t BgL_test2933z00_798;
BgL_test2933z00_798 = 
SYMBOLP(BgL_atomz00_791); 
if(BgL_test2933z00_798)
{ /* ./Write/ast.scm 95 */
if(
CBOOL(BGl_za2astzd2casezd2sensitiveza2z00zzengine_paramz00))
{ /* ./Write/ast.scm 96 */
return 
SYMBOL_TO_STRING(BgL_atomz00_791);}  else 
{ /* ./Write/ast.scm 98 */
obj_t BgL_arg2936z00_799;
BgL_arg2936z00_799 = 
SYMBOL_TO_STRING(BgL_atomz00_791); 
return 
BGl_stringzd2downcasezd2zz__r4_strings_6_7z00(BgL_arg2936z00_799);} }  else 
{ /* ./Write/ast.scm 99 */
bool_t BgL_test2939z00_800;
if(
INTEGERP(BgL_atomz00_791))
{ /* ./Write/ast.scm 99 */
BgL_test2939z00_800 = ((bool_t)1); }  else 
{ /* ./Write/ast.scm 99 */
BgL_test2939z00_800 = 
REALP(BgL_atomz00_791); } 
if(BgL_test2939z00_800)
{ /* ./Write/ast.scm 99 */
{ /* ./Write/ast.scm 100 */
char * BgL_auxz00_1567;
BgL_auxz00_1567 = 
BGl_numberzd2ze3stringz31zz__r4_numbers_6_5z00(BgL_atomz00_791, BNIL); 
return 
string_to_bstring(BgL_auxz00_1567);} }  else 
{ /* ./Write/ast.scm 101 */
bool_t BgL_test2942z00_802;
BgL_test2942z00_802 = 
STRINGP(BgL_atomz00_791); 
if(BgL_test2942z00_802)
{ /* ./Write/ast.scm 101 */
return BgL_atomz00_791;}  else 
{ /* ./Write/ast.scm 101 */
{ /* ./Write/ast.scm 104 */
obj_t BgL_pz00_803;
BgL_pz00_803 = 
open_output_string(); 
BGl_displayzd22zd2zz__r4_output_6_10_3z00(BgL_atomz00_791, BgL_pz00_803); 
return 
close_output_port(BgL_pz00_803);} } } } } } } } } 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzwrite_astz00()
{ AN_OBJECT;
{ /* ./Write/ast.scm 15 */
return BUNSPEC;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzwrite_astz00()
{ AN_OBJECT;
{ /* ./Write/ast.scm 15 */
BGl_modulezd2initializa7ationz75zztools_speekz00(((long)23537), "write_ast"); 
BGl_modulezd2initializa7ationz75zztools_errorz00(((long)25566), "write_ast"); 
BGl_modulezd2initializa7ationz75zzengine_passz00(((long)10268), "write_ast"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "write_ast"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "write_ast"); 
BGl_modulezd2initializa7ationz75zzast_nodez00(((long)50868), "write_ast"); 
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "write_ast"); 
BGl_modulezd2initializa7ationz75zzinit_mainz00(((long)6610), "write_ast"); 
BGl_modulezd2initializa7ationz75zzwrite_schemez00(((long)49065), "write_ast"); 
BGl_modulezd2initializa7ationz75zztype_pptypez00(((long)32803), "write_ast"); 
BGl_modulezd2initializa7ationz75zztools_shapez00(((long)30833), "write_ast"); 
return 
BGl_modulezd2initializa7ationz75zztools_argsz00(((long)42726), "write_ast");} 
}

