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

/* 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_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 */

typedef ats_ptr_type s2Var ;

/* type definitions */
typedef
struct {
ats_ptr_type atslab_3 ;
ats_ptr_type atslab_4 ;
} anairiats_rec_0 ;

typedef
struct {
ats_ptr_type atslab_s2Var_loc ;
ats_int_type atslab_s2Var_cnt ;
ats_ptr_type atslab_s2Var_srt ;
ats_ptr_type atslab_s2Var_link ;
ats_ptr_type atslab_s2Var_svar ;
ats_ptr_type atslab_s2Var_szexp ;
ats_ptr_type atslab_s2Var_sVarlst ;
ats_ptr_type atslab_s2Var_lbs ;
ats_ptr_type atslab_s2Var_ubs ;
ats_int_type atslab_s2Var_stamp ;
} anairiats_rec_1 ;

typedef struct {
int tag ;
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_s2VarBound_loc ;
ats_ptr_type atslab_s2VarBound_val ;
} anairiats_rec_4 ;

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

typedef struct {
ats_int_type atslab_0 ;
s2Var atslab_1 ;
ats_ptr_type atslab_2 ;
ats_ptr_type atslab_3 ;
} anairiats_sum_6 ;

typedef struct {
s2Var atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_7 ;

/* 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__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_staexp2_2esats__S2EVar_8) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2ZEVar_4) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__B_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__E_1) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__B_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__E_1) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ;
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_eq_int_int) (ats_int_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_ilte) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_ieq) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_ineq) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_imax) (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_size_of_int1) (ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_add_size_int) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_add_size_size) (ats_size_type, ats_size_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_max_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_ptr_type, atspre_ref_make_view_ptr) (ats_ptr_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_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_counter_2esats__fprint_count) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make) () ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2Var_stamp_make) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_cnt) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_add_sVarlst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varlst_add_sVarlst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_lbs) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_lbs) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_ubs) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_ubs) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_stamp) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_make) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varlst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_listize) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varset) (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_staexp2_2esats__sasp__s2Varset_vtype = 0 ;
int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2Varset_type = 0 ;
int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2VarBound_type = 0 ;
int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2Var_type = 0 ;

/* sum constructor declarations */
/* exn constructor declarations */
/* global dynamic (non-functional) constant declarations */
/* internal function declarations */
static
ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () ;
static
ats_void_type auxins_21 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ;
static
ats_clo_ptr_type auxins_21_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ;
static
ats_void_type auxins_21_clofun (ats_clo_ptr_type cloptr) ;
static
ats_void_type auxins_23 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ;
static
ats_clo_ptr_type auxins_23_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ;
static
ats_void_type auxins_23_clofun (ats_clo_ptr_type cloptr) ;
static
ats_int_type compare_elt_elt_03699_s2Var (s2Var arg0, s2Var arg1, ats_clo_ref_type arg2) ;
static
ats_int_type compare_elt_elt_03727_s2Var (s2Var arg0, s2Var arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type funset_make_nil_03700_ () ;
static
ats_ptr_type avltree_rrotate_04027_s2Var (s2Var arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ;
static
ats_ptr_type avltree_lrotate_04010_s2Var (s2Var arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ;
static
ats_ptr_type insert_38 (s2Var env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_clo_ptr_type insert_38_closure_make (s2Var env0, ats_clo_ref_type env1) ;
static
ats_ptr_type insert_38_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_bool_type funset_insert_03709_s2Var (ats_ref_type arg0, s2Var arg1, ats_clo_ref_type arg2) ;
static
ats_bool_type aux_43 (s2Var env0, ats_clo_ref_type env1, ats_ptr_type arg0) ;
static
ats_clo_ptr_type aux_43_closure_make (s2Var env0, ats_clo_ref_type env1) ;
static
ats_bool_type aux_43_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_bool_type funset_is_member_03707_s2Var (ats_ptr_type arg0, s2Var arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type listize_46 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type funset_listize_03724_s2Var (ats_ptr_type arg0) ;
static
ats_ptr_type linset_make_nil_03728_ () ;
static
ats_int_type avltree_height_04284_s2Var (ats_ptr_type arg0) ;
static
ats_ptr_type avltree_rrotate_04338_s2Var (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ;
static
ats_ptr_type avltree_lrotate_04314_s2Var (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ;
static
ats_bool_type insert_51 (ats_clo_ref_type env0, ats_ref_type arg0, s2Var arg1) ;
static
ats_clo_ptr_type insert_51_closure_make (ats_clo_ref_type env0) ;
static
ats_bool_type insert_51_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, s2Var arg1) ;
static
ats_bool_type linset_insert_03737_s2Var (ats_ref_type arg0, s2Var arg1, ats_clo_ref_type arg2) ;
static
ats_bool_type aux_57 (s2Var env0, ats_clo_ref_type env1, ats_ptr_type arg0) ;
static
ats_clo_ptr_type aux_57_closure_make (s2Var env0, ats_clo_ref_type env1) ;
static
ats_bool_type aux_57_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_bool_type linset_is_member_03733_s2Var (ats_ptr_type arg0, s2Var arg1, ats_clo_ref_type arg2) ;
static
ats_void_type aux_60 (ats_ptr_type arg0) ;
static
ats_void_type linset_free_03735_s2Var (ats_ptr_type arg0) ;
static
ats_ptr_type aux_63 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type linset_listize_free_03753_s2Var (ats_ptr_type arg0) ;
static
ats_void_type aux_68 (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_68_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ;
static
ats_void_type aux_68_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 loop_73 (ats_ptr_type arg0) ;
static
ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ;

/* partial value template declarations */
/* static temporary variable declarations */
ATSstatic (ats_ptr_type, statmp0) ;

/* external value variable declarations */

/* function implementations */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57)
*/
ATSstaticdec()
ats_ptr_type
ptr_alloc_01070_anairiats_rec_1 () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp5) ;

__ats_lab_ptr_alloc_01070_anairiats_rec_1:
tmp5 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_1)) ;
return (tmp5) ;
} /* end of [ptr_alloc_01070_anairiats_rec_1] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 2568(line=96, offs=16) -- 3232(line=131, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_srt (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1) ;
ATSlocal (ats_int_type, tmp2) ;
ATSlocal (ats_int_type, tmp3) ;
ATSlocal (ats_ptr_type, tmp4) ;
ATSlocal (ats_ptr_type, tmp6) ;
ATSlocal (ats_ptr_type, tmp7) ;
ATSlocal (ats_ptr_type, tmp8) ;
ATSlocal (ats_ptr_type, tmp9) ;
ATSlocal (ats_ptr_type, tmp10) ;
ATSlocal (ats_ptr_type, tmp11) ;
ATSlocal (ats_ptr_type, tmp12) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_srt:
tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp0) ;
tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2Var_stamp_make () ;
tmp4 = ptr_alloc_01070_anairiats_rec_1 () ;
tmp6 = ats_selsin_mac(tmp4, atslab_2) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_loc) = arg0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_cnt) = tmp2 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_srt) = arg1 ;
tmp7 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_link) = tmp7 ;
tmp8 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_svar) = tmp8 ;
tmp9 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp9)->tag = 4 ;
ats_selptrset_mac(anairiats_sum_2, tmp9, atslab_0, ats_castfn_mac(ats_ptr_type, tmp6)) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_szexp) = tmp9 ;
tmp10 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_sVarlst) = ats_castfn_mac(ats_ptr_type, tmp10) ;
tmp11 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_lbs) = tmp11 ;
tmp12 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_ubs) = tmp12 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp6), atslab_s2Var_stamp) = tmp3 ;
tmp1 = atspre_ref_make_view_ptr (tmp6) ;
return (tmp1) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_srt] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 3286(line=133, offs=26) -- 3981(line=166, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_var (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp13) ;
ATSlocal (ats_int_type, tmp14) ;
ATSlocal (ats_int_type, tmp15) ;
ATSlocal (ats_ptr_type, tmp16) ;
ATSlocal (ats_ptr_type, tmp17) ;
ATSlocal (ats_ptr_type, tmp18) ;
ATSlocal (ats_ptr_type, tmp19) ;
ATSlocal (ats_ptr_type, tmp20) ;
ATSlocal (ats_ptr_type, tmp21) ;
ATSlocal (ats_ptr_type, tmp22) ;
ATSlocal (ats_ptr_type, tmp23) ;
ATSlocal (ats_ptr_type, tmp24) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_var:
tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp0) ;
tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2Var_stamp_make () ;
tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (arg1) ;
tmp17 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_1)) ;
tmp18 = ats_selsin_mac(tmp17, atslab_2) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_loc) = arg0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_cnt) = tmp14 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_srt) = tmp16 ;
tmp19 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_link) = tmp19 ;
tmp20 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_svar) = tmp20 ;
tmp21 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp21)->tag = 4 ;
ats_selptrset_mac(anairiats_sum_2, tmp21, atslab_0, ats_castfn_mac(ats_ptr_type, tmp18)) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_szexp) = tmp21 ;
tmp22 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_sVarlst) = ats_castfn_mac(ats_ptr_type, tmp22) ;
tmp23 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_lbs) = tmp23 ;
tmp24 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_ubs) = tmp24 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_s2Var_stamp) = tmp15 ;
tmp13 = atspre_ref_make_view_ptr (tmp18) ;
return (tmp13) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 4055(line=171, offs=15) -- 4144(line=173, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_cnt (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp25) ;
ATSlocal (ats_ptr_type, tmp26) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_cnt:
tmp26 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp25 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp26), atslab_s2Var_cnt) ;
return (tmp25) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_cnt] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 4196(line=176, offs=15) -- 4285(line=178, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_srt (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp27) ;
ATSlocal (ats_ptr_type, tmp28) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_srt:
tmp28 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp27 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp28), atslab_s2Var_srt) ;
return (tmp27) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_srt] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 4338(line=181, offs=16) -- 4415(line=183, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp29) ;
ATSlocal (ats_ptr_type, tmp30) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link:
tmp30 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp29 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp30), atslab_s2Var_link) ;
return (tmp29) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_link] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 4468(line=185, offs=16) -- 4559(line=187, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_link (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp31) ;
ATSlocal (ats_ptr_type, tmp32) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_link:
tmp32 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp32), atslab_s2Var_link) = arg1 ;
return /* (tmp31) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_link] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 4614(line=190, offs=17) -- 4692(line=192, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp33) ;
ATSlocal (ats_ptr_type, tmp34) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp:
tmp34 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp33 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp34), atslab_s2Var_szexp) ;
return (tmp33) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_szexp] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 4747(line=194, offs=17) -- 4839(line=196, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_szexp (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp35) ;
ATSlocal (ats_ptr_type, tmp36) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_szexp:
tmp36 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp36), atslab_s2Var_szexp) = arg1 ;
return /* (tmp35) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_szexp] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 4897(line=199, offs=19) -- 4999(line=203, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_sVarlst (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp37) ;
ATSlocal (ats_ptr_type, tmp38) ;
ATSlocal (ats_ptr_type, tmp39) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_sVarlst:
tmp38 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp39 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp38), atslab_s2Var_sVarlst) ;
tmp37 = ats_castfn_mac(ats_ptr_type, tmp39) ;
return (tmp37) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_sVarlst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 5058(line=205, offs=19) -- 5238(line=210, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_add_sVarlst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp40) ;
ATSlocal (ats_ptr_type, tmp41) ;
ATSlocal (ats_ptr_type, tmp42) ;
ATSlocal (ats_ptr_type, tmp43) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_add_sVarlst:
tmp41 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp42 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp41), atslab_s2Var_sVarlst) ;
tmp43 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp43, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_3, tmp43, atslab_1, ats_castfn_mac(ats_ptr_type, tmp42)) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp41), atslab_s2Var_sVarlst) = ats_castfn_mac(ats_ptr_type, tmp43) ;
return /* (tmp40) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_add_sVarlst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 5294(line=213, offs=15) -- 5370(line=215, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_lbs (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp44) ;
ATSlocal (ats_ptr_type, tmp45) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_lbs:
tmp45 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp44 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp45), atslab_s2Var_lbs) ;
return (tmp44) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_lbs] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 5421(line=217, offs=15) -- 5509(line=219, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_lbs (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp46) ;
ATSlocal (ats_ptr_type, tmp47) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_lbs:
tmp47 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp47), atslab_s2Var_lbs) = arg1 ;
return /* (tmp46) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_lbs] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 5560(line=221, offs=15) -- 5636(line=223, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_ubs (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp48) ;
ATSlocal (ats_ptr_type, tmp49) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_ubs:
tmp49 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp48 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp49), atslab_s2Var_ubs) ;
return (tmp48) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_ubs] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 5687(line=225, offs=15) -- 5775(line=227, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_ubs (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp50) ;
ATSlocal (ats_ptr_type, tmp51) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_ubs:
tmp51 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp51), atslab_s2Var_ubs) = arg1 ;
return /* (tmp50) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_ubs] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 5829(line=230, offs=17) -- 5920(line=232, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_stamp (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp52) ;
ATSlocal (ats_ptr_type, tmp53) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_stamp:
tmp53 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp52 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp53), atslab_s2Var_stamp) ;
return (tmp52) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_stamp] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 6027(line=240, offs=3) -- 6267(line=254, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varlst_add_sVarlst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp54) ;
ATSlocal (ats_ptr_type, tmp55) ;
ATSlocal (ats_ptr_type, tmp56) ;
// ATSlocal_void (tmp57) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varlst_add_sVarlst:
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; }
__ats_lab_0_1:
break ;

/* branch: __ats_lab_1 */
__ats_lab_1_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_1_1:
tmp55 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp56 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
/* tmp57 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_add_sVarlst (tmp55, arg1) ;
arg0 = tmp56 ;
arg1 = arg1 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varlst_add_sVarlst ; // tail call
break ;
} while (0) ;
return /* (tmp54) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varlst_add_sVarlst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 6491(line=269, offs=3) -- 6551(line=271, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_make (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp58) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_make:
tmp58 = ATS_MALLOC(sizeof(anairiats_rec_4)) ;
ats_selptrset_mac(anairiats_rec_4, tmp58, atslab_s2VarBound_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_4, tmp58, atslab_s2VarBound_val, arg1) ;

return (tmp58) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_make] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 6613(line=273, offs=30) -- 6635(line=273, offs=52)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_get_loc (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp59) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_get_loc:
tmp59 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_s2VarBound_loc) ;
return (tmp59) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_get_loc] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 6665(line=274, offs=30) -- 6687(line=274, offs=52)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_get_val (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp60) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_get_val:
tmp60 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_s2VarBound_val) ;
return (tmp60) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_get_val] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 6790(line=285, offs=1) -- 6940(line=295, offs=4)
*/
ATSstaticdec()
ats_void_type
auxins_21 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
/* local vardec */
// ATSlocal_void (tmp62) ;
ATSlocal (ats_ptr_type, tmp63) ;
ATSlocal (ats_ptr_type, tmp64) ;
ATSlocal (ats_ptr_type, tmp65) ;

__ats_lab_auxins_21:
tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_make (env0, env2) ;
tmp65 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_lbs (env1) ;
tmp64 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp64, atslab_0, tmp63) ;
ats_selptrset_mac(anairiats_sum_3, tmp64, atslab_1, tmp65) ;
/* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_lbs (env1, tmp64) ;
return /* (tmp62) */ ;
} /* end of [auxins_21] */

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 ;
} auxins_21_closure_type ;

