/*
**
** The C code is generated by ATS/Anairiats
** The compilation time is: 2020-11-6:  1h:51m
**
*/

/* 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/bool.cats"
#include "prelude/CATS/char.cats"
#include "prelude/CATS/byte.cats"
#include "prelude/CATS/float.cats"
#include "prelude/CATS/integer.cats"
#include "prelude/CATS/integer_ptr.cats"
#include "prelude/CATS/integer_fixed.cats"
#include "prelude/CATS/sizetype.cats"
#include "prelude/CATS/pointer.cats"
#include "prelude/CATS/reference.cats"
#include "prelude/CATS/string.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_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"
/* external codes at top */
/* type definitions */
typedef
struct {
ats_ptr_type atslab_3 ;
ats_ptr_type atslab_4 ;
} anairiats_rec_0 ;

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

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

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

typedef
struct {
ats_ptr_type atslab_sp2at_loc ;
ats_ptr_type atslab_sp2at_exp ;
ats_ptr_type atslab_sp2at_node ;
} anairiats_rec_4 ;

typedef
struct {
ats_ptr_type atslab_s2qua_svs ;
ats_ptr_type atslab_s2qua_sps ;
} anairiats_rec_5 ;

typedef
struct {
ats_ptr_type atslab_s2exp_srt ;
ats_ptr_type atslab_s2exp_node ;
} anairiats_rec_6 ;

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

typedef struct {
int tag ;
ats_ptr_type atslab_0 ;
ats_ptr_type atslab_1 ;
ats_ptr_type atslab_2 ;
} anairiats_sum_8 ;

typedef struct {
int tag ;
ats_ptr_type atslab_0 ;
ats_int_type atslab_1 ;
ats_ptr_type atslab_2 ;
ats_int_type atslab_3 ;
ats_ptr_type atslab_4 ;
ats_ptr_type atslab_5 ;
} anairiats_sum_9 ;

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

typedef struct {
int tag ;
ats_ptr_type atslab_0 ;
ats_int_type atslab_1 ;
ats_ptr_type atslab_2 ;
} anairiats_sum_11 ;

typedef struct {
anairiats_rec_5 atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_12 ;

typedef struct {
int tag ;
ats_uint_type atslab_0 ;
} anairiats_sum_13 ;

typedef
struct {
ats_ptr_type atslab_s2exparg_loc ;
ats_ptr_type atslab_s2exparg_node ;
} anairiats_rec_14 ;

typedef
struct {
ats_ptr_type atslab_t2mpmarg_loc ;
ats_ptr_type atslab_t2mpmarg_arg ;
} anairiats_rec_15 ;

typedef
struct {
ats_ptr_type atslab_s2tavar_loc ;
ats_ptr_type atslab_s2tavar_var ;
} anairiats_rec_16 ;

typedef
struct {
ats_ptr_type atslab_s2aspdec_loc ;
ats_ptr_type atslab_s2aspdec_cst ;
ats_ptr_type atslab_s2aspdec_def ;
} anairiats_rec_17 ;

/* 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, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOfun_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTfun_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_lin_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt0_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt1_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt_ext_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFset_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFexp_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EFFadd_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eint_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eintinf_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efloat_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Estring_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextype_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextkind_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EVar_8) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ehole_9) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatcontyp_10) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatconptr_11) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Esizeof_13) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeff_14) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeqeq_15) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eproj_16) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Elam_18) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetdec_21) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etop_22) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewithout_23) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyarr_24) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Einvar_26) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evararg_30) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eerrexp_32) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Tcon_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Terr_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGone_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGall_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGseq_2) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ;
ATSextern_fun(ats_int_type, atspre_int_of_char) (ats_char_type) ;
ATSextern_fun(ats_int_type, atspre_int_of_uchar) (ats_uchar_type) ;
ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ;
ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__eq_stamp_stamp) (ats_int_type, ats_int_type) ;
ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all) ;
ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil) (ats_uint_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isall) (ats_uint_type) ;
ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_union) (ats_uint_type, ats_uint_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_float) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_string) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_eff) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_fun) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err) () ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_srt) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_get_srt) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int) (ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lamlst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top_srt) (ats_ptr_type, ats_int_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_unis) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp) (ats_ptr_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset) (ats_uint_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;

/* external dynamic terminating constant declarations */
#ifdef _ATS_PROOFCHECK
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
#endif /* _ATS_PROOFCHECK */

/* assuming abstract types */
/* sum constructor declarations */
/* exn constructor declarations */
/* global dynamic (non-functional) constant declarations */
ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil) ;
ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all) ;

/* internal function declarations */
static
ats_void_type loop_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type aux_70 (ats_ptr_type arg0) ;

/* partial value template declarations */
/* static temporary variable declarations */
ATSstatic (ats_ptr_type, statmp217) ;
ATSstatic (ats_ptr_type, statmp218) ;

/* external value variable declarations */

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 1985(line=80, offs=17) -- 2043(line=81, offs=51)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_box (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp0) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_box:
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_1_0 ; }
__ats_lab_0_1:
tmp0 = ats_true_bool ;
break ;

/* branch: __ats_lab_1 */
__ats_lab_1_0:
__ats_lab_1_1:
tmp0 = ats_false_bool ;
break ;
} while (0) ;
return (tmp0) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_box] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 2103(line=85, offs=20) -- 2165(line=86, offs=55)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxlin (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp1) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxlin:
do {
/* branch: __ats_lab_2 */
__ats_lab_2_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_3_0 ; }
__ats_lab_2_1:
tmp1 = ats_true_bool ;
break ;

/* branch: __ats_lab_3 */
__ats_lab_3_0:
__ats_lab_3_1:
tmp1 = ats_false_bool ;
break ;
} while (0) ;
return (tmp1) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxlin] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 2227(line=90, offs=19) -- 2319(line=94, offs=67)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp2) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed:
do {
/* branch: __ats_lab_4 */
__ats_lab_4_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_5_0 ; }
__ats_lab_4_1:
tmp2 = ats_true_bool ;
break ;

/* branch: __ats_lab_5 */
__ats_lab_5_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_6_0 ; }
__ats_lab_5_1:
tmp2 = ats_true_bool ;
break ;

/* branch: __ats_lab_6 */
__ats_lab_6_0:
__ats_lab_6_1:
tmp2 = ats_false_bool ;
break ;
} while (0) ;
return (tmp2) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 2409(line=101, offs=19) -- 2558(line=108, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_flted (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp3) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_flted:
do {
/* branch: __ats_lab_7 */
__ats_lab_7_0:
if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_8_0 ; }
__ats_lab_7_1:
tmp3 = ats_true_bool ;
break ;

/* branch: __ats_lab_8 */
__ats_lab_8_0:
if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_9_0 ; }
__ats_lab_8_1:
tmp3 = ats_true_bool ;
break ;

/* branch: __ats_lab_9 */
__ats_lab_9_0:
if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_10_0 ; }
__ats_lab_9_1:
tmp3 = ats_true_bool ;
break ;

/* branch: __ats_lab_10 */
__ats_lab_10_0:
__ats_lab_10_1:
tmp3 = ats_false_bool ;
break ;
} while (0) ;
return (tmp3) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_flted] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 2618(line=111, offs=20) -- 2682(line=113, offs=55)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_fltext (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp4) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_fltext:
do {
/* branch: __ats_lab_11 */
__ats_lab_11_0:
if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_12_0 ; }
__ats_lab_11_1:
tmp4 = ats_true_bool ;
break ;

