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

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

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

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_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_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_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_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_lstbefitm_var ;
ats_int_type atslab_lstbefitm_linval ;
ats_ptr_type atslab_lstbefitm_type ;
} anairiats_rec_1 ;

typedef struct {
ats_ptr_type atslab_0 ;
} anairiats_sum_2 ;

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

typedef
struct {
ats_ptr_type atslab_lstaftitm_var ;
ats_int_type atslab_lstaftitm_knd ;
ats_ptr_type atslab_lstaftitm_type ;
ats_ptr_type atslab_lstaftitm_saits ;
} anairiats_rec_4 ;

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

typedef
struct {
ats_ptr_type atslab_i2nvresstate_svs ;
ats_ptr_type atslab_i2nvresstate_gua ;
ats_ptr_type atslab_i2nvresstate_arg ;
ats_ptr_type atslab_i2nvresstate_met ;
} anairiats_rec_6 ;

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

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

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

typedef
struct {
ats_ptr_type atslab_c3nstroptref_loc ;
ats_ptr_type atslab_c3nstroptref_ref ;
} anairiats_rec_10 ;

/* 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, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINdone_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_some_89) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_some2_91) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_var_8) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__LSTAFTC3NSTR_0) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_fprint_newline) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_prerr_newline) () ;
ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_neq_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_int_type, atspre_compare_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_bool_type, atspre_char_isdigit) (ats_char_type) ;
ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_int_type, atspre_add_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_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_uint_type, atspre_add_uint_uint) (ats_uint_type, ats_uint_type) ;
ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_ieq) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_llint_type, atspre_llint_of_int) (ats_int_type) ;
ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ;
ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, ats_size_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_sub_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_size_type, atspre_mul_size1_size1) (ats_size_type, ats_size_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_gt_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, ats_malloc_gc) (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_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_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_char_type, atspre_string_get_char_at) (ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_char_type, atspre_string_get_char_at__intsz) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, atspre_string_copy) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ;
ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ;
ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ;
ATSextern_val(ats_ptr_type, atspre_stropt_none) ;
ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_tostringf) (ats_ptr_type, ...) ;
ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ;
ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_type) ;
ATSextern_fun(ats_size_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_cap) (ats_ref_type) ;
ATSextern_fun(ats_size_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_size) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_empty) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_empty) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_full) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_full) (ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_initialize_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_uninitialize) (ats_ref_type) ;
ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_uninitialize_vt) (ats_ref_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_takeout_tsz) (ats_ref_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_insert_end_many_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_remove_beg_many_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_void_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_clear_all) (ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_copyout_tsz) (ats_ref_type, ats_size_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_update_capacity_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refeq) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2expopt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_finknd) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve) (ats_ptr_type, ats_ptr_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_trans3_env_2esats__c3nstr_itmlst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstbefitm) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst_vt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__saityplst_check) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitm) (ats_ptr_type, ats_ref_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitmlst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_free) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_make) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_update) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_reverse) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftc3nstr_check) (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 () ;
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_2libats_2ngc_2SATS_2deque_arr_2esats__lemma_deque_param_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_encode_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_decode_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_clear_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_insert_beg_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_insert_end_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_remove_beg_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_remove_end_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ;
extern
ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ;
#endif /* _ATS_PROOFCHECK */

/* assuming abstract types */
int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__sasp__lstaftc3nstr_viewtype = 0 ;

/* sum constructor declarations */
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__LSTAFTC3NSTR_0) ;

/* exn constructor declarations */
/* global dynamic (non-functional) constant declarations */
/* internal function declarations */
static
ats_void_type prerr_FILENAME_02433_ () ;
static
ats_void_type aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_clo_ptr_type aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ;
static
ats_void_type aux_5_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_void_type fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_void_type f_7 (ats_ptr_type arg0) ;
static
ats_void_type loop_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type f_12 (ats_ptr_type arg0) ;
static
ats_int_type auxlst_16 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type loop_22 (ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type revapp_27 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_bool_type d2var_is_done_32 (ats_ptr_type arg0) ;
static
ats_ptr_type aux1_33 (ats_ptr_type arg0) ;
static
ats_ptr_type aux2_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_ptr_type aux3_35 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ;
static
ats_void_type auxlst_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type loop_39 (ats_ptr_type arg0) ;
static
ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type prerr_error3_loc_02439_ (ats_ptr_type arg0) ;
static
ats_void_type auxerr_some_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type auxerr_none_42 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type auxerr_some2_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_void_type auxsait_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ;
static
ats_void_type auxmain_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type auxmainlst_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;

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

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 1761(line=58, offs=18) -- 1792(line=58, offs=49)
*/
ATSstaticdec()
ats_void_type
prerr_FILENAME_02433_ () {
/* local vardec */
// ATSlocal_void (tmp0) ;

__ats_lab_prerr_FILENAME_02433_:
/* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_lstate")) ;
return /* (tmp0) */ ;
} /* end of [prerr_FILENAME_02433_] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 2322(line=95, offs=3) -- 2454(line=98, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitm_make (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1) ;
ATSlocal (ats_ptr_type, tmp2) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitm_make:
tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (arg0) ;
tmp1 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, tmp1, atslab_lstbefitm_var, arg0) ;
ats_selptrset_mac(anairiats_rec_1, tmp1, atslab_lstbefitm_linval, arg1) ;
ats_selptrset_mac(anairiats_rec_1, tmp1, atslab_lstbefitm_type, tmp2) ;

return (tmp1) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitm_make] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 2531(line=103, offs=18) -- 3015(line=124, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstbefitm (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp3) ;
// ATSlocal_void (tmp4) ;
// ATSlocal_void (tmp5) ;
ATSlocal (ats_ptr_type, tmp6) ;
// ATSlocal_void (tmp7) ;
// ATSlocal_void (tmp8) ;
ATSlocal (ats_int_type, tmp9) ;
// ATSlocal_void (tmp10) ;
ATSlocal (ats_ptr_type, tmp11) ;
// ATSlocal_void (tmp12) ;
ATSlocal (ats_ptr_type, tmp13) ;
// ATSlocal_void (tmp14) ;
// ATSlocal_void (tmp15) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstbefitm:
/* tmp4 = */ atspre_fprint_string (arg0, ATSstrcst("lstbefitm(")) ;
tmp6 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_lstbefitm_var) ;
/* tmp5 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp6) ;
/* tmp7 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ;
tmp9 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_lstbefitm_linval) ;
/* tmp8 = */ atspre_fprint_int (arg0, tmp9) ;
/* tmp10 = */ atspre_fprint_string (arg0, ATSstrcst(", ")) ;
tmp11 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_lstbefitm_type) ;
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (tmp11 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; }
__ats_lab_0_1:
tmp13 = ats_caselptrlab_mac(anairiats_sum_2, tmp11, atslab_0) ;
/* tmp14 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ;
/* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp13) ;
/* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ;
break ;

/* branch: __ats_lab_1 */
__ats_lab_1_0:
// if (tmp11 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_1_1:
/* tmp12 = */ atspre_fprint_string (arg0, ATSstrcst("None()")) ;
break ;
} while (0) ;
/* tmp3 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ;
return /* (tmp3) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstbefitm] */

