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

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

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

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

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

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

typedef
struct {
ats_ptr_type atslab_i1mpdec_loc ;
ats_ptr_type atslab_i1mpdec_qid ;
ats_ptr_type atslab_i1mpdec_tmparg ;
ats_ptr_type atslab_i1mpdec_def ;
} anairiats_rec_2 ;

typedef
struct {
ats_ptr_type atslab_impqi0de_loc ;
ats_ptr_type atslab_impqi0de_qua ;
ats_ptr_type atslab_impqi0de_sym ;
ats_ptr_type atslab_impqi0de_arg ;
} anairiats_rec_3 ;

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

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

typedef struct {
ats_int_type atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_6 ;

typedef struct {
ats_ptr_type atslab_0 ;
} anairiats_sum_7 ;

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

typedef
struct {
ats_ptr_type atslab_d1exp_loc ;
ats_ptr_type atslab_d1exp_node ;
} anairiats_rec_9 ;

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

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

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_12 ;

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

typedef struct {
ats_int_type atslab_0 ;
} anairiats_sum_14 ;

typedef
struct {
ats_ptr_type atslab_p1at_loc ;
ats_ptr_type atslab_p1at_node ;
} anairiats_rec_15 ;

typedef
struct {
ats_ptr_type atslab_p2at_loc ;
ats_ptr_type atslab_p2at_svs ;
ats_ptr_type atslab_p2at_dvs ;
ats_ptr_type atslab_p2at_type ;
ats_ptr_type atslab_p2at_node ;
} anairiats_rec_16 ;

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

typedef
struct {
ats_ptr_type atslab_d2exp_loc ;
ats_ptr_type atslab_d2exp_node ;
} anairiats_rec_18 ;

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

typedef struct {
anairiats_rec_19 atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_20 ;

typedef
struct {
ats_ptr_type atslab_d1ecl_loc ;
ats_ptr_type atslab_d1ecl_node ;
} anairiats_rec_21 ;

typedef
struct {
ats_ptr_type atslab_t1mpmarg_loc ;
ats_ptr_type atslab_t1mpmarg_arg ;
} anairiats_rec_22 ;

/* 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__Some_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, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTnil_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGone_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGall_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1VARARGseq_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__I1MPARG_sarglst_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__I1MPARG_svararglst_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_dyn_54) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elaminit_dyn_55) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Elam_sta_ana_57) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_effc_66) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Eann_funclo_67) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__D1Cimpdec_27) ;
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__S2Euni_28) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2PITM_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMcst_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2ITMsymdef_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__P2Tlist_18) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1exp_tr_28) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1exp_tr_ann_29) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_impdec_35) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_impdec_nontop_36) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1ecl_tr_impdec_tmparg_37) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_prerr_newline) () ;
ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ;
ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_sub_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_int_int) (ats_int_type, ats_int_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_bool_type, atspre_neq_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_void_type, atspre_prerr_string) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_prerrf_exn) (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_void_type, patsopt_prerrf_ifdebug) (ats_ptr_type, ...) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_is_none) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_dup) (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__s2exp_var) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_addlst) (ats_ref_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_ann) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_dyn) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_laminit_dyn) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_sta) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_type) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_seff) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_funclo) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_def) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2mpdec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_match_def) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trdn) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1vararg_bind_svarlst) (ats_ptr_type, ats_ptr_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr_arg) (ats_ptr_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_inc) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_dec) () ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_inc) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_dec) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvarlst) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find_qua) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pop) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__i1mpdec_tr_main) (ats_ptr_type, 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 */
/* internal function declarations */
static
ats_void_type prerr_FILENAME_02083_ () ;
static
ats_void_type prerr_error2_loc_02087_ (ats_ptr_type arg0) ;
static
ats_void_type auxerr1_2 (ats_ptr_type env0, ats_ptr_type arg0) ;
static
ats_clo_ptr_type auxerr1_2_closure_make (ats_ptr_type env0) ;
static
ats_void_type auxerr1_2_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_void_type auxerr2_4 (ats_ptr_type env0, ats_ptr_type arg0) ;
static
ats_clo_ptr_type auxerr2_4_closure_make (ats_ptr_type env0) ;
static
ats_void_type auxerr2_4_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_void_type auxerr3_5 (ats_ptr_type env0, ats_ptr_type arg0) ;
static
ats_clo_ptr_type auxerr3_5_closure_make (ats_ptr_type env0) ;
static
ats_void_type auxerr3_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_ptr_type aux1_6 (ats_ptr_type env0, ats_ptr_type arg0) ;
static
ats_clo_ptr_type aux1_6_closure_make (ats_ptr_type env0) ;
static
ats_ptr_type aux1_6_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_void_type loop_9 (ats_ptr_type arg0) ;
static
ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type aux2_7 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ;
static
ats_clo_ptr_type aux2_7_closure_make (ats_ptr_type env0, ats_ptr_type env1) ;
static
ats_ptr_type aux2_7_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_ptr_type i1mpdec_select_d2cst_1 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type auxerr_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ;
static
ats_ptr_type d1exp_tr_ann_10 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type auxck_13 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type auxck_14 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) ;
static
ats_void_type auxck_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type auxck_16 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) ;
static
ats_void_type auxerr_17 (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_ptr_type aux_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_void_type auxck_19 (ats_ptr_type arg0, ats_int_type arg1) ;
static
anairiats_rec_1 d1exp_tr_arg_body_ann_11 (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, ats_int_type arg7, ats_ptr_type arg8, ats_ptr_type arg9) ;
static
ats_void_type stasub_add_tmparg_20 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type aux_imparg_sarglst_22 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type auxerr1_24 (ats_ptr_type env0) ;
static
ats_clo_ptr_type auxerr1_24_closure_make (ats_ptr_type env0) ;
static
ats_void_type auxerr1_24_clofun (ats_clo_ptr_type cloptr) ;
static
ats_void_type auxerr2_25 (ats_ptr_type env0, ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_clo_ptr_type auxerr2_25_closure_make (ats_ptr_type env0) ;
static
ats_void_type auxerr2_25_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_ptr_type auxseq_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_void_type loop_29 (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_ptr_type aux_imparg_svararg_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ;
static
ats_void_type auxerr_31 (ats_ptr_type env0) ;
static
ats_clo_ptr_type auxerr_31_closure_make (ats_ptr_type env0) ;
static
ats_void_type auxerr_31_clofun (ats_clo_ptr_type cloptr) ;
static
ats_void_type aux_imparg_svararglst_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ;
static
ats_ptr_type loop_35 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type list_reverse_append2_vt_01435_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type list_reverse_01436_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type loop_39 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_ptr_type list_append2_vt_01314_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type aux_37 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type list_concat_01321_ats_ptr_type (ats_ptr_type arg0) ;
static
anairiats_rec_1 aux_imparg_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type aux_tmparg_s1explst_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ;
static
ats_void_type auxerr1_42 (ats_ptr_type env0, ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_clo_ptr_type auxerr1_42_closure_make (ats_ptr_type env0) ;
static
ats_void_type auxerr1_42_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_void_type auxerr2_43 (ats_ptr_type env0) ;
static
ats_clo_ptr_type auxerr2_43_closure_make (ats_ptr_type env0) ;
static
ats_void_type auxerr2_43_clofun (ats_clo_ptr_type cloptr) ;
static
ats_void_type auxerr3_44 (ats_ptr_type env0) ;
static
ats_clo_ptr_type auxerr3_44_closure_make (ats_ptr_type env0) ;
static
ats_void_type auxerr3_44_clofun (ats_clo_ptr_type cloptr) ;
static
ats_ptr_type aux_tmparg_marglst_41 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type aux_tmparg_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type auxerr_tmparg_46 (ats_ptr_type arg0) ;
static
ats_void_type auxerr_nontop_47 (ats_ptr_type arg0) ;
static
ats_bool_type list_is_cons_01295_ (ats_ptr_type arg0) ;
static
ats_ptr_type f_49 (ats_ptr_type arg0) ;

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

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 1667(line=52, offs=28) -- 1698(line=52, offs=59)
*/
ATSstaticdec()
ats_void_type
prerr_FILENAME_02083_ () {
/* local vardec */
// ATSlocal_void (tmp0) ;

__ats_lab_prerr_FILENAME_02083_:
/* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans2_impdec")) ;
return /* (tmp0) */ ;
} /* end of [prerr_FILENAME_02083_] */

/*
// /tmp/ATS-Postiats/src/pats_errmsg.dats: 2105(line=76, offs=17) -- 2163(line=79, offs=2)
*/
ATSstaticdec()
ats_void_type
prerr_error2_loc_02087_ (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp7) ;
// ATSlocal_void (tmp8) ;

__ats_lab_prerr_error2_loc_02087_:
/* tmp8 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ;
/* tmp7 = */ atspre_prerr_string (ATSstrcst(": error(2)")) ;
return /* (tmp7) */ ;
} /* end of [prerr_error2_loc_02087_] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 2414(line=94, offs=4) -- 2804(line=106, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr1_2 (ats_ptr_type env0, ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp2) ;
ATSlocal (ats_ptr_type, tmp3) ;
ATSlocal (ats_ptr_type, tmp4) ;
ATSlocal (ats_ptr_type, tmp5) ;
// ATSlocal_void (tmp6) ;
ATSlocal (ats_ptr_type, tmp9) ;
// ATSlocal_void (tmp10) ;
// ATSlocal_void (tmp11) ;
// ATSlocal_void (tmp12) ;
// ATSlocal_void (tmp13) ;
// ATSlocal_void (tmp14) ;
ATSlocal (ats_ptr_type, tmp15) ;

__ats_lab_auxerr1_2:
tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_i1mpdec_qid) ;
tmp4 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp3), atslab_impqi0de_qua) ;
tmp5 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp3), atslab_impqi0de_sym) ;
tmp9 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_i1mpdec_loc) ;
/* tmp6 = */ prerr_error2_loc_02087_ (tmp9) ;
/* tmp10 = */ atspre_prerr_string (ATSstrcst(": there is no suitable dynamic constant declared for [")) ;
/* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq (tmp4) ;
/* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp5) ;
/* tmp13 = */ atspre_prerr_string (ATSstrcst("].")) ;
/* tmp14 = */ atspre_prerr_newline () ;
tmp15 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp15)->tag = 35 ;
ats_selptrset_mac(anairiats_sum_4, tmp15, atslab_0, env0) ;
/* tmp2 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp15) ;
return /* (tmp2) */ ;
} /* end of [auxerr1_2] */

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

ats_void_type
auxerr1_2_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
auxerr1_2 (((auxerr1_2_closure_type*)cloptr)->closure_env_0, arg0) ; return ;
} /* end of function */

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

ats_clo_ptr_type
auxerr1_2_closure_make (ats_ptr_type env0) {
auxerr1_2_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr1_2_closure_type)) ;
auxerr1_2_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 2828(line=107, offs=4) -- 3228(line=119, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr2_4 (ats_ptr_type env0, ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp16) ;
ATSlocal (ats_ptr_type, tmp17) ;
ATSlocal (ats_ptr_type, tmp18) ;
ATSlocal (ats_ptr_type, tmp19) ;
// ATSlocal_void (tmp20) ;
ATSlocal (ats_ptr_type, tmp21) ;
// ATSlocal_void (tmp22) ;
// ATSlocal_void (tmp23) ;
// ATSlocal_void (tmp24) ;
// ATSlocal_void (tmp25) ;
// ATSlocal_void (tmp26) ;
ATSlocal (ats_ptr_type, tmp27) ;

__ats_lab_auxerr2_4:
tmp17 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_i1mpdec_qid) ;
tmp18 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp17), atslab_impqi0de_qua) ;
tmp19 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp17), atslab_impqi0de_sym) ;
tmp21 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_i1mpdec_loc) ;
/* tmp20 = */ prerr_error2_loc_02087_ (tmp21) ;
/* tmp22 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ;
/* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq (tmp18) ;
/* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp19) ;
/* tmp25 = */ atspre_prerr_string (ATSstrcst("] does not refer to a declared dynamic constant.")) ;
/* tmp26 = */ atspre_prerr_newline () ;
tmp27 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp27)->tag = 35 ;
ats_selptrset_mac(anairiats_sum_4, tmp27, atslab_0, env0) ;
/* tmp16 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp27) ;
return /* (tmp16) */ ;
} /* end of [auxerr2_4] */

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

