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

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

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

#include "pats_location.cats"

#include "pats_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_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_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_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_s2qua_svs ;
ats_ptr_type atslab_s2qua_sps ;
} anairiats_rec_1 ;

typedef
struct {
ats_ptr_type atslab_s0taq_loc ;
ats_ptr_type atslab_s0taq_node ;
} anairiats_rec_2 ;

typedef
struct {
ats_ptr_type atslab_i0de_loc ;
ats_ptr_type atslab_i0de_sym ;
} anairiats_rec_3 ;

typedef struct {
ats_ptr_type atslab_0 ;
} anairiats_sum_4 ;

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

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

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

typedef
struct {
ats_ptr_type atslab_s1arg_loc ;
ats_ptr_type atslab_s1arg_sym ;
ats_ptr_type atslab_s1arg_srt ;
} anairiats_rec_8 ;

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

typedef
struct {
ats_ptr_type atslab_s1marg_loc ;
ats_ptr_type atslab_s1marg_arg ;
} anairiats_rec_10 ;

typedef
struct {
ats_ptr_type atslab_sp1at_loc ;
ats_ptr_type atslab_sp1at_node ;
} anairiats_rec_11 ;

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

typedef
struct {
ats_ptr_type atslab_s1exp_loc ;
ats_ptr_type atslab_s1exp_node ;
} anairiats_rec_13 ;

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

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

typedef struct {
anairiats_rec_14 atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_16 ;

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

typedef
struct {
ats_ptr_type atslab_e1xp_loc ;
ats_ptr_type atslab_e1xp_node ;
} anairiats_rec_18 ;

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

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

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

typedef
struct {
ats_ptr_type atslab_token_loc ;
ats_ptr_type atslab_token_node ;
} anairiats_rec_22 ;

typedef
struct {
ats_ptr_type atslab_l0ab_loc ;
ats_ptr_type atslab_l0ab_lab ;
} anairiats_rec_23 ;

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

typedef struct {
int tag ;
ats_char_type atslab_0 ;
} anairiats_sum_25 ;

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

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

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

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

typedef
struct {
ats_ptr_type atslab_s1qua_loc ;
ats_ptr_type atslab_s1qua_node ;
} anairiats_rec_30 ;

typedef
struct {
ats_ptr_type atslab_q1marg_loc ;
ats_ptr_type atslab_q1marg_arg ;
} anairiats_rec_31 ;

typedef
struct {
ats_ptr_type atslab_s1rt_loc ;
ats_ptr_type atslab_s1rt_node ;
} anairiats_rec_32 ;

typedef
struct {
ats_ptr_type atslab_s1rtext_loc ;
ats_ptr_type atslab_s1rtext_node ;
} anairiats_rec_33 ;

typedef
struct {
ats_ptr_type atslab_s1exparg_loc ;
ats_ptr_type atslab_s1exparg_node ;
} anairiats_rec_34 ;

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

typedef
struct {
ats_ptr_type atslab_d1atcon_loc ;
ats_ptr_type atslab_d1atcon_sym ;
ats_ptr_type atslab_d1atcon_qua ;
ats_int_type atslab_d1atcon_npf ;
ats_ptr_type atslab_d1atcon_arg ;
ats_ptr_type atslab_d1atcon_ind ;
} anairiats_rec_36 ;

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

/* 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__None_0) ;
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__FUNCLOfun_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STRING_154) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__S0TAQnone_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SL0ABELED_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPfun_10) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTall_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTnil_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__EFFCSTset_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1RTqid_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__SP1Tcstr_0) ;
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__WTHS1EXPLSTcons_some_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTcons_none_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Qprop_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Qvars_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1TEsrt_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1TEsub_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eide_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Esqid_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eint_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eintrep_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Echar_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Efloat_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Estring_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eextype_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eextkind_8) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eapp_9) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Elam_10) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eimp_11) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etop_12) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Elist_13) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Einvar_14) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etrans_15) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyarr_16) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etytup_17) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyrec_18) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Etyrec_ext_19) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Euni_20) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eexi_21) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eann_22) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Ed2ctype_23) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1Eerr_24) ;
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__S1EXPARGone_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGall_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__S1EXPARGseq_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WITHT1YPEsome_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WITHT1YPEnone_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTBASimp_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTbas_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTfun_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTVar_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMvar_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMcst_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMe1xp_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMdatcontyp_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ITMdatconptr_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_lin_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt0_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt_ext_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_none_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_invar_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_trans_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEsrt_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEsub_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEerr_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2VARARGone_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2VARARGall_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2VARARGseq_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_effvar_tr_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1exp_trup_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1exp_trup_app_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1exp_trdn_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1exp_trdn_impred_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s2exp_trdn_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1arg_trdn_9) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1marg_trdn_10) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_sp1at_trdn_11) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_q1marg_tr_dec_16) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_s1rtext_tr_17) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__T2E_d1atcon_tr_23) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDarrow_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDnone_1) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_prerr_newline) () ;
ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ;
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_gte_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_bool_type, atspre_ieq) (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_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_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_nil) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_insert) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_get_dups) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr) () ;
ATSextern_fun(ats_ptr_type, patsopt_intinf_make_string) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, patsopt_prerrf_ifdebug) (ats_ptr_type, ...) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MINUSGT) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDERSCORE) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPES) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol) (ats_ptr_type, 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_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int) (ats_int_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0rtq) (ats_ptr_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_s0taq_none) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_top) (ats_ptr_type, ats_int_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1exp) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_make_e1xp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make_s1exp) (ats_ptr_type, 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_staexp1_2esats__wths1explst_reverse) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_normalize) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_make) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt) (ats_ptr_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_tkind) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_impred) (ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err) () ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_dat) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_fun) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_nonlin) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_delink) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2itm) (ats_ptr_type) ;
ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2vsym_s2vsym) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2con) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_full) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int) (ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char) (ats_char_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_float) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_string) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extype_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extkind_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datcontyp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datconptr) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top) (ats_int_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refarg) (ats_int_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_vararg) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_wthtype) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset) (ats_uint_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_exp) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_add) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_con) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_err) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_one) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_all) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_seq) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_prf_lin_fc) (ats_ptr_type, ats_bool_type, ats_bool_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_prgm_boxed_labs2explst) (ats_int_type, ats_int_type, ats_int_type, ats_int_type, ats_int_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2cst_select_locs2explstlst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_nonvar) (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_add) (ats_ref_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst) (ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_alpha) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_alpha) (ats_ptr_type, 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_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__s1rt_tr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__effcst_tr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trup) (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__s1arglst_trdn_err) (ats_ptr_type, ats_ptr_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1marg_trdn) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_hnfize) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s2exp_trdn) (ats_ptr_type, 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(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_int) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_addr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_bool) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_int) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_addr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_bool) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_vt0ype) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_impred) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_err) (ats_ptr_type, ats_ptr_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_arg) (ats_ptr_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_res_impred) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__S1Ed2ctype_tr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtext_tr) (ats_ptr_type) ;
ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr) (ats_ptr_type) ;
ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparg_tr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__stasub_extend_sarglst_svarlst) (ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarg_tr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_find_qua) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svar) (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_add_datconptr) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_datcontyp) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find_qua) (ats_ptr_type, 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_d2expenv_add_dcon) (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 */
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDarrow_0) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDnone_1) ;

/* exn constructor declarations */
/* global dynamic (non-functional) constant declarations */
/* internal function declarations */
static
ats_void_type prerr_FILENAME_02164_ () ;
static
ats_ptr_type staspecid_of_sqid_1 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type prerr_error2_loc_02168_ (ats_ptr_type arg0) ;
static
ats_ptr_type effvar_tr_2 (ats_ptr_type arg0) ;
static
ats_ptr_type effvarlst_tr_4 (ats_ptr_type arg0) ;
static
ats_void_type loop_10 (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_void_type auxerr_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type auxerr_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ;
static
ats_ptr_type f_17 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type loop_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type sp1at_get_dups_16 (ats_ptr_type arg0) ;
static
ats_void_type auxerr_22 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_clo_ptr_type auxerr_22_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ;
static
ats_void_type auxerr_22_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_ptr_type sp1at_trdn_arg_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ;
static
ats_void_type auxerr1_24 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type auxerr1_24_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ;
static
ats_void_type auxerr1_24_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type auxerr2_25 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type auxerr2_25_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ;
static
ats_void_type auxerr2_25_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type auxerr3_26 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type auxerr3_26_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ;
static
ats_void_type auxerr3_26_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type procrepeat_28 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type procrepeat2_29 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type auxcheck_27 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type auxcheck_27_closure_make (ats_ptr_type env0, ats_ptr_type env1) ;
static
ats_void_type auxcheck_27_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type auxselect_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_ptr_type loop_32 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type prerr_interror_loc_02166_ (ats_ptr_type arg0) ;
static
ats_ptr_type s1exp_trup_sqid_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type aux_35 (ats_ptr_type arg0, anairiats_rec_14 arg1, ats_ptr_type arg2) ;
static
ats_ptr_type auxlst_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type loop_39 (ats_ptr_type arg0) ;
static
ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type loop_37 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type s2exp_app_wind_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type s1exp_app_unwind_40 (ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_int_type loop_43 (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_int_type list_vt_length_01501_anairiats_rec_14 (ats_ptr_type arg0) ;
static
ats_ptr_type __ats_fun_44 (ats_ptr_type env0, ats_ptr_type arg0) ;
static
ats_clo_ptr_type __ats_fun_44_closure_make (ats_ptr_type env0) ;
static
ats_ptr_type __ats_fun_44_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_ptr_type app_46 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type list_map_vclo_01414_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type s1exp_app_unwind_e1xp_41 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_ptr_type s1exp_trup_invar_47 (ats_int_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type s1exp_is_underscore_48 (ats_ptr_type arg0) ;
static
ats_int_type s1exp_test_top_underscore_49 (ats_ptr_type arg0) ;
static
ats_ptr_type s1exp_untop_if_50 (ats_ptr_type arg0) ;
static
ats_ptr_type s1exp_trans_syn_arg2_51 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type auxwth_54 (ats_ptr_type arg0) ;
static
ats_ptr_type auxres_55 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type auxerr1_57 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type loop_60 (ats_ptr_type arg0) ;
static
ats_void_type list_vt_free_01499_anairiats_rec_14 (ats_ptr_type arg0) ;
static
ats_void_type auxerr2_58 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type auxerr3_61 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type aux_62 (ats_ptr_type env0, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_clo_ptr_type aux_62_closure_make (ats_ptr_type env0) ;
static
ats_ptr_type aux_62_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type s1exp_trup_arrow_56 (ats_ptr_type arg0, ats_ptr_type arg1, ats_bool_type arg2, ats_bool_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ;
static
ats_void_type auxerr1_64 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ;
static
ats_void_type auxerr2_65 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type loop_66 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type s1exp_trup_app_63 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_int_type auxck1_68 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_int_type loop_71 (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type auxck2_69 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type s1exp_trup_app_datcontyp_67 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_int_type auxck1_73 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type auxck2_74 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type s1exp_trup_app_datconptr_72 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type s1exp_trup_app_sqid_75 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ;
static
ats_void_type loop_80 (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_anairiats_rec_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type list_map_fun_01413_ats_ptr_type_anairiats_rec_14 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
anairiats_rec_14 __ats_fun_81 (ats_ptr_type arg0) ;
static
ats_ptr_type f_77 (anairiats_rec_14 arg0) ;
static
ats_void_type loop_84 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type list_map_funenv_01412_anairiats_rec_14_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type list_map_fun_01413_anairiats_rec_14_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type s1exp_trup_app_sqid_itm_76 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ;
static
ats_ptr_type s1exp_trup_top_85 (ats_int_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type aux01_86 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) ;
static
ats_ptr_type aux23_87 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ;
static
ats_ptr_type s1exp_trup_tytup_88 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type s1exp_trup_tytup_flt_89 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type string_of_s0tring_90 (ats_ptr_type arg0) ;
static
ats_ptr_type aux01_91 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) ;
static
ats_ptr_type aux23_92 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ;
static
ats_ptr_type s1exp_trup_tyrec_93 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type s1exp_trup_tyrec_ext_94 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) ;
static
ats_void_type auxerr_101 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_clo_ptr_type auxerr_101_closure_make (ats_ptr_type env0, ats_ptr_type env1) ;
static
ats_void_type auxerr_101_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type s1exp_trdn_lam_100 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type auxerr_104 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type auxsrt_121 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_void_type auxsub1_122 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ;
static
ats_void_type auxsub2_123 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ref_type arg5) ;
static
ats_void_type loop_120 (ats_ptr_type arg0, ats_ref_type arg1, ats_ref_type arg2) ;
static
ats_ptr_type revapp_126 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) ;
static
ats_void_type prerr_error3_loc_02170_ (ats_ptr_type arg0) ;
static
ats_void_type auxerr_132 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_clo_ptr_type auxerr_132_closure_make (ats_ptr_type env0) ;
static
ats_void_type auxerr_132_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type loop_134 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type auxerr1_141 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ;
static
ats_void_type auxerr2_142 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type auxerr3_143 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type loop_146 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type loop_149 (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_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type list_map_fun_01413_ats_ptr_type_anairiats_rec_1 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type aux_150 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type aux_151 (ats_int_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_int_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type aux_151_closure_make (ats_int_type env0, ats_ptr_type env1, ats_ptr_type env2) ;
static
ats_ptr_type aux_151_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_ptr_type arg1) ;
static
ats_int_type list_length_compare_01411_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type loop_154 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ;

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

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 1817(line=64, offs=1) -- 1865(line=66, offs=31)
*/
ATSstaticdec()
ats_void_type
prerr_FILENAME_02164_ () {
/* local vardec */
// ATSlocal_void (tmp0) ;

__ats_lab_prerr_FILENAME_02164_:
/* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans2_staexp")) ;
return /* (tmp0) */ ;
} /* end of [prerr_FILENAME_02164_] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 3124(line=140, offs=1) -- 3425(line=157, offs=2)
*/
ATSstaticdec()
ats_ptr_type
staspecid_of_sqid_1 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1) ;
ATSlocal (ats_ptr_type, tmp2) ;
ATSlocal (ats_bool_type, tmp3) ;

__ats_lab_staspecid_of_sqid_1:
tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_s0taq_node) ;
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (tmp2 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; }
__ats_lab_0_1:
tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MINUSGT) ;
if (tmp3) {
tmp1 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDarrow_0) ;
} else {
tmp1 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDnone_1) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_1 */
__ats_lab_1_0:
__ats_lab_1_1:
tmp1 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDnone_1) ;
break ;
} while (0) ;
return (tmp1) ;
} /* end of [staspecid_of_sqid_1] */

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

__ats_lab_prerr_error2_loc_02168_:
/* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ;
/* tmp14 = */ atspre_prerr_string (ATSstrcst(": error(2)")) ;
return /* (tmp14) */ ;
} /* end of [prerr_error2_loc_02168_] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 3487(line=162, offs=1) -- 4615(line=204, offs=4)
*/
ATSstaticdec()
ats_ptr_type
effvar_tr_2 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp4) ;
ATSlocal (ats_ptr_type, tmp5) ;
ATSlocal (ats_ptr_type, tmp6) ;
ATSlocal (ats_ptr_type, tmp7) ;
ATSlocal (ats_ptr_type, tmp8) ;
ATSlocal (ats_ptr_type, tmp9) ;
ATSlocal (ats_ptr_type, tmp10) ;
ATSlocal (ats_ptr_type, tmp11) ;
ATSlocal (ats_ptr_type, tmp12) ;
// ATSlocal_void (tmp13) ;
// ATSlocal_void (tmp16) ;
// ATSlocal_void (tmp17) ;
// ATSlocal_void (tmp18) ;
// ATSlocal_void (tmp19) ;
// ATSlocal_void (tmp20) ;
// ATSlocal_void (tmp21) ;
ATSlocal (ats_ptr_type, tmp22) ;
ATSlocal (ats_ptr_type, tmp23) ;
// ATSlocal_void (tmp24) ;
// ATSlocal_void (tmp25) ;
// ATSlocal_void (tmp26) ;
// ATSlocal_void (tmp27) ;
// ATSlocal_void (tmp28) ;
// ATSlocal_void (tmp29) ;
// ATSlocal_void (tmp30) ;
ATSlocal (ats_ptr_type, tmp31) ;

__ats_lab_effvar_tr_2:
tmp5 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_loc) ;
tmp6 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, arg0), atslab_i0de_sym) ;
tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find (tmp6) ;
do {
/* branch: __ats_lab_2 */
__ats_lab_2_0:
if (tmp7 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; }
__ats_lab_2_1:
tmp8 = ats_caselptrlab_mac(anairiats_sum_4, tmp7, atslab_0) ;
ATS_FREE(tmp7) ;
do {
/* branch: __ats_lab_3 */
__ats_lab_3_0:
if (((ats_sum_ptr_type)tmp8)->tag != 0) { goto __ats_lab_4_0 ; }
__ats_lab_3_1:
tmp9 = ats_caselptrlab_mac(anairiats_sum_5, tmp8, atslab_0) ;
tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp9) ;
break ;

/* branch: __ats_lab_4 */
__ats_lab_4_0:
if (((ats_sum_ptr_type)tmp8)->tag != 1) { goto __ats_lab_5_0 ; }
__ats_lab_4_1:
tmp10 = ats_caselptrlab_mac(anairiats_sum_5, tmp8, atslab_0) ;
if (tmp10 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 3839(line=182, offs=11) -- 3864(line=182, offs=36)") ; }
tmp11 = ats_caselptrlab_mac(anairiats_sum_6, tmp10, atslab_0) ;
tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp11) ;
break ;

/* branch: __ats_lab_5 */
__ats_lab_5_0:
__ats_lab_5_1:
tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ;
/* tmp13 = */ prerr_error2_loc_02168_ (tmp5) ;
/* tmp16 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("effvar_tr")) ;
/* tmp17 = */ atspre_prerr_string (ATSstrcst(": the static identifier [")) ;
/* tmp18 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp6) ;
/* tmp19 = */ atspre_prerr_string (ATSstrcst("] should refer to a variable or constant.")) ;
/* tmp20 = */ atspre_prerr_newline () ;
tmp22 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp22)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_5, tmp22, atslab_0, arg0) ;
/* tmp21 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp22) ;
tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_6 */
__ats_lab_6_0:
// if (tmp7 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_6_1:
tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ;
/* tmp24 = */ prerr_error2_loc_02168_ (tmp5) ;
/* tmp25 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("effvar_tr")) ;
/* tmp26 = */ atspre_prerr_string (ATSstrcst(": unrecognized static identifier [")) ;
/* tmp27 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp6) ;
/* tmp28 = */ atspre_prerr_string (ATSstrcst("].")) ;
/* tmp29 = */ atspre_prerr_newline () ;
tmp31 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp31)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_5, tmp31, atslab_0, arg0) ;
/* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp31) ;
tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ;
break ;
} while (0) ;
return (tmp4) ;
} /* end of [effvar_tr_2] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 4643(line=206, offs=5) -- 4944(line=218, offs=2)
*/
ATSstaticdec()
ats_ptr_type
effvarlst_tr_4 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp32) ;
ATSlocal (ats_ptr_type, tmp33) ;
ATSlocal (ats_ptr_type, tmp34) ;
ATSlocal (ats_ptr_type, tmp35) ;
ATSlocal (ats_ptr_type, tmp36) ;
ATSlocal (ats_ptr_type, tmp37) ;

__ats_lab_effvarlst_tr_4:
do {
/* branch: __ats_lab_7 */
__ats_lab_7_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; }
__ats_lab_7_1:
tmp33 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp34 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp35 = effvar_tr_2 (tmp33) ;
tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_exp (tmp35) ;
tmp37 = effvarlst_tr_4 (tmp34) ;
tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_add (tmp36, tmp37) ;
break ;

/* branch: __ats_lab_8 */
__ats_lab_8_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_8_1:
tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil ;
break ;
} while (0) ;
return (tmp32) ;
} /* end of [effvarlst_tr_4] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 4991(line=221, offs=11) -- 5195(line=228, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__effcst_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp38) ;
ATSlocal (ats_uint_type, tmp39) ;
ATSlocal (ats_ptr_type, tmp40) ;
ATSlocal (ats_ptr_type, tmp41) ;
ATSlocal (ats_ptr_type, tmp42) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__effcst_tr:
do {
/* branch: __ats_lab_9 */
__ats_lab_9_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_10_0 ; }
__ats_lab_9_1:
tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all ;
break ;

/* branch: __ats_lab_10 */
__ats_lab_10_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_11_0 ; }
__ats_lab_10_1:
tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil ;
break ;

/* branch: __ats_lab_11 */
__ats_lab_11_0:
// if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_11_1:
tmp39 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ;
tmp40 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ;
tmp41 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_effset (tmp39) ;
tmp42 = effvarlst_tr_4 (tmp40) ;
tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_add (tmp41, tmp42) ;
break ;
} while (0) ;
return (tmp38) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__effcst_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 5260(line=233, offs=11) -- 5503(line=248, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trup (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp43) ;
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) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trup:
tmp45 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_s1arg_srt) ;
do {
/* branch: __ats_lab_12 */
__ats_lab_12_0:
if (tmp45 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; }
__ats_lab_12_1:
tmp46 = ats_caselptrlab_mac(anairiats_sum_4, tmp45, atslab_0) ;
tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp46) ;
break ;

/* branch: __ats_lab_13 */
__ats_lab_13_0:
// if (tmp45 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_13_1:
tmp48 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_s1arg_loc) ;
tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rtVar_make (tmp48) ;
tmp44 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp44)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp44, atslab_0, tmp47) ;
break ;
} while (0) ;
tmp49 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_s1arg_sym) ;
tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp49, tmp44) ;
return (tmp43) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trup] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp54) ;
ATSlocal (ats_ptr_type, tmp55) ;
ATSlocal (ats_ptr_type, tmp56) ;
ATSlocal (ats_ptr_type, tmp57) ;
ATSlocal (ats_ptr_type, tmp58) ;
ATSlocal (ats_ptr_type, tmp59) ;
ATSlocal (ats_ptr_type, tmp60) ;

__ats_lab_loop_10:
do {
/* branch: __ats_lab_14 */
__ats_lab_14_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; }
__ats_lab_14_1:
tmp55 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp56 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp57 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp55, arg3) ;
tmp58 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp58, atslab_0, tmp57) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp58 ;
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp59 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
arg0 = tmp56 ;
arg1 = arg1 ;
arg2 = tmp59 ;
arg3 = arg3 ;
goto __ats_lab_loop_10 ; // tail call
break ;

/* branch: __ats_lab_15 */
__ats_lab_15_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_15_1:
tmp60 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp60 ;
break ;
} while (0) ;
return /* (tmp54) */ ;
} /* end of [loop_10] */

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

__ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type:
/* ats_ptr_type tmp61 ; */
/* tmp62 = */ loop_10 (arg0, arg1, (&tmp61), arg2) ;
tmp53 = tmp61 ;
return (tmp53) ;
} /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */

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

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

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 5554(line=252, offs=3) -- 5597(line=252, offs=46)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp50) ;
ATSlocal (ats_ptr_type, tmp51) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup:
tmp51 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trup) ;
tmp50 = ats_castfn_mac(ats_ptr_type, tmp51) ;
return (tmp50) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 5804(line=271, offs=1) -- 6169(line=290, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp64) ;
// ATSlocal_void (tmp65) ;
ATSlocal (ats_ptr_type, tmp66) ;
// ATSlocal_void (tmp67) ;
// ATSlocal_void (tmp68) ;
// ATSlocal_void (tmp69) ;
// ATSlocal_void (tmp70) ;
// ATSlocal_void (tmp71) ;
// ATSlocal_void (tmp72) ;
// ATSlocal_void (tmp73) ;
ATSlocal (ats_ptr_type, tmp74) ;

__ats_lab_auxerr_12:
tmp66 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_s1arg_loc) ;
/* tmp65 = */ prerr_error2_loc_02168_ (tmp66) ;
/* tmp67 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1arg_trdn")) ;
/* tmp68 = */ atspre_prerr_string (ATSstrcst(": the argument is assigned the sort [")) ;
/* tmp69 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg1) ;
/* tmp70 = */ atspre_prerr_string (ATSstrcst("] but it is expected to accept a static term of the sort [")) ;
/* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg2) ;
/* tmp72 = */ atspre_prerr_string (ATSstrcst("].")) ;
/* tmp73 = */ atspre_prerr_newline () ;
tmp74 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp74)->tag = 9 ;
ats_selptrset_mac(anairiats_sum_9, tmp74, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_9, tmp74, atslab_1, arg2) ;
/* tmp64 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp74) ;
return /* (tmp64) */ ;
} /* end of [auxerr_12] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 5670(line=259, offs=3) -- 6553(line=307, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trdn (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp63) ;
ATSlocal (ats_ptr_type, tmp75) ;
ATSlocal (ats_ptr_type, tmp76) ;
ATSlocal (ats_ptr_type, tmp77) ;
ATSlocal (ats_ptr_type, tmp78) ;
ATSlocal (ats_bool_type, tmp79) ;
// ATSlocal_void (tmp80) ;
ATSlocal (ats_bool_type, tmp81) ;
ATSlocal (ats_ptr_type, tmp82) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trdn:
tmp75 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_s1arg_srt) ;
do {
/* branch: __ats_lab_16 */
__ats_lab_16_0:
if (tmp75 != (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; }
__ats_lab_16_1:
tmp76 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_s1arg_sym) ;
tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp76, arg1) ;
break ;

/* branch: __ats_lab_17 */
__ats_lab_17_0:
// if (tmp75 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_17_1:
tmp77 = ats_caselptrlab_mac(anairiats_sum_4, tmp75, atslab_0) ;
tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp77) ;
tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (arg1, tmp78) ;
tmp81 = atspre_neg_bool (tmp79) ;
if (tmp81) {
/* tmp80 = */ auxerr_12 (arg0, tmp78, arg1) ;
} else {
/* empty */
} /* end of [if] */
tmp82 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, arg0), atslab_s1arg_sym) ;
tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp82, arg1) ;
break ;
} while (0) ;
return (tmp63) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trdn] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 6611(line=311, offs=3) -- 7098(line=332, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trdn_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp83) ;
ATSlocal (ats_ptr_type, tmp84) ;
ATSlocal (ats_ptr_type, tmp85) ;
ATSlocal (ats_ptr_type, tmp86) ;
ATSlocal (ats_ptr_type, tmp87) ;
ATSlocal (ats_ptr_type, tmp88) ;
ATSlocal (ats_ptr_type, tmp89) ;
ATSlocal (ats_int_type, tmp90) ;
ATSlocal (ats_int_type, tmp91) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trdn_err:
do {
/* branch: __ats_lab_18 */
__ats_lab_18_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; }
__ats_lab_18_1:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_20_1 ; }
__ats_lab_18_2:
tmp84 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp85 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp86 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ;
tmp87 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trdn (tmp84, tmp86) ;
tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trdn_err (tmp85, tmp87, arg2) ;
tmp83 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp83, atslab_0, tmp88) ;
ats_selptrset_mac(anairiats_sum_6, tmp83, atslab_1, tmp89) ;
break ;

/* branch: __ats_lab_19 */
__ats_lab_19_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; }
__ats_lab_19_1:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_21_1 ; }
__ats_lab_19_2:
tmp83 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_20 */
__ats_lab_20_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; }
__ats_lab_20_1:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_20_2:
tmp90 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ;
ats_ptrget_mac(ats_int_type, arg2) = tmp90 ;
tmp83 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_21 */
__ats_lab_21_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_21_1:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_21_2:
tmp91 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ;
ats_ptrget_mac(ats_int_type, arg2) = tmp91 ;
tmp83 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp83) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trdn_err] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 7180(line=338, offs=5) -- 7590(line=353, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) {
/* local vardec */
// ATSlocal_void (tmp93) ;
ATSlocal (ats_ptr_type, tmp94) ;
// ATSlocal_void (tmp95) ;
// ATSlocal_void (tmp96) ;
// ATSlocal_void (tmp97) ;
// ATSlocal_void (tmp98) ;
ATSlocal (ats_ptr_type, tmp99) ;
ATSlocal (ats_bool_type, tmp100) ;
// ATSlocal_void (tmp101) ;
// ATSlocal_void (tmp102) ;
ATSlocal (ats_ptr_type, tmp103) ;

__ats_lab_auxerr_15:
tmp94 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s1marg_loc) ;
/* tmp95 = */ prerr_error2_loc_02168_ (tmp94) ;
/* tmp96 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1marg_trdn")) ;
/* tmp97 = */ atspre_prerr_string (ATSstrcst(": the static argument group is expected to contain ")) ;
tmp100 = atspre_gt_int_int (arg2, 0) ;
if (tmp100) {
tmp99 = ATSstrcst("more") ;
} else {
tmp99 = ATSstrcst("fewer") ;
} /* end of [if] */
/* tmp98 = */ atspre_prerr_string (tmp99) ;
/* tmp101 = */ atspre_prerr_string (ATSstrcst(" components.")) ;
/* tmp102 = */ atspre_prerr_newline () ;
tmp103 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp103)->tag = 10 ;
ats_selptrset_mac(anairiats_sum_9, tmp103, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_9, tmp103, atslab_1, arg1) ;
/* tmp93 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp103) ;
return /* (tmp93) */ ;
} /* end of [auxerr_15] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 7154(line=336, offs=3) -- 7777(line=363, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1marg_trdn (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp92) ;
ATSlocal (ats_int_type, tmp104) ;
ATSlocal (ats_ptr_type, tmp105) ;
ATSlocal (ats_ptr_type, tmp106) ;
// ATSlocal_void (tmp107) ;
ATSlocal (ats_bool_type, tmp108) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1marg_trdn:
/* ats_int_type tmp104 ; */
tmp104 = 0 ;
tmp106 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_s1marg_arg) ;
tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trdn_err (tmp106, arg1, (&tmp104)) ;
tmp108 = atspre_neq_int_int (tmp104, 0) ;
if (tmp108) {
/* tmp107 = */ auxerr_15 (arg0, arg1, tmp104) ;
} else {
/* empty */
} /* end of [if] */
tmp92 = tmp105 ;
return (tmp92) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1marg_trdn] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 7933(line=374, offs=5) -- 8033(line=377, offs=54)
*/
ATSstaticdec()
ats_ptr_type
f_17 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp110) ;

__ats_lab_f_17:
tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_insert (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2vsym_s2vsym) ;
return (tmp110) ;
} /* end of [f_17] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25316(line=913, offs=7) -- 25599(line=923, offs=20)
*/
ATSstaticdec()
ats_ptr_type
loop_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp114) ;
ATSlocal (ats_ptr_type, tmp115) ;
ATSlocal (ats_ptr_type, tmp116) ;
ATSlocal (ats_ptr_type, tmp117) ;

__ats_lab_loop_20:
do {
/* branch: __ats_lab_22 */
__ats_lab_22_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; }
__ats_lab_22_1:
tmp115 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ;
tmp116 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ;
tmp117 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type, ats_ptr_type))arg0) (arg1, tmp115, arg3) ;
arg0 = arg0 ;
arg1 = tmp117 ;
arg2 = tmp116 ;
arg3 = arg3 ;
goto __ats_lab_loop_20 ; // tail call
break ;

/* branch: __ats_lab_23 */
__ats_lab_23_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_23_1:
tmp114 = arg1 ;
break ;
} while (0) ;
return (tmp114) ;
} /* end of [loop_20] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25281(line=912, offs=20) -- 25655(line=927, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp113) ;

__ats_lab_list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type:
tmp113 = loop_20 (arg0, arg1, arg2, arg3) ;
return (tmp113) ;
} /* end of [list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 25737(line=930, offs=28) -- 26032(line=939, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp112) ;

__ats_lab_list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type:
tmp112 = list_fold_left_funenv_01350_ats_ptr_type_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0), arg1, arg2, atspre_null_ptr) ;
return (tmp112) ;
} /* end of [list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 7835(line=369, offs=5) -- 8205(line=386, offs=4)
*/
ATSstaticdec()
ats_ptr_type
sp1at_get_dups_16 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp109) ;
ATSlocal (ats_ptr_type, tmp111) ;
ATSlocal (ats_ptr_type, tmp118) ;

