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

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

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

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_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_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_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_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_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

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

typedef
struct {
ats_ptr_type atslab_d2sym_loc ;
ats_ptr_type atslab_d2sym_qua ;
ats_ptr_type atslab_d2sym_sym ;
ats_ptr_type atslab_d2sym_pitmlst ;
} anairiats_rec_1 ;

typedef
struct {
ats_ptr_type atslab_d0ynq_loc ;
ats_ptr_type atslab_d0ynq_node ;
} anairiats_rec_2 ;

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

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

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

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

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

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

typedef struct {
int tag ;
ats_bool_type atslab_0 ;
} anairiats_sum_9 ;

typedef struct {
ats_ptr_type atslab_0 ;
} anairiats_sum_10 ;

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

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

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

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

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

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

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

/* external typedefs */
/* external dynamic constructor declarations */
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__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_lexing_2esats__T_INT_150) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CHAR_151) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FLOAT_152) ;
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__MSKencode_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKdecode_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__MSKxstage_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__D0YNQnone_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGone_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGall_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGseq_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__M2ACARGsta_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__M2ACARGdyn_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGsta_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2EXPARGdyn_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Evar_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eint_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Echar_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Efloat_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Estring_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ei0nt_8) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ec0har_9) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ef0loat_10) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Es0tring_11) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esym_22) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eapplst_28) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Eifhead_29) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Esing_34) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emac_70) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emacsyn_71) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Emacfun_72) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vint_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vbool_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vchar_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vfloat_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vstring_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vunit_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vscode_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vdcode_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vlist_8) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_eval0_cmp_92) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_eval0_d2exp_93) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_eval0_app_mac_arity_94) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_dmacro_evalctx_extend_95) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_prerr_newline) () ;
ATSextern_fun(ats_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_int_type, atspre_mul_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_int_type, atspre_compare_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_ilte) (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_bool_type, atspre_ineq) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_int_of_llint) (ats_llint_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_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADD) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_SUB) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MUL) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GT) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTEQ) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LT) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTEQ) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQ) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTGT) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANGEQ) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CAR) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CDR) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISLIST) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISCONS) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISNIL) ;
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_location_2esats__prerr_location) (ats_ptr_type) ;
ATSextern_fun(ats_llint_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__llint_make_string) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_arglst) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2mac) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2exp) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_applst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_def) (ats_ptr_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_true) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_false) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__liftval2dexp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_nil) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_free) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_nil) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_sadd) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dadd) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dfind) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_free) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_long) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_app_sym) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2explst) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2expopt) (ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arg) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_sarg) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_darg) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arglst) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;

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

/* assuming abstract types */
/* sum constructor declarations */
/* exn constructor declarations */
/* global dynamic (non-functional) constant declarations */
/* internal function declarations */
static
ats_void_type prerr_FILENAME_02045_ () ;
static
ats_bool_type d2sym_is_nonqua_1 (ats_ptr_type arg0) ;
static
ats_ptr_type eval0_app_add_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type eval0_app_sub_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type eval0_app_mul_4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type prerr_errmac_loc_02050_ (ats_ptr_type arg0) ;
static
ats_int_type auxerr_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_int_type eval0_app_cmp_int_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type eval0_app_lt_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type eval0_app_lte_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type eval0_app_gt_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type eval0_app_gte_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type eval0_app_eq_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type eval0_app_neq_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type d2exparg_get_d2explst_14 (ats_ptr_type arg0) ;
static
ats_ptr_type eval0_d2exparg_1_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type eval0_d2exparglst_1_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ;
static
anairiats_rec_7 eval0_d2exparg_2_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ;
static
anairiats_rec_7 eval0_d2exparglst_2_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type auxerr_21 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type eval0_app_eval_20 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type eval0_app_lift_22 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type eval0_car_23 (ats_ptr_type arg0) ;
static
ats_ptr_type eval0_cdr_24 (ats_ptr_type arg0) ;
static
ats_ptr_type eval0_islist_25 (ats_ptr_type arg0) ;
static
ats_ptr_type eval0_isnil_26 (ats_ptr_type arg0) ;
static
ats_ptr_type eval0_iscons_27 (ats_ptr_type arg0) ;
static
ats_ptr_type auxerr_29 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type eval0_d2var_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type auxerr_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ;
static
ats_void_type auxerr_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ;
static
ats_ptr_type auxexp_37 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) ;
static
ats_ptr_type auxexplst_38 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) ;
static
ats_void_type prerr_warning2_loc_02055_ (ats_ptr_type arg0) ;
static
ats_void_type auxwarn_40 (ats_ptr_type arg0) ;
static
ats_void_type loop_43 (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_ptr_type s2exparglst_join_39 (ats_ptr_type arg0) ;
static
ats_void_type auxerr_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ;
static
ats_int_type loop_49 (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type loop_52 (ats_ptr_type arg0, ats_int_type arg1, ats_ref_type arg2) ;
static
anairiats_rec_7 list_split_at_01440_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1) ;

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

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 1620(line=51, offs=17) -- 1651(line=51, offs=48)
*/
ATSstaticdec()
ats_void_type
prerr_FILENAME_02045_ () {
/* local vardec */
// ATSlocal_void (tmp0) ;

__ats_lab_prerr_FILENAME_02045_:
/* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_dmacro2_eval0")) ;
return /* (tmp0) */ ;
} /* end of [prerr_FILENAME_02045_] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 2747(line=106, offs=1) -- 2888(line=110, offs=4)
*/
ATSstaticdec()
ats_bool_type
d2sym_is_nonqua_1 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp1) ;
ATSlocal (ats_ptr_type, tmp2) ;
ATSlocal (ats_ptr_type, tmp3) ;

__ats_lab_d2sym_is_nonqua_1:
tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2sym_qua) ;
tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp2), atslab_d0ynq_node) ;
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (tmp3 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; }
__ats_lab_0_1:
tmp1 = ats_true_bool ;
break ;

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

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 3349(line=137, offs=1) -- 3634(line=155, offs=4)
*/
ATSstaticdec()
ats_ptr_type
eval0_app_add_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp4) ;
ATSlocal (ats_int_type, tmp5) ;
ATSlocal (ats_int_type, tmp6) ;
ATSlocal (ats_int_type, tmp7) ;

__ats_lab_eval0_app_add_2:
do {
/* branch: __ats_lab_2 */
__ats_lab_2_0:
if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_5_0 ; }
__ats_lab_2_1:
tmp5 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
do {
/* branch: __ats_lab_3 */
__ats_lab_3_0:
if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_4_0 ; }
__ats_lab_3_1:
tmp6 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ;
tmp7 = atspre_add_int_int (tmp5, tmp6) ;
tmp4 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
((ats_sum_ptr_type)tmp4)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_3, tmp4, atslab_0, tmp7) ;
break ;

/* branch: __ats_lab_4 */
__ats_lab_4_0:
__ats_lab_4_1:
tmp4 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_5 */
__ats_lab_5_0:
__ats_lab_5_1:
tmp4 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
return (tmp4) ;
} /* end of [eval0_app_add_2] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 3666(line=158, offs=1) -- 3950(line=176, offs=4)
*/
ATSstaticdec()
ats_ptr_type
eval0_app_sub_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp8) ;
ATSlocal (ats_int_type, tmp9) ;
ATSlocal (ats_int_type, tmp10) ;
ATSlocal (ats_int_type, tmp11) ;

__ats_lab_eval0_app_sub_3:
do {
/* branch: __ats_lab_6 */
__ats_lab_6_0:
if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_9_0 ; }
__ats_lab_6_1:
tmp9 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
do {
/* branch: __ats_lab_7 */
__ats_lab_7_0:
if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_8_0 ; }
__ats_lab_7_1:
tmp10 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ;
tmp11 = atspre_sub_int_int (tmp9, tmp10) ;
tmp8 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
((ats_sum_ptr_type)tmp8)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_3, tmp8, atslab_0, tmp11) ;
break ;

/* branch: __ats_lab_8 */
__ats_lab_8_0:
__ats_lab_8_1:
tmp8 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_9 */
__ats_lab_9_0:
__ats_lab_9_1:
tmp8 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
return (tmp8) ;
} /* end of [eval0_app_sub_3] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 3982(line=179, offs=1) -- 4266(line=197, offs=4)
*/
ATSstaticdec()
ats_ptr_type
eval0_app_mul_4 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp12) ;
ATSlocal (ats_int_type, tmp13) ;
ATSlocal (ats_int_type, tmp14) ;
ATSlocal (ats_int_type, tmp15) ;

__ats_lab_eval0_app_mul_4:
do {
/* branch: __ats_lab_10 */
__ats_lab_10_0:
if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_13_0 ; }
__ats_lab_10_1:
tmp13 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
do {
/* branch: __ats_lab_11 */
__ats_lab_11_0:
if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_12_0 ; }
__ats_lab_11_1:
tmp14 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ;
tmp15 = atspre_mul_int_int (tmp13, tmp14) ;
tmp12 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
((ats_sum_ptr_type)tmp12)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_3, tmp12, atslab_0, tmp15) ;
break ;

/* branch: __ats_lab_12 */
__ats_lab_12_0:
__ats_lab_12_1:
tmp12 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_13 */
__ats_lab_13_0:
__ats_lab_13_1:
tmp12 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
return (tmp12) ;
} /* end of [eval0_app_mul_4] */

/*
// /tmp/ATS-Postiats/src/pats_errmsg.dats: 2222(line=82, offs=17) -- 2282(line=85, offs=2)
*/
ATSstaticdec()
ats_void_type
prerr_errmac_loc_02050_ (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp19) ;
// ATSlocal_void (tmp20) ;

__ats_lab_prerr_errmac_loc_02050_:
/* tmp20 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ;
/* tmp19 = */ atspre_prerr_string (ATSstrcst(": error(mac)")) ;
return /* (tmp19) */ ;
} /* end of [prerr_errmac_loc_02050_] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 4399(line=208, offs=1) -- 4688(line=224, offs=4)
*/
ATSstaticdec()
ats_int_type
auxerr_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp17) ;
// ATSlocal_void (tmp18) ;
// ATSlocal_void (tmp21) ;
// ATSlocal_void (tmp22) ;
// ATSlocal_void (tmp23) ;
ATSlocal (ats_ptr_type, tmp24) ;

__ats_lab_auxerr_6:
/* tmp18 = */ prerr_errmac_loc_02050_ (arg0) ;
/* tmp21 = */ atspre_prerr_string (ATSstrcst(": values are compared that do not support comparison.")) ;
/* tmp22 = */ atspre_prerr_newline () ;
tmp24 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp24)->tag = 92 ;
ats_selptrset_mac(anairiats_sum_4, tmp24, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_4, tmp24, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_4, tmp24, atslab_2, arg2) ;
/* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp24) ;
tmp17 = 0 ;
return (tmp17) ;
} /* end of [auxerr_6] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 4318(line=202, offs=1) -- 4963(line=240, offs=4)
*/
ATSstaticdec()
ats_int_type
eval0_app_cmp_int_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp16) ;
ATSlocal (ats_int_type, tmp25) ;
ATSlocal (ats_int_type, tmp26) ;

__ats_lab_eval0_app_cmp_int_5:
do {
/* branch: __ats_lab_14 */
__ats_lab_14_0:
if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_17_0 ; }
__ats_lab_14_1:
tmp25 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
do {
/* branch: __ats_lab_15 */
__ats_lab_15_0:
if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_16_0 ; }
__ats_lab_15_1:
tmp26 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ;
tmp16 = atspre_compare_int_int (tmp25, tmp26) ;
break ;