/* branch: __ats_lab_12 */
__ats_lab_12_0:
__ats_lab_12_1:
tmp4 = ats_false_bool ;
break ;
} while (0) ;
return (tmp4) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_fltext] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 2773(line=119, offs=22) -- 2943(line=127, offs=34)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_nameless (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp5) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_nameless:
do {
/* branch: __ats_lab_13 */
__ats_lab_13_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_14_0 ; }
__ats_lab_13_1:
tmp5 = ats_true_bool ;
break ;

/* branch: __ats_lab_14 */
__ats_lab_14_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_15_0 ; }
__ats_lab_14_1:
tmp5 = ats_true_bool ;
break ;

/* branch: __ats_lab_15 */
__ats_lab_15_0:
if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_16_0 ; }
__ats_lab_15_1:
tmp5 = ats_true_bool ;
break ;

/* branch: __ats_lab_16 */
__ats_lab_16_0:
if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_17_0 ; }
__ats_lab_16_1:
tmp5 = ats_false_bool ;
break ;

/* branch: __ats_lab_17 */
__ats_lab_17_0:
// if (((ats_sum_ptr_type)arg0)->tag != 4) { ats_deadcode_failure_handle () ; }
__ats_lab_17_1:
tmp5 = ats_false_bool ;
break ;
} while (0) ;
return (tmp5) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_nameless] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 3043(line=135, offs=3) -- 3430(line=154, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp6) ;
ATSlocal (ats_int_type, tmp7) ;
ATSlocal (ats_int_type, tmp8) ;
ATSlocal (ats_ptr_type, tmp9) ;
ATSlocal (ats_ptr_type, tmp10) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind:
do {
/* branch: __ats_lab_18 */
__ats_lab_18_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_19_0 ; }
__ats_lab_18_1:
if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_23_1 ; }
__ats_lab_18_2:
tmp6 = ats_true_bool ;
break ;

/* branch: __ats_lab_19 */
__ats_lab_19_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_20_0 ; }
__ats_lab_19_1:
if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_23_1 ; }
__ats_lab_19_2:
tmp6 = ats_true_bool ;
break ;

/* branch: __ats_lab_20 */
__ats_lab_20_0:
if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_21_0 ; }
__ats_lab_20_1:
if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_23_1 ; }
__ats_lab_20_2:
tmp6 = ats_true_bool ;
break ;

/* branch: __ats_lab_21 */
__ats_lab_21_0:
if (((ats_sum_ptr_type)arg0)->tag != 3) { goto __ats_lab_22_0 ; }
__ats_lab_21_1:
if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_23_1 ; }
__ats_lab_21_2:
tmp7 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ;
tmp8 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ;
tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__eq_stamp_stamp (tmp7, tmp8) ;
break ;

/* branch: __ats_lab_22 */
__ats_lab_22_0:
if (((ats_sum_ptr_type)arg0)->tag != 4) { goto __ats_lab_23_0 ; }
__ats_lab_22_1:
if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_23_1 ; }
__ats_lab_22_2:
tmp9 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ;
tmp10 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ;
tmp6 = atspre_eq_string_string (tmp9, tmp10) ;
break ;

/* branch: __ats_lab_23 */
__ats_lab_23_0:
__ats_lab_23_1:
__ats_lab_23_2:
tmp6 = ats_false_bool ;
break ;
} while (0) ;
return (tmp6) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 3503(line=158, offs=3) -- 3561(line=160, offs=42)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_tyreckind_tyreckind (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp11) ;
ATSlocal (ats_bool_type, tmp12) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_tyreckind_tyreckind:
tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_tyreckind_tyreckind (arg0, arg1) ;
tmp11 = atspre_neg_bool (tmp12) ;
return (tmp11) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_tyreckind_tyreckind] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp17) ;
ATSlocal (ats_ptr_type, tmp18) ;
ATSlocal (ats_ptr_type, tmp19) ;
ATSlocal (ats_ptr_type, tmp20) ;
ATSlocal (ats_ptr_type, tmp21) ;
ATSlocal (ats_ptr_type, tmp22) ;
ATSlocal (ats_ptr_type, tmp23) ;

__ats_lab_loop_11:
do {
/* branch: __ats_lab_24 */
__ats_lab_24_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; }
__ats_lab_24_1:
tmp18 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp19 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp20 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp18, arg3) ;
tmp21 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp21, atslab_0, tmp20) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp21 ;
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp22 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
arg0 = tmp19 ;
arg1 = arg1 ;
arg2 = tmp22 ;
arg3 = arg3 ;
goto __ats_lab_loop_11 ; // tail call
break ;

/* branch: __ats_lab_25 */
__ats_lab_25_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_25_1:
tmp23 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp23 ;
break ;
} while (0) ;
return /* (tmp17) */ ;
} /* end of [loop_11] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp16) ;
ATSlocal (ats_ptr_type, tmp24) ;
// ATSlocal_void (tmp25) ;

__ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type:
/* ats_ptr_type tmp24 ; */
/* tmp25 = */ loop_11 (arg0, arg1, (&tmp24), arg2) ;
tmp16 = tmp24 ;
return (tmp16) ;
} /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2)
*/
ATSstaticdec()
ats_ptr_type
list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp15) ;

__ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type:
tmp15 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ;
return (tmp15) ;
} /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 3645(line=167, offs=3) -- 3846(line=178, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_con (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp13) ;
ATSlocal (ats_ptr_type, tmp14) ;
ATSlocal (ats_ptr_type, tmp26) ;
ATSlocal (ats_ptr_type, tmp27) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_con:
tmp14 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) ;
tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (arg1, ats_castfn_mac(ats_ptr_type, tmp14)) ;
tmp27 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp27, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_3, tmp27, atslab_1, arg2) ;
tmp13 = ATS_MALLOC(sizeof(anairiats_rec_4)) ;
ats_selptrset_mac(anairiats_rec_4, tmp13, atslab_sp2at_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_4, tmp13, atslab_sp2at_exp, tmp26) ;
ats_selptrset_mac(anairiats_rec_4, tmp13, atslab_sp2at_node, tmp27) ;

return (tmp13) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_con] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 3890(line=181, offs=11) -- 4039(line=187, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_err (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp28) ;
ATSlocal (ats_ptr_type, tmp29) ;
ATSlocal (ats_ptr_type, tmp30) ;
ATSlocal (ats_ptr_type, tmp31) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_err:
tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ;
tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp29) ;
tmp31 = (ats_sum_ptr_type)0 ;
tmp28 = ATS_MALLOC(sizeof(anairiats_rec_4)) ;
ats_selptrset_mac(anairiats_rec_4, tmp28, atslab_sp2at_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_4, tmp28, atslab_sp2at_exp, tmp30) ;
ats_selptrset_mac(anairiats_rec_4, tmp28, atslab_sp2at_node, tmp31) ;

return (tmp28) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_err] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 4107(line=193, offs=3) -- 4157(line=195, offs=2)
*/
ATSglobaldec()
anairiats_rec_5
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (anairiats_rec_5, tmp32) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make:
tmp32.atslab_s2qua_svs = arg0 ;
tmp32.atslab_s2qua_sps = arg1 ;

return (tmp32) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 4349(line=207, offs=11) -- 4409(line=209, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (ats_int_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp33) ;
ATSlocal (ats_ptr_type, tmp34) ;
ATSlocal (ats_ptr_type, tmp35) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int:
tmp35 = ATS_MALLOC(sizeof(anairiats_sum_1)) ;
((ats_sum_ptr_type)tmp35)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_1, tmp35, atslab_0, arg0) ;
tmp34 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp34, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ;
ats_selptrset_mac(anairiats_rec_6, tmp34, atslab_s2exp_node, tmp35) ;