/*
// /tmp/ATS-Postiats/src/pats_utils.dats: 11884(line=651, offs=1) -- 12164(line=665, offs=2)
*/
ATSstaticdec()
ats_void_type
aux_5 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp18) ;
ATSlocal (ats_ptr_type, tmp19) ;
ATSlocal (ats_ptr_type, tmp20) ;
// ATSlocal_void (tmp21) ;
ATSlocal (ats_bool_type, tmp22) ;
// ATSlocal_void (tmp23) ;
ATSlocal (ats_int_type, tmp24) ;

__ats_lab_aux_5:
do {
/* branch: __ats_lab_2 */
__ats_lab_2_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; }
__ats_lab_2_1:
break ;

/* branch: __ats_lab_3 */
__ats_lab_3_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_3_1:
tmp19 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp20 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp22 = atspre_gt_int_int (arg1, 0) ;
if (tmp22) {
/* tmp21 = */ atspre_fprint_string (env0, env1) ;
} else {
/* empty */
} /* end of [if] */
/* tmp23 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp19) ;
tmp24 = atspre_add_int_int (arg1, 1) ;
arg0 = tmp20 ;
arg1 = tmp24 ;
goto __ats_lab_aux_5 ; // tail call
break ;
} while (0) ;
return /* (tmp18) */ ;
} /* end of [aux_5] */

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

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

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

ats_clo_ptr_type
aux_5_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
aux_5_closure_type *p_clo = ATS_MALLOC(sizeof(aux_5_closure_type)) ;
aux_5_closure_init (p_clo, env0, env1, env2) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_utils.dats: 11844(line=646, offs=11) -- 12207(line=669, offs=4)
*/
ATSstaticdec()
ats_void_type
fprintlst_01887_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp17) ;

__ats_lab_fprintlst_01887_ats_ptr_type:
/* tmp17 = */ aux_5 (arg0, arg2, arg3, arg1, 0) ;
return /* (tmp17) */ ;
} /* end of [fprintlst_01887_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 3078(line=128, offs=3) -- 3137(line=128, offs=62)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstbefitmlst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp16) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstbefitmlst:
/* tmp16 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstbefitm) ;
return /* (tmp16) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstbefitmlst] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 3272(line=136, offs=7) -- 3351(line=137, offs=55)
*/
ATSstaticdec()
ats_void_type
f_7 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp26) ;
ATSlocal (ats_ptr_type, tmp27) ;
ATSlocal (ats_ptr_type, tmp28) ;

__ats_lab_f_7:
tmp27 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_lstbefitm_var) ;
tmp28 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_lstbefitm_type) ;
/* tmp26 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp27, tmp28) ;
return /* (tmp26) */ ;
} /* end of [f_7] */

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

__ats_lab_loop_10:
do {
/* branch: __ats_lab_4 */
__ats_lab_4_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; }
__ats_lab_4_1:
tmp32 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp33 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
/* tmp34 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp32, arg2) ;
arg0 = tmp33 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab_loop_10 ; // tail call
break ;

/* branch: __ats_lab_5 */
__ats_lab_5_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_5_1:
break ;
} while (0) ;
return /* (tmp31) */ ;
} /* end of [loop_10] */

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

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

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

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

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 3230(line=135, offs=3) -- 3369(line=139, offs=2)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp25) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type:
/* tmp25 = */ list_app_fun_01301_ats_ptr_type (arg0, &f_7) ;
return /* (tmp25) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 3514(line=144, offs=7) -- 3712(line=151, offs=6)
*/
ATSstaticdec()
ats_void_type
f_12 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp36) ;
ATSlocal (ats_ptr_type, tmp37) ;
// ATSlocal_void (tmp38) ;
ATSlocal (ats_int_type, tmp39) ;
ATSlocal (ats_ptr_type, tmp40) ;

__ats_lab_f_12:
tmp37 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_lstbefitm_var) ;
tmp39 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_lstbefitm_linval) ;
/* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval (tmp37, tmp39) ;
tmp40 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_lstbefitm_type) ;
/* tmp36 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp37, tmp40) ;
return /* (tmp36) */ ;
} /* end of [f_12] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 3472(line=143, offs=3) -- 3728(line=152, offs=2)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_linval_type (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp35) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_linval_type:
/* tmp35 = */ list_app_fun_01301_ats_ptr_type (arg0, &f_12) ;
return /* (tmp35) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_linval_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 3984(line=163, offs=15) -- 4172(line=170, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityp (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp41) ;
ATSlocal (ats_ptr_type, tmp42) ;
// ATSlocal_void (tmp43) ;
// ATSlocal_void (tmp44) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityp:
do {
/* branch: __ats_lab_6 */
__ats_lab_6_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; }
__ats_lab_6_1:
tmp42 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ;
/* tmp43 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ;
/* tmp44 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fpprint_s2exp (arg0, tmp42) ;
/* tmp41 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ;
break ;

/* branch: __ats_lab_7 */
__ats_lab_7_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_7_1:
/* tmp41 = */ atspre_fprint_string (arg0, ATSstrcst("None()")) ;
break ;
} while (0) ;
return /* (tmp41) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityp] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 4283(line=176, offs=3) -- 4339(line=176, offs=59)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp45) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst:
/* tmp45 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityp) ;
return /* (tmp45) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 4473(line=183, offs=3) -- 4539(line=183, offs=69)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst_vt (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp46) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst_vt:
/* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst (arg0, ats_castfn_mac(ats_ptr_type, arg1)) ;
return /* (tmp46) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst_vt] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 4715(line=195, offs=5) -- 5079(line=209, offs=2)
*/
ATSstaticdec()
ats_int_type
auxlst_16 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp47) ;
ATSlocal (ats_ptr_type, tmp48) ;
ATSlocal (ats_ptr_type, tmp49) ;
ATSlocal (ats_ptr_type, tmp50) ;
ATSlocal (ats_bool_type, tmp51) ;

