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

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

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

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_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"
/* external codes at top */
/* type definitions */
typedef
struct {
ats_ptr_type atslab_3 ;
ats_ptr_type atslab_4 ;
} anairiats_rec_0 ;

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

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

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

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

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

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

typedef
struct {
ats_ptr_type atslab_e0xp_loc ;
ats_ptr_type atslab_e0xp_node ;
} anairiats_rec_7 ;

typedef struct {
ats_ptr_type atslab_0 ;
} anairiats_sum_8 ;

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

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

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

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

/* 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_fixity_2esats__FXITMatm_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__FXITMopr_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPide_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPint_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPchar_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPfloat_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPstring_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPstringid_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPapp_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPfun_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPeval_8) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPlist_9) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__E0XPif_10) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALint_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALchar_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALstring_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALfloat_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__V1ALerr_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__E1XPlist_13) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__T1E_e0xp_tr_1) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_prerr_newline) () ;
ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ;
ATSextern_fun(ats_void_type, atspre_prerr_char) (ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_double_double) (ats_double_type, ats_double_type) ;
ATSextern_fun(ats_void_type, atspre_fprint_double) (ats_ptr_type, ats_double_type) ;
ATSextern_fun(ats_void_type, atspre_prerr_double) (ats_double_type) ;
ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_neq_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_void_type, atspre_prerr_int) (ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_string_is_empty) (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_BACKSLASH) ;
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_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxitm_app) (ats_ptr_type, ats_clo_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make) (ats_ptr_type, ats_clo_ref_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make_backslash) (ats_ptr_type, ats_clo_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fixity_resolve) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_ide) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_intrep) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_char) (ats_ptr_type, ats_char_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_float) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_v1al) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_none) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_fun) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_if) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_list) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_err) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xplst_tr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize) (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_02133_ () ;
static
ats_void_type do_e0xpact_fprint_1 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type prerr_error1_loc_02136_ (ats_ptr_type arg0) ;
static
ats_ptr_type appf_7 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type appf_7_closure_make () ;
static
ats_ptr_type appf_7_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type e1xpitm_app_8 (ats_ptr_type arg0) ;
static
ats_ptr_type e1xp_get_loc_9 (ats_ptr_type arg0) ;
static
ats_ptr_type __ats_fun_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_clo_ptr_type __ats_fun_11_closure_make () ;
static
ats_ptr_type __ats_fun_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type e1xp_make_opr_10 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type __ats_fun_13 (ats_ptr_type arg0) ;
static
ats_ptr_type __ats_fun_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_clo_ptr_type __ats_fun_14_closure_make () ;
static
ats_ptr_type __ats_fun_14_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type e1xpitm_backslash_12 (ats_ptr_type arg0) ;
static
ats_ptr_type e0xp_tr_errmsg_opr_15 (ats_ptr_type arg0) ;
static
ats_void_type e0xp_tr_errmsg_float_16 (ats_ptr_type arg0) ;
static
ats_ptr_type aux_item_18 (ats_ptr_type arg0) ;
static
ats_ptr_type loop_20 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type aux_itemlst_19 (ats_ptr_type arg0) ;
static
ats_void_type loop_24 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;

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

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 1917(line=63, offs=28) -- 1946(line=63, offs=57)
*/
ATSstaticdec()
ats_void_type
prerr_FILENAME_02133_ () {
/* local vardec */
// ATSlocal_void (tmp0) ;

__ats_lab_prerr_FILENAME_02133_:
/* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans1_e0xp")) ;
return /* (tmp0) */ ;
} /* end of [prerr_FILENAME_02133_] */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 2377(line=94, offs=1) -- 2690(line=114, offs=2)
*/
ATSstaticdec()
ats_void_type
do_e0xpact_fprint_1 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp1) ;
ATSlocal (ats_int_type, tmp2) ;
ATSlocal (ats_char_type, tmp3) ;
ATSlocal (ats_double_type, tmp4) ;
ATSlocal (ats_ptr_type, tmp5) ;
ATSlocal (ats_ptr_type, tmp6) ;

__ats_lab_do_e0xpact_fprint_1:
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_1_0 ; }
__ats_lab_0_1:
tmp2 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ;
/* tmp1 = */ atspre_fprint_int (arg0, tmp2) ;
break ;

/* branch: __ats_lab_1 */
__ats_lab_1_0:
if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_2_0 ; }
__ats_lab_1_1:
tmp3 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ;
/* tmp1 = */ atspre_fprint_char (arg0, tmp3) ;
break ;