ats_void_type
auxerr2_4_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
auxerr2_4 (((auxerr2_4_closure_type*)cloptr)->closure_env_0, arg0) ; return ;
} /* end of function */

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

ats_clo_ptr_type
auxerr2_4_closure_make (ats_ptr_type env0) {
auxerr2_4_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr2_4_closure_type)) ;
auxerr2_4_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 3252(line=120, offs=4) -- 3622(line=132, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr3_5 (ats_ptr_type env0, ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp28) ;
ATSlocal (ats_ptr_type, tmp29) ;
ATSlocal (ats_ptr_type, tmp30) ;
ATSlocal (ats_ptr_type, tmp31) ;
// ATSlocal_void (tmp32) ;
ATSlocal (ats_ptr_type, tmp33) ;
// ATSlocal_void (tmp34) ;
// ATSlocal_void (tmp35) ;
// ATSlocal_void (tmp36) ;
// ATSlocal_void (tmp37) ;
// ATSlocal_void (tmp38) ;
ATSlocal (ats_ptr_type, tmp39) ;

__ats_lab_auxerr3_5:
tmp29 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_i1mpdec_qid) ;
tmp30 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp29), atslab_impqi0de_qua) ;
tmp31 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp29), atslab_impqi0de_sym) ;
tmp33 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_i1mpdec_loc) ;
/* tmp32 = */ prerr_error2_loc_02087_ (tmp33) ;
/* tmp34 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ;
/* tmp35 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_d0ynq (tmp30) ;
/* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp31) ;
/* tmp37 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ;
/* tmp38 = */ atspre_prerr_newline () ;
tmp39 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp39)->tag = 35 ;
ats_selptrset_mac(anairiats_sum_4, tmp39, atslab_0, env0) ;
/* tmp28 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp39) ;
return /* (tmp28) */ ;
} /* end of [auxerr3_5] */

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

ats_void_type
auxerr3_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
auxerr3_5 (((auxerr3_5_closure_type*)cloptr)->closure_env_0, arg0) ; return ;
} /* end of function */

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

ats_clo_ptr_type
auxerr3_5_closure_make (ats_ptr_type env0) {
auxerr3_5_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr3_5_closure_type)) ;
auxerr3_5_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 3763(line=138, offs=5) -- 4247(line=154, offs=34)
*/
ATSstaticdec()
ats_ptr_type
aux1_6 (ats_ptr_type env0, ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp44) ;
ATSlocal (ats_ptr_type, tmp45) ;
ATSlocal (ats_ptr_type, tmp46) ;
ATSlocal (ats_ptr_type, tmp47) ;
ATSlocal (ats_ptr_type, tmp48) ;
ATSlocal (ats_ptr_type, tmp49) ;
ATSlocal (ats_bool_type, tmp50) ;

__ats_lab_aux1_6:
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; }
__ats_lab_0_1:
tmp45 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp46 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;

tmp47 = ats_caselptrlab_mac(anairiats_sum_6, tmp45, atslab_1) ;
do {
/* branch: __ats_lab_1 */
__ats_lab_1_0:
if (((ats_sum_ptr_type)tmp47)->tag != 0) { goto __ats_lab_2_0 ; }
__ats_lab_1_1:
tmp48 = ats_caselptrlab_mac(anairiats_sum_4, tmp47, atslab_0) ;
tmp49 = aux1_6 (env0, tmp46) ;
tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_match_def (tmp48, env0) ;
if (tmp50) {
tmp44 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp44, atslab_0, tmp48) ;
ats_selptrset_mac(anairiats_sum_5, tmp44, atslab_1, tmp49) ;
} else {
tmp44 = tmp49 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_2 */
__ats_lab_2_0:
__ats_lab_2_1:
arg0 = tmp46 ;
goto __ats_lab_aux1_6 ; // tail call
break ;
} while (0) ;
break ;

/* branch: __ats_lab_3 */
__ats_lab_3_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_3_1:
tmp44 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp44) ;
} /* end of [aux1_6] */

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

ats_ptr_type
aux1_6_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
return aux1_6 (((aux1_6_closure_type*)cloptr)->closure_env_0, arg0) ;
} /* end of function */

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

ats_clo_ptr_type
aux1_6_closure_make (ats_ptr_type env0) {
aux1_6_closure_type *p_clo = ATS_MALLOC(sizeof(aux1_6_closure_type)) ;
aux1_6_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4893(line=177, offs=7) -- 5015(line=178, offs=73)
*/
ATSstaticdec()
ats_void_type
loop_9 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp56) ;
ATSlocal (ats_ptr_type, tmp57) ;

__ats_lab_loop_9:
do {
/* branch: __ats_lab_5 */
__ats_lab_5_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; }
__ats_lab_5_1:
tmp57 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
ATS_FREE(arg0) ;
arg0 = tmp57 ;
goto __ats_lab_loop_9 ; // tail call
break ;

/* branch: __ats_lab_6 */
__ats_lab_6_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_6_1:
break ;
} while (0) ;
return /* (tmp56) */ ;
} /* end of [loop_9] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4)
*/
ATSstaticdec()
ats_void_type
list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp55) ;

__ats_lab_list_vt_free_01499_ats_ptr_type:
/* tmp55 = */ loop_9 (arg0) ;
return /* (tmp55) */ ;
} /* end of [list_vt_free_01499_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 4275(line=157, offs=5) -- 4585(line=166, offs=8)
*/
ATSstaticdec()
ats_ptr_type
aux2_7 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp51) ;
ATSlocal (ats_ptr_type, tmp52) ;
ATSlocal (ats_ptr_type, tmp53) ;
// ATSlocal_void (tmp54) ;
// ATSlocal_void (tmp58) ;

__ats_lab_aux2_7:
do {
/* branch: __ats_lab_4 */
__ats_lab_4_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; }
__ats_lab_4_1:
tmp52 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp53 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
ATS_FREE(arg0) ;
/* tmp54 = */ list_vt_free_01499_ats_ptr_type (tmp53) ;
tmp51 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
ats_selptrset_mac(anairiats_sum_7, tmp51, atslab_0, tmp52) ;
break ;

/* branch: __ats_lab_7 */
__ats_lab_7_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_7_1:
/* tmp58 = */ auxerr1_2 (env0, env1) ;
tmp51 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp51) ;
} /* end of [aux2_7] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
ats_ptr_type closure_env_1 ;
} aux2_7_closure_type ;

ats_ptr_type
aux2_7_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
return aux2_7 (((aux2_7_closure_type*)cloptr)->closure_env_0, ((aux2_7_closure_type*)cloptr)->closure_env_1, arg0) ;
} /* end of function */

ATSinline()
ats_void_type
aux2_7_closure_init (aux2_7_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) {
p_clo->closure_fun = (ats_fun_ptr_type)&aux2_7_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
return ;
} /* end of function */

ats_clo_ptr_type
aux2_7_closure_make (ats_ptr_type env0, ats_ptr_type env1) {
aux2_7_closure_type *p_clo = ATS_MALLOC(sizeof(aux2_7_closure_type)) ;
aux2_7_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 2326(line=89, offs=1) -- 5143(line=188, offs=4)
*/
ATSstaticdec()
ats_ptr_type
i1mpdec_select_d2cst_1 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1) ;
ATSlocal (ats_ptr_type, tmp40) ;
ATSlocal (ats_ptr_type, tmp41) ;
ATSlocal (ats_ptr_type, tmp42) ;
ATSlocal (ats_ptr_type, tmp43) ;
ATSlocal (ats_ptr_type, tmp59) ;
ATSlocal (ats_ptr_type, tmp60) ;
ATSlocal (ats_ptr_type, tmp61) ;
ATSlocal (ats_ptr_type, tmp62) ;
ATSlocal (ats_ptr_type, tmp63) ;
// ATSlocal_void (tmp64) ;
// ATSlocal_void (tmp65) ;

__ats_lab_i1mpdec_select_d2cst_1:
tmp40 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_i1mpdec_qid) ;
tmp41 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp40), atslab_impqi0de_qua) ;
tmp42 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp40), atslab_impqi0de_sym) ;
tmp43 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_i1mpdec_def) ;
tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_find_qua (tmp41, tmp42) ;
do {
/* branch: __ats_lab_8 */
__ats_lab_8_0:
if (tmp59 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; }
__ats_lab_8_1:
tmp60 = ats_caselptrlab_mac(anairiats_sum_7, tmp59, atslab_0) ;
ATS_FREE(tmp59) ;
do {
/* branch: __ats_lab_9 */
__ats_lab_9_0:
if (((ats_sum_ptr_type)tmp60)->tag != 0) { goto __ats_lab_10_0 ; }
__ats_lab_9_1:
tmp61 = ats_caselptrlab_mac(anairiats_sum_4, tmp60, atslab_0) ;
tmp1 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
ats_selptrset_mac(anairiats_sum_7, tmp1, atslab_0, tmp61) ;
break ;

/* branch: __ats_lab_10 */
__ats_lab_10_0:
if (((ats_sum_ptr_type)tmp60)->tag != 4) { goto __ats_lab_11_0 ; }
__ats_lab_10_1:
tmp62 = ats_caselptrlab_mac(anairiats_sum_8, tmp60, atslab_1) ;
tmp63 = aux1_6 (tmp43, tmp62) ;
tmp1 = aux2_7 (arg0, arg1, tmp63) ;
break ;

/* branch: __ats_lab_11 */
__ats_lab_11_0:
__ats_lab_11_1:
/* tmp64 = */ auxerr2_4 (arg0, arg1) ;
tmp1 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_12 */
__ats_lab_12_0:
// if (tmp59 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_12_1:
/* tmp65 = */ auxerr3_5 (arg0, arg1) ;
tmp1 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp1) ;
} /* end of [i1mpdec_select_d2cst_1] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 5532(line=208, offs=4) -- 5916(line=218, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) {
/* local vardec */
// ATSlocal_void (tmp70) ;
// ATSlocal_void (tmp71) ;
// ATSlocal_void (tmp72) ;
// ATSlocal_void (tmp73) ;
ATSlocal (ats_bool_type, tmp74) ;
// ATSlocal_void (tmp75) ;
ATSlocal (ats_bool_type, tmp76) ;
// ATSlocal_void (tmp77) ;
ATSlocal (ats_ptr_type, tmp78) ;