__ats_lab_auxlst_16:
do {
/* branch: __ats_lab_8 */
__ats_lab_8_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; }
__ats_lab_8_1:
tmp48 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
tmp49 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ;
do {
/* branch: __ats_lab_9 */
__ats_lab_9_0:
if (tmp48 == (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; }
__ats_lab_9_1:
tmp50 = ats_caselptrlab_mac(anairiats_sum_2, tmp48, atslab_0) ;
tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refeq (arg0, tmp50) ;
if (tmp51) {
arg0 = arg0 ;
arg1 = tmp49 ;
goto __ats_lab_auxlst_16 ; // tail call
} else {
tmp47 = 1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_10 */
__ats_lab_10_0:
// if (tmp48 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_10_1:
arg0 = arg0 ;
arg1 = tmp49 ;
goto __ats_lab_auxlst_16 ; // tail call
break ;
} while (0) ;
break ;

/* branch: __ats_lab_11 */
__ats_lab_11_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_11_1:
tmp47 = 0 ;
break ;
} while (0) ;
return (tmp47) ;
} /* end of [auxlst_16] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 5155(line=215, offs=3) -- 5434(line=229, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__saityplst_check (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp52) ;
ATSlocal (ats_ptr_type, tmp53) ;
ATSlocal (ats_ptr_type, tmp54) ;
ATSlocal (ats_ptr_type, tmp55) ;
// ATSlocal_void (tmp56) ;
ATSlocal (ats_ptr_type, tmp57) ;
// ATSlocal_void (tmp58) ;
ATSlocal (ats_ptr_type, tmp59) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__saityplst_check:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 5177(line=216, offs=7) -- 5199(line=216, offs=29)") ; }
tmp53 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
tmp54 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ;
do {
/* branch: __ats_lab_12 */
__ats_lab_12_0:
if (tmp53 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; }
__ats_lab_12_1:
tmp55 = ats_caselptrlab_mac(anairiats_sum_2, tmp53, atslab_0) ;
tmp57 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp57, atslab_0, tmp55) ;
/* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg0, tmp57) ;
tmp52 = auxlst_16 (tmp55, tmp54) ;
break ;

/* branch: __ats_lab_13 */
__ats_lab_13_0:
if (tmp53 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 5206(line=219, offs=1) -- 5410(line=227, offs=6)") ; }
__ats_lab_13_1:
tmp59 = (ats_sum_ptr_type)0 ;
/* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg0, tmp59) ;
tmp52 = 0 ;
break ;
} while (0) ;
return (tmp52) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__saityplst_check] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 5895(line=252, offs=3) -- 6300(line=266, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitm (ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
// ATSlocal_void (tmp60) ;
// ATSlocal_void (tmp61) ;
// ATSlocal_void (tmp62) ;
ATSlocal (ats_ptr_type, tmp63) ;
// ATSlocal_void (tmp64) ;
// ATSlocal_void (tmp65) ;
ATSlocal (ats_int_type, tmp66) ;
// ATSlocal_void (tmp67) ;
// ATSlocal_void (tmp68) ;
ATSlocal (ats_ptr_type, tmp69) ;
// ATSlocal_void (tmp70) ;
// ATSlocal_void (tmp71) ;
ATSlocal (ats_ptr_type, tmp72) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitm:
/* tmp61 = */ atspre_fprint_string (arg0, ATSstrcst("LSTAFTITM(\n")) ;
tmp63 = ats_select_mac(ats_ptrget_mac(anairiats_rec_4, arg1), atslab_lstaftitm_var) ;
/* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp63) ;
/* tmp64 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ;
tmp66 = ats_select_mac(ats_ptrget_mac(anairiats_rec_4, arg1), atslab_lstaftitm_knd) ;
/* tmp65 = */ atspre_fprint_int (arg0, tmp66) ;
/* tmp67 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ;
tmp69 = ats_select_mac(ats_ptrget_mac(anairiats_rec_4, arg1), atslab_lstaftitm_type) ;
/* tmp68 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2expopt (arg0, tmp69) ;
/* tmp70 = */ atspre_fprint_string (arg0, ATSstrcst("\n")) ;
tmp72 = ats_select_mac(ats_ptrget_mac(anairiats_rec_4, arg1), atslab_lstaftitm_saits) ;
/* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_saityplst_vt (arg0, tmp72) ;
/* tmp60 = */ atspre_fprint_string (arg0, ATSstrcst("\n)")) ;
return /* (tmp60) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitm] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 6436(line=273, offs=3) -- 6755(line=284, offs=33)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitmlst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp73) ;
ATSlocal (ats_ptr_type, tmp74) ;
ATSlocal (ats_ptr_type, tmp75) ;
// ATSlocal_void (tmp76) ;
// ATSlocal_void (tmp77) ;
ATSlocal (ats_ptr_type, tmp78) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitmlst:
do {
/* branch: __ats_lab_14 */
__ats_lab_14_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; }
__ats_lab_14_1:
tmp74 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ;
tmp75 = &ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ;
/* tmp76 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitm (arg0, tmp74) ;
/* tmp77 = */ atspre_fprint_newline (arg0) ;
tmp78 = ats_ptrget_mac(ats_ptr_type, tmp75) ;
arg0 = arg0 ;
arg1 = tmp78 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitmlst ; // tail call
break ;