/* branch: __ats_lab_2 */
__ats_lab_2_0:
if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_3_0 ; }
__ats_lab_2_1:
tmp4 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
/* tmp1 = */ atspre_fprint_double (arg0, tmp4) ;
break ;

/* branch: __ats_lab_3 */
__ats_lab_3_0:
if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_4_0 ; }
__ats_lab_3_1:
tmp5 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ;
/* tmp1 = */ atspre_fprint_string (arg0, tmp5) ;
break ;

/* branch: __ats_lab_4 */
__ats_lab_4_0:
// if (((ats_sum_ptr_type)arg1)->tag != 4) { ats_deadcode_failure_handle () ; }
__ats_lab_4_1:
tmp6 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 2624(line=111, offs=14) -- 2639(line=111, offs=29)", ATSstrcst("\n")) ;
/* tmp1 = */ atspre_assert_errmsg (ats_false_bool, tmp6) ;
break ;
} while (0) ;
return /* (tmp1) */ ;
} /* end of [do_e0xpact_fprint_1] */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 2773(line=119, offs=17) -- 2811(line=119, offs=55)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_prerr (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp7) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_prerr:
/* tmp7 = */ do_e0xpact_fprint_1 (stderr, arg0) ;
return /* (tmp7) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_prerr] */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 2838(line=121, offs=17) -- 2876(line=121, offs=55)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_print (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp8) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_print:
/* tmp8 = */ do_e0xpact_fprint_1 (stdout, arg0) ;
return /* (tmp8) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_print] */

/*
// /tmp/ATS-Postiats/src/pats_errmsg.dats: 1988(line=70, offs=17) -- 2046(line=73, offs=2)
*/
ATSstaticdec()
ats_void_type
prerr_error1_loc_02136_ (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp11) ;
// ATSlocal_void (tmp12) ;

__ats_lab_prerr_error1_loc_02136_:
/* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ;
/* tmp11 = */ atspre_prerr_string (ATSstrcst(": error(1)")) ;
return /* (tmp11) */ ;
} /* end of [prerr_error1_loc_02136_] */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 2951(line=129, offs=3) -- 3359(line=145, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_error (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp9) ;
// ATSlocal_void (tmp10) ;
// ATSlocal_void (tmp13) ;
// ATSlocal_void (tmp14) ;
ATSlocal (ats_int_type, tmp15) ;
ATSlocal (ats_char_type, tmp16) ;
ATSlocal (ats_ptr_type, tmp17) ;
ATSlocal (ats_double_type, tmp18) ;
ATSlocal (ats_ptr_type, tmp19) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_error:
/* tmp10 = */ prerr_error1_loc_02136_ (arg0) ;
/* tmp13 = */ atspre_prerr_string (ATSstrcst(": [#error] directive is encountered: ")) ;
do {
/* branch: __ats_lab_5 */
__ats_lab_5_0:
if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_6_0 ; }
__ats_lab_5_1:
tmp15 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ;
/* tmp14 = */ atspre_prerr_int (tmp15) ;
break ;

/* branch: __ats_lab_6 */
__ats_lab_6_0:
if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_7_0 ; }
__ats_lab_6_1:
tmp16 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ;
/* tmp14 = */ atspre_prerr_char (tmp16) ;
break ;

/* branch: __ats_lab_7 */
__ats_lab_7_0:
if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_8_0 ; }
__ats_lab_7_1:
tmp17 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ;
/* tmp14 = */ atspre_prerr_string (tmp17) ;
break ;

/* branch: __ats_lab_8 */
__ats_lab_8_0:
if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_9_0 ; }
__ats_lab_8_1:
tmp18 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
/* tmp14 = */ atspre_prerr_double (tmp18) ;
break ;