/* branch: __ats_lab_16 */
__ats_lab_16_0:
__ats_lab_16_1:
tmp16 = auxerr_6 (arg0, arg1, arg2) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_17 */
__ats_lab_17_0:
__ats_lab_17_1:
tmp16 = auxerr_6 (arg0, arg1, arg2) ;
break ;
} while (0) ;
return (tmp16) ;
} /* end of [eval0_app_cmp_int_5] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 5020(line=245, offs=1) -- 5195(line=254, offs=4)
*/
ATSstaticdec()
ats_ptr_type
eval0_app_lt_8 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp27) ;
ATSlocal (ats_int_type, tmp28) ;
ATSlocal (ats_bool_type, tmp29) ;

__ats_lab_eval0_app_lt_8:
tmp28 = eval0_app_cmp_int_5 (arg0, arg1, arg2) ;
tmp29 = atspre_ilt (tmp28, 0) ;
if (tmp29) {
tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_true ;
} else {
tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_false ;
} /* end of [if] */
return (tmp27) ;
} /* end of [eval0_app_lt_8] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 5230(line=257, offs=1) -- 5407(line=266, offs=4)
*/
ATSstaticdec()
ats_ptr_type
eval0_app_lte_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp30) ;
ATSlocal (ats_int_type, tmp31) ;
ATSlocal (ats_bool_type, tmp32) ;

__ats_lab_eval0_app_lte_9:
tmp31 = eval0_app_cmp_int_5 (arg0, arg1, arg2) ;
tmp32 = atspre_ilte (tmp31, 0) ;
if (tmp32) {
tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_true ;
} else {
tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_false ;
} /* end of [if] */
return (tmp30) ;
} /* end of [eval0_app_lte_9] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 5464(line=271, offs=1) -- 5639(line=280, offs=4)
*/
ATSstaticdec()
ats_ptr_type
eval0_app_gt_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp33) ;
ATSlocal (ats_int_type, tmp34) ;
ATSlocal (ats_bool_type, tmp35) ;

__ats_lab_eval0_app_gt_10:
tmp34 = eval0_app_cmp_int_5 (arg0, arg1, arg2) ;
tmp35 = atspre_igt (tmp34, 0) ;
if (tmp35) {
tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_true ;
} else {
tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_false ;
} /* end of [if] */
return (tmp33) ;
} /* end of [eval0_app_gt_10] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 5674(line=283, offs=1) -- 5851(line=292, offs=4)
*/
ATSstaticdec()
ats_ptr_type
eval0_app_gte_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp36) ;
ATSlocal (ats_int_type, tmp37) ;
ATSlocal (ats_bool_type, tmp38) ;

__ats_lab_eval0_app_gte_11:
tmp37 = eval0_app_cmp_int_5 (arg0, arg1, arg2) ;
tmp38 = atspre_igte (tmp37, 0) ;
if (tmp38) {
tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_true ;
} else {
tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_false ;
} /* end of [if] */
return (tmp36) ;
} /* end of [eval0_app_gte_11] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 5908(line=297, offs=1) -- 6083(line=307, offs=4)
*/
ATSstaticdec()
ats_ptr_type
eval0_app_eq_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp39) ;
ATSlocal (ats_int_type, tmp40) ;
ATSlocal (ats_bool_type, tmp41) ;

__ats_lab_eval0_app_eq_12:
tmp40 = eval0_app_cmp_int_5 (arg0, arg1, arg2) ;
tmp41 = atspre_ieq (tmp40, 0) ;
if (tmp41) {
tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_true ;
} else {
tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_false ;
} /* end of [if] */
return (tmp39) ;
} /* end of [eval0_app_eq_12] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 6118(line=310, offs=1) -- 6294(line=319, offs=4)
*/
ATSstaticdec()
ats_ptr_type
eval0_app_neq_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp42) ;
ATSlocal (ats_int_type, tmp43) ;
ATSlocal (ats_bool_type, tmp44) ;

__ats_lab_eval0_app_neq_13:
tmp43 = eval0_app_cmp_int_5 (arg0, arg1, arg2) ;
tmp44 = atspre_ineq (tmp43, 0) ;
if (tmp44) {
tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_true ;
} else {
tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__m2val_false ;
} /* end of [if] */
return (tmp42) ;
} /* end of [eval0_app_neq_13] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 6351(line=324, offs=1) -- 6585(line=337, offs=4)
*/
ATSstaticdec()
ats_ptr_type
d2exparg_get_d2explst_14 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp45) ;
ATSlocal (ats_ptr_type, tmp46) ;

__ats_lab_d2exparg_get_d2explst_14:
do {
/* branch: __ats_lab_18 */
__ats_lab_18_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_19_0 ; }
__ats_lab_18_1:
tmp46 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ;
tmp45 = tmp46 ;
break ;

/* branch: __ats_lab_19 */
__ats_lab_19_0:
// if (((ats_sum_ptr_type)arg0)->tag != 0) { ats_deadcode_failure_handle () ; }
__ats_lab_19_1:
tmp45 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp45) ;
} /* end of [d2exparg_get_d2explst_14] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 6646(line=342, offs=1) -- 6943(line=364, offs=4)
*/
ATSstaticdec()
ats_ptr_type
eval0_d2exparg_1_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp47) ;
ATSlocal (ats_ptr_type, tmp48) ;
ATSlocal (ats_ptr_type, tmp49) ;

__ats_lab_eval0_d2exparg_1_15:
tmp48 = d2exparg_get_d2explst_14 (arg3) ;
do {
/* branch: __ats_lab_20 */
__ats_lab_20_0:
if (tmp48 != (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; }
__ats_lab_20_1:
tmp47 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;

/* branch: __ats_lab_21 */
__ats_lab_21_0:
// if (tmp48 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_21_1:
tmp49 = ats_caselptrlab_mac(anairiats_sum_6, tmp48, atslab_0) ;
tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp49) ;
break ;
} while (0) ;
return (tmp47) ;
} /* end of [eval0_d2exparg_1_15] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 6978(line=367, offs=1) -- 7242(line=384, offs=2)
*/
ATSstaticdec()
ats_ptr_type
eval0_d2exparglst_1_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp50) ;
ATSlocal (ats_ptr_type, tmp51) ;

__ats_lab_eval0_d2exparglst_1_16:
do {
/* branch: __ats_lab_22 */
__ats_lab_22_0:
if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; }
__ats_lab_22_1:
tmp50 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;

/* branch: __ats_lab_23 */
__ats_lab_23_0:
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_23_1:
tmp51 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ;
tmp50 = eval0_d2exparg_1_15 (arg0, arg1, arg2, tmp51) ;
break ;
} while (0) ;
return (tmp50) ;
} /* end of [eval0_d2exparglst_1_16] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 7356(line=393, offs=1) -- 7898(line=420, offs=4)
*/
ATSstaticdec()
anairiats_rec_7
eval0_d2exparg_2_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (anairiats_rec_7, tmp52) ;
ATSlocal (ats_ptr_type, tmp53) ;
ATSlocal (ats_ptr_type, 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) ;
ATSlocal (ats_ptr_type, tmp61) ;

__ats_lab_eval0_d2exparg_2_17:
tmp53 = d2exparg_get_d2explst_14 (arg3) ;
do {
/* branch: __ats_lab_24 */
__ats_lab_24_0:
if (tmp53 != (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; }
__ats_lab_24_1:
tmp54 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
tmp55 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
tmp52.atslab_0 = tmp54 ;
tmp52.atslab_1 = tmp55 ;

break ;

/* branch: __ats_lab_25 */
__ats_lab_25_0:
// if (tmp53 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_25_1:
tmp56 = ats_caselptrlab_mac(anairiats_sum_6, tmp53, atslab_0) ;
tmp57 = ats_caselptrlab_mac(anairiats_sum_6, tmp53, atslab_1) ;
tmp58 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp56) ;
do {
/* branch: __ats_lab_26 */
__ats_lab_26_0:
if (tmp57 != (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; }
__ats_lab_26_1:
tmp59 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
tmp52.atslab_0 = tmp58 ;
tmp52.atslab_1 = tmp59 ;

break ;

/* branch: __ats_lab_27 */
__ats_lab_27_0:
// if (tmp57 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_27_1:
tmp60 = ats_caselptrlab_mac(anairiats_sum_6, tmp57, atslab_0) ;
tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp60) ;
tmp52.atslab_0 = tmp58 ;
tmp52.atslab_1 = tmp61 ;

break ;
} while (0) ;
break ;
} while (0) ;
return (tmp52) ;
} /* end of [eval0_d2exparg_2_17] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 7933(line=423, offs=1) -- 8187(line=437, offs=4)
*/
ATSstaticdec()
anairiats_rec_7
eval0_d2exparglst_2_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (anairiats_rec_7, tmp62) ;
ATSlocal (ats_ptr_type, tmp63) ;
ATSlocal (ats_ptr_type, tmp64) ;
ATSlocal (ats_ptr_type, tmp65) ;

__ats_lab_eval0_d2exparglst_2_18:
do {
/* branch: __ats_lab_28 */
__ats_lab_28_0:
if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; }
__ats_lab_28_1:
tmp63 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
tmp64 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
tmp62.atslab_0 = tmp63 ;
tmp62.atslab_1 = tmp64 ;

break ;

/* branch: __ats_lab_29 */
__ats_lab_29_0:
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_29_1:
tmp65 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ;
tmp62 = eval0_d2exparg_2_17 (arg0, arg1, arg2, tmp65) ;
break ;
} while (0) ;
return (tmp62) ;
} /* end of [eval0_d2exparglst_2_18] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 8290(line=445, offs=1) -- 10230(line=545, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_app_sym (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp66) ;
ATSlocal (ats_bool_type, tmp67) ;
ATSlocal (anairiats_rec_7, tmp68) ;
ATSlocal (ats_ptr_type, tmp69) ;
ATSlocal (ats_ptr_type, tmp70) ;
ATSlocal (ats_bool_type, tmp71) ;
ATSlocal (anairiats_rec_7, tmp72) ;
ATSlocal (ats_ptr_type, tmp73) ;
ATSlocal (ats_ptr_type, tmp74) ;
ATSlocal (ats_bool_type, tmp75) ;
ATSlocal (anairiats_rec_7, tmp76) ;
ATSlocal (ats_ptr_type, tmp77) ;
ATSlocal (ats_ptr_type, tmp78) ;
ATSlocal (ats_bool_type, tmp79) ;
ATSlocal (anairiats_rec_7, tmp80) ;
ATSlocal (ats_ptr_type, tmp81) ;
ATSlocal (ats_ptr_type, tmp82) ;
ATSlocal (ats_bool_type, tmp83) ;
ATSlocal (anairiats_rec_7, tmp84) ;
ATSlocal (ats_ptr_type, tmp85) ;
ATSlocal (ats_ptr_type, tmp86) ;
ATSlocal (ats_bool_type, tmp87) ;
ATSlocal (anairiats_rec_7, tmp88) ;
ATSlocal (ats_ptr_type, tmp89) ;
ATSlocal (ats_ptr_type, tmp90) ;
ATSlocal (ats_bool_type, tmp91) ;
ATSlocal (anairiats_rec_7, tmp92) ;
ATSlocal (ats_ptr_type, tmp93) ;
ATSlocal (ats_ptr_type, tmp94) ;
ATSlocal (ats_bool_type, tmp95) ;
ATSlocal (anairiats_rec_7, tmp96) ;
ATSlocal (ats_ptr_type, tmp97) ;
ATSlocal (ats_ptr_type, tmp98) ;
ATSlocal (ats_bool_type, tmp99) ;
ATSlocal (anairiats_rec_7, tmp100) ;
ATSlocal (ats_ptr_type, tmp101) ;
ATSlocal (ats_ptr_type, tmp102) ;
ATSlocal (ats_bool_type, tmp103) ;
ATSlocal (anairiats_rec_7, tmp104) ;
ATSlocal (ats_ptr_type, tmp105) ;
ATSlocal (ats_ptr_type, tmp106) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_app_sym:
do {
/* branch: __ats_lab_30 */
__ats_lab_30_0:
__ats_lab_30_1:
tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ADD) ;
if (!tmp67) { goto __ats_lab_31_1 ; }
tmp68 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ;
tmp69 = ats_select_mac(tmp68, atslab_0) ;
tmp70 = ats_select_mac(tmp68, atslab_1) ;
tmp66 = eval0_app_add_2 (arg0, tmp69, tmp70) ;
break ;