ats_void_type
auxins_21_clofun (ats_clo_ptr_type cloptr) {
auxins_21 (((auxins_21_closure_type*)cloptr)->closure_env_0, ((auxins_21_closure_type*)cloptr)->closure_env_1, ((auxins_21_closure_type*)cloptr)->closure_env_2) ; return ;
} /* end of function */

ATSinline()
ats_void_type
auxins_21_closure_init (auxins_21_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
p_clo->closure_fun = (ats_fun_ptr_type)&auxins_21_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
auxins_21_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
auxins_21_closure_type *p_clo = ATS_MALLOC(sizeof(auxins_21_closure_type)) ;
auxins_21_closure_init (p_clo, env0, env1, env2) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 6761(line=282, offs=3) -- 7082(line=306, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_lb_insert (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp61) ;
ATSlocal (ats_ptr_type, tmp66) ;
ATSlocal (ats_ptr_type, tmp67) ;
ATSlocal (ats_bool_type, tmp68) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_lb_insert:
tmp66 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg2), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_2 */
__ats_lab_2_0:
if (((ats_sum_ptr_type)tmp66)->tag != 8) { goto __ats_lab_3_0 ; }
__ats_lab_2_1:
tmp67 = ats_caselptrlab_mac(anairiats_sum_2, tmp66, atslab_0) ;
tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var (arg1, tmp67) ;
if (!tmp68) { goto __ats_lab_3_1 ; }
break ;

/* branch: __ats_lab_3 */
__ats_lab_3_0:
__ats_lab_3_1:
/* tmp61 = */ auxins_21 (arg0, arg1, arg2) ;
break ;
} while (0) ;
return /* (tmp61) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_lb_insert] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 7169(line=313, offs=1) -- 7319(line=323, offs=4)
*/
ATSstaticdec()
ats_void_type
auxins_23 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
/* local vardec */
// ATSlocal_void (tmp70) ;
ATSlocal (ats_ptr_type, tmp71) ;
ATSlocal (ats_ptr_type, tmp72) ;
ATSlocal (ats_ptr_type, tmp73) ;

__ats_lab_auxins_23:
tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2VarBound_make (env0, env2) ;
tmp73 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_ubs (env1) ;
tmp72 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp72, atslab_0, tmp71) ;
ats_selptrset_mac(anairiats_sum_3, tmp72, atslab_1, tmp73) ;
/* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_set_ubs (env1, tmp72) ;
return /* (tmp70) */ ;
} /* end of [auxins_23] */

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 ;
} auxins_23_closure_type ;

ats_void_type
auxins_23_clofun (ats_clo_ptr_type cloptr) {
auxins_23 (((auxins_23_closure_type*)cloptr)->closure_env_0, ((auxins_23_closure_type*)cloptr)->closure_env_1, ((auxins_23_closure_type*)cloptr)->closure_env_2) ; return ;
} /* end of function */