tmp33 = ats_castfn_mac(ats_ptr_type, tmp34) ;
return (tmp33) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 4455(line=211, offs=14) -- 4518(line=213, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp36) ;
ATSlocal (ats_ptr_type, tmp37) ;
ATSlocal (ats_ptr_type, tmp38) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf:
tmp38 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp38)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_2, tmp38, atslab_0, arg0) ;
tmp37 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp37, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ;
ats_selptrset_mac(anairiats_rec_6, tmp37, atslab_s2exp_node, tmp38) ;

tmp36 = ats_castfn_mac(ats_ptr_type, tmp37) ;
return (tmp36) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 4569(line=215, offs=16) -- 4599(line=215, offs=46)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char (ats_char_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp39) ;
ATSlocal (ats_int_type, tmp40) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char:
tmp40 = atspre_int_of_char (arg0) ;
tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (tmp40) ;
return (tmp39) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 4628(line=217, offs=17) -- 4659(line=217, offs=48)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_uchar (ats_uchar_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp41) ;
ATSlocal (ats_int_type, tmp42) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_uchar:
tmp42 = atspre_int_of_uchar (arg0) ;
tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (tmp42) ;
return (tmp41) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_uchar] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 4708(line=223, offs=3) -- 4775(line=225, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_float (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp43) ;
ATSlocal (ats_ptr_type, tmp44) ;
ATSlocal (ats_ptr_type, tmp45) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_float:
tmp45 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp45)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_2, tmp45, atslab_0, arg0) ;
tmp44 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp44, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_float) ;
ats_selptrset_mac(anairiats_rec_6, tmp44, atslab_s2exp_node, tmp45) ;

tmp43 = ats_castfn_mac(ats_ptr_type, tmp44) ;
return (tmp43) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_float] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 4850(line=231, offs=3) -- 4919(line=233, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_string (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp46) ;
ATSlocal (ats_ptr_type, tmp47) ;
ATSlocal (ats_ptr_type, tmp48) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_string:
tmp48 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp48)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_2, tmp48, atslab_0, arg0) ;
tmp47 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp47, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_string) ;
ats_selptrset_mac(anairiats_rec_6, tmp47, atslab_s2exp_node, tmp48) ;

tmp46 = ats_castfn_mac(ats_ptr_type, tmp47) ;
return (tmp46) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_string] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 4990(line=238, offs=11) -- 5092(line=242, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp49) ;
ATSlocal (ats_ptr_type, tmp50) ;
ATSlocal (ats_ptr_type, tmp51) ;
ATSlocal (ats_ptr_type, tmp52) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst:
tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (arg0) ;
tmp52 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp52)->tag = 4 ;
ats_selptrset_mac(anairiats_sum_2, tmp52, atslab_0, arg0) ;
tmp51 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp51, atslab_s2exp_srt, tmp50) ;
ats_selptrset_mac(anairiats_rec_6, tmp51, atslab_s2exp_node, tmp52) ;

tmp49 = ats_castfn_mac(ats_ptr_type, tmp51) ;
return (tmp49) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 5136(line=245, offs=11) -- 5238(line=249, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp53) ;
ATSlocal (ats_ptr_type, tmp54) ;
ATSlocal (ats_ptr_type, tmp55) ;
ATSlocal (ats_ptr_type, tmp56) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var:
tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (arg0) ;
tmp56 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp56)->tag = 7 ;
ats_selptrset_mac(anairiats_sum_2, tmp56, atslab_0, arg0) ;
tmp55 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp55, atslab_s2exp_srt, tmp54) ;
ats_selptrset_mac(anairiats_rec_6, tmp55, atslab_s2exp_node, tmp56) ;

tmp53 = ats_castfn_mac(ats_ptr_type, tmp55) ;
return (tmp53) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 5335(line=256, offs=2) -- 5399(line=258, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var_srt (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp57) ;
ATSlocal (ats_ptr_type, tmp58) ;
ATSlocal (ats_ptr_type, tmp59) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var_srt:
tmp59 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp59)->tag = 7 ;
ats_selptrset_mac(anairiats_sum_2, tmp59, atslab_0, arg1) ;
tmp58 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp58, atslab_s2exp_srt, arg0) ;
ats_selptrset_mac(anairiats_rec_6, tmp58, atslab_s2exp_node, tmp59) ;

tmp57 = ats_castfn_mac(ats_ptr_type, tmp58) ;
return (tmp57) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var_srt] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 5447(line=261, offs=11) -- 5569(line=265, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_Var (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp60) ;
ATSlocal (ats_ptr_type, tmp61) ;
ATSlocal (ats_ptr_type, tmp62) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_Var:
tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_srt (arg0) ;
tmp62 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp62)->tag = 8 ;
ats_selptrset_mac(anairiats_sum_2, tmp62, atslab_0, arg0) ;
tmp60 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp60, atslab_s2exp_srt, tmp61) ;
ats_selptrset_mac(anairiats_rec_6, tmp60, atslab_s2exp_node, tmp62) ;

return (tmp60) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_Var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 5614(line=268, offs=12) -- 5718(line=272, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_hole (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp63) ;
ATSlocal (ats_ptr_type, tmp64) ;
ATSlocal (ats_ptr_type, tmp65) ;
ATSlocal (ats_ptr_type, tmp66) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_hole:
tmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2hole_get_srt (arg0) ;
tmp66 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp66)->tag = 9 ;
ats_selptrset_mac(anairiats_sum_2, tmp66, atslab_0, arg0) ;
tmp65 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp65, atslab_s2exp_srt, tmp64) ;
ats_selptrset_mac(anairiats_rec_6, tmp65, atslab_s2exp_node, tmp66) ;

tmp63 = ats_castfn_mac(ats_ptr_type, tmp65) ;
return (tmp63) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_hole] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 5795(line=278, offs=3) -- 5878(line=280, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extype_srt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp67) ;
ATSlocal (ats_ptr_type, tmp68) ;
ATSlocal (ats_ptr_type, tmp69) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extype_srt:
tmp69 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp69)->tag = 5 ;
ats_selptrset_mac(anairiats_sum_7, tmp69, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_7, tmp69, atslab_1, arg2) ;
tmp68 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp68, atslab_s2exp_srt, arg0) ;
ats_selptrset_mac(anairiats_rec_6, tmp68, atslab_s2exp_node, tmp69) ;

tmp67 = ats_castfn_mac(ats_ptr_type, tmp68) ;
return (tmp67) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extype_srt] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 5939(line=284, offs=3) -- 6023(line=286, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extkind_srt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp70) ;
ATSlocal (ats_ptr_type, tmp71) ;
ATSlocal (ats_ptr_type, tmp72) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extkind_srt:
tmp72 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp72)->tag = 6 ;
ats_selptrset_mac(anairiats_sum_7, tmp72, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_7, tmp72, atslab_1, arg2) ;
tmp71 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp71, atslab_s2exp_srt, arg0) ;
ats_selptrset_mac(anairiats_rec_6, tmp71, atslab_s2exp_node, tmp72) ;

tmp70 = ats_castfn_mac(ats_ptr_type, tmp71) ;
return (tmp70) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extkind_srt] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 6097(line=292, offs=3) -- 6175(line=294, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp73) ;
ATSlocal (ats_ptr_type, tmp74) ;
ATSlocal (ats_ptr_type, tmp75) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at:
tmp75 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp75)->tag = 12 ;
ats_selptrset_mac(anairiats_sum_7, tmp75, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_7, tmp75, atslab_1, arg1) ;
tmp74 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp74, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ;
ats_selptrset_mac(anairiats_rec_6, tmp74, atslab_s2exp_node, tmp75) ;