__ats_lab_auxerr_12:
/* tmp71 = */ prerr_error2_loc_02087_ (arg2) ;
/* tmp72 = */ atspre_prerr_string (ATSstrcst(": static arity mismatch")) ;
tmp74 = atspre_lt_int_int (arg3, 0) ;
if (tmp74) {
/* tmp73 = */ atspre_prerr_string (ATSstrcst(": more arguments are expected.")) ;
} else {
/* empty */
} /* end of [if] */
tmp76 = atspre_gt_int_int (arg3, 0) ;
if (tmp76) {
/* tmp75 = */ atspre_prerr_string (ATSstrcst(": fewer arguments are expected.")) ;
} else {
/* empty */
} /* end of [if] */
/* tmp77 = */ atspre_prerr_newline () ;
tmp78 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp78)->tag = 29 ;
ats_selptrset_mac(anairiats_sum_8, tmp78, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_8, tmp78, atslab_1, arg1) ;
/* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp78) ;
return /* (tmp70) */ ;
} /* end of [auxerr_12] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 5203(line=193, offs=1) -- 7820(line=280, offs=4)
*/
ATSstaticdec()
ats_ptr_type
d1exp_tr_ann_10 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp66) ;
ATSlocal (ats_ptr_type, tmp67) ;
ATSlocal (ats_ptr_type, tmp68) ;
ATSlocal (ats_ptr_type, tmp69) ;
ATSlocal (ats_ptr_type, tmp79) ;
ATSlocal (ats_ptr_type, tmp80) ;
ATSlocal (ats_ptr_type, tmp81) ;
ATSlocal (ats_ptr_type, tmp82) ;
ATSlocal (ats_ptr_type, tmp83) ;
ATSlocal (ats_ptr_type, tmp84) ;
ATSlocal (ats_ptr_type, tmp85) ;
ATSlocal (ats_ptr_type, tmp86) ;
ATSlocal (ats_int_type, tmp87) ;
ATSlocal (anairiats_rec_1, tmp88) ;
ATSlocal (ats_ptr_type, tmp89) ;
ATSlocal (ats_ptr_type, tmp90) ;
// ATSlocal_void (tmp91) ;
ATSlocal (ats_bool_type, tmp92) ;
// ATSlocal_void (tmp93) ;
// ATSlocal_void (tmp94) ;
// ATSlocal_void (tmp95) ;
ATSlocal (ats_ptr_type, tmp96) ;
ATSlocal (ats_ptr_type, tmp97) ;
// ATSlocal_void (tmp98) ;
ATSlocal (ats_ptr_type, tmp99) ;
// ATSlocal_void (tmp100) ;
ATSlocal (ats_ptr_type, tmp101) ;
ATSlocal (ats_ptr_type, tmp102) ;
ATSlocal (ats_int_type, tmp103) ;
ATSlocal (ats_ptr_type, tmp104) ;
ATSlocal (ats_int_type, tmp105) ;
ATSlocal (ats_ptr_type, tmp106) ;
ATSlocal (ats_ptr_type, tmp107) ;
ATSlocal (ats_ptr_type, tmp108) ;
ATSlocal (ats_int_type, tmp109) ;
ATSlocal (ats_ptr_type, tmp110) ;
ATSlocal (ats_ptr_type, tmp111) ;
ATSlocal (anairiats_rec_1, tmp112) ;
ATSlocal (ats_ptr_type, tmp113) ;
ATSlocal (ats_ptr_type, tmp114) ;
ATSlocal (ats_int_type, tmp115) ;
ATSlocal (ats_ptr_type, tmp116) ;
ATSlocal (ats_ptr_type, tmp117) ;
ATSlocal (anairiats_rec_1, tmp118) ;
ATSlocal (ats_ptr_type, tmp119) ;
ATSlocal (ats_ptr_type, tmp120) ;
ATSlocal (ats_ptr_type, tmp121) ;
ATSlocal (ats_ptr_type, tmp122) ;

__ats_lab_d1exp_tr_ann_10:
tmp67 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d1exp_loc) ;
tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ;
tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp68) ;
tmp79 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp69), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_13 */
__ats_lab_13_0:
if (((ats_sum_ptr_type)tmp79)->tag != 28) { goto __ats_lab_16_0 ; }
__ats_lab_13_1:
tmp80 = ats_caselptrlab_mac(anairiats_sum_11, tmp79, atslab_0) ;
tmp81 = ats_caselptrlab_mac(anairiats_sum_11, tmp79, atslab_1) ;
tmp82 = ats_caselptrlab_mac(anairiats_sum_11, tmp79, atslab_2) ;
tmp83 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d1exp_node) ;
do {
/* branch: __ats_lab_14 */
__ats_lab_14_0:
if (((ats_sum_ptr_type)tmp83)->tag != 57) { goto __ats_lab_15_0 ; }
__ats_lab_14_1:
tmp84 = ats_caselptrlab_mac(anairiats_sum_11, tmp83, atslab_0) ;
tmp85 = ats_caselptrlab_mac(anairiats_sum_11, tmp83, atslab_1) ;
tmp86 = ats_caselptrlab_mac(anairiats_sum_11, tmp83, atslab_2) ;
/* ats_int_type tmp87 ; */
tmp87 = 0 ;
tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1vararg_bind_svarlst (tmp85, tmp80, (&tmp87)) ;
tmp89 = ats_select_mac(tmp88, atslab_0) ;
tmp90 = ats_select_mac(tmp88, atslab_1) ;
tmp92 = atspre_neq_int_int (tmp87, 0) ;
if (tmp92) {
/* tmp91 = */ auxerr_12 (arg0, tmp69, tmp84, tmp87) ;
} else {
/* empty */
} /* end of [if] */
/* tmp93 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ;
/* tmp94 = ats_selsin_mac(tmp93, atslab_1) */ ;
/* tmp95 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (ats_castfn_mac(ats_ptr_type, tmp90)) ;
tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst (tmp89, tmp81) ;
tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp89, tmp82) ;
/* tmp98 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp89) ;
tmp99 = d1exp_tr_ann_10 (tmp86, tmp97) ;
/* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ;
tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_sta (tmp67, ats_castfn_mac(ats_ptr_type, tmp90), tmp96, tmp99) ;
break ;

/* branch: __ats_lab_15 */
__ats_lab_15_0:
__ats_lab_15_1:
tmp101 = d1exp_tr_ann_10 (arg0, tmp82) ;
tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_sta (tmp67, tmp80, tmp81, tmp101) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_16 */
__ats_lab_16_0:
if (((ats_sum_ptr_type)tmp79)->tag != 19) { goto __ats_lab_20_0 ; }
__ats_lab_16_1:
tmp102 = ats_caselptrlab_mac(anairiats_sum_12, tmp79, atslab_0) ;
tmp103 = ats_caselptrlab_mac(anairiats_sum_12, tmp79, atslab_1) ;
tmp104 = ats_caselptrlab_mac(anairiats_sum_12, tmp79, atslab_2) ;
tmp105 = ats_caselptrlab_mac(anairiats_sum_12, tmp79, atslab_3) ;
tmp106 = ats_caselptrlab_mac(anairiats_sum_12, tmp79, atslab_4) ;
tmp107 = ats_caselptrlab_mac(anairiats_sum_12, tmp79, atslab_5) ;
tmp108 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d1exp_node) ;
do {
/* branch: __ats_lab_17 */
__ats_lab_17_0:
if (((ats_sum_ptr_type)tmp108)->tag != 54) { goto __ats_lab_18_0 ; }
__ats_lab_17_1:
tmp109 = ats_caselptrlab_mac(anairiats_sum_13, tmp108, atslab_0) ;
tmp110 = ats_caselptrlab_mac(anairiats_sum_13, tmp108, atslab_1) ;
tmp111 = ats_caselptrlab_mac(anairiats_sum_13, tmp108, atslab_2) ;
tmp112 = d1exp_tr_arg_body_ann_11 (arg0, tmp102, tmp103, tmp104, tmp105, tmp106, tmp107, tmp109, tmp110, tmp111) ;
tmp113 = ats_select_mac(tmp112, atslab_0) ;
tmp114 = ats_select_mac(tmp112, atslab_1) ;
tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_lam_dyn (tmp67, tmp103, tmp105, tmp113, tmp114) ;
break ;

/* branch: __ats_lab_18 */
__ats_lab_18_0:
if (((ats_sum_ptr_type)tmp108)->tag != 55) { goto __ats_lab_19_0 ; }
__ats_lab_18_1:
tmp115 = ats_caselptrlab_mac(anairiats_sum_13, tmp108, atslab_0) ;
tmp116 = ats_caselptrlab_mac(anairiats_sum_13, tmp108, atslab_1) ;
tmp117 = ats_caselptrlab_mac(anairiats_sum_13, tmp108, atslab_2) ;
tmp118 = d1exp_tr_arg_body_ann_11 (arg0, tmp102, tmp103, tmp104, tmp105, tmp106, tmp107, tmp115, tmp116, tmp117) ;
tmp119 = ats_select_mac(tmp118, atslab_0) ;
tmp120 = ats_select_mac(tmp118, atslab_1) ;
tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_laminit_dyn (tmp67, tmp103, tmp105, tmp119, tmp120) ;
break ;

/* branch: __ats_lab_19 */
__ats_lab_19_0:
__ats_lab_19_1:
tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (arg0) ;
tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_type (tmp67, tmp121, tmp69) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_20 */
__ats_lab_20_0:
__ats_lab_20_1:
tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1exp_tr (arg0) ;
tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_type (tmp67, tmp122, tmp69) ;
break ;
} while (0) ;
return (tmp66) ;
} /* end of [d1exp_tr_ann_10] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 8283(line=300, offs=7) -- 8741(line=312, offs=14)
*/
ATSstaticdec()
ats_void_type
auxck_13 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp124) ;
ATSlocal (ats_int_type, tmp125) ;
ATSlocal (ats_bool_type, tmp126) ;
// ATSlocal_void (tmp127) ;
ATSlocal (ats_ptr_type, tmp128) ;
// ATSlocal_void (tmp129) ;
// ATSlocal_void (tmp130) ;
// ATSlocal_void (tmp131) ;
ATSlocal (ats_ptr_type, tmp132) ;

__ats_lab_auxck_13:
do {
/* branch: __ats_lab_21 */
__ats_lab_21_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; }
__ats_lab_21_1:
tmp125 = ats_caselptrlab_mac(anairiats_sum_14, arg1, atslab_0) ;
tmp126 = atspre_eq_int_int (tmp125, 0) ;
if (!tmp126) { goto __ats_lab_22_1 ; }
tmp128 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d1exp_loc) ;
/* tmp127 = */ prerr_error2_loc_02087_ (tmp128) ;
/* tmp129 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("d1exp_tr_arg_body_ann")) ;
/* tmp130 = */ atspre_prerr_string (ATSstrcst(": the function cannot be given an unboxed closure type.")) ;
/* tmp131 = */ atspre_prerr_newline () ;
tmp132 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp132)->tag = 28 ;
ats_selptrset_mac(anairiats_sum_4, tmp132, atslab_0, arg0) ;
/* tmp124 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp132) ;
break ;

/* branch: __ats_lab_22 */
__ats_lab_22_0:
__ats_lab_22_1:
break ;
} while (0) ;
return /* (tmp124) */ ;
} /* end of [auxck_13] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 8829(line=319, offs=7) -- 9328(line=331, offs=8)
*/
ATSstaticdec()
ats_void_type
auxck_14 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) {
/* local vardec */
// ATSlocal_void (tmp134) ;
ATSlocal (ats_bool_type, tmp135) ;
ATSlocal (ats_ptr_type, tmp136) ;
// ATSlocal_void (tmp137) ;
// ATSlocal_void (tmp138) ;
// ATSlocal_void (tmp139) ;
ATSlocal (ats_bool_type, tmp140) ;
// ATSlocal_void (tmp141) ;
ATSlocal (ats_bool_type, tmp142) ;
// ATSlocal_void (tmp143) ;
ATSlocal (ats_ptr_type, tmp144) ;

__ats_lab_auxck_14:
tmp135 = atspre_neq_int_int (arg1, arg2) ;
if (tmp135) {
tmp136 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d1exp_loc) ;
/* tmp137 = */ prerr_error2_loc_02087_ (tmp136) ;
/* tmp138 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("d1exp_tr_arg_body_ann")) ;
tmp140 = atspre_lt_int_int (arg1, arg2) ;
if (tmp140) {
/* tmp139 = */ atspre_prerr_string (ATSstrcst(": linear function is given a nonlinear type.")) ;
} else {
/* empty */
} /* end of [if] */
tmp142 = atspre_gt_int_int (arg1, arg2) ;
if (tmp142) {
/* tmp141 = */ atspre_prerr_string (ATSstrcst(": nonlinear function is given a linear type.")) ;
} else {
/* empty */
} /* end of [if] */
/* tmp143 = */ atspre_prerr_newline () ;
tmp144 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp144)->tag = 28 ;
ats_selptrset_mac(anairiats_sum_4, tmp144, atslab_0, arg0) ;
/* tmp134 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp144) ;
} else {
/* empty */
} /* end of [if] */
return /* (tmp134) */ ;
} /* end of [auxck_14] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 9500(line=341, offs=7) -- 10019(line=355, offs=6)
*/
ATSstaticdec()
ats_void_type
auxck_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp148) ;
ATSlocal (ats_bool_type, tmp149) ;
ATSlocal (ats_bool_type, tmp150) ;
ATSlocal (ats_ptr_type, tmp151) ;
// ATSlocal_void (tmp152) ;
// ATSlocal_void (tmp153) ;
// ATSlocal_void (tmp154) ;
// ATSlocal_void (tmp155) ;
ATSlocal (ats_ptr_type, tmp156) ;