ATSinline()
ats_void_type
auxins_23_closure_init (auxins_23_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
p_clo->closure_fun = (ats_fun_ptr_type)&auxins_23_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
auxins_23_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
auxins_23_closure_type *p_clo = ATS_MALLOC(sizeof(auxins_23_closure_type)) ;
auxins_23_closure_init (p_clo, env0, env1, env2) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 7140(line=310, offs=3) -- 7461(line=334, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_ub_insert (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp69) ;
ATSlocal (ats_ptr_type, tmp74) ;
ATSlocal (ats_ptr_type, tmp75) ;
ATSlocal (ats_bool_type, tmp76) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_ub_insert:
tmp74 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_5, arg2), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_4 */
__ats_lab_4_0:
if (((ats_sum_ptr_type)tmp74)->tag != 8) { goto __ats_lab_5_0 ; }
__ats_lab_4_1:
tmp75 = ats_caselptrlab_mac(anairiats_sum_2, tmp74, atslab_0) ;
tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var (arg1, tmp75) ;
if (!tmp76) { goto __ats_lab_5_1 ; }
break ;

/* branch: __ats_lab_5 */
__ats_lab_5_0:
__ats_lab_5_1:
/* tmp69 = */ auxins_23 (arg0, arg1, arg2) ;
break ;
} while (0) ;
return /* (tmp69) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_ub_insert] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 7538(line=339, offs=15) -- 7570(line=339, offs=47)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lt_s2Var_s2Var (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp77) ;
ATSlocal (ats_int_type, tmp78) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lt_s2Var_s2Var:
tmp78 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var (arg0, arg1) ;
tmp77 = atspre_ilt (tmp78, 0) ;
return (tmp77) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lt_s2Var_s2Var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 7597(line=341, offs=16) -- 7630(line=341, offs=49)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lte_s2Var_s2Var (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp79) ;
ATSlocal (ats_int_type, tmp80) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lte_s2Var_s2Var:
tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var (arg0, arg1) ;
tmp79 = atspre_ilte (tmp80, 0) ;
return (tmp79) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lte_s2Var_s2Var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 7659(line=344, offs=15) -- 7691(line=344, offs=47)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp81) ;
ATSlocal (ats_int_type, tmp82) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var:
tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var (arg0, arg1) ;
tmp81 = atspre_ieq (tmp82, 0) ;
return (tmp81) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2Var_s2Var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 7718(line=346, offs=16) -- 7751(line=346, offs=49)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2Var_s2Var (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp83) ;
ATSlocal (ats_int_type, tmp84) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2Var_s2Var:
tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var (arg0, arg1) ;
tmp83 = atspre_ineq (tmp84, 0) ;
return (tmp83) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2Var_s2Var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 7786(line=349, offs=21) -- 8007(line=359, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp85) ;
ATSlocal (ats_int_type, tmp86) ;
ATSlocal (ats_int_type, tmp87) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var:
tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_stamp (arg0) ;
tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_stamp (arg1) ;
tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp (tmp86, tmp87) ;
return (tmp85) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 8087(line=364, offs=14) -- 8311(line=373, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp88) ;
ATSlocal (ats_int_type, tmp89) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var:
tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_get_cnt (arg1) ;
/* tmp88 = */ _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__fprint_count (arg0, tmp89) ;
return /* (tmp88) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 8360(line=376, offs=13) -- 8398(line=376, offs=51)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Var (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp90) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Var:
/* tmp90 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var (stdout, arg0) ;
return /* (tmp90) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 8421(line=378, offs=13) -- 8459(line=378, offs=51)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Var (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp91) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Var:
/* tmp91 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var (stderr, arg0) ;
return /* (tmp91) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 9408(line=419, offs=29) -- 9474(line=420, offs=51)
*/
ATSstaticdec()
ats_int_type
compare_elt_elt_03699_s2Var (s2Var arg0, s2Var arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp92) ;

__ats_lab_compare_elt_elt_03699_s2Var:
tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(ats_ptr_type, arg1)) ;
return (tmp92) ;
} /* end of [compare_elt_elt_03699_s2Var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 9513(line=422, offs=29) -- 9579(line=423, offs=51)
*/
ATSstaticdec()
ats_int_type
compare_elt_elt_03727_s2Var (s2Var arg0, s2Var arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp93) ;

__ats_lab_compare_elt_elt_03727_s2Var:
tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2Var_s2Var (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(ats_ptr_type, arg1)) ;
return (tmp93) ;
} /* end of [compare_elt_elt_03727_s2Var] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 2749(line=94, offs=29) -- 2758(line=94, offs=38)
*/
ATSstaticdec()
ats_ptr_type
funset_make_nil_03700_ () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp95) ;

__ats_lab_funset_make_nil_03700_:
tmp95 = (ats_sum_ptr_type)0 ;
return (tmp95) ;
} /* end of [funset_make_nil_03700_] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 9630(line=428, offs=14) -- 9657(line=428, offs=41)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp94) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil:
tmp94 = funset_make_nil_03700_ () ;
return (tmp94) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 5504(line=202, offs=46) -- 6164(line=224, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_rrotate_04027_s2Var (s2Var arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp116) ;
ATSlocal (s2Var, tmp117) ;
ATSlocal (ats_ptr_type, tmp118) ;
ATSlocal (ats_ptr_type, tmp119) ;
ATSlocal (ats_int_type, tmp120) ;
ATSlocal (ats_int_type, tmp121) ;
ATSlocal (ats_int_type, tmp122) ;
ATSlocal (ats_int_type, tmp123) ;
ATSlocal (ats_bool_type, tmp124) ;
ATSlocal (ats_int_type, tmp125) ;
ATSlocal (ats_int_type, tmp126) ;
ATSlocal (ats_int_type, tmp127) ;
ATSlocal (ats_int_type, tmp128) ;
ATSlocal (ats_ptr_type, tmp129) ;
ATSlocal (s2Var, tmp130) ;
ATSlocal (ats_ptr_type, tmp131) ;
ATSlocal (ats_ptr_type, tmp132) ;
ATSlocal (ats_int_type, tmp133) ;
ATSlocal (ats_int_type, tmp134) ;
ATSlocal (ats_int_type, tmp135) ;
ATSlocal (ats_int_type, tmp136) ;
ATSlocal (ats_ptr_type, tmp137) ;
ATSlocal (ats_int_type, tmp138) ;
ATSlocal (ats_int_type, tmp139) ;
ATSlocal (ats_ptr_type, tmp140) ;
ATSlocal (ats_int_type, tmp141) ;
ATSlocal (ats_int_type, tmp142) ;

__ats_lab_avltree_rrotate_04027_s2Var:
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp117 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ;
tmp118 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_2) ;
tmp119 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_3) ;
do {
/* branch: __ats_lab_11 */
__ats_lab_11_0:
if (tmp118 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; }
__ats_lab_11_1:
tmp121 = ats_caselptrlab_mac(anairiats_sum_6, tmp118, atslab_0) ;
tmp120 = tmp121 ;
break ;

/* branch: __ats_lab_12 */
__ats_lab_12_0:
// if (tmp118 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_12_1:
tmp120 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_13 */
__ats_lab_13_0:
if (tmp119 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; }
__ats_lab_13_1:
tmp123 = ats_caselptrlab_mac(anairiats_sum_6, tmp119, atslab_0) ;
tmp122 = tmp123 ;
break ;