__ats_lab_sp1at_get_dups_16:
tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_nil () ;
tmp111 = list_fold_left_fun_01351_ats_ptr_type_ats_ptr_type (&f_17, tmp118, arg0) ;
tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__lstord_get_dups (tmp111, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2vsym_s2vsym) ;
return (tmp109) ;
} /* end of [sp1at_get_dups_16] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 8367(line=396, offs=5) -- 8769(line=413, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_22 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp120) ;
ATSlocal (ats_ptr_type, tmp121) ;
// ATSlocal_void (tmp122) ;
// ATSlocal_void (tmp123) ;
// ATSlocal_void (tmp124) ;
// ATSlocal_void (tmp125) ;
// ATSlocal_void (tmp126) ;
// ATSlocal_void (tmp127) ;
ATSlocal (ats_ptr_type, tmp128) ;
ATSlocal (ats_bool_type, tmp129) ;
// ATSlocal_void (tmp130) ;
// ATSlocal_void (tmp131) ;
ATSlocal (ats_ptr_type, tmp132) ;

__ats_lab_auxerr_22:
tmp121 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_sp1at_loc) ;
/* tmp122 = */ prerr_error2_loc_02168_ (tmp121) ;
/* tmp123 = */ atspre_prerr_string (ATSstrcst(": the static constructor [")) ;
/* tmp124 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (env1) ;
/* tmp125 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (env2) ;
/* tmp126 = */ atspre_prerr_string (ATSstrcst("] requires ")) ;
tmp129 = atspre_gt_int_int (arg1, 0) ;
if (tmp129) {
tmp128 = ATSstrcst("more") ;
} else {
tmp128 = ATSstrcst("fewer") ;
} /* end of [if] */
/* tmp127 = */ atspre_prerr_string (tmp128) ;
/* tmp130 = */ atspre_prerr_string (ATSstrcst(" arguments.")) ;
/* tmp131 = */ atspre_prerr_newline () ;
tmp132 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp132)->tag = 11 ;
ats_selptrset_mac(anairiats_sum_9, tmp132, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_9, tmp132, atslab_1, env0) ;
/* tmp120 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp132) ;
return /* (tmp120) */ ;
} /* end of [auxerr_22] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
ats_ptr_type closure_env_1 ;
ats_ptr_type closure_env_2 ;
} auxerr_22_closure_type ;

ats_void_type
auxerr_22_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) {
auxerr_22 (((auxerr_22_closure_type*)cloptr)->closure_env_0, ((auxerr_22_closure_type*)cloptr)->closure_env_1, ((auxerr_22_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ;
} /* end of function */

ATSinline()
ats_void_type
auxerr_22_closure_init (auxerr_22_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
p_clo->closure_fun = (ats_fun_ptr_type)&auxerr_22_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
p_clo->closure_env_2 = env2 ;
return ;
} /* end of function */

ats_clo_ptr_type
auxerr_22_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
auxerr_22_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr_22_closure_type)) ;
auxerr_22_closure_init (p_clo, env0, env1, env2) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 8238(line=388, offs=5) -- 8939(line=423, offs=4)
*/
ATSstaticdec()
ats_ptr_type
sp1at_trdn_arg_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp119) ;
ATSlocal (ats_int_type, tmp133) ;
ATSlocal (ats_ptr_type, tmp134) ;
// ATSlocal_void (tmp135) ;
ATSlocal (ats_bool_type, tmp136) ;

__ats_lab_sp1at_trdn_arg_21:
/* ats_int_type tmp133 ; */
tmp133 = 0 ;
tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trdn_err (arg4, arg5, (&tmp133)) ;
tmp136 = atspre_neq_int_int (tmp133, 0) ;
if (tmp136) {
/* tmp135 = */ auxerr_22 (arg1, arg2, arg3, arg0, tmp133) ;
} else {
/* empty */
} /* end of [if] */
tmp119 = tmp134 ;
return (tmp119) ;
} /* end of [sp1at_trdn_arg_21] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 9073(line=433, offs=5) -- 9458(line=450, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr1_24 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp139) ;
// ATSlocal_void (tmp140) ;
// ATSlocal_void (tmp141) ;
// ATSlocal_void (tmp142) ;
// ATSlocal_void (tmp143) ;
// ATSlocal_void (tmp144) ;
// ATSlocal_void (tmp145) ;
// ATSlocal_void (tmp146) ;
// ATSlocal_void (tmp147) ;
// ATSlocal_void (tmp148) ;
ATSlocal (ats_ptr_type, tmp149) ;

__ats_lab_auxerr1_24:
/* tmp140 = */ prerr_error2_loc_02168_ (env2) ;
/* tmp141 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("sp1at_trdn")) ;
/* tmp142 = */ atspre_prerr_string (ATSstrcst(": the static identifier [")) ;
/* tmp143 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg0) ;
/* tmp144 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg1) ;
/* tmp145 = */ atspre_prerr_string (ATSstrcst("] does not refer to a static constructor associated with the sort [")) ;
/* tmp146 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (env1) ;
/* tmp147 = */ atspre_prerr_string (ATSstrcst("].")) ;
/* tmp148 = */ atspre_prerr_newline () ;
tmp149 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp149)->tag = 11 ;
ats_selptrset_mac(anairiats_sum_9, tmp149, atslab_0, env0) ;
ats_selptrset_mac(anairiats_sum_9, tmp149, atslab_1, env1) ;
/* tmp139 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp149) ;
return /* (tmp139) */ ;
} /* end of [auxerr1_24] */

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

ats_void_type
auxerr1_24_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) {
auxerr1_24 (((auxerr1_24_closure_type*)cloptr)->closure_env_0, ((auxerr1_24_closure_type*)cloptr)->closure_env_1, ((auxerr1_24_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ;
} /* end of function */

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

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

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 9486(line=452, offs=5) -- 9826(line=469, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr2_25 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp150) ;
// ATSlocal_void (tmp151) ;
// ATSlocal_void (tmp152) ;
// ATSlocal_void (tmp153) ;
// ATSlocal_void (tmp154) ;
// ATSlocal_void (tmp155) ;
// ATSlocal_void (tmp156) ;
// ATSlocal_void (tmp157) ;
ATSlocal (ats_ptr_type, tmp158) ;

__ats_lab_auxerr2_25:
/* tmp151 = */ prerr_error2_loc_02168_ (env2) ;
/* tmp152 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("sp1at_trdn")) ;
/* tmp153 = */ atspre_prerr_string (ATSstrcst(": the static identifier [")) ;
/* tmp154 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg0) ;
/* tmp155 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg1) ;
/* tmp156 = */ atspre_prerr_string (ATSstrcst("] does not refer to a static constructor.")) ;
/* tmp157 = */ atspre_prerr_newline () ;
tmp158 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp158)->tag = 11 ;
ats_selptrset_mac(anairiats_sum_9, tmp158, atslab_0, env0) ;
ats_selptrset_mac(anairiats_sum_9, tmp158, atslab_1, env1) ;
/* tmp150 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp158) ;
return /* (tmp150) */ ;
} /* end of [auxerr2_25] */

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

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

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

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

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 9854(line=471, offs=5) -- 10169(line=487, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr3_26 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp159) ;
// ATSlocal_void (tmp160) ;
// ATSlocal_void (tmp161) ;
// ATSlocal_void (tmp162) ;
// ATSlocal_void (tmp163) ;
// ATSlocal_void (tmp164) ;
// ATSlocal_void (tmp165) ;
// ATSlocal_void (tmp166) ;
ATSlocal (ats_ptr_type, tmp167) ;

__ats_lab_auxerr3_26:
/* tmp160 = */ prerr_error2_loc_02168_ (env2) ;
/* tmp161 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("sp1at_trdn")) ;
/* tmp162 = */ atspre_prerr_string (ATSstrcst(": the static identifier [")) ;
/* tmp163 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg0) ;
/* tmp164 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg1) ;
/* tmp165 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ;
/* tmp166 = */ atspre_prerr_newline () ;
tmp167 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp167)->tag = 11 ;
ats_selptrset_mac(anairiats_sum_9, tmp167, atslab_0, env0) ;
ats_selptrset_mac(anairiats_sum_9, tmp167, atslab_1, env1) ;
/* tmp159 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp167) ;
return /* (tmp159) */ ;
} /* end of [auxerr3_26] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
ats_ptr_type closure_env_1 ;
ats_ptr_type closure_env_2 ;
} auxerr3_26_closure_type ;

ats_void_type
auxerr3_26_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) {
auxerr3_26 (((auxerr3_26_closure_type*)cloptr)->closure_env_0, ((auxerr3_26_closure_type*)cloptr)->closure_env_1, ((auxerr3_26_closure_type*)cloptr)->closure_env_2, arg0, arg1) ; return ;
} /* end of function */

ATSinline()
ats_void_type
auxerr3_26_closure_init (auxerr3_26_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
p_clo->closure_fun = (ats_fun_ptr_type)&auxerr3_26_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
p_clo->closure_env_2 = env2 ;
return ;
} /* end of function */

ats_clo_ptr_type
auxerr3_26_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
auxerr3_26_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr3_26_closure_type)) ;
auxerr3_26_closure_init (p_clo, env0, env1, env2) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 10271(line=494, offs=7) -- 10431(line=501, offs=4)
*/
ATSstaticdec()
ats_void_type
procrepeat_28 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp169) ;
ATSlocal (ats_ptr_type, tmp170) ;
ATSlocal (ats_ptr_type, tmp171) ;

__ats_lab_procrepeat_28:
tmp170 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_sp1at_node) ;
do {
/* branch: __ats_lab_24 */
__ats_lab_24_0:
// 
__ats_lab_24_1:
tmp171 = ats_caselptrlab_mac(anairiats_sum_12, tmp170, atslab_2) ;
/* tmp169 = */ procrepeat2_29 (tmp171, arg1) ;
break ;
} while (0) ;
return /* (tmp169) */ ;
} /* end of [procrepeat_28] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 10438(line=502, offs=7) -- 10811(line=518, offs=4)
*/
ATSstaticdec()
ats_void_type
procrepeat2_29 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp172) ;
ATSlocal (ats_ptr_type, tmp173) ;
ATSlocal (ats_ptr_type, tmp174) ;
// ATSlocal_void (tmp175) ;
ATSlocal (ats_bool_type, tmp176) ;
ATSlocal (ats_ptr_type, tmp177) ;
// ATSlocal_void (tmp178) ;
ATSlocal (ats_ptr_type, tmp179) ;

__ats_lab_procrepeat2_29:
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:
tmp173 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp174 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp177 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp173), atslab_s1arg_sym) ;
tmp176 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp177, arg1) ;
if (tmp176) {
tmp179 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_8, tmp173), atslab_s1arg_loc) ;
/* tmp178 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (tmp179) ;
/* tmp175 = */ atspre_prerr_newline () ;
} else {
/* empty */
} /* end of [if] */
arg0 = tmp174 ;
arg1 = arg1 ;
goto __ats_lab_procrepeat2_29 ; // tail call
break ;

/* branch: __ats_lab_26 */
__ats_lab_26_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_26_1:
break ;
} while (0) ;
return /* (tmp172) */ ;
} /* end of [procrepeat2_29] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 10197(line=489, offs=5) -- 11312(line=541, offs=4)
*/
ATSstaticdec()
ats_void_type
auxcheck_27 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp168) ;
ATSlocal (ats_ptr_type, tmp180) ;
ATSlocal (ats_ptr_type, tmp181) ;
ATSlocal (ats_ptr_type, tmp182) ;
// ATSlocal_void (tmp183) ;
// ATSlocal_void (tmp184) ;
// ATSlocal_void (tmp185) ;
// ATSlocal_void (tmp186) ;
// ATSlocal_void (tmp187) ;
// ATSlocal_void (tmp188) ;
ATSlocal (ats_ptr_type, tmp189) ;

__ats_lab_auxcheck_27:
tmp180 = sp1at_get_dups_16 (arg1) ;
do {
/* branch: __ats_lab_27 */
__ats_lab_27_0:
if (tmp180 != (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; }
__ats_lab_27_1:
break ;

/* branch: __ats_lab_28 */
__ats_lab_28_0:
// if (tmp180 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_28_1:
tmp181 = ats_caselptrlab_mac(anairiats_sum_6, tmp180, atslab_0) ;
tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (tmp181) ;
/* tmp183 = */ prerr_error2_loc_02168_ (env1) ;
/* tmp184 = */ atspre_prerr_string (ATSstrcst(": the static variable [")) ;
/* tmp185 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (tmp182) ;
/* tmp186 = */ atspre_prerr_string (ATSstrcst("] is not allowed to occur repeatedly in a pattern:")) ;
/* tmp187 = */ atspre_prerr_newline () ;
/* tmp188 = */ procrepeat_28 (arg0, tmp182) ;
tmp189 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp189)->tag = 11 ;
ats_selptrset_mac(anairiats_sum_9, tmp189, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_9, tmp189, atslab_1, env0) ;
/* tmp168 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp189) ;
break ;
} while (0) ;
return /* (tmp168) */ ;
} /* end of [auxcheck_27] */

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

ats_void_type
auxcheck_27_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) {
auxcheck_27 (((auxcheck_27_closure_type*)cloptr)->closure_env_0, ((auxcheck_27_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; return ;
} /* end of function */

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

ats_clo_ptr_type
auxcheck_27_closure_make (ats_ptr_type env0, ats_ptr_type env1) {
auxcheck_27_closure_type *p_clo = ATS_MALLOC(sizeof(auxcheck_27_closure_type)) ;
auxcheck_27_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 11344(line=543, offs=5) -- 11942(line=570, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxselect_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp190) ;
ATSlocal (ats_ptr_type, tmp191) ;
ATSlocal (ats_ptr_type, tmp192) ;
ATSlocal (ats_ptr_type, tmp193) ;
ATSlocal (ats_ptr_type, tmp194) ;
ATSlocal (ats_ptr_type, tmp195) ;
ATSlocal (ats_bool_type, tmp196) ;

__ats_lab_auxselect_30:
do {
/* branch: __ats_lab_29 */
__ats_lab_29_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_32_0 ; }
__ats_lab_29_1:
tmp191 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp192 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (tmp191) ;
do {
/* branch: __ats_lab_30 */
__ats_lab_30_0:
if (((ats_sum_ptr_type)tmp193)->tag != 1) { goto __ats_lab_31_0 ; }
__ats_lab_30_1:
tmp194 = ats_caselptrlab_mac(anairiats_sum_9, tmp193, atslab_0) ;
tmp195 = ats_caselptrlab_mac(anairiats_sum_9, tmp193, atslab_1) ;
tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (arg1, tmp195) ;
if (tmp196) {
ats_ptrget_mac(ats_ptr_type, arg2) = tmp194 ;
tmp190 = arg0 ;
} else {
arg0 = tmp192 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab_auxselect_30 ; // tail call
} /* end of [if] */
break ;

/* branch: __ats_lab_31 */
__ats_lab_31_0:
__ats_lab_31_1:
arg0 = tmp192 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab_auxselect_30 ; // tail call
break ;
} while (0) ;
break ;

/* branch: __ats_lab_32 */
__ats_lab_32_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_32_1:
tmp190 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp190) ;
} /* end of [auxselect_30] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 9015(line=429, offs=3) -- 13230(line=611, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__sp1at_trdn (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp137) ;
ATSlocal (ats_ptr_type, tmp138) ;
ATSlocal (ats_ptr_type, tmp197) ;
ATSlocal (ats_ptr_type, tmp198) ;
ATSlocal (ats_ptr_type, tmp199) ;
ATSlocal (ats_ptr_type, tmp200) ;
ATSlocal (ats_ptr_type, tmp201) ;
ATSlocal (ats_ptr_type, tmp202) ;
ATSlocal (ats_ptr_type, tmp203) ;
ATSlocal (ats_ptr_type, tmp204) ;
ATSlocal (ats_ptr_type, tmp205) ;
ATSlocal (ats_ptr_type, tmp206) ;
ATSlocal (ats_ptr_type, tmp207) ;
// ATSlocal_void (tmp208) ;
// ATSlocal_void (tmp209) ;
// ATSlocal_void (tmp210) ;
// ATSlocal_void (tmp211) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__sp1at_trdn:
tmp138 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_sp1at_loc) ;
tmp197 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg0), atslab_sp1at_node) ;
do {
/* branch: __ats_lab_33 */
__ats_lab_33_0:
// 
__ats_lab_33_1:
tmp198 = ats_caselptrlab_mac(anairiats_sum_12, tmp197, atslab_0) ;
tmp199 = ats_caselptrlab_mac(anairiats_sum_12, tmp197, atslab_1) ;
tmp200 = ats_caselptrlab_mac(anairiats_sum_12, tmp197, atslab_2) ;
tmp201 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find_qua (tmp198, tmp199) ;
do {
/* branch: __ats_lab_34 */
__ats_lab_34_0:
if (tmp201 == (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; }
__ats_lab_34_1:
tmp202 = ats_caselptrlab_mac(anairiats_sum_4, tmp201, atslab_0) ;
ATS_FREE(tmp201) ;
do {
/* branch: __ats_lab_35 */
__ats_lab_35_0:
if (((ats_sum_ptr_type)tmp202)->tag != 1) { goto __ats_lab_38_0 ; }
__ats_lab_35_1:
tmp203 = ats_caselptrlab_mac(anairiats_sum_5, tmp202, atslab_0) ;
/* ats_ptr_type tmp204 ; */
tmp204 = (ats_sum_ptr_type)0 ;
tmp205 = auxselect_30 (tmp203, arg1, (&tmp204)) ;
do {
/* branch: __ats_lab_36 */
__ats_lab_36_0:
if (tmp205 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; }
__ats_lab_36_1:
tmp206 = ats_caselptrlab_mac(anairiats_sum_6, tmp205, atslab_0) ;
tmp207 = sp1at_trdn_arg_21 (arg0, arg1, tmp198, tmp199, tmp200, tmp204) ;
/* tmp208 = */ auxcheck_27 (arg1, tmp138, arg0, tmp207) ;
tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_con (tmp138, tmp206, tmp207) ;
break ;

/* branch: __ats_lab_37 */
__ats_lab_37_0:
// if (tmp205 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_37_1:
/* tmp209 = */ auxerr1_24 (arg0, arg1, tmp138, tmp198, tmp199) ;
tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_err (tmp138) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_38 */
__ats_lab_38_0:
__ats_lab_38_1:
/* tmp210 = */ auxerr2_25 (arg0, arg1, tmp138, tmp198, tmp199) ;
tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_err (tmp138) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_39 */
__ats_lab_39_0:
// if (tmp201 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_39_1:
/* tmp211 = */ auxerr3_26 (arg0, arg1, tmp138, tmp198, tmp199) ;
tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sp2at_err (tmp138) ;
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp137) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__sp1at_trdn] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 13621(line=635, offs=11) -- 13968(line=643, offs=30)
*/
ATSstaticdec()
ats_ptr_type
loop_32 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp218) ;
ATSlocal (ats_ptr_type, tmp219) ;
ATSlocal (ats_ptr_type, tmp220) ;
ATSlocal (ats_ptr_type, tmp221) ;
ATSlocal (ats_bool_type, tmp222) ;

__ats_lab_loop_32:
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:
tmp219 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp220 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp221 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (tmp219) ;
tmp222 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_fun (tmp221) ;
if (tmp222) {
arg0 = tmp220 ;
arg1 = arg1 ;
goto __ats_lab_loop_32 ; // tail call
} else {
tmp218 = tmp219 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_43 */
__ats_lab_43_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_43_1:
tmp218 = arg1 ;
break ;
} while (0) ;
return (tmp218) ;
} /* end of [loop_32] */

/*
// /tmp/ATS-Postiats/src/pats_errmsg.dats: 1766(line=59, offs=19) -- 1906(line=65, offs=2)
*/
ATSstaticdec()
ats_void_type
prerr_interror_loc_02166_ (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp235) ;
// ATSlocal_void (tmp236) ;
// ATSlocal_void (tmp237) ;
// ATSlocal_void (tmp238) ;

__ats_lab_prerr_interror_loc_02166_:
/* tmp236 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ;
/* tmp237 = */ atspre_prerr_string (ATSstrcst(": INTERROR(")) ;
/* tmp238 = */ prerr_FILENAME_02164_ () ;
/* tmp235 = */ atspre_prerr_string (ATSstrcst(")")) ;
return /* (tmp235) */ ;
} /* end of [prerr_interror_loc_02166_] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 13303(line=617, offs=5) -- 15372(line=698, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s1exp_trup_sqid_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp212) ;
ATSlocal (ats_ptr_type, tmp213) ;
ATSlocal (ats_ptr_type, tmp214) ;
ATSlocal (ats_ptr_type, tmp215) ;
ATSlocal (ats_ptr_type, tmp216) ;
ATSlocal (ats_ptr_type, tmp217) ;
ATSlocal (ats_ptr_type, tmp223) ;
ATSlocal (ats_ptr_type, tmp224) ;
ATSlocal (ats_ptr_type, tmp225) ;
ATSlocal (ats_ptr_type, tmp226) ;
ATSlocal (ats_ptr_type, tmp227) ;
ATSlocal (ats_bool_type, tmp228) ;
ATSlocal (ats_ptr_type, tmp229) ;
ATSlocal (ats_ptr_type, tmp230) ;
ATSlocal (ats_ptr_type, tmp231) ;
ATSlocal (ats_ptr_type, tmp232) ;
ATSlocal (ats_ptr_type, tmp233) ;
// ATSlocal_void (tmp234) ;
// ATSlocal_void (tmp239) ;
// ATSlocal_void (tmp240) ;
// ATSlocal_void (tmp241) ;
// ATSlocal_void (tmp242) ;
// ATSlocal_void (tmp243) ;
// ATSlocal_void (tmp244) ;
// ATSlocal_void (tmp245) ;
// ATSlocal_void (tmp246) ;
// ATSlocal_void (tmp247) ;
// ATSlocal_void (tmp248) ;
// ATSlocal_void (tmp249) ;
// ATSlocal_void (tmp250) ;
// ATSlocal_void (tmp251) ;
// ATSlocal_void (tmp252) ;
ATSlocal (ats_ptr_type, tmp253) ;

__ats_lab_s1exp_trup_sqid_31:
tmp213 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ;
tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find_qua (arg1, arg2) ;
do {
/* branch: __ats_lab_40 */
__ats_lab_40_0:
if (tmp214 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; }
__ats_lab_40_1:
tmp215 = ats_caselptrlab_mac(anairiats_sum_4, tmp214, atslab_0) ;
ATS_FREE(tmp214) ;
do {
/* branch: __ats_lab_41 */
__ats_lab_41_0:
if (((ats_sum_ptr_type)tmp215)->tag != 1) { goto __ats_lab_46_0 ; }
__ats_lab_41_1:
tmp216 = ats_caselptrlab_mac(anairiats_sum_5, tmp215, atslab_0) ;
if (tmp216 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 13552(line=633, offs=11) -- 13577(line=633, offs=36)") ; }
tmp217 = ats_caselptrlab_mac(anairiats_sum_6, tmp216, atslab_0) ;
tmp223 = loop_32 (tmp216, tmp217) ;
tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp223) ;
tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (tmp223) ;
do {
/* branch: __ats_lab_44 */
__ats_lab_44_0:
if (((ats_sum_ptr_type)tmp225)->tag != 1) { goto __ats_lab_45_0 ; }
tmp226 = ats_caselptrlab_mac(anairiats_sum_9, tmp225, atslab_0) ;
if (tmp226 != (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; }
__ats_lab_44_1:
tmp227 = ats_caselptrlab_mac(anairiats_sum_9, tmp225, atslab_1) ;
tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_dat (tmp227) ;
if (!tmp228) { goto __ats_lab_45_1 ; }
tmp229 = (ats_sum_ptr_type)0 ;
tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt (tmp227, tmp224, tmp229) ;
break ;

/* branch: __ats_lab_45 */
__ats_lab_45_0:
__ats_lab_45_1:
tmp212 = tmp224 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_46 */
__ats_lab_46_0:
if (((ats_sum_ptr_type)tmp215)->tag != 2) { goto __ats_lab_47_0 ; }
__ats_lab_46_1:
tmp230 = ats_caselptrlab_mac(anairiats_sum_5, tmp215, atslab_0) ;
tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_normalize (tmp230) ;
tmp232 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_make_e1xp (tmp213, tmp231) ;
tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (tmp232) ;
break ;

/* branch: __ats_lab_47 */
__ats_lab_47_0:
if (((ats_sum_ptr_type)tmp215)->tag != 0) { goto __ats_lab_48_0 ; }
__ats_lab_47_1:
tmp233 = ats_caselptrlab_mac(anairiats_sum_5, tmp215, atslab_0) ;
tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp233) ;
break ;

/* branch: __ats_lab_48 */
__ats_lab_48_0:
__ats_lab_48_1:
/* tmp234 = */ prerr_interror_loc_02166_ (tmp213) ;
/* tmp239 = */ atspre_prerr_string (ATSstrcst(": s1exp_trup_sqid: s1e0 = ")) ;
/* tmp240 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1exp (arg0) ;
/* tmp241 = */ atspre_prerr_newline () ;
/* tmp242 = */ atspre_prerr_string (ATSstrcst(": s1exp_trup_sqid: s2i0 = ")) ;
/* tmp243 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2itm (tmp215) ;
/* tmp244 = */ atspre_prerr_newline () ;
/* tmp212 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_49 */
__ats_lab_49_0:
// if (tmp214 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_49_1:
/* tmp245 = */ prerr_error2_loc_02168_ (tmp213) ;
/* tmp246 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_sqid")) ;
/* tmp247 = */ atspre_prerr_string (ATSstrcst(": the static identifier [")) ;
/* tmp248 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg1) ;
/* tmp249 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg2) ;
/* tmp250 = */ atspre_prerr_string (ATSstrcst("] is unrecognized.")) ;
/* tmp251 = */ atspre_prerr_newline () ;
tmp253 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp253)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp253, atslab_0, arg0) ;
/* tmp252 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp253) ;
tmp212 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ;
break ;
} while (0) ;
return (tmp212) ;
} /* end of [s1exp_trup_sqid_31] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 15623(line=715, offs=5) -- 16251(line=743, offs=4)
*/
ATSstaticdec()
ats_ptr_type
aux_35 (ats_ptr_type arg0, anairiats_rec_14 arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp255) ;
ATSlocal (ats_ptr_type, tmp256) ;
ATSlocal (ats_bool_type, tmp257) ;
ATSlocal (ats_ptr_type, tmp258) ;
// ATSlocal_void (tmp259) ;
ATSlocal (ats_ptr_type, tmp260) ;
// ATSlocal_void (tmp261) ;
// ATSlocal_void (tmp262) ;
// ATSlocal_void (tmp263) ;
ATSlocal (ats_ptr_type, tmp264) ;
// ATSlocal_void (tmp265) ;
// ATSlocal_void (tmp266) ;
// ATSlocal_void (tmp267) ;
// ATSlocal_void (tmp268) ;
// ATSlocal_void (tmp269) ;
ATSlocal (ats_ptr_type, tmp270) ;

__ats_lab_aux_35:
tmp256 = ats_select_mac(arg1, atslab_1) ;
tmp258 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp256), atslab_s2exp_srt) ;
tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (tmp258, arg2) ;
if (tmp257) {
tmp255 = tmp256 ;
} else {
tmp260 = ats_select_mac(arg1, atslab_0) ;
/* tmp259 = */ prerr_error2_loc_02168_ (tmp260) ;
/* tmp261 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_app_wind")) ;
/* tmp262 = */ atspre_prerr_string (ATSstrcst(": the static expression is of the sort [")) ;
tmp264 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp256), atslab_s2exp_srt) ;
/* tmp263 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (tmp264) ;
/* tmp265 = */ atspre_prerr_string (ATSstrcst("] but it is expected to be of the sort [")) ;
/* tmp266 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg2) ;
/* tmp267 = */ atspre_prerr_string (ATSstrcst("].")) ;
/* tmp268 = */ atspre_prerr_newline () ;
tmp270 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp270)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp270, atslab_0, arg0) ;
/* tmp269 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp270) ;
tmp255 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (arg2) ;
} /* end of [if] */
return (tmp255) ;
} /* end of [aux_35] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 16286(line=745, offs=5) -- 17515(line=788, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxlst_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp271) ;
ATSlocal (anairiats_rec_14, tmp272) ;
ATSlocal (ats_ptr_type, tmp273) ;
ATSlocal (ats_ptr_type, tmp274) ;
ATSlocal (ats_ptr_type, tmp275) ;
ATSlocal (ats_ptr_type, tmp276) ;
ATSlocal (ats_ptr_type, tmp277) ;
// ATSlocal_void (tmp278) ;
ATSlocal (ats_ptr_type, tmp279) ;
// ATSlocal_void (tmp280) ;
// ATSlocal_void (tmp281) ;
// ATSlocal_void (tmp282) ;
// ATSlocal_void (tmp283) ;
ATSlocal (ats_ptr_type, tmp284) ;
ATSlocal (ats_ptr_type, tmp285) ;
ATSlocal (ats_ptr_type, tmp286) ;
// ATSlocal_void (tmp287) ;
ATSlocal (ats_ptr_type, tmp288) ;
// ATSlocal_void (tmp289) ;
// ATSlocal_void (tmp290) ;
// ATSlocal_void (tmp291) ;
// ATSlocal_void (tmp292) ;
ATSlocal (ats_ptr_type, tmp293) ;
ATSlocal (ats_ptr_type, tmp294) ;
ATSlocal (ats_ptr_type, tmp295) ;

__ats_lab_auxlst_36:
do {
/* branch: __ats_lab_50 */
__ats_lab_50_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; }
__ats_lab_50_1:
tmp272 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_0) ;
tmp273 = ats_caselptrlab_mac(anairiats_sum_16, arg1, atslab_1) ;
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:
tmp274 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ;
tmp275 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ;
tmp276 = aux_35 (arg0, tmp272, tmp274) ;
tmp277 = auxlst_36 (arg0, tmp273, tmp275) ;
tmp271 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp271, atslab_0, tmp276) ;
ats_selptrset_mac(anairiats_sum_6, tmp271, atslab_1, tmp277) ;
break ;

/* branch: __ats_lab_52 */
__ats_lab_52_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_52_1:
tmp279 = ats_select_mac(tmp272, atslab_0) ;
/* tmp278 = */ prerr_error2_loc_02168_ (tmp279) ;
/* tmp280 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_app_wind")) ;
/* tmp281 = */ atspre_prerr_string (ATSstrcst(": arity mismatch: the static argument is discarded.")) ;
/* tmp282 = */ atspre_prerr_newline () ;
tmp284 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp284)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp284, atslab_0, arg0) ;
/* tmp283 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp284) ;
arg0 = arg0 ;
arg1 = tmp273 ;
arg2 = arg2 ;
goto __ats_lab_auxlst_36 ; // tail call
break ;
} while (0) ;
break ;

/* branch: __ats_lab_53 */
__ats_lab_53_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_53_1:
do {
/* branch: __ats_lab_54 */
__ats_lab_54_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_55_0 ; }
__ats_lab_54_1:
tmp285 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ;
tmp286 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ;
tmp288 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ;
/* tmp287 = */ prerr_error2_loc_02168_ (tmp288) ;
/* tmp289 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_app_wind")) ;
/* tmp290 = */ atspre_prerr_string (ATSstrcst(": arity mismatch: more static arguments are needed.")) ;
/* tmp291 = */ atspre_prerr_newline () ;
tmp293 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp293)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp293, atslab_0, arg0) ;
/* tmp292 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp293) ;
tmp294 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp285) ;
tmp295 = auxlst_36 (arg0, arg1, tmp286) ;
tmp271 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp271, atslab_0, tmp294) ;
ats_selptrset_mac(anairiats_sum_6, tmp271, atslab_1, tmp295) ;
break ;

/* branch: __ats_lab_55 */
__ats_lab_55_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_55_1:
tmp271 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp271) ;
} /* end of [auxlst_36] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4893(line=177, offs=7) -- 5015(line=178, offs=73)
*/
ATSstaticdec()
ats_void_type
loop_39 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp307) ;
ATSlocal (ats_ptr_type, tmp308) ;

__ats_lab_loop_39:
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:
tmp308 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
ATS_FREE(arg0) ;
arg0 = tmp308 ;
goto __ats_lab_loop_39 ; // 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:
break ;
} while (0) ;
return /* (tmp307) */ ;
} /* end of [loop_39] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-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 (tmp306) ;

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

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 17542(line=790, offs=5) -- 18370(line=823, offs=4)
*/
ATSstaticdec()
ats_ptr_type
loop_37 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp296) ;
ATSlocal (ats_ptr_type, tmp297) ;
ATSlocal (ats_ptr_type, tmp298) ;
ATSlocal (ats_bool_type, tmp299) ;
ATSlocal (ats_ptr_type, tmp300) ;
ATSlocal (ats_ptr_type, tmp301) ;
ATSlocal (ats_int_type, tmp302) ;
ATSlocal (ats_ptr_type, tmp303) ;
ATSlocal (ats_ptr_type, tmp304) ;
// ATSlocal_void (tmp305) ;
// ATSlocal_void (tmp309) ;
ATSlocal (ats_ptr_type, tmp310) ;
// ATSlocal_void (tmp311) ;
// ATSlocal_void (tmp312) ;
// ATSlocal_void (tmp313) ;
// ATSlocal_void (tmp314) ;
ATSlocal (ats_ptr_type, tmp315) ;