/* branch: __ats_lab_9 */
__ats_lab_9_0:
// if (((ats_sum_ptr_type)arg1)->tag != 4) { ats_deadcode_failure_handle () ; }
__ats_lab_9_1:
tmp19 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 3241(line=140, offs=18) -- 3257(line=140, offs=34)", ATSstrcst("\n")) ;
/* tmp14 = */ atspre_assert_errmsg (ats_false_bool, tmp19) ;
break ;
} while (0) ;
/* tmp9 = */ ats_exit (1) ;
return /* (tmp9) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_error] */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 3441(line=151, offs=3) -- 4029(line=172, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_assert (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp20) ;
ATSlocal (ats_bool_type, tmp21) ;
ATSlocal (ats_int_type, tmp22) ;
ATSlocal (ats_ptr_type, tmp23) ;
ATSlocal (ats_double_type, tmp24) ;
ATSlocal (ats_char_type, tmp25) ;
// ATSlocal_void (tmp26) ;
ATSlocal (ats_ptr_type, tmp27) ;
// ATSlocal_void (tmp28) ;
// ATSlocal_void (tmp29) ;
// ATSlocal_void (tmp30) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_assert:
do {
/* branch: __ats_lab_10 */
__ats_lab_10_0:
if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_11_0 ; }
__ats_lab_10_1:
tmp22 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ;
tmp21 = atspre_eq_int_int (tmp22, 0) ;
break ;

/* branch: __ats_lab_11 */
__ats_lab_11_0:
if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_12_0 ; }
__ats_lab_11_1:
tmp23 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ;
tmp21 = atspre_string_is_empty (ats_castfn_mac(ats_ptr_type, tmp23)) ;
break ;

/* branch: __ats_lab_12 */
__ats_lab_12_0:
if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_13_0 ; }
__ats_lab_12_1:
tmp24 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
tmp21 = atspre_eq_double_double (tmp24, 0.0) ;
break ;

/* branch: __ats_lab_13 */
__ats_lab_13_0:
if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_14_0 ; }
__ats_lab_13_1:
tmp25 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ;
tmp21 = atspre_eq_char_char (tmp25, '\000') ;
break ;

/* branch: __ats_lab_14 */
__ats_lab_14_0:
// if (((ats_sum_ptr_type)arg1)->tag != 4) { ats_deadcode_failure_handle () ; }
__ats_lab_14_1:
tmp27 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 3730(line=161, offs=18) -- 3746(line=161, offs=34)", ATSstrcst("\n")) ;
/* tmp26 = */ atspre_assert_errmsg (ats_false_bool, tmp27) ;
tmp21 = ats_false_bool ;
break ;
} while (0) ;
if (tmp21) {
/* tmp28 = */ prerr_error1_loc_02136_ (arg0) ;
/* tmp29 = */ atspre_prerr_string (ATSstrcst(": [#assert] failed!")) ;
/* tmp30 = */ atspre_prerr_newline () ;
/* tmp20 = */ ats_exit (1) ;
} else {
/* empty */
} /* end of [if] */
return /* (tmp20) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__do_e0xpact_assert] */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 4214(line=185, offs=4) -- 4561(line=198, offs=4)
*/
ATSstaticdec()
ats_ptr_type
appf_7 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp31) ;
ATSlocal (ats_ptr_type, tmp32) ;
ATSlocal (ats_ptr_type, tmp33) ;
ATSlocal (ats_ptr_type, tmp34) ;
ATSlocal (ats_ptr_type, tmp35) ;
ATSlocal (ats_ptr_type, tmp36) ;
ATSlocal (ats_ptr_type, tmp37) ;
ATSlocal (ats_ptr_type, tmp38) ;
ATSlocal (ats_ptr_type, tmp39) ;

__ats_lab_appf_7:
tmp32 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_e1xp_loc) ;
tmp33 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg1), atslab_e1xp_loc) ;
tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_combine (tmp32, tmp33) ;
tmp36 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg1), atslab_e1xp_node) ;
do {
/* branch: __ats_lab_15 */
__ats_lab_15_0:
if (((ats_sum_ptr_type)tmp36)->tag != 13) { goto __ats_lab_16_0 ; }
__ats_lab_15_1:
tmp37 = ats_caselptrlab_mac(anairiats_sum_4, tmp36, atslab_0) ;
tmp35 = tmp37 ;
break ;

/* branch: __ats_lab_16 */
__ats_lab_16_0:
__ats_lab_16_1:
tmp38 = (ats_sum_ptr_type)0 ;
tmp35 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp35, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_6, tmp35, atslab_1, tmp38) ;
break ;
} while (0) ;
tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app (tmp34, arg0, tmp33, tmp35) ;
tmp31 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp31)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_4, tmp31, atslab_0, tmp39) ;
return (tmp31) ;
} /* end of [appf_7] */

typedef struct {
ats_fun_ptr_type closure_fun ;
} appf_7_closure_type ;

ats_ptr_type
appf_7_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) {
return appf_7 (arg0, arg1) ;
} /* end of function */

ATSinline()
ats_void_type
appf_7_closure_init (appf_7_closure_type *p_clo) {
p_clo->closure_fun = (ats_fun_ptr_type)&appf_7_clofun ;
return ;
} /* end of function */

