ats_ptr_type
atspre_matrix_make_funenv_tsz (ats_size_type arg0, ats_size_type arg1, ats_ptr_type arg2, ats_size_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp7) ;
ATSlocal (ats_size_type, tmp8) ;
ATSlocal (ats_size_type, tmp9) ;
ATSlocal (ats_ptr_type, tmp10) ;
ATSlocal (ats_ptr_type, tmp11) ;
ATSlocal (ats_ptr_type, tmp12) ;
ATSlocal (__ats_fun_5_closure_type, tmp16) ;
// ATSlocal_void (tmp17) ;
// ATSlocal_void (tmp18) ;
// ATSlocal_void (tmp19) ;

__ats_lab_atspre_matrix_make_funenv_tsz:
tmp8 = atspre_mul2_size1_size1 (arg0, arg1) ;
tmp9 = ats_selsin_mac(tmp8, atslab_1) ;
tmp10 = atspre_array_ptr_alloc_tsz (tmp9, arg3) ;
tmp11 = ats_selsin_mac(tmp10, atslab_2) ;
/* ats_ptr_type tmp12 ; */
tmp12 = &(tmp16) ;
__ats_fun_5_closure_init (tmp12, arg1, arg2) ; // closure initialization
/* tmp17 = */ atspre_array_ptr_initialize_cloenv_tsz (tmp11, tmp9, tmp12, arg3, arg4) ;
/* tmp18 = */ atspre_vbox_make_view_ptr (tmp11) ;
/* tmp19 = ats_selsin_mac(tmp18, atslab_1) */ ;
tmp7 = tmp11 ;
return (tmp7) ;
} /* end of [atspre_matrix_make_funenv_tsz] */
ats_ptr_type
_2opt_2ats_2d0_2e2_2e9_2src_2ats_dynexp2_2esats__d2mac_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
    /* local vardec */
    ATSlocal (ats_ptr_type, tmp0) ;
    ATSlocal (ats_int_type, tmp4) ;
    ATSlocal (atsopt_count_type, tmp5) ;
    ATSlocal (ats_ptr_type, tmp6) ;
    ATSlocal (ats_ptr_type, tmp7) ;
// ATSlocal_void (tmp8) ;
// ATSlocal_void (tmp9) ;

__ats_lab__2opt_2ats_2d0_2e2_2e9_2src_2ats_dynexp2_2esats__d2mac_make:
    tmp4 = aux_1 (arg3) ;
    tmp5 = _2opt_2ats_2d0_2e2_2e9_2src_2ats_stamp_2esats__d2mac_stamp_make () ;
    tmp6 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_1)) ;
    tmp7 = ats_selsin_mac(tmp6, atslab_2) ;
    ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp7), atslab_d2mac_loc) = arg0 ;
    ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp7), atslab_d2mac_sym) = arg1 ;
    ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp7), atslab_d2mac_kind) = arg2 ;
    ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp7), atslab_d2mac_narg) = tmp4 ;
    ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp7), atslab_d2mac_arglst) = arg3 ;
    ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp7), atslab_d2mac_def) = arg4 ;
    ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp7), atslab_d2mac_stamp) = tmp5 ;
    /* tmp8 = */ atspre_vbox_make_view_ptr (tmp7) ;
    /* tmp9 = ats_selsin_mac(tmp8, atslab_1) */ ;
    tmp0 = tmp7 ;
    return (tmp0) ;
} /* end of [_2opt_2ats_2d0_2e2_2e9_2src_2ats_dynexp2_2esats__d2mac_make] */
ats_ptr_type
_2opt_2ats_2d0_2e2_2e9_2src_2ats_symtbl_2esats__symtbl_make (ats_int_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp0) ;
ATSlocal (ats_ptr_type, tmp1) ;
ATSlocal (ats_ptr_type, tmp2) ;
ATSlocal (ats_int_type, tmp3) ;
ATSlocal (ats_ptr_type, tmp4) ;
ATSlocal (ats_ptr_type, tmp5) ;
ATSlocal (ats_ptr_type, tmp6) ;
// ATSlocal_void (tmp7) ;
// ATSlocal_void (tmp13) ;
// ATSlocal_void (tmp14) ;

__ats_lab__2opt_2ats_2d0_2e2_2e9_2src_2ats_symtbl_2esats__symtbl_make:
tmp1 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_0)) ;
tmp2 = ats_selsin_mac(tmp1, atslab_2) ;
tmp3 = atspre_imax (arg0, 1) ;
tmp4 = ats_array_ptr_alloc_tsz (tmp3, sizeof(ats_ptr_type)) ;
tmp5 = ats_selsin_mac(tmp4, atslab_2) ;
/* ats_ptr_type tmp6 ; */
tmp6 = (ats_sum_ptr_type)0 ;
/* tmp7 = */ array_ptr_initialize_elt_01930_ats_ptr_type (tmp5, tmp3, tmp6) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, tmp2), atslab_ptr) = tmp5 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, tmp2), atslab_size) = tmp3 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_0, tmp2), atslab_nitm) = 0 ;
/* tmp13 = */ atspre_vbox_make_view_ptr (tmp2) ;
/* tmp14 = ats_selsin_mac(tmp13, atslab_1) */ ;
tmp0 = tmp2 ;
return (tmp0) ;
} /* end of [_2opt_2ats_2d0_2e2_2e9_2src_2ats_symtbl_2esats__symtbl_make] */
ats_ptr_type
atspre_matrix_make_arrpsz__main (ats_size_type arg0, ats_size_type arg1, anairiats_rec_0 arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp3) ;
// ATSlocal_void (tmp4) ;
ATSlocal (ats_ptr_type, tmp5) ;
// ATSlocal_void (tmp6) ;

