ats_void_type
_2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_bind_and_add (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
    /* local vardec */
// ATSlocal_void (tmp21) ;
    ATSlocal (ats_ptr_type, tmp22) ;
    ATSlocal (ats_bool_type, tmp23) ;
// ATSlocal_void (tmp24) ;
// ATSlocal_void (tmp25) ;
// ATSlocal_void (tmp28) ;
// ATSlocal_void (tmp29) ;
// ATSlocal_void (tmp30) ;
// ATSlocal_void (tmp31) ;
    ATSlocal (ats_ptr_type, tmp32) ;
// ATSlocal_void (tmp33) ;

__ats_lab__2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_bind_and_add:
    tmp22 = _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ;
    tmp23 = _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isasp (arg1) ;
    if (tmp23) {
        /* tmp25 = */ prerr_warning3_loc_02052_ (arg0) ;
        /* tmp28 = */ atspre_prerr_string (ATSstrcst(": the static constant [")) ;
        /* tmp29 = */ _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cst (arg1) ;
        /* tmp30 = */ atspre_prerr_string (ATSstrcst("] is not abstract at this point.")) ;
        /* tmp24 = */ atspre_prerr_newline () ;
    } else {
        /* empty */
    } /* end of [if] */
    tmp32 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
    ats_selptrset_mac(anairiats_sum_2, tmp32, atslab_0, tmp22) ;
    /* tmp31 = */ _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def (arg1, tmp32) ;
    /* tmp33 = */ _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_isasp (arg1, ats_true_bool) ;
    /* tmp21 = */ _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_add (arg1) ;
    return /* (tmp21) */ ;
} /* end of [_2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_bind_and_add] */
ats_ptr_type
_2home_2hwxi_2research_2Postiats_2git_2src_2pats_parsing_2esats__parse_from_givename_toplevel (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp40) ;
ATSlocal (ats_ptr_type, tmp41) ;
ATSlocal (ats_ptr_type, tmp42) ;
ATSlocal (ats_ptr_type, tmp43) ;
// ATSlocal_void (tmp44) ;
// ATSlocal_void (tmp45) ;
// ATSlocal_void (tmp46) ;
// ATSlocal_void (tmp47) ;
// ATSlocal_void (tmp48) ;
// ATSlocal_void (tmp49) ;
// ATSlocal_void (tmp50) ;
ATSlocal (ats_ptr_type, tmp51) ;

__ats_lab__2home_2hwxi_2research_2Postiats_2git_2src_2pats_parsing_2esats__parse_from_givename_toplevel:
tmp41 = _2home_2hwxi_2research_2Postiats_2git_2src_2pats_filename_2esats__filenameopt_make_local (arg1) ;
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (tmp41 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; }
__ats_lab_0_1:
tmp42 = ats_caselptrlab_mac(anairiats_sum_0, tmp41, atslab_0) ;
ATS_FREE(tmp41) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp42 ;
tmp43 = _2home_2hwxi_2research_2Postiats_2git_2src_2pats_parsing_2esats__parse_from_filename_toplevel (arg0, tmp42) ;
/* tmp44 = */ _2home_2hwxi_2research_2Postiats_2git_2src_2pats_filename_2esats__the_filenamelst_ppush (tmp42) ;
tmp40 = tmp43 ;
break ;

/* branch: __ats_lab_1 */
__ats_lab_1_0:
// if (tmp41 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_1_1:
ats_ptrget_mac(ats_ptr_type, arg2) = _2home_2hwxi_2research_2Postiats_2git_2src_2pats_filename_2esats__filename_dummy ;
/* tmp45 = */ atspre_prerr_string (ATSstrcst("patsopt: error(0)")) ;
/* tmp46 = */ atspre_prerr_string (ATSstrcst(": the given file [")) ;
/* tmp47 = */ atspre_prerr_string (arg1) ;
/* tmp48 = */ atspre_prerr_string (ATSstrcst("] cannot be accessed.")) ;
/* tmp49 = */ atspre_prerr_newline () ;
tmp51 = ATS_MALLOC(sizeof(anairiats_sum_1)) ;
((ats_exn_ptr_type)tmp51)->tag = _2home_2hwxi_2research_2Postiats_2git_2src_2pats_error_2esats__PATSOPT_FILENONE_EXN.tag ;
((ats_exn_ptr_type)tmp51)->name = _2home_2hwxi_2research_2Postiats_2git_2src_2pats_error_2esats__PATSOPT_FILENONE_EXN.name ;
ats_selptrset_mac(anairiats_sum_1, tmp51, atslab_0, arg1) ;
/* tmp50 = */ ats_raise_exn (tmp51) ;
tmp40 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp40) ;
} /* end of [_2home_2hwxi_2research_2Postiats_2git_2src_2pats_parsing_2esats__parse_from_givename_toplevel] */
ats_void_type
loop_err_12 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp19) ;
// ATSlocal_void (tmp20) ;
ATSlocal (ats_ptr_type, tmp23) ;
// ATSlocal_void (tmp24) ;
// ATSlocal_void (tmp25) ;
// ATSlocal_void (tmp26) ;
// ATSlocal_void (tmp27) ;