/* branch: __ats_lab_14 */
__ats_lab_14_0:
// if (tmp119 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_14_1:
tmp122 = 0 ;
break ;
} while (0) ;
tmp125 = atspre_iadd (tmp120, 0) ;
tmp124 = atspre_igte (tmp125, tmp122) ;
if (tmp124) {
tmp126 = atspre_iadd (tmp122, 1) ;
tmp128 = atspre_imax (tmp120, tmp126) ;
tmp127 = atspre_iadd (1, tmp128) ;
tmp129 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp129, atslab_0, tmp126) ;
ats_selptrset_mac(anairiats_sum_6, tmp129, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_6, tmp129, atslab_2, tmp119) ;
ats_selptrset_mac(anairiats_sum_6, tmp129, atslab_3, arg4) ;
tmp116 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp116, atslab_0, tmp127) ;
ats_selptrset_mac(anairiats_sum_6, tmp116, atslab_1, tmp117) ;
ats_selptrset_mac(anairiats_sum_6, tmp116, atslab_2, tmp118) ;
ats_selptrset_mac(anairiats_sum_6, tmp116, atslab_3, tmp129) ;
} else {
// if (tmp119 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp130 = ats_caselptrlab_mac(anairiats_sum_6, tmp119, atslab_1) ;
tmp131 = ats_caselptrlab_mac(anairiats_sum_6, tmp119, atslab_2) ;
tmp132 = ats_caselptrlab_mac(anairiats_sum_6, tmp119, atslab_3) ;
do {
/* branch: __ats_lab_15 */
__ats_lab_15_0:
if (tmp131 == (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; }
__ats_lab_15_1:
tmp134 = ats_caselptrlab_mac(anairiats_sum_6, tmp131, atslab_0) ;
tmp133 = tmp134 ;
break ;

/* branch: __ats_lab_16 */
__ats_lab_16_0:
// if (tmp131 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_16_1:
tmp133 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_17 */
__ats_lab_17_0:
if (tmp132 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; }
__ats_lab_17_1:
tmp136 = ats_caselptrlab_mac(anairiats_sum_6, tmp132, atslab_0) ;
tmp135 = tmp136 ;
break ;

/* branch: __ats_lab_18 */
__ats_lab_18_0:
// if (tmp132 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_18_1:
tmp135 = 0 ;
break ;
} while (0) ;
tmp139 = atspre_imax (tmp120, tmp133) ;
tmp138 = atspre_iadd (1, tmp139) ;
tmp137 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp137, atslab_0, tmp138) ;
ats_selptrset_mac(anairiats_sum_6, tmp137, atslab_1, tmp117) ;
ats_selptrset_mac(anairiats_sum_6, tmp137, atslab_2, tmp118) ;
ats_selptrset_mac(anairiats_sum_6, tmp137, atslab_3, tmp131) ;
tmp142 = atspre_imax (tmp135, arg3) ;
tmp141 = atspre_iadd (1, tmp142) ;
tmp140 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp140, atslab_0, tmp141) ;
ats_selptrset_mac(anairiats_sum_6, tmp140, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_6, tmp140, atslab_2, tmp132) ;
ats_selptrset_mac(anairiats_sum_6, tmp140, atslab_3, arg4) ;
tmp116 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp116, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_6, tmp116, atslab_1, tmp130) ;
ats_selptrset_mac(anairiats_sum_6, tmp116, atslab_2, tmp137) ;
ats_selptrset_mac(anairiats_sum_6, tmp116, atslab_3, tmp140) ;
} /* end of [if] */
return (tmp116) ;
} /* end of [avltree_rrotate_04027_s2Var] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4671(line=174, offs=46) -- 5362(line=196, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_lrotate_04010_s2Var (s2Var arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp153) ;
ATSlocal (s2Var, tmp154) ;
ATSlocal (ats_ptr_type, tmp155) ;
ATSlocal (ats_ptr_type, tmp156) ;
ATSlocal (ats_int_type, tmp157) ;
ATSlocal (ats_int_type, tmp158) ;
ATSlocal (ats_int_type, tmp159) ;
ATSlocal (ats_int_type, tmp160) ;
ATSlocal (ats_bool_type, tmp161) ;
ATSlocal (ats_int_type, tmp162) ;
ATSlocal (ats_int_type, tmp163) ;
ATSlocal (ats_int_type, tmp164) ;
ATSlocal (ats_int_type, tmp165) ;
ATSlocal (ats_ptr_type, tmp166) ;
ATSlocal (s2Var, tmp167) ;
ATSlocal (ats_ptr_type, tmp168) ;
ATSlocal (ats_ptr_type, tmp169) ;
ATSlocal (ats_int_type, tmp170) ;
ATSlocal (ats_int_type, tmp171) ;
ATSlocal (ats_int_type, tmp172) ;
ATSlocal (ats_int_type, tmp173) ;
ATSlocal (ats_ptr_type, tmp174) ;
ATSlocal (ats_int_type, tmp175) ;
ATSlocal (ats_int_type, tmp176) ;
ATSlocal (ats_ptr_type, tmp177) ;
ATSlocal (ats_int_type, tmp178) ;
ATSlocal (ats_int_type, tmp179) ;

__ats_lab_avltree_lrotate_04010_s2Var:
// if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp154 = ats_caselptrlab_mac(anairiats_sum_6, arg4, atslab_1) ;
tmp155 = ats_caselptrlab_mac(anairiats_sum_6, arg4, atslab_2) ;
tmp156 = ats_caselptrlab_mac(anairiats_sum_6, arg4, atslab_3) ;
do {
/* branch: __ats_lab_23 */
__ats_lab_23_0:
if (tmp155 == (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; }
__ats_lab_23_1:
tmp158 = ats_caselptrlab_mac(anairiats_sum_6, tmp155, atslab_0) ;
tmp157 = tmp158 ;
break ;

/* branch: __ats_lab_24 */
__ats_lab_24_0:
// if (tmp155 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_24_1:
tmp157 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_25 */
__ats_lab_25_0:
if (tmp156 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; }
__ats_lab_25_1:
tmp160 = ats_caselptrlab_mac(anairiats_sum_6, tmp156, atslab_0) ;
tmp159 = tmp160 ;
break ;

/* branch: __ats_lab_26 */
__ats_lab_26_0:
// if (tmp156 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_26_1:
tmp159 = 0 ;
break ;
} while (0) ;
tmp162 = atspre_iadd (tmp159, 0) ;
tmp161 = atspre_ilte (tmp157, tmp162) ;
if (tmp161) {
tmp163 = atspre_iadd (tmp157, 1) ;
tmp165 = atspre_imax (tmp163, tmp159) ;
tmp164 = atspre_iadd (1, tmp165) ;
tmp166 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp166, atslab_0, tmp163) ;
ats_selptrset_mac(anairiats_sum_6, tmp166, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_6, tmp166, atslab_2, arg2) ;
ats_selptrset_mac(anairiats_sum_6, tmp166, atslab_3, tmp155) ;
tmp153 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp153, atslab_0, tmp164) ;
ats_selptrset_mac(anairiats_sum_6, tmp153, atslab_1, tmp154) ;
ats_selptrset_mac(anairiats_sum_6, tmp153, atslab_2, tmp166) ;
ats_selptrset_mac(anairiats_sum_6, tmp153, atslab_3, tmp156) ;
} else {
// if (tmp155 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp167 = ats_caselptrlab_mac(anairiats_sum_6, tmp155, atslab_1) ;
tmp168 = ats_caselptrlab_mac(anairiats_sum_6, tmp155, atslab_2) ;
tmp169 = ats_caselptrlab_mac(anairiats_sum_6, tmp155, atslab_3) ;
do {
/* branch: __ats_lab_27 */
__ats_lab_27_0:
if (tmp168 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; }
__ats_lab_27_1:
tmp171 = ats_caselptrlab_mac(anairiats_sum_6, tmp168, atslab_0) ;
tmp170 = tmp171 ;
break ;

/* branch: __ats_lab_28 */
__ats_lab_28_0:
// if (tmp168 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_28_1:
tmp170 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_29 */
__ats_lab_29_0:
if (tmp169 == (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; }
__ats_lab_29_1:
tmp173 = ats_caselptrlab_mac(anairiats_sum_6, tmp169, atslab_0) ;
tmp172 = tmp173 ;
break ;

/* branch: __ats_lab_30 */
__ats_lab_30_0:
// if (tmp169 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_30_1:
tmp172 = 0 ;
break ;
} while (0) ;
tmp176 = atspre_imax (arg1, tmp170) ;
tmp175 = atspre_iadd (1, tmp176) ;
tmp174 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp174, atslab_0, tmp175) ;
ats_selptrset_mac(anairiats_sum_6, tmp174, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_6, tmp174, atslab_2, arg2) ;
ats_selptrset_mac(anairiats_sum_6, tmp174, atslab_3, tmp168) ;
tmp179 = atspre_imax (tmp172, tmp159) ;
tmp178 = atspre_iadd (1, tmp179) ;
tmp177 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp177, atslab_0, tmp178) ;
ats_selptrset_mac(anairiats_sum_6, tmp177, atslab_1, tmp154) ;
ats_selptrset_mac(anairiats_sum_6, tmp177, atslab_2, tmp169) ;
ats_selptrset_mac(anairiats_sum_6, tmp177, atslab_3, tmp156) ;
tmp153 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp153, atslab_0, arg3) ;
ats_selptrset_mac(anairiats_sum_6, tmp153, atslab_1, tmp167) ;
ats_selptrset_mac(anairiats_sum_6, tmp153, atslab_2, tmp174) ;
ats_selptrset_mac(anairiats_sum_6, tmp153, atslab_3, tmp177) ;
} /* end of [if] */
return (tmp153) ;
} /* end of [avltree_lrotate_04010_s2Var] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6278(line=231, offs=7) -- 7544(line=264, offs=6)
*/
ATSstaticdec()
ats_ptr_type
insert_38 (s2Var env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp100) ;
ATSlocal (ats_int_type, tmp101) ;
ATSlocal (s2Var, tmp102) ;
ATSlocal (ats_ptr_type, tmp103) ;
ATSlocal (ats_ptr_type, tmp104) ;
ATSlocal (ats_int_type, tmp105) ;
ATSlocal (ats_bool_type, tmp106) ;
ATSlocal (ats_ptr_type, tmp107) ;
ATSlocal (ats_int_type, tmp108) ;
ATSlocal (ats_int_type, tmp109) ;
ATSlocal (ats_int_type, tmp110) ;
ATSlocal (ats_int_type, tmp111) ;
ATSlocal (ats_bool_type, tmp112) ;
ATSlocal (ats_int_type, tmp113) ;
ATSlocal (ats_int_type, tmp114) ;
ATSlocal (ats_int_type, tmp115) ;
ATSlocal (ats_bool_type, tmp143) ;
ATSlocal (ats_ptr_type, tmp144) ;
ATSlocal (ats_int_type, tmp145) ;
ATSlocal (ats_int_type, tmp146) ;
ATSlocal (ats_int_type, tmp147) ;
ATSlocal (ats_int_type, tmp148) ;
ATSlocal (ats_bool_type, tmp149) ;
ATSlocal (ats_int_type, tmp150) ;
ATSlocal (ats_int_type, tmp151) ;
ATSlocal (ats_int_type, tmp152) ;
ATSlocal (ats_ptr_type, tmp180) ;
ATSlocal (ats_ptr_type, tmp181) ;