/* branch: __ats_lab_31 */
__ats_lab_31_0:
__ats_lab_31_1:
tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_SUB) ;
if (!tmp71) { goto __ats_lab_32_1 ; }
tmp72 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ;
tmp73 = ats_select_mac(tmp72, atslab_0) ;
tmp74 = ats_select_mac(tmp72, atslab_1) ;
tmp66 = eval0_app_sub_3 (arg0, tmp73, tmp74) ;
break ;

/* branch: __ats_lab_32 */
__ats_lab_32_0:
__ats_lab_32_1:
tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_MUL) ;
if (!tmp75) { goto __ats_lab_33_1 ; }
tmp76 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ;
tmp77 = ats_select_mac(tmp76, atslab_0) ;
tmp78 = ats_select_mac(tmp76, atslab_1) ;
tmp66 = eval0_app_mul_4 (arg0, tmp77, tmp78) ;
break ;

/* branch: __ats_lab_33 */
__ats_lab_33_0:
__ats_lab_33_1:
tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LT) ;
if (!tmp79) { goto __ats_lab_34_1 ; }
tmp80 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ;
tmp81 = ats_select_mac(tmp80, atslab_0) ;
tmp82 = ats_select_mac(tmp80, atslab_1) ;
tmp66 = eval0_app_lt_8 (arg0, tmp81, tmp82) ;
break ;

/* branch: __ats_lab_34 */
__ats_lab_34_0:
__ats_lab_34_1:
tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTEQ) ;
if (!tmp83) { goto __ats_lab_35_1 ; }
tmp84 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ;
tmp85 = ats_select_mac(tmp84, atslab_0) ;
tmp86 = ats_select_mac(tmp84, atslab_1) ;
tmp66 = eval0_app_lte_9 (arg0, tmp85, tmp86) ;
break ;

/* branch: __ats_lab_35 */
__ats_lab_35_0:
__ats_lab_35_1:
tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GT) ;
if (!tmp87) { goto __ats_lab_36_1 ; }
tmp88 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ;
tmp89 = ats_select_mac(tmp88, atslab_0) ;
tmp90 = ats_select_mac(tmp88, atslab_1) ;
tmp66 = eval0_app_gt_10 (arg0, tmp89, tmp90) ;
break ;

/* branch: __ats_lab_36 */
__ats_lab_36_0:
__ats_lab_36_1:
tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_GTEQ) ;
if (!tmp91) { goto __ats_lab_37_1 ; }
tmp92 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ;
tmp93 = ats_select_mac(tmp92, atslab_0) ;
tmp94 = ats_select_mac(tmp92, atslab_1) ;
tmp66 = eval0_app_gte_11 (arg0, tmp93, tmp94) ;
break ;

/* branch: __ats_lab_37 */
__ats_lab_37_0:
__ats_lab_37_1:
tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_EQ) ;
if (!tmp95) { goto __ats_lab_38_1 ; }
tmp96 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ;
tmp97 = ats_select_mac(tmp96, atslab_0) ;
tmp98 = ats_select_mac(tmp96, atslab_1) ;
tmp66 = eval0_app_eq_12 (arg0, tmp97, tmp98) ;
break ;

/* branch: __ats_lab_38 */
__ats_lab_38_0:
__ats_lab_38_1:
tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_LTGT) ;
if (!tmp99) { goto __ats_lab_39_1 ; }
tmp100 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ;
tmp101 = ats_select_mac(tmp100, atslab_0) ;
tmp102 = ats_select_mac(tmp100, atslab_1) ;
tmp66 = eval0_app_neq_13 (arg0, tmp101, tmp102) ;
break ;

/* branch: __ats_lab_39 */
__ats_lab_39_0:
__ats_lab_39_1:
tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (arg1, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BANGEQ) ;
if (!tmp103) { goto __ats_lab_40_1 ; }
tmp104 = eval0_d2exparglst_2_18 (arg0, arg2, arg3, arg4) ;
tmp105 = ats_select_mac(tmp104, atslab_0) ;
tmp106 = ats_select_mac(tmp104, atslab_1) ;
tmp66 = eval0_app_neq_13 (arg0, tmp105, tmp106) ;
break ;

/* branch: __ats_lab_40 */
__ats_lab_40_0:
__ats_lab_40_1:
tmp66 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
return (tmp66) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_app_sym] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 10372(line=558, offs=1) -- 10582(line=569, offs=2)
*/
ATSstaticdec()
ats_ptr_type
auxerr_21 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp108) ;
// ATSlocal_void (tmp109) ;
// ATSlocal_void (tmp110) ;
// ATSlocal_void (tmp111) ;

__ats_lab_auxerr_21:
/* tmp109 = */ prerr_errmac_loc_02050_ (arg0) ;
/* tmp110 = */ atspre_prerr_string (ATSstrcst(": evaluation is performed on a value not representing code.")) ;
/* tmp111 = */ atspre_prerr_newline () ;
tmp108 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
return (tmp108) ;
} /* end of [auxerr_21] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 10306(line=552, offs=1) -- 10906(line=585, offs=4)
*/
ATSstaticdec()
ats_ptr_type
eval0_app_eval_20 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp107) ;
ATSlocal (ats_ptr_type, tmp112) ;
ATSlocal (ats_ptr_type, tmp113) ;
ATSlocal (ats_ptr_type, tmp114) ;
ATSlocal (ats_ptr_type, tmp115) ;
// ATSlocal_void (tmp116) ;
// ATSlocal_void (tmp117) ;

__ats_lab_eval0_app_eval_20:
do {
/* branch: __ats_lab_41 */
__ats_lab_41_0:
if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_42_0 ; }
__ats_lab_41_1:
tmp112 = ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_0) ;
/* ats_ptr_type tmp113 ; */
tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_nil () ;
/* ats_ptr_type tmp114 ; */
tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_nil () ;
tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, tmp113, (&tmp114), tmp112) ;
/* tmp116 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__alphenv_free (tmp114) ;
/* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_free (tmp113) ;
tmp107 = tmp115 ;
break ;

/* branch: __ats_lab_42 */
__ats_lab_42_0:
__ats_lab_42_1:
tmp107 = auxerr_21 (arg0, arg1) ;
break ;
} while (0) ;
return (tmp107) ;
} /* end of [eval0_app_eval_20] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 10960(line=590, offs=1) -- 11075(line=595, offs=4)
*/
ATSstaticdec()
ats_ptr_type
eval0_app_lift_22 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp118) ;
ATSlocal (ats_ptr_type, tmp119) ;

__ats_lab_eval0_app_lift_22:
tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__liftval2dexp (arg0, arg1) ;
tmp118 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp118)->tag = 7 ;
ats_selptrset_mac(anairiats_sum_8, tmp118, atslab_0, tmp119) ;
return (tmp118) ;
} /* end of [eval0_app_lift_22] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 11129(line=599, offs=5) -- 11414(line=612, offs=35)
*/
ATSstaticdec()
ats_ptr_type
eval0_car_23 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp120) ;
ATSlocal (ats_ptr_type, tmp121) ;
ATSlocal (ats_ptr_type, tmp122) ;
ATSlocal (ats_ptr_type, tmp123) ;

__ats_lab_eval0_car_23:
do {
/* branch: __ats_lab_43 */
__ats_lab_43_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; }
__ats_lab_43_1:
tmp121 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
do {
/* branch: __ats_lab_44 */
__ats_lab_44_0:
if (((ats_sum_ptr_type)tmp121)->tag != 8) { goto __ats_lab_47_0 ; }
__ats_lab_44_1:
tmp122 = ats_caselptrlab_mac(anairiats_sum_8, tmp121, atslab_0) ;
do {
/* branch: __ats_lab_45 */
__ats_lab_45_0:
if (tmp122 == (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; }
__ats_lab_45_1:
tmp123 = ats_caselptrlab_mac(anairiats_sum_6, tmp122, atslab_0) ;
tmp120 = tmp123 ;
break ;

/* branch: __ats_lab_46 */
__ats_lab_46_0:
__ats_lab_46_1:
tmp120 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_47 */
__ats_lab_47_0:
__ats_lab_47_1:
tmp120 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_48 */
__ats_lab_48_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_48_1:
tmp120 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
return (tmp120) ;
} /* end of [eval0_car_23] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 11458(line=615, offs=5) -- 11785(line=630, offs=35)
*/
ATSstaticdec()
ats_ptr_type
eval0_cdr_24 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp124) ;
ATSlocal (ats_ptr_type, tmp125) ;
ATSlocal (ats_ptr_type, tmp126) ;
ATSlocal (ats_ptr_type, tmp127) ;

__ats_lab_eval0_cdr_24:
do {
/* branch: __ats_lab_49 */
__ats_lab_49_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; }
__ats_lab_49_1:
tmp125 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
do {
/* branch: __ats_lab_50 */
__ats_lab_50_0:
if (((ats_sum_ptr_type)tmp125)->tag != 8) { goto __ats_lab_53_0 ; }
__ats_lab_50_1:
tmp126 = ats_caselptrlab_mac(anairiats_sum_8, tmp125, atslab_0) ;
do {
/* branch: __ats_lab_51 */
__ats_lab_51_0:
if (tmp126 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; }
__ats_lab_51_1:
tmp127 = ats_caselptrlab_mac(anairiats_sum_6, tmp126, atslab_1) ;
tmp124 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp124)->tag = 8 ;
ats_selptrset_mac(anairiats_sum_8, tmp124, atslab_0, tmp127) ;
break ;

/* branch: __ats_lab_52 */
__ats_lab_52_0:
__ats_lab_52_1:
tmp124 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_53 */
__ats_lab_53_0:
__ats_lab_53_1:
tmp124 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_54 */
__ats_lab_54_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_54_1:
tmp124 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
return (tmp124) ;
} /* end of [eval0_cdr_24] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 11850(line=636, offs=1) -- 12089(line=647, offs=2)
*/
ATSstaticdec()
ats_ptr_type
eval0_islist_25 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp128) ;
ATSlocal (ats_ptr_type, tmp129) ;