__ats_lab_loop_err_12:
tmp23 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_e0fftag_loc) ;
/* tmp20 = */ prerr_error1_loc_01893_ (tmp23) ;
/* tmp24 = */ atspre_prerr_string (ATSstrcst(": unrecognized effect constant: [")) ;
/* tmp25 = */ atspre_prerr_string (arg1) ;
/* tmp26 = */ atspre_prerr_string (ATSstrcst("]")) ;
/* tmp27 = */ atspre_prerr_newline () ;
/* tmp19 = */ _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ;
return /* (tmp19) */ ;
} /* end of [loop_err_12] */
ats_ptr_type
_2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__s1rt_tr_qid (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp31) ;
ATSlocal (ats_ptr_type, tmp32) ;
ATSlocal (ats_ptr_type, tmp33) ;
ATSlocal (ats_ptr_type, tmp34) ;
ATSlocal (ats_ptr_type, tmp35) ;
// ATSlocal_void (tmp36) ;
// ATSlocal_void (tmp37) ;
// ATSlocal_void (tmp38) ;
// ATSlocal_void (tmp39) ;
// ATSlocal_void (tmp40) ;
// ATSlocal_void (tmp41) ;
// ATSlocal_void (tmp42) ;
ATSlocal (ats_ptr_type, tmp43) ;
// ATSlocal_void (tmp44) ;
// ATSlocal_void (tmp45) ;
// ATSlocal_void (tmp46) ;
// ATSlocal_void (tmp47) ;
// ATSlocal_void (tmp48) ;
// ATSlocal_void (tmp49) ;
// ATSlocal_void (tmp50) ;
ATSlocal (ats_ptr_type, tmp51) ;