/* branch: __ats_lab_15 */
__ats_lab_15_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_15_1:
break ;
} while (0) ;
return /* (tmp73) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitmlst] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 6873(line=290, offs=19) -- 7075(line=298, offs=26)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_free (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp79) ;
ATSlocal (anairiats_rec_4, tmp80) ;
ATSlocal (ats_ptr_type, tmp81) ;
ATSlocal (ats_ptr_type, tmp82) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_free:
do {
/* branch: __ats_lab_16 */
__ats_lab_16_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; }
__ats_lab_16_1:
tmp80 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp81 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
ATS_FREE(arg0) ;
tmp82 = ats_select_mac(tmp80, atslab_lstaftitm_saits) ;
if (tmp82 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 6945(line=294, offs=11) -- 6980(line=294, offs=46)") ; }
arg0 = tmp81 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_free ; // tail call
break ;

/* branch: __ats_lab_17 */
__ats_lab_17_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_17_1:
break ;
} while (0) ;
return /* (tmp79) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_free] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 7240(line=309, offs=5) -- 7838(line=331, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_22 (ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
// ATSlocal_void (tmp84) ;
ATSlocal (ats_ptr_type, tmp85) ;
ATSlocal (ats_ptr_type, tmp86) ;
ATSlocal (ats_ptr_type, tmp87) ;
ATSlocal (ats_ptr_type, tmp88) ;
ATSlocal (ats_ptr_type, tmp89) ;
ATSlocal (ats_ptr_type, tmp90) ;
ATSlocal (ats_ptr_type, tmp91) ;
ATSlocal (ats_ptr_type, tmp92) ;
ATSlocal (ats_ptr_type, tmp93) ;

__ats_lab_loop_22:
do {
/* branch: __ats_lab_18 */
__ats_lab_18_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; }
__ats_lab_18_1:
tmp85 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp86 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp87 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp85), atslab_lstbefitm_var) ;
tmp88 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_ptrget_mac(ats_ptr_type, arg1) = tmp88 ;
// if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp89 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg1), atslab_0) ;
tmp90 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp89), atslab_lstaftitm_var) = tmp87 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp89), atslab_lstaftitm_knd) = 0 ;
tmp91 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp89), atslab_lstaftitm_type) = tmp91 ;
tmp92 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp89), atslab_lstaftitm_saits) = tmp92 ;
arg0 = tmp86 ;
arg1 = tmp90 ;
goto __ats_lab_loop_22 ; // tail call
break ;

/* branch: __ats_lab_19 */
__ats_lab_19_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_19_1:
tmp93 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg1) = tmp93 ;
break ;
} while (0) ;
return /* (tmp84) */ ;
} /* end of [loop_22] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 7222(line=307, offs=19) -- 7920(line=338, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_make (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp83) ;
ATSlocal (ats_ptr_type, tmp94) ;
// ATSlocal_void (tmp95) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_make:
/* ats_ptr_type tmp94 ; */
/* tmp95 = */ loop_22 (arg0, (&tmp94)) ;
tmp83 = tmp94 ;
return (tmp83) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_make] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 8060(line=345, offs=21) -- 8444(line=360, offs=31)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_update (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (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) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_update:
do {
/* branch: __ats_lab_20 */
__ats_lab_20_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; }
__ats_lab_20_1:
tmp97 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp98 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp99 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp97), atslab_lstaftitm_var) ;
tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (tmp99) ;
tmp101 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp97), atslab_lstaftitm_saits) ;
tmp102 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp102, atslab_0, tmp100) ;
ats_selptrset_mac(anairiats_sum_3, tmp102, atslab_1, tmp101) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp97), atslab_lstaftitm_saits) = tmp102 ;
tmp103 = ats_ptrget_mac(ats_ptr_type, tmp98) ;
arg0 = tmp103 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_update ; // tail call
break ;

/* branch: __ats_lab_21 */
__ats_lab_21_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_21_1:
break ;
} while (0) ;
return /* (tmp96) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_update] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28)
*/
ATSstaticdec()
ats_ptr_type
revapp_27 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp111) ;
ATSlocal (ats_ptr_type, tmp112) ;
ATSlocal (ats_ptr_type, tmp113) ;
ATSlocal (ats_ptr_type, tmp114) ;

__ats_lab_revapp_27:
do {
/* branch: __ats_lab_23 */
__ats_lab_23_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; }
__ats_lab_23_1:
tmp112 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp113 = ats_ptrget_mac(ats_ptr_type, tmp112) ;
ats_ptrget_mac(ats_ptr_type, tmp112) = arg1 ;
tmp114 = arg0 ;
arg0 = tmp113 ;
arg1 = tmp114 ;
goto __ats_lab_revapp_27 ; // tail call
break ;

/* branch: __ats_lab_24 */
__ats_lab_24_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_24_1:
tmp111 = arg1 ;
break ;
} while (0) ;
return (tmp111) ;
} /* end of [revapp_27] */

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

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

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

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

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 8618(line=371, offs=3) -- 8931(line=383, offs=31)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_reverse (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (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, tmp116) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_reverse:
do {
/* branch: __ats_lab_22 */
__ats_lab_22_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; }
__ats_lab_22_1:
tmp105 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp106 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp107 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp105), atslab_lstaftitm_saits) ;
tmp108 = list_vt_reverse_01506_ats_ptr_type (tmp107) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp105), atslab_lstaftitm_saits) = tmp108 ;
tmp116 = ats_ptrget_mac(ats_ptr_type, tmp106) ;
arg0 = tmp116 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_reverse ; // tail call
break ;