__ats_lab_loop_37:
do {
/* branch: __ats_lab_56 */
__ats_lab_56_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_59_0 ; }
__ats_lab_56_1:
tmp297 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ;
tmp298 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ;
ATS_FREE(arg2) ;
tmp299 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_fun (arg1) ;
if (tmp299) {
if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 17738(line=803, offs=13) -- 17763(line=803, offs=38)") ; }
tmp300 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ;
tmp301 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ;
/* ats_int_type tmp302 ; */
tmp302 = 0 ;
tmp303 = auxlst_36 (arg0, tmp297, tmp300) ;
tmp304 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt (tmp301, arg3, tmp303) ;
arg0 = arg0 ;
arg1 = tmp301 ;
arg2 = tmp298 ;
arg3 = tmp304 ;
goto __ats_lab_loop_37 ; // tail call
} else {
/* tmp305 = */ list_vt_free_01499_ats_ptr_type (tmp298) ;
tmp310 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ;
/* tmp309 = */ prerr_error2_loc_02168_ (tmp310) ;
/* tmp311 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_app_wind")) ;
/* tmp312 = */ atspre_prerr_string (ATSstrcst(": the static term is overly applied.")) ;
/* tmp313 = */ atspre_prerr_newline () ;
tmp315 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp315)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp315, atslab_0, arg0) ;
/* tmp314 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp315) ;
tmp296 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (arg1) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_59 */
__ats_lab_59_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_59_1:
tmp296 = arg3 ;
break ;
} while (0) ;
return (tmp296) ;
} /* end of [loop_37] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 15427(line=703, offs=1) -- 18453(line=827, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s2exp_app_wind_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp254) ;
ATSlocal (ats_ptr_type, tmp316) ;

__ats_lab_s2exp_app_wind_34:
tmp316 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg1), atslab_s2exp_srt) ;
tmp254 = loop_37 (arg0, tmp316, arg2, arg1) ;
return (tmp254) ;
} /* end of [s2exp_app_wind_34] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 18573(line=836, offs=5) -- 19159(line=863, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s1exp_app_unwind_40 (ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp317) ;
ATSlocal (ats_ptr_type, tmp318) ;
ATSlocal (ats_ptr_type, tmp319) ;
ATSlocal (ats_ptr_type, tmp320) ;
ATSlocal (ats_ptr_type, tmp321) ;
ATSlocal (anairiats_rec_14, tmp322) ;
ATSlocal (ats_ptr_type, tmp323) ;
ATSlocal (ats_ptr_type, tmp324) ;
ATSlocal (ats_ptr_type, tmp325) ;
ATSlocal (ats_ptr_type, tmp326) ;
ATSlocal (ats_ptr_type, tmp327) ;

__ats_lab_s1exp_app_unwind_40:
tmp318 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ;
do {
/* branch: __ats_lab_60 */
__ats_lab_60_0:
if (((ats_sum_ptr_type)tmp318)->tag != 9) { goto __ats_lab_61_0 ; }
__ats_lab_60_1:
tmp319 = ats_caselptrlab_mac(anairiats_sum_17, tmp318, atslab_0) ;
tmp320 = ats_caselptrlab_mac(anairiats_sum_17, tmp318, atslab_1) ;
tmp321 = ats_caselptrlab_mac(anairiats_sum_17, tmp318, atslab_2) ;
tmp322.atslab_0 = tmp320 ;
tmp322.atslab_1 = tmp321 ;

tmp323 = ATS_MALLOC(sizeof(anairiats_sum_16)) ;
ats_selptrset_mac(anairiats_sum_16, tmp323, atslab_0, tmp322) ;
ats_selptrset_mac(anairiats_sum_16, tmp323, atslab_1, ats_ptrget_mac(ats_ptr_type, arg1)) ;
ats_ptrget_mac(ats_ptr_type, arg1) = tmp323 ;
arg0 = tmp319 ;
arg1 = arg1 ;
goto __ats_lab_s1exp_app_unwind_40 ; // tail call
break ;

/* branch: __ats_lab_61 */
__ats_lab_61_0:
if (((ats_sum_ptr_type)tmp318)->tag != 0) { goto __ats_lab_66_0 ; }
__ats_lab_61_1:
tmp324 = ats_caselptrlab_mac(anairiats_sum_5, tmp318, atslab_0) ;
tmp325 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find (tmp324) ;
do {
/* branch: __ats_lab_62 */
__ats_lab_62_0:
if (tmp325 == (ats_sum_ptr_type)0) { goto __ats_lab_65_0 ; }
__ats_lab_62_1:
tmp326 = ats_caselptrlab_mac(anairiats_sum_4, tmp325, atslab_0) ;
ATS_FREE(tmp325) ;
do {
/* branch: __ats_lab_63 */
__ats_lab_63_0:
if (((ats_sum_ptr_type)tmp326)->tag != 2) { goto __ats_lab_64_0 ; }
__ats_lab_63_1:
tmp327 = ats_caselptrlab_mac(anairiats_sum_5, tmp326, atslab_0) ;
tmp317 = s1exp_app_unwind_e1xp_41 (arg0, tmp327, arg1) ;
break ;

/* branch: __ats_lab_64 */
__ats_lab_64_0:
__ats_lab_64_1:
tmp317 = arg0 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_65 */
__ats_lab_65_0:
// if (tmp325 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_65_1:
tmp317 = arg0 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_66 */
__ats_lab_66_0:
__ats_lab_66_1:
tmp317 = arg0 ;
break ;
} while (0) ;
return (tmp317) ;
} /* end of [s1exp_app_unwind_40] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5506(line=202, offs=7) -- 5735(line=208, offs=6)
*/
ATSstaticdec()
ats_int_type
loop_43 (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp332) ;
ATSlocal (ats_ptr_type, tmp333) ;
ATSlocal (ats_ptr_type, tmp334) ;
ATSlocal (ats_int_type, tmp335) ;

__ats_lab_loop_43:
do {
/* branch: __ats_lab_67 */
__ats_lab_67_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; }
__ats_lab_67_1:
tmp333 = &ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_1) ;
tmp334 = ats_ptrget_mac(ats_ptr_type, tmp333) ;
tmp335 = atspre_iadd (arg1, 1) ;
arg0 = tmp334 ;
arg1 = tmp335 ;
goto __ats_lab_loop_43 ; // tail call
break ;

/* branch: __ats_lab_68 */
__ats_lab_68_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_68_1:
tmp332 = arg1 ;
break ;
} while (0) ;
return (tmp332) ;
} /* end of [loop_43] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5439(line=200, offs=16) -- 5775(line=211, offs=4)
*/
ATSstaticdec()
ats_int_type
list_vt_length_01501_anairiats_rec_14 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp331) ;

__ats_lab_list_vt_length_01501_anairiats_rec_14:
tmp331 = loop_43 (arg0, 0) ;
return (tmp331) ;
} /* end of [list_vt_length_01501_anairiats_rec_14] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 19615(line=885, offs=9) -- 19683(line=885, offs=77)
*/
ATSstaticdec()
ats_ptr_type
__ats_fun_44 (ats_ptr_type env0, ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp341) ;

__ats_lab___ats_fun_44:
tmp341 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_make_s1exp (env0, arg0) ;
return (tmp341) ;
} /* end of [__ats_fun_44] */

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

ats_ptr_type
__ats_fun_44_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
return __ats_fun_44 (((__ats_fun_44_closure_type*)cloptr)->closure_env_0, arg0) ;
} /* end of function */

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

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53639(line=1919, offs=6) -- 53788(line=1925, offs=6)
*/
ATSstaticdec()
ats_ptr_type
app_46 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp345) ;

__ats_lab_app_46:
tmp345 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(arg1))) (arg1, arg0) ;
return (tmp345) ;
} /* end of [app_46] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 53503(line=1915, offs=23) -- 53963(line=1932, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_map_vclo_01414_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp344) ;

__ats_lab_list_map_vclo_01414_ats_ptr_type_ats_ptr_type:
tmp344 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, &app_46, arg1) ;
return (tmp344) ;
} /* end of [list_map_vclo_01414_ats_ptr_type_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 19194(line=865, offs=5) -- 20144(line=905, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s1exp_app_unwind_e1xp_41 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp328) ;
ATSlocal (ats_ptr_type, tmp329) ;
ATSlocal (ats_int_type, tmp330) ;
ATSlocal (ats_ptr_type, tmp336) ;
ATSlocal (ats_bool_type, tmp337) ;
ATSlocal (anairiats_rec_14, tmp338) ;
ATSlocal (ats_ptr_type, tmp339) ;
ATSlocal (ats_ptr_type, tmp340) ;
ATSlocal (__ats_fun_44_closure_type, tmp342) ;
ATSlocal (ats_ptr_type, tmp343) ;
ATSlocal (ats_ptr_type, tmp346) ;
ATSlocal (ats_ptr_type, tmp347) ;
ATSlocal (ats_ptr_type, tmp348) ;
ATSlocal (ats_ptr_type, tmp349) ;
ATSlocal (ats_ptr_type, tmp350) ;
ATSlocal (ats_ptr_type, tmp351) ;

__ats_lab_s1exp_app_unwind_e1xp_41:
tmp329 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ;
tmp330 = list_vt_length_01501_anairiats_rec_14 (ats_ptrget_mac(ats_ptr_type, arg2)) ;
tmp336 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_e1xp_node) ;
do {
/* branch: __ats_lab_69 */
__ats_lab_69_0:
if (((ats_sum_ptr_type)tmp336)->tag != 10) { goto __ats_lab_70_0 ; }
__ats_lab_69_1:
tmp337 = atspre_igt (tmp330, 0) ;
if (!tmp337) { goto __ats_lab_70_1 ; }
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp338 = ats_caselptrlab_mac(anairiats_sum_16, ats_ptrget_mac(ats_ptr_type, arg2), atslab_0) ;
tmp339 = ats_caselptrlab_mac(anairiats_sum_16, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg2)) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp339 ;
/* ats_ptr_type tmp340 ; */
tmp340 = &(tmp342) ;
__ats_fun_44_closure_init (tmp340, tmp329) ; // closure initialization
tmp346 = ats_select_mac(tmp338, atslab_1) ;
tmp343 = list_map_vclo_01414_ats_ptr_type_ats_ptr_type (tmp346, tmp340) ;
tmp347 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app (tmp329, arg1, tmp329, ats_castfn_mac(ats_ptr_type, tmp343)) ;
tmp348 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_normalize (tmp347) ;
tmp349 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_make_e1xp (tmp329, tmp348) ;
tmp328 = s1exp_app_unwind_40 (tmp349, arg2) ;
break ;

/* branch: __ats_lab_70 */
__ats_lab_70_0:
__ats_lab_70_1:
tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_normalize (arg1) ;
tmp351 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_make_e1xp (tmp329, tmp350) ;
tmp328 = s1exp_app_unwind_40 (tmp351, arg2) ;
break ;
} while (0) ;
return (tmp328) ;
} /* end of [s1exp_app_unwind_e1xp_41] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 20205(line=910, offs=1) -- 20449(line=920, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s1exp_trup_invar_47 (ats_int_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp352) ;
ATSlocal (ats_ptr_type, tmp353) ;
ATSlocal (ats_bool_type, tmp354) ;
ATSlocal (ats_ptr_type, tmp355) ;

__ats_lab_s1exp_trup_invar_47:
tmp354 = atspre_eq_int_int (arg0, 0) ;
if (tmp354) {
tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view ;
} else {
tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype ;
} /* end of [if] */
tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (arg1, tmp353) ;
tmp352 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refarg (arg0, tmp355) ;
return (tmp352) ;
} /* end of [s1exp_trup_invar_47] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 20705(line=933, offs=1) -- 20892(line=940, offs=4)
*/
ATSstaticdec()
ats_bool_type
s1exp_is_underscore_48 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp356) ;
ATSlocal (ats_ptr_type, tmp357) ;
ATSlocal (ats_ptr_type, tmp358) ;
ATSlocal (ats_bool_type, tmp359) ;

__ats_lab_s1exp_is_underscore_48:
tmp357 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ;
do {
/* branch: __ats_lab_71 */
__ats_lab_71_0:
if (((ats_sum_ptr_type)tmp357)->tag != 0) { goto __ats_lab_72_0 ; }
__ats_lab_71_1:
tmp358 = ats_caselptrlab_mac(anairiats_sum_5, tmp357, atslab_0) ;
tmp359 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp358, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDERSCORE) ;
if (tmp359) {
tmp356 = ats_true_bool ;
} else {
tmp356 = ats_false_bool ;
} /* end of [if] */
break ;

/* branch: __ats_lab_72 */
__ats_lab_72_0:
__ats_lab_72_1:
tmp356 = ats_false_bool ;
break ;
} while (0) ;
return (tmp356) ;
} /* end of [s1exp_is_underscore_48] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 20930(line=943, offs=1) -- 21103(line=950, offs=4)
*/
ATSstaticdec()
ats_int_type
s1exp_test_top_underscore_49 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp360) ;
ATSlocal (ats_ptr_type, tmp361) ;
ATSlocal (ats_int_type, tmp362) ;
ATSlocal (ats_ptr_type, tmp363) ;
ATSlocal (ats_bool_type, tmp364) ;

__ats_lab_s1exp_test_top_underscore_49:
tmp361 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ;
do {
/* branch: __ats_lab_73 */
__ats_lab_73_0:
if (((ats_sum_ptr_type)tmp361)->tag != 12) { goto __ats_lab_74_0 ; }
__ats_lab_73_1:
tmp362 = ats_caselptrlab_mac(anairiats_sum_19, tmp361, atslab_0) ;
tmp363 = ats_caselptrlab_mac(anairiats_sum_19, tmp361, atslab_1) ;
tmp364 = s1exp_is_underscore_48 (tmp363) ;
if (tmp364) {
tmp360 = tmp362 ;
} else {
tmp360 = -1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_74 */
__ats_lab_74_0:
__ats_lab_74_1:
tmp360 = -1 ;
break ;
} while (0) ;
return (tmp360) ;
} /* end of [s1exp_test_top_underscore_49] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 21145(line=952, offs=5) -- 21249(line=956, offs=2)
*/
ATSstaticdec()
ats_ptr_type
s1exp_untop_if_50 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp365) ;
ATSlocal (ats_ptr_type, tmp366) ;
ATSlocal (ats_ptr_type, tmp367) ;

__ats_lab_s1exp_untop_if_50:
tmp366 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ;
do {
/* branch: __ats_lab_75 */
__ats_lab_75_0:
if (((ats_sum_ptr_type)tmp366)->tag != 12) { goto __ats_lab_76_0 ; }
__ats_lab_75_1:
tmp367 = ats_caselptrlab_mac(anairiats_sum_19, tmp366, atslab_1) ;
tmp365 = tmp367 ;
break ;

/* branch: __ats_lab_76 */
__ats_lab_76_0:
__ats_lab_76_1:
tmp365 = arg0 ;
break ;
} while (0) ;
return (tmp365) ;
} /* end of [s1exp_untop_if_50] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 21282(line=958, offs=5) -- 21689(line=975, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s1exp_trans_syn_arg2_51 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp368) ;
ATSlocal (ats_bool_type, tmp369) ;
ATSlocal (ats_int_type, tmp370) ;
ATSlocal (ats_bool_type, tmp371) ;
ATSlocal (ats_ptr_type, tmp372) ;
ATSlocal (ats_ptr_type, tmp373) ;

__ats_lab_s1exp_trans_syn_arg2_51:
tmp369 = s1exp_is_underscore_48 (arg1) ;
if (tmp369) {
tmp368 = s1exp_untop_if_50 (arg0) ;
} else {
tmp370 = s1exp_test_top_underscore_49 (arg1) ;
tmp371 = atspre_gte_int_int (tmp370, 0) ;
if (tmp371) {
tmp372 = s1exp_untop_if_50 (arg0) ;
tmp373 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp372), atslab_s1exp_loc) ;
tmp368 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__s1exp_top (tmp373, tmp370, tmp372) ;
} else {
tmp368 = arg1 ;
} /* end of [if] */
} /* end of [if] */
return (tmp368) ;
} /* end of [s1exp_trans_syn_arg2_51] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 21772(line=981, offs=3) -- 22929(line=1025, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_arg (ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp374) ;
ATSlocal (ats_ptr_type, tmp375) ;
ATSlocal (ats_int_type, tmp376) ;
ATSlocal (ats_ptr_type, tmp377) ;
ATSlocal (ats_ptr_type, tmp378) ;
ATSlocal (ats_ptr_type, tmp379) ;
ATSlocal (ats_ptr_type, tmp380) ;
ATSlocal (ats_ptr_type, tmp381) ;
ATSlocal (ats_int_type, tmp382) ;
ATSlocal (ats_ptr_type, tmp383) ;
ATSlocal (ats_ptr_type, tmp384) ;
ATSlocal (ats_ptr_type, tmp385) ;
// ATSlocal_void (tmp386) ;
ATSlocal (ats_ptr_type, tmp387) ;
// ATSlocal_void (tmp388) ;
// ATSlocal_void (tmp389) ;
// ATSlocal_void (tmp390) ;
// ATSlocal_void (tmp391) ;
ATSlocal (ats_ptr_type, tmp392) ;
ATSlocal (ats_ptr_type, tmp393) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_arg:
tmp375 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ;
do {
/* branch: __ats_lab_77 */
__ats_lab_77_0:
if (((ats_sum_ptr_type)tmp375)->tag != 14) { goto __ats_lab_78_0 ; }
__ats_lab_77_1:
tmp376 = ats_caselptrlab_mac(anairiats_sum_19, tmp375, atslab_0) ;
tmp377 = ats_caselptrlab_mac(anairiats_sum_19, tmp375, atslab_1) ;
tmp378 = ATS_MALLOC(sizeof(anairiats_sum_20)) ;
((ats_sum_ptr_type)tmp378)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_20, tmp378, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_20, tmp378, atslab_1, tmp376) ;
ats_selptrset_mac(anairiats_sum_20, tmp378, atslab_2, tmp377) ;
ats_selptrset_mac(anairiats_sum_20, tmp378, atslab_3, ats_ptrget_mac(ats_ptr_type, arg1)) ;
ats_ptrget_mac(ats_ptr_type, arg1) = tmp378 ;
tmp374 = s1exp_trup_invar_47 (tmp376, tmp377) ;
break ;

/* branch: __ats_lab_78 */
__ats_lab_78_0:
if (((ats_sum_ptr_type)tmp375)->tag != 15) { goto __ats_lab_81_0 ; }
__ats_lab_78_1:
tmp379 = ats_caselptrlab_mac(anairiats_sum_9, tmp375, atslab_0) ;
tmp380 = ats_caselptrlab_mac(anairiats_sum_9, tmp375, atslab_1) ;
tmp381 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp379), atslab_s1exp_node) ;
do {
/* branch: __ats_lab_79 */
__ats_lab_79_0:
if (((ats_sum_ptr_type)tmp381)->tag != 14) { goto __ats_lab_80_0 ; }
__ats_lab_79_1:
tmp382 = ats_caselptrlab_mac(anairiats_sum_19, tmp381, atslab_0) ;
tmp383 = ats_caselptrlab_mac(anairiats_sum_19, tmp381, atslab_1) ;
tmp384 = s1exp_trans_syn_arg2_51 (tmp383, tmp380) ;
tmp385 = ATS_MALLOC(sizeof(anairiats_sum_20)) ;
((ats_sum_ptr_type)tmp385)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_20, tmp385, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_20, tmp385, atslab_1, tmp382) ;
ats_selptrset_mac(anairiats_sum_20, tmp385, atslab_2, tmp384) ;
ats_selptrset_mac(anairiats_sum_20, tmp385, atslab_3, ats_ptrget_mac(ats_ptr_type, arg1)) ;
ats_ptrget_mac(ats_ptr_type, arg1) = tmp385 ;
tmp374 = s1exp_trup_invar_47 (tmp382, tmp383) ;
break ;

/* branch: __ats_lab_80 */
__ats_lab_80_0:
__ats_lab_80_1:
tmp387 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp379), atslab_s1exp_loc) ;
/* tmp386 = */ prerr_error2_loc_02168_ (tmp387) ;
/* tmp388 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_arg")) ;
/* tmp389 = */ atspre_prerr_string (ATSstrcst(": a refval-type must begin with !(call-by-value) or &(call-by-reference)")) ;
/* tmp390 = */ atspre_prerr_newline () ;
tmp392 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp392)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp392, atslab_0, arg0) ;
/* tmp391 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp392) ;
tmp374 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_81 */
__ats_lab_81_0:
__ats_lab_81_1:
tmp393 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp393)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_5, tmp393, atslab_0, ats_ptrget_mac(ats_ptr_type, arg1)) ;
ats_ptrget_mac(ats_ptr_type, arg1) = tmp393 ;
tmp374 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (arg0) ;
break ;
} while (0) ;
return (tmp374) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_arg] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 23040(line=1033, offs=5) -- 23930(line=1070, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxwth_54 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp395) ;
ATSlocal (ats_int_type, tmp396) ;
ATSlocal (ats_int_type, tmp397) ;
ATSlocal (ats_ptr_type, tmp398) ;
ATSlocal (ats_ptr_type, tmp399) ;
ATSlocal (ats_ptr_type, tmp400) ;
ATSlocal (ats_bool_type, tmp401) ;
ATSlocal (ats_ptr_type, tmp402) ;
ATSlocal (ats_ptr_type, tmp403) ;
ATSlocal (ats_ptr_type, tmp404) ;
ATSlocal (ats_bool_type, tmp405) ;
ATSlocal (ats_bool_type, tmp406) ;
ATSlocal (ats_ptr_type, tmp407) ;
ATSlocal (ats_ptr_type, tmp408) ;

__ats_lab_auxwth_54:
do {
/* branch: __ats_lab_82 */
__ats_lab_82_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_83_0 ; }
__ats_lab_82_1:
tmp396 = ats_caselptrlab_mac(anairiats_sum_20, arg0, atslab_0) ;
tmp397 = ats_caselptrlab_mac(anairiats_sum_20, arg0, atslab_1) ;
tmp398 = ats_caselptrlab_mac(anairiats_sum_20, arg0, atslab_2) ;
tmp399 = ats_caselptrlab_mac(anairiats_sum_20, arg0, atslab_3) ;
tmp401 = atspre_eq_int_int (tmp397, 0) ;
if (tmp401) {
tmp400 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view ;
} else {
tmp400 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype ;
} /* end of [if] */
tmp402 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp398, tmp400) ;
tmp403 = auxwth_54 (tmp399) ;
tmp404 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp402) ;
tmp406 = atspre_eq_int_int (tmp396, 0) ;
if (tmp406) {
tmp405 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_nonvar (tmp404) ;
} else {
tmp405 = ats_false_bool ;
} /* end of [if] */
if (tmp405) {
tmp395 = ATS_MALLOC(sizeof(anairiats_sum_21)) ;
((ats_sum_ptr_type)tmp395)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_21, tmp395, atslab_0, tmp397) ;
ats_selptrset_mac(anairiats_sum_21, tmp395, atslab_1, tmp404) ;
ats_selptrset_mac(anairiats_sum_21, tmp395, atslab_2, tmp403) ;
} else {
tmp395 = ATS_MALLOC(sizeof(anairiats_sum_21)) ;
((ats_sum_ptr_type)tmp395)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_21, tmp395, atslab_0, tmp397) ;
ats_selptrset_mac(anairiats_sum_21, tmp395, atslab_1, tmp404) ;
ats_selptrset_mac(anairiats_sum_21, tmp395, atslab_2, tmp403) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_83 */
__ats_lab_83_0:
if (((ats_sum_ptr_type)arg0)->tag != 2) { goto __ats_lab_84_0 ; }
__ats_lab_83_1:
tmp407 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp408 = auxwth_54 (tmp407) ;
tmp395 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp395)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp395, atslab_0, tmp408) ;
break ;

/* branch: __ats_lab_84 */
__ats_lab_84_0:
// if (((ats_sum_ptr_type)arg0)->tag != 0) { ats_deadcode_failure_handle () ; }
__ats_lab_84_1:
tmp395 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ;
break ;
} while (0) ;
return (tmp395) ;
} /* end of [auxwth_54] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 23956(line=1072, offs=5) -- 24518(line=1096, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxres_55 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp409) ;
ATSlocal (ats_ptr_type, tmp410) ;
ATSlocal (ats_int_type, tmp411) ;
ATSlocal (ats_ptr_type, tmp412) ;
ATSlocal (ats_ptr_type, tmp413) ;
// ATSlocal_void (tmp414) ;
// ATSlocal_void (tmp415) ;
ATSlocal (anairiats_rec_1, tmp416) ;
ATSlocal (ats_ptr_type, tmp417) ;
// ATSlocal_void (tmp418) ;
ATSlocal (ats_ptr_type, tmp419) ;
ATSlocal (ats_ptr_type, tmp420) ;
ATSlocal (ats_ptr_type, tmp421) ;
ATSlocal (ats_ptr_type, tmp422) ;

__ats_lab_auxres_55:
tmp410 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ;
do {
/* branch: __ats_lab_85 */
__ats_lab_85_0:
if (((ats_sum_ptr_type)tmp410)->tag != 21) { goto __ats_lab_86_0 ; }
tmp411 = ats_caselptrlab_mac(anairiats_sum_21, tmp410, atslab_0) ;
if (tmp411 != 1) { goto __ats_lab_86_0 ; }
__ats_lab_85_1:
tmp412 = ats_caselptrlab_mac(anairiats_sum_21, tmp410, atslab_1) ;
tmp413 = ats_caselptrlab_mac(anairiats_sum_21, tmp410, atslab_2) ;
/* tmp414 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ;
/* tmp415 = ats_selsin_mac(tmp414, atslab_1) */ ;
tmp416 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr (tmp412) ;
tmp417 = auxres_55 (tmp413, arg1) ;
/* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ;
tmp419 = ats_select_mac(tmp416, atslab_s2qua_svs) ;
tmp420 = ats_select_mac(tmp416, atslab_s2qua_sps) ;
tmp409 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi (tmp419, tmp420, tmp417) ;
break ;

/* branch: __ats_lab_86 */
__ats_lab_86_0:
__ats_lab_86_1:
tmp421 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (arg0) ;
tmp422 = auxwth_54 (arg1) ;
tmp409 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_wthtype (tmp421, tmp422) ;
break ;
} while (0) ;
return (tmp409) ;
} /* end of [auxres_55] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 23013(line=1031, offs=3) -- 24657(line=1104, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_res_impred (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp394) ;
ATSlocal (ats_bool_type, tmp423) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_res_impred:
tmp423 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_is_none (arg1) ;
if (tmp423) {
tmp394 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (arg0) ;
} else {
tmp394 = auxres_55 (arg0, arg1) ;
} /* end of [if] */
return (tmp394) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_res_impred] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 24972(line=1123, offs=5) -- 25353(line=1134, offs=6)
*/
ATSstaticdec()
ats_void_type
auxerr1_57 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp425) ;
// ATSlocal_void (tmp426) ;
ATSlocal (ats_ptr_type, tmp427) ;
// ATSlocal_void (tmp428) ;
// ATSlocal_void (tmp429) ;
// ATSlocal_void (tmp430) ;
ATSlocal (ats_ptr_type, tmp431) ;

__ats_lab_auxerr1_57:
do {
/* branch: __ats_lab_87 */
__ats_lab_87_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_88_0 ; }
__ats_lab_87_1:
break ;

/* branch: __ats_lab_88 */
__ats_lab_88_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_88_1:
tmp427 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ;
/* tmp426 = */ prerr_error2_loc_02168_ (tmp427) ;
/* tmp428 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_arrow")) ;
/* tmp429 = */ atspre_prerr_string (ATSstrcst(": illegal static application.")) ;
/* tmp430 = */ atspre_prerr_newline () ;
tmp431 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp431)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp431, atslab_0, arg0) ;
/* tmp425 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp431) ;
break ;
} while (0) ;
return /* (tmp425) */ ;
} /* end of [auxerr1_57] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4893(line=177, offs=7) -- 5015(line=178, offs=73)
*/
ATSstaticdec()
ats_void_type
loop_60 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp435) ;
ATSlocal (ats_ptr_type, tmp436) ;

__ats_lab_loop_60:
do {
/* branch: __ats_lab_90 */
__ats_lab_90_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_91_0 ; }
__ats_lab_90_1:
tmp436 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_1) ;
ATS_FREE(arg0) ;
arg0 = tmp436 ;
goto __ats_lab_loop_60 ; // tail call
break ;

/* branch: __ats_lab_91 */
__ats_lab_91_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_91_1:
break ;
} while (0) ;
return /* (tmp435) */ ;
} /* end of [loop_60] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-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_anairiats_rec_14 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp434) ;

__ats_lab_list_vt_free_01499_anairiats_rec_14:
/* tmp434 = */ loop_60 (arg0) ;
return /* (tmp434) */ ;
} /* end of [list_vt_free_01499_anairiats_rec_14] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 25402(line=1136, offs=5) -- 25885(line=1158, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr2_58 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp432) ;
// ATSlocal_void (tmp433) ;
// ATSlocal_void (tmp437) ;
ATSlocal (ats_ptr_type, tmp438) ;
// ATSlocal_void (tmp439) ;
// ATSlocal_void (tmp440) ;
// ATSlocal_void (tmp441) ;
ATSlocal (ats_ptr_type, tmp442) ;

__ats_lab_auxerr2_58:
do {
/* branch: __ats_lab_89 */
__ats_lab_89_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_92_0 ; }
__ats_lab_89_1:
/* tmp433 = */ list_vt_free_01499_anairiats_rec_14 (arg1) ;
tmp438 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ;
/* tmp437 = */ prerr_error2_loc_02168_ (tmp438) ;
/* tmp439 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_arrow")) ;
/* tmp440 = */ atspre_prerr_string (ATSstrcst(": illegal static application.")) ;
/* tmp441 = */ atspre_prerr_newline () ;
tmp442 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp442)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp442, atslab_0, arg0) ;
/* tmp432 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp442) ;
break ;

/* branch: __ats_lab_92 */
__ats_lab_92_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_92_1:
break ;
} while (0) ;
return /* (tmp432) */ ;
} /* end of [auxerr2_58] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 25913(line=1160, offs=5) -- 26301(line=1175, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxerr3_61 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp443) ;
// ATSlocal_void (tmp444) ;
ATSlocal (ats_ptr_type, tmp445) ;
// ATSlocal_void (tmp446) ;
// ATSlocal_void (tmp447) ;
// ATSlocal_void (tmp448) ;
// ATSlocal_void (tmp449) ;
// ATSlocal_void (tmp450) ;
// ATSlocal_void (tmp451) ;
// ATSlocal_void (tmp452) ;
ATSlocal (ats_ptr_type, tmp453) ;

__ats_lab_auxerr3_61:
tmp445 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg1), atslab_s1exp_loc) ;
/* tmp444 = */ prerr_error2_loc_02168_ (tmp445) ;
/* tmp446 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_arrow")) ;
/* tmp447 = */ atspre_prerr_string (ATSstrcst(": the static expression needs to be impredicative")) ;
/* tmp448 = */ atspre_prerr_string (ATSstrcst(" but is assigned the sort [")) ;
/* tmp449 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg2) ;
/* tmp450 = */ atspre_prerr_string (ATSstrcst("].")) ;
/* tmp451 = */ atspre_prerr_newline () ;
tmp453 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp453)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp453, atslab_0, arg0) ;
/* tmp452 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp453) ;
tmp443 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ;
return (tmp443) ;
} /* end of [auxerr3_61] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 26909(line=1197, offs=7) -- 27961(line=1232, offs=10)
*/
ATSstaticdec()
ats_ptr_type
aux_62 (ats_ptr_type env0, ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp472) ;
ATSlocal (ats_ptr_type, tmp473) ;
ATSlocal (ats_ptr_type, tmp474) ;
ATSlocal (ats_ptr_type, tmp475) ;
ATSlocal (ats_ptr_type, tmp476) ;
ATSlocal (ats_int_type, tmp477) ;
ATSlocal (ats_int_type, tmp478) ;
ATSlocal (ats_ptr_type, tmp480) ;
ATSlocal (ats_ptr_type, tmp481) ;
ATSlocal (ats_bool_type, tmp482) ;
ATSlocal (ats_ptr_type, tmp483) ;
ATSlocal (ats_bool_type, tmp484) ;
ATSlocal (ats_bool_type, tmp485) ;
ATSlocal (ats_ptr_type, tmp486) ;