__ats_lab__2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__s1rt_tr_qid:
tmp32 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_s1rt_loc) ;
tmp33 = _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_find_qua (arg1, arg2) ;
do {
/* branch: __ats_lab_6 */
__ats_lab_6_0:
if (tmp33 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; }
__ats_lab_6_1:
tmp34 = ats_caselptrlab_mac(anairiats_sum_6, tmp33, atslab_0) ;
ATS_FREE(tmp33) ;
do {
/* branch: __ats_lab_7 */
__ats_lab_7_0:
if (((ats_sum_ptr_type)tmp34)->tag != 0) { goto __ats_lab_8_0 ; }
__ats_lab_7_1:
tmp35 = ats_caselptrlab_mac(anairiats_sum_4, tmp34, atslab_0) ;
tmp31 = tmp35 ;
break ;

/* branch: __ats_lab_8 */
__ats_lab_8_0:
__ats_lab_8_1:
/* tmp36 = */ prerr_error2_loc_02085_ (tmp32) ;
/* tmp37 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/home/hwxi/Research/ATS-Postiats/src/pats_trans2_sort.dats"), ATSstrcst("s1rt_tr_qid")) ;
/* tmp38 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ;
/* tmp39 = */ _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg2) ;
/* tmp40 = */ atspre_prerr_string (ATSstrcst("] is expected to refer to a sort (instead of a subset sort).")) ;
/* tmp41 = */ atspre_prerr_newline () ;
tmp43 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp43)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_4, tmp43, atslab_0, arg0) ;
/* tmp42 = */ _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp43) ;
tmp31 = _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_9 */
__ats_lab_9_0:
// if (tmp33 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_9_1:
/* tmp44 = */ prerr_error2_loc_02085_ (tmp32) ;
/* tmp45 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/home/hwxi/Research/ATS-Postiats/src/pats_trans2_sort.dats"), ATSstrcst("s1rt_tr_qid")) ;
/* tmp46 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ;
/* tmp47 = */ _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg2) ;
/* tmp48 = */ atspre_prerr_string (ATSstrcst("] does not refer to any recognized sort.")) ;
/* tmp49 = */ atspre_prerr_newline () ;
tmp51 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp51)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_4, tmp51, atslab_0, arg0) ;
/* tmp50 = */ _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp51) ;
tmp31 = _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ;
break ;
} while (0) ;
return (tmp31) ;
} /* end of [_2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__s1rt_tr_qid] */
ats_ptr_type
_2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__s1rt_tr_app (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1) ;
ATSlocal (ats_ptr_type, tmp2) ;
ATSlocal (ats_ptr_type, tmp3) ;
ATSlocal (ats_bool_type, tmp4) ;
ATSlocal (ats_ptr_type, tmp5) ;
ATSlocal (ats_ptr_type, tmp6) ;
ATSlocal (ats_ptr_type, tmp7) ;
ATSlocal (ats_ptr_type, tmp8) ;
ATSlocal (ats_ptr_type, tmp9) ;
ATSlocal (ats_ptr_type, tmp10) ;
ATSlocal (ats_ptr_type, tmp11) ;
ATSlocal (ats_ptr_type, tmp12) ;
ATSlocal (ats_ptr_type, tmp13) ;
ATSlocal (ats_ptr_type, tmp14) ;
// ATSlocal_void (tmp15) ;
// ATSlocal_void (tmp20) ;
// ATSlocal_void (tmp21) ;
// ATSlocal_void (tmp22) ;
ATSlocal (ats_ptr_type, tmp25) ;
// ATSlocal_void (tmp26) ;
// ATSlocal_void (tmp27) ;
// ATSlocal_void (tmp28) ;
// ATSlocal_void (tmp29) ;
ATSlocal (ats_ptr_type, tmp30) ;

__ats_lab__2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__s1rt_tr_app:
tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_s1rt_loc) ;
tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_s1rt_node) ;
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
__ats_lab_0_1:
tmp4 = _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1rt_is_arrow (arg1) ;
if (!tmp4) { goto __ats_lab_5_1 ; }
do {
/* branch: __ats_lab_1 */
__ats_lab_1_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; }
tmp5 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ;
if (tmp5 == (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; }
tmp6 = ats_caselptrlab_mac(anairiats_sum_3, tmp5, atslab_1) ;
if (tmp6 != (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; }
__ats_lab_1_1:
tmp7 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ;
tmp8 = ats_caselptrlab_mac(anairiats_sum_3, tmp5, atslab_0) ;
tmp10 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp7), atslab_s1rt_node) ;
do {
/* branch: __ats_lab_2 */
__ats_lab_2_0:
if (((ats_sum_ptr_type)tmp10)->tag != 1) { goto __ats_lab_3_0 ; }
__ats_lab_2_1:
tmp11 = ats_caselptrlab_mac(anairiats_sum_4, tmp10, atslab_0) ;
tmp9 = tmp11 ;
break ;

/* branch: __ats_lab_3 */
__ats_lab_3_0:
__ats_lab_3_1:
tmp12 = (ats_sum_ptr_type)0 ;
tmp9 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp9, atslab_0, tmp7) ;
ats_selptrset_mac(anairiats_sum_3, tmp9, atslab_1, tmp12) ;
break ;
} while (0) ;
tmp13 = _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtlst_tr (tmp9) ;
tmp14 = _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp8) ;
tmp1 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp1)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp1, atslab_0, tmp13) ;
ats_selptrset_mac(anairiats_sum_5, tmp1, atslab_1, tmp14) ;
break ;