/* branch: __ats_lab_25 */
__ats_lab_25_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_25_1:
break ;
} while (0) ;
return /* (tmp104) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_reverse] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 9195(line=401, offs=3) -- 9336(line=409, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstaftc3nstr (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp117) ;
ATSlocal (ats_ptr_type, tmp118) ;
ATSlocal (ats_ptr_type, tmp119) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstaftc3nstr:

tmp118 = &ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
tmp119 = ats_ptrget_mac(ats_ptr_type, tmp118) ;
/* tmp117 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__fprint_lstaftitmlst (arg0, tmp119) ;
return /* (tmp117) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_lstaftc3nstr] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 9424(line=415, offs=3) -- 9558(line=422, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_initize (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp120) ;
ATSlocal (ats_ptr_type, tmp121) ;
ATSlocal (ats_ptr_type, tmp122) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_initize:
tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_make (arg0) ;
tmp122 = (ats_sum_ptr_type)0 ;
tmp120 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp120, atslab_0, tmp121) ;
ats_selptrset_mac(anairiats_sum_3, tmp120, atslab_1, tmp122) ;
return (tmp120) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_initize] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 9646(line=428, offs=3) -- 9853(line=437, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp123) ;
ATSlocal (ats_ptr_type, tmp124) ;
ATSlocal (ats_ptr_type, tmp125) ;
// ATSlocal_void (tmp126) ;
ATSlocal (ats_ptr_type, tmp127) ;
ATSlocal (ats_ptr_type, tmp128) ;
ATSlocal (ats_ptr_type, tmp129) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update:
// 
tmp124 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp125 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp127 = ats_ptrget_mac(ats_ptr_type, tmp124) ;
/* tmp126 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_update (tmp127) ;
tmp129 = ats_ptrget_mac(ats_ptr_type, tmp125) ;
tmp128 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp128, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_3, tmp128, atslab_1, tmp129) ;
ats_ptrget_mac(ats_ptr_type, tmp125) = tmp128 ;
return /* (tmp123) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_update] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 9942(line=443, offs=3) -- 10111(line=451, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_finalize (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp130) ;
ATSlocal (ats_ptr_type, tmp131) ;
ATSlocal (ats_ptr_type, tmp132) ;
// ATSlocal_void (tmp133) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_finalize:
// 
tmp131 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp132 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
ATS_FREE(arg0) ;
/* tmp133 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftitmlst_free (tmp131) ;
if (tmp132 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 10038(line=447, offs=5) -- 10059(line=447, offs=26)") ; }
return /* (tmp130) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_finalize] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 10294(line=462, offs=5) -- 10425(line=467, offs=4)
*/
ATSstaticdec()
ats_bool_type
d2var_is_done_32 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp134) ;
ATSlocal (ats_ptr_type, tmp135) ;

__ats_lab_d2var_is_done_32:
tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_finknd (arg0) ;
do {
/* branch: __ats_lab_26 */
__ats_lab_26_0:
if (((ats_sum_ptr_type)tmp135)->tag != 4) { goto __ats_lab_27_0 ; }
__ats_lab_26_1:
tmp134 = ats_true_bool ;
break ;

/* branch: __ats_lab_27 */
__ats_lab_27_0:
__ats_lab_27_1:
tmp134 = ats_false_bool ;
break ;
} while (0) ;
return (tmp134) ;
} /* end of [d2var_is_done_32] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 10457(line=469, offs=5) -- 11111(line=495, offs=2)
*/
ATSstaticdec()
ats_ptr_type
aux1_33 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp136) ;
ATSlocal (ats_ptr_type, tmp137) ;
ATSlocal (ats_ptr_type, tmp138) ;
ATSlocal (ats_ptr_type, tmp139) ;
ATSlocal (ats_bool_type, tmp140) ;
ATSlocal (ats_int_type, tmp141) ;
ATSlocal (ats_ptr_type, tmp142) ;
ATSlocal (ats_ptr_type, tmp143) ;
ATSlocal (ats_ptr_type, tmp144) ;
ATSlocal (ats_bool_type, tmp145) ;

__ats_lab_aux1_33:
do {
/* branch: __ats_lab_28 */
__ats_lab_28_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; }
__ats_lab_28_1:
tmp137 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp138 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp139 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp137), atslab_lstaftitm_var) ;
tmp140 = d2var_is_done_32 (tmp139) ;
if (tmp140) {
tmp141 = 0 ;
} else {
tmp142 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp137), atslab_lstaftitm_saits) ;
tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__saityplst_check (tmp139, ats_castfn_mac(ats_ptr_type, tmp142)) ;
} /* end of [if] */
tmp144 = ats_ptrget_mac(ats_ptr_type, tmp138) ;
tmp143 = aux1_33 (tmp144) ;
tmp145 = atspre_gt_int_int (tmp141, 0) ;
if (tmp145) {
tmp136 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_0, tmp139) ;
ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_1, tmp143) ;
} else {
tmp136 = tmp143 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_29 */
__ats_lab_29_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_29_1:
tmp136 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp136) ;
} /* end of [aux1_33] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 11134(line=497, offs=5) -- 11485(line=516, offs=2)
*/
ATSstaticdec()
ats_ptr_type
aux2_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp146) ;
ATSlocal (ats_ptr_type, tmp147) ;
ATSlocal (ats_ptr_type, tmp148) ;
ATSlocal (ats_int_type, tmp149) ;
ATSlocal (ats_bool_type, tmp150) ;
ATSlocal (ats_ptr_type, tmp151) ;

__ats_lab_aux2_34:
do {
/* branch: __ats_lab_30 */
__ats_lab_30_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; }
__ats_lab_30_1:
tmp147 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
tmp148 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ;
tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (arg0, tmp147) ;
tmp150 = atspre_ieq (tmp149, 0) ;
if (tmp150) {
tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype (tmp147) ;
ats_ptrget_mac(ats_int_type, arg2) = 1 ;
tmp146 = tmp151 ;
} else {
arg0 = arg0 ;
arg1 = tmp148 ;
arg2 = arg2 ;
goto __ats_lab_aux2_34 ; // tail call
} /* end of [if] */
break ;

/* branch: __ats_lab_31 */
__ats_lab_31_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_31_1:
tmp146 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp146) ;
} /* end of [aux2_34] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 11508(line=518, offs=5) -- 11950(line=541, offs=2)
*/
ATSstaticdec()
ats_ptr_type
aux3_35 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp152) ;
ATSlocal (ats_ptr_type, tmp153) ;
ATSlocal (ats_ptr_type, tmp154) ;
ATSlocal (ats_ptr_type, tmp155) ;
ATSlocal (ats_int_type, tmp156) ;
ATSlocal (ats_bool_type, tmp157) ;

__ats_lab_aux3_35:
do {
/* branch: __ats_lab_32 */
__ats_lab_32_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; }
__ats_lab_32_1:
tmp153 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
tmp154 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ;
tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var (tmp153) ;
tmp156 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (arg0, tmp155) ;
tmp157 = atspre_ieq (tmp156, 0) ;
if (tmp157) {
ats_ptrget_mac(ats_int_type, arg3) = 2 ;
tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type (tmp153) ;
} else {
arg0 = arg0 ;
arg1 = tmp154 ;
arg2 = arg2 ;
arg3 = arg3 ;
goto __ats_lab_aux3_35 ; // tail call
} /* end of [if] */
break ;