__ats_lab_eval0_islist_25:
do {
/* branch: __ats_lab_55 */
__ats_lab_55_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; }
__ats_lab_55_1:
tmp129 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
do {
/* branch: __ats_lab_56 */
__ats_lab_56_0:
if (((ats_sum_ptr_type)tmp129)->tag != 8) { goto __ats_lab_57_0 ; }
__ats_lab_56_1:
tmp128 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp128)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_9, tmp128, atslab_0, ats_true_bool) ;
break ;

/* branch: __ats_lab_57 */
__ats_lab_57_0:
__ats_lab_57_1:
tmp128 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp128)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_9, tmp128, atslab_0, ats_false_bool) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_58 */
__ats_lab_58_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_58_1:
tmp128 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
return (tmp128) ;
} /* end of [eval0_islist_25] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 12143(line=652, offs=1) -- 12457(line=667, offs=2)
*/
ATSstaticdec()
ats_ptr_type
eval0_isnil_26 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp130) ;
ATSlocal (ats_ptr_type, tmp131) ;
ATSlocal (ats_ptr_type, tmp132) ;

__ats_lab_eval0_isnil_26:
do {
/* branch: __ats_lab_59 */
__ats_lab_59_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; }
__ats_lab_59_1:
tmp131 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
do {
/* branch: __ats_lab_60 */
__ats_lab_60_0:
if (((ats_sum_ptr_type)tmp131)->tag != 8) { goto __ats_lab_63_0 ; }
__ats_lab_60_1:
tmp132 = ats_caselptrlab_mac(anairiats_sum_8, tmp131, atslab_0) ;
do {
/* branch: __ats_lab_61 */
__ats_lab_61_0:
if (tmp132 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; }
__ats_lab_61_1:
tmp130 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp130)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_9, tmp130, atslab_0, ats_false_bool) ;
break ;

/* branch: __ats_lab_62 */
__ats_lab_62_0:
__ats_lab_62_1:
tmp130 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp130)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_9, tmp130, atslab_0, ats_true_bool) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_63 */
__ats_lab_63_0:
__ats_lab_63_1:
tmp130 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
break ;

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

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 12489(line=670, offs=1) -- 12802(line=685, offs=2)
*/
ATSstaticdec()
ats_ptr_type
eval0_iscons_27 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp133) ;
ATSlocal (ats_ptr_type, tmp134) ;
ATSlocal (ats_ptr_type, tmp135) ;

__ats_lab_eval0_iscons_27:
do {
/* branch: __ats_lab_65 */
__ats_lab_65_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_70_0 ; }
__ats_lab_65_1:
tmp134 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
do {
/* branch: __ats_lab_66 */
__ats_lab_66_0:
if (((ats_sum_ptr_type)tmp134)->tag != 8) { goto __ats_lab_69_0 ; }
__ats_lab_66_1:
tmp135 = ats_caselptrlab_mac(anairiats_sum_8, tmp134, atslab_0) ;
do {
/* branch: __ats_lab_67 */
__ats_lab_67_0:
if (tmp135 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; }
__ats_lab_67_1:
tmp133 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp133)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_9, tmp133, atslab_0, ats_true_bool) ;
break ;

/* branch: __ats_lab_68 */
__ats_lab_68_0:
__ats_lab_68_1:
tmp133 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp133)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_9, tmp133, atslab_0, ats_false_bool) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_69 */
__ats_lab_69_0:
__ats_lab_69_1:
tmp133 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_70 */
__ats_lab_70_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_70_1:
tmp133 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
return (tmp133) ;
} /* end of [eval0_iscons_27] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 12934(line=697, offs=1) -- 13183(line=711, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxerr_29 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp137) ;
// ATSlocal_void (tmp138) ;
// ATSlocal_void (tmp139) ;
// ATSlocal_void (tmp140) ;
// ATSlocal_void (tmp141) ;
// ATSlocal_void (tmp142) ;

__ats_lab_auxerr_29:
/* tmp138 = */ prerr_errmac_loc_02050_ (arg0) ;
/* tmp139 = */ atspre_prerr_string (ATSstrcst(": the variable [")) ;
/* tmp140 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ;
/* tmp141 = */ atspre_prerr_string (ATSstrcst("] is unbound.")) ;
/* tmp142 = */ atspre_prerr_newline () ;
tmp137 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
return (tmp137) ;
} /* end of [auxerr_29] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 12856(line=690, offs=1) -- 13335(line=721, offs=4)
*/
ATSstaticdec()
ats_ptr_type
eval0_d2var_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp136) ;
ATSlocal (ats_ptr_type, tmp143) ;
ATSlocal (ats_ptr_type, tmp144) ;

__ats_lab_eval0_d2var_28:
tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dfind (arg1, arg2) ;
do {
/* branch: __ats_lab_71 */
__ats_lab_71_0:
if (tmp143 == (ats_sum_ptr_type)0) { goto __ats_lab_72_0 ; }
__ats_lab_71_1:
tmp144 = ats_caselptrlab_mac(anairiats_sum_10, tmp143, atslab_0) ;
ATS_FREE(tmp143) ;
tmp136 = tmp144 ;
break ;

/* branch: __ats_lab_72 */
__ats_lab_72_0:
// if (tmp143 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_72_1:
tmp136 = auxerr_29 (arg0, arg2) ;
break ;
} while (0) ;
return (tmp136) ;
} /* end of [eval0_d2var_28] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 13542(line=734, offs=3) -- 13876(line=748, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2explst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp145) ;
ATSlocal (ats_ptr_type, tmp146) ;
ATSlocal (ats_ptr_type, tmp147) ;
ATSlocal (ats_ptr_type, tmp148) ;
ATSlocal (ats_ptr_type, tmp149) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2explst:
do {
/* branch: __ats_lab_73 */
__ats_lab_73_0:
if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; }
__ats_lab_73_1:
tmp146 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ;
tmp147 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_1) ;
tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp146) ;
tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2explst (arg0, arg1, arg2, tmp147) ;
tmp145 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp145, atslab_0, tmp148) ;
ats_selptrset_mac(anairiats_sum_6, tmp145, atslab_1, tmp149) ;
break ;

/* branch: __ats_lab_74 */
__ats_lab_74_0:
// if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_74_1:
tmp145 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp145) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2explst] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 14081(line=761, offs=3) -- 14202(line=766, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2expopt (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp150) ;
ATSlocal (ats_ptr_type, tmp151) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2expopt:
do {
/* branch: __ats_lab_75 */
__ats_lab_75_0:
if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_76_0 ; }
__ats_lab_75_1:
tmp150 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Vunit_5) ;
break ;

/* branch: __ats_lab_76 */
__ats_lab_76_0:
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_76_1:
tmp151 = ats_caselptrlab_mac(anairiats_sum_10, arg3, atslab_0) ;
tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp151) ;
break ;
} while (0) ;
return (tmp150) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2expopt] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 14278(line=772, offs=3) -- 17932(line=918, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp152) ;
ATSlocal (ats_ptr_type, tmp153) ;
ATSlocal (ats_ptr_type, tmp154) ;
ATSlocal (ats_int_type, tmp155) ;
ATSlocal (ats_char_type, tmp156) ;
ATSlocal (ats_ptr_type, tmp157) ;
ATSlocal (ats_ptr_type, tmp158) ;
ATSlocal (ats_ptr_type, tmp159) ;
ATSlocal (ats_ptr_type, tmp160) ;
ATSlocal (ats_ptr_type, tmp161) ;
ATSlocal (ats_int_type, tmp162) ;
ATSlocal (ats_llint_type, tmp163) ;
ATSlocal (ats_ptr_type, tmp164) ;
ATSlocal (ats_ptr_type, tmp165) ;
ATSlocal (ats_char_type, tmp166) ;
ATSlocal (ats_ptr_type, tmp167) ;
ATSlocal (ats_ptr_type, tmp168) ;
ATSlocal (ats_ptr_type, tmp169) ;
ATSlocal (ats_ptr_type, tmp170) ;
ATSlocal (ats_ptr_type, tmp171) ;
ATSlocal (ats_ptr_type, tmp172) ;
ATSlocal (ats_ptr_type, tmp173) ;
ATSlocal (ats_ptr_type, tmp174) ;
ATSlocal (ats_ptr_type, tmp175) ;
ATSlocal (ats_ptr_type, tmp176) ;
ATSlocal (ats_ptr_type, tmp177) ;
ATSlocal (ats_ptr_type, tmp178) ;
ATSlocal (ats_bool_type, tmp179) ;
ATSlocal (ats_ptr_type, tmp180) ;
// ATSlocal_void (tmp181) ;
// ATSlocal_void (tmp182) ;
// ATSlocal_void (tmp183) ;
ATSlocal (ats_ptr_type, tmp184) ;
// ATSlocal_void (tmp185) ;
// ATSlocal_void (tmp186) ;
ATSlocal (ats_ptr_type, tmp187) ;
ATSlocal (ats_ptr_type, tmp188) ;
ATSlocal (ats_ptr_type, tmp189) ;
ATSlocal (ats_ptr_type, tmp190) ;
ATSlocal (ats_bool_type, tmp191) ;
ATSlocal (ats_ptr_type, tmp192) ;
ATSlocal (ats_ptr_type, tmp193) ;
ATSlocal (ats_ptr_type, tmp194) ;
ATSlocal (ats_ptr_type, tmp195) ;
ATSlocal (ats_ptr_type, tmp196) ;
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_bool_type, tmp204) ;
ATSlocal (ats_bool_type, tmp205) ;
ATSlocal (ats_bool_type, tmp206) ;
ATSlocal (ats_bool_type, tmp207) ;
ATSlocal (ats_bool_type, tmp208) ;
// ATSlocal_void (tmp209) ;
// ATSlocal_void (tmp210) ;
// ATSlocal_void (tmp211) ;
// ATSlocal_void (tmp212) ;
// ATSlocal_void (tmp213) ;
// ATSlocal_void (tmp214) ;
ATSlocal (ats_ptr_type, tmp215) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp:
tmp153 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg3), atslab_d2exp_node) ;
do {
/* branch: __ats_lab_77 */
__ats_lab_77_0:
if (((ats_sum_ptr_type)tmp153)->tag != 1) { goto __ats_lab_78_0 ; }
__ats_lab_77_1:
tmp154 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ;
tmp152 = eval0_d2var_28 (arg0, arg1, tmp154) ;
break ;

/* branch: __ats_lab_78 */
__ats_lab_78_0:
if (((ats_sum_ptr_type)tmp153)->tag != 2) { goto __ats_lab_79_0 ; }
__ats_lab_78_1:
tmp155 = ats_caselptrlab_mac(anairiats_sum_3, tmp153, atslab_0) ;
tmp152 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
((ats_sum_ptr_type)tmp152)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_3, tmp152, atslab_0, tmp155) ;
break ;

/* branch: __ats_lab_79 */
__ats_lab_79_0:
if (((ats_sum_ptr_type)tmp153)->tag != 5) { goto __ats_lab_80_0 ; }
__ats_lab_79_1:
tmp156 = ats_caselptrlab_mac(anairiats_sum_12, tmp153, atslab_0) ;
tmp152 = ATS_MALLOC(sizeof(anairiats_sum_12)) ;
((ats_sum_ptr_type)tmp152)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_12, tmp152, atslab_0, tmp156) ;
break ;