tmp73 = ats_castfn_mac(ats_ptr_type, tmp74) ;
return (tmp73) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 6221(line=297, offs=14) -- 6288(line=299, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_sizeof (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp76) ;
ATSlocal (ats_ptr_type, tmp77) ;
ATSlocal (ats_ptr_type, tmp78) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_sizeof:
tmp78 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp78)->tag = 13 ;
ats_selptrset_mac(anairiats_sum_2, tmp78, atslab_0, arg0) ;
tmp77 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp77, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ;
ats_selptrset_mac(anairiats_rec_6, tmp77, atslab_s2exp_node, tmp78) ;

tmp76 = ats_castfn_mac(ats_ptr_type, tmp77) ;
return (tmp76) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_sizeof] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 6358(line=305, offs=3) -- 6424(line=307, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eff (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp79) ;
ATSlocal (ats_ptr_type, tmp80) ;
ATSlocal (ats_ptr_type, tmp81) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eff:
tmp81 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp81)->tag = 14 ;
ats_selptrset_mac(anairiats_sum_2, tmp81, atslab_0, arg0) ;
tmp80 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp80, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_eff) ;
ats_selptrset_mac(anairiats_rec_6, tmp80, atslab_s2exp_node, tmp81) ;

tmp79 = ats_castfn_mac(ats_ptr_type, tmp80) ;
return (tmp79) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eff] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 6472(line=311, offs=3) -- 6552(line=313, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eqeq (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp82) ;
ATSlocal (ats_ptr_type, tmp83) ;
ATSlocal (ats_ptr_type, tmp84) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eqeq:
tmp84 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp84)->tag = 15 ;
ats_selptrset_mac(anairiats_sum_7, tmp84, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_7, tmp84, atslab_1, arg1) ;
tmp83 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp83, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ;
ats_selptrset_mac(anairiats_rec_6, tmp83, atslab_s2exp_node, tmp84) ;

tmp82 = ats_castfn_mac(ats_ptr_type, tmp83) ;
return (tmp82) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eqeq] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 6600(line=317, offs=3) -- 6783(line=322, offs=24)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_proj (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp85) ;
ATSlocal (ats_ptr_type, tmp86) ;
ATSlocal (ats_ptr_type, tmp87) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_proj:
do {
/* branch: __ats_lab_26 */
__ats_lab_26_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; }
__ats_lab_26_1:
tmp87 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp87)->tag = 16 ;
ats_selptrset_mac(anairiats_sum_8, tmp87, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_8, tmp87, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_8, tmp87, atslab_2, arg2) ;
tmp86 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp86, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ;
ats_selptrset_mac(anairiats_rec_6, tmp86, atslab_s2exp_node, tmp87) ;

tmp85 = ats_castfn_mac(ats_ptr_type, tmp86) ;
break ;

/* branch: __ats_lab_27 */
__ats_lab_27_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_27_1:
tmp85 = arg0 ;
break ;
} while (0) ;
return (tmp85) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_proj] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 6857(line=329, offs=3) -- 6931(line=331, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp88) ;
ATSlocal (ats_ptr_type, tmp89) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt:
tmp89 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp89)->tag = 17 ;
ats_selptrset_mac(anairiats_sum_7, tmp89, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_7, tmp89, atslab_1, arg2) ;
tmp88 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp88, atslab_s2exp_srt, arg0) ;
ats_selptrset_mac(anairiats_rec_6, tmp88, atslab_s2exp_node, tmp89) ;

return (tmp88) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 7002(line=337, offs=3) -- 7177(line=342, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp90) ;
ATSlocal (ats_ptr_type, tmp91) ;
ATSlocal (ats_ptr_type, tmp92) ;
ATSlocal (ats_ptr_type, tmp93) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam:
tmp91 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) ;
tmp93 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_s2exp_srt) ;
tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_fun (ats_castfn_mac(ats_ptr_type, tmp91), tmp93) ;
tmp90 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt (tmp92, arg0, arg1) ;
return (tmp90) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 7227(line=346, offs=3) -- 7325(line=348, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp94) ;
ATSlocal (ats_ptr_type, tmp95) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt:
tmp95 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp95)->tag = 18 ;
ats_selptrset_mac(anairiats_sum_7, tmp95, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_7, tmp95, atslab_1, arg2) ;
tmp94 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp94, atslab_s2exp_srt, arg0) ;
ats_selptrset_mac(anairiats_rec_6, tmp94, atslab_s2exp_node, tmp95) ;

return (tmp94) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 7397(line=353, offs=14) -- 7544(line=360, offs=53)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lamlst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp96) ;
ATSlocal (ats_ptr_type, tmp97) ;
ATSlocal (ats_ptr_type, tmp98) ;
ATSlocal (ats_ptr_type, tmp99) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lamlst:
do {
/* branch: __ats_lab_28 */
__ats_lab_28_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; }
__ats_lab_28_1:
tmp96 = arg1 ;
break ;

/* branch: __ats_lab_29 */
__ats_lab_29_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_29_1:
tmp97 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp98 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lamlst (tmp98, arg1) ;
tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam (tmp97, tmp99) ;
break ;
} while (0) ;
return (tmp96) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lamlst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 7645(line=367, offs=15) -- 7767(line=371, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp100) ;
ATSlocal (ats_ptr_type, tmp101) ;
ATSlocal (ats_ptr_type, tmp102) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt:
tmp102 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp102)->tag = 19 ;
ats_selptrset_mac(anairiats_sum_9, tmp102, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_9, tmp102, atslab_1, arg2) ;
ats_selptrset_mac(anairiats_sum_9, tmp102, atslab_2, arg3) ;
ats_selptrset_mac(anairiats_sum_9, tmp102, atslab_3, arg4) ;
ats_selptrset_mac(anairiats_sum_9, tmp102, atslab_4, arg5) ;
ats_selptrset_mac(anairiats_sum_9, tmp102, atslab_5, arg6) ;
tmp101 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp101, atslab_s2exp_srt, arg0) ;
ats_selptrset_mac(anairiats_rec_6, tmp101, atslab_s2exp_node, tmp102) ;

tmp100 = ats_castfn_mac(ats_ptr_type, tmp101) ;
return (tmp100) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 7818(line=374, offs=14) -- 7967(line=381, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metfun (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp103) ;
ATSlocal (ats_ptr_type, tmp104) ;
ATSlocal (ats_ptr_type, tmp105) ;
ATSlocal (ats_ptr_type, tmp106) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metfun:
tmp104 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_s2exp_srt) ;
tmp106 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp106)->tag = 20 ;
ats_selptrset_mac(anairiats_sum_8, tmp106, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_8, tmp106, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_8, tmp106, atslab_2, arg2) ;
tmp105 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp105, atslab_s2exp_srt, tmp104) ;
ats_selptrset_mac(anairiats_rec_6, tmp105, atslab_s2exp_node, tmp106) ;

tmp103 = ats_castfn_mac(ats_ptr_type, tmp105) ;
return (tmp103) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metfun] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 8038(line=386, offs=14) -- 8128(line=390, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metdec (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp107) ;
ATSlocal (ats_ptr_type, tmp108) ;
ATSlocal (ats_ptr_type, tmp109) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metdec:
tmp109 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp109)->tag = 21 ;
ats_selptrset_mac(anairiats_sum_7, tmp109, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_7, tmp109, atslab_1, arg1) ;
tmp108 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp108, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ;
ats_selptrset_mac(anairiats_rec_6, tmp108, atslab_s2exp_node, tmp109) ;