__ats_lab_auxck_15:
tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_is_none (arg2) ;
tmp150 = atspre_neg_bool (tmp149) ;
if (tmp150) {
tmp151 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg1), atslab_p1at_loc) ;
/* tmp152 = */ prerr_error2_loc_02087_ (tmp151) ;
/* tmp153 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("d1exp_tr_arg_body_ann")) ;
/* tmp154 = */ atspre_prerr_string (ATSstrcst(": the function argument cannot be ascribed refval types.")) ;
/* tmp155 = */ atspre_prerr_newline () ;
tmp156 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp156)->tag = 28 ;
ats_selptrset_mac(anairiats_sum_4, tmp156, atslab_0, arg0) ;
/* tmp148 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp156) ;
} else {
/* empty */
} /* end of [if] */
return /* (tmp148) */ ;
} /* end of [auxck_15] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 10291(line=368, offs=7) -- 10741(line=379, offs=8)
*/
ATSstaticdec()
ats_void_type
auxck_16 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) {
/* local vardec */
// ATSlocal_void (tmp164) ;
ATSlocal (ats_bool_type, tmp165) ;
// ATSlocal_void (tmp166) ;
ATSlocal (ats_ptr_type, tmp167) ;
// ATSlocal_void (tmp168) ;
// ATSlocal_void (tmp169) ;
// ATSlocal_void (tmp170) ;
// ATSlocal_void (tmp171) ;
ATSlocal (ats_ptr_type, tmp172) ;

__ats_lab_auxck_16:
tmp165 = atspre_neq_int_int (arg1, arg2) ;
if (tmp165) {
tmp167 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d1exp_loc) ;
/* tmp166 = */ prerr_error2_loc_02087_ (tmp167) ;
/* tmp168 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("d1exp_tr_arg_body_ann")) ;
/* tmp169 = */ atspre_prerr_string (ATSstrcst(": proof arity mismatch")) ;
/* tmp170 = */ atspre_prerrf_exn (ATSstrcst(": the expected number of proof arguments is [%i]"), arg1) ;
/* tmp171 = */ atspre_prerr_newline () ;
tmp172 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp172)->tag = 28 ;
ats_selptrset_mac(anairiats_sum_4, tmp172, atslab_0, arg0) ;
/* tmp164 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp172) ;
} else {
/* empty */
} /* end of [if] */
return /* (tmp164) */ ;
} /* end of [auxck_16] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 10860(line=387, offs=6) -- 11317(line=399, offs=7)
*/
ATSstaticdec()
ats_void_type
auxerr_17 (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp174) ;
ATSlocal (ats_ptr_type, tmp175) ;
// ATSlocal_void (tmp176) ;
// ATSlocal_void (tmp177) ;
// ATSlocal_void (tmp178) ;
// ATSlocal_void (tmp179) ;
ATSlocal (ats_bool_type, tmp180) ;
// ATSlocal_void (tmp181) ;
ATSlocal (ats_bool_type, tmp182) ;
// ATSlocal_void (tmp183) ;
ATSlocal (ats_ptr_type, tmp184) ;

__ats_lab_auxerr_17:
tmp175 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d1exp_loc) ;
/* tmp176 = */ prerr_error2_loc_02087_ (tmp175) ;
/* tmp177 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("d1exp_tr_arg_body_ann")) ;
/* tmp178 = */ atspre_prerr_string (ATSstrcst(": arity mismatch")) ;
tmp180 = atspre_lt_int_int (arg1, 0) ;
if (tmp180) {
/* tmp179 = */ atspre_prerr_string (ATSstrcst(": more arguments are expected.")) ;
} else {
/* empty */
} /* end of [if] */
tmp182 = atspre_gt_int_int (arg1, 0) ;
if (tmp182) {
/* tmp181 = */ atspre_prerr_string (ATSstrcst(": fewer arguments are expected.")) ;
} else {
/* empty */
} /* end of [if] */
/* tmp183 = */ atspre_prerr_newline () ;
tmp184 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp184)->tag = 28 ;
ats_selptrset_mac(anairiats_sum_4, tmp184, atslab_0, arg0) ;
/* tmp174 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp184) ;
return /* (tmp174) */ ;
} /* end of [auxerr_17] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 11346(line=401, offs=7) -- 11905(line=418, offs=10)
*/
ATSstaticdec()
ats_ptr_type
aux_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp185) ;
ATSlocal (ats_ptr_type, tmp186) ;
ATSlocal (ats_ptr_type, tmp187) ;
ATSlocal (ats_ptr_type, tmp188) ;
ATSlocal (ats_ptr_type, tmp189) ;
ATSlocal (ats_ptr_type, tmp190) ;
ATSlocal (ats_ptr_type, tmp191) ;
ATSlocal (ats_ptr_type, tmp192) ;
ATSlocal (ats_ptr_type, tmp193) ;
ATSlocal (ats_int_type, tmp194) ;
ATSlocal (ats_int_type, tmp195) ;

__ats_lab_aux_18:
do {
/* branch: __ats_lab_25 */
__ats_lab_25_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; }
__ats_lab_25_1:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_27_1 ; }
__ats_lab_25_2:
tmp186 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp187 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp188 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ;
tmp189 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ;
tmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp188) ;
tmp192 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, tmp186), atslab_p2at_loc) ;
tmp191 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__p2at_ann (tmp192, tmp186, tmp190) ;
tmp193 = aux_18 (tmp187, tmp189, arg2) ;
tmp185 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp185, atslab_0, tmp191) ;
ats_selptrset_mac(anairiats_sum_5, tmp185, atslab_1, tmp193) ;
break ;

/* branch: __ats_lab_26 */
__ats_lab_26_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; }
__ats_lab_26_1:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_28_1 ; }
__ats_lab_26_2:
tmp185 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_27 */
__ats_lab_27_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; }
__ats_lab_27_1:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_27_2:
tmp194 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ;
ats_ptrget_mac(ats_int_type, arg2) = tmp194 ;
tmp185 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_28 */
__ats_lab_28_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_28_1:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_28_2:
tmp195 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ;
ats_ptrget_mac(ats_int_type, arg2) = tmp195 ;
tmp185 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp185) ;
} /* end of [aux_18] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 12631(line=450, offs=7) -- 12916(line=458, offs=8)
*/
ATSstaticdec()
ats_void_type
auxck_19 (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp215) ;
ATSlocal (ats_bool_type, tmp216) ;
// ATSlocal_void (tmp217) ;
ATSlocal (ats_ptr_type, tmp218) ;
// ATSlocal_void (tmp219) ;
// ATSlocal_void (tmp220) ;
ATSlocal (ats_ptr_type, tmp221) ;

__ats_lab_auxck_19:
tmp216 = atspre_gt_int_int (arg1, 0) ;
if (tmp216) {
tmp218 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg0), atslab_d1exp_loc) ;
/* tmp217 = */ prerr_error2_loc_02087_ (tmp218) ;
/* tmp219 = */ atspre_prerr_string (ATSstrcst(": the [funclo/effect] annonation is redundant.")) ;
/* tmp220 = */ atspre_prerr_newline () ;
tmp221 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp221)->tag = 28 ;
ats_selptrset_mac(anairiats_sum_4, tmp221, atslab_0, arg0) ;
/* tmp215 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp221) ;
} else {
/* empty */
} /* end of [if] */
return /* (tmp215) */ ;
} /* end of [auxck_19] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 7851(line=283, offs=1) -- 13328(line=475, offs=4)
*/
ATSstaticdec()
anairiats_rec_1
d1exp_tr_arg_body_ann_11 (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, ats_int_type arg7, ats_ptr_type arg8, ats_ptr_type arg9) {
/* local vardec */
ATSlocal (anairiats_rec_1, tmp123) ;
// ATSlocal_void (tmp133) ;
// ATSlocal_void (tmp145) ;
ATSlocal (ats_ptr_type, tmp146) ;
ATSlocal (ats_ptr_type, tmp147) ;
// ATSlocal_void (tmp157) ;
ATSlocal (ats_int_type, tmp158) ;
ATSlocal (ats_ptr_type, tmp159) ;
ATSlocal (ats_ptr_type, tmp160) ;
ATSlocal (ats_int_type, tmp161) ;
ATSlocal (ats_ptr_type, tmp162) ;
ATSlocal (ats_ptr_type, tmp163) ;
// ATSlocal_void (tmp173) ;
ATSlocal (ats_int_type, tmp196) ;
ATSlocal (ats_ptr_type, tmp197) ;
// ATSlocal_void (tmp198) ;
ATSlocal (ats_bool_type, tmp199) ;
// ATSlocal_void (tmp200) ;
// ATSlocal_void (tmp201) ;
ATSlocal (ats_ptr_type, tmp202) ;
ATSlocal (ats_ptr_type, tmp203) ;
// ATSlocal_void (tmp204) ;
ATSlocal (ats_ptr_type, tmp205) ;
ATSlocal (ats_ptr_type, tmp206) ;
// ATSlocal_void (tmp207) ;
// ATSlocal_void (tmp208) ;
// ATSlocal_void (tmp209) ;
ATSlocal (ats_int_type, tmp210) ;
ATSlocal (ats_ptr_type, tmp212) ;
ATSlocal (ats_int_type, tmp213) ;
ATSlocal (ats_int_type, tmp214) ;
// ATSlocal_void (tmp222) ;
ATSlocal (ats_ptr_type, tmp223) ;
// ATSlocal_void (tmp224) ;
// ATSlocal_void (tmp225) ;
ATSlocal (ats_ptr_type, tmp226) ;
ATSlocal (ats_ptr_type, tmp227) ;
ATSlocal (ats_ptr_type, tmp228) ;

__ats_lab_d1exp_tr_arg_body_ann_11:
/* tmp133 = */ auxck_13 (arg0, arg1) ;
/* tmp145 = */ auxck_14 (arg0, arg2, arg7) ;
/* ats_ptr_type tmp146 ; */
tmp146 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTnil_0) ;
tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__p1at_tr_arg (arg8, (&tmp146)) ;
/* tmp157 = */ auxck_15 (arg0, arg8, tmp146) ;
/* ats_int_type tmp158 ; */
tmp158 = -1 ;
tmp160 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, tmp147), atslab_p2at_node) ;
do {
/* branch: __ats_lab_23 */
__ats_lab_23_0:
if (((ats_sum_ptr_type)tmp160)->tag != 18) { goto __ats_lab_24_0 ; }
__ats_lab_23_1:
tmp161 = ats_caselptrlab_mac(anairiats_sum_17, tmp160, atslab_0) ;
tmp162 = ats_caselptrlab_mac(anairiats_sum_17, tmp160, atslab_1) ;
tmp158 = tmp161 ;
tmp159 = tmp162 ;
break ;

/* branch: __ats_lab_24 */
__ats_lab_24_0:
__ats_lab_24_1:
tmp163 = (ats_sum_ptr_type)0 ;
tmp159 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_0, tmp147) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_1, tmp163) ;
break ;
} while (0) ;
/* tmp173 = */ auxck_16 (arg0, arg4, tmp158) ;
/* ats_int_type tmp196 ; */
tmp196 = 0 ;
tmp197 = aux_18 (tmp159, arg5, (&tmp196)) ;
tmp199 = atspre_neq_int_int (tmp196, 0) ;
if (tmp199) {
/* tmp198 = */ auxerr_17 (arg0, tmp196) ;
} else {
/* empty */
} /* end of [if] */
/* tmp200 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_push () ;
/* tmp201 = ats_selsin_mac(tmp200, atslab_1) */ ;
tmp203 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, tmp147), atslab_p2at_svs) ;
tmp202 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list (tmp203) ;
/* tmp204 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp202) ;
tmp206 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, tmp147), atslab_p2at_dvs) ;
tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord2list (tmp206) ;
/* tmp207 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dvarlst (tmp205) ;
/* tmp208 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_inc () ;
/* tmp209 = ats_selsin_mac(tmp208, atslab_1) */ ;
/* ats_int_type tmp210 ; */
tmp210 = 0 ;
tmp212 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, arg9), atslab_d1exp_node) ;
do {
/* branch: __ats_lab_29 */
__ats_lab_29_0:
if (((ats_sum_ptr_type)tmp212)->tag != 66) { goto __ats_lab_30_0 ; }
__ats_lab_29_1:
tmp213 = atspre_iadd (tmp210, 1) ;
tmp210 = tmp213 ;
break ;

/* branch: __ats_lab_30 */
__ats_lab_30_0:
if (((ats_sum_ptr_type)tmp212)->tag != 67) { goto __ats_lab_31_0 ; }
__ats_lab_30_1:
tmp214 = atspre_iadd (tmp210, 1) ;
tmp210 = tmp214 ;
break ;

/* branch: __ats_lab_31 */
__ats_lab_31_0:
__ats_lab_31_1:
break ;
} while (0) ;
/* tmp222 = */ auxck_19 (arg0, tmp210) ;
tmp223 = d1exp_tr_ann_10 (arg9, arg6) ;
/* tmp224 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_dec () ;
/* tmp225 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_trans2_env_pop () ;
tmp226 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, tmp223), atslab_d2exp_loc) ;
tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_seff (tmp226, tmp223, arg3) ;
tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_ann_funclo (tmp226, tmp227, arg1) ;
tmp123.atslab_0 = tmp197 ;
tmp123.atslab_1 = tmp228 ;

return (tmp123) ;
} /* end of [d1exp_tr_arg_body_ann_11] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 13389(line=480, offs=1) -- 13792(line=498, offs=4)
*/
ATSstaticdec()
ats_void_type
stasub_add_tmparg_20 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp229) ;
ATSlocal (anairiats_rec_19, tmp230) ;
ATSlocal (ats_ptr_type, tmp231) ;
ATSlocal (ats_ptr_type, tmp232) ;
ATSlocal (ats_ptr_type, tmp233) ;
ATSlocal (ats_int_type, tmp234) ;
ATSlocal (ats_ptr_type, tmp235) ;