/* branch: __ats_lab_4 */
__ats_lab_4_0:
__ats_lab_4_1:
/* tmp15 = */ prerr_interror_loc_02083_ (tmp2) ;
/* tmp20 = */ atspre_prerr_string (ATSstrcst(": s1rt_tr_app: [->] is not an infix operator!")) ;
/* tmp21 = */ atspre_prerr_newline () ;
/* tmp1 = */ _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_5 */
__ats_lab_5_0:
__ats_lab_5_1:
tmp25 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_s1rt_loc) ;
/* tmp22 = */ prerr_error2_loc_02085_ (tmp25) ;
/* tmp26 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/home/hwxi/Research/ATS-Postiats/src/pats_trans2_sort.dats"), ATSstrcst("s1rt_tr_app")) ;
/* tmp27 = */ atspre_prerr_string (ATSstrcst(": sort application is not supported.")) ;
/* tmp28 = */ atspre_prerr_newline () ;
tmp30 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp30)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_4, tmp30, atslab_0, arg0) ;
/* tmp29 = */ _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp30) ;
tmp1 = _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ;
break ;
} while (0) ;
return (tmp1) ;
} /* end of [_2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_trans2_sort_2edats__s1rt_tr_app] */
ats_ptr_type
ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_freeitmlst_generate (ats_int_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp13) ;
// ATSlocal_void (tmp14) ;
// ATSlocal_void (tmp15) ;
ATSlocal (ats_ptr_type, tmp16) ;
ATSlocal (ats_ptr_type, tmp17) ;
ATSlocal (ats_bool_type, tmp18) ;
// ATSlocal_void (tmp19) ;
// ATSlocal_void (tmp20) ;
// ATSlocal_void (tmp21) ;
// ATSlocal_void (tmp22) ;
// ATSlocal_void (tmp23) ;
ATSlocal (ats_ptr_type, tmp24) ;
ATSlocal (ats_bool_type, tmp25) ;
// ATSlocal_void (tmp26) ;
ATSlocal (ats_bool_type, tmp27) ;
ATSlocal (ats_int_type, tmp28) ;
// ATSlocal_void (tmp29) ;
// ATSlocal_void (tmp30) ;
// ATSlocal_void (tmp31) ;
// ATSlocal_void (tmp32) ;
// ATSlocal_void (tmp33) ;
// ATSlocal_void (tmp34) ;
// ATSlocal_void (tmp35) ;
// ATSlocal_void (tmp36) ;
// ATSlocal_void (tmp37) ;
// ATSlocal_void (tmp38) ;
// ATSlocal_void (tmp39) ;
// ATSlocal_void (tmp40) ;
// ATSlocal_void (tmp41) ;
// ATSlocal_void (tmp42) ;
ATSlocal (ats_ptr_type, tmp43) ;
ATSlocal (ats_bool_type, tmp44) ;
// ATSlocal_void (tmp45) ;
ATSlocal (ats_int_type, tmp46) ;
ATSlocal (ats_ptr_type, tmp47) ;
// ATSlocal_void (tmp48) ;
// ATSlocal_void (tmp49) ;
ATSlocal (ats_ptr_type, tmp50) ;
ATSlocal (ats_bool_type, tmp51) ;
// ATSlocal_void (tmp52) ;
// ATSlocal_void (tmp53) ;
// ATSlocal_void (tmp54) ;