tmp107 = ats_castfn_mac(ats_ptr_type, tmp108) ;
return (tmp107) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metdec] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 8201(line=396, offs=3) -- 8402(line=402, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp110) ;
ATSlocal (ats_ptr_type, tmp111) ;
ATSlocal (ats_ptr_type, tmp112) ;
ATSlocal (ats_ptr_type, tmp113) ;
ATSlocal (ats_ptr_type, tmp114) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp:
tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (arg0) ;
tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (arg0) ;
if (((ats_sum_ptr_type)tmp111)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_staexp2.dats: 8307(line=399, offs=7) -- 8344(line=399, offs=44)") ; }
tmp113 = ats_caselptrlab_mac(anairiats_sum_7, tmp111, atslab_1) ;
tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt (tmp113, tmp112, arg1) ;
tmp110 = ats_castfn_mac(ats_ptr_type, tmp114) ;
return (tmp110) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cstapp] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 8452(line=405, offs=14) -- 8622(line=412, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_confun (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp115) ;
ATSlocal (ats_ptr_type, tmp116) ;
ATSlocal (ats_ptr_type, tmp117) ;
ATSlocal (ats_ptr_type, tmp118) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_confun:
tmp118 = (ats_sum_ptr_type)0 ;
tmp117 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp117)->tag = 19 ;
ats_selptrset_mac(anairiats_sum_9, tmp117, atslab_0, tmp118) ;
ats_selptrset_mac(anairiats_sum_9, tmp117, atslab_1, 0) ;
ats_selptrset_mac(anairiats_sum_9, tmp117, atslab_2, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil) ;
ats_selptrset_mac(anairiats_sum_9, tmp117, atslab_3, arg0) ;
ats_selptrset_mac(anairiats_sum_9, tmp117, atslab_4, arg1) ;
ats_selptrset_mac(anairiats_sum_9, tmp117, atslab_5, arg2) ;
tmp116 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp116, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type) ;
ats_selptrset_mac(anairiats_rec_6, tmp116, atslab_s2exp_node, tmp117) ;

tmp115 = ats_castfn_mac(ats_ptr_type, tmp116) ;
return (tmp115) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_confun] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 8701(line=418, offs=3) -- 8927(line=425, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datcontyp (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp119) ;
ATSlocal (ats_int_type, tmp120) ;
ATSlocal (ats_ptr_type, tmp121) ;
ATSlocal (ats_bool_type, tmp122) ;
ATSlocal (ats_ptr_type, tmp123) ;
ATSlocal (ats_ptr_type, tmp124) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datcontyp:
tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real (arg0) ;
tmp122 = atspre_gt_int_int (tmp120, 0) ;
if (tmp122) {
tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype ;
} else {
tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type ;
} /* end of [if] */
tmp124 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp124)->tag = 10 ;
ats_selptrset_mac(anairiats_sum_7, tmp124, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_7, tmp124, atslab_1, arg1) ;
tmp123 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp123, atslab_s2exp_srt, tmp121) ;
ats_selptrset_mac(anairiats_rec_6, tmp123, atslab_s2exp_node, tmp124) ;

tmp119 = ats_castfn_mac(ats_ptr_type, tmp123) ;
return (tmp119) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datcontyp] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 8985(line=429, offs=3) -- 9219(line=436, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datconptr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp125) ;
ATSlocal (ats_int_type, tmp126) ;
ATSlocal (ats_ptr_type, tmp127) ;
ATSlocal (ats_bool_type, tmp128) ;
ATSlocal (ats_ptr_type, tmp129) ;
ATSlocal (ats_ptr_type, tmp130) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datconptr:
tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_real (arg0) ;
tmp128 = atspre_gt_int_int (tmp126, 0) ;
if (tmp128) {
tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype ;
} else {
tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type ;
} /* end of [if] */
tmp130 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp130)->tag = 11 ;
ats_selptrset_mac(anairiats_sum_8, tmp130, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_8, tmp130, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_8, tmp130, atslab_2, arg2) ;
tmp129 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp129, atslab_s2exp_srt, tmp127) ;
ats_selptrset_mac(anairiats_rec_6, tmp129, atslab_s2exp_node, tmp130) ;

tmp125 = ats_castfn_mac(ats_ptr_type, tmp129) ;
return (tmp125) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datconptr] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 9292(line=442, offs=3) -- 9538(line=453, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top (ats_int_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp131) ;
ATSlocal (ats_ptr_type, tmp132) ;
ATSlocal (ats_ptr_type, tmp133) ;
ATSlocal (ats_bool_type, tmp134) ;
ATSlocal (ats_bool_type, tmp135) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top:
tmp132 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_s2exp_srt) ;
tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf (tmp132) ;
if (tmp134) {
tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop ;
} else {
tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed (tmp132) ;
if (tmp135) {
tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type ;
} else {
tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype ;
} /* end of [if] */
} /* end of [if] */
tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top_srt (tmp133, arg0, arg1) ;
return (tmp131) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 9588(line=457, offs=3) -- 9658(line=459, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top_srt (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp136) ;
ATSlocal (ats_ptr_type, tmp137) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top_srt:
tmp137 = ATS_MALLOC(sizeof(anairiats_sum_10)) ;
((ats_sum_ptr_type)tmp137)->tag = 22 ;
ats_selptrset_mac(anairiats_sum_10, tmp137, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_10, tmp137, atslab_1, arg2) ;
tmp136 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp136, atslab_s2exp_srt, arg0) ;
ats_selptrset_mac(anairiats_rec_6, tmp136, atslab_s2exp_node, tmp137) ;

return (tmp136) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top_srt] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 9713(line=462, offs=15) -- 9779(line=464, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_without (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp138) ;
ATSlocal (ats_ptr_type, tmp139) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_without:
tmp139 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp139)->tag = 23 ;
ats_selptrset_mac(anairiats_sum_2, tmp139, atslab_0, arg0) ;
tmp138 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp138, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ;
ats_selptrset_mac(anairiats_rec_6, tmp138, atslab_s2exp_node, tmp139) ;

return (tmp138) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_without] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 9855(line=470, offs=3) -- 10022(line=476, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp140) ;
ATSlocal (ats_ptr_type, tmp141) ;
ATSlocal (ats_bool_type, tmp142) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr:
tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (arg0) ;
if (tmp142) {
tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype ;
} else {
tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype ;
} /* end of [if] */
tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr_srt (tmp141, arg0, arg1) ;
return (tmp140) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 10076(line=480, offs=3) -- 10159(line=482, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr_srt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp143) ;
ATSlocal (ats_ptr_type, tmp144) ;
ATSlocal (ats_ptr_type, tmp145) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr_srt:
tmp145 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp145)->tag = 24 ;
ats_selptrset_mac(anairiats_sum_7, tmp145, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_7, tmp145, atslab_1, arg2) ;
tmp144 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp144, atslab_s2exp_srt, arg0) ;
ats_selptrset_mac(anairiats_rec_6, tmp144, atslab_s2exp_node, tmp145) ;

tmp143 = ats_castfn_mac(ats_ptr_type, tmp144) ;
return (tmp143) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr_srt] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 10238(line=488, offs=3) -- 10328(line=490, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp146) ;
ATSlocal (ats_ptr_type, tmp147) ;
ATSlocal (ats_ptr_type, tmp148) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt:
tmp148 = ATS_MALLOC(sizeof(anairiats_sum_11)) ;
((ats_sum_ptr_type)tmp148)->tag = 25 ;
ats_selptrset_mac(anairiats_sum_11, tmp148, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_11, tmp148, atslab_1, arg2) ;
ats_selptrset_mac(anairiats_sum_11, tmp148, atslab_2, arg3) ;
tmp147 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp147, atslab_s2exp_srt, arg0) ;
ats_selptrset_mac(anairiats_rec_6, tmp147, atslab_s2exp_node, tmp148) ;

