/*
**
** The C code is generated by ATS/Anairiats
** The compilation time is: 2019-12-18:  5h:29m
**
*/

/* include some .h files */
#ifndef _ATS_HEADER_NONE
#include "ats_config.h"
#include "ats_basics.h"
#include "ats_types.h"
#include "ats_exception.h"
#include "ats_memory.h"
#endif /* _ATS_HEADER_NONE */

/* include some .cats files */
#ifndef _ATS_PRELUDE_NONE
#include "prelude/CATS/basics.cats"
#include "prelude/CATS/integer.cats"
#include "prelude/CATS/sizetype.cats"
#include "prelude/CATS/integer_ptr.cats"
#include "prelude/CATS/integer_fixed.cats"
#include "prelude/CATS/pointer.cats"
#include "prelude/CATS/bool.cats"
#include "prelude/CATS/char.cats"
#include "prelude/CATS/byte.cats"
#include "prelude/CATS/float.cats"
#include "prelude/CATS/string.cats"
#include "prelude/CATS/reference.cats"
#include "prelude/CATS/lazy.cats"
#include "prelude/CATS/lazy_vt.cats"
#include "prelude/CATS/printf.cats"
#include "prelude/CATS/list.cats"
#include "prelude/CATS/option.cats"
#include "prelude/CATS/array.cats"
#include "prelude/CATS/matrix.cats"
#endif /* _ATS_PRELUDE_NONE */
/* prologues from statically loaded files */

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"
/* external codes at top */
/* type definitions */
typedef
struct {
ats_ptr_type atslab_d2ecl_loc ;
ats_ptr_type atslab_d2ecl_node ;
} anairiats_rec_0 ;

typedef struct {
int tag ;
ats_int_type atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_1 ;

typedef struct {
ats_ptr_type atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_2 ;

typedef struct {
int tag ;
ats_ptr_type atslab_0 ;
} anairiats_sum_3 ;

typedef struct {
int tag ;
ats_ptr_type atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_4 ;

/* external typedefs */
/* external dynamic constructor declarations */
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clist_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ccodegen_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clocal_27) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__datcon_test_e1xp) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__datcontag_test_e1xp) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__fprint_test_e1xp) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__absrec_test_e1xp) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_process) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_datcon) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_datcontag) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_fprint) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_absrec) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;

/* external dynamic terminating constant declarations */
#ifdef _ATS_PROOFCHECK
#endif /* _ATS_PROOFCHECK */

/* assuming abstract types */
/* sum constructor declarations */
/* exn constructor declarations */
/* global dynamic (non-functional) constant declarations */
/* internal function declarations */
static
ats_void_type auxerr_nil_0 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type auxerr_cons_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type aux_4 (ats_ptr_type env0, ats_ptr_type arg0) ;
static
ats_clo_ptr_type aux_4_closure_make (ats_ptr_type env0) ;
static
ats_void_type aux_4_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_void_type auxlst_5 (ats_ptr_type env0, ats_ptr_type arg0) ;
static
ats_clo_ptr_type auxlst_5_closure_make (ats_ptr_type env0) ;
static
ats_void_type auxlst_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;

/* partial value template declarations */
/* static temporary variable declarations */
/* external value variable declarations */

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_codegen2.dats: 1748(line=63, offs=1) -- 1966(line=74, offs=2)
*/
ATSstaticdec()
ats_void_type
auxerr_nil_0 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp0) ;
ATSlocal (ats_ptr_type, tmp1) ;
// ATSlocal_void (tmp2) ;
// ATSlocal_void (tmp3) ;
// ATSlocal_void (tmp4) ;

__ats_lab_auxerr_nil_0:
tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_d2ecl_loc) ;
/* tmp2 = */ atspre_fprint_string (arg0, ATSstrcst("(*\n")) ;
/* tmp3 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp1) ;
/* tmp4 = */ atspre_fprint_string (arg0, ATSstrcst(": error(codegen2): #codegen2()\n")) ;
/* tmp0 = */ atspre_fprint_string (arg0, ATSstrcst("*)\n")) ;
return /* (tmp0) */ ;
} /* end of [auxerr_nil_0] */

/*
// /tmp/ATS-Postiats/src/pats_codegen2.dats: 1998(line=77, offs=1) -- 2239(line=89, offs=2)
*/
ATSstaticdec()
ats_void_type
auxerr_cons_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp5) ;
ATSlocal (ats_ptr_type, tmp6) ;
// ATSlocal_void (tmp7) ;
// ATSlocal_void (tmp8) ;
// ATSlocal_void (tmp9) ;
// ATSlocal_void (tmp10) ;
// ATSlocal_void (tmp11) ;