__ats_lab_stasub_add_tmparg_20:
do {
/* branch: __ats_lab_32 */
__ats_lab_32_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; }
__ats_lab_32_1:
tmp230 = ats_caselptrlab_mac(anairiats_sum_20, arg1, atslab_0) ;
tmp231 = ats_caselptrlab_mac(anairiats_sum_20, arg1, atslab_1) ;
do {
/* branch: __ats_lab_33 */
__ats_lab_33_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; }
__ats_lab_33_1:
tmp232 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ;
tmp233 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ;
tmp235 = ats_select_mac(tmp230, atslab_s2qua_svs) ;
tmp234 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_addlst (arg0, tmp235, tmp232) ;
arg0 = arg0 ;
arg1 = tmp231 ;
arg2 = tmp233 ;
goto __ats_lab_stasub_add_tmparg_20 ; // tail call
break ;

/* branch: __ats_lab_34 */
__ats_lab_34_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_34_1:
break ;
} while (0) ;
break ;

/* branch: __ats_lab_35 */
__ats_lab_35_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_35_1:
break ;
} while (0) ;
return /* (tmp229) */ ;
} /* end of [stasub_add_tmparg_20] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 14051(line=517, offs=1) -- 14208(line=523, offs=2)
*/
ATSstaticdec()
ats_ptr_type
aux_imparg_sarglst_22 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp237) ;
ATSlocal (ats_ptr_type, tmp238) ;
// ATSlocal_void (tmp239) ;

__ats_lab_aux_imparg_sarglst_22:
tmp238 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup (arg1) ;
/* tmp239 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp238) ;
tmp237 = tmp238 ;
return (tmp237) ;
} /* end of [aux_imparg_sarglst_22] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 14362(line=533, offs=1) -- 14637(line=541, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr1_24 (ats_ptr_type env0) {
/* local vardec */
// ATSlocal_void (tmp241) ;
// ATSlocal_void (tmp242) ;
ATSlocal (ats_ptr_type, tmp243) ;
// ATSlocal_void (tmp244) ;
// ATSlocal_void (tmp245) ;
// ATSlocal_void (tmp246) ;
ATSlocal (ats_ptr_type, tmp247) ;

__ats_lab_auxerr1_24:
tmp243 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, env0), atslab_d1ecl_loc) ;
/* tmp242 = */ prerr_error2_loc_02087_ (tmp243) ;
/* tmp244 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("i1mpdec_tr_main")) ;
/* tmp245 = */ atspre_prerr_string (ATSstrcst(": the implementation is overly applied.")) ;
/* tmp246 = */ atspre_prerr_newline () ;
tmp247 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp247)->tag = 35 ;
ats_selptrset_mac(anairiats_sum_4, tmp247, atslab_0, env0) ;
/* tmp241 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp247) ;
return /* (tmp241) */ ;
} /* end of [auxerr1_24] */

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

ats_void_type
auxerr1_24_clofun (ats_clo_ptr_type cloptr) {
auxerr1_24 (((auxerr1_24_closure_type*)cloptr)->closure_env_0) ; return ;
} /* end of function */

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

ats_clo_ptr_type
auxerr1_24_closure_make (ats_ptr_type env0) {
auxerr1_24_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr1_24_closure_type)) ;
auxerr1_24_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 14662(line=543, offs=1) -- 15068(line=555, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr2_25 (ats_ptr_type env0, ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp248) ;
// ATSlocal_void (tmp249) ;
// ATSlocal_void (tmp250) ;
// ATSlocal_void (tmp251) ;
// ATSlocal_void (tmp252) ;
ATSlocal (ats_ptr_type, tmp253) ;
ATSlocal (ats_bool_type, tmp254) ;
// ATSlocal_void (tmp255) ;
// ATSlocal_void (tmp256) ;
ATSlocal (ats_ptr_type, tmp257) ;

__ats_lab_auxerr2_25:
/* tmp249 = */ prerr_error2_loc_02087_ (arg0) ;
/* tmp250 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("i1mpdec_tr_main")) ;
/* tmp251 = */ atspre_prerr_string (ATSstrcst(": the implementation argument group is expected to contain ")) ;
tmp254 = atspre_gt_int_int (arg1, 0) ;
if (tmp254) {
tmp253 = ATSstrcst("fewer") ;
} else {
tmp253 = ATSstrcst("more") ;
} /* end of [if] */
/* tmp252 = */ atspre_prerr_string (tmp253) ;
/* tmp255 = */ atspre_prerr_string (ATSstrcst(" components.")) ;
/* tmp256 = */ atspre_prerr_newline () ;
tmp257 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp257)->tag = 35 ;
ats_selptrset_mac(anairiats_sum_4, tmp257, atslab_0, env0) ;
/* tmp248 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp257) ;
return /* (tmp248) */ ;
} /* end of [auxerr2_25] */

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

ats_void_type
auxerr2_25_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) {
auxerr2_25 (((auxerr2_25_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; return ;
} /* end of function */

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

ats_clo_ptr_type
auxerr2_25_closure_make (ats_ptr_type env0) {
auxerr2_25_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr2_25_closure_type)) ;
auxerr2_25_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 15096(line=558, offs=1) -- 15627(line=577, offs=2)
*/
ATSstaticdec()
ats_ptr_type
auxseq_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp258) ;
ATSlocal (ats_ptr_type, tmp259) ;
ATSlocal (ats_ptr_type, tmp260) ;
ATSlocal (ats_ptr_type, tmp261) ;
ATSlocal (ats_ptr_type, tmp262) ;
ATSlocal (ats_ptr_type, tmp263) ;
ATSlocal (ats_ptr_type, tmp264) ;
ATSlocal (ats_ptr_type, tmp265) ;
ATSlocal (ats_int_type, tmp266) ;
ATSlocal (ats_int_type, tmp267) ;

__ats_lab_auxseq_26:
do {
/* branch: __ats_lab_36 */
__ats_lab_36_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; }
__ats_lab_36_1:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_38_1 ; }
__ats_lab_36_2:
tmp259 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp260 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp261 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ;
tmp262 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ;
tmp263 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (tmp261) ;
tmp264 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trdn (tmp259, tmp263) ;
tmp265 = auxseq_26 (tmp260, tmp262, arg2) ;
tmp258 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp258, atslab_0, tmp264) ;
ats_selptrset_mac(anairiats_sum_5, tmp258, atslab_1, tmp265) ;
break ;

/* branch: __ats_lab_37 */
__ats_lab_37_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; }
__ats_lab_37_1:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_39_1 ; }
__ats_lab_37_2:
tmp258 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_38 */
__ats_lab_38_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; }
__ats_lab_38_1:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_38_2:
tmp266 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ;
ats_ptrget_mac(ats_int_type, arg2) = tmp266 ;
tmp258 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_39 */
__ats_lab_39_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_39_1:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_39_2:
tmp267 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ;
ats_ptrget_mac(ats_int_type, arg2) = tmp267 ;
tmp258 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp258) ;
} /* end of [auxseq_26] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_29 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp273) ;
ATSlocal (ats_ptr_type, tmp274) ;
ATSlocal (ats_ptr_type, tmp275) ;
ATSlocal (ats_ptr_type, tmp276) ;
ATSlocal (ats_ptr_type, tmp277) ;
ATSlocal (ats_ptr_type, tmp278) ;
ATSlocal (ats_ptr_type, tmp279) ;

__ats_lab_loop_29:
do {
/* branch: __ats_lab_42 */
__ats_lab_42_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; }
__ats_lab_42_1:
tmp274 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp275 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp276 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp274, arg3) ;
tmp277 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp277, atslab_0, tmp276) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp277 ;
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp278 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
arg0 = tmp275 ;
arg1 = arg1 ;
arg2 = tmp278 ;
arg3 = arg3 ;
goto __ats_lab_loop_29 ; // tail call
break ;

/* branch: __ats_lab_43 */
__ats_lab_43_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_43_1:
tmp279 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp279 ;
break ;
} while (0) ;
return /* (tmp273) */ ;
} /* end of [loop_29] */

/*
// /home/ats-lang-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, tmp272) ;
ATSlocal (ats_ptr_type, tmp280) ;
// ATSlocal_void (tmp281) ;

__ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type:
/* ats_ptr_type tmp280 ; */
/* tmp281 = */ loop_29 (arg0, arg1, (&tmp280), arg2) ;
tmp272 = tmp280 ;
return (tmp272) ;
} /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */

/*
// /home/ats-lang-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, tmp271) ;

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

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 14250(line=526, offs=1) -- 17075(line=628, offs=4)
*/
ATSstaticdec()
ats_ptr_type
aux_imparg_svararg_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp240) ;
ATSlocal (anairiats_rec_19, tmp268) ;
ATSlocal (ats_ptr_type, tmp269) ;
ATSlocal (ats_ptr_type, tmp270) ;
ATSlocal (ats_ptr_type, tmp282) ;
// ATSlocal_void (tmp283) ;
ATSlocal (ats_ptr_type, tmp284) ;
// ATSlocal_void (tmp285) ;
ATSlocal (anairiats_rec_19, tmp286) ;
ATSlocal (ats_ptr_type, tmp287) ;
ATSlocal (ats_ptr_type, tmp288) ;
ATSlocal (ats_ptr_type, tmp289) ;
// ATSlocal_void (tmp290) ;
ATSlocal (ats_ptr_type, tmp291) ;
ATSlocal (ats_ptr_type, tmp292) ;
ATSlocal (ats_ptr_type, tmp293) ;
ATSlocal (anairiats_rec_19, tmp294) ;
ATSlocal (ats_ptr_type, tmp295) ;
ATSlocal (ats_int_type, tmp296) ;
ATSlocal (ats_ptr_type, tmp297) ;
ATSlocal (ats_ptr_type, tmp298) ;
// ATSlocal_void (tmp299) ;
// ATSlocal_void (tmp300) ;
ATSlocal (ats_bool_type, tmp301) ;
ATSlocal (ats_ptr_type, tmp302) ;
// ATSlocal_void (tmp303) ;