__ats_lab_atspre_matrix_make_arrpsz__main:
tmp5 = ats_select_mac(arg2, atslab_2) ;
/* tmp4 = */ atspre_vbox_make_view_ptr (tmp5) ;
/* tmp6 = ats_selsin_mac(tmp4, atslab_1) */ ;
tmp3 = ats_select_mac(arg2, atslab_2) ;
return (tmp3) ;
} /* end of [atspre_matrix_make_arrpsz__main] */
ats_void_type
_2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_basics_2edats__dynload () {
    _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_basics_2edats__dynload_flag = 1 ;
    _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_basics_2edats__staload () ;

#ifdef _ATS_PROOFCHECK
#endif /* _ATS_PROOFCHECK */

    /* marking static variables for GC */
    ATS_GC_MARKROOT(&statmp62, sizeof(ats_int_type)) ;

    /* marking external values for GC */

    /* code for dynamic loading */
    ATS_GC_MARKROOT(&_2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_basics_2esats__VIEWT0YPE_knd, sizeof(ats_int_type)) ;
    _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_basics_2esats__VIEWT0YPE_knd = 3 ;
    /* ats_int_type statmp62 ; */
    statmp62 = 0 ;
    /* statmp63 = */ atspre_vbox_make_view_ptr ((&statmp62)) ;
    /* statmp64 = ats_selsin_mac(statmp63, atslab_1) */ ;
    return ;
} /* end of [dynload function] */
ats_ptr_type
_2opt_2ats_2d0_2e2_2e9_2src_2ats_staexp2_2esats__d2con_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5, ats_int_type arg6, ats_ptr_type arg7, ats_ptr_type arg8) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp0) ;
ATSlocal (atsopt_count_type, tmp1) ;
ATSlocal (ats_int_type, tmp2) ;
ATSlocal (ats_int_type, tmp12) ;
ATSlocal (ats_ptr_type, tmp13) ;
ATSlocal (ats_ptr_type, tmp20) ;
ATSlocal (ats_ptr_type, tmp21) ;
ATSlocal (ats_ptr_type, tmp22) ;
ATSlocal (ats_ptr_type, tmp23) ;
ATSlocal (ats_ptr_type, tmp24) ;
ATSlocal (ats_ptr_type, tmp25) ;
// ATSlocal_void (tmp26) ;
// ATSlocal_void (tmp27) ;

__ats_lab__2opt_2ats_2d0_2e2_2e9_2src_2ats_staexp2_2esats__d2con_make:
tmp1 = _2opt_2ats_2d0_2e2_2e9_2src_2ats_stamp_2esats__d2con_stamp_make () ;
tmp2 = _2opt_2ats_2d0_2e2_2e9_2src_2ats_list_2esats__list_length (arg7) ;
tmp13 = aux1_1 (arg6, arg7) ;
tmp12 = aux2_2 (0, tmp13) ;
do {
/* branch: __ats_lab_6 */
__ats_lab_6_0:
if (arg8 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; }
__ats_lab_6_1:
tmp21 = ats_caselptrlab_mac(anairiats_sum_3, arg8, atslab_0) ;
tmp20 = _2opt_2ats_2d0_2e2_2e9_2src_2ats_staexp2_2esats__s2exp_cstapp (arg3, tmp21) ;
break ;

/* branch: __ats_lab_7 */
__ats_lab_7_0:
// if (arg8 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_7_1:
tmp20 = _2opt_2ats_2d0_2e2_2e9_2src_2ats_staexp2_2esats__s2exp_cst (arg3) ;
break ;
} while (0) ;
tmp23 = _2opt_2ats_2d0_2e2_2e9_2src_2ats_staexp2_2esats__s2exp_confun (arg6, arg7, tmp20) ;
tmp22 = aux_3 (tmp23, arg5) ;
tmp24 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_4)) ;
tmp25 = ats_selsin_mac(tmp24, atslab_2) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp25), atslab_d2con_loc) = arg0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp25), atslab_d2con_fil) = arg1 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp25), atslab_d2con_sym) = arg2 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp25), atslab_d2con_scst) = arg3 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp25), atslab_d2con_vwtp) = arg4 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp25), atslab_d2con_qua) = arg5 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp25), atslab_d2con_npf) = arg6 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp25), atslab_d2con_arg) = arg7 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp25), atslab_d2con_arity_full) = tmp2 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp25), atslab_d2con_arity_real) = tmp12 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp25), atslab_d2con_ind) = arg8 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp25), atslab_d2con_typ) = tmp22 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp25), atslab_d2con_tag) = -1 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp25), atslab_d2con_stamp) = tmp1 ;
/* tmp26 = */ atspre_vbox_make_view_ptr (tmp25) ;
/* tmp27 = ats_selsin_mac(tmp26, atslab_1) */ ;
tmp0 = tmp25 ;
return (tmp0) ;
} /* end of [_2opt_2ats_2d0_2e2_2e9_2src_2ats_staexp2_2esats__d2con_make] */