__ats_lab_aux_62:
do {
/* branch: __ats_lab_95 */
__ats_lab_95_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_96_0 ; }
__ats_lab_95_1:
tmp472 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_96 */
__ats_lab_96_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_96_1:
tmp473 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp474 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp475 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_arg (tmp473, arg1) ;
tmp476 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp475), atslab_s2exp_srt) ;
/* ats_int_type tmp477 ; */
tmp477 = 0 ;
/* ats_int_type tmp478 ; */
tmp478 = 0 ;
do {
/* branch: __ats_lab_97 */
__ats_lab_97_0:
if (((ats_sum_ptr_type)tmp476)->tag != 0) { goto __ats_lab_100_0 ; }
__ats_lab_97_1:
tmp480 = ats_caselptrlab_mac(anairiats_sum_5, tmp476, atslab_0) ;
do {
/* branch: __ats_lab_98 */
__ats_lab_98_0:
if (((ats_sum_ptr_type)tmp480)->tag != 1) { goto __ats_lab_99_0 ; }
__ats_lab_98_1:
tmp481 = ats_caselptrlab_mac(anairiats_sum_19, tmp480, atslab_1) ;
tmp477 = 1 ;
tmp482 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp481, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_TYPES) ;
if (tmp482) {
tmp478 = 1 ;
} else {
/* empty */
} /* end of [if] */
break ;

/* branch: __ats_lab_99 */
__ats_lab_99_0:
__ats_lab_99_1:
break ;
} while (0) ;
break ;

/* branch: __ats_lab_100 */
__ats_lab_100_0:
__ats_lab_100_1:
break ;
} while (0) ;
tmp484 = atspre_gt_int_int (tmp477, 0) ;
if (tmp484) {
tmp485 = atspre_gt_int_int (tmp478, 0) ;
if (tmp485) {
tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_vararg (tmp475) ;
} else {
tmp483 = tmp475 ;
} /* end of [if] */
} else {
tmp483 = auxerr3_61 (env0, tmp473, tmp476) ;
} /* end of [if] */
tmp486 = aux_62 (env0, tmp474, arg1) ;
tmp472 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp472, atslab_0, tmp483) ;
ats_selptrset_mac(anairiats_sum_6, tmp472, atslab_1, tmp486) ;
break ;
} while (0) ;
return (tmp472) ;
} /* end of [aux_62] */

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

ats_ptr_type
aux_62_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) {
return aux_62 (((aux_62_closure_type*)cloptr)->closure_env_0, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
aux_62_closure_make (ats_ptr_type env0) {
aux_62_closure_type *p_clo = ATS_MALLOC(sizeof(aux_62_closure_type)) ;
aux_62_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 24718(line=1109, offs=1) -- 28754(line=1270, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s1exp_trup_arrow_56 (ats_ptr_type arg0, ats_ptr_type arg1, ats_bool_type arg2, ats_bool_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp424) ;
// ATSlocal_void (tmp454) ;
ATSlocal (anairiats_rec_14, tmp455) ;
ATSlocal (ats_ptr_type, tmp456) ;
// ATSlocal_void (tmp457) ;
ATSlocal (ats_ptr_type, tmp458) ;
ATSlocal (ats_ptr_type, tmp459) ;
ATSlocal (ats_ptr_type, tmp460) ;
ATSlocal (ats_ptr_type, tmp461) ;
ATSlocal (ats_ptr_type, tmp462) ;
ATSlocal (ats_int_type, tmp463) ;
ATSlocal (ats_ptr_type, tmp464) ;
ATSlocal (ats_ptr_type, tmp466) ;
ATSlocal (ats_int_type, tmp467) ;
ATSlocal (ats_ptr_type, tmp468) ;
ATSlocal (ats_ptr_type, tmp469) ;
ATSlocal (ats_ptr_type, tmp470) ;
ATSlocal (ats_ptr_type, tmp471) ;
ATSlocal (ats_ptr_type, tmp487) ;
ATSlocal (ats_ptr_type, tmp488) ;
ATSlocal (ats_ptr_type, tmp489) ;
ATSlocal (ats_ptr_type, tmp490) ;
ATSlocal (ats_ptr_type, tmp491) ;
ATSlocal (ats_bool_type, tmp492) ;
ATSlocal (ats_ptr_type, tmp493) ;
ATSlocal (ats_ptr_type, tmp494) ;
ATSlocal (ats_ptr_type, tmp495) ;
ATSlocal (ats_int_type, tmp496) ;
ATSlocal (ats_ptr_type, tmp497) ;
ATSlocal (ats_ptr_type, tmp498) ;

__ats_lab_s1exp_trup_arrow_56:
/* tmp454 = */ auxerr1_57 (arg0, arg5) ;
if (arg5 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 26389(line=1178, offs=5) -- 26414(line=1178, offs=30)") ; }
tmp455 = ats_caselptrlab_mac(anairiats_sum_16, arg5, atslab_0) ;
tmp456 = ats_caselptrlab_mac(anairiats_sum_16, arg5, atslab_1) ;
ATS_FREE(arg5) ;
/* tmp457 = */ auxerr2_58 (arg0, tmp456) ;
tmp458 = ats_select_mac(tmp455, atslab_1) ;
if (tmp458 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 26519(line=1181, offs=5) -- 26554(line=1181, offs=40)") ; }
tmp459 = ats_caselptrlab_mac(anairiats_sum_6, tmp458, atslab_1) ;
if (tmp459 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 26519(line=1181, offs=5) -- 26554(line=1181, offs=40)") ; }
tmp460 = ats_caselptrlab_mac(anairiats_sum_6, tmp459, atslab_1) ;
if (tmp460 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 26519(line=1181, offs=5) -- 26554(line=1181, offs=40)") ; }
tmp461 = ats_caselptrlab_mac(anairiats_sum_6, tmp458, atslab_0) ;
tmp462 = ats_caselptrlab_mac(anairiats_sum_6, tmp459, atslab_0) ;
/* ats_int_type tmp463 ; */
tmp463 = -1 ;
/* ats_ptr_type tmp464 ; */
tmp464 = (ats_sum_ptr_type)0 ;
tmp466 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp461), atslab_s1exp_node) ;
do {
/* branch: __ats_lab_93 */
__ats_lab_93_0:
if (((ats_sum_ptr_type)tmp466)->tag != 13) { goto __ats_lab_94_0 ; }
__ats_lab_93_1:
tmp467 = ats_caselptrlab_mac(anairiats_sum_19, tmp466, atslab_0) ;
tmp468 = ats_caselptrlab_mac(anairiats_sum_19, tmp466, atslab_1) ;
tmp463 = tmp467 ;
tmp464 = tmp468 ;
break ;

/* branch: __ats_lab_94 */
__ats_lab_94_0:
__ats_lab_94_1:
tmp470 = (ats_sum_ptr_type)0 ;
tmp469 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp469, atslab_0, tmp461) ;
ats_selptrset_mac(anairiats_sum_6, tmp469, atslab_1, tmp470) ;
tmp464 = tmp469 ;
break ;
} while (0) ;
/* ats_ptr_type tmp471 ; */
tmp471 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__WTHS1EXPLSTnil_0) ;
tmp487 = aux_62 (arg0, tmp464, (&tmp471)) ;
tmp488 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__wths1explst_reverse (tmp471) ;
tmp471 = tmp488 ;
tmp489 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_res_impred (tmp462, tmp471) ;
tmp490 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp489), atslab_s2exp_srt) ;
tmp491 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ;
if (arg3) {
tmp492 = arg3 ;
} else {
tmp492 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf (tmp490) ;
} /* end of [if] */
do {
/* branch: __ats_lab_101 */
__ats_lab_101_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_102_0 ; }
__ats_lab_101_1:
tmp494 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ;
tmp493 = tmp494 ;
break ;

/* branch: __ats_lab_102 */
__ats_lab_102_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_102_1:
tmp493 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
tmp495 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_prf_lin_fc (tmp491, tmp492, arg2, tmp493) ;
if (arg2) {
tmp496 = 1 ;
} else {
tmp496 = 0 ;
} /* end of [if] */
do {
/* branch: __ats_lab_103 */
__ats_lab_103_0:
if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_104_0 ; }
__ats_lab_103_1:
tmp498 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_0) ;
tmp497 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__effcst_tr (tmp498) ;
break ;

/* branch: __ats_lab_104 */
__ats_lab_104_0:
// if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_104_1:
if (tmp492) {
tmp497 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_nil ;
} else {
tmp497 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2eff_all ;
} /* end of [if] */
break ;
} while (0) ;
tmp424 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_fun_srt (tmp495, tmp493, tmp496, tmp497, tmp463, tmp487, tmp489) ;
return (tmp424) ;
} /* end of [s1exp_trup_arrow_56] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 28920(line=1281, offs=5) -- 29283(line=1295, offs=2)
*/
ATSstaticdec()
ats_void_type
auxerr1_64 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) {
/* local vardec */
// ATSlocal_void (tmp500) ;
// ATSlocal_void (tmp501) ;
// ATSlocal_void (tmp502) ;
// ATSlocal_void (tmp503) ;
// ATSlocal_void (tmp504) ;
ATSlocal (ats_ptr_type, tmp505) ;
ATSlocal (ats_bool_type, tmp506) ;
// ATSlocal_void (tmp507) ;
// ATSlocal_void (tmp508) ;
ATSlocal (ats_ptr_type, tmp509) ;

__ats_lab_auxerr1_64:
/* tmp501 = */ prerr_error2_loc_02168_ (arg1) ;
/* tmp502 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_app")) ;
/* tmp503 = */ atspre_prerr_string (ATSstrcst(": the static application needs ")) ;
tmp506 = atspre_gt_int_int (arg2, 0) ;
if (tmp506) {
tmp505 = ATSstrcst("more") ;
} else {
tmp505 = ATSstrcst("fewer") ;
} /* end of [if] */
/* tmp504 = */ atspre_prerr_string (tmp505) ;
/* tmp507 = */ atspre_prerr_string (ATSstrcst(" arguments.")) ;
/* tmp508 = */ atspre_prerr_newline () ;
tmp509 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp509)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp509, atslab_0, arg0) ;
/* tmp500 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp509) ;
return /* (tmp500) */ ;
} /* end of [auxerr1_64] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 29314(line=1297, offs=5) -- 29703(line=1310, offs=2)
*/
ATSstaticdec()
ats_void_type
auxerr2_65 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp510) ;
// ATSlocal_void (tmp511) ;
// ATSlocal_void (tmp512) ;
// ATSlocal_void (tmp513) ;
// ATSlocal_void (tmp514) ;
// ATSlocal_void (tmp515) ;
// ATSlocal_void (tmp516) ;
ATSlocal (ats_ptr_type, tmp517) ;
// ATSlocal_void (tmp518) ;
// ATSlocal_void (tmp519) ;
ATSlocal (ats_ptr_type, tmp520) ;

__ats_lab_auxerr2_65:
/* tmp511 = */ prerr_error2_loc_02168_ (arg1) ;
/* tmp512 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_app")) ;
/* tmp513 = */ atspre_prerr_string (ATSstrcst(": the static expression [")) ;
/* tmp514 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg2) ;
/* tmp515 = */ atspre_prerr_string (ATSstrcst("] is expected to be of a functional sort but it is assigned the sort [")) ;
tmp517 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg2), atslab_s2exp_srt) ;
/* tmp516 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (tmp517) ;
/* tmp518 = */ atspre_prerr_string (ATSstrcst("].")) ;
/* tmp519 = */ atspre_prerr_newline () ;
tmp520 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp520)->tag = 4 ;
ats_selptrset_mac(anairiats_sum_5, tmp520, atslab_0, arg0) ;
/* tmp510 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp520) ;
return /* (tmp510) */ ;
} /* end of [auxerr2_65] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 29734(line=1313, offs=1) -- 30757(line=1344, offs=4)
*/
ATSstaticdec()
ats_ptr_type
loop_66 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp521) ;
ATSlocal (anairiats_rec_14, tmp522) ;
ATSlocal (ats_ptr_type, tmp523) ;
ATSlocal (ats_ptr_type, tmp524) ;
ATSlocal (ats_bool_type, tmp525) ;
ATSlocal (ats_ptr_type, tmp526) ;
ATSlocal (ats_ptr_type, tmp527) ;
ATSlocal (ats_int_type, tmp528) ;
ATSlocal (ats_ptr_type, tmp529) ;
ATSlocal (ats_ptr_type, tmp530) ;
ATSlocal (ats_bool_type, tmp531) ;
ATSlocal (ats_ptr_type, tmp532) ;
// ATSlocal_void (tmp533) ;
// ATSlocal_void (tmp534) ;
ATSlocal (ats_ptr_type, tmp535) ;
ATSlocal (ats_ptr_type, tmp536) ;
// ATSlocal_void (tmp537) ;
// ATSlocal_void (tmp538) ;

__ats_lab_loop_66:
do {
/* branch: __ats_lab_105 */
__ats_lab_105_0:
if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_108_0 ; }
__ats_lab_105_1:
tmp522 = ats_caselptrlab_mac(anairiats_sum_16, arg3, atslab_0) ;
tmp523 = ats_caselptrlab_mac(anairiats_sum_16, arg3, atslab_1) ;
ATS_FREE(arg3) ;
tmp524 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg2), atslab_s2exp_srt) ;
tmp525 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_fun (tmp524) ;
if (tmp525) {
if (((ats_sum_ptr_type)tmp524)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 29975(line=1322, offs=13) -- 30011(line=1322, offs=49)") ; }
tmp526 = ats_caselptrlab_mac(anairiats_sum_9, tmp524, atslab_0) ;
tmp527 = ats_caselptrlab_mac(anairiats_sum_9, tmp524, atslab_1) ;
/* ats_int_type tmp528 ; */
tmp528 = 0 ;
tmp530 = ats_select_mac(tmp522, atslab_1) ;
tmp529 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_err (tmp530, tmp526, (&tmp528)) ;
do {
/* branch: __ats_lab_106 */
__ats_lab_106_0:
__ats_lab_106_1:
tmp531 = atspre_eq_int_int (tmp528, 0) ;
if (!tmp531) { goto __ats_lab_107_1 ; }
tmp532 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_app_srt (tmp527, arg2, tmp529) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp532 ;
arg3 = tmp523 ;
goto __ats_lab_loop_66 ; // tail call
break ;

/* branch: __ats_lab_107 */
__ats_lab_107_0:
__ats_lab_107_1:
/* tmp533 = */ list_vt_free_01499_anairiats_rec_14 (tmp523) ;
tmp536 = ats_select_mac(tmp522, atslab_0) ;
tmp535 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (arg1, tmp536) ;
/* tmp534 = */ auxerr1_64 (arg0, tmp535, tmp528) ;
tmp521 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp527) ;
break ;
} while (0) ;
} else {
/* tmp537 = */ list_vt_free_01499_anairiats_rec_14 (tmp523) ;
/* tmp538 = */ auxerr2_65 (arg0, arg1, arg2) ;
tmp521 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp524) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_108 */
__ats_lab_108_0:
// if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_108_1:
tmp521 = arg2 ;
break ;
} while (0) ;
return (tmp521) ;
} /* end of [loop_66] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 28810(line=1275, offs=1) -- 30827(line=1348, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s1exp_trup_app_63 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp499) ;
ATSlocal (ats_ptr_type, tmp539) ;

__ats_lab_s1exp_trup_app_63:
tmp539 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg1), atslab_s1exp_loc) ;
tmp499 = loop_66 (arg0, tmp539, arg2, arg3) ;
return (tmp499) ;
} /* end of [s1exp_trup_app_63] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 31000(line=1359, offs=5) -- 31337(line=1375, offs=4)
*/
ATSstaticdec()
ats_int_type
auxck1_68 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp541) ;
ATSlocal (anairiats_rec_14, tmp542) ;
ATSlocal (ats_ptr_type, tmp543) ;
// ATSlocal_void (tmp544) ;
ATSlocal (ats_ptr_type, tmp545) ;
// ATSlocal_void (tmp546) ;
// ATSlocal_void (tmp547) ;
ATSlocal (ats_int_type, tmp548) ;

__ats_lab_auxck1_68:
do {
/* branch: __ats_lab_109 */
__ats_lab_109_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_110_0 ; }
__ats_lab_109_1:
tmp542 = ats_caselptrlab_mac(anairiats_sum_16, arg2, atslab_0) ;
tmp543 = ats_caselptrlab_mac(anairiats_sum_16, arg2, atslab_1) ;
ATS_FREE(arg2) ;
tmp545 = ats_select_mac(tmp542, atslab_0) ;
/* tmp544 = */ prerr_error2_loc_02168_ (tmp545) ;
/* tmp546 = */ atspre_prerr_string (ATSstrcst(": overly supplied static argument group.")) ;
/* tmp547 = */ atspre_prerr_newline () ;
tmp548 = auxck1_68 (arg0, arg1, tmp543) ;
tmp541 = atspre_add_int_int (tmp548, 1) ;
break ;

/* branch: __ats_lab_110 */
__ats_lab_110_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_110_1:
tmp541 = 0 ;
break ;
} while (0) ;
return (tmp541) ;
} /* end of [auxck1_68] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51781(line=1842, offs=7) -- 51921(line=1845, offs=6)
*/
ATSstaticdec()
ats_int_type
loop_71 (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp552) ;
ATSlocal (ats_ptr_type, tmp553) ;
ATSlocal (ats_int_type, tmp554) ;

__ats_lab_loop_71:
do {
/* branch: __ats_lab_111 */
__ats_lab_111_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_112_0 ; }
__ats_lab_111_1:
tmp553 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp554 = atspre_isucc (arg1) ;
arg0 = tmp553 ;
arg1 = tmp554 ;
goto __ats_lab_loop_71 ; // tail call
break ;

/* branch: __ats_lab_112 */
__ats_lab_112_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_112_1:
tmp552 = arg1 ;
break ;
} while (0) ;
return (tmp552) ;
} /* end of [loop_71] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51764(line=1841, offs=13) -- 52005(line=1849, offs=4)
*/
ATSstaticdec()
ats_int_type
list_length_01410_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp551) ;

__ats_lab_list_length_01410_ats_ptr_type:
tmp551 = loop_71 (arg0, 0) ;
return (tmp551) ;
} /* end of [list_length_01410_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 31364(line=1377, offs=5) -- 31922(line=1398, offs=4)
*/
ATSstaticdec()
ats_void_type
auxck2_69 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp549) ;
ATSlocal (ats_int_type, tmp550) ;
ATSlocal (ats_int_type, tmp555) ;
ATSlocal (ats_int_type, tmp556) ;
ATSlocal (ats_bool_type, tmp557) ;
ATSlocal (ats_ptr_type, tmp558) ;
// ATSlocal_void (tmp559) ;
// ATSlocal_void (tmp560) ;
// ATSlocal_void (tmp561) ;
// ATSlocal_void (tmp562) ;
ATSlocal (ats_bool_type, tmp563) ;
// ATSlocal_void (tmp564) ;
ATSlocal (ats_bool_type, tmp565) ;
// ATSlocal_void (tmp566) ;
ATSlocal (ats_ptr_type, tmp567) ;

__ats_lab_auxck2_69:
tmp550 = list_length_01410_ats_ptr_type (arg2) ;
tmp555 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_full (arg1) ;
tmp556 = atspre_sub_int_int (tmp550, tmp555) ;
tmp557 = atspre_neq_int_int (tmp556, 0) ;
if (tmp557) {
tmp558 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ;
/* tmp559 = */ prerr_error2_loc_02168_ (tmp558) ;
/* tmp560 = */ atspre_prerr_string (ATSstrcst(": the type constructor [")) ;
/* tmp561 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2con (arg1) ;
tmp563 = atspre_lt_int_int (tmp556, 0) ;
if (tmp563) {
/* tmp562 = */ atspre_prerr_string (ATSstrcst("] expects more arguments.")) ;
} else {
/* empty */
} /* end of [if] */
tmp565 = atspre_gt_int_int (tmp556, 0) ;
if (tmp565) {
/* tmp564 = */ atspre_prerr_string (ATSstrcst("] expects fewer arguments.")) ;
} else {
/* empty */
} /* end of [if] */
/* tmp566 = */ atspre_prerr_newline () ;
tmp567 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp567)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp567, atslab_0, arg0) ;
/* tmp549 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp567) ;
} else {
/* empty */
} /* end of [if] */
return /* (tmp549) */ ;
} /* end of [auxck2_69] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 30881(line=1352, offs=5) -- 32398(line=1422, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s1exp_trup_app_datcontyp_67 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp540) ;
ATSlocal (ats_ptr_type, tmp568) ;
ATSlocal (anairiats_rec_14, tmp569) ;
ATSlocal (ats_ptr_type, tmp570) ;
ATSlocal (ats_int_type, tmp571) ;
// ATSlocal_void (tmp572) ;
ATSlocal (ats_bool_type, tmp573) ;
ATSlocal (ats_ptr_type, tmp574) ;
// ATSlocal_void (tmp575) ;
ATSlocal (ats_ptr_type, tmp576) ;

__ats_lab_s1exp_trup_app_datcontyp_67:
do {
/* branch: __ats_lab_113 */
__ats_lab_113_0:
if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_114_0 ; }
__ats_lab_113_1:
tmp569 = ats_caselptrlab_mac(anairiats_sum_16, arg3, atslab_0) ;
tmp570 = ats_caselptrlab_mac(anairiats_sum_16, arg3, atslab_1) ;
ATS_FREE(arg3) ;
tmp571 = auxck1_68 (arg0, arg2, tmp570) ;
tmp573 = atspre_gt_int_int (tmp571, 0) ;
if (tmp573) {
tmp574 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp574)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp574, atslab_0, arg0) ;
/* tmp572 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp574) ;
} else {
/* empty */
} /* end of [if] */
tmp568 = ats_select_mac(tmp569, atslab_1) ;
break ;

/* branch: __ats_lab_114 */
__ats_lab_114_0:
// if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_114_1:
tmp568 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
/* tmp575 = */ auxck2_69 (arg0, arg2, tmp568) ;
tmp576 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_impred (tmp568) ;
tmp540 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datcontyp (arg2, tmp576) ;
return (tmp540) ;
} /* end of [s1exp_trup_app_datcontyp_67] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 32581(line=1433, offs=5) -- 32918(line=1449, offs=4)
*/
ATSstaticdec()
ats_int_type
auxck1_73 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp578) ;
ATSlocal (anairiats_rec_14, tmp579) ;
ATSlocal (ats_ptr_type, tmp580) ;
// ATSlocal_void (tmp581) ;
ATSlocal (ats_ptr_type, tmp582) ;
// ATSlocal_void (tmp583) ;
// ATSlocal_void (tmp584) ;
ATSlocal (ats_int_type, tmp585) ;

__ats_lab_auxck1_73:
do {
/* branch: __ats_lab_115 */
__ats_lab_115_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_116_0 ; }
__ats_lab_115_1:
tmp579 = ats_caselptrlab_mac(anairiats_sum_16, arg2, atslab_0) ;
tmp580 = ats_caselptrlab_mac(anairiats_sum_16, arg2, atslab_1) ;
ATS_FREE(arg2) ;
tmp582 = ats_select_mac(tmp579, atslab_0) ;
/* tmp581 = */ prerr_error2_loc_02168_ (tmp582) ;
/* tmp583 = */ atspre_prerr_string (ATSstrcst(": overly supplied static argument group.")) ;
/* tmp584 = */ atspre_prerr_newline () ;
tmp585 = auxck1_73 (arg0, arg1, tmp580) ;
tmp578 = atspre_add_int_int (tmp585, 1) ;
break ;

/* branch: __ats_lab_116 */
__ats_lab_116_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_116_1:
tmp578 = 0 ;
break ;
} while (0) ;
return (tmp578) ;
} /* end of [auxck1_73] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 32945(line=1451, offs=5) -- 33515(line=1472, offs=4)
*/
ATSstaticdec()
ats_void_type
auxck2_74 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp586) ;
ATSlocal (ats_int_type, tmp587) ;
ATSlocal (ats_int_type, tmp588) ;
ATSlocal (ats_int_type, tmp589) ;
ATSlocal (ats_int_type, tmp590) ;
ATSlocal (ats_bool_type, tmp591) ;
ATSlocal (ats_ptr_type, tmp592) ;
// ATSlocal_void (tmp593) ;
// ATSlocal_void (tmp594) ;
// ATSlocal_void (tmp595) ;
// ATSlocal_void (tmp596) ;
ATSlocal (ats_bool_type, tmp597) ;
// ATSlocal_void (tmp598) ;
ATSlocal (ats_bool_type, tmp599) ;
// ATSlocal_void (tmp600) ;
ATSlocal (ats_ptr_type, tmp601) ;

__ats_lab_auxck2_74:
tmp587 = list_length_01410_ats_ptr_type (arg2) ;
tmp588 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_get_arity_full (arg1) ;
tmp590 = atspre_add_int_int (1, tmp588) ;
tmp589 = atspre_sub_int_int (tmp587, tmp590) ;
tmp591 = atspre_neq_int_int (tmp589, 0) ;
if (tmp591) {
tmp592 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ;
/* tmp593 = */ prerr_error2_loc_02168_ (tmp592) ;
/* tmp594 = */ atspre_prerr_string (ATSstrcst(": the type constructor [")) ;
/* tmp595 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_d2con (arg1) ;
tmp597 = atspre_lt_int_int (tmp589, 0) ;
if (tmp597) {
/* tmp596 = */ atspre_prerr_string (ATSstrcst("] expects more arguments.")) ;
} else {
/* empty */
} /* end of [if] */
tmp599 = atspre_gt_int_int (tmp589, 0) ;
if (tmp599) {
/* tmp598 = */ atspre_prerr_string (ATSstrcst("] expects fewer arguments.")) ;
} else {
/* empty */
} /* end of [if] */
/* tmp600 = */ atspre_prerr_newline () ;
tmp601 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp601)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp601, atslab_0, arg0) ;
/* tmp586 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp601) ;
} else {
/* empty */
} /* end of [if] */
return /* (tmp586) */ ;
} /* end of [auxck2_74] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 32462(line=1426, offs=5) -- 34027(line=1497, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s1exp_trup_app_datconptr_72 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp577) ;
ATSlocal (ats_ptr_type, tmp602) ;
ATSlocal (anairiats_rec_14, tmp603) ;
ATSlocal (ats_ptr_type, tmp604) ;
ATSlocal (ats_int_type, tmp605) ;
// ATSlocal_void (tmp606) ;
ATSlocal (ats_bool_type, tmp607) ;
ATSlocal (ats_ptr_type, tmp608) ;
// ATSlocal_void (tmp609) ;
ATSlocal (ats_ptr_type, tmp610) ;
ATSlocal (ats_ptr_type, tmp611) ;
ATSlocal (ats_ptr_type, tmp612) ;

__ats_lab_s1exp_trup_app_datconptr_72:
do {
/* branch: __ats_lab_117 */
__ats_lab_117_0:
if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_118_0 ; }
__ats_lab_117_1:
tmp603 = ats_caselptrlab_mac(anairiats_sum_16, arg3, atslab_0) ;
tmp604 = ats_caselptrlab_mac(anairiats_sum_16, arg3, atslab_1) ;
ATS_FREE(arg3) ;
tmp605 = auxck1_73 (arg0, arg2, tmp604) ;
tmp607 = atspre_gt_int_int (tmp605, 0) ;
if (tmp607) {
tmp608 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp608)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp608, atslab_0, arg0) ;
/* tmp606 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp608) ;
} else {
/* empty */
} /* end of [if] */
tmp602 = ats_select_mac(tmp603, atslab_1) ;
break ;

/* branch: __ats_lab_118 */
__ats_lab_118_0:
// if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_118_1:
tmp602 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
/* tmp609 = */ auxck2_74 (arg0, arg2, tmp602) ;
tmp610 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_addr (tmp602) ;
if (tmp610 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 33954(line=1493, offs=5) -- 33982(line=1493, offs=33)") ; }
tmp611 = ats_caselptrlab_mac(anairiats_sum_6, tmp610, atslab_0) ;
tmp612 = ats_caselptrlab_mac(anairiats_sum_6, tmp610, atslab_1) ;
tmp577 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_datconptr (arg2, tmp611, tmp612) ;
return (tmp577) ;
} /* end of [s1exp_trup_app_datconptr_72] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 34088(line=1502, offs=1) -- 35046(line=1542, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s1exp_trup_app_sqid_75 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp613) ;
ATSlocal (ats_ptr_type, tmp614) ;
ATSlocal (ats_ptr_type, tmp615) ;
ATSlocal (ats_ptr_type, tmp616) ;
ATSlocal (ats_ptr_type, tmp617) ;
ATSlocal (ats_ptr_type, tmp618) ;
// ATSlocal_void (tmp619) ;
// ATSlocal_void (tmp620) ;
ATSlocal (ats_ptr_type, tmp621) ;
// ATSlocal_void (tmp622) ;
// ATSlocal_void (tmp623) ;
// ATSlocal_void (tmp624) ;
// ATSlocal_void (tmp625) ;
// ATSlocal_void (tmp626) ;
// ATSlocal_void (tmp627) ;

__ats_lab_s1exp_trup_app_sqid_75:
tmp614 = staspecid_of_sqid_1 (arg2, arg3) ;
do {
/* branch: __ats_lab_119 */
__ats_lab_119_0:
if (((ats_sum_ptr_type)tmp614)->tag != 0) { goto __ats_lab_120_0 ; }
__ats_lab_119_1:
tmp615 = (ats_sum_ptr_type)0 ;
tmp616 = (ats_sum_ptr_type)0 ;
tmp613 = s1exp_trup_arrow_56 (arg0, tmp615, ats_false_bool, ats_false_bool, tmp616, arg4) ;
break ;

/* branch: __ats_lab_120 */
__ats_lab_120_0:
__ats_lab_120_1:
tmp617 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_find_qua (arg2, arg3) ;
do {
/* branch: __ats_lab_121 */
__ats_lab_121_0:
if (tmp617 == (ats_sum_ptr_type)0) { goto __ats_lab_122_0 ; }
__ats_lab_121_1:
tmp618 = ats_caselptrlab_mac(anairiats_sum_4, tmp617, atslab_0) ;
ATS_FREE(tmp617) ;
tmp613 = s1exp_trup_app_sqid_itm_76 (arg0, arg1, arg2, arg3, tmp618, arg4) ;
break ;

/* branch: __ats_lab_122 */
__ats_lab_122_0:
// if (tmp617 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_122_1:
/* tmp619 = */ list_vt_free_01499_anairiats_rec_14 (arg4) ;
tmp621 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg1), atslab_s1exp_loc) ;
/* tmp620 = */ prerr_error2_loc_02168_ (tmp621) ;
/* tmp622 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_app_sqid")) ;
/* tmp623 = */ atspre_prerr_string (ATSstrcst(": unrecognized static identifier [")) ;
/* tmp624 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg2) ;
/* tmp625 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg3) ;
/* tmp626 = */ atspre_prerr_string (ATSstrcst("].")) ;
/* tmp627 = */ atspre_prerr_newline () ;
tmp613 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ;
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp613) ;
} /* end of [s1exp_trup_app_sqid_75] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_80 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp634) ;
ATSlocal (ats_ptr_type, tmp635) ;
ATSlocal (ats_ptr_type, tmp636) ;
ATSlocal (anairiats_rec_14, tmp637) ;
ATSlocal (ats_ptr_type, tmp638) ;
ATSlocal (ats_ptr_type, tmp639) ;
ATSlocal (ats_ptr_type, tmp640) ;

__ats_lab_loop_80:
do {
/* branch: __ats_lab_124 */
__ats_lab_124_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_125_0 ; }
__ats_lab_124_1:
tmp635 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp636 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp637 = ((anairiats_rec_14(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp635, arg3) ;
tmp638 = ATS_MALLOC(sizeof(anairiats_sum_16)) ;
ats_selptrset_mac(anairiats_sum_16, tmp638, atslab_0, tmp637) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp638 ;
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp639 = &ats_caselptrlab_mac(anairiats_sum_16, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
arg0 = tmp636 ;
arg1 = arg1 ;
arg2 = tmp639 ;
arg3 = arg3 ;
goto __ats_lab_loop_80 ; // tail call
break ;

/* branch: __ats_lab_125 */
__ats_lab_125_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_125_1:
tmp640 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp640 ;
break ;
} while (0) ;
return /* (tmp634) */ ;
} /* end of [loop_80] */

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

__ats_lab_list_map_funenv_01412_ats_ptr_type_anairiats_rec_14:
/* ats_ptr_type tmp641 ; */
/* tmp642 = */ loop_80 (arg0, arg1, (&tmp641), arg2) ;
tmp633 = tmp641 ;
return (tmp633) ;
} /* end of [list_map_funenv_01412_ats_ptr_type_anairiats_rec_14] */

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