__ats_lab_aux_imparg_svararg_23:
do {
/* branch: __ats_lab_40 */
__ats_lab_40_0:
if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_45_0 ; }
__ats_lab_40_1:
do {
/* branch: __ats_lab_41 */
__ats_lab_41_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_44_0 ; }
__ats_lab_41_1:
tmp268 = ats_caselptrlab_mac(anairiats_sum_20, arg2, atslab_0) ;
tmp269 = ats_caselptrlab_mac(anairiats_sum_20, arg2, atslab_1) ;
tmp282 = ats_select_mac(tmp268, atslab_s2qua_svs) ;
tmp270 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp282, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_dup) ;
/* tmp283 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (ats_castfn_mac(ats_ptr_type, tmp270)) ;
tmp284 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp284, atslab_0, ats_castfn_mac(ats_ptr_type, tmp270)) ;
ats_selptrset_mac(anairiats_sum_5, tmp284, atslab_1, ats_ptrget_mac(ats_ptr_type, arg3)) ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp284 ;
tmp240 = tmp269 ;
break ;

/* branch: __ats_lab_44 */
__ats_lab_44_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_44_1:
/* tmp285 = */ auxerr1_24 (arg0) ;
tmp240 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_45 */
__ats_lab_45_0:
if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_48_0 ; }
__ats_lab_45_1:
do {
/* branch: __ats_lab_46 */
__ats_lab_46_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; }
__ats_lab_46_1:
tmp286 = ats_caselptrlab_mac(anairiats_sum_20, arg2, atslab_0) ;
tmp287 = ats_caselptrlab_mac(anairiats_sum_20, arg2, atslab_1) ;
tmp289 = ats_select_mac(tmp286, atslab_s2qua_svs) ;
tmp288 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp289, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_dup) ;
/* tmp290 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (ats_castfn_mac(ats_ptr_type, tmp288)) ;
tmp291 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp291, atslab_0, ats_castfn_mac(ats_ptr_type, tmp288)) ;
ats_selptrset_mac(anairiats_sum_5, tmp291, atslab_1, ats_ptrget_mac(ats_ptr_type, arg3)) ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp291 ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp287 ;
arg3 = arg3 ;
goto __ats_lab_aux_imparg_svararg_23 ; // tail call
break ;

/* branch: __ats_lab_47 */
__ats_lab_47_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_47_1:
tmp240 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_48 */
__ats_lab_48_0:
// if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_48_1:
tmp292 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ;
tmp293 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_1) ;
do {
/* branch: __ats_lab_49 */
__ats_lab_49_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_50_0 ; }
__ats_lab_49_1:
tmp294 = ats_caselptrlab_mac(anairiats_sum_20, arg2, atslab_0) ;
tmp295 = ats_caselptrlab_mac(anairiats_sum_20, arg2, atslab_1) ;
/* ats_int_type tmp296 ; */
tmp296 = 0 ;
tmp298 = ats_select_mac(tmp294, atslab_s2qua_svs) ;
tmp297 = auxseq_26 (tmp293, tmp298, (&tmp296)) ;
/* tmp299 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp297) ;
tmp301 = atspre_neq_int_int (tmp296, 0) ;
if (tmp301) {
/* tmp300 = */ auxerr2_25 (arg0, tmp292, tmp296) ;
} else {
/* empty */
} /* end of [if] */
tmp302 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp302, atslab_0, tmp297) ;
ats_selptrset_mac(anairiats_sum_5, tmp302, atslab_1, ats_ptrget_mac(ats_ptr_type, arg3)) ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp302 ;
tmp240 = tmp295 ;
break ;

/* branch: __ats_lab_50 */
__ats_lab_50_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_50_1:
/* tmp303 = */ auxerr1_24 (arg0) ;
tmp240 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp240) ;
} /* end of [aux_imparg_svararg_23] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 17227(line=636, offs=6) -- 17522(line=643, offs=6)
*/
ATSstaticdec()
ats_void_type
auxerr_31 (ats_ptr_type env0) {
/* local vardec */
// ATSlocal_void (tmp305) ;
// ATSlocal_void (tmp306) ;
ATSlocal (ats_ptr_type, tmp307) ;
// ATSlocal_void (tmp308) ;
// ATSlocal_void (tmp309) ;
// ATSlocal_void (tmp310) ;
ATSlocal (ats_ptr_type, tmp311) ;

__ats_lab_auxerr_31:
tmp307 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, env0), atslab_d1ecl_loc) ;
/* tmp306 = */ prerr_error2_loc_02087_ (tmp307) ;
/* tmp308 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("i1mpdec_tr_main")) ;
/* tmp309 = */ atspre_prerr_string (ATSstrcst(": the implementation is expected to be fully applied.")) ;
/* tmp310 = */ atspre_prerr_newline () ;
tmp311 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp311)->tag = 35 ;
ats_selptrset_mac(anairiats_sum_4, tmp311, atslab_0, env0) ;
/* tmp305 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp311) ;
return /* (tmp305) */ ;
} /* end of [auxerr_31] */

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

ats_void_type
auxerr_31_clofun (ats_clo_ptr_type cloptr) {
auxerr_31 (((auxerr_31_closure_type*)cloptr)->closure_env_0) ; return ;
} /* end of function */

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

ats_clo_ptr_type
auxerr_31_closure_make (ats_ptr_type env0) {
auxerr_31_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr_31_closure_type)) ;
auxerr_31_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 17114(line=631, offs=1) -- 18001(line=663, offs=4)
*/
ATSstaticdec()
ats_void_type
aux_imparg_svararglst_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) {
/* local vardec */
// ATSlocal_void (tmp304) ;
ATSlocal (ats_ptr_type, tmp312) ;
ATSlocal (ats_ptr_type, tmp313) ;
ATSlocal (ats_ptr_type, tmp314) ;

__ats_lab_aux_imparg_svararglst_30:
do {
/* branch: __ats_lab_51 */
__ats_lab_51_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; }
__ats_lab_51_1:
tmp312 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ;
tmp313 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ;
tmp314 = aux_imparg_svararg_23 (arg0, tmp312, arg1, arg3) ;
arg0 = arg0 ;
arg1 = tmp314 ;
arg2 = tmp313 ;
arg3 = arg3 ;
goto __ats_lab_aux_imparg_svararglst_30 ; // tail call
break ;

/* branch: __ats_lab_52 */
__ats_lab_52_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_52_1:
do {
/* branch: __ats_lab_53 */
__ats_lab_53_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; }
__ats_lab_53_1:
/* tmp304 = */ auxerr_31 (arg0) ;
break ;

/* branch: __ats_lab_54 */
__ats_lab_54_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_54_1:
break ;
} while (0) ;
break ;
} while (0) ;
return /* (tmp304) */ ;
} /* end of [aux_imparg_svararglst_30] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 61997(line=2223, offs=7) -- 62162(line=2225, offs=74)
*/
ATSstaticdec()
ats_ptr_type
loop_35 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp325) ;
ATSlocal (ats_ptr_type, tmp326) ;
ATSlocal (ats_ptr_type, tmp327) ;
ATSlocal (ats_ptr_type, tmp328) ;

__ats_lab_loop_35:
do {
/* branch: __ats_lab_57 */
__ats_lab_57_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; }
__ats_lab_57_1:
tmp326 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp327 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp328 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp328, atslab_0, tmp326) ;
ats_selptrset_mac(anairiats_sum_5, tmp328, atslab_1, arg1) ;
arg0 = tmp327 ;
arg1 = tmp328 ;
goto __ats_lab_loop_35 ; // tail call
break ;

/* branch: __ats_lab_58 */
__ats_lab_58_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_58_1:
tmp325 = arg1 ;
break ;
} while (0) ;
return (tmp325) ;
} /* end of [loop_35] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 61976(line=2222, offs=25) -- 62297(line=2231, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_reverse_append2_vt_01435_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp324) ;

__ats_lab_list_reverse_append2_vt_01435_ats_ptr_type:
tmp324 = loop_35 (arg0, arg1) ;
return (tmp324) ;
} /* end of [list_reverse_append2_vt_01435_ats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 62382(line=2236, offs=14) -- 62438(line=2237, offs=50)
*/
ATSstaticdec()
ats_ptr_type
list_reverse_01436_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp323) ;
ATSlocal (ats_ptr_type, tmp329) ;

__ats_lab_list_reverse_01436_ats_ptr_type:
tmp329 = (ats_sum_ptr_type)0 ;
tmp323 = list_reverse_append2_vt_01435_ats_ptr_type (arg0, tmp329) ;
return (tmp323) ;
} /* end of [list_reverse_01436_ats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 8880(line=328, offs=5) -- 9252(line=342, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_39 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
// ATSlocal_void (tmp336) ;
ATSlocal (ats_ptr_type, tmp337) ;
ATSlocal (ats_ptr_type, tmp338) ;
ATSlocal (ats_ptr_type, tmp339) ;
ATSlocal (ats_ptr_type, tmp340) ;

__ats_lab_loop_39:
do {
/* branch: __ats_lab_60 */
__ats_lab_60_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_61_0 ; }
__ats_lab_60_1:
tmp337 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp338 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp339 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp339, atslab_0, tmp337) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp339 ;
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp340 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
arg0 = tmp338 ;
arg1 = arg1 ;
arg2 = tmp340 ;
goto __ats_lab_loop_39 ; // tail call
break ;

/* branch: __ats_lab_61 */
__ats_lab_61_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_61_1:
ats_ptrget_mac(ats_ptr_type, arg2) = arg1 ;
break ;
} while (0) ;
return /* (tmp336) */ ;
} /* end of [loop_39] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 8858(line=326, offs=17) -- 9436(line=351, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_append2_vt_01314_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp335) ;
ATSlocal (ats_ptr_type, tmp341) ;
// ATSlocal_void (tmp342) ;

__ats_lab_list_append2_vt_01314_ats_ptr_type:
/* ats_ptr_type tmp341 ; */
/* tmp342 = */ loop_39 (arg0, arg1, (&tmp341)) ;
tmp335 = tmp341 ;
return (tmp335) ;
} /* end of [list_append2_vt_01314_ats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 12290(line=449, offs=7) -- 12492(line=454, offs=51)
*/
ATSstaticdec()
ats_ptr_type
aux_37 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp332) ;
ATSlocal (ats_ptr_type, tmp333) ;
ATSlocal (ats_ptr_type, tmp334) ;
ATSlocal (ats_ptr_type, tmp343) ;
ATSlocal (ats_ptr_type, tmp344) ;

__ats_lab_aux_37:
do {
/* branch: __ats_lab_59 */
__ats_lab_59_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; }
__ats_lab_59_1:
tmp333 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ;
tmp334 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ;
tmp343 = aux_37 (tmp333, tmp334) ;
tmp332 = list_append2_vt_01314_ats_ptr_type (arg0, tmp343) ;
break ;