tmp146 = ats_castfn_mac(ats_ptr_type, tmp147) ;
return (tmp146) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 10401(line=495, offs=13) -- 10472(line=497, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_invar (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp149) ;
ATSlocal (ats_ptr_type, tmp150) ;
ATSlocal (ats_ptr_type, tmp151) ;
ATSlocal (ats_ptr_type, tmp152) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_invar:
tmp151 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_srt) ;
tmp152 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp152)->tag = 26 ;
ats_selptrset_mac(anairiats_sum_2, tmp152, atslab_0, arg0) ;
tmp150 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp150, atslab_s2exp_srt, tmp151) ;
ats_selptrset_mac(anairiats_rec_6, tmp150, atslab_s2exp_node, tmp152) ;

tmp149 = ats_castfn_mac(ats_ptr_type, tmp150) ;
return (tmp149) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_invar] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 10542(line=502, offs=14) -- 10626(line=504, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refarg (ats_int_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp153) ;
ATSlocal (ats_ptr_type, tmp154) ;
ATSlocal (ats_ptr_type, tmp155) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refarg:
tmp154 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_s2exp_srt) ;
tmp155 = ATS_MALLOC(sizeof(anairiats_sum_10)) ;
((ats_sum_ptr_type)tmp155)->tag = 29 ;
ats_selptrset_mac(anairiats_sum_10, tmp155, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_10, tmp155, atslab_1, arg1) ;
tmp153 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp153, atslab_s2exp_srt, tmp154) ;
ats_selptrset_mac(anairiats_rec_6, tmp153, atslab_s2exp_node, tmp155) ;

return (tmp153) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refarg] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 10676(line=507, offs=14) -- 10745(line=509, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_vararg (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp156) ;
ATSlocal (ats_ptr_type, tmp157) ;
ATSlocal (ats_ptr_type, tmp158) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_vararg:
tmp158 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp158)->tag = 30 ;
ats_selptrset_mac(anairiats_sum_2, tmp158, atslab_0, arg0) ;
tmp157 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp157, atslab_s2exp_srt, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ;
ats_selptrset_mac(anairiats_rec_6, tmp157, atslab_s2exp_node, tmp158) ;

tmp156 = ats_castfn_mac(ats_ptr_type, tmp157) ;
return (tmp156) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_vararg] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 10813(line=514, offs=11) -- 10992(line=520, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp159) ;
ATSlocal (ats_ptr_type, tmp160) ;
ATSlocal (ats_ptr_type, tmp161) ;
ATSlocal (ats_ptr_type, tmp162) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi:
do {
/* branch: __ats_lab_30 */
__ats_lab_30_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; }
__ats_lab_30_1:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_31_1 ; }
__ats_lab_30_2:
tmp159 = arg2 ;
break ;

/* branch: __ats_lab_31 */
__ats_lab_31_0:
__ats_lab_31_1:
__ats_lab_31_2:
tmp161 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_s2exp_srt) ;
tmp162 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp162)->tag = 27 ;
ats_selptrset_mac(anairiats_sum_8, tmp162, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_8, tmp162, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_8, tmp162, atslab_2, arg2) ;
tmp160 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp160, atslab_s2exp_srt, tmp161) ;
ats_selptrset_mac(anairiats_rec_6, tmp160, atslab_s2exp_node, tmp162) ;

tmp159 = ats_castfn_mac(ats_ptr_type, tmp160) ;
break ;
} while (0) ;
return (tmp159) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 11058(line=524, offs=11) -- 11237(line=530, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp163) ;
ATSlocal (ats_ptr_type, tmp164) ;
ATSlocal (ats_ptr_type, tmp165) ;
ATSlocal (ats_ptr_type, tmp166) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni:
do {
/* branch: __ats_lab_32 */
__ats_lab_32_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; }
__ats_lab_32_1:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_33_1 ; }
__ats_lab_32_2:
tmp163 = arg2 ;
break ;

/* branch: __ats_lab_33 */
__ats_lab_33_0:
__ats_lab_33_1:
__ats_lab_33_2:
tmp165 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_s2exp_srt) ;
tmp166 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp166)->tag = 28 ;
ats_selptrset_mac(anairiats_sum_8, tmp166, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_8, tmp166, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_8, tmp166, atslab_2, arg2) ;
tmp164 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp164, atslab_s2exp_srt, tmp165) ;
ats_selptrset_mac(anairiats_rec_6, tmp164, atslab_s2exp_node, tmp166) ;

tmp163 = ats_castfn_mac(ats_ptr_type, tmp164) ;
break ;
} while (0) ;
return (tmp163) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 11308(line=535, offs=3) -- 11421(line=539, offs=32)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exiuni (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp167) ;
ATSlocal (ats_bool_type, tmp168) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exiuni:
tmp168 = atspre_eq_int_int (arg0, 0) ;
if (tmp168) {
tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi (arg1, arg2, arg3) ;
} else {
tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni (arg1, arg2, arg3) ;
} /* end of [if] */
return (tmp167) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exiuni] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 11493(line=544, offs=16) -- 11913(line=558, offs=8)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__uns2exp_exiuni (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4) {
/* local vardec */
ATSlocal (ats_bool_type, tmp169) ;
ATSlocal (ats_ptr_type, tmp170) ;
ATSlocal (ats_ptr_type, tmp171) ;
ATSlocal (ats_ptr_type, tmp172) ;
ATSlocal (ats_ptr_type, tmp173) ;
ATSlocal (ats_bool_type, tmp174) ;
ATSlocal (ats_ptr_type, tmp175) ;
ATSlocal (ats_ptr_type, tmp176) ;
ATSlocal (ats_ptr_type, tmp177) ;
ATSlocal (ats_bool_type, tmp178) ;
ATSlocal (ats_ptr_type, tmp179) ;
ATSlocal (ats_ptr_type, tmp180) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__uns2exp_exiuni:
tmp170 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_34 */
__ats_lab_34_0:
if (((ats_sum_ptr_type)tmp170)->tag != 27) { goto __ats_lab_35_0 ; }
__ats_lab_34_1:
tmp171 = ats_caselptrlab_mac(anairiats_sum_8, tmp170, atslab_0) ;
tmp172 = ats_caselptrlab_mac(anairiats_sum_8, tmp170, atslab_1) ;
tmp173 = ats_caselptrlab_mac(anairiats_sum_8, tmp170, atslab_2) ;
tmp174 = atspre_eq_int_int (arg0, 0) ;
if (!tmp174) { goto __ats_lab_36_1 ; }
ats_ptrget_mac(ats_ptr_type, arg2) = tmp171 ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp172 ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp173 ;
tmp169 = ats_true_bool ;
break ;

/* branch: __ats_lab_35 */
__ats_lab_35_0:
if (((ats_sum_ptr_type)tmp170)->tag != 28) { goto __ats_lab_36_0 ; }
__ats_lab_35_1:
tmp175 = ats_caselptrlab_mac(anairiats_sum_8, tmp170, atslab_0) ;
tmp176 = ats_caselptrlab_mac(anairiats_sum_8, tmp170, atslab_1) ;
tmp177 = ats_caselptrlab_mac(anairiats_sum_8, tmp170, atslab_2) ;
tmp178 = atspre_eq_int_int (arg0, 1) ;
if (!tmp178) { goto __ats_lab_36_1 ; }
ats_ptrget_mac(ats_ptr_type, arg2) = tmp175 ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp176 ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp177 ;
tmp169 = ats_true_bool ;
break ;

/* branch: __ats_lab_36 */
__ats_lab_36_0:
__ats_lab_36_1:
tmp179 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp179 ;
tmp180 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp180 ;
ats_ptrget_mac(ats_ptr_type, arg4) = arg1 ;
tmp169 = ats_false_bool ;
break ;
} while (0) ;
return (tmp169) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__uns2exp_exiuni] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 11998(line=564, offs=12) -- 12158(line=569, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_unis (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp181) ;
ATSlocal (anairiats_rec_5, tmp182) ;
ATSlocal (ats_ptr_type, tmp183) ;
ATSlocal (ats_ptr_type, tmp184) ;
ATSlocal (ats_ptr_type, tmp185) ;
ATSlocal (ats_ptr_type, tmp186) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_unis:
do {
/* branch: __ats_lab_37 */
__ats_lab_37_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; }
__ats_lab_37_1:
tmp181 = arg1 ;
break ;

/* branch: __ats_lab_38 */
__ats_lab_38_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_38_1:
tmp182 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_0) ;
tmp183 = ats_caselptrlab_mac(anairiats_sum_12, arg0, atslab_1) ;
tmp184 = ats_select_mac(tmp182, atslab_s2qua_svs) ;
tmp185 = ats_select_mac(tmp182, atslab_s2qua_sps) ;
tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_unis (tmp183, arg1) ;
tmp181 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni (tmp184, tmp185, tmp186) ;
break ;
} while (0) ;
return (tmp181) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_unis] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 12252(line=576, offs=3) -- 12339(line=578, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_wthtype (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp187) ;
ATSlocal (ats_ptr_type, tmp188) ;
ATSlocal (ats_ptr_type, tmp189) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_wthtype:
tmp188 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_srt) ;
tmp189 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp189)->tag = 31 ;
ats_selptrset_mac(anairiats_sum_7, tmp189, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_7, tmp189, atslab_1, arg1) ;
tmp187 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp187, atslab_s2exp_srt, tmp188) ;
ats_selptrset_mac(anairiats_rec_6, tmp187, atslab_s2exp_node, tmp189) ;