__ats_lab_ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_freeitmlst_generate:
#line 110 "gcats1_collecting.dats"
/* tmp14 = */ the_sweeplst_lock_acquire_one (arg0) ;
#line 110 "gcats1_collecting.dats"
/* tmp15 = ats_selsin_mac(tmp14, atslab_1) */ ;
#line 111 "gcats1_collecting.dats"
tmp16 = the_sweeplst_array_get (arg0) ;
#line 113 "gcats1_collecting.dats"
tmp18 = chunklst_is_cons (tmp16) ;
#line 113 "gcats1_collecting.dats"
if (tmp18) {
#line 113 "gcats1_collecting.dats"
tmp17 = tmp16 ;
} else {
#line 114 "gcats1_collecting.dats"
/* tmp19 = */ the_sweeplst_lock_release_one (arg0) ;
#line 115 "gcats1_collecting.dats"
/* tmp20 = */ gc_main_lock_acquire () ;
#line 115 "gcats1_collecting.dats"
/* tmp21 = ats_selsin_mac(tmp20, atslab_1) */ ;
#line 116 "gcats1_collecting.dats"
/* tmp22 = */ the_sweeplst_lock_acquire_one (arg0) ;
#line 116 "gcats1_collecting.dats"
/* tmp23 = ats_selsin_mac(tmp22, atslab_1) */ ;
#line 118 "gcats1_collecting.dats"
tmp24 = the_sweeplst_array_get (arg0) ;
#line 120 "gcats1_collecting.dats"
tmp25 = chunklst_is_cons (tmp24) ;
#line 120 "gcats1_collecting.dats"
if (tmp25) {
#line 121 "gcats1_collecting.dats"
/* tmp26 = */ gc_main_lock_release () ;
#line 121 "gcats1_collecting.dats"
tmp17 = tmp24 ;
} else {
#line 124 "gcats1_collecting.dats"
tmp27 = the_chunk_count_limit_is_not_reached () ;
#line 126 "gcats1_collecting.dats"
if (tmp27) {
#line 127 "gcats1_collecting.dats"
tmp28 = atspre_asl_int_int1 (1, arg0) ;
#line 127 "gcats1_collecting.dats"
tmp17 = chunklst_create_release (arg0, tmp28) ;
} else {
#line 129 "gcats1_collecting.dats"
/* tmp29 = */ the_globalentrylst_lock_acquire () ;
#line 129 "gcats1_collecting.dats"
/* tmp30 = ats_selsin_mac(tmp29, atslab_1) */ ;
#line 130 "gcats1_collecting.dats"
/* tmp31 = */ the_manmemlst_lock_acquire () ;
#line 130 "gcats1_collecting.dats"
/* tmp32 = ats_selsin_mac(tmp31, atslab_1) */ ;
#line 131 "gcats1_collecting.dats"
/* tmp33 = */ the_threadinfolst_lock_acquire () ;
#line 131 "gcats1_collecting.dats"
/* tmp34 = ats_selsin_mac(tmp33, atslab_1) */ ;
#line 133 "gcats1_collecting.dats"
/* tmp35 = */ the_sweeplst_lock_acquire_rest (arg0) ;
#line 132 "gcats1_collecting.dats"
/* tmp36 = ats_selsin_mac(tmp35, atslab_1) */ ;
#line 135 "gcats1_collecting.dats"
/* tmp37 = */ gc_collect () ;
#line 139 "gcats1_collecting.dats"
/* tmp38 = */ the_sweeplst_lock_release_rest (arg0) ;
#line 138 "gcats1_collecting.dats"
/* tmp39 = ats_selsin_mac(tmp38, atslab_1) */ ;
#line 142 "gcats1_collecting.dats"
/* tmp40 = */ the_threadinfolst_lock_release () ;
#line 143 "gcats1_collecting.dats"
/* tmp41 = */ the_manmemlst_lock_release () ;
#line 144 "gcats1_collecting.dats"
/* tmp42 = */ the_globalentrylst_lock_release () ;
#line 145 "gcats1_collecting.dats"
tmp43 = the_sweeplst_array_get (arg0) ;
#line 152 "gcats1_collecting.dats"
tmp44 = chunklst_is_cons (tmp43) ;
#line 152 "gcats1_collecting.dats"
if (tmp44) {
#line 153 "gcats1_collecting.dats"
/* tmp45 = */ gc_main_lock_release () ;
#line 153 "gcats1_collecting.dats"
tmp17 = tmp43 ;
} else {
#line 155 "gcats1_collecting.dats"
tmp46 = atspre_asl_int_int1 (1, arg0) ;
#line 155 "gcats1_collecting.dats"
tmp17 = chunklst_create_release (arg0, tmp46) ;
} /* end of [if] */
} /* end of [if] */
} /* end of [if] */
} /* end of [if] */
#line 166 "gcats1_collecting.dats"
tmp47 = chunklst_sweep_next_get (tmp17) ;
#line 167 "gcats1_collecting.dats"
/* tmp48 = */ the_sweeplst_array_set (arg0, tmp47) ;
#line 168 "gcats1_collecting.dats"
/* tmp49 = */ the_sweeplst_lock_release_one (arg0) ;
#line 169 "gcats1_collecting.dats"
tmp50 = gc_chunk_threading (tmp17) ;
#line 176 "gcats1_collecting.dats"
tmp51 = freeitmlst_is_nil (tmp50) ;
#line 176 "gcats1_collecting.dats"
if (tmp51) {
#line 177 "gcats1_collecting.dats"
/* tmp52 = */ atspre_prerr_string (ATSstrcst("GC: Fatal Error")) ;
#line 178 "gcats1_collecting.dats"
/* tmp53 = */ atspre_prerr_string (ATSstrcst(": [gc_freeitmlst_generate]: the generated freeitmlst is nil")) ;
#line 179 "gcats1_collecting.dats"
/* tmp54 = */ atspre_prerr_newline () ;
#line 180 "gcats1_collecting.dats"
/* tmp13 = */ ats_exit (1) ;
} else {
#line 182 "gcats1_collecting.dats"
tmp13 = tmp50 ;
} /* end of [if] */
return (tmp13) ;
} /* end of [ATS_2d0_2e2_2e10_2ccomp_2runtime_2GCATS1_2gcats1_2esats__gc_freeitmlst_generate] */
ats_void_type
gcats1_freeitmlst_freeitmlst_mark_unset_4 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp11) ;
ATSlocal (ats_bool_type, tmp12) ;
ATSlocal (ats_int_type, tmp13) ;
ATSlocal (ats_ptr_type, tmp14) ;
ATSlocal (ats_ptr_type, tmp15) ;
ATSlocal (ats_ptr_type, tmp16) ;
ATSlocal (ats_bool_type, tmp17) ;
// ATSlocal_void (tmp18) ;
// ATSlocal_void (tmp19) ;
// ATSlocal_void (tmp20) ;
ATSlocal (ats_ptr_type, tmp21) ;
// ATSlocal_void (tmp22) ;
ATSlocal (ats_bool_type, tmp23) ;
ATSlocal (ats_int_type, tmp24) ;
// ATSlocal_void (tmp25) ;
ATSlocal (ats_ptr_type, tmp26) ;