__ats_lab_insert_38:
do {
/* branch: __ats_lab_6 */
__ats_lab_6_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; }
__ats_lab_6_1:
tmp101 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp102 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp103 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp104 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp105 = compare_elt_elt_03699_s2Var (env0, tmp102, env1) ;
tmp106 = atspre_lt_int_int (tmp105, 0) ;
if (tmp106) {
tmp107 = insert_38 (env0, env1, tmp103, arg1) ;
do {
/* branch: __ats_lab_7 */
__ats_lab_7_0:
if (tmp107 == (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; }
__ats_lab_7_1:
tmp109 = ats_caselptrlab_mac(anairiats_sum_6, tmp107, atslab_0) ;
tmp108 = tmp109 ;
break ;

/* branch: __ats_lab_8 */
__ats_lab_8_0:
// if (tmp107 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_8_1:
tmp108 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_9 */
__ats_lab_9_0:
if (tmp104 == (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; }
__ats_lab_9_1:
tmp111 = ats_caselptrlab_mac(anairiats_sum_6, tmp104, atslab_0) ;
tmp110 = tmp111 ;
break ;

/* branch: __ats_lab_10 */
__ats_lab_10_0:
// if (tmp104 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_10_1:
tmp110 = 0 ;
break ;
} while (0) ;
tmp113 = atspre_isub (tmp108, tmp110) ;
tmp112 = atspre_ilte (tmp113, 1) ;
if (tmp112) {
tmp115 = atspre_imax (tmp108, tmp110) ;
tmp114 = atspre_iadd (1, tmp115) ;
tmp100 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_0, tmp114) ;
ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_1, tmp102) ;
ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_2, tmp107) ;
ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_3, tmp104) ;
} else {
tmp100 = avltree_rrotate_04027_s2Var (tmp102, tmp108, tmp107, tmp110, tmp104) ;
} /* end of [if] */
} else {
tmp143 = atspre_gt_int_int (tmp105, 0) ;
if (tmp143) {
tmp144 = insert_38 (env0, env1, tmp104, arg1) ;
do {
/* branch: __ats_lab_19 */
__ats_lab_19_0:
if (tmp103 == (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; }
__ats_lab_19_1:
tmp146 = ats_caselptrlab_mac(anairiats_sum_6, tmp103, atslab_0) ;
tmp145 = tmp146 ;
break ;

/* branch: __ats_lab_20 */
__ats_lab_20_0:
// if (tmp103 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_20_1:
tmp145 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_21 */
__ats_lab_21_0:
if (tmp144 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; }
__ats_lab_21_1:
tmp148 = ats_caselptrlab_mac(anairiats_sum_6, tmp144, atslab_0) ;
tmp147 = tmp148 ;
break ;

/* branch: __ats_lab_22 */
__ats_lab_22_0:
// if (tmp144 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_22_1:
tmp147 = 0 ;
break ;
} while (0) ;
tmp150 = atspre_isub (tmp147, tmp145) ;
tmp149 = atspre_ilte (tmp150, 1) ;
if (tmp149) {
tmp152 = atspre_imax (tmp145, tmp147) ;
tmp151 = atspre_iadd (1, tmp152) ;
tmp100 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_0, tmp151) ;
ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_1, tmp102) ;
ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_2, tmp103) ;
ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_3, tmp144) ;
} else {
tmp100 = avltree_lrotate_04010_s2Var (tmp102, tmp145, tmp103, tmp147, tmp144) ;
} /* end of [if] */
} else {
ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ;
tmp100 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_0, tmp101) ;
ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_1, env0) ;
ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_2, tmp103) ;
ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_3, tmp104) ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_31 */
__ats_lab_31_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_31_1:
ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ;
tmp180 = (ats_sum_ptr_type)0 ;
tmp181 = (ats_sum_ptr_type)0 ;
tmp100 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_1, env0) ;
ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_2, tmp180) ;
ats_selptrset_mac(anairiats_sum_6, tmp100, atslab_3, tmp181) ;
break ;
} while (0) ;
return (tmp100) ;
} /* end of [insert_38] */

typedef struct {
ats_fun_ptr_type closure_fun ;
s2Var closure_env_0 ;
ats_clo_ref_type closure_env_1 ;
} insert_38_closure_type ;

ats_ptr_type
insert_38_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) {
return insert_38 (((insert_38_closure_type*)cloptr)->closure_env_0, ((insert_38_closure_type*)cloptr)->closure_env_1, arg0, arg1) ;
} /* end of function */

ATSinline()
ats_void_type
insert_38_closure_init (insert_38_closure_type *p_clo, s2Var env0, ats_clo_ref_type env1) {
p_clo->closure_fun = (ats_fun_ptr_type)&insert_38_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
return ;
} /* end of function */

ats_clo_ptr_type
insert_38_closure_make (s2Var env0, ats_clo_ref_type env1) {
insert_38_closure_type *p_clo = ATS_MALLOC(sizeof(insert_38_closure_type)) ;
insert_38_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6244(line=230, offs=3) -- 7632(line=267, offs=2)
*/
ATSstaticdec()
ats_bool_type
funset_insert_03709_s2Var (ats_ref_type arg0, s2Var arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp99) ;
ATSlocal (ats_bool_type, tmp182) ;
ATSlocal (ats_ptr_type, tmp183) ;

__ats_lab_funset_insert_03709_s2Var:
/* ats_bool_type tmp182 ; */
tmp183 = insert_38 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp182)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp183 ;
tmp99 = tmp182 ;
return (tmp99) ;
} /* end of [funset_insert_03709_s2Var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 9684(line=432, offs=3) -- 9846(line=437, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_add (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp96) ;
ATSlocal (ats_ptr_type, tmp97) ;
ATSlocal (ats_bool_type, tmp98) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_add:
/* ats_ptr_type tmp97 ; */
tmp97 = ats_castfn_mac(ats_ptr_type, arg0) ;
tmp98 = funset_insert_03709_s2Var ((&tmp97), ats_castfn_mac(s2Var, arg1), 0) ;
tmp96 = ats_castfn_mac(ats_ptr_type, tmp97) ;
return (tmp96) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_add] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4143(line=153, offs=7) -- 4406(line=161, offs=20)
*/
ATSstaticdec()
ats_bool_type
aux_43 (s2Var env0, ats_clo_ref_type env1, ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp186) ;
ATSlocal (s2Var, tmp187) ;
ATSlocal (ats_ptr_type, tmp188) ;
ATSlocal (ats_ptr_type, tmp189) ;
ATSlocal (ats_int_type, tmp190) ;
ATSlocal (ats_bool_type, tmp191) ;
ATSlocal (ats_bool_type, tmp192) ;

__ats_lab_aux_43:
do {
/* branch: __ats_lab_32 */
__ats_lab_32_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; }
__ats_lab_32_1:
tmp187 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp188 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp189 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp190 = compare_elt_elt_03699_s2Var (env0, tmp187, env1) ;
tmp191 = atspre_lt_int_int (tmp190, 0) ;
if (tmp191) {
arg0 = tmp188 ;
goto __ats_lab_aux_43 ; // tail call
} else {
tmp192 = atspre_gt_int_int (tmp190, 0) ;
if (tmp192) {
arg0 = tmp189 ;
goto __ats_lab_aux_43 ; // tail call
} else {
tmp186 = ats_true_bool ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_33 */
__ats_lab_33_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_33_1:
tmp186 = ats_false_bool ;
break ;
} while (0) ;
return (tmp186) ;
} /* end of [aux_43] */

typedef struct {
ats_fun_ptr_type closure_fun ;
s2Var closure_env_0 ;
ats_clo_ref_type closure_env_1 ;
} aux_43_closure_type ;

ats_bool_type
aux_43_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
return aux_43 (((aux_43_closure_type*)cloptr)->closure_env_0, ((aux_43_closure_type*)cloptr)->closure_env_1, arg0) ;
} /* end of function */

ATSinline()
ats_void_type
aux_43_closure_init (aux_43_closure_type *p_clo, s2Var env0, ats_clo_ref_type env1) {
p_clo->closure_fun = (ats_fun_ptr_type)&aux_43_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
return ;
} /* end of function */

ats_clo_ptr_type
aux_43_closure_make (s2Var env0, ats_clo_ref_type env1) {
aux_43_closure_type *p_clo = ATS_MALLOC(sizeof(aux_43_closure_type)) ;
aux_43_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4104(line=152, offs=3) -- 4426(line=163, offs=2)
*/
ATSstaticdec()
ats_bool_type
funset_is_member_03707_s2Var (ats_ptr_type arg0, s2Var arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp185) ;

__ats_lab_funset_is_member_03707_s2Var:
tmp185 = aux_43 (arg1, arg2, arg0) ;
return (tmp185) ;
} /* end of [funset_is_member_03707_s2Var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 9900(line=441, offs=3) -- 10032(line=445, offs=2)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_ismem (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp184) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_ismem:
tmp184 = funset_is_member_03707_s2Var (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(s2Var, arg1), 0) ;
return (tmp184) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_ismem] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 20241(line=721, offs=7) -- 20545(line=732, offs=18)
*/
ATSstaticdec()
ats_ptr_type
listize_46 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp196) ;
ATSlocal (s2Var, tmp197) ;
ATSlocal (ats_ptr_type, tmp198) ;
ATSlocal (ats_ptr_type, tmp199) ;
ATSlocal (ats_ptr_type, tmp200) ;
ATSlocal (ats_ptr_type, tmp201) ;

__ats_lab_listize_46:
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:
tmp197 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp198 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp199 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp200 = listize_46 (tmp199, arg1) ;
tmp201 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
ats_selptrset_mac(anairiats_sum_7, tmp201, atslab_0, tmp197) ;
ats_selptrset_mac(anairiats_sum_7, tmp201, atslab_1, tmp200) ;
arg0 = tmp198 ;
arg1 = tmp201 ;
goto __ats_lab_listize_46 ; // 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:
tmp196 = arg1 ;
break ;
} while (0) ;
return (tmp196) ;
} /* end of [listize_46] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 20189(line=719, offs=16) -- 20605(line=736, offs=4)
*/
ATSstaticdec()
ats_ptr_type
funset_listize_03724_s2Var (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp195) ;
ATSlocal (ats_ptr_type, tmp202) ;

__ats_lab_funset_listize_03724_s2Var:
tmp202 = (ats_sum_ptr_type)0 ;
tmp195 = listize_46 (arg0, tmp202) ;
return (tmp195) ;
} /* end of [funset_listize_03724_s2Var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 10092(line=448, offs=18) -- 10232(line=453, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_listize (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp193) ;
ATSlocal (ats_ptr_type, tmp194) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_listize:
tmp194 = funset_listize_03724_s2Var (ats_castfn_mac(ats_ptr_type, arg0)) ;
tmp193 = ats_castfn_mac(ats_ptr_type, tmp194) ;
return (tmp193) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_listize] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2859(line=106, offs=17) -- 2868(line=106, offs=26)
*/
ATSstaticdec()
ats_ptr_type
linset_make_nil_03728_ () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp204) ;