/* branch: __ats_lab_80 */
__ats_lab_80_0:
if (((ats_sum_ptr_type)tmp153)->tag != 6) { goto __ats_lab_81_0 ; }
__ats_lab_80_1:
tmp157 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ;
tmp152 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp152)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_8, tmp152, atslab_0, tmp157) ;
break ;

/* branch: __ats_lab_81 */
__ats_lab_81_0:
if (((ats_sum_ptr_type)tmp153)->tag != 7) { goto __ats_lab_82_0 ; }
__ats_lab_81_1:
tmp158 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ;
tmp152 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp152)->tag = 4 ;
ats_selptrset_mac(anairiats_sum_8, tmp152, atslab_0, tmp158) ;
break ;

/* branch: __ats_lab_82 */
__ats_lab_82_0:
if (((ats_sum_ptr_type)tmp153)->tag != 8) { goto __ats_lab_83_0 ; }
__ats_lab_82_1:
tmp159 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ;
tmp160 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp159), atslab_token_node) ;
if (((ats_sum_ptr_type)tmp160)->tag != 150) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 14863(line=803, offs=9) -- 14911(line=804, offs=38)") ; }
tmp161 = ats_caselptrlab_mac(anairiats_sum_14, tmp160, atslab_1) ;
tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__llint_make_string (tmp161) ;
tmp162 = atspre_int_of_llint (tmp163) ;
tmp152 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
((ats_sum_ptr_type)tmp152)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_3, tmp152, atslab_0, tmp162) ;
break ;

/* branch: __ats_lab_83 */
__ats_lab_83_0:
if (((ats_sum_ptr_type)tmp153)->tag != 9) { goto __ats_lab_84_0 ; }
__ats_lab_83_1:
tmp164 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ;
tmp165 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp164), atslab_token_node) ;
if (((ats_sum_ptr_type)tmp165)->tag != 151) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 15045(line=810, offs=9) -- 15074(line=810, offs=38)") ; }
tmp166 = ats_caselptrlab_mac(anairiats_sum_12, tmp165, atslab_0) ;
tmp152 = ATS_MALLOC(sizeof(anairiats_sum_12)) ;
((ats_sum_ptr_type)tmp152)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_12, tmp152, atslab_0, tmp166) ;
break ;

/* branch: __ats_lab_84 */
__ats_lab_84_0:
if (((ats_sum_ptr_type)tmp153)->tag != 10) { goto __ats_lab_85_0 ; }
__ats_lab_84_1:
tmp167 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ;
tmp168 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp167), atslab_token_node) ;
if (((ats_sum_ptr_type)tmp168)->tag != 152) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 15166(line=814, offs=9) -- 15215(line=815, offs=37)") ; }
tmp169 = ats_caselptrlab_mac(anairiats_sum_14, tmp168, atslab_1) ;
tmp152 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp152)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_8, tmp152, atslab_0, tmp169) ;
break ;

/* branch: __ats_lab_85 */
__ats_lab_85_0:
if (((ats_sum_ptr_type)tmp153)->tag != 11) { goto __ats_lab_86_0 ; }
__ats_lab_85_1:
tmp170 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ;
tmp171 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp170), atslab_token_node) ;
if (((ats_sum_ptr_type)tmp171)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 15312(line=819, offs=9) -- 15343(line=819, offs=40)") ; }
tmp172 = ats_caselptrlab_mac(anairiats_sum_8, tmp171, atslab_0) ;
tmp152 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp152)->tag = 4 ;
ats_selptrset_mac(anairiats_sum_8, tmp152, atslab_0, tmp172) ;
break ;

/* branch: __ats_lab_86 */
__ats_lab_86_0:
if (((ats_sum_ptr_type)tmp153)->tag != 34) { goto __ats_lab_87_0 ; }
__ats_lab_86_1:
tmp173 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp173 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp ; // tail call
break ;

/* branch: __ats_lab_87 */
__ats_lab_87_0:
if (((ats_sum_ptr_type)tmp153)->tag != 28) { goto __ats_lab_91_0 ; }
__ats_lab_87_1:
tmp174 = ats_caselptrlab_mac(anairiats_sum_15, tmp153, atslab_0) ;
tmp175 = ats_caselptrlab_mac(anairiats_sum_15, tmp153, atslab_1) ;
tmp176 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp174), atslab_d2exp_node) ;
do {
/* branch: __ats_lab_88 */
__ats_lab_88_0:
if (((ats_sum_ptr_type)tmp176)->tag != 70) { goto __ats_lab_89_0 ; }
__ats_lab_88_1:
tmp177 = ats_caselptrlab_mac(anairiats_sum_8, tmp176, atslab_0) ;
tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_long (arg0, tmp177, arg1, arg2, tmp175) ;
break ;

/* branch: __ats_lab_89 */
__ats_lab_89_0:
if (((ats_sum_ptr_type)tmp176)->tag != 22) { goto __ats_lab_90_0 ; }
__ats_lab_89_1:
tmp178 = ats_caselptrlab_mac(anairiats_sum_8, tmp176, atslab_0) ;
tmp179 = d2sym_is_nonqua_1 (tmp178) ;
if (!tmp179) { goto __ats_lab_90_1 ; }
tmp180 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp178), atslab_d2sym_sym) ;
tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_app_sym (arg0, tmp180, arg1, arg2, tmp175) ;
break ;

/* branch: __ats_lab_90 */
__ats_lab_90_0:
__ats_lab_90_1:
/* tmp181 = */ prerr_errmac_loc_02050_ (arg0) ;
/* tmp182 = */ atspre_prerr_string (ATSstrcst(": the dynamic expression at (")) ;
tmp184 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp174), atslab_d2exp_loc) ;
/* tmp183 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (tmp184) ;
/* tmp185 = */ atspre_prerr_string (ATSstrcst(") should be a macro but it is not.")) ;
/* tmp186 = */ atspre_prerr_newline () ;
tmp152 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_91 */
__ats_lab_91_0:
if (((ats_sum_ptr_type)tmp153)->tag != 29) { goto __ats_lab_94_0 ; }
__ats_lab_91_1:
tmp187 = ats_caselptrlab_mac(anairiats_sum_16, tmp153, atslab_1) ;
tmp188 = ats_caselptrlab_mac(anairiats_sum_16, tmp153, atslab_2) ;
tmp189 = ats_caselptrlab_mac(anairiats_sum_16, tmp153, atslab_3) ;
tmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp187) ;
do {
/* branch: __ats_lab_92 */
__ats_lab_92_0:
if (((ats_sum_ptr_type)tmp190)->tag != 1) { goto __ats_lab_93_0 ; }
__ats_lab_92_1:
tmp191 = ats_caselptrlab_mac(anairiats_sum_9, tmp190, atslab_0) ;
if (tmp191) {
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp188 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp ; // tail call
} else {
tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2expopt (arg0, arg1, arg2, tmp189) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_93 */
__ats_lab_93_0:
__ats_lab_93_1:
tmp152 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_94 */
__ats_lab_94_0:
if (((ats_sum_ptr_type)tmp153)->tag != 70) { goto __ats_lab_95_0 ; }
__ats_lab_94_1:
tmp192 = ats_caselptrlab_mac(anairiats_sum_8, tmp153, atslab_0) ;
tmp193 = (ats_sum_ptr_type)0 ;
tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_long (arg0, tmp192, arg1, arg2, tmp193) ;
break ;

/* branch: __ats_lab_95 */
__ats_lab_95_0:
if (((ats_sum_ptr_type)tmp153)->tag != 71) { goto __ats_lab_99_0 ; }
__ats_lab_95_1:
tmp194 = ats_caselptrlab_mac(anairiats_sum_15, tmp153, atslab_0) ;
tmp195 = ats_caselptrlab_mac(anairiats_sum_15, tmp153, atslab_1) ;
do {
/* branch: __ats_lab_96 */
__ats_lab_96_0:
if (((ats_sum_ptr_type)tmp194)->tag != 0) { goto __ats_lab_97_0 ; }
__ats_lab_96_1:
tmp196 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg1, arg2, tmp195) ;
tmp152 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp152)->tag = 7 ;
ats_selptrset_mac(anairiats_sum_8, tmp152, atslab_0, tmp196) ;
break ;

/* branch: __ats_lab_97 */
__ats_lab_97_0:
if (((ats_sum_ptr_type)tmp194)->tag != 1) { goto __ats_lab_98_0 ; }
__ats_lab_97_1:
tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp195) ;
tmp152 = eval0_app_eval_20 (arg0, tmp197) ;
break ;

/* branch: __ats_lab_98 */
__ats_lab_98_0:
// if (((ats_sum_ptr_type)tmp194)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_98_1:
tmp199 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg1, arg2, tmp195) ;
tmp198 = eval0_app_eval_20 (arg0, tmp199) ;
tmp200 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__liftval2dexp (arg0, tmp198) ;
tmp152 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp152)->tag = 7 ;
ats_selptrset_mac(anairiats_sum_8, tmp152, atslab_0, tmp200) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_99 */
__ats_lab_99_0:
if (((ats_sum_ptr_type)tmp153)->tag != 72) { goto __ats_lab_106_0 ; }
__ats_lab_99_1:
tmp201 = ats_caselptrlab_mac(anairiats_sum_15, tmp153, atslab_0) ;
tmp202 = ats_caselptrlab_mac(anairiats_sum_15, tmp153, atslab_1) ;
tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__eval0_d2explst (arg0, arg1, arg2, tmp202) ;
do {
/* branch: __ats_lab_100 */
__ats_lab_100_0:
__ats_lab_100_1:
tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp201, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CAR) ;
if (!tmp204) { goto __ats_lab_101_1 ; }
tmp152 = eval0_car_23 (tmp203) ;
break ;

/* branch: __ats_lab_101 */
__ats_lab_101_0:
__ats_lab_101_1:
tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp201, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_CDR) ;
if (!tmp205) { goto __ats_lab_102_1 ; }
tmp152 = eval0_cdr_24 (tmp203) ;
break ;

/* branch: __ats_lab_102 */
__ats_lab_102_0:
__ats_lab_102_1:
tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp201, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISNIL) ;
if (!tmp206) { goto __ats_lab_103_1 ; }
tmp152 = eval0_isnil_26 (tmp203) ;
break ;

/* branch: __ats_lab_103 */
__ats_lab_103_0:
__ats_lab_103_1:
tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp201, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISCONS) ;
if (!tmp207) { goto __ats_lab_104_1 ; }
tmp152 = eval0_iscons_27 (tmp203) ;
break ;

/* branch: __ats_lab_104 */
__ats_lab_104_0:
__ats_lab_104_1:
tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp201, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_ISLIST) ;
if (!tmp208) { goto __ats_lab_105_1 ; }
tmp152 = eval0_islist_25 (tmp203) ;
break ;