__ats_lab_gcats1_freeitmlst_freeitmlst_mark_unset_4:
#line 77 "gcats1_freeitmlst.dats"
tmp12 = freeitmlst_is_cons (arg0) ;
#line 77 "gcats1_freeitmlst.dats"
if (tmp12) {
#line 78 "gcats1_freeitmlst.dats"
/* ats_int_type tmp13 ; */
#line 78 "gcats1_freeitmlst.dats"
tmp13 = 0 ;
#line 78 "gcats1_freeitmlst.dats"
tmp14 = freeitmlst2ptr (arg0) ;
#line 79 "gcats1_freeitmlst.dats"
tmp15 = gc_ptr_is_valid (tmp14, (&tmp13)) ;
#line 80 "gcats1_freeitmlst.dats"
tmp17 = chunklst_is_cons (tmp15) ;
#line 80 "gcats1_freeitmlst.dats"
if (tmp17) {
#line 80 "gcats1_freeitmlst.dats"
tmp16 = tmp15 ;
} else {
#line 81 "gcats1_freeitmlst.dats"
/* tmp18 = */ atspre_prerr_string (ATSstrcst("freeitmlst_mark_unset: illegal pointer: ptr = ")) ;
#line 82 "gcats1_freeitmlst.dats"
/* tmp19 = */ atspre_prerr_ptr (tmp14) ;
#line 83 "gcats1_freeitmlst.dats"
/* tmp20 = */ atspre_prerr_newline () ;
#line 84 "gcats1_freeitmlst.dats"
/* tmp16 = */ ats_exit (1) ;
} /* end of [if] */
#line 87 "gcats1_freeitmlst.dats"
tmp21 = chunklst_markbits_get (tmp16) ;
#line 89 "gcats1_freeitmlst.dats"
tmp24 = MARK_GET (tmp21, tmp13) ;
#line 89 "gcats1_freeitmlst.dats"
tmp23 = atspre_gt_int_int (tmp24, 0) ;
#line 89 "gcats1_freeitmlst.dats"
if (tmp23) {
#line 91 "gcats1_freeitmlst.dats"
/* tmp25 = */ MARK_CLEAR (tmp21, tmp13) ;
#line 91 "gcats1_freeitmlst.dats"
/* tmp22 = */ chunklst_markcnt_dec (tmp16) ;
} else {
/* empty */
} /* end of [if] */
#line 94 "gcats1_freeitmlst.dats"
tmp26 = freeitmlst_tail_get (arg0) ;
#line 94 "gcats1_freeitmlst.dats"
arg0 = tmp26 ;
#line 94 "gcats1_freeitmlst.dats"
goto __ats_lab_gcats1_freeitmlst_freeitmlst_mark_unset_4 ; // tail call
} else {
/* empty */
} /* end of [if] */
return /* (tmp11) */ ;
} /* end of [gcats1_freeitmlst_freeitmlst_mark_unset_4] */