__ats_lab_linset_make_nil_03728_:
tmp204 = (ats_sum_ptr_type)0 ;
return (tmp204) ;
} /* end of [linset_make_nil_03728_] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 10310(line=458, offs=17) -- 10337(line=458, offs=44)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp203) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_nil:
tmp203 = linset_make_nil_03728_ () ;
return (tmp203) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_nil] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3655(line=140, offs=3) -- 3740(line=141, offs=54)
*/
ATSstaticdec()
ats_int_type
avltree_height_04284_s2Var (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp219) ;
ATSlocal (ats_int_type, tmp220) ;

__ats_lab_avltree_height_04284_s2Var:
do {
/* branch: __ats_lab_37 */
__ats_lab_37_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; }
__ats_lab_37_1:
tmp220 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp219 = tmp220 ;
break ;

/* branch: __ats_lab_38 */
__ats_lab_38_0:
__ats_lab_38_1:
tmp219 = 0 ;
break ;
} while (0) ;
return (tmp219) ;
} /* end of [avltree_height_04284_s2Var] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 6846(line=274, offs=32) -- 8280(line=323, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_rrotate_04338_s2Var (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp229) ;
ATSlocal (ats_ptr_type, tmp230) ;
ATSlocal (ats_ptr_type, tmp231) ;
ATSlocal (ats_ptr_type, tmp232) ;
ATSlocal (ats_ptr_type, tmp233) ;
ATSlocal (ats_int_type, tmp234) ;
ATSlocal (ats_ptr_type, tmp235) ;
ATSlocal (ats_int_type, tmp236) ;
ATSlocal (ats_ptr_type, tmp237) ;
ATSlocal (ats_bool_type, tmp238) ;
ATSlocal (ats_int_type, tmp239) ;
ATSlocal (ats_int_type, tmp240) ;
ATSlocal (ats_ptr_type, tmp241) ;
ATSlocal (ats_int_type, tmp242) ;
ATSlocal (ats_int_type, tmp243) ;
ATSlocal (ats_ptr_type, tmp244) ;
ATSlocal (ats_ptr_type, tmp245) ;
ATSlocal (ats_ptr_type, tmp246) ;
ATSlocal (ats_ptr_type, tmp247) ;
ATSlocal (ats_int_type, tmp248) ;
ATSlocal (ats_ptr_type, tmp249) ;
ATSlocal (ats_int_type, tmp250) ;
ATSlocal (ats_ptr_type, tmp251) ;
ATSlocal (ats_int_type, tmp252) ;
ATSlocal (ats_int_type, tmp253) ;
ATSlocal (ats_ptr_type, tmp254) ;
ATSlocal (ats_int_type, tmp255) ;
ATSlocal (ats_int_type, tmp256) ;
ATSlocal (ats_ptr_type, tmp257) ;

__ats_lab_avltree_rrotate_04338_s2Var:
tmp230 = ats_ptrget_mac(ats_ptr_type, arg2) ;
// if (tmp230 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp231 = &ats_caselptrlab_mac(anairiats_sum_6, tmp230, atslab_0) ;
tmp232 = &ats_caselptrlab_mac(anairiats_sum_6, tmp230, atslab_2) ;
tmp233 = &ats_caselptrlab_mac(anairiats_sum_6, tmp230, atslab_3) ;
tmp235 = ats_ptrget_mac(ats_ptr_type, tmp232) ;
tmp234 = avltree_height_04284_s2Var (tmp235) ;
tmp237 = ats_ptrget_mac(ats_ptr_type, tmp233) ;
tmp236 = avltree_height_04284_s2Var (tmp237) ;
tmp239 = atspre_iadd (tmp234, 0) ;
tmp238 = atspre_igte (tmp239, tmp236) ;
if (tmp238) {
tmp240 = atspre_iadd (tmp236, 1) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp240 ;
tmp241 = ats_ptrget_mac(ats_ptr_type, tmp233) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp241 ;
tmp243 = atspre_imax (tmp234, tmp240) ;
tmp242 = atspre_iadd (1, tmp243) ;
ats_ptrget_mac(ats_int_type, tmp231) = tmp242 ;
ats_ptrget_mac(ats_ptr_type, tmp233) = arg5 ;
tmp229 = tmp230 ;
} else {
tmp244 = ats_ptrget_mac(ats_ptr_type, tmp233) ;
// if (tmp244 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp245 = &ats_caselptrlab_mac(anairiats_sum_6, tmp244, atslab_0) ;
tmp246 = &ats_caselptrlab_mac(anairiats_sum_6, tmp244, atslab_2) ;
tmp247 = &ats_caselptrlab_mac(anairiats_sum_6, tmp244, atslab_3) ;
tmp249 = ats_ptrget_mac(ats_ptr_type, tmp246) ;
tmp248 = avltree_height_04284_s2Var (tmp249) ;
tmp251 = ats_ptrget_mac(ats_ptr_type, tmp247) ;
tmp250 = avltree_height_04284_s2Var (tmp251) ;
tmp253 = atspre_imax (tmp250, arg3) ;
tmp252 = atspre_iadd (1, tmp253) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp252 ;
tmp254 = ats_ptrget_mac(ats_ptr_type, tmp247) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp254 ;
tmp256 = atspre_imax (tmp234, tmp248) ;
tmp255 = atspre_iadd (1, tmp256) ;
ats_ptrget_mac(ats_int_type, tmp231) = tmp255 ;
tmp257 = ats_ptrget_mac(ats_ptr_type, tmp246) ;
ats_ptrget_mac(ats_ptr_type, tmp233) = tmp257 ;
ats_ptrget_mac(ats_int_type, tmp245) = arg1 ;
ats_ptrget_mac(ats_ptr_type, tmp246) = tmp230 ;
ats_ptrget_mac(ats_ptr_type, tmp247) = arg5 ;
tmp229 = tmp244 ;
} /* end of [if] */
return (tmp229) ;
} /* end of [avltree_rrotate_04338_s2Var] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 5209(line=217, offs=32) -- 6673(line=266, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_lrotate_04314_s2Var (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp269) ;
ATSlocal (ats_ptr_type, tmp270) ;
ATSlocal (ats_ptr_type, tmp271) ;
ATSlocal (ats_ptr_type, tmp272) ;
ATSlocal (ats_ptr_type, tmp273) ;
ATSlocal (ats_int_type, tmp274) ;
ATSlocal (ats_ptr_type, tmp275) ;
ATSlocal (ats_int_type, tmp276) ;
ATSlocal (ats_ptr_type, tmp277) ;
ATSlocal (ats_bool_type, tmp278) ;
ATSlocal (ats_int_type, tmp279) ;
ATSlocal (ats_int_type, tmp280) ;
ATSlocal (ats_ptr_type, tmp281) ;
ATSlocal (ats_int_type, tmp282) ;
ATSlocal (ats_int_type, tmp283) ;
ATSlocal (ats_ptr_type, tmp284) ;
ATSlocal (ats_ptr_type, tmp285) ;
ATSlocal (ats_ptr_type, tmp286) ;
ATSlocal (ats_ptr_type, tmp287) ;
ATSlocal (ats_int_type, tmp288) ;
ATSlocal (ats_ptr_type, tmp289) ;
ATSlocal (ats_int_type, tmp290) ;
ATSlocal (ats_ptr_type, tmp291) ;
ATSlocal (ats_int_type, tmp292) ;
ATSlocal (ats_int_type, tmp293) ;
ATSlocal (ats_ptr_type, tmp294) ;
ATSlocal (ats_int_type, tmp295) ;
ATSlocal (ats_int_type, tmp296) ;
ATSlocal (ats_ptr_type, tmp297) ;

__ats_lab_avltree_lrotate_04314_s2Var:
tmp270 = ats_ptrget_mac(ats_ptr_type, arg4) ;
// if (tmp270 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp271 = &ats_caselptrlab_mac(anairiats_sum_6, tmp270, atslab_0) ;
tmp272 = &ats_caselptrlab_mac(anairiats_sum_6, tmp270, atslab_2) ;
tmp273 = &ats_caselptrlab_mac(anairiats_sum_6, tmp270, atslab_3) ;
tmp275 = ats_ptrget_mac(ats_ptr_type, tmp272) ;
tmp274 = avltree_height_04284_s2Var (tmp275) ;
tmp277 = ats_ptrget_mac(ats_ptr_type, tmp273) ;
tmp276 = avltree_height_04284_s2Var (tmp277) ;
tmp279 = atspre_iadd (tmp276, 0) ;
tmp278 = atspre_ilte (tmp274, tmp279) ;
if (tmp278) {
tmp280 = atspre_iadd (tmp274, 1) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp280 ;
tmp281 = ats_ptrget_mac(ats_ptr_type, tmp272) ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp281 ;
tmp283 = atspre_imax (tmp280, tmp276) ;
tmp282 = atspre_iadd (1, tmp283) ;
ats_ptrget_mac(ats_int_type, tmp271) = tmp282 ;
ats_ptrget_mac(ats_ptr_type, tmp272) = arg5 ;
tmp269 = tmp270 ;
} else {
tmp284 = ats_ptrget_mac(ats_ptr_type, tmp272) ;
// if (tmp284 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp285 = &ats_caselptrlab_mac(anairiats_sum_6, tmp284, atslab_0) ;
tmp286 = &ats_caselptrlab_mac(anairiats_sum_6, tmp284, atslab_2) ;
tmp287 = &ats_caselptrlab_mac(anairiats_sum_6, tmp284, atslab_3) ;
tmp289 = ats_ptrget_mac(ats_ptr_type, tmp286) ;
tmp288 = avltree_height_04284_s2Var (tmp289) ;
tmp291 = ats_ptrget_mac(ats_ptr_type, tmp287) ;
tmp290 = avltree_height_04284_s2Var (tmp291) ;
tmp293 = atspre_imax (arg1, tmp288) ;
tmp292 = atspre_iadd (1, tmp293) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp292 ;
tmp294 = ats_ptrget_mac(ats_ptr_type, tmp286) ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp294 ;
tmp296 = atspre_imax (tmp290, tmp276) ;
tmp295 = atspre_iadd (1, tmp296) ;
ats_ptrget_mac(ats_int_type, tmp271) = tmp295 ;
tmp297 = ats_ptrget_mac(ats_ptr_type, tmp287) ;
ats_ptrget_mac(ats_ptr_type, tmp272) = tmp297 ;
ats_ptrget_mac(ats_int_type, tmp285) = arg3 ;
ats_ptrget_mac(ats_ptr_type, tmp286) = arg5 ;
ats_ptrget_mac(ats_ptr_type, tmp287) = tmp270 ;
tmp269 = tmp284 ;
} /* end of [if] */
return (tmp269) ;
} /* end of [avltree_lrotate_04314_s2Var] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8387(line=331, offs=5) -- 10085(line=382, offs=4)
*/
ATSstaticdec()
ats_bool_type
insert_51 (ats_clo_ref_type env0, ats_ref_type arg0, s2Var arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp209) ;
ATSlocal (ats_ptr_type, tmp210) ;
ATSlocal (ats_ptr_type, tmp211) ;
ATSlocal (ats_ptr_type, tmp212) ;
ATSlocal (ats_ptr_type, tmp213) ;
ATSlocal (ats_int_type, tmp214) ;
ATSlocal (s2Var, tmp215) ;
ATSlocal (ats_bool_type, tmp216) ;
ATSlocal (ats_bool_type, tmp217) ;
ATSlocal (ats_int_type, tmp218) ;
ATSlocal (ats_ptr_type, tmp221) ;
ATSlocal (ats_int_type, tmp222) ;
ATSlocal (ats_ptr_type, tmp223) ;
ATSlocal (ats_bool_type, tmp224) ;
ATSlocal (ats_int_type, tmp225) ;
ATSlocal (ats_int_type, tmp226) ;
ATSlocal (ats_int_type, tmp227) ;
ATSlocal (ats_ptr_type, tmp228) ;
ATSlocal (ats_bool_type, tmp258) ;
ATSlocal (ats_bool_type, tmp259) ;
ATSlocal (ats_int_type, tmp260) ;
ATSlocal (ats_ptr_type, tmp261) ;
ATSlocal (ats_int_type, tmp262) ;
ATSlocal (ats_ptr_type, tmp263) ;
ATSlocal (ats_bool_type, tmp264) ;
ATSlocal (ats_int_type, tmp265) ;
ATSlocal (ats_int_type, tmp266) ;
ATSlocal (ats_int_type, tmp267) ;
ATSlocal (ats_ptr_type, tmp268) ;
ATSlocal (ats_ptr_type, tmp298) ;
ATSlocal (ats_ptr_type, tmp299) ;
ATSlocal (ats_ptr_type, tmp300) ;