/* branch: __ats_lab_33 */
__ats_lab_33_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_33_1:
tmp152 = aux2_34 (arg0, arg2, arg3) ;
break ;
} while (0) ;
return (tmp152) ;
} /* end of [aux3_35] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 11973(line=543, offs=5) -- 12472(line=564, offs=4)
*/
ATSstaticdec()
ats_void_type
auxlst_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp158) ;
ATSlocal (ats_ptr_type, tmp159) ;
ATSlocal (ats_ptr_type, tmp160) ;
ATSlocal (ats_ptr_type, tmp161) ;
ATSlocal (ats_int_type, tmp162) ;
ATSlocal (ats_ptr_type, tmp163) ;
// ATSlocal_void (tmp164) ;
ATSlocal (ats_bool_type, tmp165) ;
ATSlocal (ats_ptr_type, tmp166) ;

__ats_lab_auxlst_36:
do {
/* branch: __ats_lab_34 */
__ats_lab_34_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; }
__ats_lab_34_1:
tmp159 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp160 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp161 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp159), atslab_lstaftitm_var) ;
/* ats_int_type tmp162 ; */
tmp162 = 0 ;
tmp163 = aux3_35 (tmp161, arg1, arg2, (&tmp162)) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp159), atslab_lstaftitm_knd) = tmp162 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp159), atslab_lstaftitm_type) = tmp163 ;
tmp165 = atspre_gt_int_int (tmp162, 0) ;
if (tmp165) {
/* tmp164 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp161, tmp163) ;
} else {
/* empty */
} /* end of [if] */
tmp166 = ats_ptrget_mac(ats_ptr_type, tmp160) ;
arg0 = tmp166 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab_auxlst_36 ; // tail call
break ;

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

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

__ats_lab_loop_39:
do {
/* branch: __ats_lab_36 */
__ats_lab_36_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; }
__ats_lab_36_1:
tmp176 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
ATS_FREE(arg0) ;
arg0 = tmp176 ;
goto __ats_lab_loop_39 ; // tail call
break ;

/* branch: __ats_lab_37 */
__ats_lab_37_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_37_1:
break ;
} while (0) ;
return /* (tmp175) */ ;
} /* end of [loop_39] */

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

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

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 12548(line=570, offs=3) -- 12877(line=589, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftc3nstr_check (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp167) ;
ATSlocal (ats_ptr_type, tmp168) ;
ATSlocal (ats_ptr_type, tmp169) ;
ATSlocal (ats_ptr_type, tmp170) ;
ATSlocal (ats_ptr_type, tmp171) ;
// ATSlocal_void (tmp172) ;
ATSlocal (ats_ptr_type, tmp173) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftc3nstr_check:
// 
tmp168 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp170 = ats_ptrget_mac(ats_ptr_type, tmp168) ;
tmp169 = aux1_33 (tmp170) ;
tmp171 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_i2nvresstate_arg) ;
tmp173 = ats_ptrget_mac(ats_ptr_type, tmp168) ;
/* tmp172 = */ auxlst_36 (tmp173, tmp171, ats_castfn_mac(ats_ptr_type, tmp169)) ;
/* tmp167 = */ list_vt_free_01499_ats_ptr_type (tmp169) ;
return /* (tmp167) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftc3nstr_check] */

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