/* branch: __ats_lab_105 */
__ats_lab_105_0:
__ats_lab_105_1:
tmp152 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_106 */
__ats_lab_106_0:
__ats_lab_106_1:
/* tmp209 = */ prerr_errmac_loc_02050_ (arg0) ;
/* tmp210 = */ atspre_prerr_string (ATSstrcst(": the form of dynamic expression [")) ;
/* tmp211 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2exp (arg3) ;
/* tmp212 = */ atspre_prerr_string (ATSstrcst("] is unsupported for macro expansion.")) ;
/* tmp213 = */ atspre_prerr_newline () ;
tmp215 = ATS_MALLOC(sizeof(anairiats_sum_15)) ;
((ats_sum_ptr_type)tmp215)->tag = 93 ;
ats_selptrset_mac(anairiats_sum_15, tmp215, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_15, tmp215, atslab_1, arg3) ;
/* tmp214 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp215) ;
tmp152 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__M2Verr_9) ;
break ;
} while (0) ;
return (tmp152) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 18910(line=985, offs=1) -- 19353(line=1000, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) {
/* local vardec */
// ATSlocal_void (tmp217) ;
// ATSlocal_void (tmp218) ;
// ATSlocal_void (tmp219) ;
// ATSlocal_void (tmp220) ;
// ATSlocal_void (tmp221) ;
ATSlocal (ats_bool_type, tmp222) ;
// ATSlocal_void (tmp223) ;
ATSlocal (ats_bool_type, tmp224) ;
// ATSlocal_void (tmp225) ;
ATSlocal (ats_ptr_type, tmp226) ;

__ats_lab_auxerr_34:
/* tmp218 = */ prerr_errmac_loc_02050_ (arg0) ;
/* tmp219 = */ atspre_prerr_string (ATSstrcst(": some static argument group of the macro [")) ;
/* tmp220 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2mac (arg1) ;
tmp222 = atspre_lt_int_int (arg2, 0) ;
if (tmp222) {
/* tmp221 = */ atspre_prerr_string (ATSstrcst("] is expected to contain more arguments.")) ;
} else {
/* empty */
} /* end of [if] */
tmp224 = atspre_gt_int_int (arg2, 0) ;
if (tmp224) {
/* tmp223 = */ atspre_prerr_string (ATSstrcst("] is expected to contain fewer arguments.")) ;
} else {
/* empty */
} /* end of [if] */
/* tmp225 = */ atspre_prerr_newline () ;
tmp226 = ATS_MALLOC(sizeof(anairiats_sum_15)) ;
((ats_sum_ptr_type)tmp226)->tag = 95 ;
ats_selptrset_mac(anairiats_sum_15, tmp226, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_15, tmp226, atslab_1, arg1) ;
/* tmp217 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp226) ;
return /* (tmp217) */ ;
} /* end of [auxerr_34] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 18850(line=980, offs=1) -- 19942(line=1030, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_sarg (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp216) ;
ATSlocal (ats_ptr_type, tmp227) ;
ATSlocal (ats_ptr_type, tmp228) ;
ATSlocal (ats_ptr_type, tmp229) ;
ATSlocal (ats_ptr_type, tmp230) ;
ATSlocal (ats_ptr_type, tmp231) ;
ATSlocal (ats_ptr_type, tmp232) ;
// ATSlocal_void (tmp233) ;
// ATSlocal_void (tmp234) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_sarg:
do {
/* branch: __ats_lab_107 */
__ats_lab_107_0:
if (arg5 == (ats_sum_ptr_type)0) { goto __ats_lab_110_0 ; }
__ats_lab_107_1:
tmp227 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_0) ;
tmp228 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_1) ;
do {
/* branch: __ats_lab_108 */
__ats_lab_108_0:
if (arg6 == (ats_sum_ptr_type)0) { goto __ats_lab_109_0 ; }
__ats_lab_108_1:
tmp229 = ats_caselptrlab_mac(anairiats_sum_6, arg6, atslab_0) ;
tmp230 = ats_caselptrlab_mac(anairiats_sum_6, arg6, atslab_1) ;
tmp232 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp232)->tag = 6 ;
ats_selptrset_mac(anairiats_sum_8, tmp232, atslab_0, tmp229) ;
tmp231 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_sadd (arg7, tmp227, tmp232) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = arg4 ;
arg5 = tmp228 ;
arg6 = tmp230 ;
arg7 = tmp231 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_sarg ; // tail call
break ;

/* branch: __ats_lab_109 */
__ats_lab_109_0:
// if (arg6 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_109_1:
/* tmp233 = */ auxerr_34 (arg0, arg1, 1) ;
tmp216 = arg7 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_110 */
__ats_lab_110_0:
// if (arg5 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_110_1:
do {
/* branch: __ats_lab_111 */
__ats_lab_111_0:
if (arg6 == (ats_sum_ptr_type)0) { goto __ats_lab_112_0 ; }
__ats_lab_111_1:
/* tmp234 = */ auxerr_34 (arg0, arg1, -1) ;
tmp216 = arg7 ;
break ;

/* branch: __ats_lab_112 */
__ats_lab_112_0:
// if (arg6 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_112_1:
tmp216 = arg7 ;
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp216) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_sarg] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 20088(line=1042, offs=1) -- 20529(line=1055, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) {
/* local vardec */
// ATSlocal_void (tmp236) ;
// ATSlocal_void (tmp237) ;
// ATSlocal_void (tmp238) ;
// ATSlocal_void (tmp239) ;
// ATSlocal_void (tmp240) ;
ATSlocal (ats_bool_type, tmp241) ;
// ATSlocal_void (tmp242) ;
ATSlocal (ats_bool_type, tmp243) ;
// ATSlocal_void (tmp244) ;
ATSlocal (ats_ptr_type, tmp245) ;

__ats_lab_auxerr_36:
/* tmp237 = */ prerr_errmac_loc_02050_ (arg0) ;
/* tmp238 = */ atspre_prerr_string (ATSstrcst(": some dynamic argument group of the macro [")) ;
/* tmp239 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2mac (arg1) ;
tmp241 = atspre_lt_int_int (arg2, 0) ;
if (tmp241) {
/* tmp240 = */ atspre_prerr_string (ATSstrcst("] is expected to contain more arguments.")) ;
} else {
/* empty */
} /* end of [if] */
tmp243 = atspre_gt_int_int (arg2, 0) ;
if (tmp243) {
/* tmp242 = */ atspre_prerr_string (ATSstrcst("] is expected to contain fewer arguments.")) ;
} else {
/* empty */
} /* end of [if] */
/* tmp244 = */ atspre_prerr_newline () ;
tmp245 = ATS_MALLOC(sizeof(anairiats_sum_15)) ;
((ats_sum_ptr_type)tmp245)->tag = 95 ;
ats_selptrset_mac(anairiats_sum_15, tmp245, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_15, tmp245, atslab_1, arg1) ;
/* tmp236 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp245) ;
return /* (tmp236) */ ;
} /* end of [auxerr_36] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 20556(line=1058, offs=1) -- 20835(line=1073, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxexp_37 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp246) ;
ATSlocal (ats_bool_type, tmp247) ;
ATSlocal (ats_ptr_type, tmp248) ;

__ats_lab_auxexp_37:
tmp247 = atspre_gte_int_int (arg1, 1) ;
if (tmp247) {
tmp246 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, arg2, arg3, arg4) ;
} else {
tmp248 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, arg2, arg3, arg4) ;
tmp246 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp246)->tag = 7 ;
ats_selptrset_mac(anairiats_sum_8, tmp246, atslab_0, tmp248) ;
} /* end of [if] */
return (tmp246) ;
} /* end of [auxexp_37] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 20862(line=1076, offs=1) -- 21222(line=1093, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxexplst_38 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp249) ;
ATSlocal (ats_ptr_type, tmp250) ;
ATSlocal (ats_ptr_type, tmp251) ;
ATSlocal (ats_ptr_type, tmp252) ;
ATSlocal (ats_ptr_type, tmp253) ;

__ats_lab_auxexplst_38:
do {
/* branch: __ats_lab_113 */
__ats_lab_113_0:
if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_114_0 ; }
__ats_lab_113_1:
tmp250 = ats_caselptrlab_mac(anairiats_sum_6, arg4, atslab_0) ;
tmp251 = ats_caselptrlab_mac(anairiats_sum_6, arg4, atslab_1) ;
tmp252 = auxexp_37 (arg0, arg1, arg2, arg3, tmp250) ;
tmp253 = auxexplst_38 (arg0, arg1, arg2, arg3, tmp251) ;
tmp249 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp249, atslab_0, tmp252) ;
ats_selptrset_mac(anairiats_sum_6, tmp249, atslab_1, tmp253) ;
break ;

/* branch: __ats_lab_114 */
__ats_lab_114_0:
// if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_114_1:
tmp249 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp249) ;
} /* end of [auxexplst_38] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 20027(line=1036, offs=1) -- 22346(line=1145, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_darg (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp235) ;
ATSlocal (ats_ptr_type, tmp254) ;
ATSlocal (ats_ptr_type, tmp255) ;
ATSlocal (ats_ptr_type, tmp256) ;
ATSlocal (ats_ptr_type, tmp257) ;
ATSlocal (ats_ptr_type, tmp258) ;
ATSlocal (ats_ptr_type, tmp259) ;
ATSlocal (ats_ptr_type, tmp260) ;
ATSlocal (ats_ptr_type, tmp261) ;
ATSlocal (ats_ptr_type, tmp262) ;
ATSlocal (ats_ptr_type, tmp263) ;
ATSlocal (ats_ptr_type, tmp264) ;
ATSlocal (ats_ptr_type, tmp265) ;
ATSlocal (ats_ptr_type, tmp266) ;
// ATSlocal_void (tmp267) ;
// ATSlocal_void (tmp268) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_darg:
do {
/* branch: __ats_lab_115 */
__ats_lab_115_0:
if (arg5 == (ats_sum_ptr_type)0) { goto __ats_lab_118_0 ; }
tmp254 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_1) ;
if (tmp254 != (ats_sum_ptr_type)0) { goto __ats_lab_118_0 ; }
__ats_lab_115_1:
tmp255 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_0) ;
do {
/* branch: __ats_lab_116 */
__ats_lab_116_0:
if (arg6 == (ats_sum_ptr_type)0) { goto __ats_lab_117_0 ; }
tmp256 = ats_caselptrlab_mac(anairiats_sum_6, arg6, atslab_1) ;
if (tmp256 != (ats_sum_ptr_type)0) { goto __ats_lab_117_0 ; }
__ats_lab_116_1:
tmp257 = ats_caselptrlab_mac(anairiats_sum_6, arg6, atslab_0) ;
tmp258 = auxexp_37 (arg0, arg2, arg3, arg4, tmp257) ;
tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dadd (arg7, tmp255, tmp258) ;
break ;

/* branch: __ats_lab_117 */
__ats_lab_117_0:
__ats_lab_117_1:
tmp259 = auxexplst_38 (arg0, arg2, arg3, arg4, arg6) ;
tmp260 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp260)->tag = 8 ;
ats_selptrset_mac(anairiats_sum_8, tmp260, atslab_0, tmp259) ;
tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dadd (arg7, tmp255, tmp260) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_118 */
__ats_lab_118_0:
if (arg5 == (ats_sum_ptr_type)0) { goto __ats_lab_121_0 ; }
__ats_lab_118_1:
tmp261 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_0) ;
tmp262 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_1) ;
do {
/* branch: __ats_lab_119 */
__ats_lab_119_0:
if (arg6 == (ats_sum_ptr_type)0) { goto __ats_lab_120_0 ; }
__ats_lab_119_1:
tmp263 = ats_caselptrlab_mac(anairiats_sum_6, arg6, atslab_0) ;
tmp264 = ats_caselptrlab_mac(anairiats_sum_6, arg6, atslab_1) ;
tmp265 = auxexp_37 (arg0, arg2, arg3, arg4, tmp263) ;
tmp266 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_dadd (arg7, tmp261, tmp265) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = arg4 ;
arg5 = tmp262 ;
arg6 = tmp264 ;
arg7 = tmp266 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_darg ; // tail call
break ;

/* branch: __ats_lab_120 */
__ats_lab_120_0:
// if (arg6 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_120_1:
/* tmp267 = */ auxerr_36 (arg0, arg1, 1) ;
tmp235 = arg7 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_121 */
__ats_lab_121_0:
// if (arg5 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_121_1:
do {
/* branch: __ats_lab_122 */
__ats_lab_122_0:
if (arg6 == (ats_sum_ptr_type)0) { goto __ats_lab_123_0 ; }
__ats_lab_122_1:
/* tmp268 = */ auxerr_36 (arg0, arg1, -1) ;
tmp235 = arg7 ;
break ;

/* branch: __ats_lab_123 */
__ats_lab_123_0:
// if (arg6 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_123_1:
tmp235 = arg7 ;
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp235) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_darg] */