ats_clo_ptr_type
appf_7_closure_make () {
appf_7_closure_type *p_clo = ATS_MALLOC(sizeof(appf_7_closure_type)) ;
appf_7_closure_init (p_clo) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 4607(line=202, offs=4) -- 4669(line=203, offs=51)
*/
ATSstaticdec()
ats_ptr_type
e1xpitm_app_8 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp40) ;

__ats_lab_e1xpitm_app_8:
tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxitm_app (arg0, appf_7_closure_make ()) ;
return (tmp40) ;
} /* end of [e1xpitm_app_8] */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 4738(line=210, offs=4) -- 4783(line=210, offs=49)
*/
ATSstaticdec()
ats_ptr_type
e1xp_get_loc_9 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp41) ;

__ats_lab_e1xp_get_loc_9:
tmp41 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_e1xp_loc) ;
return (tmp41) ;
} /* end of [e1xp_get_loc_9] */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 4884(line=217, offs=5) -- 4943(line=217, offs=64)
*/
ATSstaticdec()
ats_ptr_type
__ats_fun_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp43) ;

__ats_lab___ats_fun_11:
tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app (arg0, arg1, arg2, arg3) ;
return (tmp43) ;
} /* end of [__ats_fun_11] */

typedef struct {
ats_fun_ptr_type closure_fun ;
} __ats_fun_11_closure_type ;

ats_ptr_type
__ats_fun_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
return __ats_fun_11 (arg0, arg1, arg2, arg3) ;
} /* end of function */

ATSinline()
ats_void_type
__ats_fun_11_closure_init (__ats_fun_11_closure_type *p_clo) {
p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_11_clofun ;
return ;
} /* end of function */

ats_clo_ptr_type
__ats_fun_11_closure_make () {
__ats_fun_11_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_11_closure_type)) ;
__ats_fun_11_closure_init (p_clo) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 4788(line=212, offs=4) -- 4986(line=220, offs=2)
*/
ATSstaticdec()
ats_ptr_type
e1xp_make_opr_10 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp42) ;

__ats_lab_e1xp_make_opr_10:
tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make (&e1xp_get_loc_9, __ats_fun_11_closure_make (), arg0, arg1) ;
return (tmp42) ;
} /* end of [e1xp_make_opr_10] */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 5100(line=225, offs=5) -- 5119(line=225, offs=24)
*/
ATSstaticdec()
ats_ptr_type
__ats_fun_13 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp45) ;

__ats_lab___ats_fun_13:
tmp45 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg0), atslab_e1xp_loc) ;
return (tmp45) ;
} /* end of [__ats_fun_13] */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 5124(line=226, offs=5) -- 5183(line=226, offs=64)
*/
ATSstaticdec()
ats_ptr_type
__ats_fun_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp46) ;

__ats_lab___ats_fun_14:
tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_app (arg0, arg1, arg2, arg3) ;
return (tmp46) ;
} /* end of [__ats_fun_14] */

typedef struct {
ats_fun_ptr_type closure_fun ;
} __ats_fun_14_closure_type ;

ats_ptr_type
__ats_fun_14_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
return __ats_fun_14 (arg0, arg1, arg2, arg3) ;
} /* end of function */

ATSinline()
ats_void_type
__ats_fun_14_closure_init (__ats_fun_14_closure_type *p_clo) {
p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_14_clofun ;
return ;
} /* end of function */

ats_clo_ptr_type
__ats_fun_14_closure_make () {
__ats_fun_14_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_14_closure_type)) ;
__ats_fun_14_closure_init (p_clo) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 5020(line=222, offs=4) -- 5234(line=229, offs=2)
*/
ATSstaticdec()
ats_ptr_type
e1xpitm_backslash_12 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp44) ;

__ats_lab_e1xpitm_backslash_12:
tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fxopr_make_backslash (&__ats_fun_13, __ats_fun_14_closure_make (), arg0) ;
return (tmp44) ;
} /* end of [e1xpitm_backslash_12] */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 5300(line=235, offs=4) -- 5562(line=244, offs=4)
*/
ATSstaticdec()
ats_ptr_type
e0xp_tr_errmsg_opr_15 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp47) ;
ATSlocal (ats_ptr_type, tmp48) ;
// ATSlocal_void (tmp49) ;
// ATSlocal_void (tmp50) ;
// ATSlocal_void (tmp51) ;
// ATSlocal_void (tmp52) ;
ATSlocal (ats_ptr_type, tmp53) ;