__ats_lab_prerr_error3_loc_02439_:
/* tmp180 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ;
/* tmp179 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ;
return /* (tmp179) */ ;
} /* end of [prerr_error3_loc_02439_] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 12965(line=597, offs=5) -- 13365(line=610, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_some_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp177) ;
// ATSlocal_void (tmp178) ;
// ATSlocal_void (tmp181) ;
// ATSlocal_void (tmp182) ;
// ATSlocal_void (tmp183) ;
// ATSlocal_void (tmp184) ;
// ATSlocal_void (tmp185) ;
// ATSlocal_void (tmp186) ;
ATSlocal (ats_ptr_type, tmp187) ;

__ats_lab_auxerr_some_40:
/* tmp178 = */ prerr_error3_loc_02439_ (arg0) ;
/* tmp181 = */ atspre_prerr_string (ATSstrcst(": the dynamic variable [")) ;
/* tmp182 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ;
/* tmp183 = */ atspre_prerr_string (ATSstrcst("] is consumed but it should be retained with the type [")) ;
/* tmp184 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg2) ;
/* tmp185 = */ atspre_prerr_string (ATSstrcst("] instead.")) ;
/* tmp186 = */ atspre_prerr_newline () ;
tmp187 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp187)->tag = 89 ;
ats_selptrset_mac(anairiats_sum_7, tmp187, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_7, tmp187, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_7, tmp187, atslab_2, arg2) ;
/* tmp177 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp187) ;
return /* (tmp177) */ ;
} /* end of [auxerr_some_40] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 13395(line=612, offs=5) -- 13792(line=625, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_none_42 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp188) ;
// ATSlocal_void (tmp189) ;
// ATSlocal_void (tmp190) ;
// ATSlocal_void (tmp191) ;
// ATSlocal_void (tmp192) ;
// ATSlocal_void (tmp193) ;
// ATSlocal_void (tmp194) ;
// ATSlocal_void (tmp195) ;
ATSlocal (ats_ptr_type, tmp196) ;

__ats_lab_auxerr_none_42:
/* tmp189 = */ prerr_error3_loc_02439_ (arg0) ;
/* tmp190 = */ atspre_prerr_string (ATSstrcst(": the dynamic variable [")) ;
/* tmp191 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ;
/* tmp192 = */ atspre_prerr_string (ATSstrcst("] is retained with the type [")) ;
/* tmp193 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg2) ;
/* tmp194 = */ atspre_prerr_string (ATSstrcst("] but it should be consumed instead.")) ;
/* tmp195 = */ atspre_prerr_newline () ;
tmp196 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp196)->tag = 89 ;
ats_selptrset_mac(anairiats_sum_7, tmp196, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_7, tmp196, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_7, tmp196, atslab_2, arg2) ;
/* tmp188 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp196) ;
return /* (tmp188) */ ;
} /* end of [auxerr_none_42] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 13822(line=627, offs=5) -- 14210(line=639, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_some2_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp197) ;
// ATSlocal_void (tmp198) ;
// ATSlocal_void (tmp199) ;
// ATSlocal_void (tmp200) ;
// ATSlocal_void (tmp201) ;
// ATSlocal_void (tmp202) ;
// ATSlocal_void (tmp203) ;
ATSlocal (ats_ptr_type, tmp204) ;

__ats_lab_auxerr_some2_43:
/* tmp198 = */ prerr_error3_loc_02439_ (arg0) ;
/* tmp199 = */ atspre_prerr_string (ATSstrcst(": the dynamic variable [")) ;
/* tmp200 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ;
/* tmp201 = */ atspre_prerr_string (ATSstrcst("] is retained but with a type that fails to merge.")) ;
/* tmp202 = */ atspre_prerr_newline () ;
/* tmp203 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ;
tmp204 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp204)->tag = 91 ;
ats_selptrset_mac(anairiats_sum_8, tmp204, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_8, tmp204, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_8, tmp204, atslab_2, arg2) ;
ats_selptrset_mac(anairiats_sum_8, tmp204, atslab_3, arg3) ;
/* tmp197 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp204) ;
return /* (tmp197) */ ;
} /* end of [auxerr_some2_43] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 14241(line=641, offs=5) -- 15392(line=689, offs=4)
*/
ATSstaticdec()
ats_void_type
auxsait_44 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) {
/* local vardec */
// ATSlocal_void (tmp205) ;
ATSlocal (ats_ptr_type, tmp206) ;
ATSlocal (ats_ptr_type, tmp207) ;
ATSlocal (ats_bool_type, tmp208) ;
ATSlocal (ats_ptr_type, tmp209) ;
ATSlocal (ats_bool_type, tmp210) ;
// ATSlocal_void (tmp211) ;
// ATSlocal_void (tmp212) ;
ATSlocal (ats_int_type, tmp213) ;
ATSlocal (ats_ptr_type, tmp214) ;
// ATSlocal_void (tmp215) ;
ATSlocal (ats_bool_type, tmp216) ;
// ATSlocal_void (tmp217) ;
ATSlocal (ats_ptr_type, tmp218) ;

__ats_lab_auxsait_44:
do {
/* branch: __ats_lab_38 */
__ats_lab_38_0:
if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; }
__ats_lab_38_1:
tmp206 = ats_caselptrlab_mac(anairiats_sum_2, arg4, atslab_0) ;
do {
/* branch: __ats_lab_39 */
__ats_lab_39_0:
if (arg5 == (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; }
__ats_lab_39_1:
tmp207 = ats_caselptrlab_mac(anairiats_sum_2, arg5, atslab_0) ;
do {
/* branch: __ats_lab_40 */
__ats_lab_40_0:
__ats_lab_40_1:
tmp208 = atspre_gte_int_int (arg2, 1) ;
if (!tmp208) { goto __ats_lab_41_1 ; }
tmp210 = atspre_gte_int_int (arg2, 2) ;
if (tmp210) {
tmp209 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (arg3, tmp206) ;
} else {
tmp209 = tmp206 ;
} /* end of [if] */
/* tmp211 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ;
/* tmp212 = ats_selsin_mac(tmp211, atslab_1) */ ;
tmp213 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve (arg0, tmp207, tmp209) ;
tmp214 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp214)->tag = 8 ;
ats_selptrset_mac(anairiats_sum_9, tmp214, atslab_0, arg1) ;
/* tmp215 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add (arg0, tmp214) ;
tmp216 = atspre_gt_int_int (tmp213, 0) ;
if (tmp216) {
/* tmp217 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ;
/* tmp205 = */ auxerr_some2_43 (arg0, arg1, tmp209, tmp207) ;
} else {
/* empty */
} /* end of [if] */
break ;

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

/* branch: __ats_lab_42 */
__ats_lab_42_0:
// if (arg5 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_42_1:
/* tmp205 = */ auxerr_some_40 (arg0, arg1, tmp206) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_43 */
__ats_lab_43_0:
// if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_43_1:
do {
/* branch: __ats_lab_44 */
__ats_lab_44_0:
if (arg5 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; }
__ats_lab_44_1:
tmp218 = ats_caselptrlab_mac(anairiats_sum_2, arg5, atslab_0) ;
/* tmp205 = */ auxerr_none_42 (arg0, arg1, tmp218) ;
break ;

/* branch: __ats_lab_45 */
__ats_lab_45_0:
// if (arg5 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_45_1:
break ;
} while (0) ;
break ;
} while (0) ;
return /* (tmp205) */ ;
} /* end of [auxsait_44] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 15418(line=691, offs=5) -- 16002(line=711, offs=2)
*/
ATSstaticdec()
ats_void_type
auxmain_45 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp219) ;
ATSlocal (ats_ptr_type, tmp220) ;
ATSlocal (ats_ptr_type, tmp221) ;
ATSlocal (ats_ptr_type, tmp222) ;
ATSlocal (ats_int_type, tmp223) ;
ATSlocal (ats_ptr_type, tmp224) ;
ATSlocal (ats_ptr_type, tmp225) ;
ATSlocal (ats_ptr_type, tmp226) ;
ATSlocal (ats_ptr_type, tmp227) ;
ATSlocal (ats_ptr_type, tmp228) ;
// ATSlocal_void (tmp229) ;
ATSlocal (ats_ptr_type, tmp230) ;

__ats_lab_auxmain_45:
do {
/* branch: __ats_lab_46 */
__ats_lab_46_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; }
__ats_lab_46_1:
tmp220 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp221 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp222 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp220), atslab_lstaftitm_var) ;
tmp223 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp220), atslab_lstaftitm_knd) ;
tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (tmp222) ;
tmp225 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp220), atslab_lstaftitm_saits) ;
if (tmp225 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 15673(line=702, offs=11) -- 15723(line=702, offs=61)") ; }
tmp226 = ats_caselptrlab_mac(anairiats_sum_3, tmp225, atslab_0) ;
tmp227 = ats_caselptrlab_mac(anairiats_sum_3, tmp225, atslab_1) ;
ATS_FREE(tmp225) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp220), atslab_lstaftitm_saits) = tmp227 ;
tmp228 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg1), atslab_c3nstroptref_loc) ;
/* tmp229 = */ auxsait_44 (tmp228, tmp222, tmp223, arg2, tmp224, tmp226) ;
tmp230 = ats_ptrget_mac(ats_ptr_type, tmp221) ;
arg0 = tmp230 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab_auxmain_45 ; // tail call
break ;