/*
// /tmp/ATS-Postiats/src/pats_errmsg.dats: 2872(line=116, offs=20) -- 2933(line=119, offs=2)
*/
ATSstaticdec()
ats_void_type
prerr_warning2_loc_02055_ (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp272) ;
// ATSlocal_void (tmp273) ;

__ats_lab_prerr_warning2_loc_02055_:
/* tmp273 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ;
/* tmp272 = */ atspre_prerr_string (ATSstrcst(": warning(2)")) ;
return /* (tmp272) */ ;
} /* end of [prerr_warning2_loc_02055_] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 22467(line=1154, offs=1) -- 22595(line=1160, offs=2)
*/
ATSstaticdec()
ats_void_type
auxwarn_40 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp270) ;
// ATSlocal_void (tmp271) ;
// ATSlocal_void (tmp274) ;

__ats_lab_auxwarn_40:
/* tmp271 = */ prerr_warning2_loc_02055_ (arg0) ;
/* tmp274 = */ atspre_prerr_string (ATSstrcst(": the static macro argument is ignored.")) ;
/* tmp270 = */ atspre_prerr_newline () ;
return /* (tmp270) */ ;
} /* end of [auxwarn_40] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 7739(line=275, offs=5) -- 8080(line=290, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
// ATSlocal_void (tmp282) ;
ATSlocal (ats_ptr_type, tmp283) ;
ATSlocal (ats_ptr_type, tmp284) ;
ATSlocal (ats_ptr_type, tmp285) ;
ATSlocal (ats_ptr_type, tmp286) ;

__ats_lab_loop_43:
do {
/* branch: __ats_lab_127 */
__ats_lab_127_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_128_0 ; }
__ats_lab_127_1:
tmp283 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp284 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp285 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp285, atslab_0, tmp283) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp285 ;
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp286 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
arg0 = tmp284 ;
arg1 = arg1 ;
arg2 = tmp286 ;
goto __ats_lab_loop_43 ; // tail call
break ;

/* branch: __ats_lab_128 */
__ats_lab_128_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_128_1:
ats_ptrget_mac(ats_ptr_type, arg2) = arg1 ;
break ;
} while (0) ;
return /* (tmp282) */ ;
} /* end of [loop_43] */

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

__ats_lab_list_append_01312_ats_ptr_type:
/* ats_ptr_type tmp281 ; */
/* tmp287 = */ loop_43 (arg0, arg1, (&tmp281)) ;
tmp280 = tmp281 ;
return (tmp280) ;
} /* end of [list_append_01312_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 22405(line=1150, offs=1) -- 23357(line=1191, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s2exparglst_join_39 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp269) ;
ATSlocal (ats_ptr_type, tmp275) ;
ATSlocal (ats_ptr_type, tmp276) ;
ATSlocal (ats_ptr_type, tmp277) ;
ATSlocal (ats_ptr_type, tmp278) ;
ATSlocal (ats_ptr_type, tmp279) ;
// ATSlocal_void (tmp288) ;
ATSlocal (ats_ptr_type, tmp289) ;
// ATSlocal_void (tmp290) ;
ATSlocal (ats_ptr_type, tmp291) ;

__ats_lab_s2exparglst_join_39:
do {
/* branch: __ats_lab_124 */
__ats_lab_124_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_132_0 ; }
__ats_lab_124_1:
tmp275 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp276 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp277 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, tmp275), atslab_s2exparg_node) ;
do {
/* branch: __ats_lab_125 */
__ats_lab_125_0:
if (((ats_sum_ptr_type)tmp277)->tag != 2) { goto __ats_lab_130_0 ; }
__ats_lab_125_1:
tmp278 = ats_caselptrlab_mac(anairiats_sum_8, tmp277, atslab_0) ;
do {
/* branch: __ats_lab_126 */
__ats_lab_126_0:
if (tmp276 == (ats_sum_ptr_type)0) { goto __ats_lab_129_0 ; }
__ats_lab_126_1:
tmp279 = s2exparglst_join_39 (tmp276) ;
tmp269 = list_append_01312_ats_ptr_type (tmp278, tmp279) ;
break ;

/* branch: __ats_lab_129 */
__ats_lab_129_0:
// if (tmp276 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_129_1:
tmp269 = tmp278 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_130 */
__ats_lab_130_0:
if (((ats_sum_ptr_type)tmp277)->tag != 0) { goto __ats_lab_131_0 ; }
__ats_lab_130_1:
tmp289 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, tmp275), atslab_s2exparg_loc) ;
/* tmp288 = */ auxwarn_40 (tmp289) ;
arg0 = tmp276 ;
goto __ats_lab_s2exparglst_join_39 ; // tail call
break ;

/* branch: __ats_lab_131 */
__ats_lab_131_0:
// if (((ats_sum_ptr_type)tmp277)->tag != 1) { ats_deadcode_failure_handle () ; }
__ats_lab_131_1:
tmp291 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, tmp275), atslab_s2exparg_loc) ;
/* tmp290 = */ auxwarn_40 (tmp291) ;
arg0 = tmp276 ;
goto __ats_lab_s2exparglst_join_39 ; // tail call
break ;
} while (0) ;
break ;

/* branch: __ats_lab_132 */
__ats_lab_132_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_132_1:
tmp269 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp269) ;
} /* end of [s2exparglst_join_39] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 23497(line=1203, offs=1) -- 23937(line=1221, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) {
/* local vardec */
// ATSlocal_void (tmp293) ;
// ATSlocal_void (tmp294) ;
// ATSlocal_void (tmp295) ;
// ATSlocal_void (tmp296) ;
// ATSlocal_void (tmp297) ;
ATSlocal (ats_bool_type, tmp298) ;
// ATSlocal_void (tmp299) ;
ATSlocal (ats_bool_type, tmp300) ;
// ATSlocal_void (tmp301) ;
ATSlocal (ats_ptr_type, tmp302) ;

__ats_lab_auxerr_45:
/* tmp294 = */ prerr_errmac_loc_02050_ (arg0) ;
/* tmp295 = */ atspre_prerr_string (ATSstrcst(": the macro argument at (")) ;
/* tmp296 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg1) ;
tmp298 = atspre_eq_int_int (arg3, 0) ;
if (tmp298) {
/* tmp297 = */ atspre_prerr_string (ATSstrcst(") is expected to be static.")) ;
} else {
/* empty */
} /* end of [if] */
tmp300 = atspre_gt_int_int (arg3, 0) ;
if (tmp300) {
/* tmp299 = */ atspre_prerr_string (ATSstrcst(") is expected to be dynamic.")) ;
} else {
/* empty */
} /* end of [if] */
/* tmp301 = */ atspre_prerr_newline () ;
tmp302 = ATS_MALLOC(sizeof(anairiats_sum_15)) ;
((ats_sum_ptr_type)tmp302)->tag = 95 ;
ats_selptrset_mac(anairiats_sum_15, tmp302, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_15, tmp302, atslab_1, arg2) ;
/* tmp293 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp302) ;
return /* (tmp293) */ ;
} /* end of [auxerr_45] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 23438(line=1197, offs=1) -- 24707(line=1255, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arg (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp292) ;
ATSlocal (ats_ptr_type, tmp303) ;
ATSlocal (ats_ptr_type, tmp304) ;
ATSlocal (ats_ptr_type, tmp305) ;
ATSlocal (ats_ptr_type, tmp306) ;
// ATSlocal_void (tmp307) ;
ATSlocal (ats_ptr_type, tmp308) ;
ATSlocal (ats_ptr_type, tmp309) ;
ATSlocal (ats_ptr_type, tmp310) ;
// ATSlocal_void (tmp311) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arg:
do {
/* branch: __ats_lab_133 */
__ats_lab_133_0:
if (((ats_sum_ptr_type)arg5)->tag != 0) { goto __ats_lab_136_0 ; }
__ats_lab_133_1:
tmp303 = ats_caselptrlab_mac(anairiats_sum_8, arg5, atslab_0) ;
do {
/* branch: __ats_lab_134 */
__ats_lab_134_0:
if (((ats_sum_ptr_type)arg6)->tag != 0) { goto __ats_lab_135_0 ; }
__ats_lab_134_1:
tmp304 = ats_caselptrlab_mac(anairiats_sum_15, arg6, atslab_1) ;
tmp305 = s2exparglst_join_39 (tmp304) ;
tmp292 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_sarg (arg0, arg1, arg2, arg3, arg4, tmp303, tmp305, arg7) ;
break ;

/* branch: __ats_lab_135 */
__ats_lab_135_0:
// if (((ats_sum_ptr_type)arg6)->tag != 1) { ats_deadcode_failure_handle () ; }
__ats_lab_135_1:
tmp306 = ats_caselptrlab_mac(anairiats_sum_5, arg6, atslab_1) ;
/* tmp307 = */ auxerr_45 (arg0, tmp306, arg1, 0) ;
tmp292 = arg7 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_136 */
__ats_lab_136_0:
// if (((ats_sum_ptr_type)arg5)->tag != 1) { ats_deadcode_failure_handle () ; }
__ats_lab_136_1:
tmp308 = ats_caselptrlab_mac(anairiats_sum_8, arg5, atslab_0) ;
do {
/* branch: __ats_lab_137 */
__ats_lab_137_0:
if (((ats_sum_ptr_type)arg6)->tag != 1) { goto __ats_lab_138_0 ; }
__ats_lab_137_1:
tmp309 = ats_caselptrlab_mac(anairiats_sum_5, arg6, atslab_2) ;
tmp292 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_darg (arg0, arg1, arg2, arg3, arg4, tmp308, tmp309, arg7) ;
break ;

/* branch: __ats_lab_138 */
__ats_lab_138_0:
// if (((ats_sum_ptr_type)arg6)->tag != 0) { ats_deadcode_failure_handle () ; }
__ats_lab_138_1:
tmp310 = ats_caselptrlab_mac(anairiats_sum_15, arg6, atslab_0) ;
/* tmp311 = */ auxerr_45 (arg0, tmp310, arg1, 1) ;
tmp292 = arg7 ;
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp292) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arg] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 24794(line=1261, offs=1) -- 25191(line=1280, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arglst (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp312) ;
ATSlocal (ats_ptr_type, tmp313) ;
ATSlocal (ats_ptr_type, tmp314) ;
ATSlocal (ats_ptr_type, tmp315) ;
ATSlocal (ats_ptr_type, tmp316) ;
ATSlocal (ats_ptr_type, tmp317) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arglst:
do {
/* branch: __ats_lab_139 */
__ats_lab_139_0:
if (arg5 != (ats_sum_ptr_type)0) { goto __ats_lab_140_0 ; }
__ats_lab_139_1:
tmp312 = arg7 ;
break ;

/* branch: __ats_lab_140 */
__ats_lab_140_0:
// if (arg5 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_140_1:
tmp313 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_0) ;
tmp314 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_1) ;
if (arg6 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 24957(line=1272, offs=9) -- 24984(line=1272, offs=36)") ; }
tmp315 = ats_caselptrlab_mac(anairiats_sum_6, arg6, atslab_0) ;
tmp316 = ats_caselptrlab_mac(anairiats_sum_6, arg6, atslab_1) ;
tmp317 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arg (arg0, arg1, arg2, arg3, arg4, tmp313, tmp315, arg7) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = arg4 ;
arg5 = tmp314 ;
arg6 = tmp316 ;
arg7 = tmp317 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arglst ; // tail call
break ;
} while (0) ;
return (tmp312) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arglst] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 51781(line=1842, offs=7) -- 51921(line=1845, offs=6)
*/
ATSstaticdec()
ats_int_type
loop_49 (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp321) ;
ATSlocal (ats_ptr_type, tmp322) ;
ATSlocal (ats_int_type, tmp323) ;