__ats_lab_e0xp_tr_errmsg_opr_15:
tmp48 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_e0xp_loc) ;
/* tmp49 = */ prerr_error1_loc_02136_ (tmp48) ;
/* tmp50 = */ atspre_prerr_string (ATSstrcst(": the operator needs to be applied.")) ;
/* tmp51 = */ atspre_prerr_newline () ;
tmp53 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp53)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_4, tmp53, atslab_0, arg0) ;
/* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp53) ;
tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_err (tmp48) ;
return (tmp47) ;
} /* end of [e0xp_tr_errmsg_opr_15] */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 5598(line=246, offs=4) -- 5861(line=254, offs=4)
*/
ATSstaticdec()
ats_void_type
e0xp_tr_errmsg_float_16 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp54) ;
// ATSlocal_void (tmp55) ;
ATSlocal (ats_ptr_type, tmp56) ;
// ATSlocal_void (tmp57) ;
// ATSlocal_void (tmp58) ;
ATSlocal (ats_ptr_type, tmp59) ;

__ats_lab_e0xp_tr_errmsg_float_16:
tmp56 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_e0xp_loc) ;
/* tmp55 = */ prerr_error1_loc_02136_ (tmp56) ;
/* tmp57 = */ atspre_prerr_string (ATSstrcst(": the floating point number is required to be of base 10.")) ;
/* tmp58 = */ atspre_prerr_newline () ;
tmp59 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp59)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_4, tmp59, atslab_0, arg0) ;
/* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__the_trans1errlst_add (tmp59) ;
return /* (tmp54) */ ;
} /* end of [e0xp_tr_errmsg_float_16] */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 5958(line=260, offs=5) -- 8105(line=338, offs=4)
*/
ATSstaticdec()
ats_ptr_type
aux_item_18 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp61) ;
ATSlocal (ats_ptr_type, tmp62) ;
ATSlocal (ats_ptr_type, tmp63) ;
ATSlocal (ats_ptr_type, tmp64) ;
ATSlocal (ats_bool_type, tmp65) ;
ATSlocal (ats_ptr_type, tmp66) ;
ATSlocal (ats_ptr_type, tmp67) ;
ATSlocal (ats_ptr_type, tmp68) ;
ATSlocal (ats_ptr_type, tmp69) ;
ATSlocal (ats_ptr_type, tmp70) ;
ATSlocal (ats_ptr_type, tmp71) ;
ATSlocal (ats_ptr_type, tmp72) ;
ATSlocal (ats_ptr_type, tmp73) ;
ATSlocal (ats_ptr_type, tmp74) ;
ATSlocal (ats_ptr_type, tmp75) ;
ATSlocal (ats_ptr_type, tmp76) ;
ATSlocal (ats_char_type, tmp77) ;
ATSlocal (ats_ptr_type, tmp78) ;
ATSlocal (ats_ptr_type, tmp79) ;
ATSlocal (ats_ptr_type, tmp80) ;
ATSlocal (ats_ptr_type, tmp81) ;
ATSlocal (ats_ptr_type, tmp82) ;
ATSlocal (ats_ptr_type, tmp83) ;
ATSlocal (ats_ptr_type, tmp84) ;
ATSlocal (ats_ptr_type, tmp85) ;
ATSlocal (ats_ptr_type, tmp86) ;
ATSlocal (ats_int_type, tmp87) ;
ATSlocal (ats_ptr_type, tmp88) ;
// ATSlocal_void (tmp89) ;
ATSlocal (ats_bool_type, tmp90) ;
ATSlocal (ats_ptr_type, tmp91) ;
ATSlocal (ats_ptr_type, tmp92) ;
ATSlocal (ats_ptr_type, tmp93) ;
ATSlocal (ats_ptr_type, tmp94) ;
ATSlocal (ats_ptr_type, tmp95) ;
ATSlocal (ats_ptr_type, tmp96) ;
ATSlocal (ats_ptr_type, tmp97) ;
ATSlocal (ats_ptr_type, tmp98) ;
ATSlocal (ats_ptr_type, tmp99) ;
ATSlocal (ats_ptr_type, tmp100) ;
ATSlocal (ats_ptr_type, tmp101) ;
ATSlocal (ats_ptr_type, tmp102) ;
ATSlocal (ats_ptr_type, tmp103) ;
ATSlocal (ats_ptr_type, tmp104) ;
ATSlocal (ats_ptr_type, tmp105) ;
ATSlocal (ats_ptr_type, tmp106) ;
ATSlocal (ats_ptr_type, tmp107) ;
ATSlocal (ats_ptr_type, tmp108) ;
ATSlocal (ats_ptr_type, tmp109) ;
ATSlocal (ats_ptr_type, tmp110) ;
ATSlocal (ats_ptr_type, tmp111) ;
ATSlocal (ats_ptr_type, tmp112) ;
ATSlocal (ats_ptr_type, tmp113) ;