__ats_lab_auxerr_cons_1:
tmp6 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_d2ecl_loc) ;
/* tmp7 = */ atspre_fprint_string (arg0, ATSstrcst("(*\n")) ;
/* tmp8 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__fprint_location (arg0, tmp6) ;
/* tmp9 = */ atspre_fprint_string (arg0, ATSstrcst(": error(codegen2): #codegen2(")) ;
/* tmp10 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__fprint_e1xp (arg0, arg2) ;
/* tmp11 = */ atspre_fprint_string (arg0, ATSstrcst(", ...)\n")) ;
/* tmp5 = */ atspre_fprint_string (arg0, ATSstrcst("*)\n")) ;
return /* (tmp5) */ ;
} /* end of [auxerr_cons_1] */

/*
// /tmp/ATS-Postiats/src/pats_codegen2.dats: 2319(line=95, offs=3) -- 3118(line=142, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_process (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp12) ;
ATSlocal (ats_ptr_type, tmp13) ;
ATSlocal (ats_ptr_type, tmp14) ;
ATSlocal (ats_ptr_type, tmp15) ;
ATSlocal (ats_ptr_type, tmp16) ;
ATSlocal (ats_bool_type, tmp17) ;
ATSlocal (ats_bool_type, tmp18) ;
ATSlocal (ats_bool_type, tmp19) ;
ATSlocal (ats_bool_type, tmp20) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_process:
tmp13 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_d2ecl_node) ;
if (((ats_sum_ptr_type)tmp13)->tag != 6) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_codegen2.dats: 2576(line=110, offs=5) -- 2613(line=110, offs=42)") ; }
tmp14 = ats_caselptrlab_mac(anairiats_sum_1, tmp13, atslab_1) ;
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (tmp14 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; }
__ats_lab_0_1:
tmp15 = ats_caselptrlab_mac(anairiats_sum_2, tmp14, atslab_0) ;
tmp16 = ats_caselptrlab_mac(anairiats_sum_2, tmp14, atslab_1) ;
do {
/* branch: __ats_lab_1 */
__ats_lab_1_0:
__ats_lab_1_1:
tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__datcon_test_e1xp (tmp15) ;
if (!tmp17) { goto __ats_lab_2_1 ; }
/* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_datcon (arg0, arg1, tmp16) ;
break ;

/* branch: __ats_lab_2 */
__ats_lab_2_0:
__ats_lab_2_1:
tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__datcontag_test_e1xp (tmp15) ;
if (!tmp18) { goto __ats_lab_3_1 ; }
/* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_datcontag (arg0, arg1, tmp16) ;
break ;

/* branch: __ats_lab_3 */
__ats_lab_3_0:
__ats_lab_3_1:
tmp19 = _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__fprint_test_e1xp (tmp15) ;
if (!tmp19) { goto __ats_lab_4_1 ; }
/* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_fprint (arg0, arg1, tmp16) ;
break ;

/* branch: __ats_lab_4 */
__ats_lab_4_0:
__ats_lab_4_1:
tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__absrec_test_e1xp (tmp15) ;
if (!tmp20) { goto __ats_lab_5_1 ; }
/* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_absrec (arg0, arg1, tmp16) ;
break ;

/* branch: __ats_lab_5 */
__ats_lab_5_0:
__ats_lab_5_1:
/* tmp12 = */ auxerr_cons_1 (arg0, arg1, tmp15) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_6 */
__ats_lab_6_0:
// if (tmp14 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_6_1:
/* tmp12 = */ auxerr_nil_0 (arg0, arg1) ;
break ;
} while (0) ;
return /* (tmp12) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_process] */

/*
// /tmp/ATS-Postiats/src/pats_codegen2.dats: 3305(line=158, offs=1) -- 3634(line=179, offs=2)
*/
ATSstaticdec()
ats_void_type
aux_4 (ats_ptr_type env0, ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp22) ;
ATSlocal (ats_ptr_type, tmp23) ;
ATSlocal (ats_int_type, tmp24) ;
ATSlocal (ats_bool_type, tmp25) ;
ATSlocal (ats_ptr_type, tmp26) ;
ATSlocal (ats_ptr_type, tmp27) ;