/* branch: __ats_lab_47 */
__ats_lab_47_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_47_1:
break ;
} while (0) ;
return /* (tmp219) */ ;
} /* end of [auxmain_45] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 16028(line=713, offs=5) -- 16871(line=748, offs=4)
*/
ATSstaticdec()
ats_void_type
auxmainlst_46 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp231) ;
ATSlocal (ats_ptr_type, tmp232) ;
ATSlocal (ats_ptr_type, tmp233) ;
ATSlocal (ats_ptr_type, tmp234) ;
ATSlocal (ats_ptr_type, tmp235) ;
ATSlocal (ats_ptr_type, tmp236) ;
ATSlocal (ats_ptr_type, tmp237) ;
ATSlocal (ats_ptr_type, tmp238) ;
// ATSlocal_void (tmp239) ;
// ATSlocal_void (tmp240) ;
// ATSlocal_void (tmp241) ;
// ATSlocal_void (tmp242) ;
ATSlocal (ats_ptr_type, tmp243) ;
ATSlocal (ats_ptr_type, tmp244) ;
ATSlocal (ats_ptr_type, tmp245) ;
ATSlocal (ats_ptr_type, tmp246) ;
ATSlocal (ats_ptr_type, tmp247) ;
// ATSlocal_void (tmp248) ;

__ats_lab_auxmainlst_46:
do {
/* branch: __ats_lab_48 */
__ats_lab_48_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; }
__ats_lab_48_1:
tmp232 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
tmp233 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ;
ATS_FREE(arg1) ;
tmp234 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp232), atslab_c3nstroptref_loc) ;
tmp236 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_i2nvresstate_svs) ;
tmp235 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst (tmp234, tmp236) ;
tmp238 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_i2nvresstate_gua) ;
tmp237 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (tmp235, tmp238) ;
/* tmp239 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ;
/* tmp240 = ats_selsin_mac(tmp239, atslab_1) */ ;
/* tmp241 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (tmp234, tmp237) ;
/* tmp242 = */ auxmain_45 (arg0, tmp232, tmp235) ;
tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop () ;
tmp245 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_7) ;
tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_itmlst (tmp234, tmp245, ats_castfn_mac(ats_ptr_type, tmp243)) ;
tmp246 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp232), atslab_c3nstroptref_ref) ;
tmp247 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp247, atslab_0, tmp244) ;
ats_ptrget_mac(ats_ptr_type, tmp246) = tmp247 ;
/* tmp248 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp235) ;
arg0 = arg0 ;
arg1 = tmp233 ;
arg2 = arg2 ;
goto __ats_lab_auxmainlst_46 ; // tail call
break ;

/* branch: __ats_lab_49 */
__ats_lab_49_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_49_1:
break ;
} while (0) ;
return /* (tmp231) */ ;
} /* end of [auxmainlst_46] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 16950(line=754, offs=3) -- 17330(line=776, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_process (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp249) ;
// ATSlocal_void (tmp250) ;
ATSlocal (ats_ptr_type, tmp251) ;
ATSlocal (ats_ptr_type, tmp252) ;
ATSlocal (ats_ptr_type, tmp253) ;
ATSlocal (ats_ptr_type, tmp254) ;
ATSlocal (ats_ptr_type, tmp255) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_process:
/* tmp250 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__lstaftc3nstr_check (arg0, arg1) ;

tmp251 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp252 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp253 = ats_ptrget_mac(ats_ptr_type, tmp252) ;
tmp254 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, tmp252) = tmp254 ;
tmp255 = ats_ptrget_mac(ats_ptr_type, tmp251) ;
/* tmp249 = */ auxmainlst_46 (tmp255, tmp253, arg1) ;
return /* (tmp249) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstaftc3nstr_process] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 17439(line=784, offs=3) -- 17908(line=808, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp256) ;
ATSlocal (ats_ptr_type, tmp257) ;
ATSlocal (ats_ptr_type, tmp258) ;
ATSlocal (ats_ptr_type, tmp259) ;
ATSlocal (ats_ptr_type, tmp260) ;
// ATSlocal_void (tmp261) ;
// ATSlocal_void (tmp262) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update:
do {
/* branch: __ats_lab_50 */
__ats_lab_50_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; }
__ats_lab_50_1:
tmp257 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
tmp258 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ;
tmp259 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var (tmp257) ;
tmp260 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type (tmp257) ;
/* tmp261 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval (tmp259) ;
/* tmp262 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp259, tmp260) ;
arg0 = arg0 ;
arg1 = tmp258 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update ; // tail call
break ;

/* branch: __ats_lab_51 */
__ats_lab_51_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_51_1:
break ;
} while (0) ;
return /* (tmp256) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env_lstate.dats: 17993(line=814, offs=3) -- 18298(line=827, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp263) ;
// ATSlocal_void (tmp264) ;
ATSlocal (ats_ptr_type, tmp265) ;
// ATSlocal_void (tmp266) ;
ATSlocal (ats_ptr_type, tmp267) ;
ATSlocal (ats_ptr_type, tmp268) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update:
tmp265 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_i2nvresstate_svs) ;
/* tmp264 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (tmp265) ;
tmp267 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_i2nvresstate_gua) ;
/* tmp266 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst (arg0, tmp267) ;
tmp268 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg1), atslab_i2nvresstate_arg) ;
/* tmp263 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update (arg0, tmp268) ;
return /* (tmp263) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update] */

/* static load function */

// extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_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_staexp2_solve_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_trans3_env_2esats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__staload_flag = 1 ;

// _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ;
// ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ;

// _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__LSTAFTC3NSTR_0.tag = 0 ;
return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_lstate_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 () ;
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_2libats_2ngc_2SATS_2deque_arr_2esats__lemma_deque_param_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_encode_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_decode_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_clear_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_insert_beg_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_insert_end_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_remove_beg_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_remove_end_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
_2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ;
_2tmp_2ATS_2dPostiats_2src_2pats_utils_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_trans3_env_lstate_dats.c] */