__ats_lab_loop_49:
do {
/* branch: __ats_lab_141 */
__ats_lab_141_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_142_0 ; }
__ats_lab_141_1:
tmp322 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp323 = atspre_isucc (arg1) ;
arg0 = tmp322 ;
arg1 = tmp323 ;
goto __ats_lab_loop_49 ; // tail call
break ;

/* branch: __ats_lab_142 */
__ats_lab_142_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_142_1:
tmp321 = arg1 ;
break ;
} while (0) ;
return (tmp321) ;
} /* end of [loop_49] */

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

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

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 25319(line=1288, offs=1) -- 26352(line=1345, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_long (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp318) ;
ATSlocal (ats_int_type, tmp319) ;
ATSlocal (ats_ptr_type, tmp324) ;
ATSlocal (ats_int_type, tmp325) ;
// ATSlocal_void (tmp326) ;
ATSlocal (ats_bool_type, tmp327) ;
// ATSlocal_void (tmp328) ;
// ATSlocal_void (tmp329) ;
// ATSlocal_void (tmp330) ;
// ATSlocal_void (tmp331) ;
ATSlocal (ats_bool_type, tmp332) ;
// ATSlocal_void (tmp333) ;
ATSlocal (ats_bool_type, tmp334) ;
// ATSlocal_void (tmp335) ;
ATSlocal (ats_ptr_type, tmp336) ;
ATSlocal (ats_ptr_type, tmp337) ;
ATSlocal (ats_ptr_type, tmp338) ;
ATSlocal (ats_ptr_type, tmp339) ;
ATSlocal (ats_ptr_type, tmp340) ;
// ATSlocal_void (tmp341) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_long:
tmp319 = list_length_01410_ats_ptr_type (arg4) ;
tmp324 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_arglst (arg1) ;
tmp325 = list_length_01410_ats_ptr_type (tmp324) ;
tmp327 = atspre_ineq (tmp319, tmp325) ;
if (tmp327) {
/* tmp328 = */ prerr_errmac_loc_02050_ (arg0) ;
/* tmp329 = */ atspre_prerr_string (ATSstrcst(": the macro function [")) ;
/* tmp330 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2mac (arg1) ;
tmp332 = atspre_igt (tmp319, tmp325) ;
if (tmp332) {
/* tmp331 = */ atspre_prerr_string (ATSstrcst("] is overlly applied.")) ;
} else {
/* empty */
} /* end of [if] */
tmp334 = atspre_ilt (tmp319, tmp325) ;
if (tmp334) {
/* tmp333 = */ atspre_prerr_string (ATSstrcst("] is applied insufficiently.")) ;
} else {
/* empty */
} /* end of [if] */
/* tmp335 = */ atspre_prerr_newline () ;
tmp336 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp336)->tag = 94 ;
ats_selptrset_mac(anairiats_sum_4, tmp336, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_4, tmp336, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_4, tmp336, atslab_2, arg4) ;
/* tmp326 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp336) ;
} else {
/* empty */
} /* end of [if] */
tmp337 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_nil () ;
tmp338 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arglst (arg0, arg1, 1, arg2, arg3, tmp324, arg4, tmp337) ;
tmp339 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_def (arg1) ;
tmp340 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_d2exp (arg0, tmp338, arg3, tmp339) ;
/* tmp341 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_free (tmp338) ;
tmp318 = tmp340 ;
return (tmp318) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_long] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 63850(line=2298, offs=7) -- 64282(line=2312, offs=8)
*/
ATSstaticdec()
ats_ptr_type
loop_52 (ats_ptr_type arg0, ats_int_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp360) ;
ATSlocal (ats_bool_type, tmp361) ;
ATSlocal (ats_ptr_type, tmp362) ;
ATSlocal (ats_ptr_type, tmp363) ;
ATSlocal (ats_ptr_type, tmp364) ;
ATSlocal (ats_ptr_type, tmp365) ;
ATSlocal (ats_int_type, tmp366) ;
ATSlocal (ats_ptr_type, tmp367) ;

__ats_lab_loop_52:
tmp361 = atspre_igt (arg1, 0) ;
if (tmp361) {
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp362 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp363 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp364 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp364, atslab_0, tmp362) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp364 ;
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp365 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
tmp366 = atspre_isub (arg1, 1) ;
arg0 = tmp363 ;
arg1 = tmp366 ;
arg2 = tmp365 ;
goto __ats_lab_loop_52 ; // tail call
} else {
tmp367 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp367 ;
tmp360 = arg0 ;
} /* end of [if] */
return (tmp360) ;
} /* end of [loop_52] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 63790(line=2296, offs=23) -- 64357(line=2316, offs=4)
*/
ATSstaticdec()
anairiats_rec_7
list_split_at_01440_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (anairiats_rec_7, tmp358) ;
ATSlocal (ats_ptr_type, tmp359) ;
ATSlocal (ats_ptr_type, tmp368) ;

__ats_lab_list_split_at_01440_ats_ptr_type:
/* ats_ptr_type tmp359 ; */
tmp368 = loop_52 (arg0, arg1, (&tmp359)) ;
tmp358.atslab_0 = tmp359 ;
tmp358.atslab_1 = tmp368 ;

return (tmp358) ;
} /* end of [list_split_at_01440_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dmacro2_eval0.dats: 26484(line=1353, offs=3) -- 28286(line=1453, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_short (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp342) ;
ATSlocal (ats_int_type, tmp343) ;
ATSlocal (ats_ptr_type, tmp344) ;
ATSlocal (ats_int_type, tmp345) ;
// ATSlocal_void (tmp346) ;
ATSlocal (ats_bool_type, tmp347) ;
// ATSlocal_void (tmp348) ;
// ATSlocal_void (tmp349) ;
// ATSlocal_void (tmp350) ;
// ATSlocal_void (tmp351) ;
// ATSlocal_void (tmp352) ;
ATSlocal (ats_ptr_type, tmp353) ;
ATSlocal (ats_ptr_type, tmp354) ;
ATSlocal (ats_ptr_type, tmp355) ;
ATSlocal (ats_bool_type, tmp356) ;
ATSlocal (anairiats_rec_7, tmp357) ;
ATSlocal (ats_ptr_type, tmp369) ;
ATSlocal (ats_ptr_type, tmp370) ;
ATSlocal (ats_ptr_type, tmp371) ;
ATSlocal (ats_ptr_type, tmp372) ;
ATSlocal (ats_ptr_type, tmp373) ;
ATSlocal (ats_ptr_type, tmp374) ;
// ATSlocal_void (tmp375) ;
ATSlocal (ats_ptr_type, tmp376) ;
ATSlocal (ats_ptr_type, tmp377) ;
ATSlocal (ats_ptr_type, tmp378) ;
ATSlocal (ats_ptr_type, tmp379) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_short:
tmp343 = list_length_01410_ats_ptr_type (arg4) ;
tmp344 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_arglst (arg1) ;
tmp345 = list_length_01410_ats_ptr_type (tmp344) ;
tmp347 = atspre_ilt (tmp343, tmp345) ;
if (tmp347) {
/* tmp348 = */ prerr_errmac_loc_02050_ (arg0) ;
/* tmp349 = */ atspre_prerr_string (ATSstrcst(": the macro function [")) ;
/* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2mac (arg1) ;
/* tmp351 = */ atspre_prerr_string (ATSstrcst("] is applied insufficiently.")) ;
/* tmp352 = */ atspre_prerr_newline () ;
tmp353 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp353)->tag = 94 ;
ats_selptrset_mac(anairiats_sum_4, tmp353, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_4, tmp353, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_4, tmp353, atslab_2, arg4) ;
/* tmp346 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp353) ;
} else {
/* empty */
} /* end of [if] */
/* ats_ptr_type tmp354 ; */
tmp354 = (ats_sum_ptr_type)0 ;
tmp356 = atspre_igte (tmp343, tmp345) ;
if (tmp356) {
tmp357 = list_split_at_01440_ats_ptr_type (arg4, tmp345) ;
tmp369 = ats_select_mac(tmp357, atslab_0) ;
tmp370 = ats_select_mac(tmp357, atslab_1) ;
tmp354 = ats_castfn_mac(ats_ptr_type, tmp369) ;
tmp355 = tmp370 ;
} else {
tmp354 = arg4 ;
tmp355 = (ats_sum_ptr_type)0 ;
} /* end of [if] */
tmp372 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_nil () ;
tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__evalctx_extend_arglst (arg0, arg1, 0, arg2, arg3, tmp344, tmp354, tmp372) ;
tmp374 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2mac_get_def (arg1) ;
tmp373 = _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval1_d2exp (arg0, tmp371, arg3, tmp374) ;
/* tmp375 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__evalctx_free (tmp371) ;
do {
/* branch: __ats_lab_143 */
__ats_lab_143_0:
if (tmp355 != (ats_sum_ptr_type)0) { goto __ats_lab_144_0 ; }
__ats_lab_143_1:
tmp342 = tmp373 ;
break ;

/* branch: __ats_lab_144 */
__ats_lab_144_0:
// if (tmp355 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_144_1:
tmp376 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, tmp373), atslab_d2exp_node) ;
do {
/* branch: __ats_lab_145 */
__ats_lab_145_0:
if (((ats_sum_ptr_type)tmp376)->tag != 28) { goto __ats_lab_146_0 ; }
__ats_lab_145_1:
tmp377 = ats_caselptrlab_mac(anairiats_sum_15, tmp376, atslab_0) ;
tmp378 = ats_caselptrlab_mac(anairiats_sum_15, tmp376, atslab_1) ;
tmp379 = list_append_01312_ats_ptr_type (tmp378, tmp355) ;
tmp342 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_applst (arg0, tmp377, tmp379) ;
break ;

/* branch: __ats_lab_146 */
__ats_lab_146_0:
__ats_lab_146_1:
tmp342 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_applst (arg0, tmp373, tmp355) ;
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp342) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__eval0_app_mac_short] */

/* 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_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_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_staexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_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_errmsg_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__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_staexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_2esats__staload () ;

return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_dmacro2_eval0_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_dmacro2_eval0_dats.c] */