__ats_lab_aux_item_18:
tmp62 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_e0xp_loc) ;
tmp63 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_e0xp_node) ;
do {
/* branch: __ats_lab_17 */
__ats_lab_17_0:
if (((ats_sum_ptr_type)tmp63)->tag != 0) { goto __ats_lab_18_0 ; }
__ats_lab_17_1:
tmp64 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ;
tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__eq_symbol_symbol (tmp64, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_BACKSLASH) ;
if (!tmp65) { goto __ats_lab_18_1 ; }
tmp61 = e1xpitm_backslash_12 (tmp62) ;
break ;

/* branch: __ats_lab_18 */
__ats_lab_18_0:
if (((ats_sum_ptr_type)tmp63)->tag != 0) { goto __ats_lab_21_0 ; }
__ats_lab_18_1:
tmp66 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ;
tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__the_fxtyenv_find (tmp66) ;
do {
/* branch: __ats_lab_19 */
__ats_lab_19_0:
if (tmp67 != (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; }
__ats_lab_19_1:
tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_ide (tmp62, tmp66) ;
tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp61)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp68) ;
break ;

/* branch: __ats_lab_20 */
__ats_lab_20_0:
// if (tmp67 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_20_1:
tmp69 = ats_caselptrlab_mac(anairiats_sum_8, tmp67, atslab_0) ;
ATS_FREE(tmp67) ;
tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_ide (tmp62, tmp66) ;
tmp61 = e1xp_make_opr_10 (tmp70, tmp69) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_21 */
__ats_lab_21_0:
if (((ats_sum_ptr_type)tmp63)->tag != 1) { goto __ats_lab_22_0 ; }
__ats_lab_21_1:
tmp71 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ;
tmp72 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp71), atslab_token_node) ;
if (((ats_sum_ptr_type)tmp72)->tag != 150) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 6453(line=276, offs=11) -- 6498(line=277, offs=40)") ; }
tmp73 = ats_caselptrlab_mac(anairiats_sum_10, tmp72, atslab_1) ;
tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_intrep (tmp62, tmp73) ;
tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp61)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp74) ;
break ;

/* branch: __ats_lab_22 */
__ats_lab_22_0:
if (((ats_sum_ptr_type)tmp63)->tag != 2) { goto __ats_lab_23_0 ; }
__ats_lab_22_1:
tmp75 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ;
tmp76 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp75), atslab_token_node) ;
if (((ats_sum_ptr_type)tmp76)->tag != 151) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 6634(line=284, offs=11) -- 6667(line=285, offs=21)") ; }
tmp77 = ats_caselptrlab_mac(anairiats_sum_2, tmp76, atslab_0) ;
tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_char (tmp62, tmp77) ;
tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp61)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp78) ;
break ;

/* branch: __ats_lab_23 */
__ats_lab_23_0:
if (((ats_sum_ptr_type)tmp63)->tag != 4) { goto __ats_lab_24_0 ; }
__ats_lab_23_1:
tmp79 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ;
tmp80 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp79), atslab_token_node) ;
if (((ats_sum_ptr_type)tmp80)->tag != 154) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 6792(line=290, offs=11) -- 6829(line=291, offs=21)") ; }
tmp81 = ats_caselptrlab_mac(anairiats_sum_4, tmp80, atslab_0) ;
tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string (tmp62, tmp81) ;
tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp61)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp82) ;
break ;

/* branch: __ats_lab_24 */
__ats_lab_24_0:
if (((ats_sum_ptr_type)tmp63)->tag != 5) { goto __ats_lab_25_0 ; }
__ats_lab_24_1:
tmp83 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ;
tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_string (tmp62, tmp83) ;
tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp61)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp84) ;
break ;

/* branch: __ats_lab_25 */
__ats_lab_25_0:
if (((ats_sum_ptr_type)tmp63)->tag != 3) { goto __ats_lab_26_0 ; }
__ats_lab_25_1:
tmp85 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ;
tmp86 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp85), atslab_token_node) ;
if (((ats_sum_ptr_type)tmp86)->tag != 152) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 7020(line=297, offs=11) -- 7067(line=298, offs=40)") ; }
tmp87 = ats_caselptrlab_mac(anairiats_sum_10, tmp86, atslab_0) ;
tmp88 = ats_caselptrlab_mac(anairiats_sum_10, tmp86, atslab_1) ;
tmp90 = atspre_neq_int_int (tmp87, 10) ;
if (tmp90) {
/* tmp89 = */ e0xp_tr_errmsg_float_16 (arg0) ;
} else {
/* empty */
} /* end of [if] */
tmp91 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_float (tmp62, tmp88) ;
tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp61)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp91) ;
break ;