/* branch: __ats_lab_62 */
__ats_lab_62_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_62_1:
tmp344 = (ats_sum_ptr_type)0 ;
tmp332 = list_append2_vt_01314_ats_ptr_type (arg0, tmp344) ;
break ;
} while (0) ;
return (tmp332) ;
} /* end of [aux_37] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 12272(line=448, offs=13) -- 12586(line=458, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_concat_01321_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp331) ;
ATSlocal (ats_ptr_type, tmp345) ;
ATSlocal (ats_ptr_type, tmp346) ;

__ats_lab_list_concat_01321_ats_ptr_type:
do {
/* branch: __ats_lab_63 */
__ats_lab_63_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; }
__ats_lab_63_1:
tmp345 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp346 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp331 = aux_37 (tmp345, tmp346) ;
break ;

/* branch: __ats_lab_64 */
__ats_lab_64_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_64_1:
tmp331 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp331) ;
} /* end of [list_concat_01321_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 18043(line=666, offs=1) -- 18602(line=691, offs=4)
*/
ATSstaticdec()
anairiats_rec_1
aux_imparg_32 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (anairiats_rec_1, tmp315) ;
ATSlocal (ats_ptr_type, tmp316) ;
ATSlocal (ats_ptr_type, tmp317) ;
ATSlocal (ats_ptr_type, tmp318) ;
ATSlocal (ats_ptr_type, tmp319) ;
ATSlocal (ats_ptr_type, tmp320) ;
// ATSlocal_void (tmp321) ;
ATSlocal (ats_ptr_type, tmp322) ;
ATSlocal (ats_ptr_type, tmp330) ;
ATSlocal (ats_ptr_type, tmp347) ;

__ats_lab_aux_imparg_32:
do {
/* branch: __ats_lab_55 */
__ats_lab_55_0:
if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_56_0 ; }
__ats_lab_55_1:
tmp316 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_0) ;
tmp317 = aux_imparg_sarglst_22 (arg0, tmp316) ;
tmp318 = (ats_sum_ptr_type)0 ;
tmp315.atslab_0 = tmp317 ;
tmp315.atslab_1 = tmp318 ;

break ;

/* branch: __ats_lab_56 */
__ats_lab_56_0:
// if (((ats_sum_ptr_type)arg2)->tag != 1) { ats_deadcode_failure_handle () ; }
__ats_lab_56_1:
tmp319 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_0) ;
/* ats_ptr_type tmp320 ; */
tmp320 = (ats_sum_ptr_type)0 ;
/* tmp321 = */ aux_imparg_svararglst_30 (arg0, arg1, tmp319, (&tmp320)) ;
tmp322 = list_reverse_01436_ats_ptr_type (tmp320) ;
tmp330 = list_concat_01321_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp322)) ;
tmp347 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
ats_selptrset_mac(anairiats_sum_7, tmp347, atslab_0, ats_castfn_mac(ats_ptr_type, tmp322)) ;
tmp315.atslab_0 = ats_castfn_mac(ats_ptr_type, tmp330) ;
tmp315.atslab_1 = tmp347 ;

break ;
} while (0) ;
return (tmp315) ;
} /* end of [aux_imparg_32] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 18633(line=694, offs=1) -- 19357(line=721, offs=4)
*/
ATSstaticdec()
ats_ptr_type
aux_tmparg_s1explst_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp348) ;
ATSlocal (ats_ptr_type, tmp349) ;
ATSlocal (ats_ptr_type, tmp350) ;
ATSlocal (ats_ptr_type, tmp351) ;
ATSlocal (ats_ptr_type, tmp352) ;
ATSlocal (ats_ptr_type, tmp353) ;
ATSlocal (ats_ptr_type, tmp354) ;
ATSlocal (ats_ptr_type, tmp355) ;
ATSlocal (ats_int_type, tmp356) ;
ATSlocal (ats_int_type, tmp357) ;

__ats_lab_aux_tmparg_s1explst_40:
do {
/* branch: __ats_lab_65 */
__ats_lab_65_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; }
__ats_lab_65_1:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_67_1 ; }
__ats_lab_65_2:
tmp349 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ;
tmp350 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ;
tmp351 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ;
tmp352 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ;
tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (tmp349) ;
tmp354 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp351, tmp353) ;
tmp355 = aux_tmparg_s1explst_40 (arg0, tmp350, tmp352, arg3) ;
tmp348 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp348, atslab_0, tmp354) ;
ats_selptrset_mac(anairiats_sum_5, tmp348, atslab_1, tmp355) ;
break ;

/* branch: __ats_lab_66 */
__ats_lab_66_0:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_67_0 ; }
__ats_lab_66_1:
if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_68_1 ; }
__ats_lab_66_2:
tmp348 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_67 */
__ats_lab_67_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; }
__ats_lab_67_1:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_67_2:
tmp356 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ;
ats_ptrget_mac(ats_int_type, arg3) = tmp356 ;
tmp348 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_68 */
__ats_lab_68_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_68_1:
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_68_2:
tmp357 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ;
ats_ptrget_mac(ats_int_type, arg3) = tmp357 ;
tmp348 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp348) ;
} /* end of [aux_tmparg_s1explst_40] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 19495(line=729, offs=6) -- 19970(line=740, offs=6)
*/
ATSstaticdec()
ats_void_type
auxerr1_42 (ats_ptr_type env0, ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp359) ;
// ATSlocal_void (tmp360) ;
ATSlocal (ats_ptr_type, tmp361) ;
// ATSlocal_void (tmp362) ;
// ATSlocal_void (tmp363) ;
// ATSlocal_void (tmp364) ;
ATSlocal (ats_bool_type, tmp365) ;
// ATSlocal_void (tmp366) ;
ATSlocal (ats_bool_type, tmp367) ;
// ATSlocal_void (tmp368) ;
ATSlocal (ats_ptr_type, tmp369) ;

__ats_lab_auxerr1_42:
tmp361 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_t1mpmarg_loc) ;
/* tmp360 = */ prerr_error2_loc_02087_ (tmp361) ;
/* tmp362 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("i1mpdec_tr_main: aux_tmparg_marglst")) ;
/* tmp363 = */ atspre_prerr_string (ATSstrcst(": the template argument group is expected to be contain ")) ;
tmp365 = atspre_gt_int_int (arg1, 0) ;
if (tmp365) {
/* tmp364 = */ atspre_prerr_string (ATSstrcst("more components.")) ;
} else {
/* empty */
} /* end of [if] */
tmp367 = atspre_lt_int_int (arg1, 0) ;
if (tmp367) {
/* tmp366 = */ atspre_prerr_string (ATSstrcst("fewer components.")) ;
} else {
/* empty */
} /* end of [if] */
/* tmp368 = */ atspre_prerr_newline () ;
tmp369 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp369)->tag = 35 ;
ats_selptrset_mac(anairiats_sum_4, tmp369, atslab_0, env0) ;
/* tmp359 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp369) ;
return /* (tmp359) */ ;
} /* end of [auxerr1_42] */

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

ats_void_type
auxerr1_42_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) {
auxerr1_42 (((auxerr1_42_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; return ;
} /* end of function */

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

ats_clo_ptr_type
auxerr1_42_closure_make (ats_ptr_type env0) {
auxerr1_42_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr1_42_closure_type)) ;
auxerr1_42_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 19999(line=742, offs=6) -- 20323(line=749, offs=6)
*/
ATSstaticdec()
ats_void_type
auxerr2_43 (ats_ptr_type env0) {
/* local vardec */
// ATSlocal_void (tmp370) ;
// ATSlocal_void (tmp371) ;
ATSlocal (ats_ptr_type, tmp372) ;
// ATSlocal_void (tmp373) ;
// ATSlocal_void (tmp374) ;
// ATSlocal_void (tmp375) ;
ATSlocal (ats_ptr_type, tmp376) ;

__ats_lab_auxerr2_43:
tmp372 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, env0), atslab_d1ecl_loc) ;
/* tmp371 = */ prerr_error2_loc_02087_ (tmp372) ;
/* tmp373 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("i1mpdec_tr_main: aux_tmparg_marglst")) ;
/* tmp374 = */ atspre_prerr_string (ATSstrcst(": the template is expected to be fully applied but it is not.")) ;
/* tmp375 = */ atspre_prerr_newline () ;
tmp376 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp376)->tag = 35 ;
ats_selptrset_mac(anairiats_sum_4, tmp376, atslab_0, env0) ;
/* tmp370 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp376) ;
return /* (tmp370) */ ;
} /* end of [auxerr2_43] */

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

ats_void_type
auxerr2_43_clofun (ats_clo_ptr_type cloptr) {
auxerr2_43 (((auxerr2_43_closure_type*)cloptr)->closure_env_0) ; return ;
} /* end of function */

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

ats_clo_ptr_type
auxerr2_43_closure_make (ats_ptr_type env0) {
auxerr2_43_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr2_43_closure_type)) ;
auxerr2_43_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 20352(line=751, offs=6) -- 20648(line=758, offs=6)
*/
ATSstaticdec()
ats_void_type
auxerr3_44 (ats_ptr_type env0) {
/* local vardec */
// ATSlocal_void (tmp377) ;
// ATSlocal_void (tmp378) ;
ATSlocal (ats_ptr_type, tmp379) ;
// ATSlocal_void (tmp380) ;
// ATSlocal_void (tmp381) ;
// ATSlocal_void (tmp382) ;
ATSlocal (ats_ptr_type, tmp383) ;

__ats_lab_auxerr3_44:
tmp379 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, env0), atslab_d1ecl_loc) ;
/* tmp378 = */ prerr_error2_loc_02087_ (tmp379) ;
/* tmp380 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("i1mpdec_tr_main: aux_tmparg_marglst")) ;
/* tmp381 = */ atspre_prerr_string (ATSstrcst(": the template is overly applied.")) ;
/* tmp382 = */ atspre_prerr_newline () ;
tmp383 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp383)->tag = 35 ;
ats_selptrset_mac(anairiats_sum_4, tmp383, atslab_0, env0) ;
/* tmp377 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp383) ;
return /* (tmp377) */ ;
} /* end of [auxerr3_44] */

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

ats_void_type
auxerr3_44_clofun (ats_clo_ptr_type cloptr) {
auxerr3_44 (((auxerr3_44_closure_type*)cloptr)->closure_env_0) ; return ;
} /* end of function */

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

ats_clo_ptr_type
auxerr3_44_closure_make (ats_ptr_type env0) {
auxerr3_44_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr3_44_closure_type)) ;
auxerr3_44_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 19397(line=724, offs=1) -- 21214(line=777, offs=4)
*/
ATSstaticdec()
ats_ptr_type
aux_tmparg_marglst_41 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp358) ;
ATSlocal (anairiats_rec_19, tmp384) ;
ATSlocal (ats_ptr_type, tmp385) ;
ATSlocal (ats_ptr_type, tmp386) ;
ATSlocal (ats_ptr_type, tmp387) ;
ATSlocal (ats_int_type, tmp388) ;
ATSlocal (ats_ptr_type, tmp389) ;
ATSlocal (ats_ptr_type, tmp390) ;
ATSlocal (ats_ptr_type, tmp391) ;
// ATSlocal_void (tmp392) ;
ATSlocal (ats_bool_type, tmp393) ;
ATSlocal (ats_ptr_type, tmp394) ;
// ATSlocal_void (tmp395) ;
// ATSlocal_void (tmp396) ;

__ats_lab_aux_tmparg_marglst_41:
do {
/* branch: __ats_lab_69 */
__ats_lab_69_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_70_0 ; }
__ats_lab_69_1:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_71_1 ; }
__ats_lab_69_2:
tmp384 = ats_caselptrlab_mac(anairiats_sum_20, arg1, atslab_0) ;
tmp385 = ats_caselptrlab_mac(anairiats_sum_20, arg1, atslab_1) ;
tmp386 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ;
tmp387 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ;
/* ats_int_type tmp388 ; */
tmp388 = 0 ;
tmp390 = ats_select_mac(tmp384, atslab_s2qua_svs) ;
tmp391 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, tmp386), atslab_t1mpmarg_arg) ;
tmp389 = aux_tmparg_s1explst_40 (arg0, tmp390, tmp391, (&tmp388)) ;
tmp393 = atspre_neq_int_int (tmp388, 0) ;
if (tmp393) {
/* tmp392 = */ auxerr1_42 (arg0, tmp386, tmp388) ;
} else {
/* empty */
} /* end of [if] */
tmp394 = aux_tmparg_marglst_41 (arg0, tmp385, tmp387) ;
tmp358 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp358, atslab_0, tmp389) ;
ats_selptrset_mac(anairiats_sum_5, tmp358, atslab_1, tmp394) ;
break ;