__ats_lab_insert_51:
do {
/* branch: __ats_lab_36 */
__ats_lab_36_0:
if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; }
__ats_lab_36_1:
tmp210 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp211 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ;
tmp212 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ;
tmp213 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ;
tmp215 = ats_ptrget_mac(s2Var, tmp211) ;
tmp214 = compare_elt_elt_03727_s2Var (arg1, tmp215, env0) ;
tmp216 = atspre_lt_int_int (tmp214, 0) ;
if (tmp216) {
tmp217 = insert_51 (env0, tmp212, arg1) ;
tmp221 = ats_ptrget_mac(ats_ptr_type, tmp212) ;
tmp218 = avltree_height_04284_s2Var (tmp221) ;
tmp223 = ats_ptrget_mac(ats_ptr_type, tmp213) ;
tmp222 = avltree_height_04284_s2Var (tmp223) ;
tmp225 = atspre_isub (tmp218, tmp222) ;
tmp224 = atspre_ilte (tmp225, 1) ;
if (tmp224) {
tmp227 = atspre_imax (tmp218, tmp222) ;
tmp226 = atspre_iadd (1, tmp227) ;
ats_ptrget_mac(ats_int_type, tmp210) = tmp226 ;
tmp209 = tmp217 ;
} else {
tmp228 = avltree_rrotate_04338_s2Var (tmp210, tmp218, tmp212, tmp222, tmp213, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp228 ;
tmp209 = tmp217 ;
} /* end of [if] */
} else {
tmp258 = atspre_gt_int_int (tmp214, 0) ;
if (tmp258) {
tmp259 = insert_51 (env0, tmp213, arg1) ;
tmp261 = ats_ptrget_mac(ats_ptr_type, tmp212) ;
tmp260 = avltree_height_04284_s2Var (tmp261) ;
tmp263 = ats_ptrget_mac(ats_ptr_type, tmp213) ;
tmp262 = avltree_height_04284_s2Var (tmp263) ;
tmp265 = atspre_isub (tmp262, tmp260) ;
tmp264 = atspre_ilte (tmp265, 1) ;
if (tmp264) {
tmp267 = atspre_imax (tmp260, tmp262) ;
tmp266 = atspre_iadd (1, tmp267) ;
ats_ptrget_mac(ats_int_type, tmp210) = tmp266 ;
tmp209 = tmp259 ;
} else {
tmp268 = avltree_lrotate_04314_s2Var (tmp210, tmp260, tmp212, tmp262, tmp213, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp268 ;
tmp209 = tmp259 ;
} /* end of [if] */
} else {
tmp209 = ats_true_bool ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_39 */
__ats_lab_39_0:
// if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_39_1:
tmp299 = (ats_sum_ptr_type)0 ;
tmp300 = (ats_sum_ptr_type)0 ;
tmp298 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp298, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_6, tmp298, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_6, tmp298, atslab_2, tmp299) ;
ats_selptrset_mac(anairiats_sum_6, tmp298, atslab_3, tmp300) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp298 ;
tmp209 = ats_false_bool ;
break ;
} while (0) ;
return (tmp209) ;
} /* end of [insert_51] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_clo_ref_type closure_env_0 ;
} insert_51_closure_type ;

ats_bool_type
insert_51_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, s2Var arg1) {
return insert_51 (((insert_51_closure_type*)cloptr)->closure_env_0, arg0, arg1) ;
} /* end of function */

ATSinline()
ats_void_type
insert_51_closure_init (insert_51_closure_type *p_clo, ats_clo_ref_type env0) {
p_clo->closure_fun = (ats_fun_ptr_type)&insert_51_clofun ;
p_clo->closure_env_0 = env0 ;
return ;
} /* end of function */

ats_clo_ptr_type
insert_51_closure_make (ats_clo_ref_type env0) {
insert_51_closure_type *p_clo = ATS_MALLOC(sizeof(insert_51_closure_type)) ;
insert_51_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8360(line=329, offs=3) -- 10136(line=388, offs=4)
*/
ATSstaticdec()
ats_bool_type
linset_insert_03737_s2Var (ats_ref_type arg0, s2Var arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp208) ;

__ats_lab_linset_insert_03737_s2Var:
tmp208 = insert_51 (arg2, arg0, arg1) ;
return (tmp208) ;
} /* end of [linset_insert_03737_s2Var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 10367(line=462, offs=3) -- 10535(line=467, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_add (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp205) ;
ATSlocal (ats_ptr_type, tmp206) ;
ATSlocal (ats_bool_type, tmp207) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_add:
/* ats_ptr_type tmp206 ; */
tmp206 = ats_castfn_mac(ats_ptr_type, arg0) ;
tmp207 = linset_insert_03737_s2Var ((&tmp206), ats_castfn_mac(s2Var, arg1), 0) ;
tmp205 = ats_castfn_mac(ats_ptr_type, tmp206) ;
return (tmp205) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_add] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3861(line=149, offs=7) -- 4231(line=160, offs=33)
*/
ATSstaticdec()
ats_bool_type
aux_57 (s2Var env0, ats_clo_ref_type env1, ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp303) ;
ATSlocal (s2Var, tmp304) ;
ATSlocal (ats_ptr_type, tmp305) ;
ATSlocal (ats_ptr_type, tmp306) ;
ATSlocal (ats_int_type, tmp307) ;
ATSlocal (ats_bool_type, tmp308) ;
ATSlocal (ats_ptr_type, tmp309) ;
ATSlocal (ats_bool_type, tmp310) ;
ATSlocal (ats_ptr_type, tmp311) ;

__ats_lab_aux_57:
do {
/* branch: __ats_lab_40 */
__ats_lab_40_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; }
__ats_lab_40_1:
tmp304 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp305 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp306 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp307 = compare_elt_elt_03727_s2Var (env0, tmp304, env1) ;
tmp308 = atspre_lt_int_int (tmp307, 0) ;
if (tmp308) {
tmp309 = ats_ptrget_mac(ats_ptr_type, tmp305) ;
arg0 = tmp309 ;
goto __ats_lab_aux_57 ; // tail call
} else {
tmp310 = atspre_gt_int_int (tmp307, 0) ;
if (tmp310) {
tmp311 = ats_ptrget_mac(ats_ptr_type, tmp306) ;
arg0 = tmp311 ;
goto __ats_lab_aux_57 ; // tail call
} else {
tmp303 = ats_true_bool ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_41 */
__ats_lab_41_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_41_1:
tmp303 = ats_false_bool ;
break ;
} while (0) ;
return (tmp303) ;
} /* end of [aux_57] */