__ats_lab_list_map_fun_01413_ats_ptr_type_anairiats_rec_14:
tmp632 = list_map_funenv_01412_ats_ptr_type_anairiats_rec_14 (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ;
return (tmp632) ;
} /* end of [list_map_fun_01413_ats_ptr_type_anairiats_rec_14] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 35596(line=1569, offs=35) -- 35640(line=1569, offs=79)
*/
ATSstaticdec()
anairiats_rec_14
__ats_fun_81 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (anairiats_rec_14, tmp644) ;
ATSlocal (ats_ptr_type, tmp645) ;
ATSlocal (ats_ptr_type, tmp646) ;

__ats_lab___ats_fun_81:
tmp645 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ;
tmp646 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (arg0) ;
tmp644.atslab_0 = tmp645 ;
tmp644.atslab_1 = tmp646 ;

return (tmp644) ;
} /* end of [__ats_fun_81] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 35540(line=1568, offs=11) -- 35649(line=1570, offs=8)
*/
ATSstaticdec()
ats_ptr_type
f_77 (anairiats_rec_14 arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp630) ;
ATSlocal (ats_ptr_type, tmp631) ;
ATSlocal (ats_ptr_type, tmp643) ;

__ats_lab_f_77:
tmp643 = ats_select_mac(arg0, atslab_1) ;
tmp631 = list_map_fun_01413_ats_ptr_type_anairiats_rec_14 (tmp643, &__ats_fun_81) ;
tmp630 = ats_castfn_mac(ats_ptr_type, tmp631) ;
return (tmp630) ;
} /* end of [f_77] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_84 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp650) ;
ATSlocal (anairiats_rec_14, tmp651) ;
ATSlocal (ats_ptr_type, tmp652) ;
ATSlocal (ats_ptr_type, tmp653) ;
ATSlocal (ats_ptr_type, tmp654) ;
ATSlocal (ats_ptr_type, tmp655) ;
ATSlocal (ats_ptr_type, tmp656) ;

__ats_lab_loop_84:
do {
/* branch: __ats_lab_126 */
__ats_lab_126_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_127_0 ; }
__ats_lab_126_1:
tmp651 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_0) ;
tmp652 = ats_caselptrlab_mac(anairiats_sum_16, arg0, atslab_1) ;
tmp653 = ((ats_ptr_type(*)(anairiats_rec_14, ats_ptr_type))arg1) (tmp651, arg3) ;
tmp654 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp654, atslab_0, tmp653) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp654 ;
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp655 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
arg0 = tmp652 ;
arg1 = arg1 ;
arg2 = tmp655 ;
arg3 = arg3 ;
goto __ats_lab_loop_84 ; // tail call
break ;

/* branch: __ats_lab_127 */
__ats_lab_127_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_127_1:
tmp656 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp656 ;
break ;
} while (0) ;
return /* (tmp650) */ ;
} /* end of [loop_84] */

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

__ats_lab_list_map_funenv_01412_anairiats_rec_14_ats_ptr_type:
/* ats_ptr_type tmp657 ; */
/* tmp658 = */ loop_84 (arg0, arg1, (&tmp657), arg2) ;
tmp649 = tmp657 ;
return (tmp649) ;
} /* end of [list_map_funenv_01412_anairiats_rec_14_ats_ptr_type] */

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

__ats_lab_list_map_fun_01413_anairiats_rec_14_ats_ptr_type:
tmp648 = list_map_funenv_01412_anairiats_rec_14_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ;
return (tmp648) ;
} /* end of [list_map_fun_01413_anairiats_rec_14_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 35084(line=1545, offs=1) -- 37186(line=1615, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s1exp_trup_app_sqid_itm_76 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp628) ;
ATSlocal (ats_ptr_type, tmp629) ;
ATSlocal (ats_ptr_type, tmp647) ;
// ATSlocal_void (tmp659) ;
ATSlocal (ats_ptr_type, tmp660) ;
ATSlocal (ats_ptr_type, tmp661) ;
ATSlocal (ats_ptr_type, tmp662) ;
// ATSlocal_void (tmp663) ;
// ATSlocal_void (tmp664) ;
ATSlocal (ats_ptr_type, tmp665) ;
// ATSlocal_void (tmp666) ;
// ATSlocal_void (tmp667) ;
// ATSlocal_void (tmp668) ;
// ATSlocal_void (tmp669) ;
// ATSlocal_void (tmp670) ;
// ATSlocal_void (tmp671) ;
// ATSlocal_void (tmp672) ;
ATSlocal (ats_ptr_type, tmp673) ;
ATSlocal (ats_ptr_type, tmp674) ;
ATSlocal (ats_ptr_type, tmp675) ;
ATSlocal (ats_ptr_type, tmp676) ;
ATSlocal (ats_ptr_type, tmp677) ;
// ATSlocal_void (tmp678) ;
// ATSlocal_void (tmp679) ;
ATSlocal (ats_ptr_type, tmp680) ;
// ATSlocal_void (tmp681) ;
// ATSlocal_void (tmp682) ;
// ATSlocal_void (tmp683) ;
// ATSlocal_void (tmp684) ;
// ATSlocal_void (tmp685) ;
// ATSlocal_void (tmp686) ;
// ATSlocal_void (tmp687) ;

__ats_lab_s1exp_trup_app_sqid_itm_76:
do {
/* branch: __ats_lab_123 */
__ats_lab_123_0:
if (((ats_sum_ptr_type)arg4)->tag != 1) { goto __ats_lab_130_0 ; }
__ats_lab_123_1:
tmp629 = ats_caselptrlab_mac(anairiats_sum_5, arg4, atslab_0) ;
tmp647 = list_map_fun_01413_anairiats_rec_14_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg5), &f_77) ;
/* tmp659 = */ list_vt_free_01499_anairiats_rec_14 (arg5) ;
tmp660 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2cst_select_locs2explstlst (tmp629, ats_castfn_mac(ats_ptr_type, tmp647)) ;
do {
/* branch: __ats_lab_128 */
__ats_lab_128_0:
if (tmp660 == (ats_sum_ptr_type)0) { goto __ats_lab_129_0 ; }
__ats_lab_128_1:
tmp661 = ats_caselptrlab_mac(anairiats_sum_6, tmp660, atslab_0) ;
tmp662 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_cst (tmp661) ;
tmp628 = s2exp_app_wind_34 (arg0, tmp662, tmp647) ;
break ;

/* branch: __ats_lab_129 */
__ats_lab_129_0:
// if (tmp660 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_129_1:
/* tmp663 = */ list_vt_free_01499_ats_ptr_type (tmp647) ;
tmp665 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ;
/* tmp664 = */ prerr_error2_loc_02168_ (tmp665) ;
/* tmp666 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trup_app_sqid_itm")) ;
/* tmp667 = */ atspre_prerr_string (ATSstrcst(": none of the static constants referred to by [")) ;
/* tmp668 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0taq (arg2) ;
/* tmp669 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg3) ;
/* tmp670 = */ atspre_prerr_string (ATSstrcst("] is applicable.")) ;
/* tmp671 = */ atspre_prerr_newline () ;
tmp673 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp673)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp673, atslab_0, arg0) ;
/* tmp672 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp673) ;
tmp628 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_130 */
__ats_lab_130_0:
if (((ats_sum_ptr_type)arg4)->tag != 0) { goto __ats_lab_131_0 ; }
__ats_lab_130_1:
tmp674 = ats_caselptrlab_mac(anairiats_sum_5, arg4, atslab_0) ;
tmp675 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp674) ;
tmp628 = s1exp_trup_app_63 (arg0, arg1, tmp675, arg5) ;
break ;

/* branch: __ats_lab_131 */
__ats_lab_131_0:
if (((ats_sum_ptr_type)arg4)->tag != 3) { goto __ats_lab_132_0 ; }
__ats_lab_131_1:
tmp676 = ats_caselptrlab_mac(anairiats_sum_5, arg4, atslab_0) ;
tmp628 = s1exp_trup_app_datcontyp_67 (arg0, arg1, tmp676, arg5) ;
break ;

/* branch: __ats_lab_132 */
__ats_lab_132_0:
if (((ats_sum_ptr_type)arg4)->tag != 4) { goto __ats_lab_133_0 ; }
__ats_lab_132_1:
tmp677 = ats_caselptrlab_mac(anairiats_sum_5, arg4, atslab_0) ;
tmp628 = s1exp_trup_app_datconptr_72 (arg0, arg1, tmp677, arg5) ;
break ;

/* branch: __ats_lab_133 */
__ats_lab_133_0:
__ats_lab_133_1:
/* tmp678 = */ list_vt_free_01499_anairiats_rec_14 (arg5) ;
tmp680 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg1), atslab_s1exp_loc) ;
/* tmp679 = */ prerr_interror_loc_02166_ (tmp680) ;
/* tmp681 = */ atspre_prerr_newline () ;
/* tmp682 = */ atspre_prerr_string (ATSstrcst(": NIY: s1exp_trup_app_sqid_itm: s1e0 = ")) ;
/* tmp683 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1exp (arg0) ;
/* tmp684 = */ atspre_prerr_newline () ;
/* tmp685 = */ atspre_prerr_string (ATSstrcst(": NIY: s1exp_trup_app_sqid_itm: s2i0 = ")) ;
/* tmp686 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2itm (arg4) ;
/* tmp687 = */ atspre_prerr_newline () ;
/* tmp628 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ;
break ;
} while (0) ;
return (tmp628) ;
} /* end of [s1exp_trup_app_sqid_itm_76] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 37249(line=1619, offs=5) -- 37370(line=1626, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s1exp_trup_top_85 (ats_int_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp688) ;
ATSlocal (ats_ptr_type, tmp689) ;

__ats_lab_s1exp_trup_top_85:
tmp689 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (arg1) ;
tmp688 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_top (arg0, tmp689) ;
return (tmp688) ;
} /* end of [s1exp_trup_top_85] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 37431(line=1632, offs=5) -- 38173(line=1668, offs=4)
*/
ATSstaticdec()
ats_ptr_type
aux01_86 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp690) ;
ATSlocal (ats_ptr_type, tmp691) ;
ATSlocal (ats_ptr_type, tmp692) ;
ATSlocal (ats_ptr_type, tmp693) ;
ATSlocal (ats_ptr_type, tmp694) ;
ATSlocal (ats_ptr_type, tmp695) ;
ATSlocal (ats_ptr_type, tmp696) ;
ATSlocal (ats_ptr_type, tmp697) ;
ATSlocal (ats_bool_type, tmp699) ;
ATSlocal (ats_int_type, tmp700) ;
ATSlocal (ats_bool_type, tmp702) ;
ATSlocal (ats_int_type, tmp703) ;
ATSlocal (ats_bool_type, tmp704) ;
ATSlocal (ats_int_type, tmp705) ;
ATSlocal (ats_ptr_type, tmp706) ;
ATSlocal (ats_int_type, tmp707) ;

__ats_lab_aux01_86:
do {
/* branch: __ats_lab_134 */
__ats_lab_134_0:
if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_135_0 ; }
__ats_lab_134_1:
tmp690 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_135 */
__ats_lab_135_0:
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_135_1:
tmp691 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ;
tmp692 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ;
tmp693 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int (arg0) ;
tmp694 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (tmp691) ;
tmp695 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp694), atslab_s2exp_srt) ;
tmp697 = (ats_sum_ptr_type)0 ;
tmp696 = ATS_MALLOC(sizeof(anairiats_sum_12)) ;
ats_selptrset_mac(anairiats_sum_12, tmp696, atslab_0, tmp693) ;
ats_selptrset_mac(anairiats_sum_12, tmp696, atslab_1, tmp697) ;
ats_selptrset_mac(anairiats_sum_12, tmp696, atslab_2, tmp694) ;
tmp699 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin (tmp695) ;
if (tmp699) {
tmp700 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ;
ats_ptrget_mac(ats_int_type, arg3) = tmp700 ;
} else {
/* empty */
} /* end of [if] */
tmp702 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf (tmp695) ;
if (tmp702) {
tmp703 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ;
ats_ptrget_mac(ats_int_type, arg4) = tmp703 ;
} else {
tmp704 = atspre_gte_int_int (arg0, arg1) ;
if (tmp704) {
tmp705 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg5), 1) ;
ats_ptrget_mac(ats_int_type, arg5) = tmp705 ;
} else {
/* empty */
} /* end of [if] */
} /* end of [if] */
tmp707 = atspre_add_int_int (arg0, 1) ;
tmp706 = aux01_86 (tmp707, arg1, tmp692, arg3, arg4, arg5) ;
tmp690 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp690, atslab_0, tmp696) ;
ats_selptrset_mac(anairiats_sum_6, tmp690, atslab_1, tmp706) ;
break ;
} while (0) ;
return (tmp690) ;
} /* end of [aux01_86] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 38197(line=1670, offs=5) -- 38771(line=1696, offs=4)
*/
ATSstaticdec()
ats_ptr_type
aux23_87 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp708) ;
ATSlocal (ats_ptr_type, tmp709) ;
ATSlocal (ats_ptr_type, tmp710) ;
ATSlocal (ats_ptr_type, tmp711) ;
ATSlocal (ats_ptr_type, tmp712) ;
ATSlocal (ats_bool_type, tmp713) ;
ATSlocal (ats_ptr_type, tmp714) ;
ATSlocal (ats_ptr_type, tmp715) ;
ATSlocal (ats_ptr_type, tmp716) ;
ATSlocal (ats_int_type, tmp717) ;

__ats_lab_aux23_87:
do {
/* branch: __ats_lab_136 */
__ats_lab_136_0:
if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_137_0 ; }
__ats_lab_136_1:
tmp708 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_137 */
__ats_lab_137_0:
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_137_1:
tmp709 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ;
tmp710 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ;
tmp711 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__label_make_int (arg0) ;
tmp713 = atspre_gte_int_int (arg0, arg1) ;
if (tmp713) {
tmp712 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp709, arg4) ;
} else {
tmp712 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp709, arg3) ;
} /* end of [if] */
tmp715 = (ats_sum_ptr_type)0 ;
tmp714 = ATS_MALLOC(sizeof(anairiats_sum_12)) ;
ats_selptrset_mac(anairiats_sum_12, tmp714, atslab_0, tmp711) ;
ats_selptrset_mac(anairiats_sum_12, tmp714, atslab_1, tmp715) ;
ats_selptrset_mac(anairiats_sum_12, tmp714, atslab_2, tmp712) ;
tmp717 = atspre_add_int_int (arg0, 1) ;
tmp716 = aux23_87 (tmp717, arg1, tmp710, arg3, arg4) ;
tmp708 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp708, atslab_0, tmp714) ;
ats_selptrset_mac(anairiats_sum_6, tmp708, atslab_1, tmp716) ;
break ;
} while (0) ;
return (tmp708) ;
} /* end of [aux23_87] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 38819(line=1701, offs=1) -- 40150(line=1760, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s1exp_trup_tytup_88 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp718) ;
ATSlocal (ats_int_type, tmp719) ;
ATSlocal (ats_int_type, tmp720) ;
ATSlocal (ats_int_type, tmp721) ;
ATSlocal (ats_ptr_type, tmp722) ;
ATSlocal (ats_ptr_type, tmp723) ;
ATSlocal (ats_ptr_type, tmp724) ;
ATSlocal (ats_bool_type, tmp725) ;
ATSlocal (ats_ptr_type, tmp726) ;
ATSlocal (ats_ptr_type, tmp727) ;
ATSlocal (ats_ptr_type, tmp728) ;
ATSlocal (ats_ptr_type, tmp729) ;
// ATSlocal_void (tmp730) ;
ATSlocal (ats_ptr_type, tmp731) ;

__ats_lab_s1exp_trup_tytup_88:
do {
/* branch: __ats_lab_138 */
__ats_lab_138_0:
if (arg1 != 0) { goto __ats_lab_139_0 ; }
__ats_lab_138_1:
tmp718 = s1exp_trup_tytup_flt_89 (arg0, arg2, arg3) ;
break ;

/* branch: __ats_lab_139 */
__ats_lab_139_0:
if (arg1 != 1) { goto __ats_lab_140_0 ; }
__ats_lab_139_1:
/* ats_int_type tmp719 ; */
tmp719 = 0 ;
/* ats_int_type tmp720 ; */
tmp720 = 0 ;
/* ats_int_type tmp721 ; */
tmp721 = 0 ;
tmp722 = aux01_86 (0, arg2, arg3, (&tmp719), (&tmp720), (&tmp721)) ;
tmp723 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_prgm_boxed_labs2explst (arg2, tmp719, tmp720, tmp721, 1, tmp722) ;
tmp725 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_nonlin (tmp723) ;
if (tmp725) {
tmp724 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ;
} else {
tmp724 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_lin_1) ;
} /* end of [if] */
tmp718 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (tmp723, tmp724, arg2, tmp722) ;
break ;

/* branch: __ats_lab_140 */
__ats_lab_140_0:
if (arg1 != 2) { goto __ats_lab_141_0 ; }
__ats_lab_140_1:
tmp726 = aux23_87 (0, arg2, arg3, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ;
tmp727 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ;
tmp718 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type, tmp727, arg2, tmp726) ;
break ;

/* branch: __ats_lab_141 */
__ats_lab_141_0:
if (arg1 != 3) { goto __ats_lab_142_0 ; }
__ats_lab_141_1:
tmp728 = aux23_87 (0, arg2, arg3, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ;
tmp729 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_lin_1) ;
tmp718 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype, tmp729, arg2, tmp728) ;
break ;

/* branch: __ats_lab_142 */
__ats_lab_142_0:
__ats_lab_142_1:
tmp731 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 40084(line=1758, offs=14) -- 40100(line=1758, offs=30)", ATSstrcst("\n")) ;
/* tmp730 = */ atspre_assert_errmsg (ats_false_bool, tmp731) ;
tmp718 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ;
break ;
} while (0) ;
return (tmp718) ;
} /* end of [s1exp_trup_tytup_88] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 40185(line=1763, offs=1) -- 40600(line=1777, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s1exp_trup_tytup_flt_89 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp732) ;
ATSlocal (ats_int_type, tmp733) ;
ATSlocal (ats_int_type, tmp734) ;
ATSlocal (ats_int_type, tmp735) ;
ATSlocal (ats_ptr_type, tmp736) ;
ATSlocal (ats_ptr_type, tmp737) ;
ATSlocal (ats_ptr_type, tmp738) ;

__ats_lab_s1exp_trup_tytup_flt_89:
/* ats_int_type tmp733 ; */
tmp733 = 0 ;
/* ats_int_type tmp734 ; */
tmp734 = 0 ;
/* ats_int_type tmp735 ; */
tmp735 = 0 ;
tmp736 = aux01_86 (0, arg1, arg2, (&tmp733), (&tmp734), (&tmp735)) ;
tmp737 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_prgm_boxed_labs2explst (arg1, tmp733, tmp734, tmp735, 0, tmp736) ;
tmp738 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt0_2) ;
tmp732 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (tmp737, tmp738, arg1, tmp736) ;
return (tmp732) ;
} /* end of [s1exp_trup_tytup_flt_89] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 40690(line=1785, offs=5) -- 40790(line=1788, offs=4)
*/
ATSstaticdec()
ats_ptr_type
string_of_s0tring_90 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp739) ;
ATSlocal (ats_ptr_type, tmp740) ;
ATSlocal (ats_ptr_type, tmp741) ;

__ats_lab_string_of_s0tring_90:
tmp740 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_token_node) ;
if (((ats_sum_ptr_type)tmp740)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 40743(line=1787, offs=7) -- 40779(line=1787, offs=43)") ; }
tmp741 = ats_caselptrlab_mac(anairiats_sum_5, tmp740, atslab_0) ;
tmp739 = tmp741 ;
return (tmp739) ;
} /* end of [string_of_s0tring_90] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 40826(line=1790, offs=5) -- 41714(line=1817, offs=4)
*/
ATSstaticdec()
ats_ptr_type
aux01_91 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_ref_type arg5) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp742) ;
ATSlocal (ats_ptr_type, tmp743) ;
ATSlocal (ats_ptr_type, tmp744) ;
ATSlocal (ats_ptr_type, tmp745) ;
ATSlocal (ats_ptr_type, tmp746) ;
ATSlocal (ats_ptr_type, tmp747) ;
ATSlocal (ats_ptr_type, tmp748) ;
ATSlocal (ats_ptr_type, tmp749) ;
ATSlocal (ats_ptr_type, tmp750) ;
ATSlocal (ats_ptr_type, tmp751) ;
ATSlocal (ats_ptr_type, tmp752) ;
ATSlocal (ats_ptr_type, tmp753) ;
ATSlocal (ats_ptr_type, tmp754) ;
ATSlocal (ats_bool_type, tmp756) ;
ATSlocal (ats_int_type, tmp757) ;
ATSlocal (ats_bool_type, tmp759) ;
ATSlocal (ats_int_type, tmp760) ;
ATSlocal (ats_bool_type, tmp761) ;
ATSlocal (ats_int_type, tmp762) ;
ATSlocal (ats_ptr_type, tmp763) ;
ATSlocal (ats_int_type, tmp764) ;

__ats_lab_aux01_91:
do {
/* branch: __ats_lab_143 */
__ats_lab_143_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_146_0 ; }
__ats_lab_143_1:
tmp743 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ;
tmp744 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ;

tmp745 = ats_caselptrlab_mac(anairiats_sum_12, tmp743, atslab_0) ;
tmp746 = ats_caselptrlab_mac(anairiats_sum_12, tmp743, atslab_1) ;
tmp747 = ats_caselptrlab_mac(anairiats_sum_12, tmp743, atslab_2) ;
tmp748 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, tmp745), atslab_l0ab_lab) ;
do {
/* branch: __ats_lab_144 */
__ats_lab_144_0:
if (tmp746 == (ats_sum_ptr_type)0) { goto __ats_lab_145_0 ; }
__ats_lab_144_1:
tmp750 = ats_caselptrlab_mac(anairiats_sum_4, tmp746, atslab_0) ;
tmp751 = string_of_s0tring_90 (tmp750) ;
tmp749 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp749, atslab_0, tmp751) ;
break ;

/* branch: __ats_lab_145 */
__ats_lab_145_0:
// if (tmp746 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_145_1:
tmp749 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
tmp752 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (tmp747) ;
tmp753 = ATS_MALLOC(sizeof(anairiats_sum_12)) ;
ats_selptrset_mac(anairiats_sum_12, tmp753, atslab_0, tmp748) ;
ats_selptrset_mac(anairiats_sum_12, tmp753, atslab_1, tmp749) ;
ats_selptrset_mac(anairiats_sum_12, tmp753, atslab_2, tmp752) ;
tmp754 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp752), atslab_s2exp_srt) ;
tmp756 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin (tmp754) ;
if (tmp756) {
tmp757 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ;
ats_ptrget_mac(ats_int_type, arg3) = tmp757 ;
} else {
/* empty */
} /* end of [if] */
tmp759 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prf (tmp754) ;
if (tmp759) {
tmp760 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ;
ats_ptrget_mac(ats_int_type, arg4) = tmp760 ;
} else {
tmp761 = atspre_gte_int_int (arg0, arg1) ;
if (tmp761) {
tmp762 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg5), 1) ;
ats_ptrget_mac(ats_int_type, arg5) = tmp762 ;
} else {
/* empty */
} /* end of [if] */
} /* end of [if] */
tmp764 = atspre_add_int_int (arg0, 1) ;
tmp763 = aux01_91 (tmp764, arg1, tmp744, arg3, arg4, arg5) ;
tmp742 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp742, atslab_0, tmp753) ;
ats_selptrset_mac(anairiats_sum_6, tmp742, atslab_1, tmp763) ;
break ;

/* branch: __ats_lab_146 */
__ats_lab_146_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_146_1:
tmp742 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp742) ;
} /* end of [aux01_91] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 41738(line=1819, offs=5) -- 42612(line=1850, offs=4)
*/
ATSstaticdec()
ats_ptr_type
aux23_92 (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp765) ;
ATSlocal (ats_ptr_type, tmp766) ;
ATSlocal (ats_ptr_type, tmp767) ;
ATSlocal (ats_ptr_type, tmp768) ;
ATSlocal (ats_ptr_type, tmp769) ;
ATSlocal (ats_ptr_type, tmp770) ;
ATSlocal (ats_ptr_type, tmp771) ;
ATSlocal (ats_ptr_type, tmp772) ;
ATSlocal (ats_ptr_type, tmp773) ;
ATSlocal (ats_ptr_type, tmp774) ;
ATSlocal (ats_ptr_type, tmp775) ;
ATSlocal (ats_bool_type, tmp776) ;
ATSlocal (ats_ptr_type, tmp777) ;
ATSlocal (ats_ptr_type, tmp778) ;
ATSlocal (ats_int_type, tmp779) ;

__ats_lab_aux23_92:
do {
/* branch: __ats_lab_147 */
__ats_lab_147_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_150_0 ; }
__ats_lab_147_1:
tmp766 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ;
tmp767 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ;

tmp768 = ats_caselptrlab_mac(anairiats_sum_12, tmp766, atslab_0) ;
tmp769 = ats_caselptrlab_mac(anairiats_sum_12, tmp766, atslab_1) ;
tmp770 = ats_caselptrlab_mac(anairiats_sum_12, tmp766, atslab_2) ;
tmp771 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_23, tmp768), atslab_l0ab_lab) ;
do {
/* branch: __ats_lab_148 */
__ats_lab_148_0:
if (tmp769 != (ats_sum_ptr_type)0) { goto __ats_lab_149_0 ; }
__ats_lab_148_1:
tmp772 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_149 */
__ats_lab_149_0:
// if (tmp769 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_149_1:
tmp773 = ats_caselptrlab_mac(anairiats_sum_4, tmp769, atslab_0) ;
tmp774 = string_of_s0tring_90 (tmp773) ;
tmp772 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp772, atslab_0, tmp774) ;
break ;
} while (0) ;
tmp776 = atspre_gte_int_int (arg0, arg1) ;
if (tmp776) {
tmp775 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp770, arg4) ;
} else {
tmp775 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp770, arg3) ;
} /* end of [if] */
tmp777 = ATS_MALLOC(sizeof(anairiats_sum_12)) ;
ats_selptrset_mac(anairiats_sum_12, tmp777, atslab_0, tmp771) ;
ats_selptrset_mac(anairiats_sum_12, tmp777, atslab_1, tmp772) ;
ats_selptrset_mac(anairiats_sum_12, tmp777, atslab_2, tmp775) ;
tmp779 = atspre_add_int_int (arg0, 1) ;
tmp778 = aux23_92 (tmp779, arg1, tmp767, arg3, arg4) ;
tmp765 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp765, atslab_0, tmp777) ;
ats_selptrset_mac(anairiats_sum_6, tmp765, atslab_1, tmp778) ;
break ;

/* branch: __ats_lab_150 */
__ats_lab_150_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_150_1:
tmp765 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp765) ;
} /* end of [aux23_92] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 42660(line=1855, offs=1) -- 44369(line=1922, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s1exp_trup_tyrec_93 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp780) ;
ATSlocal (ats_int_type, tmp781) ;
ATSlocal (ats_int_type, tmp782) ;
ATSlocal (ats_int_type, tmp783) ;
ATSlocal (ats_ptr_type, tmp784) ;
ATSlocal (ats_ptr_type, tmp785) ;
ATSlocal (ats_ptr_type, tmp786) ;
ATSlocal (ats_int_type, tmp787) ;
ATSlocal (ats_int_type, tmp788) ;
ATSlocal (ats_int_type, tmp789) ;
ATSlocal (ats_ptr_type, tmp790) ;
ATSlocal (ats_ptr_type, tmp791) ;
ATSlocal (ats_ptr_type, tmp792) ;
ATSlocal (ats_ptr_type, tmp793) ;
ATSlocal (ats_ptr_type, tmp794) ;
ATSlocal (ats_ptr_type, tmp795) ;
ATSlocal (ats_ptr_type, tmp796) ;
// ATSlocal_void (tmp797) ;
ATSlocal (ats_ptr_type, tmp798) ;

__ats_lab_s1exp_trup_tyrec_93:
do {
/* branch: __ats_lab_151 */
__ats_lab_151_0:
if (arg1 != 0) { goto __ats_lab_152_0 ; }
__ats_lab_151_1:
/* ats_int_type tmp781 ; */
tmp781 = 0 ;
/* ats_int_type tmp782 ; */
tmp782 = 0 ;
/* ats_int_type tmp783 ; */
tmp783 = 0 ;
tmp784 = aux01_91 (0, arg2, arg3, (&tmp781), (&tmp782), (&tmp783)) ;
tmp785 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_prgm_boxed_labs2explst (arg2, tmp781, tmp782, tmp783, 0, tmp784) ;
tmp786 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDflt0_2) ;
tmp780 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (tmp785, tmp786, arg2, tmp784) ;
break ;

/* branch: __ats_lab_152 */
__ats_lab_152_0:
if (arg1 != 1) { goto __ats_lab_153_0 ; }
__ats_lab_152_1:
/* ats_int_type tmp787 ; */
tmp787 = 0 ;
/* ats_int_type tmp788 ; */
tmp788 = 0 ;
/* ats_int_type tmp789 ; */
tmp789 = 0 ;
tmp790 = aux01_91 (0, arg2, arg3, (&tmp787), (&tmp788), (&tmp789)) ;
tmp791 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_prgm_boxed_labs2explst (arg2, tmp787, tmp788, tmp789, 1, tmp790) ;
tmp792 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ;
tmp780 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (tmp791, tmp792, arg2, tmp790) ;
break ;

/* branch: __ats_lab_153 */
__ats_lab_153_0:
if (arg1 != 2) { goto __ats_lab_154_0 ; }
__ats_lab_153_1:
tmp793 = aux23_92 (0, arg2, arg3, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ;
tmp794 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ;
tmp780 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_type, tmp794, arg2, tmp793) ;
break ;

/* branch: __ats_lab_154 */
__ats_lab_154_0:
if (arg1 != 3) { goto __ats_lab_155_0 ; }
__ats_lab_154_1:
tmp795 = aux23_92 (0, arg2, arg3, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ;
tmp796 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__TYRECKINDbox_0) ;
tmp780 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vtype, tmp796, arg2, tmp795) ;
break ;