/* branch: __ats_lab_70 */
__ats_lab_70_0:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; }
__ats_lab_70_1:
if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_72_1 ; }
__ats_lab_70_2:
tmp358 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_71 */
__ats_lab_71_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_72_0 ; }
__ats_lab_71_1:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_71_2:
/* tmp395 = */ auxerr2_43 (arg0) ;
tmp358 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_72 */
__ats_lab_72_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_72_1:
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_72_2:
/* tmp396 = */ auxerr3_44 (arg0) ;
tmp358 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp358) ;
} /* end of [aux_tmparg_marglst_41] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 21257(line=780, offs=1) -- 21392(line=787, offs=4)
*/
ATSstaticdec()
ats_ptr_type
aux_tmparg_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp397) ;

__ats_lab_aux_tmparg_45:
tmp397 = aux_tmparg_marglst_41 (arg0, arg1, arg2) ;
return (tmp397) ;
} /* end of [aux_tmparg_45] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 21423(line=790, offs=1) -- 21739(line=800, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_tmparg_46 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp398) ;
// ATSlocal_void (tmp399) ;
ATSlocal (ats_ptr_type, tmp400) ;
// ATSlocal_void (tmp401) ;
// ATSlocal_void (tmp402) ;
// ATSlocal_void (tmp403) ;
ATSlocal (ats_ptr_type, tmp404) ;

__ats_lab_auxerr_tmparg_46:
tmp400 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_d1ecl_loc) ;
/* tmp399 = */ prerr_error2_loc_02087_ (tmp400) ;
/* tmp401 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("i1mpdec_tr_main")) ;
/* tmp402 = */ atspre_prerr_string (ATSstrcst(": the redundantly provided template arguments are ignored.")) ;
/* tmp403 = */ atspre_prerr_newline () ;
tmp404 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp404)->tag = 37 ;
ats_selptrset_mac(anairiats_sum_4, tmp404, atslab_0, arg0) ;
/* tmp398 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp404) ;
return /* (tmp398) */ ;
} /* end of [auxerr_tmparg_46] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 21773(line=803, offs=1) -- 22093(line=813, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_nontop_47 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp405) ;
// ATSlocal_void (tmp406) ;
ATSlocal (ats_ptr_type, tmp407) ;
// ATSlocal_void (tmp408) ;
// ATSlocal_void (tmp409) ;
// ATSlocal_void (tmp410) ;
ATSlocal (ats_ptr_type, tmp411) ;

__ats_lab_auxerr_nontop_47:
tmp407 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_d1ecl_loc) ;
/* tmp406 = */ prerr_error2_loc_02087_ (tmp407) ;
/* tmp408 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats"), ATSstrcst("i1mpdec_tr_main")) ;
/* tmp409 = */ atspre_prerr_string (ATSstrcst(": the implementation should be at the top-level but it is not.")) ;
/* tmp410 = */ atspre_prerr_newline () ;
tmp411 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp411)->tag = 36 ;
ats_selptrset_mac(anairiats_sum_4, tmp411, atslab_0, arg0) ;
/* tmp405 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp411) ;
return /* (tmp405) */ ;
} /* end of [auxerr_nontop_47] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 50559(line=1787, offs=18) -- 50622(line=1789, offs=4)
*/
ATSstaticdec()
ats_bool_type
list_is_cons_01295_ (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp414) ;

__ats_lab_list_is_cons_01295_:
do {
/* branch: __ats_lab_73 */
__ats_lab_73_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; }
__ats_lab_73_1:
tmp414 = ats_true_bool ;
break ;

/* branch: __ats_lab_74 */
__ats_lab_74_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_74_1:
tmp414 = ats_false_bool ;
break ;
} while (0) ;
return (tmp414) ;
} /* end of [list_is_cons_01295_] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 22474(line=825, offs=10) -- 22567(line=828, offs=46)
*/
ATSstaticdec()
ats_ptr_type
f_49 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp425) ;
ATSlocal (ats_ptr_type, tmp426) ;

__ats_lab_f_49:
tmp426 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) ;
tmp425 = ats_castfn_mac(ats_ptr_type, tmp426) ;
return (tmp425) ;
} /* end of [f_49] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 14006(line=512, offs=1) -- 23747(line=877, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__i1mpdec_tr_main (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp236) ;
ATSlocal (ats_ptr_type, tmp412) ;
ATSlocal (ats_bool_type, tmp413) ;
ATSlocal (ats_ptr_type, tmp415) ;
ATSlocal (ats_int_type, tmp416) ;
// ATSlocal_void (tmp417) ;
// ATSlocal_void (tmp418) ;
// ATSlocal_void (tmp419) ;
ATSlocal (anairiats_rec_1, tmp420) ;
ATSlocal (ats_ptr_type, tmp421) ;
ATSlocal (ats_ptr_type, tmp422) ;
ATSlocal (ats_ptr_type, tmp423) ;
ATSlocal (ats_ptr_type, tmp424) ;
ATSlocal (ats_ptr_type, tmp428) ;
// ATSlocal_void (tmp429) ;
ATSlocal (ats_bool_type, tmp430) ;
ATSlocal (ats_ptr_type, tmp431) ;
// ATSlocal_void (tmp432) ;
ATSlocal (ats_bool_type, tmp433) ;
ATSlocal (ats_int_type, tmp434) ;
ATSlocal (ats_ptr_type, tmp435) ;
// ATSlocal_void (tmp436) ;
ATSlocal (ats_ptr_type, tmp437) ;
ATSlocal (ats_ptr_type, tmp438) ;
// ATSlocal_void (tmp439) ;
ATSlocal (ats_ptr_type, tmp440) ;
ATSlocal (ats_ptr_type, tmp441) ;
// ATSlocal_void (tmp442) ;
// ATSlocal_void (tmp443) ;
// ATSlocal_void (tmp444) ;
ATSlocal (ats_ptr_type, tmp445) ;
ATSlocal (ats_ptr_type, tmp446) ;
ATSlocal (ats_ptr_type, tmp447) ;
ATSlocal (ats_ptr_type, tmp448) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__i1mpdec_tr_main:
tmp412 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_decarg (arg1) ;
tmp413 = list_is_cons_01295_ (tmp412) ;
tmp415 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_i1mpdec_tmparg) ;
/* ats_int_type tmp416 ; */
tmp416 = 0 ;
/* tmp417 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ;
/* tmp418 = ats_selsin_mac(tmp417, atslab_1) */ ;
if (tmp413) {
/* tmp419 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_inc () ;
} else {
/* empty */
} /* end of [if] */
tmp420 = aux_imparg_32 (arg0, tmp412, arg2) ;
tmp421 = ats_select_mac(tmp420, atslab_0) ;
tmp422 = ats_select_mac(tmp420, atslab_1) ;
do {
/* branch: __ats_lab_75 */
__ats_lab_75_0:
if (tmp422 == (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; }
__ats_lab_75_1:
tmp424 = ats_caselptrlab_mac(anairiats_sum_7, tmp422, atslab_0) ;
ATS_FREE(tmp422) ;
do {
/* branch: __ats_lab_76 */
__ats_lab_76_0:
if (tmp415 == (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; }
__ats_lab_76_1:
tmp416 = 1 ;
break ;

/* branch: __ats_lab_77 */
__ats_lab_77_0:
__ats_lab_77_1:
break ;
} while (0) ;
tmp428 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp424, &f_49) ;
tmp423 = ats_castfn_mac(ats_ptr_type, tmp428) ;
break ;

/* branch: __ats_lab_78 */
__ats_lab_78_0:
// if (tmp422 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_78_1:
tmp423 = aux_tmparg_45 (arg0, tmp412, tmp415) ;
break ;
} while (0) ;
tmp430 = atspre_gt_int_int (tmp416, 0) ;
if (tmp430) {
/* tmp429 = */ auxerr_tmparg_46 (arg0) ;
} else {
/* empty */
} /* end of [if] */
tmp431 = (ats_sum_ptr_type)0 ;
do {
/* branch: __ats_lab_79 */
__ats_lab_79_0:
if (tmp423 != (ats_sum_ptr_type)0) { goto __ats_lab_80_0 ; }
__ats_lab_79_1:
tmp434 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ;
tmp433 = atspre_gt_int_int (tmp434, 0) ;
if (tmp433) {
/* tmp432 = */ auxerr_nontop_47 (arg0) ;
} else {
/* empty */
} /* end of [if] */
break ;

/* branch: __ats_lab_80 */
__ats_lab_80_0:
// if (tmp423 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_80_1:
break ;
} while (0) ;
/* ats_ptr_type tmp435 ; */
tmp435 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ;
/* tmp436 = */ stasub_add_tmparg_20 ((&tmp435), tmp412, tmp423) ;
tmp437 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_type (arg1) ;
tmp438 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp435, tmp437) ;
/* tmp439 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp435) ;
tmp441 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_i1mpdec_def) ;
tmp440 = d1exp_tr_ann_10 (tmp441, tmp438) ;
if (tmp413) {
/* tmp442 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_tmplev_dec () ;
} else {
/* empty */
} /* end of [if] */
/* tmp443 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ;
tmp445 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
ats_selptrset_mac(anairiats_sum_7, tmp445, atslab_0, tmp440) ;
/* tmp444 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_def (arg1, tmp445) ;
tmp446 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_i1mpdec_loc) ;
tmp447 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_i1mpdec_qid) ;
tmp448 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp447), atslab_impqi0de_loc) ;
tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2mpdec_make (tmp446, tmp448, arg1, tmp421, tmp423, tmp431, tmp440) ;
return (tmp236) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__i1mpdec_tr_main] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 23821(line=882, offs=12) -- 24154(line=894, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__i1mpdec_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp449) ;
ATSlocal (ats_ptr_type, tmp450) ;
ATSlocal (ats_ptr_type, tmp451) ;
ATSlocal (ats_ptr_type, tmp452) ;
ATSlocal (ats_ptr_type, tmp453) ;
ATSlocal (ats_ptr_type, tmp454) ;
ATSlocal (ats_ptr_type, tmp455) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__i1mpdec_tr:
tmp450 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_d1ecl_node) ;
if (((ats_sum_ptr_type)tmp450)->tag != 27) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_impdec.dats: 23840(line=883, offs=7) -- 23893(line=884, offs=44)") ; }
tmp451 = ats_caselptrlab_mac(anairiats_sum_13, tmp450, atslab_1) ;
tmp452 = ats_caselptrlab_mac(anairiats_sum_13, tmp450, atslab_2) ;
tmp453 = i1mpdec_select_d2cst_1 (arg0, tmp452) ;
do {
/* branch: __ats_lab_81 */
__ats_lab_81_0:
if (tmp453 == (ats_sum_ptr_type)0) { goto __ats_lab_82_0 ; }
__ats_lab_81_1:
tmp454 = ats_caselptrlab_mac(anairiats_sum_7, tmp453, atslab_0) ;
ATS_FREE(tmp453) ;
tmp455 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__i1mpdec_tr_main (arg0, tmp454, tmp451, tmp452) ;
tmp449 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
ats_selptrset_mac(anairiats_sum_7, tmp449, atslab_0, tmp455) ;
break ;

/* branch: __ats_lab_82 */
__ats_lab_82_0:
// if (tmp453 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_82_1:
tmp449 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp449) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__i1mpdec_tr] */

/* 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_basics_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_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_basics_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp1_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ;

return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_impdec_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 */

/* marking external values for GC */

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

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

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

/* end of [pats_trans2_impdec_dats.c] */