/* branch: __ats_lab_26 */
__ats_lab_26_0:
if (((ats_sum_ptr_type)tmp63)->tag != 9) { goto __ats_lab_27_0 ; }
__ats_lab_26_1:
tmp92 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ;
tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xplst_tr (tmp92) ;
tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_list (tmp62, tmp94) ;
tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp61)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp93) ;
break ;

/* branch: __ats_lab_27 */
__ats_lab_27_0:
if (((ats_sum_ptr_type)tmp63)->tag != 6) { goto __ats_lab_28_0 ; }
__ats_lab_27_1:
tmp96 = e1xpitm_app_8 (tmp62) ;
tmp97 = aux_itemlst_19 (arg0) ;
tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__fixity_resolve (tmp62, &e1xp_get_loc_9, tmp96, tmp97) ;
tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp61)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp95) ;
break ;

/* branch: __ats_lab_28 */
__ats_lab_28_0:
if (((ats_sum_ptr_type)tmp63)->tag != 7) { goto __ats_lab_29_0 ; }
__ats_lab_28_1:
tmp98 = ats_caselptrlab_mac(anairiats_sum_11, tmp63, atslab_0) ;
tmp99 = ats_caselptrlab_mac(anairiats_sum_11, tmp63, atslab_1) ;
tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (tmp99) ;
tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_fun (tmp62, tmp98, tmp101) ;
tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp61)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp100) ;
break ;

/* branch: __ats_lab_29 */
__ats_lab_29_0:
if (((ats_sum_ptr_type)tmp63)->tag != 10) { goto __ats_lab_32_0 ; }
__ats_lab_29_1:
tmp102 = ats_caselptrlab_mac(anairiats_sum_12, tmp63, atslab_0) ;
tmp103 = ats_caselptrlab_mac(anairiats_sum_12, tmp63, atslab_1) ;
tmp104 = ats_caselptrlab_mac(anairiats_sum_12, tmp63, atslab_2) ;
tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (tmp102) ;
tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (tmp103) ;
do {
/* branch: __ats_lab_30 */
__ats_lab_30_0:
if (tmp104 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; }
__ats_lab_30_1:
tmp108 = ats_caselptrlab_mac(anairiats_sum_8, tmp104, atslab_0) ;
tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (tmp108) ;
break ;

/* branch: __ats_lab_31 */
__ats_lab_31_0:
if (tmp104 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 7743(line=325, offs=9) -- 7809(line=325, offs=75)") ; }
__ats_lab_31_1:
tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_none (tmp62) ;
break ;
} while (0) ;
tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_if (tmp62, tmp105, tmp106, tmp107) ;
tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp61)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp109) ;
break ;

/* branch: __ats_lab_32 */
__ats_lab_32_0:
// if (((ats_sum_ptr_type)tmp63)->tag != 8) { ats_deadcode_failure_handle () ; }
__ats_lab_32_1:
tmp110 = ats_caselptrlab_mac(anairiats_sum_4, tmp63, atslab_0) ;
tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (tmp110) ;
tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__e1xp_valize (tmp111) ;
tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__e1xp_v1al (tmp62, tmp112) ;
tmp61 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp61)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_4, tmp61, atslab_0, tmp113) ;
break ;
} while (0) ;
return (tmp61) ;
} /* end of [aux_item_18] */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 8183(line=342, offs=7) -- 8432(line=349, offs=40)
*/
ATSstaticdec()
ats_ptr_type
loop_20 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp115) ;
ATSlocal (ats_ptr_type, tmp116) ;
ATSlocal (ats_ptr_type, tmp117) ;
ATSlocal (ats_ptr_type, tmp118) ;
ATSlocal (ats_ptr_type, tmp119) ;
ATSlocal (ats_ptr_type, tmp120) ;
ATSlocal (ats_ptr_type, tmp121) ;