/* branch: __ats_lab_155 */
__ats_lab_155_0:
__ats_lab_155_1:
tmp798 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 44305(line=1920, offs=24) -- 44320(line=1920, offs=39)", ATSstrcst("\n")) ;
/* tmp797 = */ atspre_assert_errmsg (ats_false_bool, tmp798) ;
tmp780 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_t0ype_err () ;
break ;
} while (0) ;
return (tmp780) ;
} /* end of [s1exp_trup_tyrec_93] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 44404(line=1925, offs=1) -- 44884(line=1942, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s1exp_trup_tyrec_ext_94 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp799) ;
ATSlocal (ats_int_type, tmp800) ;
ATSlocal (ats_int_type, tmp801) ;
ATSlocal (ats_int_type, tmp802) ;
ATSlocal (ats_ptr_type, tmp803) ;
ATSlocal (ats_ptr_type, tmp804) ;
ATSlocal (ats_ptr_type, tmp805) ;

__ats_lab_s1exp_trup_tyrec_ext_94:
/* ats_int_type tmp800 ; */
tmp800 = 0 ;
/* ats_int_type tmp801 ; */
tmp801 = 0 ;
/* ats_int_type tmp802 ; */
tmp802 = 0 ;
tmp803 = aux01_91 (0, arg2, arg3, (&tmp800), (&tmp801), (&tmp802)) ;
tmp804 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2rt_npf_lin_prf_prgm_boxed_labs2explst (arg2, tmp800, tmp801, tmp802, 0, tmp803) ;
tmp805 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp805)->tag = 4 ;
ats_selptrset_mac(anairiats_sum_5, tmp805, atslab_0, arg1) ;
tmp799 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyrec_srt (tmp804, tmp805, arg2, tmp803) ;
return (tmp799) ;
} /* end of [s1exp_trup_tyrec_ext_94] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 44984(line=1949, offs=11) -- 50566(line=2169, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp806) ;
ATSlocal (ats_ptr_type, tmp807) ;
ATSlocal (ats_ptr_type, tmp808) ;
ATSlocal (ats_ptr_type, tmp809) ;
ATSlocal (ats_ptr_type, tmp810) ;
ATSlocal (ats_ptr_type, tmp811) ;
ATSlocal (ats_int_type, tmp812) ;
ATSlocal (ats_ptr_type, tmp813) ;
ATSlocal (ats_ptr_type, tmp814) ;
ATSlocal (ats_char_type, tmp815) ;
ATSlocal (ats_ptr_type, tmp816) ;
ATSlocal (ats_ptr_type, tmp817) ;
ATSlocal (ats_ptr_type, tmp818) ;
ATSlocal (ats_ptr_type, tmp819) ;
ATSlocal (ats_ptr_type, tmp820) ;
ATSlocal (ats_ptr_type, tmp821) ;
ATSlocal (ats_ptr_type, tmp822) ;
ATSlocal (ats_ptr_type, tmp823) ;
ATSlocal (ats_ptr_type, tmp824) ;
ATSlocal (ats_ptr_type, tmp825) ;
ATSlocal (ats_ptr_type, tmp826) ;
ATSlocal (ats_ptr_type, tmp827) ;
ATSlocal (ats_ptr_type, tmp828) ;
ATSlocal (ats_ptr_type, tmp829) ;
ATSlocal (ats_ptr_type, tmp830) ;
ATSlocal (ats_int_type, tmp831) ;
ATSlocal (ats_int_type, tmp832) ;
ATSlocal (ats_ptr_type, tmp833) ;
ATSlocal (ats_ptr_type, tmp834) ;
ATSlocal (ats_bool_type, tmp835) ;
ATSlocal (ats_bool_type, tmp836) ;
ATSlocal (ats_ptr_type, tmp837) ;
ATSlocal (ats_ptr_type, tmp838) ;
ATSlocal (ats_ptr_type, tmp839) ;
ATSlocal (ats_ptr_type, tmp840) ;
ATSlocal (ats_ptr_type, tmp841) ;
ATSlocal (ats_ptr_type, tmp842) ;
// ATSlocal_void (tmp843) ;
// ATSlocal_void (tmp844) ;
// ATSlocal_void (tmp845) ;
ATSlocal (ats_ptr_type, tmp846) ;
ATSlocal (ats_ptr_type, tmp847) ;
ATSlocal (ats_ptr_type, tmp848) ;
// ATSlocal_void (tmp849) ;
// ATSlocal_void (tmp850) ;
// ATSlocal_void (tmp851) ;
// ATSlocal_void (tmp852) ;
// ATSlocal_void (tmp853) ;
ATSlocal (ats_int_type, tmp854) ;
ATSlocal (ats_ptr_type, tmp855) ;
ATSlocal (ats_int_type, tmp856) ;
ATSlocal (ats_ptr_type, tmp857) ;
ATSlocal (ats_ptr_type, tmp858) ;
ATSlocal (ats_ptr_type, tmp859) ;
ATSlocal (ats_ptr_type, tmp860) ;
ATSlocal (ats_ptr_type, tmp861) ;
ATSlocal (ats_int_type, tmp862) ;
ATSlocal (ats_int_type, tmp863) ;
ATSlocal (ats_ptr_type, tmp864) ;
ATSlocal (ats_int_type, tmp865) ;
ATSlocal (ats_int_type, tmp866) ;
ATSlocal (ats_ptr_type, tmp867) ;
ATSlocal (ats_ptr_type, tmp868) ;
ATSlocal (ats_int_type, tmp869) ;
ATSlocal (ats_ptr_type, tmp870) ;
// ATSlocal_void (tmp871) ;
// ATSlocal_void (tmp872) ;
// ATSlocal_void (tmp873) ;
// ATSlocal_void (tmp874) ;
ATSlocal (ats_ptr_type, tmp875) ;
// ATSlocal_void (tmp876) ;
// ATSlocal_void (tmp877) ;
// ATSlocal_void (tmp878) ;
// ATSlocal_void (tmp879) ;
ATSlocal (ats_ptr_type, tmp880) ;
ATSlocal (ats_ptr_type, tmp881) ;
ATSlocal (ats_ptr_type, tmp882) ;
// ATSlocal_void (tmp883) ;
// ATSlocal_void (tmp884) ;
ATSlocal (anairiats_rec_1, tmp885) ;
ATSlocal (ats_ptr_type, tmp886) ;
// ATSlocal_void (tmp887) ;
ATSlocal (ats_ptr_type, tmp888) ;
ATSlocal (ats_ptr_type, tmp889) ;
ATSlocal (ats_int_type, tmp890) ;
ATSlocal (ats_ptr_type, tmp891) ;
ATSlocal (ats_ptr_type, tmp892) ;
// ATSlocal_void (tmp893) ;
ATSlocal (ats_bool_type, tmp894) ;
// ATSlocal_void (tmp895) ;
// ATSlocal_void (tmp896) ;
// ATSlocal_void (tmp897) ;
ATSlocal (ats_ptr_type, tmp898) ;
// ATSlocal_void (tmp899) ;
// ATSlocal_void (tmp900) ;
ATSlocal (anairiats_rec_1, tmp901) ;
ATSlocal (ats_ptr_type, tmp902) ;
// ATSlocal_void (tmp903) ;
ATSlocal (ats_ptr_type, tmp904) ;
ATSlocal (ats_ptr_type, tmp905) ;
ATSlocal (ats_ptr_type, tmp906) ;
ATSlocal (ats_ptr_type, tmp907) ;
ATSlocal (ats_ptr_type, tmp908) ;
ATSlocal (ats_ptr_type, tmp909) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup:
tmp807 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ;
tmp808 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ;
do {
/* branch: __ats_lab_156 */
__ats_lab_156_0:
if (((ats_sum_ptr_type)tmp808)->tag != 0) { goto __ats_lab_157_0 ; }
__ats_lab_156_1:
tmp809 = ats_caselptrlab_mac(anairiats_sum_5, tmp808, atslab_0) ;
tmp806 = s1exp_trup_sqid_31 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_s0taq_none, tmp809) ;
break ;

/* branch: __ats_lab_157 */
__ats_lab_157_0:
if (((ats_sum_ptr_type)tmp808)->tag != 1) { goto __ats_lab_158_0 ; }
__ats_lab_157_1:
tmp810 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_0) ;
tmp811 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_1) ;
tmp806 = s1exp_trup_sqid_31 (arg0, tmp810, tmp811) ;
break ;

/* branch: __ats_lab_158 */
__ats_lab_158_0:
if (((ats_sum_ptr_type)tmp808)->tag != 2) { goto __ats_lab_159_0 ; }
__ats_lab_158_1:
tmp812 = ats_caselptrlab_mac(anairiats_sum_24, tmp808, atslab_0) ;
tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (tmp812) ;
break ;

/* branch: __ats_lab_159 */
__ats_lab_159_0:
if (((ats_sum_ptr_type)tmp808)->tag != 3) { goto __ats_lab_160_0 ; }
__ats_lab_159_1:
tmp813 = ats_caselptrlab_mac(anairiats_sum_5, tmp808, atslab_0) ;
tmp814 = patsopt_intinf_make_string (tmp813) ;
tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf (tmp814) ;
break ;

/* branch: __ats_lab_160 */
__ats_lab_160_0:
if (((ats_sum_ptr_type)tmp808)->tag != 4) { goto __ats_lab_161_0 ; }
__ats_lab_160_1:
tmp815 = ats_caselptrlab_mac(anairiats_sum_25, tmp808, atslab_0) ;
tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char (tmp815) ;
break ;

/* branch: __ats_lab_161 */
__ats_lab_161_0:
if (((ats_sum_ptr_type)tmp808)->tag != 5) { goto __ats_lab_162_0 ; }
__ats_lab_161_1:
tmp816 = ats_caselptrlab_mac(anairiats_sum_5, tmp808, atslab_0) ;
tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_float (tmp816) ;
break ;

/* branch: __ats_lab_162 */
__ats_lab_162_0:
if (((ats_sum_ptr_type)tmp808)->tag != 6) { goto __ats_lab_163_0 ; }
__ats_lab_162_1:
tmp817 = ats_caselptrlab_mac(anairiats_sum_5, tmp808, atslab_0) ;
tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_string (tmp817) ;
break ;

/* branch: __ats_lab_163 */
__ats_lab_163_0:
if (((ats_sum_ptr_type)tmp808)->tag != 7) { goto __ats_lab_164_0 ; }
__ats_lab_163_1:
tmp818 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_0) ;
tmp819 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_1) ;
tmp820 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp819, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_vt0ype) ;
tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extype_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype, tmp818, ats_castfn_mac(ats_ptr_type, tmp820)) ;
break ;

/* branch: __ats_lab_164 */
__ats_lab_164_0:
if (((ats_sum_ptr_type)tmp808)->tag != 8) { goto __ats_lab_165_0 ; }
__ats_lab_164_1:
tmp821 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_0) ;
tmp822 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_1) ;
tmp823 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp822, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_vt0ype) ;
tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extkind_srt (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_tkind, tmp821, ats_castfn_mac(ats_ptr_type, tmp823)) ;
break ;

/* branch: __ats_lab_165 */
__ats_lab_165_0:
if (((ats_sum_ptr_type)tmp808)->tag != 9) { goto __ats_lab_170_0 ; }
__ats_lab_165_1:
/* ats_ptr_type tmp824 ; */
tmp824 = (ats_sum_ptr_type)0 ;
tmp825 = s1exp_app_unwind_40 (arg0, (&tmp824)) ;
tmp826 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp825), atslab_s1exp_node) ;
do {
/* branch: __ats_lab_166 */
__ats_lab_166_0:
if (((ats_sum_ptr_type)tmp826)->tag != 0) { goto __ats_lab_167_0 ; }
__ats_lab_166_1:
tmp827 = ats_caselptrlab_mac(anairiats_sum_5, tmp826, atslab_0) ;
tmp806 = s1exp_trup_app_sqid_75 (arg0, tmp825, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__the_s0taq_none, tmp827, tmp824) ;
break ;

/* branch: __ats_lab_167 */
__ats_lab_167_0:
if (((ats_sum_ptr_type)tmp826)->tag != 1) { goto __ats_lab_168_0 ; }
__ats_lab_167_1:
tmp828 = ats_caselptrlab_mac(anairiats_sum_9, tmp826, atslab_0) ;
tmp829 = ats_caselptrlab_mac(anairiats_sum_9, tmp826, atslab_1) ;
tmp806 = s1exp_trup_app_sqid_75 (arg0, tmp825, tmp828, tmp829, tmp824) ;
break ;

/* branch: __ats_lab_168 */
__ats_lab_168_0:
if (((ats_sum_ptr_type)tmp826)->tag != 11) { goto __ats_lab_169_0 ; }
__ats_lab_168_1:
tmp830 = ats_caselptrlab_mac(anairiats_sum_26, tmp826, atslab_0) ;
tmp831 = ats_caselptrlab_mac(anairiats_sum_26, tmp826, atslab_1) ;
tmp832 = ats_caselptrlab_mac(anairiats_sum_26, tmp826, atslab_2) ;
tmp833 = ats_caselptrlab_mac(anairiats_sum_26, tmp826, atslab_3) ;
tmp834 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp834, atslab_0, tmp830) ;
tmp835 = atspre_gt_int_int (tmp831, 0) ;
tmp836 = atspre_gt_int_int (tmp832, 0) ;
tmp806 = s1exp_trup_arrow_56 (arg0, tmp834, tmp835, tmp836, tmp833, tmp824) ;
break ;

/* branch: __ats_lab_169 */
__ats_lab_169_0:
__ats_lab_169_1:
tmp837 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (tmp825) ;
tmp806 = s1exp_trup_app_63 (arg0, tmp825, tmp837, tmp824) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_170 */
__ats_lab_170_0:
if (((ats_sum_ptr_type)tmp808)->tag != 10) { goto __ats_lab_173_0 ; }
__ats_lab_170_1:
tmp838 = ats_caselptrlab_mac(anairiats_sum_17, tmp808, atslab_0) ;
tmp839 = ats_caselptrlab_mac(anairiats_sum_17, tmp808, atslab_1) ;
tmp840 = ats_caselptrlab_mac(anairiats_sum_17, tmp808, atslab_2) ;
tmp842 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp838), atslab_s1marg_arg) ;
tmp841 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup (tmp842) ;
/* tmp843 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ;
/* tmp844 = ats_selsin_mac(tmp843, atslab_1) */ ;
/* tmp845 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp841) ;
do {
/* branch: __ats_lab_171 */
__ats_lab_171_0:
if (tmp839 == (ats_sum_ptr_type)0) { goto __ats_lab_172_0 ; }
__ats_lab_171_1:
tmp847 = ats_caselptrlab_mac(anairiats_sum_4, tmp839, atslab_0) ;
tmp848 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp847) ;
tmp846 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp840, tmp848) ;
break ;

/* branch: __ats_lab_172 */
__ats_lab_172_0:
// if (tmp839 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_172_1:
tmp846 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (tmp840) ;
break ;
} while (0) ;
/* tmp849 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ;
tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam (tmp841, tmp846) ;
break ;

/* branch: __ats_lab_173 */
__ats_lab_173_0:
if (((ats_sum_ptr_type)tmp808)->tag != 11) { goto __ats_lab_174_0 ; }
__ats_lab_173_1:
/* tmp850 = */ prerr_interror_loc_02166_ (tmp807) ;
/* tmp851 = */ atspre_prerr_string (ATSstrcst(": s1exp_trup: S1Eimp: s1e0 = ")) ;
/* tmp852 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__prerr_s1exp (arg0) ;
/* tmp853 = */ atspre_prerr_newline () ;
/* tmp806 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort_interr () ;
break ;

/* branch: __ats_lab_174 */
__ats_lab_174_0:
if (((ats_sum_ptr_type)tmp808)->tag != 12) { goto __ats_lab_175_0 ; }
__ats_lab_174_1:
tmp854 = ats_caselptrlab_mac(anairiats_sum_19, tmp808, atslab_0) ;
tmp855 = ats_caselptrlab_mac(anairiats_sum_19, tmp808, atslab_1) ;
tmp806 = s1exp_trup_top_85 (tmp854, tmp855) ;
break ;

/* branch: __ats_lab_175 */
__ats_lab_175_0:
if (((ats_sum_ptr_type)tmp808)->tag != 13) { goto __ats_lab_176_0 ; }
__ats_lab_175_1:
tmp856 = ats_caselptrlab_mac(anairiats_sum_19, tmp808, atslab_0) ;
tmp857 = ats_caselptrlab_mac(anairiats_sum_19, tmp808, atslab_1) ;
tmp806 = s1exp_trup_tytup_flt_89 (arg0, tmp856, tmp857) ;
break ;

/* branch: __ats_lab_176 */
__ats_lab_176_0:
if (((ats_sum_ptr_type)tmp808)->tag != 16) { goto __ats_lab_177_0 ; }
__ats_lab_176_1:
tmp858 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_0) ;
tmp859 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_1) ;
tmp860 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype (tmp858) ;
tmp861 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_int (tmp859) ;
tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_tyarr (tmp860, tmp861) ;
break ;

/* branch: __ats_lab_177 */
__ats_lab_177_0:
if (((ats_sum_ptr_type)tmp808)->tag != 17) { goto __ats_lab_178_0 ; }
__ats_lab_177_1:
tmp862 = ats_caselptrlab_mac(anairiats_sum_27, tmp808, atslab_0) ;
tmp863 = ats_caselptrlab_mac(anairiats_sum_27, tmp808, atslab_1) ;
tmp864 = ats_caselptrlab_mac(anairiats_sum_27, tmp808, atslab_2) ;
tmp806 = s1exp_trup_tytup_88 (arg0, tmp862, tmp863, tmp864) ;
break ;

/* branch: __ats_lab_178 */
__ats_lab_178_0:
if (((ats_sum_ptr_type)tmp808)->tag != 18) { goto __ats_lab_179_0 ; }
__ats_lab_178_1:
tmp865 = ats_caselptrlab_mac(anairiats_sum_27, tmp808, atslab_0) ;
tmp866 = ats_caselptrlab_mac(anairiats_sum_27, tmp808, atslab_1) ;
tmp867 = ats_caselptrlab_mac(anairiats_sum_27, tmp808, atslab_2) ;
tmp806 = s1exp_trup_tyrec_93 (arg0, tmp865, tmp866, tmp867) ;
break ;

/* branch: __ats_lab_179 */
__ats_lab_179_0:
if (((ats_sum_ptr_type)tmp808)->tag != 19) { goto __ats_lab_180_0 ; }
__ats_lab_179_1:
tmp868 = ats_caselptrlab_mac(anairiats_sum_28, tmp808, atslab_0) ;
tmp869 = ats_caselptrlab_mac(anairiats_sum_28, tmp808, atslab_1) ;
tmp870 = ats_caselptrlab_mac(anairiats_sum_28, tmp808, atslab_2) ;
tmp806 = s1exp_trup_tyrec_ext_94 (arg0, tmp868, tmp869, tmp870) ;
break ;

/* branch: __ats_lab_180 */
__ats_lab_180_0:
if (((ats_sum_ptr_type)tmp808)->tag != 14) { goto __ats_lab_181_0 ; }
__ats_lab_180_1:
/* tmp871 = */ prerr_error2_loc_02168_ (tmp807) ;
/* tmp872 = */ atspre_prerr_string (ATSstrcst(": invariant type can only be assigned to a function argument.")) ;
/* tmp873 = */ atspre_prerr_newline () ;
tmp875 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp875)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp875, atslab_0, arg0) ;
/* tmp874 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp875) ;
tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ;
break ;

/* branch: __ats_lab_181 */
__ats_lab_181_0:
if (((ats_sum_ptr_type)tmp808)->tag != 15) { goto __ats_lab_182_0 ; }
__ats_lab_181_1:
/* tmp876 = */ prerr_error2_loc_02168_ (tmp807) ;
/* tmp877 = */ atspre_prerr_string (ATSstrcst(": transitional type can only be assigned to a function argument.")) ;
/* tmp878 = */ atspre_prerr_newline () ;
tmp880 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp880)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp880, atslab_0, arg0) ;
/* tmp879 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp880) ;
tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ;
break ;

/* branch: __ats_lab_182 */
__ats_lab_182_0:
if (((ats_sum_ptr_type)tmp808)->tag != 20) { goto __ats_lab_183_0 ; }
__ats_lab_182_1:
tmp881 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_0) ;
tmp882 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_1) ;
/* tmp883 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ;
/* tmp884 = ats_selsin_mac(tmp883, atslab_1) */ ;
tmp885 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr (tmp881) ;
tmp886 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (tmp882) ;
/* tmp887 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ;
tmp888 = ats_select_mac(tmp885, atslab_s2qua_svs) ;
tmp889 = ats_select_mac(tmp885, atslab_s2qua_sps) ;
tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_uni (tmp888, tmp889, tmp886) ;
break ;

/* branch: __ats_lab_183 */
__ats_lab_183_0:
if (((ats_sum_ptr_type)tmp808)->tag != 21) { goto __ats_lab_184_0 ; }
__ats_lab_183_1:
tmp890 = ats_caselptrlab_mac(anairiats_sum_21, tmp808, atslab_0) ;
tmp891 = ats_caselptrlab_mac(anairiats_sum_21, tmp808, atslab_1) ;
tmp892 = ats_caselptrlab_mac(anairiats_sum_21, tmp808, atslab_2) ;
tmp894 = atspre_gt_int_int (tmp890, 0) ;
if (tmp894) {
/* tmp895 = */ prerr_error2_loc_02168_ (tmp807) ;
/* tmp896 = */ atspre_prerr_string (ATSstrcst(": incorrect use of the existential quantifier #[...]")) ;
/* tmp897 = */ atspre_prerr_newline () ;
tmp898 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp898)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp898, atslab_0, arg0) ;
/* tmp893 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp898) ;
} else {
/* empty */
} /* end of [if] */
/* tmp899 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ;
/* tmp900 = ats_selsin_mac(tmp899, atslab_1) */ ;
tmp901 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr (tmp891) ;
tmp902 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (tmp892) ;
/* tmp903 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ;
tmp904 = ats_select_mac(tmp901, atslab_s2qua_svs) ;
tmp905 = ats_select_mac(tmp901, atslab_s2qua_sps) ;
tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_exi (tmp904, tmp905, tmp902) ;
break ;

/* branch: __ats_lab_184 */
__ats_lab_184_0:
if (((ats_sum_ptr_type)tmp808)->tag != 22) { goto __ats_lab_185_0 ; }
__ats_lab_184_1:
tmp906 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_0) ;
tmp907 = ats_caselptrlab_mac(anairiats_sum_9, tmp808, atslab_1) ;
tmp908 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp907) ;
tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp906, tmp908) ;
break ;

/* branch: __ats_lab_185 */
__ats_lab_185_0:
if (((ats_sum_ptr_type)tmp808)->tag != 23) { goto __ats_lab_186_0 ; }
__ats_lab_185_1:
tmp909 = ats_caselptrlab_mac(anairiats_sum_5, tmp808, atslab_0) ;
tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__S1Ed2ctype_tr (tmp909) ;
break ;

/* branch: __ats_lab_186 */
__ats_lab_186_0:
// if (((ats_sum_ptr_type)tmp808)->tag != 24) { ats_deadcode_failure_handle () ; }
__ats_lab_186_1:
tmp806 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_s2rt_err () ;
break ;
} while (0) ;
return (tmp806) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 50619(line=2172, offs=19) -- 50655(line=2172, offs=55)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_hnfize (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp910) ;
ATSlocal (ats_ptr_type, tmp911) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_hnfize:
tmp911 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (arg0) ;
tmp910 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp911) ;
return (tmp910) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_hnfize] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 50705(line=2178, offs=3) -- 50750(line=2178, offs=48)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp912) ;
ATSlocal (ats_ptr_type, tmp913) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup:
tmp913 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup) ;
tmp912 = ats_castfn_mac(ats_ptr_type, tmp913) ;
return (tmp912) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 50812(line=2183, offs=3) -- 50864(line=2183, offs=55)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup_hnfize (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp914) ;
ATSlocal (ats_ptr_type, tmp915) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup_hnfize:
tmp915 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_hnfize) ;
tmp914 = ats_castfn_mac(ats_ptr_type, tmp915) ;
return (tmp914) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup_hnfize] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 50940(line=2190, offs=3) -- 51025(line=2191, offs=59)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1expopt_trup (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp916) ;
ATSlocal (ats_ptr_type, tmp917) ;
ATSlocal (ats_ptr_type, tmp918) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1expopt_trup:
do {
/* branch: __ats_lab_187 */
__ats_lab_187_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_188_0 ; }
__ats_lab_187_1:
tmp917 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ;
tmp918 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (tmp917) ;
tmp916 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp916, atslab_0, tmp918) ;
break ;

/* branch: __ats_lab_188 */
__ats_lab_188_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_188_1:
tmp916 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp916) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1expopt_trup] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 51150(line=2201, offs=5) -- 51559(line=2212, offs=2)
*/
ATSstaticdec()
ats_void_type
auxerr_101 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp920) ;
// ATSlocal_void (tmp921) ;
ATSlocal (ats_ptr_type, tmp922) ;
// ATSlocal_void (tmp923) ;
// ATSlocal_void (tmp924) ;
// ATSlocal_void (tmp925) ;
// ATSlocal_void (tmp926) ;
// ATSlocal_void (tmp927) ;
// ATSlocal_void (tmp928) ;
// ATSlocal_void (tmp929) ;
ATSlocal (ats_ptr_type, tmp930) ;

__ats_lab_auxerr_101:
tmp922 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ;
/* tmp921 = */ prerr_error2_loc_02168_ (tmp922) ;
/* tmp923 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trdn_lam")) ;
/* tmp924 = */ atspre_prerr_string (ATSstrcst(": the body of the static function is given the sort [")) ;
/* tmp925 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg1) ;
/* tmp926 = */ atspre_prerr_string (ATSstrcst("] but it is expected to be of the sort [")) ;
/* tmp927 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg2) ;
/* tmp928 = */ atspre_prerr_string (ATSstrcst("].")) ;
/* tmp929 = */ atspre_prerr_newline () ;
tmp930 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp930)->tag = 5 ;
ats_selptrset_mac(anairiats_sum_9, tmp930, atslab_0, env0) ;
ats_selptrset_mac(anairiats_sum_9, tmp930, atslab_1, env1) ;
/* tmp920 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp930) ;
return /* (tmp920) */ ;
} /* end of [auxerr_101] */

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

ats_void_type
auxerr_101_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
auxerr_101 (((auxerr_101_closure_type*)cloptr)->closure_env_0, ((auxerr_101_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2) ; return ;
} /* end of function */

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

ats_clo_ptr_type
auxerr_101_closure_make (ats_ptr_type env0, ats_ptr_type env1) {
auxerr_101_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr_101_closure_type)) ;
auxerr_101_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 51078(line=2196, offs=5) -- 52293(line=2238, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s1exp_trdn_lam_100 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp919) ;
ATSlocal (ats_ptr_type, tmp931) ;
ATSlocal (ats_ptr_type, tmp932) ;
ATSlocal (ats_ptr_type, tmp933) ;
ATSlocal (ats_ptr_type, tmp934) ;
ATSlocal (ats_ptr_type, tmp935) ;
ATSlocal (ats_ptr_type, tmp936) ;
ATSlocal (ats_int_type, tmp937) ;
ATSlocal (ats_ptr_type, tmp938) ;
ATSlocal (ats_ptr_type, tmp939) ;
ATSlocal (ats_ptr_type, tmp940) ;
ATSlocal (ats_ptr_type, tmp941) ;
ATSlocal (ats_bool_type, tmp942) ;
// ATSlocal_void (tmp943) ;
ATSlocal (ats_bool_type, tmp944) ;
// ATSlocal_void (tmp945) ;
// ATSlocal_void (tmp946) ;
// ATSlocal_void (tmp947) ;
ATSlocal (ats_ptr_type, tmp948) ;
// ATSlocal_void (tmp949) ;

__ats_lab_s1exp_trdn_lam_100:
tmp931 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ;
if (((ats_sum_ptr_type)tmp931)->tag != 10) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 51588(line=2214, offs=7) -- 51652(line=2216, offs=25)") ; }
tmp932 = ats_caselptrlab_mac(anairiats_sum_17, tmp931, atslab_0) ;
tmp933 = ats_caselptrlab_mac(anairiats_sum_17, tmp931, atslab_1) ;
tmp934 = ats_caselptrlab_mac(anairiats_sum_17, tmp931, atslab_2) ;
if (((ats_sum_ptr_type)arg1)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 51659(line=2217, offs=7) -- 51696(line=2217, offs=44)") ; }
tmp935 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ;
tmp936 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ;
/* ats_int_type tmp937 ; */
tmp937 = 0 ;
tmp938 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1marg_trdn (tmp932, tmp935) ;
do {
/* branch: __ats_lab_189 */
__ats_lab_189_0:
if (tmp933 == (ats_sum_ptr_type)0) { goto __ats_lab_190_0 ; }
__ats_lab_189_1:
tmp940 = ats_caselptrlab_mac(anairiats_sum_4, tmp933, atslab_0) ;
tmp941 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp940) ;
tmp942 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (tmp941, tmp936) ;
tmp944 = atspre_neg_bool (tmp942) ;
if (tmp944) {
/* tmp943 = */ auxerr_101 (arg0, arg1, arg0, tmp941, tmp936) ;
} else {
/* empty */
} /* end of [if] */
tmp939 = tmp941 ;
break ;

/* branch: __ats_lab_190 */
__ats_lab_190_0:
// if (tmp933 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_190_1:
tmp939 = tmp936 ;
break ;
} while (0) ;
/* tmp945 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ;
/* tmp946 = ats_selsin_mac(tmp945, atslab_1) */ ;
/* tmp947 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst (tmp938) ;
tmp948 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp934, tmp939) ;
/* tmp949 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ;
tmp919 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_lam_srt (arg1, tmp938, tmp948) ;
return (tmp919) ;
} /* end of [s1exp_trdn_lam_100] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 52345(line=2242, offs=3) -- 52904(line=2263, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s2exp_trdn (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp950) ;
ATSlocal (ats_ptr_type, tmp951) ;
ATSlocal (ats_bool_type, tmp952) ;
// ATSlocal_void (tmp953) ;
// ATSlocal_void (tmp954) ;
// ATSlocal_void (tmp955) ;
// ATSlocal_void (tmp956) ;
// ATSlocal_void (tmp957) ;
// ATSlocal_void (tmp958) ;
// ATSlocal_void (tmp959) ;
// ATSlocal_void (tmp960) ;
// ATSlocal_void (tmp961) ;
ATSlocal (ats_ptr_type, tmp962) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s2exp_trdn:
tmp951 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, arg1), atslab_s2exp_srt) ;
tmp952 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (tmp951, arg2) ;
if (tmp952) {
tmp950 = arg1 ;
} else {
/* tmp953 = */ prerr_error2_loc_02168_ (arg0) ;
/* tmp954 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s2exp_trdn")) ;
/* tmp955 = */ atspre_prerr_string (ATSstrcst(": the static expression is of the sort [")) ;
/* tmp956 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (tmp951) ;
/* tmp957 = */ atspre_prerr_string (ATSstrcst("] but it is expected to be of the sort [")) ;
/* tmp958 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg2) ;
/* tmp959 = */ atspre_prerr_string (ATSstrcst("].")) ;
/* tmp960 = */ atspre_prerr_newline () ;
tmp962 = ATS_MALLOC(sizeof(anairiats_sum_17)) ;
((ats_sum_ptr_type)tmp962)->tag = 7 ;
ats_selptrset_mac(anairiats_sum_17, tmp962, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_17, tmp962, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_17, tmp962, atslab_2, arg2) ;
/* tmp961 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp962) ;
tmp950 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (arg2) ;
} /* end of [if] */
return (tmp950) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s2exp_trdn] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 52974(line=2268, offs=5) -- 53278(line=2277, offs=2)
*/
ATSstaticdec()
ats_void_type
auxerr_104 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp964) ;
// ATSlocal_void (tmp965) ;
ATSlocal (ats_ptr_type, tmp966) ;
// ATSlocal_void (tmp967) ;
// ATSlocal_void (tmp968) ;
// ATSlocal_void (tmp969) ;
// ATSlocal_void (tmp970) ;
// ATSlocal_void (tmp971) ;
ATSlocal (ats_ptr_type, tmp972) ;

__ats_lab_auxerr_104:
tmp966 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ;
/* tmp965 = */ prerr_error2_loc_02168_ (tmp966) ;
/* tmp967 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trdn")) ;
/* tmp968 = */ atspre_prerr_string (ATSstrcst(": the static term (extype) cannot be given the sort [")) ;
/* tmp969 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg1) ;
/* tmp970 = */ atspre_prerr_string (ATSstrcst("].")) ;
/* tmp971 = */ atspre_prerr_newline () ;
tmp972 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp972)->tag = 5 ;
ats_selptrset_mac(anairiats_sum_9, tmp972, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_9, tmp972, atslab_1, arg1) ;
/* tmp964 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp972) ;
return /* (tmp964) */ ;
} /* end of [auxerr_104] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 52950(line=2266, offs=12) -- 53809(line=2298, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp963) ;
ATSlocal (ats_ptr_type, tmp973) ;
ATSlocal (ats_ptr_type, tmp974) ;
ATSlocal (ats_ptr_type, tmp975) ;
ATSlocal (ats_bool_type, tmp976) ;
ATSlocal (ats_ptr_type, tmp977) ;
// ATSlocal_void (tmp978) ;
ATSlocal (ats_ptr_type, tmp979) ;
ATSlocal (ats_ptr_type, tmp980) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn:
tmp973 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_node) ;
do {
/* branch: __ats_lab_191 */
__ats_lab_191_0:
if (((ats_sum_ptr_type)tmp973)->tag != 10) { goto __ats_lab_192_0 ; }
__ats_lab_191_1:
if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_193_1 ; }
__ats_lab_191_2:
tmp963 = s1exp_trdn_lam_100 (arg0, arg1) ;
break ;