return (tmp187) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_wthtype] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 12412(line=583, offs=13) -- 12466(line=585, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp190) ;
ATSlocal (ats_ptr_type, tmp191) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp:
tmp191 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eerrexp_32) ;
tmp190 = ATS_MALLOC(sizeof(anairiats_rec_6)) ;
ats_selptrset_mac(anairiats_rec_6, tmp190, atslab_s2exp_srt, arg0) ;
ats_selptrset_mac(anairiats_rec_6, tmp190, atslab_s2exp_node, tmp191) ;

return (tmp190) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 12519(line=588, offs=15) -- 12547(line=588, offs=43)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp192) ;
ATSlocal (ats_ptr_type, tmp193) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err:
tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ;
tmp192 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp193) ;
return (tmp192) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 12574(line=590, offs=16) -- 12602(line=590, offs=44)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp194) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err:
tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ;
return (tmp194) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 12652(line=596, offs=3) -- 12709(line=597, offs=41)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refeq (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp195) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refeq:
tmp195 = atspre_peq (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(ats_ptr_type, arg1)) ;
return (tmp195) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refeq] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 12784(line=604, offs=3) -- 12817(line=604, offs=36)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp196) ;
ATSlocal (ats_ptr_type, tmp197) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf:
tmp197 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_srt) ;
tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf (tmp197) ;
return (tmp196) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 12869(line=607, offs=16) -- 12897(line=607, offs=44)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonprf (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp198) ;
ATSlocal (ats_bool_type, tmp199) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonprf:
tmp199 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prf (arg0) ;
tmp198 = atspre_neg_bool (tmp199) ;
return (tmp198) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonprf] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 12926(line=611, offs=3) -- 12959(line=611, offs=36)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp200) ;
ATSlocal (ats_ptr_type, tmp201) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin:
tmp201 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_srt) ;
tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin (tmp201) ;
return (tmp200) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 13011(line=614, offs=16) -- 13039(line=614, offs=44)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp202) ;
ATSlocal (ats_bool_type, tmp203) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin:
tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (arg0) ;
tmp202 = atspre_neg_bool (tmp203) ;
return (tmp202) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_nonlin] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 13070(line=618, offs=3) -- 13106(line=618, offs=39)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_boxed (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp204) ;
ATSlocal (ats_ptr_type, tmp205) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_boxed:
tmp205 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_srt) ;
tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed (tmp205) ;
return (tmp204) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_boxed] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 13183(line=625, offs=3) -- 13218(line=625, offs=38)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prgm (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp206) ;
ATSlocal (ats_ptr_type, tmp207) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prgm:
tmp207 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_srt) ;
tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm (tmp207) ;
return (tmp206) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_prgm] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 13275(line=630, offs=3) -- 13312(line=630, offs=40)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_impred (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp208) ;
ATSlocal (ats_ptr_type, tmp209) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_impred:
tmp209 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_srt) ;
tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred (tmp209) ;
return (tmp208) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_impred] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 13415(line=639, offs=5) -- 13709(line=654, offs=2)
*/
ATSstaticdec()
ats_bool_type
aux_70 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp211) ;
ATSlocal (ats_ptr_type, tmp212) ;
ATSlocal (ats_ptr_type, tmp213) ;
ATSlocal (ats_ptr_type, tmp214) ;
ATSlocal (ats_ptr_type, tmp215) ;
ATSlocal (ats_ptr_type, tmp216) ;

__ats_lab_aux_70:
tmp212 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg0), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_39 */
__ats_lab_39_0:
if (((ats_sum_ptr_type)tmp212)->tag != 19) { goto __ats_lab_42_0 ; }
__ats_lab_39_1:
tmp213 = ats_caselptrlab_mac(anairiats_sum_9, tmp212, atslab_0) ;
do {
/* branch: __ats_lab_40 */
__ats_lab_40_0:
if (tmp213 != (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; }
__ats_lab_40_1:
tmp211 = ats_true_bool ;
break ;

/* branch: __ats_lab_41 */
__ats_lab_41_0:
__ats_lab_41_1:
tmp211 = ats_false_bool ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_42 */
__ats_lab_42_0:
if (((ats_sum_ptr_type)tmp212)->tag != 28) { goto __ats_lab_43_0 ; }
__ats_lab_42_1:
tmp214 = ats_caselptrlab_mac(anairiats_sum_8, tmp212, atslab_2) ;
arg0 = tmp214 ;
goto __ats_lab_aux_70 ; // tail call
break ;

/* branch: __ats_lab_43 */
__ats_lab_43_0:
if (((ats_sum_ptr_type)tmp212)->tag != 27) { goto __ats_lab_44_0 ; }
__ats_lab_43_1:
tmp215 = ats_caselptrlab_mac(anairiats_sum_8, tmp212, atslab_2) ;
arg0 = tmp215 ;
goto __ats_lab_aux_70 ; // tail call
break ;

/* branch: __ats_lab_44 */
__ats_lab_44_0:
if (((ats_sum_ptr_type)tmp212)->tag != 20) { goto __ats_lab_45_0 ; }
__ats_lab_44_1:
tmp216 = ats_caselptrlab_mac(anairiats_sum_8, tmp212, atslab_2) ;
arg0 = tmp216 ;
goto __ats_lab_aux_70 ; // tail call
break ;

/* branch: __ats_lab_45 */
__ats_lab_45_0:
__ats_lab_45_1:
tmp211 = ats_false_bool ;
break ;
} while (0) ;
return (tmp211) ;
} /* end of [aux_70] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 13395(line=637, offs=3) -- 13751(line=658, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_FUNCLOfun (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp210) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_FUNCLOfun:
tmp210 = aux_70 (arg0) ;
return (tmp210) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_FUNCLOfun] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 13927(line=668, offs=14) -- 13948(line=668, offs=35)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset (ats_uint_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp219) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset:
tmp219 = ATS_MALLOC(sizeof(anairiats_sum_13)) ;
((ats_sum_ptr_type)tmp219)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_13, tmp219, atslab_0, arg0) ;
return (tmp219) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 13971(line=671, offs=11) -- 14032(line=673, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_var (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp220) ;
ATSlocal (ats_ptr_type, tmp221) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_var:
tmp221 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (arg0) ;
tmp220 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp220)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_2, tmp220, atslab_0, tmp221) ;
return (tmp220) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 14076(line=675, offs=21) -- 14097(line=675, offs=42)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_exp (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp222) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_exp:
tmp222 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp222)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_2, tmp222, atslab_0, arg0) ;
return (tmp222) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_exp] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 14122(line=679, offs=3) -- 14590(line=688, offs=38)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_add (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp223) ;
ATSlocal (ats_uint_type, tmp224) ;
ATSlocal (ats_bool_type, tmp225) ;
ATSlocal (ats_uint_type, tmp226) ;
ATSlocal (ats_bool_type, tmp227) ;
ATSlocal (ats_uint_type, tmp228) ;
ATSlocal (ats_bool_type, tmp229) ;
ATSlocal (ats_uint_type, tmp230) ;
ATSlocal (ats_bool_type, tmp231) ;
ATSlocal (ats_uint_type, tmp232) ;
ATSlocal (ats_uint_type, tmp233) ;
ATSlocal (ats_uint_type, tmp234) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_add:
do {
/* branch: __ats_lab_46 */
__ats_lab_46_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_47_0 ; }
__ats_lab_46_1:
__ats_lab_46_2:
tmp224 = ats_caselptrlab_mac(anairiats_sum_13, arg0, atslab_0) ;
tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil (tmp224) ;
if (!tmp225) { goto __ats_lab_47_1 ; }
tmp223 = arg1 ;
break ;