__ats_lab_loop_20:
tmp116 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg0), atslab_e0xp_node) ;
do {
/* branch: __ats_lab_33 */
__ats_lab_33_0:
if (((ats_sum_ptr_type)tmp116)->tag != 6) { goto __ats_lab_34_0 ; }
__ats_lab_33_1:
tmp117 = ats_caselptrlab_mac(anairiats_sum_11, tmp116, atslab_0) ;
tmp118 = ats_caselptrlab_mac(anairiats_sum_11, tmp116, atslab_1) ;
tmp120 = aux_item_18 (tmp118) ;
tmp119 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp119, atslab_0, tmp120) ;
ats_selptrset_mac(anairiats_sum_6, tmp119, atslab_1, arg1) ;
arg0 = tmp117 ;
arg1 = tmp119 ;
goto __ats_lab_loop_20 ; // tail call
break ;

/* branch: __ats_lab_34 */
__ats_lab_34_0:
__ats_lab_34_1:
tmp121 = aux_item_18 (arg0) ;
tmp115 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp115, atslab_0, tmp121) ;
ats_selptrset_mac(anairiats_sum_6, tmp115, atslab_1, arg1) ;
break ;
} while (0) ;
return (tmp115) ;
} /* end of [loop_20] */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 8134(line=340, offs=5) -- 8483(line=353, offs=4)
*/
ATSstaticdec()
ats_ptr_type
aux_itemlst_19 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp114) ;
ATSlocal (ats_ptr_type, tmp122) ;

__ats_lab_aux_itemlst_19:
tmp122 = (ats_sum_ptr_type)0 ;
tmp114 = loop_20 (arg0, tmp122) ;
return (tmp114) ;
} /* end of [aux_itemlst_19] */

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 5940(line=258, offs=19) -- 8614(line=363, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp60) ;
ATSlocal (ats_ptr_type, tmp123) ;
ATSlocal (ats_ptr_type, tmp124) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr:
tmp123 = aux_item_18 (arg0) ;
do {
/* branch: __ats_lab_35 */
__ats_lab_35_0:
if (((ats_sum_ptr_type)tmp123)->tag != 0) { goto __ats_lab_36_0 ; }
__ats_lab_35_1:
tmp124 = ats_caselptrlab_mac(anairiats_sum_4, tmp123, atslab_0) ;
tmp60 = tmp124 ;
break ;

/* branch: __ats_lab_36 */
__ats_lab_36_0:
// if (((ats_sum_ptr_type)tmp123)->tag != 1) { ats_deadcode_failure_handle () ; }
__ats_lab_36_1:
tmp60 = e0xp_tr_errmsg_opr_15 (arg0) ;
break ;
} while (0) ;
return (tmp60) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_24 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp129) ;
ATSlocal (ats_ptr_type, tmp130) ;
ATSlocal (ats_ptr_type, tmp131) ;
ATSlocal (ats_ptr_type, tmp132) ;
ATSlocal (ats_ptr_type, tmp133) ;
ATSlocal (ats_ptr_type, tmp134) ;
ATSlocal (ats_ptr_type, tmp135) ;

__ats_lab_loop_24:
do {
/* branch: __ats_lab_37 */
__ats_lab_37_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; }
__ats_lab_37_1:
tmp130 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp131 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp132 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp130, arg3) ;
tmp133 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp133, atslab_0, tmp132) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp133 ;
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp134 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
arg0 = tmp131 ;
arg1 = arg1 ;
arg2 = tmp134 ;
arg3 = arg3 ;
goto __ats_lab_loop_24 ; // tail call
break ;

/* branch: __ats_lab_38 */
__ats_lab_38_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_38_1:
tmp135 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp135 ;
break ;
} while (0) ;
return /* (tmp129) */ ;
} /* end of [loop_24] */

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

__ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type:
/* ats_ptr_type tmp136 ; */
/* tmp137 = */ loop_24 (arg0, arg1, (&tmp136), arg2) ;
tmp128 = tmp136 ;
return (tmp128) ;
} /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */

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

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

/*
// /tmp/ATS-Postiats/src/pats_trans1_e0xp.dats: 8680(line=368, offs=12) -- 8718(line=368, offs=50)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xplst_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp125) ;
ATSlocal (ats_ptr_type, tmp126) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xplst_tr:
tmp126 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xp_tr) ;
tmp125 = ats_castfn_mac(ats_ptr_type, tmp126) ;
return (tmp125) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__e0xplst_tr] */

/* static load function */

// extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_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_basics_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__staload_flag = 1 ;

// _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_fixity_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp1_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans1_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans1_env_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_e1xpval_2esats__staload () ;

return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans1_e0xp_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_trans1_e0xp_dats.c] */