__ats_lab_aux_4:
tmp23 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg0), atslab_d2ecl_node) ;
do {
/* branch: __ats_lab_7 */
__ats_lab_7_0:
if (((ats_sum_ptr_type)tmp23)->tag != 6) { goto __ats_lab_8_0 ; }
__ats_lab_7_1:
tmp24 = ats_caselptrlab_mac(anairiats_sum_1, tmp23, atslab_0) ;
tmp25 = atspre_lte_int_int (tmp24, 2) ;
if (tmp25) {
/* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__codegen2_process (env0, arg0) ;
} else {
/* empty */
} /* end of [if] */
break ;

/* branch: __ats_lab_8 */
__ats_lab_8_0:
if (((ats_sum_ptr_type)tmp23)->tag != 1) { goto __ats_lab_9_0 ; }
__ats_lab_8_1:
tmp26 = ats_caselptrlab_mac(anairiats_sum_3, tmp23, atslab_0) ;
/* tmp22 = */ auxlst_5 (env0, tmp26) ;
break ;

/* branch: __ats_lab_9 */
__ats_lab_9_0:
if (((ats_sum_ptr_type)tmp23)->tag != 27) { goto __ats_lab_10_0 ; }
__ats_lab_9_1:
tmp27 = ats_caselptrlab_mac(anairiats_sum_4, tmp23, atslab_1) ;
/* tmp22 = */ auxlst_5 (env0, tmp27) ;
break ;

/* branch: __ats_lab_10 */
__ats_lab_10_0:
__ats_lab_10_1:
break ;
} while (0) ;
return /* (tmp22) */ ;
} /* end of [aux_4] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
} aux_4_closure_type ;

ats_void_type
aux_4_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
aux_4 (((aux_4_closure_type*)cloptr)->closure_env_0, arg0) ; return ;
} /* end of function */

ATSinline()
ats_void_type
aux_4_closure_init (aux_4_closure_type *p_clo, ats_ptr_type env0) {
p_clo->closure_fun = (ats_fun_ptr_type)&aux_4_clofun ;
p_clo->closure_env_0 = env0 ;
return ;
} /* end of function */

ats_clo_ptr_type
aux_4_closure_make (ats_ptr_type env0) {
aux_4_closure_type *p_clo = ATS_MALLOC(sizeof(aux_4_closure_type)) ;
aux_4_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_codegen2.dats: 3642(line=182, offs=1) -- 3781(line=192, offs=2)
*/
ATSstaticdec()
ats_void_type
auxlst_5 (ats_ptr_type env0, ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp28) ;
ATSlocal (ats_ptr_type, tmp29) ;
ATSlocal (ats_ptr_type, tmp30) ;
// ATSlocal_void (tmp31) ;

__ats_lab_auxlst_5:
do {
/* branch: __ats_lab_11 */
__ats_lab_11_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; }
__ats_lab_11_1:
break ;

/* branch: __ats_lab_12 */
__ats_lab_12_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_12_1:
tmp29 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ;
tmp30 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ;
/* tmp31 = */ aux_4 (env0, tmp29) ;
arg0 = tmp30 ;
goto __ats_lab_auxlst_5 ; // tail call
break ;
} while (0) ;
return /* (tmp28) */ ;
} /* end of [auxlst_5] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
} auxlst_5_closure_type ;

ats_void_type
auxlst_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
auxlst_5 (((auxlst_5_closure_type*)cloptr)->closure_env_0, arg0) ; return ;
} /* end of function */

ATSinline()
ats_void_type
auxlst_5_closure_init (auxlst_5_closure_type *p_clo, ats_ptr_type env0) {
p_clo->closure_fun = (ats_fun_ptr_type)&auxlst_5_clofun ;
p_clo->closure_env_0 = env0 ;
return ;
} /* end of function */

ats_clo_ptr_type
auxlst_5_closure_make (ats_ptr_type env0) {
auxlst_5_closure_type *p_clo = ATS_MALLOC(sizeof(auxlst_5_closure_type)) ;
auxlst_5_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_codegen2.dats: 3226(line=150, offs=3) -- 3829(line=196, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__d2eclist_codegen_out (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp21) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__d2eclist_codegen_out:
/* tmp21 = */ auxlst_5 (arg0, arg1) ;
return /* (tmp21) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__d2eclist_codegen_out] */

/* static load function */

extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__staload_flag = 1 ;

_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2esats__staload () ;

return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_codegen2_2edats__staload () ;

#ifdef _ATS_PROOFCHECK
#endif /* _ATS_PROOFCHECK */

/* marking static variables for GC */

/* marking external values for GC */

/* code for dynamic loading */
return ;
} /* end of [dynload function] */

/* external codes at mid */
/* external codes at bot */

/* ****** ****** */

/* end of [pats_codegen2_dats.c] */