/* branch: __ats_lab_47 */
__ats_lab_47_0:
__ats_lab_47_1:
if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_48_0 ; }
__ats_lab_47_2:
tmp226 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ;
tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isnil (tmp226) ;
if (!tmp227) { goto __ats_lab_48_0 ; }
tmp223 = arg0 ;
break ;

/* branch: __ats_lab_48 */
__ats_lab_48_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_49_0 ; }
__ats_lab_48_1:
__ats_lab_48_2:
tmp228 = ats_caselptrlab_mac(anairiats_sum_13, arg0, atslab_0) ;
tmp229 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isall (tmp228) ;
if (!tmp229) { goto __ats_lab_49_1 ; }
tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all ;
break ;

/* branch: __ats_lab_49 */
__ats_lab_49_0:
__ats_lab_49_1:
if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_50_0 ; }
__ats_lab_49_2:
tmp230 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ;
tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_isall (tmp230) ;
if (!tmp231) { goto __ats_lab_50_0 ; }
tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all ;
break ;

/* branch: __ats_lab_50 */
__ats_lab_50_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_51_0 ; }
__ats_lab_50_1:
if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_51_1 ; }
__ats_lab_50_2:
tmp232 = ats_caselptrlab_mac(anairiats_sum_13, arg0, atslab_0) ;
tmp233 = ats_caselptrlab_mac(anairiats_sum_13, arg1, atslab_0) ;
tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_union (tmp232, tmp233) ;
tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset (tmp234) ;
break ;

/* branch: __ats_lab_51 */
__ats_lab_51_0:
__ats_lab_51_1:
__ats_lab_51_2:
tmp223 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp223)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_7, tmp223, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_7, tmp223, atslab_1, arg1) ;
break ;
} while (0) ;
return (tmp223) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_add] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 14660(line=694, offs=14) -- 14723(line=696, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_one (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp235) ;
ATSlocal (ats_ptr_type, tmp236) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_one:
tmp236 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGone_0) ;
tmp235 = ATS_MALLOC(sizeof(anairiats_rec_14)) ;
ats_selptrset_mac(anairiats_rec_14, tmp235, atslab_s2exparg_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_14, tmp235, atslab_s2exparg_node, tmp236) ;

return (tmp235) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_one] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 14747(line=698, offs=14) -- 14810(line=700, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_all (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp237) ;
ATSlocal (ats_ptr_type, tmp238) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_all:
tmp238 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGall_1) ;
tmp237 = ATS_MALLOC(sizeof(anairiats_rec_14)) ;
ats_selptrset_mac(anairiats_rec_14, tmp237, atslab_s2exparg_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_14, tmp237, atslab_s2exparg_node, tmp238) ;

return (tmp237) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_all] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 14834(line=702, offs=14) -- 14907(line=704, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_seq (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp239) ;
ATSlocal (ats_ptr_type, tmp240) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_seq:
tmp240 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp240)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_2, tmp240, atslab_0, arg1) ;
tmp239 = ATS_MALLOC(sizeof(anairiats_rec_14)) ;
ats_selptrset_mac(anairiats_rec_14, tmp239, atslab_s2exparg_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_14, tmp239, atslab_s2exparg_node, tmp240) ;

return (tmp239) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_seq] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 14984(line=710, offs=3) -- 15042(line=712, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp241) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make:
tmp241 = ATS_MALLOC(sizeof(anairiats_rec_15)) ;
ats_selptrset_mac(anairiats_rec_15, tmp241, atslab_t2mpmarg_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_15, tmp241, atslab_t2mpmarg_arg, arg1) ;

return (tmp241) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 15119(line=718, offs=3) -- 15173(line=720, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2tavar_make (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp242) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2tavar_make:
tmp242 = ATS_MALLOC(sizeof(anairiats_rec_16)) ;
ats_selptrset_mac(anairiats_rec_16, tmp242, atslab_s2tavar_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_16, tmp242, atslab_s2tavar_var, arg1) ;

return (tmp242) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2tavar_make] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 15229(line=724, offs=3) -- 15309(line=726, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2aspdec_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp243) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2aspdec_make:
tmp243 = ATS_MALLOC(sizeof(anairiats_rec_17)) ;
ats_selptrset_mac(anairiats_rec_17, tmp243, atslab_s2aspdec_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_17, tmp243, atslab_s2aspdec_cst, arg1) ;
ats_selptrset_mac(anairiats_rec_17, tmp243, atslab_s2aspdec_def, arg2) ;

return (tmp243) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2aspdec_make] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2.dats: 15387(line=732, offs=3) -- 15509(line=737, offs=49)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp244) ;
ATSlocal (ats_ptr_type, tmp245) ;
ATSlocal (ats_ptr_type, tmp246) ;
// ATSlocal_void (tmp247) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app:
do {
/* branch: __ats_lab_52 */
__ats_lab_52_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; }
__ats_lab_52_1:
break ;

/* branch: __ats_lab_53 */
__ats_lab_53_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_53_1:
tmp245 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp246 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
/* tmp247 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg2) (tmp245, arg1) ;
arg0 = tmp246 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app ; // tail call
break ;
} while (0) ;
return /* (tmp244) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__synentlst_app] */

/* static load function */

// extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__staload_flag = 1 ;

// _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ;
// ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ;

return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2edats__staload () ;

#ifdef _ATS_PROOFCHECK
ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
#endif /* _ATS_PROOFCHECK */

/* marking static variables for GC */
ATS_GC_MARKROOT(&statmp217, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp218, sizeof(ats_ptr_type)) ;

/* marking external values for GC */

/* code for dynamic loading */
statmp217 = ATS_MALLOC(sizeof(anairiats_sum_13)) ;
((ats_sum_ptr_type)statmp217)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_13, statmp217, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_nil) ;
ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil, sizeof(ats_ptr_type)) ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil = statmp217 ;
statmp218 = ATS_MALLOC(sizeof(anairiats_sum_13)) ;
((ats_sum_ptr_type)statmp218)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_13, statmp218, atslab_0, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all) ;
ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all, sizeof(ats_ptr_type)) ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all = statmp218 ;
return ;
} /* end of [dynload function] */

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

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

/* end of [pats_staexp2_dats.c] */