/* branch: __ats_lab_192 */
__ats_lab_192_0:
if (((ats_sum_ptr_type)tmp973)->tag != 7) { goto __ats_lab_193_0 ; }
__ats_lab_192_1:
__ats_lab_192_2:
tmp974 = ats_caselptrlab_mac(anairiats_sum_9, tmp973, atslab_0) ;
tmp975 = ats_caselptrlab_mac(anairiats_sum_9, tmp973, atslab_1) ;
tmp976 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ;
if (tmp976) {
tmp977 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp975, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_vt0ype) ;
tmp963 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_extype_srt (arg1, tmp974, ats_castfn_mac(ats_ptr_type, tmp977)) ;
} else {
/* tmp978 = */ auxerr_104 (arg0, arg1) ;
tmp963 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (arg1) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_193 */
__ats_lab_193_0:
__ats_lab_193_1:
__ats_lab_193_2:
tmp979 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (arg0) ;
tmp980 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ;
tmp963 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s2exp_trdn (tmp980, tmp979, arg1) ;
break ;
} while (0) ;
return (tmp963) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 53880(line=2303, offs=16) -- 53914(line=2303, offs=50)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_int (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp981) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_int:
tmp981 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ;
return (tmp981) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_int] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 53941(line=2305, offs=17) -- 53976(line=2305, offs=52)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_addr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp982) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_addr:
tmp982 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_addr) ;
return (tmp982) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_addr] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 54003(line=2307, offs=17) -- 54038(line=2307, offs=52)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_bool (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp983) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_bool:
tmp983 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ;
return (tmp983) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_bool] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 54066(line=2309, offs=18) -- 54102(line=2309, offs=54)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_t0ype (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp984) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_t0ype:
tmp984 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ;
return (tmp984) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_t0ype] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 54131(line=2311, offs=19) -- 54168(line=2311, offs=56)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp985) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype:
tmp985 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype) ;
return (tmp985) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 54219(line=2316, offs=19) -- 54816(line=2340, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp986) ;
ATSlocal (ats_ptr_type, tmp987) ;
ATSlocal (ats_ptr_type, tmp988) ;
ATSlocal (ats_ptr_type, tmp989) ;
ATSlocal (ats_bool_type, tmp990) ;
// ATSlocal_void (tmp991) ;
ATSlocal (ats_ptr_type, tmp992) ;
// ATSlocal_void (tmp993) ;
// ATSlocal_void (tmp994) ;
// ATSlocal_void (tmp995) ;
// ATSlocal_void (tmp996) ;
// ATSlocal_void (tmp997) ;
// ATSlocal_void (tmp998) ;
// ATSlocal_void (tmp999) ;
ATSlocal (ats_ptr_type, tmp1000) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred:
tmp987 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup (arg0) ;
tmp989 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp987), atslab_s2exp_srt) ;
tmp988 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_delink (tmp989) ;
tmp990 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred (tmp988) ;
if (tmp990) {
tmp986 = tmp987 ;
} else {
tmp992 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ;
/* tmp991 = */ prerr_error2_loc_02168_ (tmp992) ;
/* tmp993 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trdn_impred")) ;
/* tmp994 = */ atspre_prerr_string (ATSstrcst(": the static expression needs to be impredicative")) ;
/* tmp995 = */ atspre_prerr_string (ATSstrcst(" but is assigned the sort [")) ;
/* tmp996 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (tmp988) ;
/* tmp997 = */ atspre_prerr_string (ATSstrcst("].")) ;
/* tmp998 = */ atspre_prerr_newline () ;
tmp1000 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp1000)->tag = 6 ;
ats_selptrset_mac(anairiats_sum_5, tmp1000, atslab_0, arg0) ;
/* tmp999 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp1000) ;
tmp986 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp988) ;
} /* end of [if] */
return (tmp986) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 54899(line=2346, offs=3) -- 54948(line=2346, offs=52)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_int (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1001) ;
ATSlocal (ats_ptr_type, tmp1002) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_int:
tmp1002 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_int) ;
tmp1001 = ats_castfn_mac(ats_ptr_type, tmp1002) ;
return (tmp1001) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_int] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 55012(line=2351, offs=3) -- 55062(line=2351, offs=53)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_addr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1003) ;
ATSlocal (ats_ptr_type, tmp1004) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_addr:
tmp1004 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_addr) ;
tmp1003 = ats_castfn_mac(ats_ptr_type, tmp1004) ;
return (tmp1003) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_addr] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 55127(line=2356, offs=3) -- 55177(line=2356, offs=53)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_bool (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1005) ;
ATSlocal (ats_ptr_type, tmp1006) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_bool:
tmp1006 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_bool) ;
tmp1005 = ats_castfn_mac(ats_ptr_type, tmp1006) ;
return (tmp1005) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_bool] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 55244(line=2361, offs=3) -- 55296(line=2361, offs=55)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_vt0ype (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1007) ;
ATSlocal (ats_ptr_type, tmp1008) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_vt0ype:
tmp1008 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_vt0ype) ;
tmp1007 = ats_castfn_mac(ats_ptr_type, tmp1008) ;
return (tmp1007) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_vt0ype] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 55365(line=2366, offs=3) -- 55417(line=2366, offs=55)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_impred (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1009) ;
ATSlocal (ats_ptr_type, tmp1010) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_impred:
tmp1010 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_impred) ;
tmp1009 = ats_castfn_mac(ats_ptr_type, tmp1010) ;
return (tmp1009) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_impred] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 55504(line=2373, offs=3) -- 56073(line=2394, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_err (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1011) ;
ATSlocal (ats_ptr_type, tmp1012) ;
ATSlocal (ats_ptr_type, tmp1013) ;
ATSlocal (ats_ptr_type, tmp1014) ;
ATSlocal (ats_ptr_type, tmp1015) ;
ATSlocal (ats_ptr_type, tmp1016) ;
ATSlocal (ats_ptr_type, tmp1017) ;
ATSlocal (ats_int_type, tmp1018) ;
ATSlocal (ats_int_type, tmp1020) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_err:
do {
/* branch: __ats_lab_194 */
__ats_lab_194_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_197_0 ; }
__ats_lab_194_1:
tmp1012 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp1013 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
do {
/* branch: __ats_lab_195 */
__ats_lab_195_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_196_0 ; }
__ats_lab_195_1:
tmp1014 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ;
tmp1015 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
tmp1016 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp1012, tmp1014) ;
tmp1017 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_err (tmp1013, tmp1015, arg2) ;
tmp1011 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp1011, atslab_0, tmp1016) ;
ats_selptrset_mac(anairiats_sum_6, tmp1011, atslab_1, tmp1017) ;
break ;

/* branch: __ats_lab_196 */
__ats_lab_196_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_196_1:
tmp1018 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ;
ats_ptrget_mac(ats_int_type, arg2) = tmp1018 ;
tmp1011 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_197 */
__ats_lab_197_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_197_1:
do {
/* branch: __ats_lab_198 */
__ats_lab_198_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_199_0 ; }
__ats_lab_198_1:
tmp1020 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ;
ats_ptrget_mac(ats_int_type, arg2) = tmp1020 ;
break ;

/* branch: __ats_lab_199 */
__ats_lab_199_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_199_1:
break ;
} while (0) ;
tmp1011 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp1011) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_err] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 56160(line=2400, offs=3) -- 56667(line=2420, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_arg_impred (ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1021) ;
ATSlocal (ats_ptr_type, tmp1022) ;
ATSlocal (ats_ptr_type, tmp1023) ;
ATSlocal (ats_ptr_type, tmp1024) ;
ATSlocal (ats_bool_type, tmp1025) ;
// ATSlocal_void (tmp1026) ;
ATSlocal (ats_bool_type, tmp1027) ;
// ATSlocal_void (tmp1028) ;
ATSlocal (ats_ptr_type, tmp1029) ;
// ATSlocal_void (tmp1030) ;
// ATSlocal_void (tmp1031) ;
// ATSlocal_void (tmp1032) ;
// ATSlocal_void (tmp1033) ;
// ATSlocal_void (tmp1034) ;
// ATSlocal_void (tmp1035) ;
ATSlocal (ats_ptr_type, tmp1036) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_arg_impred:
tmp1022 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trup_arg (arg0, arg1) ;
tmp1023 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp1022), atslab_s2exp_srt) ;
tmp1024 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_delink (tmp1023) ;
tmp1025 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_impred (tmp1024) ;
tmp1027 = atspre_neg_bool (tmp1025) ;
if (tmp1027) {
tmp1029 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_s1exp_loc) ;
/* tmp1028 = */ prerr_error2_loc_02168_ (tmp1029) ;
/* tmp1030 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1exp_trdn_arg_impred")) ;
/* tmp1031 = */ atspre_prerr_string (ATSstrcst(": the static expression needs to be impredicative")) ;
/* tmp1032 = */ atspre_prerr_string (ATSstrcst(" but it is assigned the sort [")) ;
/* tmp1033 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (tmp1024) ;
/* tmp1034 = */ atspre_prerr_string (ATSstrcst("].")) ;
/* tmp1035 = */ atspre_prerr_newline () ;
tmp1036 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp1036)->tag = 6 ;
ats_selptrset_mac(anairiats_sum_5, tmp1036, atslab_0, arg0) ;
/* tmp1026 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp1036) ;
} else {
/* empty */
} /* end of [if] */
tmp1021 = tmp1022 ;
return (tmp1021) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_arg_impred] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 56747(line=2425, offs=14) -- 56933(line=2432, offs=30)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__witht1ype_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1037) ;
ATSlocal (ats_int_type, tmp1038) ;
ATSlocal (ats_ptr_type, tmp1039) ;
ATSlocal (ats_ptr_type, tmp1040) ;
ATSlocal (ats_ptr_type, tmp1041) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__witht1ype_tr:
do {
/* branch: __ats_lab_200 */
__ats_lab_200_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_201_0 ; }
__ats_lab_200_1:
tmp1038 = ats_caselptrlab_mac(anairiats_sum_29, arg0, atslab_0) ;
tmp1039 = ats_caselptrlab_mac(anairiats_sum_29, arg0, atslab_1) ;
tmp1040 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_impred (tmp1038) ;
tmp1041 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp1039, tmp1040) ;
tmp1037 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp1037, atslab_0, tmp1041) ;
break ;

/* branch: __ats_lab_201 */
__ats_lab_201_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_201_1:
tmp1037 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp1037) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__witht1ype_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 57113(line=2446, offs=5) -- 57463(line=2459, offs=22)
*/
ATSstaticdec()
ats_void_type
auxsrt_121 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
// ATSlocal_void (tmp1044) ;
ATSlocal (ats_ptr_type, tmp1045) ;
ATSlocal (ats_ptr_type, tmp1046) ;
ATSlocal (ats_ptr_type, tmp1047) ;
ATSlocal (ats_ptr_type, tmp1048) ;
// ATSlocal_void (tmp1049) ;
ATSlocal (ats_ptr_type, tmp1050) ;

__ats_lab_auxsrt_121:
do {
/* branch: __ats_lab_202 */
__ats_lab_202_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_203_0 ; }
__ats_lab_202_1:
tmp1045 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ;
tmp1046 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
tmp1048 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp1045), atslab_i0de_sym) ;
tmp1047 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp1048, arg0) ;
/* tmp1049 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svar (tmp1047) ;
tmp1050 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp1050, atslab_0, tmp1047) ;
ats_selptrset_mac(anairiats_sum_6, tmp1050, atslab_1, ats_ptrget_mac(ats_ptr_type, arg2)) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp1050 ;
arg0 = arg0 ;
arg1 = tmp1046 ;
arg2 = arg2 ;
goto __ats_lab_auxsrt_121 ; // tail call
break ;

/* branch: __ats_lab_203 */
__ats_lab_203_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_203_1:
break ;
} while (0) ;
return /* (tmp1044) */ ;
} /* end of [auxsrt_121] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 57493(line=2462, offs=5) -- 57821(line=2474, offs=22)
*/
ATSstaticdec()
ats_void_type
auxsub1_122 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) {
/* local vardec */
// ATSlocal_void (tmp1051) ;
ATSlocal (ats_ptr_type, tmp1052) ;
ATSlocal (ats_ptr_type, tmp1053) ;
ATSlocal (ats_ptr_type, tmp1054) ;
ATSlocal (ats_ptr_type, tmp1055) ;

__ats_lab_auxsub1_122:
do {
/* branch: __ats_lab_204 */
__ats_lab_204_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_205_0 ; }
__ats_lab_204_1:
tmp1052 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ;
tmp1053 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
tmp1054 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_alpha (arg0, arg2, tmp1052) ;
tmp1055 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp1055, atslab_0, tmp1054) ;
ats_selptrset_mac(anairiats_sum_6, tmp1055, atslab_1, ats_ptrget_mac(ats_ptr_type, arg3)) ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp1055 ;
arg0 = arg0 ;
arg1 = tmp1053 ;
arg2 = arg2 ;
arg3 = arg3 ;
goto __ats_lab_auxsub1_122 ; // tail call
break ;

/* branch: __ats_lab_205 */
__ats_lab_205_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_205_1:
break ;
} while (0) ;
return /* (tmp1051) */ ;
} /* end of [auxsub1_122] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 57852(line=2477, offs=5) -- 58351(line=2495, offs=22)
*/
ATSstaticdec()
ats_void_type
auxsub2_123 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ref_type arg5) {
/* local vardec */
// ATSlocal_void (tmp1056) ;
ATSlocal (ats_ptr_type, tmp1057) ;
ATSlocal (ats_ptr_type, tmp1058) ;
ATSlocal (ats_ptr_type, tmp1059) ;
ATSlocal (ats_ptr_type, tmp1060) ;
// ATSlocal_void (tmp1061) ;
ATSlocal (ats_ptr_type, tmp1062) ;
// ATSlocal_void (tmp1063) ;

__ats_lab_auxsub2_123:
do {
/* branch: __ats_lab_206 */
__ats_lab_206_0:
if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_207_0 ; }
__ats_lab_206_1:
tmp1057 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ;
tmp1058 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_1) ;
tmp1060 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_3, tmp1057), atslab_i0de_sym) ;
tmp1059 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp1060, arg1) ;
/* tmp1061 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svar (tmp1059) ;
tmp1062 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp1062, atslab_0, tmp1059) ;
ats_selptrset_mac(anairiats_sum_6, tmp1062, atslab_1, ats_ptrget_mac(ats_ptr_type, arg4)) ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp1062 ;
/* tmp1063 = */ auxsub1_122 (arg0, arg2, tmp1059, arg5) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp1058 ;
arg4 = arg4 ;
arg5 = arg5 ;
goto __ats_lab_auxsub2_123 ; // tail call
break ;

/* branch: __ats_lab_207 */
__ats_lab_207_0:
// if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_207_1:
break ;
} while (0) ;
return /* (tmp1056) */ ;
} /* end of [auxsub2_123] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 57025(line=2440, offs=5) -- 59311(line=2533, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_120 (ats_ptr_type arg0, ats_ref_type arg1, ats_ref_type arg2) {
/* local vardec */
// ATSlocal_void (tmp1043) ;
ATSlocal (ats_ptr_type, tmp1064) ;
ATSlocal (ats_ptr_type, tmp1065) ;
ATSlocal (ats_ptr_type, tmp1066) ;
ATSlocal (ats_ptr_type, tmp1067) ;
ATSlocal (ats_ptr_type, tmp1068) ;
ATSlocal (ats_ptr_type, tmp1069) ;
ATSlocal (ats_ptr_type, tmp1070) ;
ATSlocal (ats_ptr_type, tmp1071) ;
ATSlocal (ats_ptr_type, tmp1072) ;
ATSlocal (ats_ptr_type, tmp1073) ;
// ATSlocal_void (tmp1074) ;
ATSlocal (ats_ptr_type, tmp1075) ;
ATSlocal (ats_ptr_type, tmp1076) ;
ATSlocal (ats_ptr_type, tmp1077) ;
// ATSlocal_void (tmp1078) ;
ATSlocal (ats_ptr_type, tmp1079) ;
// ATSlocal_void (tmp1080) ;

__ats_lab_loop_120:
do {
/* branch: __ats_lab_208 */
__ats_lab_208_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_214_0 ; }
__ats_lab_208_1:
tmp1064 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp1065 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp1066 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_30, tmp1064), atslab_s1qua_node) ;
do {
/* branch: __ats_lab_209 */
__ats_lab_209_0:
if (((ats_sum_ptr_type)tmp1066)->tag != 0) { goto __ats_lab_210_0 ; }
__ats_lab_209_1:
tmp1067 = ats_caselptrlab_mac(anairiats_sum_5, tmp1066, atslab_0) ;
tmp1068 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn_bool (tmp1067) ;
tmp1069 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp1069, atslab_0, tmp1068) ;
ats_selptrset_mac(anairiats_sum_6, tmp1069, atslab_1, ats_ptrget_mac(ats_ptr_type, arg2)) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp1069 ;
arg0 = tmp1065 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab_loop_120 ; // tail call
break ;

/* branch: __ats_lab_210 */
__ats_lab_210_0:
// if (((ats_sum_ptr_type)tmp1066)->tag != 1) { ats_deadcode_failure_handle () ; }
__ats_lab_210_1:
tmp1070 = ats_caselptrlab_mac(anairiats_sum_9, tmp1066, atslab_0) ;
tmp1071 = ats_caselptrlab_mac(anairiats_sum_9, tmp1066, atslab_1) ;
tmp1072 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtext_tr (tmp1071) ;
do {
/* branch: __ats_lab_211 */
__ats_lab_211_0:
if (((ats_sum_ptr_type)tmp1072)->tag != 0) { goto __ats_lab_212_0 ; }
__ats_lab_211_1:
tmp1073 = ats_caselptrlab_mac(anairiats_sum_5, tmp1072, atslab_0) ;
/* tmp1074 = */ auxsrt_121 (tmp1073, tmp1070, arg1) ;
arg0 = tmp1065 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab_loop_120 ; // tail call
break ;

/* branch: __ats_lab_212 */
__ats_lab_212_0:
if (((ats_sum_ptr_type)tmp1072)->tag != 1) { goto __ats_lab_213_0 ; }
__ats_lab_212_1:
tmp1075 = ats_caselptrlab_mac(anairiats_sum_17, tmp1072, atslab_0) ;
tmp1076 = ats_caselptrlab_mac(anairiats_sum_17, tmp1072, atslab_1) ;
tmp1077 = ats_caselptrlab_mac(anairiats_sum_17, tmp1072, atslab_2) ;
/* tmp1078 = */ auxsub2_123 (tmp1075, tmp1076, tmp1077, tmp1070, arg1, arg2) ;
arg0 = tmp1065 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab_loop_120 ; // tail call
break ;

/* branch: __ats_lab_213 */
__ats_lab_213_0:
// if (((ats_sum_ptr_type)tmp1072)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_213_1:
tmp1079 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ;
/* tmp1080 = */ auxsrt_121 (tmp1079, tmp1070, arg1) ;
arg0 = tmp1065 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab_loop_120 ; // tail call
break ;
} while (0) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_214 */
__ats_lab_214_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_214_1:
break ;
} while (0) ;
return /* (tmp1043) */ ;
} /* end of [loop_120] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28)
*/
ATSstaticdec()
ats_ptr_type
revapp_126 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1087) ;
ATSlocal (ats_ptr_type, tmp1088) ;
ATSlocal (ats_ptr_type, tmp1089) ;
ATSlocal (ats_ptr_type, tmp1090) ;

__ats_lab_revapp_126:
do {
/* branch: __ats_lab_215 */
__ats_lab_215_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_216_0 ; }
__ats_lab_215_1:
tmp1088 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp1089 = ats_ptrget_mac(ats_ptr_type, tmp1088) ;
ats_ptrget_mac(ats_ptr_type, tmp1088) = arg1 ;
tmp1090 = arg0 ;
arg0 = tmp1089 ;
arg1 = tmp1090 ;
goto __ats_lab_revapp_126 ; // tail call
break ;

/* branch: __ats_lab_216 */
__ats_lab_216_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_216_1:
tmp1087 = arg1 ;
break ;
} while (0) ;
return (tmp1087) ;
} /* end of [revapp_126] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1086) ;

__ats_lab_list_vt_reverse_append_01507_ats_ptr_type:
tmp1086 = revapp_126 (arg0, arg1) ;
return (tmp1086) ;
} /* end of [list_vt_reverse_append_01507_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46)
*/
ATSstaticdec()
ats_ptr_type
list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1085) ;
ATSlocal (ats_ptr_type, tmp1091) ;

__ats_lab_list_vt_reverse_01506_ats_ptr_type:
tmp1091 = (ats_sum_ptr_type)0 ;
tmp1085 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp1091) ;
return (tmp1085) ;
} /* end of [list_vt_reverse_01506_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 57005(line=2438, offs=13) -- 59590(line=2549, offs=4)
*/
ATSglobaldec()
anairiats_rec_1
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (anairiats_rec_1, tmp1042) ;
ATSlocal (ats_ptr_type, tmp1081) ;
ATSlocal (ats_ptr_type, tmp1082) ;
// ATSlocal_void (tmp1083) ;
ATSlocal (ats_ptr_type, tmp1084) ;
ATSlocal (ats_ptr_type, tmp1092) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr:
/* ats_ptr_type tmp1081 ; */
tmp1081 = (ats_sum_ptr_type)0 ;
/* ats_ptr_type tmp1082 ; */
tmp1082 = (ats_sum_ptr_type)0 ;
/* tmp1083 = */ loop_120 (arg0, (&tmp1081), (&tmp1082)) ;
tmp1084 = list_vt_reverse_01506_ats_ptr_type (tmp1081) ;
tmp1092 = list_vt_reverse_01506_ats_ptr_type (tmp1082) ;
tmp1042 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make (ats_castfn_mac(ats_ptr_type, tmp1084), ats_castfn_mac(ats_ptr_type, tmp1092)) ;
return (tmp1042) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 59657(line=2554, offs=11) -- 59694(line=2554, offs=48)
*/
ATSglobaldec()
anairiats_rec_1
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (anairiats_rec_1, tmp1093) ;
ATSlocal (ats_ptr_type, tmp1094) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr:
tmp1094 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_31, arg0), atslab_q1marg_arg) ;
tmp1093 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr (tmp1094) ;
return (tmp1093) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50443(line=1783, offs=17) -- 50505(line=1785, offs=4)
*/
ATSstaticdec()
ats_bool_type
list_is_nil_01294_ (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp1099) ;

__ats_lab_list_is_nil_01294_:
do {
/* branch: __ats_lab_217 */
__ats_lab_217_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_218_0 ; }
__ats_lab_217_1:
tmp1099 = ats_false_bool ;
break ;

/* branch: __ats_lab_218 */
__ats_lab_218_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_218_1:
tmp1099 = ats_true_bool ;
break ;
} while (0) ;
return (tmp1099) ;
} /* end of [list_is_nil_01294_] */

/*
// /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2)
*/
ATSstaticdec()
ats_void_type
prerr_error3_loc_02170_ (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp1103) ;
// ATSlocal_void (tmp1104) ;

__ats_lab_prerr_error3_loc_02170_:
/* tmp1104 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ;
/* tmp1103 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ;
return /* (tmp1103) */ ;
} /* end of [prerr_error3_loc_02170_] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 59721(line=2557, offs=15) -- 60166(line=2583, offs=4)
*/
ATSglobaldec()
anairiats_rec_1
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr_dec (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (anairiats_rec_1, tmp1095) ;
ATSlocal (anairiats_rec_1, tmp1096) ;
ATSlocal (ats_ptr_type, tmp1097) ;
ATSlocal (ats_bool_type, tmp1098) ;
ATSlocal (ats_ptr_type, tmp1100) ;
ATSlocal (ats_ptr_type, tmp1101) ;
// ATSlocal_void (tmp1102) ;
// ATSlocal_void (tmp1105) ;
// ATSlocal_void (tmp1106) ;
// ATSlocal_void (tmp1107) ;
// ATSlocal_void (tmp1108) ;
ATSlocal (ats_ptr_type, tmp1109) ;
ATSlocal (ats_ptr_type, tmp1110) ;
ATSlocal (ats_ptr_type, tmp1111) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr_dec:
tmp1097 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_31, arg0), atslab_q1marg_arg) ;
tmp1096 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1qualst_tr (tmp1097) ;
tmp1100 = ats_select_mac(tmp1096, atslab_s2qua_sps) ;
tmp1098 = list_is_nil_01294_ (tmp1100) ;
if (tmp1098) {
tmp1095 = tmp1096 ;
} else {
tmp1101 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_31, arg0), atslab_q1marg_loc) ;
/* tmp1102 = */ prerr_error3_loc_02170_ (tmp1101) ;
/* tmp1105 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("q1marg_tr_dec")) ;
/* tmp1106 = */ atspre_prerr_string (ATSstrcst(": template arguments cannot be constrained.")) ;
/* tmp1107 = */ atspre_prerr_newline () ;
tmp1109 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp1109)->tag = 16 ;
ats_selptrset_mac(anairiats_sum_5, tmp1109, atslab_0, arg0) ;
/* tmp1108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp1109) ;
tmp1110 = ats_select_mac(tmp1096, atslab_s2qua_svs) ;
tmp1111 = (ats_sum_ptr_type)0 ;
tmp1095 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make (tmp1110, tmp1111) ;
} /* end of [if] */
return (tmp1095) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr_dec] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 60379(line=2594, offs=5) -- 60756(line=2610, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_132 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp1113) ;
// ATSlocal_void (tmp1114) ;
ATSlocal (ats_ptr_type, tmp1115) ;
// ATSlocal_void (tmp1116) ;
// ATSlocal_void (tmp1117) ;
// ATSlocal_void (tmp1118) ;
// ATSlocal_void (tmp1119) ;
// ATSlocal_void (tmp1120) ;
// ATSlocal_void (tmp1121) ;
ATSlocal (ats_ptr_type, tmp1122) ;

__ats_lab_auxerr_132:
tmp1115 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, arg0), atslab_s1rt_loc) ;
/* tmp1114 = */ prerr_error2_loc_02168_ (tmp1115) ;
/* tmp1116 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans2_staexp.dats"), ATSstrcst("s1rtext_tr")) ;
/* tmp1117 = */ atspre_prerr_string (ATSstrcst(": the identifier [")) ;
/* tmp1118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__prerr_s0rtq (arg1) ;
/* tmp1119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg2) ;
/* tmp1120 = */ atspre_prerr_string (ATSstrcst("] refers to an unrecognized sort.")) ;
/* tmp1121 = */ atspre_prerr_newline () ;
tmp1122 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp1122)->tag = 17 ;
ats_selptrset_mac(anairiats_sum_5, tmp1122, atslab_0, env0) ;
/* tmp1113 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp1122) ;
return /* (tmp1113) */ ;
} /* end of [auxerr_132] */

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

ats_void_type
auxerr_132_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
auxerr_132 (((auxerr_132_closure_type*)cloptr)->closure_env_0, arg0, arg1, arg2) ; return ;
} /* end of function */

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

ats_clo_ptr_type
auxerr_132_closure_make (ats_ptr_type env0) {
auxerr_132_closure_type *p_clo = ATS_MALLOC(sizeof(auxerr_132_closure_type)) ;
auxerr_132_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7739(line=275, offs=5) -- 8080(line=290, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_134 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
// ATSlocal_void (tmp1150) ;
ATSlocal (ats_ptr_type, tmp1151) ;
ATSlocal (ats_ptr_type, tmp1152) ;
ATSlocal (ats_ptr_type, tmp1153) ;
ATSlocal (ats_ptr_type, tmp1154) ;

__ats_lab_loop_134:
do {
/* branch: __ats_lab_230 */
__ats_lab_230_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_231_0 ; }
__ats_lab_230_1:
tmp1151 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp1152 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp1153 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp1153, atslab_0, tmp1151) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp1153 ;
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp1154 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
arg0 = tmp1152 ;
arg1 = arg1 ;
arg2 = tmp1154 ;
goto __ats_lab_loop_134 ; // tail call
break ;

/* branch: __ats_lab_231 */
__ats_lab_231_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_231_1:
ats_ptrget_mac(ats_ptr_type, arg2) = arg1 ;
break ;
} while (0) ;
return /* (tmp1150) */ ;
} /* end of [loop_134] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7684(line=272, offs=13) -- 8222(line=297, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1148) ;
ATSlocal (ats_ptr_type, tmp1149) ;
// ATSlocal_void (tmp1155) ;

__ats_lab_list_append_01312_ats_ptr_type:
/* ats_ptr_type tmp1149 ; */
/* tmp1155 = */ loop_134 (arg0, arg1, (&tmp1149)) ;
tmp1148 = tmp1149 ;
return (tmp1148) ;
} /* end of [list_append_01312_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 60236(line=2588, offs=12) -- 62002(line=2654, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtext_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1112) ;
ATSlocal (ats_ptr_type, tmp1123) ;
ATSlocal (ats_ptr_type, tmp1124) ;
ATSlocal (ats_ptr_type, tmp1125) ;
ATSlocal (ats_ptr_type, tmp1126) ;
ATSlocal (ats_ptr_type, tmp1127) ;
ATSlocal (ats_ptr_type, tmp1128) ;
ATSlocal (ats_ptr_type, tmp1129) ;
// ATSlocal_void (tmp1130) ;
ATSlocal (ats_ptr_type, tmp1131) ;
ATSlocal (ats_ptr_type, tmp1132) ;
ATSlocal (ats_ptr_type, tmp1133) ;
ATSlocal (ats_ptr_type, tmp1134) ;
ATSlocal (ats_ptr_type, tmp1135) ;
ATSlocal (ats_ptr_type, tmp1136) ;
ATSlocal (ats_ptr_type, tmp1137) ;
ATSlocal (ats_ptr_type, tmp1138) ;
ATSlocal (ats_ptr_type, tmp1139) ;
// ATSlocal_void (tmp1140) ;
// ATSlocal_void (tmp1141) ;
// ATSlocal_void (tmp1142) ;
ATSlocal (ats_ptr_type, tmp1143) ;
// ATSlocal_void (tmp1144) ;
ATSlocal (ats_ptr_type, tmp1145) ;
ATSlocal (ats_ptr_type, tmp1146) ;
ATSlocal (ats_ptr_type, tmp1147) ;
ATSlocal (ats_ptr_type, tmp1156) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtext_tr:
tmp1123 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_33, arg0), atslab_s1rtext_node) ;
do {
/* branch: __ats_lab_219 */
__ats_lab_219_0:
if (((ats_sum_ptr_type)tmp1123)->tag != 0) { goto __ats_lab_224_0 ; }
__ats_lab_219_1:
tmp1124 = ats_caselptrlab_mac(anairiats_sum_5, tmp1123, atslab_0) ;
tmp1125 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_32, tmp1124), atslab_s1rt_node) ;
do {
/* branch: __ats_lab_220 */
__ats_lab_220_0:
if (((ats_sum_ptr_type)tmp1125)->tag != 2) { goto __ats_lab_223_0 ; }
__ats_lab_220_1:
tmp1126 = ats_caselptrlab_mac(anairiats_sum_9, tmp1125, atslab_0) ;
tmp1127 = ats_caselptrlab_mac(anairiats_sum_9, tmp1125, atslab_1) ;
tmp1128 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2rtenv_find_qua (tmp1126, tmp1127) ;
do {
/* branch: __ats_lab_221 */
__ats_lab_221_0:
if (tmp1128 == (ats_sum_ptr_type)0) { goto __ats_lab_222_0 ; }
__ats_lab_221_1:
tmp1129 = ats_caselptrlab_mac(anairiats_sum_4, tmp1128, atslab_0) ;
ATS_FREE(tmp1128) ;
tmp1112 = tmp1129 ;
break ;

/* branch: __ats_lab_222 */
__ats_lab_222_0:
// if (tmp1128 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_222_1:
/* tmp1130 = */ auxerr_132 (arg0, tmp1124, tmp1126, tmp1127) ;
tmp1112 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2TEerr_2) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_223 */
__ats_lab_223_0:
__ats_lab_223_1:
tmp1131 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rt_tr (tmp1124) ;
tmp1112 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp1112)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_5, tmp1112, atslab_0, tmp1131) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_224 */
__ats_lab_224_0:
// if (((ats_sum_ptr_type)tmp1123)->tag != 1) { ats_deadcode_failure_handle () ; }
__ats_lab_224_1:
tmp1132 = ats_caselptrlab_mac(anairiats_sum_17, tmp1123, atslab_0) ;
tmp1133 = ats_caselptrlab_mac(anairiats_sum_17, tmp1123, atslab_1) ;
tmp1134 = ats_caselptrlab_mac(anairiats_sum_17, tmp1123, atslab_2) ;
tmp1135 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtext_tr (tmp1133) ;
do {
/* branch: __ats_lab_225 */
__ats_lab_225_0:
if (((ats_sum_ptr_type)tmp1135)->tag != 0) { goto __ats_lab_226_0 ; }
__ats_lab_225_1:
tmp1137 = ats_caselptrlab_mac(anairiats_sum_5, tmp1135, atslab_0) ;
tmp1136 = tmp1137 ;
break ;

/* branch: __ats_lab_226 */
__ats_lab_226_0:
if (((ats_sum_ptr_type)tmp1135)->tag != 1) { goto __ats_lab_227_0 ; }
__ats_lab_226_1:
tmp1138 = ats_caselptrlab_mac(anairiats_sum_17, tmp1135, atslab_1) ;
tmp1136 = tmp1138 ;
break ;

/* branch: __ats_lab_227 */
__ats_lab_227_0:
// if (((ats_sum_ptr_type)tmp1135)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_227_1:
tmp1136 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_err () ;
break ;
} while (0) ;
tmp1139 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp1132, tmp1136) ;
/* tmp1140 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ;
/* tmp1141 = ats_selsin_mac(tmp1140, atslab_1) */ ;
/* tmp1142 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svar (tmp1139) ;
tmp1143 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_bool (tmp1134) ;
/* tmp1144 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ;
do {
/* branch: __ats_lab_228 */
__ats_lab_228_0:
if (((ats_sum_ptr_type)tmp1135)->tag != 0) { goto __ats_lab_229_0 ; }
__ats_lab_228_1:
tmp1145 = tmp1143 ;
break ;