typedef struct {
ats_fun_ptr_type closure_fun ;
s2Var closure_env_0 ;
ats_clo_ref_type closure_env_1 ;
} aux_57_closure_type ;

ats_bool_type
aux_57_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
return aux_57 (((aux_57_closure_type*)cloptr)->closure_env_0, ((aux_57_closure_type*)cloptr)->closure_env_1, arg0) ;
} /* end of function */

ATSinline()
ats_void_type
aux_57_closure_init (aux_57_closure_type *p_clo, s2Var env0, ats_clo_ref_type env1) {
p_clo->closure_fun = (ats_fun_ptr_type)&aux_57_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
return ;
} /* end of function */

ats_clo_ptr_type
aux_57_closure_make (s2Var env0, ats_clo_ref_type env1) {
aux_57_closure_type *p_clo = ATS_MALLOC(sizeof(aux_57_closure_type)) ;
aux_57_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3822(line=148, offs=3) -- 4251(line=162, offs=2)
*/
ATSstaticdec()
ats_bool_type
linset_is_member_03733_s2Var (ats_ptr_type arg0, s2Var arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp302) ;

__ats_lab_linset_is_member_03733_s2Var:
tmp302 = aux_57 (arg1, arg2, arg0) ;
return (tmp302) ;
} /* end of [linset_is_member_03733_s2Var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 10595(line=471, offs=3) -- 10783(line=477, offs=2)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_ismem (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp301) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_ismem:
tmp301 = linset_is_member_03733_s2Var (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(s2Var, arg1), 0) ;
return (tmp301) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_ismem] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4427(line=171, offs=7) -- 4555(line=175, offs=18)
*/
ATSstaticdec()
ats_void_type
aux_60 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp314) ;
ATSlocal (ats_ptr_type, tmp315) ;
ATSlocal (ats_ptr_type, tmp316) ;
// ATSlocal_void (tmp317) ;

__ats_lab_aux_60:
do {
/* branch: __ats_lab_42 */
__ats_lab_42_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; }
__ats_lab_42_1:
tmp315 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp316 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
ATS_FREE(arg0) ;
/* tmp317 = */ aux_60 (tmp315) ;
arg0 = tmp316 ;
goto __ats_lab_aux_60 ; // tail call
break ;

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

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4410(line=170, offs=13) -- 4591(line=179, offs=4)
*/
ATSstaticdec()
ats_void_type
linset_free_03735_s2Var (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp313) ;

__ats_lab_linset_free_03735_s2Var:
/* tmp313 = */ aux_60 (arg0) ;
return /* (tmp313) */ ;
} /* end of [linset_free_03735_s2Var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 10841(line=480, offs=17) -- 10893(line=481, offs=46)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_free (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp312) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_free:
/* tmp312 = */ linset_free_03735_s2Var (ats_castfn_mac(ats_ptr_type, arg0)) ;
return /* (tmp312) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_free] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27949(line=1019, offs=7) -- 28232(line=1029, offs=19)
*/
ATSstaticdec()
ats_ptr_type
aux_63 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp321) ;
ATSlocal (s2Var, tmp322) ;
ATSlocal (ats_ptr_type, tmp323) ;
ATSlocal (ats_ptr_type, tmp324) ;
ATSlocal (ats_ptr_type, tmp325) ;
ATSlocal (ats_ptr_type, tmp326) ;

__ats_lab_aux_63:
do {
/* branch: __ats_lab_44 */
__ats_lab_44_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; }
__ats_lab_44_1:
tmp322 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp323 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp324 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
ATS_FREE(arg0) ;
tmp325 = aux_63 (tmp324, arg1) ;
tmp326 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
ats_selptrset_mac(anairiats_sum_7, tmp326, atslab_0, tmp322) ;
ats_selptrset_mac(anairiats_sum_7, tmp326, atslab_1, tmp325) ;
arg0 = tmp323 ;
arg1 = tmp326 ;
goto __ats_lab_aux_63 ; // tail call
break ;

/* branch: __ats_lab_45 */
__ats_lab_45_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_45_1:
tmp321 = arg1 ;
break ;
} while (0) ;
return (tmp321) ;
} /* end of [aux_63] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27898(line=1017, offs=21) -- 28295(line=1033, offs=4)
*/
ATSstaticdec()
ats_ptr_type
linset_listize_free_03753_s2Var (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp320) ;
ATSlocal (ats_ptr_type, tmp327) ;

__ats_lab_linset_listize_free_03753_s2Var:
tmp327 = (ats_sum_ptr_type)0 ;
tmp320 = aux_63 (arg0, tmp327) ;
return (tmp320) ;
} /* end of [linset_listize_free_03753_s2Var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 10934(line=485, offs=3) -- 11082(line=490, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_listize_free (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp318) ;
ATSlocal (ats_ptr_type, tmp319) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_listize_free:
tmp319 = linset_listize_free_03753_s2Var (ats_castfn_mac(ats_ptr_type, arg0)) ;
tmp318 = ats_castfn_mac(ats_ptr_type, tmp319) ;
return (tmp318) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_vt_listize_free] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 11190(line=497, offs=16) -- 11229(line=497, offs=55)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Varlst (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp328) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Varlst:
/* tmp328 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varlst (stdout, arg0) ;
return /* (tmp328) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Varlst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 11255(line=499, offs=16) -- 11294(line=499, offs=55)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Varlst (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp329) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Varlst:
/* tmp329 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varlst (stderr, arg0) ;
return /* (tmp329) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Varlst] */

/*
// /tmp/ATS-Postiats/src/pats_utils.dats: 11884(line=651, offs=1) -- 12164(line=665, offs=2)
*/
ATSstaticdec()
ats_void_type
aux_68 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp332) ;
ATSlocal (ats_ptr_type, tmp333) ;
ATSlocal (ats_ptr_type, tmp334) ;
// ATSlocal_void (tmp335) ;
ATSlocal (ats_bool_type, tmp336) ;
// ATSlocal_void (tmp337) ;
ATSlocal (ats_int_type, tmp338) ;

__ats_lab_aux_68:
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:
break ;

/* branch: __ats_lab_47 */
__ats_lab_47_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_47_1:
tmp333 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp334 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp336 = atspre_gt_int_int (arg1, 0) ;
if (tmp336) {
/* tmp335 = */ atspre_fprint_string (env0, env1) ;
} else {
/* empty */
} /* end of [if] */
/* tmp337 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp333) ;
tmp338 = atspre_add_int_int (arg1, 1) ;
arg0 = tmp334 ;
arg1 = tmp338 ;
goto __ats_lab_aux_68 ; // tail call
break ;
} while (0) ;
return /* (tmp332) */ ;
} /* end of [aux_68] */

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

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

ATSinline()
ats_void_type
aux_68_closure_init (aux_68_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_68_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_68_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
aux_68_closure_type *p_clo = ATS_MALLOC(sizeof(aux_68_closure_type)) ;
aux_68_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 (tmp331) ;

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

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 11324(line=503, offs=3) -- 11379(line=503, offs=58)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varlst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp330) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varlst:
/* tmp330 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Var) ;
return /* (tmp330) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varlst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 11455(line=509, offs=16) -- 11494(line=509, offs=55)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Varset (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp339) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Varset:
/* tmp339 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varset (stdout, arg0) ;
return /* (tmp339) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2Varset] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 11520(line=511, offs=16) -- 11559(line=511, offs=55)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Varset (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp340) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Varset:
/* tmp340 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varset (stderr, arg0) ;
return /* (tmp340) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2Varset] */

/*
// /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_73 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp347) ;
ATSlocal (ats_ptr_type, tmp348) ;

__ats_lab_loop_73:
do {
/* branch: __ats_lab_48 */
__ats_lab_48_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; }
__ats_lab_48_1:
tmp348 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
ATS_FREE(arg0) ;
arg0 = tmp348 ;
goto __ats_lab_loop_73 ; // tail call
break ;

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

/*
// /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 (tmp346) ;

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

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svvar.dats: 11589(line=515, offs=3) -- 11801(line=521, offs=2)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varset (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp341) ;
ATSlocal (ats_ptr_type, tmp342) ;
// ATSlocal_void (tmp343) ;
// ATSlocal_void (tmp344) ;
// ATSlocal_void (tmp345) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varset:
tmp342 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_listize (arg1) ;
/* tmp343 = */ atspre_fprint_string (arg0, ATSstrcst("[")) ;
/* tmp344 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varlst (arg0, ats_castfn_mac(ats_ptr_type, tmp342)) ;
/* tmp345 = */ atspre_fprint_string (arg0, ATSstrcst("]")) ;
/* tmp341 = */ list_vt_free_01499_ats_ptr_type (tmp342) ;
return /* (tmp341) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2Varset] */

/* 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_counter_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ;
extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload (void) ;
extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_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_counter_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ;
ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload () ;
ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload () ;
// ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload () ;
// ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload () ;

return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svvar_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 */
ATS_GC_MARKROOT(&statmp0, sizeof(ats_ptr_type)) ;

/* marking external values for GC */

/* code for dynamic loading */
statmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () ;
return ;
} /* end of [dynload function] */

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

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

/* end of [pats_staexp2_svvar_dats.c] */