/* branch: __ats_lab_229 */
__ats_lab_229_0:
if (((ats_sum_ptr_type)tmp1135)->tag != 1) { goto __ats_lab_232_0 ; }
__ats_lab_229_1:
tmp1146 = ats_caselptrlab_mac(anairiats_sum_17, tmp1135, atslab_0) ;
tmp1147 = ats_caselptrlab_mac(anairiats_sum_17, tmp1135, atslab_2) ;
tmp1156 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_alpha (tmp1146, tmp1139, tmp1147) ;
tmp1145 = list_append_01312_ats_ptr_type (tmp1143, tmp1156) ;
break ;

/* branch: __ats_lab_232 */
__ats_lab_232_0:
// if (((ats_sum_ptr_type)tmp1135)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_232_1:
tmp1145 = tmp1143 ;
break ;
} while (0) ;
tmp1112 = ATS_MALLOC(sizeof(anairiats_sum_17)) ;
((ats_sum_ptr_type)tmp1112)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_17, tmp1112, atslab_0, tmp1139) ;
ats_selptrset_mac(anairiats_sum_17, tmp1112, atslab_1, tmp1136) ;
ats_selptrset_mac(anairiats_sum_17, tmp1112, atslab_2, tmp1145) ;
break ;
} while (0) ;
return (tmp1112) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1rtext_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 62070(line=2659, offs=13) -- 62271(line=2665, offs=8)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1vararg_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1157) ;
ATSlocal (ats_ptr_type, tmp1158) ;
ATSlocal (ats_ptr_type, tmp1159) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1vararg_tr:
do {
/* branch: __ats_lab_233 */
__ats_lab_233_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_234_0 ; }
__ats_lab_233_1:
tmp1157 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2VARARGone_0) ;
break ;

/* branch: __ats_lab_234 */
__ats_lab_234_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_235_0 ; }
__ats_lab_234_1:
tmp1157 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2VARARGall_1) ;
break ;

/* branch: __ats_lab_235 */
__ats_lab_235_0:
// if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_235_1:
tmp1158 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ;
tmp1159 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arglst_trup (tmp1158) ;
tmp1157 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp1157)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_5, tmp1157, atslab_0, tmp1159) ;
break ;
} while (0) ;
return (tmp1157) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1vararg_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 62343(line=2669, offs=13) -- 62593(line=2680, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparg_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1160) ;
ATSlocal (ats_ptr_type, tmp1161) ;
ATSlocal (ats_ptr_type, tmp1162) ;
ATSlocal (ats_ptr_type, tmp1163) ;
ATSlocal (ats_ptr_type, tmp1164) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparg_tr:
tmp1161 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_34, arg0), atslab_s1exparg_loc) ;
tmp1162 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_34, arg0), atslab_s1exparg_node) ;
do {
/* branch: __ats_lab_236 */
__ats_lab_236_0:
if (((ats_sum_ptr_type)tmp1162)->tag != 0) { goto __ats_lab_237_0 ; }
__ats_lab_236_1:
tmp1160 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_one (tmp1161) ;
break ;

/* branch: __ats_lab_237 */
__ats_lab_237_0:
if (((ats_sum_ptr_type)tmp1162)->tag != 1) { goto __ats_lab_238_0 ; }
__ats_lab_237_1:
tmp1160 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_all (tmp1161) ;
break ;

/* branch: __ats_lab_238 */
__ats_lab_238_0:
// if (((ats_sum_ptr_type)tmp1162)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_238_1:
tmp1163 = ats_caselptrlab_mac(anairiats_sum_5, tmp1162, atslab_0) ;
tmp1164 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup (tmp1163) ;
tmp1160 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exparg_seq (tmp1161, tmp1164) ;
break ;
} while (0) ;
return (tmp1160) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparg_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 62644(line=2683, offs=16) -- 62711(line=2685, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparglst_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1165) ;
ATSlocal (ats_ptr_type, tmp1166) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparglst_tr:
tmp1166 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparg_tr) ;
tmp1165 = ats_castfn_mac(ats_ptr_type, tmp1166) ;
return (tmp1165) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exparglst_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 62783(line=2690, offs=13) -- 62916(line=2696, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarg_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1167) ;
ATSlocal (ats_ptr_type, tmp1168) ;
ATSlocal (ats_ptr_type, tmp1169) ;
ATSlocal (ats_ptr_type, tmp1170) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarg_tr:
tmp1168 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg0), atslab_t1mpmarg_loc) ;
tmp1169 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_35, arg0), atslab_t1mpmarg_arg) ;
tmp1170 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trup (tmp1169) ;
tmp1167 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make (tmp1168, tmp1170) ;
return (tmp1167) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarg_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 62967(line=2699, offs=16) -- 63034(line=2701, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarglst_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1171) ;
ATSlocal (ats_ptr_type, tmp1172) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarglst_tr:
tmp1172 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarg_tr) ;
tmp1171 = ats_castfn_mac(ats_ptr_type, tmp1172) ;
return (tmp1171) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__t1mpmarglst_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 63160(line=2711, offs=5) -- 63584(line=2735, offs=2)
*/
ATSstaticdec()
ats_void_type
auxerr1_141 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) {
/* local vardec */
// ATSlocal_void (tmp1174) ;
ATSlocal (ats_ptr_type, tmp1175) ;
// ATSlocal_void (tmp1176) ;
// ATSlocal_void (tmp1177) ;
// ATSlocal_void (tmp1178) ;
// ATSlocal_void (tmp1179) ;
ATSlocal (ats_bool_type, tmp1180) ;
// ATSlocal_void (tmp1181) ;
// ATSlocal_void (tmp1182) ;
ATSlocal (ats_bool_type, tmp1183) ;
// ATSlocal_void (tmp1184) ;
ATSlocal (ats_ptr_type, tmp1185) ;

__ats_lab_auxerr1_141:
tmp1175 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg0), atslab_d1atcon_loc) ;
/* tmp1176 = */ prerr_error2_loc_02168_ (tmp1175) ;
/* tmp1177 = */ atspre_prerr_string (ATSstrcst(": the constructor [")) ;
/* tmp1178 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg1) ;
tmp1180 = atspre_lt_int_int (arg2, 0) ;
if (tmp1180) {
/* tmp1181 = */ atspre_prerr_string (ATSstrcst("] is expected to be given more indexes.")) ;
/* tmp1179 = */ atspre_prerr_newline () ;
} else {
/* empty */
} /* end of [if] */
tmp1183 = atspre_gt_int_int (arg2, 0) ;
if (tmp1183) {
/* tmp1184 = */ atspre_prerr_string (ATSstrcst("] is expected to be given fewer indexes.")) ;
/* tmp1182 = */ atspre_prerr_newline () ;
} else {
/* empty */
} /* end of [if] */
tmp1185 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp1185)->tag = 23 ;
ats_selptrset_mac(anairiats_sum_5, tmp1185, atslab_0, arg0) ;
/* tmp1174 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp1185) ;
return /* (tmp1174) */ ;
} /* end of [auxerr1_141] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 63615(line=2737, offs=5) -- 63899(line=2752, offs=2)
*/
ATSstaticdec()
ats_void_type
auxerr2_142 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp1186) ;
ATSlocal (ats_ptr_type, tmp1187) ;
// ATSlocal_void (tmp1188) ;
// ATSlocal_void (tmp1189) ;
// ATSlocal_void (tmp1190) ;
// ATSlocal_void (tmp1191) ;
// ATSlocal_void (tmp1192) ;
ATSlocal (ats_ptr_type, tmp1193) ;

__ats_lab_auxerr2_142:
tmp1187 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg0), atslab_d1atcon_loc) ;
/* tmp1188 = */ prerr_error2_loc_02168_ (tmp1187) ;
/* tmp1189 = */ atspre_prerr_string (ATSstrcst(": the constructor [")) ;
/* tmp1190 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg1) ;
/* tmp1191 = */ atspre_prerr_string (ATSstrcst("] needs some indexes (but is given none).")) ;
/* tmp1192 = */ atspre_prerr_newline () ;
tmp1193 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp1193)->tag = 23 ;
ats_selptrset_mac(anairiats_sum_5, tmp1193, atslab_0, arg0) ;
/* tmp1186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp1193) ;
return /* (tmp1186) */ ;
} /* end of [auxerr2_142] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 63930(line=2754, offs=5) -- 64193(line=2763, offs=2)
*/
ATSstaticdec()
ats_void_type
auxerr3_143 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp1194) ;
// ATSlocal_void (tmp1195) ;
ATSlocal (ats_ptr_type, tmp1196) ;
// ATSlocal_void (tmp1197) ;
// ATSlocal_void (tmp1198) ;
// ATSlocal_void (tmp1199) ;
// ATSlocal_void (tmp1200) ;
ATSlocal (ats_ptr_type, tmp1201) ;

__ats_lab_auxerr3_143:
tmp1196 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg0), atslab_d1atcon_loc) ;
/* tmp1195 = */ prerr_error2_loc_02168_ (tmp1196) ;
/* tmp1197 = */ atspre_prerr_string (ATSstrcst(": the constructor [")) ;
/* tmp1198 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__prerr_symbol (arg1) ;
/* tmp1199 = */ atspre_prerr_string (ATSstrcst("] needs no indexes (but is given some).")) ;
/* tmp1200 = */ atspre_prerr_newline () ;
tmp1201 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp1201)->tag = 23 ;
ats_selptrset_mac(anairiats_sum_5, tmp1201, atslab_0, arg0) ;
/* tmp1194 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__the_trans2errlst_add (tmp1201) ;
return /* (tmp1194) */ ;
} /* end of [auxerr3_143] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2457(line=87, offs=7) -- 2708(line=97, offs=6)
*/
ATSstaticdec()
ats_void_type
loop_146 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp1207) ;
ATSlocal (ats_ptr_type, tmp1208) ;
ATSlocal (ats_ptr_type, tmp1209) ;
// ATSlocal_void (tmp1210) ;

__ats_lab_loop_146:
do {
/* branch: __ats_lab_239 */
__ats_lab_239_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_240_0 ; }
__ats_lab_239_1:
tmp1208 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp1209 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
/* tmp1210 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp1208, arg2) ;
arg0 = tmp1209 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab_loop_146 ; // tail call
break ;

/* branch: __ats_lab_240 */
__ats_lab_240_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_240_1:
break ;
} while (0) ;
return /* (tmp1207) */ ;
} /* end of [loop_146] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2381(line=85, offs=20) -- 2757(line=100, offs=4)
*/
ATSstaticdec()
ats_void_type
list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp1206) ;

__ats_lab_list_app_funenv_01300_ats_ptr_type:
/* tmp1206 = */ loop_146 (arg0, arg1, arg2) ;
return /* (tmp1206) */ ;
} /* end of [list_app_funenv_01300_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2821(line=103, offs=22) -- 3078(line=112, offs=4)
*/
ATSstaticdec()
ats_void_type
list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp1205) ;

__ats_lab_list_app_fun_01301_ats_ptr_type:
/* tmp1205 = */ list_app_funenv_01300_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ;
return /* (tmp1205) */ ;
} /* end of [list_app_fun_01301_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_149 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp1214) ;
ATSlocal (ats_ptr_type, tmp1215) ;
ATSlocal (ats_ptr_type, tmp1216) ;
ATSlocal (anairiats_rec_1, tmp1217) ;
ATSlocal (ats_ptr_type, tmp1218) ;
ATSlocal (ats_ptr_type, tmp1219) ;
ATSlocal (ats_ptr_type, tmp1220) ;

__ats_lab_loop_149:
do {
/* branch: __ats_lab_241 */
__ats_lab_241_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_242_0 ; }
__ats_lab_241_1:
tmp1215 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp1216 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp1217 = ((anairiats_rec_1(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp1215, arg3) ;
tmp1218 = ATS_MALLOC(sizeof(anairiats_sum_37)) ;
ats_selptrset_mac(anairiats_sum_37, tmp1218, atslab_0, tmp1217) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp1218 ;
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp1219 = &ats_caselptrlab_mac(anairiats_sum_37, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
arg0 = tmp1216 ;
arg1 = arg1 ;
arg2 = tmp1219 ;
arg3 = arg3 ;
goto __ats_lab_loop_149 ; // tail call
break ;

/* branch: __ats_lab_242 */
__ats_lab_242_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_242_1:
tmp1220 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp1220 ;
break ;
} while (0) ;
return /* (tmp1214) */ ;
} /* end of [loop_149] */

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

__ats_lab_list_map_funenv_01412_ats_ptr_type_anairiats_rec_1:
/* ats_ptr_type tmp1221 ; */
/* tmp1222 = */ loop_149 (arg0, arg1, (&tmp1221), arg2) ;
tmp1213 = tmp1221 ;
return (tmp1213) ;
} /* end of [list_map_funenv_01412_ats_ptr_type_anairiats_rec_1] */

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

__ats_lab_list_map_fun_01413_ats_ptr_type_anairiats_rec_1:
tmp1212 = list_map_funenv_01412_ats_ptr_type_anairiats_rec_1 (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ;
return (tmp1212) ;
} /* end of [list_map_fun_01413_ats_ptr_type_anairiats_rec_1] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 64425(line=2774, offs=7) -- 64691(line=2784, offs=10)
*/
ATSstaticdec()
ats_void_type
aux_150 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp1224) ;
ATSlocal (ats_ptr_type, tmp1225) ;
ATSlocal (ats_ptr_type, tmp1226) ;
// ATSlocal_void (tmp1227) ;
ATSlocal (anairiats_rec_1, tmp1228) ;
ATSlocal (ats_ptr_type, tmp1229) ;
ATSlocal (ats_ptr_type, tmp1230) ;

__ats_lab_aux_150:
do {
/* branch: __ats_lab_243 */
__ats_lab_243_0:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_244_0 ; }
__ats_lab_243_1:
break ;

/* branch: __ats_lab_244 */
__ats_lab_244_0:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_244_1:
tmp1225 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ;
tmp1226 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
/* tmp1227 = */ aux_150 (arg0, tmp1226) ;
tmp1229 = (ats_sum_ptr_type)0 ;
tmp1228 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2qua_make (tmp1225, tmp1229) ;
tmp1230 = ATS_MALLOC(sizeof(anairiats_sum_37)) ;
ats_selptrset_mac(anairiats_sum_37, tmp1230, atslab_0, tmp1228) ;
ats_selptrset_mac(anairiats_sum_37, tmp1230, atslab_1, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp1230 ;
break ;
} while (0) ;
return /* (tmp1224) */ ;
} /* end of [aux_150] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 65270(line=2812, offs=7) -- 65617(line=2824, offs=33)
*/
ATSstaticdec()
ats_ptr_type
aux_151 (ats_int_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_int_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1240) ;
ATSlocal (ats_ptr_type, tmp1241) ;
ATSlocal (ats_ptr_type, tmp1242) ;
ATSlocal (ats_ptr_type, tmp1243) ;
ATSlocal (ats_bool_type, tmp1244) ;
ATSlocal (ats_ptr_type, tmp1245) ;
ATSlocal (ats_ptr_type, tmp1246) ;
ATSlocal (ats_int_type, tmp1247) ;

__ats_lab_aux_151:
do {
/* branch: __ats_lab_247 */
__ats_lab_247_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_248_0 ; }
__ats_lab_247_1:
tmp1241 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ;
tmp1242 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
tmp1244 = atspre_lt_int_int (arg0, env0) ;
if (tmp1244) {
tmp1243 = env1 ;
} else {
tmp1243 = env2 ;
} /* end of [if] */
tmp1245 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1exp_trdn (tmp1241, tmp1243) ;
tmp1247 = atspre_add_int_int (arg0, 1) ;
tmp1246 = aux_151 (env0, env1, env2, tmp1247, tmp1242) ;
tmp1240 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp1240, atslab_0, tmp1245) ;
ats_selptrset_mac(anairiats_sum_6, tmp1240, atslab_1, tmp1246) ;
break ;

/* branch: __ats_lab_248 */
__ats_lab_248_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_248_1:
tmp1240 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp1240) ;
} /* end of [aux_151] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_int_type closure_env_0 ;
ats_ptr_type closure_env_1 ;
ats_ptr_type closure_env_2 ;
} aux_151_closure_type ;

ats_ptr_type
aux_151_clofun (ats_clo_ptr_type cloptr, ats_int_type arg0, ats_ptr_type arg1) {
return aux_151 (((aux_151_closure_type*)cloptr)->closure_env_0, ((aux_151_closure_type*)cloptr)->closure_env_1, ((aux_151_closure_type*)cloptr)->closure_env_2, arg0, arg1) ;
} /* end of function */

ATSinline()
ats_void_type
aux_151_closure_init (aux_151_closure_type *p_clo, ats_int_type env0, ats_ptr_type env1, ats_ptr_type env2) {
p_clo->closure_fun = (ats_fun_ptr_type)&aux_151_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
p_clo->closure_env_2 = env2 ;
return ;
} /* end of function */

ats_clo_ptr_type
aux_151_closure_make (ats_int_type env0, ats_ptr_type env1, ats_ptr_type env2) {
aux_151_closure_type *p_clo = ATS_MALLOC(sizeof(aux_151_closure_type)) ;
aux_151_closure_init (p_clo, env0, env1, env2) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52087(line=1854, offs=21) -- 52314(line=1862, offs=6)
*/
ATSstaticdec()
ats_int_type
list_length_compare_01411_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp1262) ;
ATSlocal (ats_ptr_type, tmp1263) ;
ATSlocal (ats_ptr_type, tmp1264) ;

__ats_lab_list_length_compare_01411_ats_ptr_type_2cats_ptr_type:
do {
/* branch: __ats_lab_254 */
__ats_lab_254_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_257_0 ; }
__ats_lab_254_1:
tmp1263 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
do {
/* branch: __ats_lab_255 */
__ats_lab_255_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_256_0 ; }
__ats_lab_255_1:
tmp1264 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
arg0 = tmp1263 ;
arg1 = tmp1264 ;
goto __ats_lab_list_length_compare_01411_ats_ptr_type_2cats_ptr_type ; // tail call
break ;

/* branch: __ats_lab_256 */
__ats_lab_256_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_256_1:
tmp1262 = 1 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_257 */
__ats_lab_257_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_257_1:
do {
/* branch: __ats_lab_258 */
__ats_lab_258_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_259_0 ; }
__ats_lab_258_1:
tmp1262 = -1 ;
break ;

/* branch: __ats_lab_259 */
__ats_lab_259_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_259_1:
tmp1262 = 0 ;
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp1262) ;
} /* end of [list_length_compare_01411_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 63105(line=2707, offs=1) -- 67394(line=2902, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1atcon_tr (ats_ptr_type arg0, ats_bool_type arg1, ats_bool_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1173) ;
// ATSlocal_void (tmp1202) ;
// ATSlocal_void (tmp1203) ;
// ATSlocal_void (tmp1204) ;
ATSlocal (ats_ptr_type, tmp1211) ;
ATSlocal (ats_ptr_type, tmp1223) ;
// ATSlocal_void (tmp1231) ;
ATSlocal (ats_ptr_type, tmp1232) ;
ATSlocal (ats_ptr_type, tmp1233) ;
ATSlocal (ats_ptr_type, tmp1234) ;
ATSlocal (ats_ptr_type, tmp1235) ;
ATSlocal (ats_int_type, tmp1236) ;
ATSlocal (ats_ptr_type, tmp1237) ;
ATSlocal (ats_ptr_type, tmp1238) ;
ATSlocal (ats_ptr_type, tmp1239) ;
ATSlocal (ats_ptr_type, tmp1248) ;
ATSlocal (ats_ptr_type, tmp1249) ;
ATSlocal (ats_ptr_type, tmp1250) ;
ATSlocal (ats_ptr_type, tmp1251) ;
ATSlocal (ats_ptr_type, tmp1252) ;
ATSlocal (ats_ptr_type, tmp1253) ;
ATSlocal (ats_int_type, tmp1254) ;
ATSlocal (ats_ptr_type, tmp1255) ;
// ATSlocal_void (tmp1256) ;
ATSlocal (ats_bool_type, tmp1257) ;
ATSlocal (ats_ptr_type, tmp1258) ;
ATSlocal (ats_ptr_type, tmp1259) ;
ATSlocal (ats_ptr_type, tmp1260) ;
ATSlocal (ats_int_type, tmp1261) ;
ATSlocal (ats_ptr_type, tmp1265) ;
ATSlocal (ats_bool_type, tmp1266) ;
ATSlocal (ats_ptr_type, tmp1267) ;
// ATSlocal_void (tmp1268) ;
ATSlocal (ats_ptr_type, tmp1269) ;
// ATSlocal_void (tmp1270) ;
// ATSlocal_void (tmp1271) ;
ATSlocal (ats_ptr_type, tmp1272) ;
ATSlocal (ats_int_type, tmp1273) ;
ATSlocal (ats_ptr_type, tmp1274) ;
// ATSlocal_void (tmp1275) ;
// ATSlocal_void (tmp1276) ;
ATSlocal (ats_bool_type, tmp1277) ;
// ATSlocal_void (tmp1278) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1atcon_tr:
/* tmp1202 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_push_nil () ;
/* tmp1203 = ats_selsin_mac(tmp1202, atslab_1) */ ;
/* tmp1204 = */ list_app_fun_01301_ats_ptr_type (arg3, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_svarlst) ;
/* ats_ptr_type tmp1211 ; */
tmp1223 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg5), atslab_d1atcon_qua) ;
tmp1211 = list_map_fun_01413_ats_ptr_type_anairiats_rec_1 (tmp1223, &_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__q1marg_tr) ;
/* tmp1231 = */ aux_150 ((&tmp1211), arg3) ;
tmp1232 = ats_castfn_mac(ats_ptr_type, tmp1211) ;
tmp1233 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (arg0) ;
do {
/* branch: __ats_lab_245 */
__ats_lab_245_0:
if (((ats_sum_ptr_type)tmp1233)->tag != 1) { goto __ats_lab_246_0 ; }
__ats_lab_245_1:
tmp1235 = ats_caselptrlab_mac(anairiats_sum_9, tmp1233, atslab_0) ;
tmp1234 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp1234, atslab_0, tmp1235) ;
break ;

/* branch: __ats_lab_246 */
__ats_lab_246_0:
__ats_lab_246_1:
tmp1234 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
tmp1236 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg5), atslab_d1atcon_npf) ;
tmp1237 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg5), atslab_d1atcon_arg) ;
if (arg1) {
tmp1238 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_view ;
} else {
tmp1238 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_prop ;
} /* end of [if] */
if (arg2) {
tmp1239 = tmp1238 ;
} else {
if (arg1) {
tmp1239 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_vt0ype ;
} else {
tmp1239 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype ;
} /* end of [if] */
} /* end of [if] */
tmp1248 = aux_151 (tmp1236, tmp1238, tmp1239, 0, tmp1237) ;
tmp1249 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg5), atslab_d1atcon_sym) ;
tmp1250 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg5), atslab_d1atcon_ind) ;
do {
/* branch: __ats_lab_249 */
__ats_lab_249_0:
if (tmp1250 != (ats_sum_ptr_type)0) { goto __ats_lab_250_0 ; }
__ats_lab_249_1:
if (tmp1234 != (ats_sum_ptr_type)0) { goto __ats_lab_251_1 ; }
__ats_lab_249_2:
tmp1251 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_250 */
__ats_lab_250_0:
if (tmp1250 == (ats_sum_ptr_type)0) { goto __ats_lab_251_0 ; }
__ats_lab_250_1:
if (tmp1234 == (ats_sum_ptr_type)0) { goto __ats_lab_260_1 ; }
__ats_lab_250_2:
tmp1252 = ats_caselptrlab_mac(anairiats_sum_4, tmp1250, atslab_0) ;
tmp1253 = ats_caselptrlab_mac(anairiats_sum_4, tmp1234, atslab_0) ;
/* ats_int_type tmp1254 ; */
tmp1254 = 0 ;
tmp1255 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1explst_trdn_err (tmp1252, tmp1253, (&tmp1254)) ;
tmp1257 = atspre_neq_int_int (tmp1254, 0) ;
if (tmp1257) {
/* tmp1256 = */ auxerr1_141 (arg5, tmp1249, tmp1254) ;
} else {
/* empty */
} /* end of [if] */
tmp1251 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp1251, atslab_0, tmp1255) ;
break ;

/* branch: __ats_lab_251 */
__ats_lab_251_0:
if (tmp1250 != (ats_sum_ptr_type)0) { goto __ats_lab_260_0 ; }
__ats_lab_251_1:
// if (tmp1234 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_251_2:
tmp1258 = ats_caselptrlab_mac(anairiats_sum_4, tmp1234, atslab_0) ;
do {
/* branch: __ats_lab_252 */
__ats_lab_252_0:
if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_253_0 ; }
__ats_lab_252_1:
tmp1259 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_253 */
__ats_lab_253_0:
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_253_1:
tmp1260 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ;
tmp1259 = tmp1260 ;
break ;
} while (0) ;
tmp1261 = list_length_compare_01411_ats_ptr_type_2cats_ptr_type (tmp1259, tmp1258) ;
tmp1266 = atspre_ieq (tmp1261, 0) ;
if (tmp1266) {
tmp1267 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp1259, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var) ;
tmp1265 = ats_castfn_mac(ats_ptr_type, tmp1267) ;
} else {
/* tmp1268 = */ auxerr2_142 (arg5, tmp1249) ;
tmp1269 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (tmp1258, &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp) ;
tmp1265 = ats_castfn_mac(ats_ptr_type, tmp1269) ;
} /* end of [if] */
tmp1251 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp1251, atslab_0, tmp1265) ;
break ;

/* branch: __ats_lab_260 */
__ats_lab_260_0:
// if (tmp1250 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_260_1:
// if (tmp1234 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_260_2:
/* tmp1270 = */ auxerr3_143 (arg5, tmp1249) ;
tmp1251 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
/* tmp1271 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_pop_free () ;
tmp1272 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_36, arg5), atslab_d1atcon_loc) ;
if (arg2) {
tmp1273 = 0 ;
} else {
if (arg1) {
tmp1273 = 1 ;
} else {
tmp1273 = 0 ;
} /* end of [if] */
} /* end of [if] */
tmp1274 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__d2con_make (tmp1272, arg4, tmp1249, arg0, tmp1273, tmp1232, tmp1236, tmp1248, tmp1251) ;
/* tmp1275 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2expenv_add_dcon (tmp1274) ;
tmp1277 = atspre_neg_bool (arg2) ;
if (tmp1277) {
/* tmp1278 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_datcontyp (tmp1274) ;
if (arg1) {
/* tmp1276 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_s2expenv_add_datconptr (tmp1274) ;
} else {
/* empty */
} /* end of [if] */
} else {
/* empty */
} /* end of [if] */
tmp1173 = tmp1274 ;
return (tmp1173) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d1atcon_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 67519(line=2910, offs=5) -- 68167(line=2933, offs=8)
*/
ATSstaticdec()
ats_ptr_type
loop_154 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ref_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1280) ;
ATSlocal (ats_ptr_type, tmp1281) ;
ATSlocal (ats_ptr_type, tmp1282) ;
ATSlocal (ats_ptr_type, tmp1283) ;
ATSlocal (ats_ptr_type, tmp1284) ;
ATSlocal (ats_ptr_type, tmp1285) ;
ATSlocal (ats_ptr_type, tmp1286) ;
ATSlocal (ats_ptr_type, tmp1287) ;
// ATSlocal_void (tmp1288) ;
ATSlocal (ats_ptr_type, tmp1289) ;
ATSlocal (ats_int_type, tmp1290) ;
ATSlocal (ats_int_type, tmp1291) ;

__ats_lab_loop_154:
do {
/* branch: __ats_lab_261 */
__ats_lab_261_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_262_0 ; }
__ats_lab_261_1:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_263_1 ; }
__ats_lab_261_2:
tmp1281 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp1282 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp1283 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ;
tmp1284 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
tmp1285 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (tmp1283) ;
tmp1286 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1arg_trdn (tmp1281, tmp1285) ;
tmp1287 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_var (tmp1286) ;
/* tmp1288 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg2, tmp1283, tmp1287) ;
tmp1289 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp1289, atslab_0, tmp1286) ;
ats_selptrset_mac(anairiats_sum_6, tmp1289, atslab_1, arg3) ;
arg0 = tmp1282 ;
arg1 = tmp1284 ;
arg2 = arg2 ;
arg3 = tmp1289 ;
arg4 = arg4 ;
goto __ats_lab_loop_154 ; // tail call
break ;

/* branch: __ats_lab_262 */
__ats_lab_262_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_263_0 ; }
__ats_lab_262_1:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_264_1 ; }
__ats_lab_262_2:
tmp1280 = arg3 ;
break ;

/* branch: __ats_lab_263 */
__ats_lab_263_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_264_0 ; }
__ats_lab_263_1:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_263_2:
tmp1290 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ;
ats_ptrget_mac(ats_int_type, arg4) = tmp1290 ;
tmp1280 = arg3 ;
break ;

/* branch: __ats_lab_264 */
__ats_lab_264_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_264_1:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_264_2:
tmp1291 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ;
ats_ptrget_mac(ats_int_type, arg4) = tmp1291 ;
tmp1280 = arg3 ;
break ;
} while (0) ;
return (tmp1280) ;
} /* end of [loop_154] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 67482(line=2908, offs=3) -- 68279(line=2938, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__stasub_extend_sarglst_svarlst (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1279) ;
ATSlocal (ats_ptr_type, tmp1292) ;
ATSlocal (ats_ptr_type, tmp1293) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__stasub_extend_sarglst_svarlst:
tmp1293 = (ats_sum_ptr_type)0 ;
tmp1292 = loop_154 (arg1, arg2, arg0, tmp1293, arg3) ;
tmp1279 = list_vt_reverse_01506_ats_ptr_type (tmp1292) ;
return (tmp1279) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__stasub_extend_sarglst_svarlst] */

/*
// /tmp/ATS-Postiats/src/pats_trans2_staexp.dats: 68378(line=2944, offs=3) -- 69155(line=2974, offs=4)
*/
ATSglobaldec()
anairiats_rec_14
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1vararg_bind_svarlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (anairiats_rec_14, tmp1294) ;
ATSlocal (ats_ptr_type, tmp1295) ;
ATSlocal (ats_ptr_type, tmp1296) ;
ATSlocal (ats_ptr_type, tmp1297) ;
ATSlocal (ats_ptr_type, tmp1298) ;
ATSlocal (ats_ptr_type, tmp1299) ;
ATSlocal (ats_ptr_type, tmp1300) ;
ATSlocal (ats_ptr_type, tmp1301) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1vararg_bind_svarlst:
do {
/* branch: __ats_lab_265 */
__ats_lab_265_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_266_0 ; }
__ats_lab_265_1:
/* ats_ptr_type tmp1295 ; */
tmp1295 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ;
tmp1296 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst ((&tmp1295), arg1) ;
tmp1294.atslab_0 = tmp1295 ;
tmp1294.atslab_1 = tmp1296 ;

break ;

/* branch: __ats_lab_266 */
__ats_lab_266_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_267_0 ; }
__ats_lab_266_1:
/* ats_ptr_type tmp1297 ; */
tmp1297 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ;
tmp1298 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst ((&tmp1297), arg1) ;
tmp1294.atslab_0 = tmp1297 ;
tmp1294.atslab_1 = tmp1298 ;

break ;

/* branch: __ats_lab_267 */
__ats_lab_267_0:
// if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_267_1:
tmp1299 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ;
/* ats_ptr_type tmp1300 ; */
tmp1300 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ;
tmp1301 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__stasub_extend_sarglst_svarlst ((&tmp1300), tmp1299, arg1, arg2) ;
tmp1294.atslab_0 = tmp1300 ;
tmp1294.atslab_1 = tmp1301 ;

break ;
} while (0) ;
return (tmp1294) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__s1vararg_bind_svarlst] */

/* 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_utils_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_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_location_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_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_e1xpval_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_stacst2_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_staexp_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_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_utils_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_intinf_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_location_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__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_e1xpval_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ;

_2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDarrow_0.tag = 0 ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__SPSIDnone_1.tag = 1 ;
return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_staexp_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_staexp_dats.c] */
