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

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

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

typedef
struct {
ats_ptr_type atslab_s2var_sym ;
ats_ptr_type atslab_s2var_srt ;
ats_int_type atslab_s2var_tmplev ;
ats_ptr_type atslab_s2var_sVarset ;
ats_int_type atslab_s2var_stamp ;
} anairiats_rec_1 ;

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

typedef struct {
ats_int_type atslab_0 ;
ats_ptr_type atslab_1 ;
ats_ptr_type atslab_2 ;
ats_ptr_type atslab_3 ;
} anairiats_sum_3 ;

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

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

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

typedef struct {
ats_ptr_type atslab_0 ;
} anairiats_sum_7 ;

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

typedef struct {
anairiats_rec_8 atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_9 ;

/* 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__list_vt_cons_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ;
ATSextern_val(ats_sum_type, 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) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__B_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_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_neg_int) (ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_gte_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_uint_type, atspre_add_uint_uint) (ats_uint_type, ats_uint_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_uint_uint) (ats_uint_type, ats_uint_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_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_ptr_type, atspre_string_append) (ats_ptr_type, 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_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__tostring_prefix_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_symbol_2esats__compare_symbol_symbol) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string) (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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2var_stamp_make) () ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_bool) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_sVarset) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset) (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_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_vt_del) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (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__s2varbindmap_vtype = 0 ;
int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2varmset_type = 0 ;
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__s2var_type = 0 ;

/* sum constructor declarations */
/* exn constructor declarations */
/* global dynamic (non-functional) constant declarations */
/* internal function declarations */
static
ats_ptr_type s2var_name_make_0 () ;
static
ats_ptr_type s2var_name_make_prefix_1 (ats_ptr_type arg0) ;
static
ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () ;
static
ats_void_type aux_26 (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_26_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ;
static
ats_void_type aux_26_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_int_type __ats_fun_29 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type __ats_fun_29_closure_make () ;
static
ats_int_type __ats_fun_29_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type funset_make_nil_03777_ () ;
static
ats_int_type compare_elt_elt_03776_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type avltree_rrotate_03999_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ;
static
ats_ptr_type avltree_lrotate_03982_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) ;
static
ats_ptr_type insert_34 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_clo_ptr_type insert_34_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_ptr_type insert_34_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_bool_type funset_insert_03786_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type avltree_takeout_min_04034_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type remove_40 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_clo_ptr_type remove_40_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_ptr_type remove_40_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_bool_type funset_remove_03787_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type avltree_ljoin_04065_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type avltree_rjoin_04077_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type avltree_join_04089_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_int_type avltree_split_at_04100_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_clo_ref_type arg4) ;
static
ats_ptr_type union_44 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type union_44_closure_make (ats_clo_ref_type env0) ;
static
ats_ptr_type union_44_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type funset_union_03790_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type listize_51 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type funset_listize_03801_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type linset_make_nil_03803_ () ;
static
ats_int_type compare_elt_elt_03802_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_int_type avltree_height_04256_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type avltree_rrotate_04310_ats_ptr_type (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_04286_ats_ptr_type (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_56 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type insert_56_closure_make (ats_clo_ref_type env0) ;
static
ats_bool_type insert_56_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type linset_insert_03812_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type avltree_takeout_min_04355_ats_ptr_type (ats_ref_type arg0) ;
static
ats_bool_type remove_63 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0) ;
static
ats_clo_ptr_type remove_63_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_bool_type remove_63_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0) ;
static
ats_bool_type linset_remove_03813_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type loop_66 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type avltree_ljoin_04404_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type avltree_rjoin_04424_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type avltree_join_04444_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_int_type avltree_split_at_04455_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_clo_ref_type arg5) ;
static
ats_void_type B_node_free_opt_04481_ (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_ptr_type union_69 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type union_69_closure_make (ats_clo_ref_type env0) ;
static
ats_ptr_type union_69_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type linset_union_03816_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_void_type aux_77 (ats_ptr_type arg0) ;
static
ats_void_type linset_free_03810_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type aux_80 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type linset_listize_free_03828_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_int_type __ats_fun_81 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type __ats_fun_81_closure_make () ;
static
ats_int_type __ats_fun_81_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type funmset_make_nil_03835_ () ;
static
ats_ptr_type funmset_make_sing_03836_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_int_type compare_elt_elt_03834_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type funmset_make_pair_03837_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_int_type aux_91 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type aux_91_closure_make (ats_clo_ref_type env0) ;
static
ats_int_type aux_91_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_int_type funmset_compare_03849_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_bool_type aux_94 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type aux_94_closure_make (ats_clo_ref_type env0) ;
static
ats_bool_type aux_94_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type funmset_is_equal_03848_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type aux_97 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ;
static
ats_clo_ptr_type aux_97_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_ptr_type aux_97_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_void_type funmset_insert_03843_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type aux_100 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_clo_ptr_type aux_100_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_ptr_type aux_100_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_bool_type funmset_remove_03844_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type aux_103 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type aux_103_closure_make (ats_clo_ref_type env0) ;
static
ats_ptr_type aux_103_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type funmset_union_03845_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_void_type loop_108 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type list_map_funenv_01412_anairiats_rec_4_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type list_map_fun_01413_anairiats_rec_4_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type __ats_fun_109 (anairiats_rec_4 arg0) ;
static
ats_ptr_type funmset_listize_03850_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type loop1_112 (ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_void_type loop2_113 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ;
static
ats_void_type loop1_112_0loop2_113 (ats_int_type arg0, ...) ;
static
ats_ptr_type funmset_mlistize_03851_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type loop_116 (ats_ptr_type arg0) ;
static
ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_int_type __ats_fun_117 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type __ats_fun_117_closure_make () ;
static
ats_int_type __ats_fun_117_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type linmap_make_nil_03853_ () ;
static
ats_int_type compare_key_key_03852_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type search_123 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ;
static
ats_clo_ptr_type search_123_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_ptr_type search_123_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_ptr_type linmap_search_ref_03859_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_bool_type linmap_search_03858_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) ;
static
ats_int_type avltree_height_04847_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type avltree_rrotate_04900_ats_ptr_type_2cats_ptr_type (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_04875_ats_ptr_type_2cats_ptr_type (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_127 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_clo_ptr_type insert_127_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_bool_type insert_127_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_bool_type linmap_insert_03861_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3, ats_ref_type arg4) ;
static
ats_ptr_type avltree_takeout_min_04951_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0) ;
static
ats_bool_type takeout_134 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type takeout_134_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_bool_type takeout_134_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type linmap_takeout_ptr_03876_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ptr_type arg3) ;
static
ats_bool_type linmap_remove_03863_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type aux_138 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type linmap_listize_03872_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ;

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

/* external value variable declarations */

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 2276(line=81, offs=4) -- 2438(line=86, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s2var_name_make_0 () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1) ;
ATSlocal (ats_int_type, tmp2) ;
ATSlocal (ats_ptr_type, tmp3) ;

__ats_lab_s2var_name_make_0:
tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp0) ;
tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__tostring_prefix_count (ATSstrcst("$"), tmp2) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (tmp3) ;
return (tmp1) ;
} /* end of [s2var_name_make_0] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 2471(line=88, offs=4) -- 2657(line=93, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s2var_name_make_prefix_1 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp4) ;
ATSlocal (ats_int_type, tmp5) ;
ATSlocal (ats_ptr_type, tmp6) ;
ATSlocal (ats_ptr_type, tmp7) ;

__ats_lab_s2var_name_make_prefix_1:
tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_getinc (statmp0) ;
tmp7 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__tostring_prefix_count (ATSstrcst("$"), tmp5) ;
tmp6 = atspre_string_append (arg0, tmp7) ;
tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (tmp6) ;
return (tmp4) ;
} /* end of [s2var_name_make_prefix_1] */

/*
// /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, tmp11) ;

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

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 2813(line=105, offs=3) -- 3191(line=119, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp8) ;
ATSlocal (ats_int_type, tmp9) ;
ATSlocal (ats_ptr_type, tmp10) ;
ATSlocal (ats_ptr_type, tmp12) ;
ATSlocal (ats_ptr_type, tmp13) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt:
tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2var_stamp_make () ;
tmp10 = ptr_alloc_01070_anairiats_rec_1 () ;
tmp12 = ats_selsin_mac(tmp10, atslab_2) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp12), atslab_s2var_sym) = arg0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp12), atslab_s2var_srt) = arg1 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp12), atslab_s2var_tmplev) = 0 ;
tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil () ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp12), atslab_s2var_sVarset) = tmp13 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp12), atslab_s2var_stamp) = tmp9 ;
tmp8 = atspre_ref_make_view_ptr (tmp12) ;
return (tmp8) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 3247(line=122, offs=15) -- 3336(line=124, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp14) ;
ATSlocal (ats_ptr_type, tmp15) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym:
tmp15 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp14 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp15), atslab_s2var_sym) ;
return (tmp14) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 3388(line=127, offs=15) -- 3477(line=129, 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, tmp16) ;
ATSlocal (ats_ptr_type, tmp17) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt:
tmp17 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp16 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp17), atslab_s2var_srt) ;
return (tmp16) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 3532(line=132, offs=18) -- 3611(line=134, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_tmplev (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp18) ;
ATSlocal (ats_ptr_type, tmp19) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_tmplev:
tmp19 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp18 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp19), atslab_s2var_tmplev) ;
return (tmp18) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_tmplev] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 3668(line=136, offs=18) -- 3759(line=138, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_tmplev (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp20) ;
ATSlocal (ats_ptr_type, tmp21) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_tmplev:
tmp21 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp21), atslab_s2var_tmplev) = arg1 ;
return /* (tmp20) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_tmplev] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 3818(line=141, offs=19) -- 3898(line=143, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sVarset (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp22) ;
ATSlocal (ats_ptr_type, tmp23) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sVarset:
tmp23 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp22 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp23), atslab_s2var_sVarset) ;
return (tmp22) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sVarset] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 3957(line=145, offs=19) -- 4047(line=147, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_sVarset (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp24) ;
ATSlocal (ats_ptr_type, tmp25) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_sVarset:
tmp25 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp25), atslab_s2var_sVarset) = arg1 ;
return /* (tmp24) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_sVarset] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 4111(line=150, offs=3) -- 4285(line=154, offs=22)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp26) ;
ATSlocal (ats_ptr_type, tmp27) ;
ATSlocal (ats_ptr_type, tmp28) ;
// ATSlocal_void (tmp29) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset:
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:
tmp27 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ;
tmp28 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ;
/* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_set_sVarset (tmp27, arg1) ;
arg0 = tmp28 ;
arg1 = arg1 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset ; // tail call
break ;

/* branch: __ats_lab_1 */
__ats_lab_1_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_1_1:
break ;
} while (0) ;
return /* (tmp26) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 4346(line=158, offs=17) -- 4437(line=160, 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, tmp30) ;
ATSlocal (ats_ptr_type, tmp31) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_stamp:
tmp31 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp30 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp31), atslab_s2var_stamp) ;
return (tmp30) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_stamp] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 4535(line=167, offs=15) -- 4604(line=169, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_is_bool (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp32) ;
ATSlocal (ats_ptr_type, tmp33) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_is_bool:
tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (arg0) ;
tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_bool (tmp33) ;
return (tmp32) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_is_bool] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 4678(line=174, offs=16) -- 4754(line=176, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp34) ;
ATSlocal (ats_ptr_type, tmp35) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt:
tmp35 = s2var_name_make_0 () ;
tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp35, arg0) ;
return (tmp34) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_srt] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 4803(line=179, offs=11) -- 4985(line=185, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_dup (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp36) ;
ATSlocal (ats_ptr_type, tmp37) ;
ATSlocal (ats_ptr_type, tmp38) ;
ATSlocal (ats_ptr_type, tmp39) ;
ATSlocal (ats_ptr_type, tmp40) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_dup:
tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (arg0) ;
tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (arg0) ;
tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp37) ;
tmp39 = s2var_name_make_prefix_1 (tmp40) ;
tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_make_id_srt (tmp39, tmp38) ;
return (tmp36) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_dup] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 5057(line=191, offs=3) -- 5089(line=191, offs=35)
*/
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, tmp41) ;
ATSlocal (ats_int_type, tmp42) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lt_s2var_s2var:
tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (arg0, arg1) ;
tmp41 = atspre_ilt (tmp42, 0) ;
return (tmp41) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lt_s2var_s2var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 5147(line=196, offs=3) -- 5180(line=196, offs=36)
*/
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, tmp43) ;
ATSlocal (ats_int_type, tmp44) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lte_s2var_s2var:
tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (arg0, arg1) ;
tmp43 = atspre_ilte (tmp44, 0) ;
return (tmp43) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lte_s2var_s2var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 5238(line=201, offs=3) -- 5270(line=201, offs=35)
*/
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, tmp45) ;
ATSlocal (ats_int_type, tmp46) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var:
tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (arg0, arg1) ;
tmp45 = atspre_ieq (tmp46, 0) ;
return (tmp45) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 5328(line=206, offs=3) -- 5361(line=206, offs=36)
*/
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, tmp47) ;
ATSlocal (ats_int_type, tmp48) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2var_s2var:
tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (arg0, arg1) ;
tmp47 = atspre_ineq (tmp48, 0) ;
return (tmp47) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2var_s2var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 5422(line=210, offs=21) -- 5698(line=219, 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, tmp49) ;
ATSlocal (ats_int_type, tmp50) ;
ATSlocal (ats_int_type, tmp51) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var:
tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_stamp (arg0) ;
tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_stamp (arg1) ;
tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp (tmp50, tmp51) ;
return (tmp49) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 5766(line=223, offs=3) -- 5848(line=224, offs=70)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2vsym_s2vsym (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp52) ;
ATSlocal (ats_ptr_type, tmp53) ;
ATSlocal (ats_ptr_type, tmp54) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2vsym_s2vsym:
tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (arg0) ;
tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (arg1) ;
tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__compare_symbol_symbol (tmp53, tmp54) ;
return (tmp52) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2vsym_s2vsym] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 5930(line=230, offs=14) -- 6160(line=239, 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 (tmp55) ;
// ATSlocal_void (tmp56) ;
ATSlocal (ats_ptr_type, tmp57) ;
// ATSlocal_void (tmp58) ;
// ATSlocal_void (tmp59) ;
ATSlocal (ats_int_type, tmp60) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var:
tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_sym (arg1) ;
/* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp57) ;
/* tmp58 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ;
tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_stamp (arg1) ;
/* tmp59 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp (arg0, tmp60) ;
/* tmp55 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ;
return /* (tmp55) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 6209(line=241, offs=23) -- 6243(line=241, offs=57)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2var (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp61) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2var:
/* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (stdout, arg0) ;
return /* (tmp61) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2var] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 6266(line=242, offs=23) -- 6300(line=242, offs=57)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2var (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp62) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2var:
/* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var (stderr, arg0) ;
return /* (tmp62) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2var] */

/*
// /tmp/ATS-Postiats/src/pats_utils.dats: 11884(line=651, offs=1) -- 12164(line=665, offs=2)
*/
ATSstaticdec()
ats_void_type
aux_26 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp65) ;
ATSlocal (ats_ptr_type, tmp66) ;
ATSlocal (ats_ptr_type, tmp67) ;
// ATSlocal_void (tmp68) ;
ATSlocal (ats_bool_type, tmp69) ;
// ATSlocal_void (tmp70) ;
ATSlocal (ats_int_type, tmp71) ;

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

/* branch: __ats_lab_3 */
__ats_lab_3_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_3_1:
tmp66 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ;
tmp67 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ;
tmp69 = atspre_gt_int_int (arg1, 0) ;
if (tmp69) {
/* tmp68 = */ atspre_fprint_string (env0, env1) ;
} else {
/* empty */
} /* end of [if] */
/* tmp70 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp66) ;
tmp71 = atspre_add_int_int (arg1, 1) ;
arg0 = tmp67 ;
arg1 = tmp71 ;
goto __ats_lab_aux_26 ; // tail call
break ;
} while (0) ;
return /* (tmp65) */ ;
} /* end of [aux_26] */

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

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

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

ats_clo_ptr_type
aux_26_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
aux_26_closure_type *p_clo = ATS_MALLOC(sizeof(aux_26_closure_type)) ;
aux_26_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 (tmp64) ;

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

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 6328(line=245, offs=17) -- 6392(line=246, offs=53)
*/
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 (tmp63) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst:
/* tmp63 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2var) ;
return /* (tmp63) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 6447(line=249, offs=26) -- 6486(line=249, offs=65)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2varlst (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp72) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2varlst:
/* tmp72 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (stdout, arg0) ;
return /* (tmp72) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2varlst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 6512(line=250, offs=26) -- 6551(line=250, offs=65)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2varlst (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp73) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2varlst:
/* tmp73 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (stderr, arg0) ;
return /* (tmp73) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2varlst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 6794(line=267, offs=1) -- 6879(line=270, offs=35)
*/
ATSstaticdec()
ats_int_type
__ats_fun_29 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp74) ;

__ats_lab___ats_fun_29:
tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (arg0, arg1) ;
return (tmp74) ;
} /* end of [__ats_fun_29] */

typedef struct {
ats_fun_ptr_type closure_fun ;
} __ats_fun_29_closure_type ;

ats_int_type
__ats_fun_29_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) {
return __ats_fun_29 (arg0, arg1) ;
} /* end of function */

ATSinline()
ats_void_type
__ats_fun_29_closure_init (__ats_fun_29_closure_type *p_clo) {
p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_29_clofun ;
return ;
} /* end of function */

ats_clo_ptr_type
__ats_fun_29_closure_make () {
__ats_fun_29_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_29_closure_type)) ;
__ats_fun_29_closure_init (p_clo) ;
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: 2749(line=94, offs=29) -- 2758(line=94, offs=38)
*/
ATSstaticdec()
ats_ptr_type
funset_make_nil_03777_ () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp77) ;

__ats_lab_funset_make_nil_03777_:
tmp77 = (ats_sum_ptr_type)0 ;
return (tmp77) ;
} /* end of [funset_make_nil_03777_] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7028(line=280, offs=3) -- 7063(line=280, offs=38)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp76) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_nil:
tmp76 = funset_make_nil_03777_ () ;
return (tmp76) ;
} /* 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: 1954(line=57, offs=30) -- 1982(line=57, offs=58)
*/
ATSstaticdec()
ats_int_type
compare_elt_elt_03776_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp88) ;

__ats_lab_compare_elt_elt_03776_ats_ptr_type:
tmp88 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ;
return (tmp88) ;
} /* end of [compare_elt_elt_03776_ats_ptr_type] */

/*
// /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_03999_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp99) ;
ATSlocal (ats_ptr_type, tmp100) ;
ATSlocal (ats_ptr_type, tmp101) ;
ATSlocal (ats_ptr_type, tmp102) ;
ATSlocal (ats_int_type, tmp103) ;
ATSlocal (ats_int_type, tmp104) ;
ATSlocal (ats_int_type, tmp105) ;
ATSlocal (ats_int_type, tmp106) ;
ATSlocal (ats_bool_type, tmp107) ;
ATSlocal (ats_int_type, tmp108) ;
ATSlocal (ats_int_type, tmp109) ;
ATSlocal (ats_int_type, tmp110) ;
ATSlocal (ats_int_type, tmp111) ;
ATSlocal (ats_ptr_type, tmp112) ;
ATSlocal (ats_ptr_type, tmp113) ;
ATSlocal (ats_ptr_type, tmp114) ;
ATSlocal (ats_ptr_type, tmp115) ;
ATSlocal (ats_int_type, tmp116) ;
ATSlocal (ats_int_type, tmp117) ;
ATSlocal (ats_int_type, tmp118) ;
ATSlocal (ats_int_type, tmp119) ;
ATSlocal (ats_ptr_type, tmp120) ;
ATSlocal (ats_int_type, tmp121) ;
ATSlocal (ats_int_type, tmp122) ;
ATSlocal (ats_ptr_type, tmp123) ;
ATSlocal (ats_int_type, tmp124) ;
ATSlocal (ats_int_type, tmp125) ;

__ats_lab_avltree_rrotate_03999_ats_ptr_type:
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp100 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ;
tmp101 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_2) ;
tmp102 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_3) ;
do {
/* branch: __ats_lab_9 */
__ats_lab_9_0:
if (tmp101 == (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; }
__ats_lab_9_1:
tmp104 = ats_caselptrlab_mac(anairiats_sum_3, tmp101, atslab_0) ;
tmp103 = tmp104 ;
break ;

/* branch: __ats_lab_10 */
__ats_lab_10_0:
// if (tmp101 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_10_1:
tmp103 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_11 */
__ats_lab_11_0:
if (tmp102 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; }
__ats_lab_11_1:
tmp106 = ats_caselptrlab_mac(anairiats_sum_3, tmp102, atslab_0) ;
tmp105 = tmp106 ;
break ;

/* branch: __ats_lab_12 */
__ats_lab_12_0:
// if (tmp102 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_12_1:
tmp105 = 0 ;
break ;
} while (0) ;
tmp108 = atspre_iadd (tmp103, 0) ;
tmp107 = atspre_igte (tmp108, tmp105) ;
if (tmp107) {
tmp109 = atspre_iadd (tmp105, 1) ;
tmp111 = atspre_imax (tmp103, tmp109) ;
tmp110 = atspre_iadd (1, tmp111) ;
tmp112 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp112, atslab_0, tmp109) ;
ats_selptrset_mac(anairiats_sum_3, tmp112, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_3, tmp112, atslab_2, tmp102) ;
ats_selptrset_mac(anairiats_sum_3, tmp112, atslab_3, arg4) ;
tmp99 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_0, tmp110) ;
ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_1, tmp100) ;
ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_2, tmp101) ;
ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_3, tmp112) ;
} else {
// if (tmp102 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp113 = ats_caselptrlab_mac(anairiats_sum_3, tmp102, atslab_1) ;
tmp114 = ats_caselptrlab_mac(anairiats_sum_3, tmp102, atslab_2) ;
tmp115 = ats_caselptrlab_mac(anairiats_sum_3, tmp102, atslab_3) ;
do {
/* branch: __ats_lab_13 */
__ats_lab_13_0:
if (tmp114 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; }
__ats_lab_13_1:
tmp117 = ats_caselptrlab_mac(anairiats_sum_3, tmp114, atslab_0) ;
tmp116 = tmp117 ;
break ;

/* branch: __ats_lab_14 */
__ats_lab_14_0:
// if (tmp114 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_14_1:
tmp116 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_15 */
__ats_lab_15_0:
if (tmp115 == (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; }
__ats_lab_15_1:
tmp119 = ats_caselptrlab_mac(anairiats_sum_3, tmp115, atslab_0) ;
tmp118 = tmp119 ;
break ;

/* branch: __ats_lab_16 */
__ats_lab_16_0:
// if (tmp115 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_16_1:
tmp118 = 0 ;
break ;
} while (0) ;
tmp122 = atspre_imax (tmp103, tmp116) ;
tmp121 = atspre_iadd (1, tmp122) ;
tmp120 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp120, atslab_0, tmp121) ;
ats_selptrset_mac(anairiats_sum_3, tmp120, atslab_1, tmp100) ;
ats_selptrset_mac(anairiats_sum_3, tmp120, atslab_2, tmp101) ;
ats_selptrset_mac(anairiats_sum_3, tmp120, atslab_3, tmp114) ;
tmp125 = atspre_imax (tmp118, arg3) ;
tmp124 = atspre_iadd (1, tmp125) ;
tmp123 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp123, atslab_0, tmp124) ;
ats_selptrset_mac(anairiats_sum_3, tmp123, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_3, tmp123, atslab_2, tmp115) ;
ats_selptrset_mac(anairiats_sum_3, tmp123, atslab_3, arg4) ;
tmp99 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_1, tmp113) ;
ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_2, tmp120) ;
ats_selptrset_mac(anairiats_sum_3, tmp99, atslab_3, tmp123) ;
} /* end of [if] */
return (tmp99) ;
} /* end of [avltree_rrotate_03999_ats_ptr_type] */

/*
// /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_03982_ats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp136) ;
ATSlocal (ats_ptr_type, tmp137) ;
ATSlocal (ats_ptr_type, tmp138) ;
ATSlocal (ats_ptr_type, tmp139) ;
ATSlocal (ats_int_type, tmp140) ;
ATSlocal (ats_int_type, tmp141) ;
ATSlocal (ats_int_type, tmp142) ;
ATSlocal (ats_int_type, tmp143) ;
ATSlocal (ats_bool_type, tmp144) ;
ATSlocal (ats_int_type, tmp145) ;
ATSlocal (ats_int_type, tmp146) ;
ATSlocal (ats_int_type, tmp147) ;
ATSlocal (ats_int_type, tmp148) ;
ATSlocal (ats_ptr_type, tmp149) ;
ATSlocal (ats_ptr_type, tmp150) ;
ATSlocal (ats_ptr_type, tmp151) ;
ATSlocal (ats_ptr_type, tmp152) ;
ATSlocal (ats_int_type, tmp153) ;
ATSlocal (ats_int_type, tmp154) ;
ATSlocal (ats_int_type, tmp155) ;
ATSlocal (ats_int_type, tmp156) ;
ATSlocal (ats_ptr_type, tmp157) ;
ATSlocal (ats_int_type, tmp158) ;
ATSlocal (ats_int_type, tmp159) ;
ATSlocal (ats_ptr_type, tmp160) ;
ATSlocal (ats_int_type, tmp161) ;
ATSlocal (ats_int_type, tmp162) ;

__ats_lab_avltree_lrotate_03982_ats_ptr_type:
// if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp137 = ats_caselptrlab_mac(anairiats_sum_3, arg4, atslab_1) ;
tmp138 = ats_caselptrlab_mac(anairiats_sum_3, arg4, atslab_2) ;
tmp139 = ats_caselptrlab_mac(anairiats_sum_3, arg4, atslab_3) ;
do {
/* branch: __ats_lab_21 */
__ats_lab_21_0:
if (tmp138 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; }
__ats_lab_21_1:
tmp141 = ats_caselptrlab_mac(anairiats_sum_3, tmp138, atslab_0) ;
tmp140 = tmp141 ;
break ;

/* branch: __ats_lab_22 */
__ats_lab_22_0:
// if (tmp138 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_22_1:
tmp140 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_23 */
__ats_lab_23_0:
if (tmp139 == (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; }
__ats_lab_23_1:
tmp143 = ats_caselptrlab_mac(anairiats_sum_3, tmp139, atslab_0) ;
tmp142 = tmp143 ;
break ;

/* branch: __ats_lab_24 */
__ats_lab_24_0:
// if (tmp139 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_24_1:
tmp142 = 0 ;
break ;
} while (0) ;
tmp145 = atspre_iadd (tmp142, 0) ;
tmp144 = atspre_ilte (tmp140, tmp145) ;
if (tmp144) {
tmp146 = atspre_iadd (tmp140, 1) ;
tmp148 = atspre_imax (tmp146, tmp142) ;
tmp147 = atspre_iadd (1, tmp148) ;
tmp149 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp149, atslab_0, tmp146) ;
ats_selptrset_mac(anairiats_sum_3, tmp149, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_3, tmp149, atslab_2, arg2) ;
ats_selptrset_mac(anairiats_sum_3, tmp149, atslab_3, tmp138) ;
tmp136 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_0, tmp147) ;
ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_1, tmp137) ;
ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_2, tmp149) ;
ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_3, tmp139) ;
} else {
// if (tmp138 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp150 = ats_caselptrlab_mac(anairiats_sum_3, tmp138, atslab_1) ;
tmp151 = ats_caselptrlab_mac(anairiats_sum_3, tmp138, atslab_2) ;
tmp152 = ats_caselptrlab_mac(anairiats_sum_3, tmp138, atslab_3) ;
do {
/* branch: __ats_lab_25 */
__ats_lab_25_0:
if (tmp151 == (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; }
__ats_lab_25_1:
tmp154 = ats_caselptrlab_mac(anairiats_sum_3, tmp151, atslab_0) ;
tmp153 = tmp154 ;
break ;

/* branch: __ats_lab_26 */
__ats_lab_26_0:
// if (tmp151 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_26_1:
tmp153 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_27 */
__ats_lab_27_0:
if (tmp152 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; }
__ats_lab_27_1:
tmp156 = ats_caselptrlab_mac(anairiats_sum_3, tmp152, atslab_0) ;
tmp155 = tmp156 ;
break ;

/* branch: __ats_lab_28 */
__ats_lab_28_0:
// if (tmp152 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_28_1:
tmp155 = 0 ;
break ;
} while (0) ;
tmp159 = atspre_imax (arg1, tmp153) ;
tmp158 = atspre_iadd (1, tmp159) ;
tmp157 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp157, atslab_0, tmp158) ;
ats_selptrset_mac(anairiats_sum_3, tmp157, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_3, tmp157, atslab_2, arg2) ;
ats_selptrset_mac(anairiats_sum_3, tmp157, atslab_3, tmp151) ;
tmp162 = atspre_imax (tmp155, tmp142) ;
tmp161 = atspre_iadd (1, tmp162) ;
tmp160 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp160, atslab_0, tmp161) ;
ats_selptrset_mac(anairiats_sum_3, tmp160, atslab_1, tmp137) ;
ats_selptrset_mac(anairiats_sum_3, tmp160, atslab_2, tmp152) ;
ats_selptrset_mac(anairiats_sum_3, tmp160, atslab_3, tmp139) ;
tmp136 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_0, arg3) ;
ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_1, tmp150) ;
ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_2, tmp157) ;
ats_selptrset_mac(anairiats_sum_3, tmp136, atslab_3, tmp160) ;
} /* end of [if] */
return (tmp136) ;
} /* end of [avltree_lrotate_03982_ats_ptr_type] */

/*
// /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_34 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp82) ;
ATSlocal (ats_int_type, tmp83) ;
ATSlocal (ats_ptr_type, tmp84) ;
ATSlocal (ats_ptr_type, tmp85) ;
ATSlocal (ats_ptr_type, tmp86) ;
ATSlocal (ats_int_type, tmp87) ;
ATSlocal (ats_bool_type, tmp89) ;
ATSlocal (ats_ptr_type, tmp90) ;
ATSlocal (ats_int_type, tmp91) ;
ATSlocal (ats_int_type, tmp92) ;
ATSlocal (ats_int_type, tmp93) ;
ATSlocal (ats_int_type, tmp94) ;
ATSlocal (ats_bool_type, tmp95) ;
ATSlocal (ats_int_type, tmp96) ;
ATSlocal (ats_int_type, tmp97) ;
ATSlocal (ats_int_type, tmp98) ;
ATSlocal (ats_bool_type, tmp126) ;
ATSlocal (ats_ptr_type, tmp127) ;
ATSlocal (ats_int_type, tmp128) ;
ATSlocal (ats_int_type, tmp129) ;
ATSlocal (ats_int_type, tmp130) ;
ATSlocal (ats_int_type, tmp131) ;
ATSlocal (ats_bool_type, tmp132) ;
ATSlocal (ats_int_type, tmp133) ;
ATSlocal (ats_int_type, tmp134) ;
ATSlocal (ats_int_type, tmp135) ;
ATSlocal (ats_ptr_type, tmp163) ;
ATSlocal (ats_ptr_type, tmp164) ;

__ats_lab_insert_34:
do {
/* branch: __ats_lab_4 */
__ats_lab_4_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; }
__ats_lab_4_1:
tmp83 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp84 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp85 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ;
tmp86 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ;
tmp87 = compare_elt_elt_03776_ats_ptr_type (env0, tmp84, env1) ;
tmp89 = atspre_lt_int_int (tmp87, 0) ;
if (tmp89) {
tmp90 = insert_34 (env0, env1, tmp85, arg1) ;
do {
/* branch: __ats_lab_5 */
__ats_lab_5_0:
if (tmp90 == (ats_sum_ptr_type)0) { goto __ats_lab_6_0 ; }
__ats_lab_5_1:
tmp92 = ats_caselptrlab_mac(anairiats_sum_3, tmp90, atslab_0) ;
tmp91 = tmp92 ;
break ;

/* branch: __ats_lab_6 */
__ats_lab_6_0:
// if (tmp90 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_6_1:
tmp91 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_7 */
__ats_lab_7_0:
if (tmp86 == (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; }
__ats_lab_7_1:
tmp94 = ats_caselptrlab_mac(anairiats_sum_3, tmp86, atslab_0) ;
tmp93 = tmp94 ;
break ;

/* branch: __ats_lab_8 */
__ats_lab_8_0:
// if (tmp86 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_8_1:
tmp93 = 0 ;
break ;
} while (0) ;
tmp96 = atspre_isub (tmp91, tmp93) ;
tmp95 = atspre_ilte (tmp96, 1) ;
if (tmp95) {
tmp98 = atspre_imax (tmp91, tmp93) ;
tmp97 = atspre_iadd (1, tmp98) ;
tmp82 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_0, tmp97) ;
ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_1, tmp84) ;
ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_2, tmp90) ;
ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_3, tmp86) ;
} else {
tmp82 = avltree_rrotate_03999_ats_ptr_type (tmp84, tmp91, tmp90, tmp93, tmp86) ;
} /* end of [if] */
} else {
tmp126 = atspre_gt_int_int (tmp87, 0) ;
if (tmp126) {
tmp127 = insert_34 (env0, env1, tmp86, arg1) ;
do {
/* branch: __ats_lab_17 */
__ats_lab_17_0:
if (tmp85 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; }
__ats_lab_17_1:
tmp129 = ats_caselptrlab_mac(anairiats_sum_3, tmp85, atslab_0) ;
tmp128 = tmp129 ;
break ;

/* branch: __ats_lab_18 */
__ats_lab_18_0:
// if (tmp85 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_18_1:
tmp128 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_19 */
__ats_lab_19_0:
if (tmp127 == (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; }
__ats_lab_19_1:
tmp131 = ats_caselptrlab_mac(anairiats_sum_3, tmp127, atslab_0) ;
tmp130 = tmp131 ;
break ;

/* branch: __ats_lab_20 */
__ats_lab_20_0:
// if (tmp127 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_20_1:
tmp130 = 0 ;
break ;
} while (0) ;
tmp133 = atspre_isub (tmp130, tmp128) ;
tmp132 = atspre_ilte (tmp133, 1) ;
if (tmp132) {
tmp135 = atspre_imax (tmp128, tmp130) ;
tmp134 = atspre_iadd (1, tmp135) ;
tmp82 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_0, tmp134) ;
ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_1, tmp84) ;
ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_2, tmp85) ;
ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_3, tmp127) ;
} else {
tmp82 = avltree_lrotate_03982_ats_ptr_type (tmp84, tmp128, tmp85, tmp130, tmp127) ;
} /* end of [if] */
} else {
ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ;
tmp82 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_0, tmp83) ;
ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_1, env0) ;
ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_2, tmp85) ;
ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_3, tmp86) ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_29 */
__ats_lab_29_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_29_1:
ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ;
tmp163 = (ats_sum_ptr_type)0 ;
tmp164 = (ats_sum_ptr_type)0 ;
tmp82 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_1, env0) ;
ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_2, tmp163) ;
ats_selptrset_mac(anairiats_sum_3, tmp82, atslab_3, tmp164) ;
break ;
} while (0) ;
return (tmp82) ;
} /* end of [insert_34] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
ats_clo_ref_type closure_env_1 ;
} insert_34_closure_type ;

ats_ptr_type
insert_34_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) {
return insert_34 (((insert_34_closure_type*)cloptr)->closure_env_0, ((insert_34_closure_type*)cloptr)->closure_env_1, arg0, arg1) ;
} /* end of function */

ATSinline()
ats_void_type
insert_34_closure_init (insert_34_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) {
p_clo->closure_fun = (ats_fun_ptr_type)&insert_34_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
return ;
} /* end of function */

ats_clo_ptr_type
insert_34_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
insert_34_closure_type *p_clo = ATS_MALLOC(sizeof(insert_34_closure_type)) ;
insert_34_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_03786_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp81) ;
ATSlocal (ats_bool_type, tmp165) ;
ATSlocal (ats_ptr_type, tmp166) ;

__ats_lab_funset_insert_03786_ats_ptr_type:
/* ats_bool_type tmp165 ; */
tmp166 = insert_34 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp165)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp166 ;
tmp81 = tmp165 ;
return (tmp81) ;
} /* end of [funset_insert_03786_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7090(line=284, offs=3) -- 7177(line=287, 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, tmp78) ;
ATSlocal (ats_ptr_type, tmp79) ;
ATSlocal (ats_bool_type, tmp80) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_add:
/* ats_ptr_type tmp79 ; */
tmp79 = arg0 ;
tmp80 = funset_insert_03786_ats_ptr_type ((&tmp79), arg1, statmp75) ;
tmp78 = tmp79 ;
return (tmp78) ;
} /* 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: 7730(line=273, offs=17) -- 8251(line=291, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_takeout_min_04034_ats_ptr_type (ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp198) ;
ATSlocal (ats_ptr_type, tmp199) ;
ATSlocal (ats_ptr_type, tmp200) ;
ATSlocal (ats_ptr_type, tmp201) ;
ATSlocal (ats_ptr_type, tmp202) ;
ATSlocal (ats_int_type, tmp203) ;
ATSlocal (ats_int_type, tmp204) ;
ATSlocal (ats_int_type, tmp205) ;
ATSlocal (ats_int_type, tmp206) ;
ATSlocal (ats_bool_type, tmp207) ;
ATSlocal (ats_int_type, tmp208) ;
ATSlocal (ats_int_type, tmp209) ;
ATSlocal (ats_int_type, tmp210) ;

__ats_lab_avltree_takeout_min_04034_ats_ptr_type:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp199 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp200 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ;
tmp201 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ;
do {
/* branch: __ats_lab_43 */
__ats_lab_43_0:
if (tmp200 == (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; }
__ats_lab_43_1:
tmp202 = avltree_takeout_min_04034_ats_ptr_type (tmp200, arg1) ;
do {
/* branch: __ats_lab_44 */
__ats_lab_44_0:
if (tmp202 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; }
__ats_lab_44_1:
tmp204 = ats_caselptrlab_mac(anairiats_sum_3, tmp202, atslab_0) ;
tmp203 = tmp204 ;
break ;

/* branch: __ats_lab_45 */
__ats_lab_45_0:
// if (tmp202 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_45_1:
tmp203 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_46 */
__ats_lab_46_0:
if (tmp201 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; }
__ats_lab_46_1:
tmp206 = ats_caselptrlab_mac(anairiats_sum_3, tmp201, atslab_0) ;
tmp205 = tmp206 ;
break ;

/* branch: __ats_lab_47 */
__ats_lab_47_0:
// if (tmp201 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_47_1:
tmp205 = 0 ;
break ;
} while (0) ;
tmp208 = atspre_isub (tmp205, tmp203) ;
tmp207 = atspre_ilte (tmp208, 1) ;
if (tmp207) {
tmp210 = atspre_imax (tmp203, tmp205) ;
tmp209 = atspre_iadd (1, tmp210) ;
tmp198 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp198, atslab_0, tmp209) ;
ats_selptrset_mac(anairiats_sum_3, tmp198, atslab_1, tmp199) ;
ats_selptrset_mac(anairiats_sum_3, tmp198, atslab_2, tmp202) ;
ats_selptrset_mac(anairiats_sum_3, tmp198, atslab_3, tmp201) ;
} else {
tmp198 = avltree_lrotate_03982_ats_ptr_type (tmp199, tmp203, tmp202, tmp205, tmp201) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_48 */
__ats_lab_48_0:
// if (tmp200 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_48_1:
ats_ptrget_mac(ats_ptr_type, arg1) = tmp199 ;
tmp198 = tmp201 ;
break ;
} while (0) ;
return (tmp198) ;
} /* end of [avltree_takeout_min_04034_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 8377(line=298, offs=7) -- 10195(line=350, offs=6)
*/
ATSstaticdec()
ats_ptr_type
remove_40 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp171) ;
ATSlocal (ats_ptr_type, tmp172) ;
ATSlocal (ats_ptr_type, tmp173) ;
ATSlocal (ats_ptr_type, tmp174) ;
ATSlocal (ats_int_type, tmp175) ;
ATSlocal (ats_bool_type, tmp176) ;
ATSlocal (ats_ptr_type, tmp177) ;
ATSlocal (ats_int_type, tmp178) ;
ATSlocal (ats_int_type, tmp179) ;
ATSlocal (ats_int_type, tmp180) ;
ATSlocal (ats_int_type, tmp181) ;
ATSlocal (ats_bool_type, tmp182) ;
ATSlocal (ats_int_type, tmp183) ;
ATSlocal (ats_int_type, tmp184) ;
ATSlocal (ats_int_type, tmp185) ;
ATSlocal (ats_bool_type, tmp186) ;
ATSlocal (ats_ptr_type, tmp187) ;
ATSlocal (ats_int_type, tmp188) ;
ATSlocal (ats_int_type, tmp189) ;
ATSlocal (ats_int_type, tmp190) ;
ATSlocal (ats_int_type, tmp191) ;
ATSlocal (ats_bool_type, tmp192) ;
ATSlocal (ats_int_type, tmp193) ;
ATSlocal (ats_int_type, tmp194) ;
ATSlocal (ats_int_type, tmp195) ;
ATSlocal (ats_ptr_type, tmp196) ;
ATSlocal (ats_ptr_type, tmp197) ;
ATSlocal (ats_int_type, tmp211) ;
ATSlocal (ats_int_type, tmp212) ;
ATSlocal (ats_int_type, tmp213) ;
ATSlocal (ats_int_type, tmp214) ;
ATSlocal (ats_bool_type, tmp215) ;
ATSlocal (ats_int_type, tmp216) ;
ATSlocal (ats_int_type, tmp217) ;
ATSlocal (ats_int_type, tmp218) ;

__ats_lab_remove_40:
do {
/* branch: __ats_lab_30 */
__ats_lab_30_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; }
__ats_lab_30_1:
tmp172 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp173 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ;
tmp174 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ;
tmp175 = compare_elt_elt_03776_ats_ptr_type (env0, tmp172, env1) ;
do {
/* branch: __ats_lab_31 */
__ats_lab_31_0:
__ats_lab_31_1:
tmp176 = atspre_lt_int_int (tmp175, 0) ;
if (!tmp176) { goto __ats_lab_36_1 ; }
tmp177 = remove_40 (env0, env1, tmp173, arg1) ;
do {
/* branch: __ats_lab_32 */
__ats_lab_32_0:
if (tmp177 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; }
__ats_lab_32_1:
tmp179 = ats_caselptrlab_mac(anairiats_sum_3, tmp177, atslab_0) ;
tmp178 = tmp179 ;
break ;

/* branch: __ats_lab_33 */
__ats_lab_33_0:
// if (tmp177 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_33_1:
tmp178 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_34 */
__ats_lab_34_0:
if (tmp174 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; }
__ats_lab_34_1:
tmp181 = ats_caselptrlab_mac(anairiats_sum_3, tmp174, atslab_0) ;
tmp180 = tmp181 ;
break ;

/* branch: __ats_lab_35 */
__ats_lab_35_0:
// if (tmp174 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_35_1:
tmp180 = 0 ;
break ;
} while (0) ;
tmp183 = atspre_isub (tmp180, tmp178) ;
tmp182 = atspre_ilte (tmp183, 1) ;
if (tmp182) {
tmp185 = atspre_imax (tmp178, tmp180) ;
tmp184 = atspre_iadd (1, tmp185) ;
tmp171 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_0, tmp184) ;
ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_1, tmp172) ;
ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_2, tmp177) ;
ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_3, tmp174) ;
} else {
tmp171 = avltree_lrotate_03982_ats_ptr_type (tmp172, tmp178, tmp177, tmp180, tmp174) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_36 */
__ats_lab_36_0:
__ats_lab_36_1:
tmp186 = atspre_gt_int_int (tmp175, 0) ;
if (!tmp186) { goto __ats_lab_41_1 ; }
tmp187 = remove_40 (env0, env1, tmp174, arg1) ;
do {
/* branch: __ats_lab_37 */
__ats_lab_37_0:
if (tmp173 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; }
__ats_lab_37_1:
tmp189 = ats_caselptrlab_mac(anairiats_sum_3, tmp173, atslab_0) ;
tmp188 = tmp189 ;
break ;

/* branch: __ats_lab_38 */
__ats_lab_38_0:
// if (tmp173 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_38_1:
tmp188 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_39 */
__ats_lab_39_0:
if (tmp187 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; }
__ats_lab_39_1:
tmp191 = ats_caselptrlab_mac(anairiats_sum_3, tmp187, atslab_0) ;
tmp190 = tmp191 ;
break ;

/* branch: __ats_lab_40 */
__ats_lab_40_0:
// if (tmp187 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_40_1:
tmp190 = 0 ;
break ;
} while (0) ;
tmp193 = atspre_isub (tmp188, tmp190) ;
tmp192 = atspre_ilte (tmp193, 1) ;
if (tmp192) {
tmp195 = atspre_imax (tmp188, tmp190) ;
tmp194 = atspre_iadd (1, tmp195) ;
tmp171 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_0, tmp194) ;
ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_1, tmp172) ;
ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_2, tmp173) ;
ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_3, tmp187) ;
} else {
tmp171 = avltree_rrotate_03999_ats_ptr_type (tmp172, tmp188, tmp173, tmp190, tmp187) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_41 */
__ats_lab_41_0:
__ats_lab_41_1:
ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ;
do {
/* branch: __ats_lab_42 */
__ats_lab_42_0:
if (tmp174 == (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; }
__ats_lab_42_1:
/* ats_ptr_type tmp196 ; */
tmp197 = avltree_takeout_min_04034_ats_ptr_type (tmp174, (&tmp196)) ;
do {
/* branch: __ats_lab_49 */
__ats_lab_49_0:
if (tmp173 == (ats_sum_ptr_type)0) { goto __ats_lab_50_0 ; }
__ats_lab_49_1:
tmp212 = ats_caselptrlab_mac(anairiats_sum_3, tmp173, atslab_0) ;
tmp211 = tmp212 ;
break ;

/* branch: __ats_lab_50 */
__ats_lab_50_0:
// if (tmp173 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_50_1:
tmp211 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_51 */
__ats_lab_51_0:
if (tmp197 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; }
__ats_lab_51_1:
tmp214 = ats_caselptrlab_mac(anairiats_sum_3, tmp197, atslab_0) ;
tmp213 = tmp214 ;
break ;

/* branch: __ats_lab_52 */
__ats_lab_52_0:
// if (tmp197 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_52_1:
tmp213 = 0 ;
break ;
} while (0) ;
tmp216 = atspre_isub (tmp211, tmp213) ;
tmp215 = atspre_ilte (tmp216, 1) ;
if (tmp215) {
tmp218 = atspre_imax (tmp211, tmp213) ;
tmp217 = atspre_iadd (1, tmp218) ;
tmp171 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_0, tmp217) ;
ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_1, tmp196) ;
ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_2, tmp173) ;
ats_selptrset_mac(anairiats_sum_3, tmp171, atslab_3, tmp197) ;
} else {
tmp171 = avltree_rrotate_03999_ats_ptr_type (tmp196, tmp211, tmp173, tmp213, tmp197) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_53 */
__ats_lab_53_0:
// if (tmp174 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_53_1:
tmp171 = tmp173 ;
break ;
} while (0) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_54 */
__ats_lab_54_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_54_1:
ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ;
tmp171 = arg0 ;
break ;
} while (0) ;
return (tmp171) ;
} /* end of [remove_40] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
ats_clo_ref_type closure_env_1 ;
} remove_40_closure_type ;

ats_ptr_type
remove_40_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) {
return remove_40 (((remove_40_closure_type*)cloptr)->closure_env_0, ((remove_40_closure_type*)cloptr)->closure_env_1, arg0, arg1) ;
} /* end of function */

ATSinline()
ats_void_type
remove_40_closure_init (remove_40_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) {
p_clo->closure_fun = (ats_fun_ptr_type)&remove_40_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
return ;
} /* end of function */

ats_clo_ptr_type
remove_40_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
remove_40_closure_type *p_clo = ATS_MALLOC(sizeof(remove_40_closure_type)) ;
remove_40_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: 8335(line=297, offs=3) -- 10275(line=353, offs=2)
*/
ATSstaticdec()
ats_bool_type
funset_remove_03787_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp170) ;
ATSlocal (ats_bool_type, tmp219) ;
ATSlocal (ats_ptr_type, tmp220) ;

__ats_lab_funset_remove_03787_ats_ptr_type:
/* ats_bool_type tmp219 ; */
tmp220 = remove_40 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp219)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp220 ;
tmp170 = tmp219 ;
return (tmp170) ;
} /* end of [funset_remove_03787_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7232(line=291, offs=3) -- 7320(line=294, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_del (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp167) ;
ATSlocal (ats_ptr_type, tmp168) ;
ATSlocal (ats_bool_type, tmp169) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_del:
/* ats_ptr_type tmp168 ; */
tmp168 = arg0 ;
tmp169 = funset_remove_03787_ats_ptr_type ((&tmp168), arg1, statmp75) ;
tmp167 = tmp168 ;
return (tmp167) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_del] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 10428(line=362, offs=33) -- 11051(line=382, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_ljoin_04065_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp244) ;
ATSlocal (ats_int_type, tmp245) ;
ATSlocal (ats_int_type, tmp246) ;
ATSlocal (ats_int_type, tmp247) ;
ATSlocal (ats_int_type, tmp248) ;
ATSlocal (ats_bool_type, tmp249) ;
ATSlocal (ats_int_type, tmp250) ;
ATSlocal (ats_ptr_type, tmp251) ;
ATSlocal (ats_ptr_type, tmp252) ;
ATSlocal (ats_ptr_type, tmp253) ;
ATSlocal (ats_ptr_type, tmp254) ;
ATSlocal (ats_int_type, tmp255) ;
ATSlocal (ats_int_type, tmp256) ;
ATSlocal (ats_int_type, tmp257) ;
ATSlocal (ats_int_type, tmp258) ;
ATSlocal (ats_bool_type, tmp259) ;
ATSlocal (ats_int_type, tmp260) ;
ATSlocal (ats_int_type, tmp261) ;
ATSlocal (ats_int_type, tmp262) ;
ATSlocal (ats_int_type, tmp263) ;

__ats_lab_avltree_ljoin_04065_ats_ptr_type:
do {
/* branch: __ats_lab_63 */
__ats_lab_63_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; }
__ats_lab_63_1:
tmp246 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
tmp245 = tmp246 ;
break ;

/* branch: __ats_lab_64 */
__ats_lab_64_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_64_1:
tmp245 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_65 */
__ats_lab_65_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; }
__ats_lab_65_1:
tmp248 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ;
tmp247 = tmp248 ;
break ;

/* branch: __ats_lab_66 */
__ats_lab_66_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_66_1:
tmp247 = 0 ;
break ;
} while (0) ;
tmp250 = atspre_iadd (tmp247, 2) ;
tmp249 = atspre_igte (tmp245, tmp250) ;
if (tmp249) {
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp251 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_1) ;
tmp252 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_2) ;
tmp253 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_3) ;
tmp254 = avltree_ljoin_04065_ats_ptr_type (arg0, tmp253, arg2) ;
do {
/* branch: __ats_lab_67 */
__ats_lab_67_0:
if (tmp252 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; }
__ats_lab_67_1:
tmp256 = ats_caselptrlab_mac(anairiats_sum_3, tmp252, atslab_0) ;
tmp255 = tmp256 ;
break ;

/* branch: __ats_lab_68 */
__ats_lab_68_0:
// if (tmp252 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_68_1:
tmp255 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_69 */
__ats_lab_69_0:
if (tmp254 == (ats_sum_ptr_type)0) { goto __ats_lab_70_0 ; }
__ats_lab_69_1:
tmp258 = ats_caselptrlab_mac(anairiats_sum_3, tmp254, atslab_0) ;
tmp257 = tmp258 ;
break ;

/* branch: __ats_lab_70 */
__ats_lab_70_0:
// if (tmp254 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_70_1:
tmp257 = 0 ;
break ;
} while (0) ;
tmp260 = atspre_iadd (tmp255, 1) ;
tmp259 = atspre_ilte (tmp257, tmp260) ;
if (tmp259) {
tmp262 = atspre_imax (tmp255, tmp257) ;
tmp261 = atspre_iadd (tmp262, 1) ;
tmp244 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp244, atslab_0, tmp261) ;
ats_selptrset_mac(anairiats_sum_3, tmp244, atslab_1, tmp251) ;
ats_selptrset_mac(anairiats_sum_3, tmp244, atslab_2, tmp252) ;
ats_selptrset_mac(anairiats_sum_3, tmp244, atslab_3, tmp254) ;
} else {
tmp244 = avltree_lrotate_03982_ats_ptr_type (tmp251, tmp255, tmp252, tmp257, tmp254) ;
} /* end of [if] */
} else {
tmp263 = atspre_iadd (tmp245, 1) ;
tmp244 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp244, atslab_0, tmp263) ;
ats_selptrset_mac(anairiats_sum_3, tmp244, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_3, tmp244, atslab_2, arg1) ;
ats_selptrset_mac(anairiats_sum_3, tmp244, atslab_3, arg2) ;
} /* end of [if] */
return (tmp244) ;
} /* end of [avltree_ljoin_04065_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 11205(line=391, offs=33) -- 11827(line=411, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_rjoin_04077_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp264) ;
ATSlocal (ats_int_type, tmp265) ;
ATSlocal (ats_int_type, tmp266) ;
ATSlocal (ats_int_type, tmp267) ;
ATSlocal (ats_int_type, tmp268) ;
ATSlocal (ats_bool_type, tmp269) ;
ATSlocal (ats_int_type, tmp270) ;
ATSlocal (ats_ptr_type, tmp271) ;
ATSlocal (ats_ptr_type, tmp272) ;
ATSlocal (ats_ptr_type, tmp273) ;
ATSlocal (ats_ptr_type, tmp274) ;
ATSlocal (ats_int_type, tmp275) ;
ATSlocal (ats_int_type, tmp276) ;
ATSlocal (ats_int_type, tmp277) ;
ATSlocal (ats_int_type, tmp278) ;
ATSlocal (ats_bool_type, tmp279) ;
ATSlocal (ats_int_type, tmp280) ;
ATSlocal (ats_int_type, tmp281) ;
ATSlocal (ats_int_type, tmp282) ;
ATSlocal (ats_int_type, tmp283) ;

__ats_lab_avltree_rjoin_04077_ats_ptr_type:
do {
/* branch: __ats_lab_71 */
__ats_lab_71_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_72_0 ; }
__ats_lab_71_1:
tmp266 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
tmp265 = tmp266 ;
break ;

/* branch: __ats_lab_72 */
__ats_lab_72_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_72_1:
tmp265 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_73 */
__ats_lab_73_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; }
__ats_lab_73_1:
tmp268 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ;
tmp267 = tmp268 ;
break ;

/* branch: __ats_lab_74 */
__ats_lab_74_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_74_1:
tmp267 = 0 ;
break ;
} while (0) ;
tmp270 = atspre_iadd (tmp265, 2) ;
tmp269 = atspre_igte (tmp267, tmp270) ;
if (tmp269) {
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp271 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_1) ;
tmp272 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_2) ;
tmp273 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_3) ;
tmp274 = avltree_rjoin_04077_ats_ptr_type (arg0, arg1, tmp272) ;
do {
/* branch: __ats_lab_75 */
__ats_lab_75_0:
if (tmp274 == (ats_sum_ptr_type)0) { goto __ats_lab_76_0 ; }
__ats_lab_75_1:
tmp276 = ats_caselptrlab_mac(anairiats_sum_3, tmp274, atslab_0) ;
tmp275 = tmp276 ;
break ;

/* branch: __ats_lab_76 */
__ats_lab_76_0:
// if (tmp274 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_76_1:
tmp275 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_77 */
__ats_lab_77_0:
if (tmp273 == (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; }
__ats_lab_77_1:
tmp278 = ats_caselptrlab_mac(anairiats_sum_3, tmp273, atslab_0) ;
tmp277 = tmp278 ;
break ;

/* branch: __ats_lab_78 */
__ats_lab_78_0:
// if (tmp273 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_78_1:
tmp277 = 0 ;
break ;
} while (0) ;
tmp280 = atspre_iadd (tmp277, 1) ;
tmp279 = atspre_ilte (tmp275, tmp280) ;
if (tmp279) {
tmp282 = atspre_imax (tmp275, tmp277) ;
tmp281 = atspre_iadd (tmp282, 1) ;
tmp264 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp264, atslab_0, tmp281) ;
ats_selptrset_mac(anairiats_sum_3, tmp264, atslab_1, tmp271) ;
ats_selptrset_mac(anairiats_sum_3, tmp264, atslab_2, tmp274) ;
ats_selptrset_mac(anairiats_sum_3, tmp264, atslab_3, tmp273) ;
} else {
tmp264 = avltree_rrotate_03999_ats_ptr_type (tmp271, tmp275, tmp274, tmp277, tmp273) ;
} /* end of [if] */
} else {
tmp283 = atspre_iadd (tmp267, 1) ;
tmp264 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp264, atslab_0, tmp283) ;
ats_selptrset_mac(anairiats_sum_3, tmp264, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_3, tmp264, atslab_2, arg1) ;
ats_selptrset_mac(anairiats_sum_3, tmp264, atslab_3, arg2) ;
} /* end of [if] */
return (tmp264) ;
} /* end of [avltree_rjoin_04077_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 11913(line=416, offs=26) -- 12193(line=423, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_join_04089_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp238) ;
ATSlocal (ats_int_type, tmp239) ;
ATSlocal (ats_int_type, tmp240) ;
ATSlocal (ats_int_type, tmp241) ;
ATSlocal (ats_int_type, tmp242) ;
ATSlocal (ats_bool_type, tmp243) ;

__ats_lab_avltree_join_04089_ats_ptr_type:
do {
/* branch: __ats_lab_59 */
__ats_lab_59_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_60_0 ; }
__ats_lab_59_1:
tmp240 = ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
tmp239 = tmp240 ;
break ;

/* branch: __ats_lab_60 */
__ats_lab_60_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_60_1:
tmp239 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_61 */
__ats_lab_61_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; }
__ats_lab_61_1:
tmp242 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ;
tmp241 = tmp242 ;
break ;

/* branch: __ats_lab_62 */
__ats_lab_62_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_62_1:
tmp241 = 0 ;
break ;
} while (0) ;
tmp243 = atspre_igte (tmp239, tmp241) ;
if (tmp243) {
tmp238 = avltree_ljoin_04065_ats_ptr_type (arg0, arg1, arg2) ;
} else {
tmp238 = avltree_rjoin_04077_ats_ptr_type (arg0, arg1, arg2) ;
} /* end of [if] */
return (tmp238) ;
} /* end of [avltree_join_04089_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 12740(line=447, offs=32) -- 13453(line=469, offs=42)
*/
ATSstaticdec()
ats_int_type
avltree_split_at_04100_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_clo_ref_type arg4) {
/* local vardec */
ATSlocal (ats_int_type, tmp230) ;
ATSlocal (ats_ptr_type, tmp231) ;
ATSlocal (ats_ptr_type, tmp232) ;
ATSlocal (ats_ptr_type, tmp233) ;
ATSlocal (ats_int_type, tmp234) ;
ATSlocal (ats_bool_type, tmp235) ;
ATSlocal (ats_int_type, tmp236) ;
ATSlocal (ats_ptr_type, tmp237) ;
ATSlocal (ats_bool_type, tmp284) ;
ATSlocal (ats_int_type, tmp285) ;
ATSlocal (ats_ptr_type, tmp286) ;
ATSlocal (ats_ptr_type, tmp287) ;
ATSlocal (ats_ptr_type, tmp288) ;

__ats_lab_avltree_split_at_04100_ats_ptr_type:
do {
/* branch: __ats_lab_58 */
__ats_lab_58_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_79_0 ; }
__ats_lab_58_1:
tmp231 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp232 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ;
tmp233 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ;
tmp234 = compare_elt_elt_03776_ats_ptr_type (arg1, tmp231, arg4) ;
tmp235 = atspre_lt_int_int (tmp234, 0) ;
if (tmp235) {
tmp236 = avltree_split_at_04100_ats_ptr_type (tmp232, arg1, arg2, arg3, arg4) ;
tmp237 = avltree_join_04089_ats_ptr_type (tmp231, ats_ptrget_mac(ats_ptr_type, arg3), tmp233) ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp237 ;
tmp230 = tmp236 ;
} else {
tmp284 = atspre_gt_int_int (tmp234, 0) ;
if (tmp284) {
tmp285 = avltree_split_at_04100_ats_ptr_type (tmp233, arg1, arg2, arg3, arg4) ;
tmp286 = avltree_join_04089_ats_ptr_type (tmp231, tmp232, ats_ptrget_mac(ats_ptr_type, arg2)) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp286 ;
tmp230 = tmp285 ;
} else {
ats_ptrget_mac(ats_ptr_type, arg2) = tmp232 ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp233 ;
tmp230 = 1 ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_79 */
__ats_lab_79_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_79_1:
tmp287 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp287 ;
tmp288 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp288 ;
tmp230 = 0 ;
break ;
} while (0) ;
return (tmp230) ;
} /* end of [avltree_split_at_04100_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 14263(line=512, offs=7) -- 14763(line=526, offs=8)
*/
ATSstaticdec()
ats_ptr_type
union_44 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp223) ;
ATSlocal (ats_ptr_type, tmp224) ;
ATSlocal (ats_ptr_type, tmp225) ;
ATSlocal (ats_ptr_type, tmp226) ;
ATSlocal (ats_ptr_type, tmp227) ;
ATSlocal (ats_ptr_type, tmp228) ;
ATSlocal (ats_int_type, tmp229) ;
ATSlocal (ats_ptr_type, tmp289) ;
ATSlocal (ats_ptr_type, tmp290) ;

__ats_lab_union_44:
do {
/* branch: __ats_lab_55 */
__ats_lab_55_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_56_0 ; }
__ats_lab_55_1:
__ats_lab_55_2:
tmp223 = arg1 ;
break ;

/* branch: __ats_lab_56 */
__ats_lab_56_0:
__ats_lab_56_1:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_57_1 ; }
__ats_lab_56_2:
tmp223 = arg0 ;
break ;

/* branch: __ats_lab_57 */
__ats_lab_57_0:
__ats_lab_57_1:
__ats_lab_57_2:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp224 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp225 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ;
tmp226 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ;
/* ats_ptr_type tmp227 ; */
/* ats_ptr_type tmp228 ; */
tmp229 = avltree_split_at_04100_ats_ptr_type (arg1, tmp224, (&tmp227), (&tmp228), env0) ;
tmp289 = union_44 (env0, tmp225, tmp227) ;
tmp290 = union_44 (env0, tmp226, tmp228) ;
tmp223 = avltree_join_04089_ats_ptr_type (tmp224, tmp289, tmp290) ;
break ;
} while (0) ;
return (tmp223) ;
} /* end of [union_44] */

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

ats_ptr_type
union_44_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) {
return union_44 (((union_44_closure_type*)cloptr)->closure_env_0, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
union_44_closure_make (ats_clo_ref_type env0) {
union_44_closure_type *p_clo = ATS_MALLOC(sizeof(union_44_closure_type)) ;
union_44_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/funset_avltree.dats: 14218(line=511, offs=3) -- 14825(line=528, offs=2)
*/
ATSstaticdec()
ats_ptr_type
funset_union_03790_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp222) ;

__ats_lab_funset_union_03790_ats_ptr_type:
tmp222 = union_44 (arg2, arg0, arg1) ;
return (tmp222) ;
} /* end of [funset_union_03790_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7377(line=298, offs=3) -- 7418(line=298, offs=44)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_union (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp221) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_union:
tmp221 = funset_union_03790_ats_ptr_type (arg0, arg1, statmp75) ;
return (tmp221) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_union] */

/*
// /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_51 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp293) ;
ATSlocal (ats_ptr_type, tmp294) ;
ATSlocal (ats_ptr_type, tmp295) ;
ATSlocal (ats_ptr_type, tmp296) ;
ATSlocal (ats_ptr_type, tmp297) ;
ATSlocal (ats_ptr_type, tmp298) ;

__ats_lab_listize_51:
do {
/* branch: __ats_lab_80 */
__ats_lab_80_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_81_0 ; }
__ats_lab_80_1:
tmp294 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp295 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ;
tmp296 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ;
tmp297 = listize_51 (tmp296, arg1) ;
tmp298 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp298, atslab_0, tmp294) ;
ats_selptrset_mac(anairiats_sum_2, tmp298, atslab_1, tmp297) ;
arg0 = tmp295 ;
arg1 = tmp298 ;
goto __ats_lab_listize_51 ; // tail call
break ;

/* branch: __ats_lab_81 */
__ats_lab_81_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_81_1:
tmp293 = arg1 ;
break ;
} while (0) ;
return (tmp293) ;
} /* end of [listize_51] */

/*
// /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_03801_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp292) ;
ATSlocal (ats_ptr_type, tmp299) ;

__ats_lab_funset_listize_03801_ats_ptr_type:
tmp299 = (ats_sum_ptr_type)0 ;
tmp292 = listize_51 (arg0, tmp299) ;
return (tmp292) ;
} /* end of [funset_listize_03801_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7447(line=301, offs=18) -- 7476(line=301, offs=47)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_listize (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp291) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_listize:
tmp291 = funset_listize_03801_ats_ptr_type (arg0) ;
return (tmp291) ;
} /* 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_03803_ () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp301) ;

__ats_lab_linset_make_nil_03803_:
tmp301 = (ats_sum_ptr_type)0 ;
return (tmp301) ;
} /* end of [linset_make_nil_03803_] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7528(line=307, offs=3) -- 7563(line=307, offs=38)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp300) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_nil:
tmp300 = linset_make_nil_03803_ () ;
return (tmp300) ;
} /* 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: 2013(line=65, offs=17) -- 2041(line=65, offs=45)
*/
ATSstaticdec()
ats_int_type
compare_elt_elt_03802_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp312) ;

__ats_lab_compare_elt_elt_03802_ats_ptr_type:
tmp312 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ;
return (tmp312) ;
} /* end of [compare_elt_elt_03802_ats_ptr_type] */

/*
// /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_04256_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp317) ;
ATSlocal (ats_int_type, tmp318) ;

__ats_lab_avltree_height_04256_ats_ptr_type:
do {
/* branch: __ats_lab_83 */
__ats_lab_83_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_84_0 ; }
__ats_lab_83_1:
tmp318 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp317 = tmp318 ;
break ;

/* branch: __ats_lab_84 */
__ats_lab_84_0:
__ats_lab_84_1:
tmp317 = 0 ;
break ;
} while (0) ;
return (tmp317) ;
} /* end of [avltree_height_04256_ats_ptr_type] */

/*
// /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_04310_ats_ptr_type (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, tmp327) ;
ATSlocal (ats_ptr_type, tmp328) ;
ATSlocal (ats_ptr_type, tmp329) ;
ATSlocal (ats_ptr_type, tmp330) ;
ATSlocal (ats_ptr_type, tmp331) ;
ATSlocal (ats_int_type, tmp332) ;
ATSlocal (ats_ptr_type, tmp333) ;
ATSlocal (ats_int_type, tmp334) ;
ATSlocal (ats_ptr_type, tmp335) ;
ATSlocal (ats_bool_type, tmp336) ;
ATSlocal (ats_int_type, tmp337) ;
ATSlocal (ats_int_type, tmp338) ;
ATSlocal (ats_ptr_type, tmp339) ;
ATSlocal (ats_int_type, tmp340) ;
ATSlocal (ats_int_type, tmp341) ;
ATSlocal (ats_ptr_type, tmp342) ;
ATSlocal (ats_ptr_type, tmp343) ;
ATSlocal (ats_ptr_type, tmp344) ;
ATSlocal (ats_ptr_type, tmp345) ;
ATSlocal (ats_int_type, tmp346) ;
ATSlocal (ats_ptr_type, tmp347) ;
ATSlocal (ats_int_type, tmp348) ;
ATSlocal (ats_ptr_type, tmp349) ;
ATSlocal (ats_int_type, tmp350) ;
ATSlocal (ats_int_type, tmp351) ;
ATSlocal (ats_ptr_type, tmp352) ;
ATSlocal (ats_int_type, tmp353) ;
ATSlocal (ats_int_type, tmp354) ;
ATSlocal (ats_ptr_type, tmp355) ;

__ats_lab_avltree_rrotate_04310_ats_ptr_type:
tmp328 = ats_ptrget_mac(ats_ptr_type, arg2) ;
// if (tmp328 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp329 = &ats_caselptrlab_mac(anairiats_sum_3, tmp328, atslab_0) ;
tmp330 = &ats_caselptrlab_mac(anairiats_sum_3, tmp328, atslab_2) ;
tmp331 = &ats_caselptrlab_mac(anairiats_sum_3, tmp328, atslab_3) ;
tmp333 = ats_ptrget_mac(ats_ptr_type, tmp330) ;
tmp332 = avltree_height_04256_ats_ptr_type (tmp333) ;
tmp335 = ats_ptrget_mac(ats_ptr_type, tmp331) ;
tmp334 = avltree_height_04256_ats_ptr_type (tmp335) ;
tmp337 = atspre_iadd (tmp332, 0) ;
tmp336 = atspre_igte (tmp337, tmp334) ;
if (tmp336) {
tmp338 = atspre_iadd (tmp334, 1) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp338 ;
tmp339 = ats_ptrget_mac(ats_ptr_type, tmp331) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp339 ;
tmp341 = atspre_imax (tmp332, tmp338) ;
tmp340 = atspre_iadd (1, tmp341) ;
ats_ptrget_mac(ats_int_type, tmp329) = tmp340 ;
ats_ptrget_mac(ats_ptr_type, tmp331) = arg5 ;
tmp327 = tmp328 ;
} else {
tmp342 = ats_ptrget_mac(ats_ptr_type, tmp331) ;
// if (tmp342 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp343 = &ats_caselptrlab_mac(anairiats_sum_3, tmp342, atslab_0) ;
tmp344 = &ats_caselptrlab_mac(anairiats_sum_3, tmp342, atslab_2) ;
tmp345 = &ats_caselptrlab_mac(anairiats_sum_3, tmp342, atslab_3) ;
tmp347 = ats_ptrget_mac(ats_ptr_type, tmp344) ;
tmp346 = avltree_height_04256_ats_ptr_type (tmp347) ;
tmp349 = ats_ptrget_mac(ats_ptr_type, tmp345) ;
tmp348 = avltree_height_04256_ats_ptr_type (tmp349) ;
tmp351 = atspre_imax (tmp348, arg3) ;
tmp350 = atspre_iadd (1, tmp351) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp350 ;
tmp352 = ats_ptrget_mac(ats_ptr_type, tmp345) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp352 ;
tmp354 = atspre_imax (tmp332, tmp346) ;
tmp353 = atspre_iadd (1, tmp354) ;
ats_ptrget_mac(ats_int_type, tmp329) = tmp353 ;
tmp355 = ats_ptrget_mac(ats_ptr_type, tmp344) ;
ats_ptrget_mac(ats_ptr_type, tmp331) = tmp355 ;
ats_ptrget_mac(ats_int_type, tmp343) = arg1 ;
ats_ptrget_mac(ats_ptr_type, tmp344) = tmp328 ;
ats_ptrget_mac(ats_ptr_type, tmp345) = arg5 ;
tmp327 = tmp342 ;
} /* end of [if] */
return (tmp327) ;
} /* end of [avltree_rrotate_04310_ats_ptr_type] */

/*
// /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_04286_ats_ptr_type (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, tmp367) ;
ATSlocal (ats_ptr_type, tmp368) ;
ATSlocal (ats_ptr_type, tmp369) ;
ATSlocal (ats_ptr_type, tmp370) ;
ATSlocal (ats_ptr_type, tmp371) ;
ATSlocal (ats_int_type, tmp372) ;
ATSlocal (ats_ptr_type, tmp373) ;
ATSlocal (ats_int_type, tmp374) ;
ATSlocal (ats_ptr_type, tmp375) ;
ATSlocal (ats_bool_type, tmp376) ;
ATSlocal (ats_int_type, tmp377) ;
ATSlocal (ats_int_type, tmp378) ;
ATSlocal (ats_ptr_type, tmp379) ;
ATSlocal (ats_int_type, tmp380) ;
ATSlocal (ats_int_type, tmp381) ;
ATSlocal (ats_ptr_type, tmp382) ;
ATSlocal (ats_ptr_type, tmp383) ;
ATSlocal (ats_ptr_type, tmp384) ;
ATSlocal (ats_ptr_type, tmp385) ;
ATSlocal (ats_int_type, tmp386) ;
ATSlocal (ats_ptr_type, tmp387) ;
ATSlocal (ats_int_type, tmp388) ;
ATSlocal (ats_ptr_type, tmp389) ;
ATSlocal (ats_int_type, tmp390) ;
ATSlocal (ats_int_type, tmp391) ;
ATSlocal (ats_ptr_type, tmp392) ;
ATSlocal (ats_int_type, tmp393) ;
ATSlocal (ats_int_type, tmp394) ;
ATSlocal (ats_ptr_type, tmp395) ;

__ats_lab_avltree_lrotate_04286_ats_ptr_type:
tmp368 = ats_ptrget_mac(ats_ptr_type, arg4) ;
// if (tmp368 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp369 = &ats_caselptrlab_mac(anairiats_sum_3, tmp368, atslab_0) ;
tmp370 = &ats_caselptrlab_mac(anairiats_sum_3, tmp368, atslab_2) ;
tmp371 = &ats_caselptrlab_mac(anairiats_sum_3, tmp368, atslab_3) ;
tmp373 = ats_ptrget_mac(ats_ptr_type, tmp370) ;
tmp372 = avltree_height_04256_ats_ptr_type (tmp373) ;
tmp375 = ats_ptrget_mac(ats_ptr_type, tmp371) ;
tmp374 = avltree_height_04256_ats_ptr_type (tmp375) ;
tmp377 = atspre_iadd (tmp374, 0) ;
tmp376 = atspre_ilte (tmp372, tmp377) ;
if (tmp376) {
tmp378 = atspre_iadd (tmp372, 1) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp378 ;
tmp379 = ats_ptrget_mac(ats_ptr_type, tmp370) ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp379 ;
tmp381 = atspre_imax (tmp378, tmp374) ;
tmp380 = atspre_iadd (1, tmp381) ;
ats_ptrget_mac(ats_int_type, tmp369) = tmp380 ;
ats_ptrget_mac(ats_ptr_type, tmp370) = arg5 ;
tmp367 = tmp368 ;
} else {
tmp382 = ats_ptrget_mac(ats_ptr_type, tmp370) ;
// if (tmp382 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp383 = &ats_caselptrlab_mac(anairiats_sum_3, tmp382, atslab_0) ;
tmp384 = &ats_caselptrlab_mac(anairiats_sum_3, tmp382, atslab_2) ;
tmp385 = &ats_caselptrlab_mac(anairiats_sum_3, tmp382, atslab_3) ;
tmp387 = ats_ptrget_mac(ats_ptr_type, tmp384) ;
tmp386 = avltree_height_04256_ats_ptr_type (tmp387) ;
tmp389 = ats_ptrget_mac(ats_ptr_type, tmp385) ;
tmp388 = avltree_height_04256_ats_ptr_type (tmp389) ;
tmp391 = atspre_imax (arg1, tmp386) ;
tmp390 = atspre_iadd (1, tmp391) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp390 ;
tmp392 = ats_ptrget_mac(ats_ptr_type, tmp384) ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp392 ;
tmp394 = atspre_imax (tmp388, tmp374) ;
tmp393 = atspre_iadd (1, tmp394) ;
ats_ptrget_mac(ats_int_type, tmp369) = tmp393 ;
tmp395 = ats_ptrget_mac(ats_ptr_type, tmp385) ;
ats_ptrget_mac(ats_ptr_type, tmp370) = tmp395 ;
ats_ptrget_mac(ats_int_type, tmp383) = arg3 ;
ats_ptrget_mac(ats_ptr_type, tmp384) = arg5 ;
ats_ptrget_mac(ats_ptr_type, tmp385) = tmp368 ;
tmp367 = tmp382 ;
} /* end of [if] */
return (tmp367) ;
} /* end of [avltree_lrotate_04286_ats_ptr_type] */

/*
// /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_56 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp306) ;
ATSlocal (ats_ptr_type, tmp307) ;
ATSlocal (ats_ptr_type, tmp308) ;
ATSlocal (ats_ptr_type, tmp309) ;
ATSlocal (ats_ptr_type, tmp310) ;
ATSlocal (ats_int_type, tmp311) ;
ATSlocal (ats_ptr_type, tmp313) ;
ATSlocal (ats_bool_type, tmp314) ;
ATSlocal (ats_bool_type, tmp315) ;
ATSlocal (ats_int_type, tmp316) ;
ATSlocal (ats_ptr_type, tmp319) ;
ATSlocal (ats_int_type, tmp320) ;
ATSlocal (ats_ptr_type, tmp321) ;
ATSlocal (ats_bool_type, tmp322) ;
ATSlocal (ats_int_type, tmp323) ;
ATSlocal (ats_int_type, tmp324) ;
ATSlocal (ats_int_type, tmp325) ;
ATSlocal (ats_ptr_type, tmp326) ;
ATSlocal (ats_bool_type, tmp356) ;
ATSlocal (ats_bool_type, tmp357) ;
ATSlocal (ats_int_type, tmp358) ;
ATSlocal (ats_ptr_type, tmp359) ;
ATSlocal (ats_int_type, tmp360) ;
ATSlocal (ats_ptr_type, tmp361) ;
ATSlocal (ats_bool_type, tmp362) ;
ATSlocal (ats_int_type, tmp363) ;
ATSlocal (ats_int_type, tmp364) ;
ATSlocal (ats_int_type, tmp365) ;
ATSlocal (ats_ptr_type, tmp366) ;
ATSlocal (ats_ptr_type, tmp396) ;
ATSlocal (ats_ptr_type, tmp397) ;
ATSlocal (ats_ptr_type, tmp398) ;

__ats_lab_insert_56:
do {
/* branch: __ats_lab_82 */
__ats_lab_82_0:
if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_85_0 ; }
__ats_lab_82_1:
tmp307 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp308 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ;
tmp309 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ;
tmp310 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ;
tmp313 = ats_ptrget_mac(ats_ptr_type, tmp308) ;
tmp311 = compare_elt_elt_03802_ats_ptr_type (arg1, tmp313, env0) ;
tmp314 = atspre_lt_int_int (tmp311, 0) ;
if (tmp314) {
tmp315 = insert_56 (env0, tmp309, arg1) ;
tmp319 = ats_ptrget_mac(ats_ptr_type, tmp309) ;
tmp316 = avltree_height_04256_ats_ptr_type (tmp319) ;
tmp321 = ats_ptrget_mac(ats_ptr_type, tmp310) ;
tmp320 = avltree_height_04256_ats_ptr_type (tmp321) ;
tmp323 = atspre_isub (tmp316, tmp320) ;
tmp322 = atspre_ilte (tmp323, 1) ;
if (tmp322) {
tmp325 = atspre_imax (tmp316, tmp320) ;
tmp324 = atspre_iadd (1, tmp325) ;
ats_ptrget_mac(ats_int_type, tmp307) = tmp324 ;
tmp306 = tmp315 ;
} else {
tmp326 = avltree_rrotate_04310_ats_ptr_type (tmp307, tmp316, tmp309, tmp320, tmp310, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp326 ;
tmp306 = tmp315 ;
} /* end of [if] */
} else {
tmp356 = atspre_gt_int_int (tmp311, 0) ;
if (tmp356) {
tmp357 = insert_56 (env0, tmp310, arg1) ;
tmp359 = ats_ptrget_mac(ats_ptr_type, tmp309) ;
tmp358 = avltree_height_04256_ats_ptr_type (tmp359) ;
tmp361 = ats_ptrget_mac(ats_ptr_type, tmp310) ;
tmp360 = avltree_height_04256_ats_ptr_type (tmp361) ;
tmp363 = atspre_isub (tmp360, tmp358) ;
tmp362 = atspre_ilte (tmp363, 1) ;
if (tmp362) {
tmp365 = atspre_imax (tmp358, tmp360) ;
tmp364 = atspre_iadd (1, tmp365) ;
ats_ptrget_mac(ats_int_type, tmp307) = tmp364 ;
tmp306 = tmp357 ;
} else {
tmp366 = avltree_lrotate_04286_ats_ptr_type (tmp307, tmp358, tmp309, tmp360, tmp310, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp366 ;
tmp306 = tmp357 ;
} /* end of [if] */
} else {
tmp306 = ats_true_bool ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_85 */
__ats_lab_85_0:
// if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_85_1:
tmp397 = (ats_sum_ptr_type)0 ;
tmp398 = (ats_sum_ptr_type)0 ;
tmp396 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp396, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_3, tmp396, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_3, tmp396, atslab_2, tmp397) ;
ats_selptrset_mac(anairiats_sum_3, tmp396, atslab_3, tmp398) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp396 ;
tmp306 = ats_false_bool ;
break ;
} while (0) ;
return (tmp306) ;
} /* end of [insert_56] */

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

ats_bool_type
insert_56_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) {
return insert_56 (((insert_56_closure_type*)cloptr)->closure_env_0, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
insert_56_closure_make (ats_clo_ref_type env0) {
insert_56_closure_type *p_clo = ATS_MALLOC(sizeof(insert_56_closure_type)) ;
insert_56_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_03812_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp305) ;

__ats_lab_linset_insert_03812_ats_ptr_type:
tmp305 = insert_56 (arg2, arg0, arg1) ;
return (tmp305) ;
} /* end of [linset_insert_03812_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7593(line=311, offs=3) -- 7682(line=314, 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, tmp302) ;
ATSlocal (ats_ptr_type, tmp303) ;
ATSlocal (ats_bool_type, tmp304) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_add:
/* ats_ptr_type tmp303 ; */
tmp303 = arg0 ;
tmp304 = linset_insert_03812_ats_ptr_type ((&tmp303), arg1, statmp75) ;
tmp302 = tmp303 ;
return (tmp302) ;
} /* 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: 10551(line=405, offs=35) -- 11507(line=438, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_takeout_min_04355_ats_ptr_type (ats_ref_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp431) ;
ATSlocal (ats_ptr_type, tmp432) ;
ATSlocal (ats_ptr_type, tmp433) ;
ATSlocal (ats_ptr_type, tmp434) ;
ATSlocal (ats_ptr_type, tmp435) ;
ATSlocal (ats_ptr_type, tmp436) ;
ATSlocal (ats_int_type, tmp437) ;
ATSlocal (ats_ptr_type, tmp438) ;
ATSlocal (ats_int_type, tmp439) ;
ATSlocal (ats_ptr_type, tmp440) ;
ATSlocal (ats_bool_type, tmp441) ;
ATSlocal (ats_int_type, tmp442) ;
ATSlocal (ats_int_type, tmp443) ;
ATSlocal (ats_int_type, tmp444) ;
ATSlocal (ats_ptr_type, tmp445) ;
ATSlocal (ats_ptr_type, tmp446) ;
ATSlocal (ats_ptr_type, tmp447) ;

__ats_lab_avltree_takeout_min_04355_ats_ptr_type:
// if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp432 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp433 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ;
tmp434 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ;
tmp435 = ats_ptrget_mac(ats_ptr_type, tmp433) ;
do {
/* branch: __ats_lab_91 */
__ats_lab_91_0:
if (tmp435 == (ats_sum_ptr_type)0) { goto __ats_lab_92_0 ; }
__ats_lab_91_1:
tmp436 = avltree_takeout_min_04355_ats_ptr_type (tmp433) ;
tmp438 = ats_ptrget_mac(ats_ptr_type, tmp433) ;
tmp437 = avltree_height_04256_ats_ptr_type (tmp438) ;
tmp440 = ats_ptrget_mac(ats_ptr_type, tmp434) ;
tmp439 = avltree_height_04256_ats_ptr_type (tmp440) ;
tmp442 = atspre_isub (tmp439, tmp437) ;
tmp441 = atspre_ilte (tmp442, 1) ;
if (tmp441) {
tmp444 = atspre_imax (tmp437, tmp439) ;
tmp443 = atspre_iadd (1, tmp444) ;
ats_ptrget_mac(ats_int_type, tmp432) = tmp443 ;
tmp431 = tmp436 ;
} else {
tmp445 = avltree_lrotate_04286_ats_ptr_type (tmp432, tmp437, tmp433, tmp439, tmp434, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp445 ;
tmp431 = tmp436 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_92 */
__ats_lab_92_0:
// if (tmp435 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_92_1:
tmp446 = ats_ptrget_mac(ats_ptr_type, tmp434) ;
tmp447 = ats_ptrget_mac(ats_ptr_type, arg0) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp446 ;
tmp431 = ats_castfn_mac(ats_ptr_type, tmp447) ;
break ;
} while (0) ;
return (tmp431) ;
} /* end of [avltree_takeout_min_04355_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 11633(line=445, offs=7) -- 14462(line=519, offs=6)
*/
ATSstaticdec()
ats_bool_type
remove_63 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp403) ;
ATSlocal (ats_ptr_type, tmp404) ;
ATSlocal (ats_ptr_type, tmp405) ;
ATSlocal (ats_ptr_type, tmp406) ;
ATSlocal (ats_ptr_type, tmp407) ;
ATSlocal (ats_int_type, tmp408) ;
ATSlocal (ats_ptr_type, tmp409) ;
ATSlocal (ats_bool_type, tmp410) ;
ATSlocal (ats_bool_type, tmp411) ;
ATSlocal (ats_int_type, tmp412) ;
ATSlocal (ats_ptr_type, tmp413) ;
ATSlocal (ats_int_type, tmp414) ;
ATSlocal (ats_ptr_type, tmp415) ;
ATSlocal (ats_bool_type, tmp416) ;
ATSlocal (ats_int_type, tmp417) ;
ATSlocal (ats_ptr_type, tmp418) ;
ATSlocal (ats_bool_type, tmp419) ;
ATSlocal (ats_bool_type, tmp420) ;
ATSlocal (ats_int_type, tmp421) ;
ATSlocal (ats_ptr_type, tmp422) ;
ATSlocal (ats_int_type, tmp423) ;
ATSlocal (ats_ptr_type, tmp424) ;
ATSlocal (ats_bool_type, tmp425) ;
ATSlocal (ats_int_type, tmp426) ;
ATSlocal (ats_ptr_type, tmp427) ;
ATSlocal (ats_ptr_type, tmp428) ;
ATSlocal (ats_ptr_type, tmp429) ;
ATSlocal (ats_ptr_type, tmp430) ;
ATSlocal (ats_ptr_type, tmp448) ;
ATSlocal (ats_ptr_type, tmp449) ;
ATSlocal (ats_ptr_type, tmp450) ;
ATSlocal (ats_int_type, tmp451) ;
ATSlocal (ats_int_type, tmp452) ;
ATSlocal (ats_bool_type, tmp453) ;
ATSlocal (ats_int_type, tmp454) ;
ATSlocal (ats_int_type, tmp455) ;
ATSlocal (ats_int_type, tmp456) ;
ATSlocal (ats_ptr_type, tmp457) ;

__ats_lab_remove_63:
do {
/* branch: __ats_lab_86 */
__ats_lab_86_0:
if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_94_0 ; }
__ats_lab_86_1:
tmp404 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp405 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ;
tmp406 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ;
tmp407 = &ats_caselptrlab_mac(anairiats_sum_3, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ;
tmp409 = ats_ptrget_mac(ats_ptr_type, tmp405) ;
tmp408 = compare_elt_elt_03802_ats_ptr_type (env0, tmp409, env1) ;
do {
/* branch: __ats_lab_87 */
__ats_lab_87_0:
__ats_lab_87_1:
tmp410 = atspre_lt_int_int (tmp408, 0) ;
if (!tmp410) { goto __ats_lab_88_1 ; }
tmp411 = remove_63 (env0, env1, tmp406) ;
tmp413 = ats_ptrget_mac(ats_ptr_type, tmp406) ;
tmp412 = avltree_height_04256_ats_ptr_type (tmp413) ;
tmp415 = ats_ptrget_mac(ats_ptr_type, tmp407) ;
tmp414 = avltree_height_04256_ats_ptr_type (tmp415) ;
tmp417 = atspre_isub (tmp414, tmp412) ;
tmp416 = atspre_ilte (tmp417, 1) ;
if (tmp416) {
tmp403 = tmp411 ;
} else {
tmp418 = avltree_lrotate_04286_ats_ptr_type (tmp404, tmp412, tmp406, tmp414, tmp407, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp418 ;
tmp403 = tmp411 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_88 */
__ats_lab_88_0:
__ats_lab_88_1:
tmp419 = atspre_gt_int_int (tmp408, 0) ;
if (!tmp419) { goto __ats_lab_89_1 ; }
tmp420 = remove_63 (env0, env1, tmp407) ;
tmp422 = ats_ptrget_mac(ats_ptr_type, tmp406) ;
tmp421 = avltree_height_04256_ats_ptr_type (tmp422) ;
tmp424 = ats_ptrget_mac(ats_ptr_type, tmp407) ;
tmp423 = avltree_height_04256_ats_ptr_type (tmp424) ;
tmp426 = atspre_isub (tmp421, tmp423) ;
tmp425 = atspre_ilte (tmp426, 1) ;
if (tmp425) {
tmp403 = tmp420 ;
} else {
tmp427 = avltree_rrotate_04310_ats_ptr_type (tmp404, tmp421, tmp406, tmp423, tmp407, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp427 ;
tmp403 = tmp420 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_89 */
__ats_lab_89_0:
__ats_lab_89_1:
/* ats_ptr_type tmp428 ; */
tmp428 = ats_ptrget_mac(ats_ptr_type, tmp406) ;
/* ats_ptr_type tmp429 ; */
tmp429 = ats_ptrget_mac(ats_ptr_type, tmp407) ;
ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ;
do {
/* branch: __ats_lab_90 */
__ats_lab_90_0:
if (tmp429 == (ats_sum_ptr_type)0) { goto __ats_lab_93_0 ; }
__ats_lab_90_1:
tmp430 = avltree_takeout_min_04355_ats_ptr_type ((&tmp429)) ;
if (tmp430 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 13492(line=496, offs=21) -- 13529(line=496, offs=58)") ; }
tmp448 = &ats_caselptrlab_mac(anairiats_sum_3, tmp430, atslab_0) ;
tmp449 = &ats_caselptrlab_mac(anairiats_sum_3, tmp430, atslab_2) ;
tmp450 = &ats_caselptrlab_mac(anairiats_sum_3, tmp430, atslab_3) ;
tmp451 = avltree_height_04256_ats_ptr_type (tmp428) ;
tmp452 = avltree_height_04256_ats_ptr_type (tmp429) ;
ats_ptrget_mac(ats_ptr_type, tmp449) = tmp428 ;
ats_ptrget_mac(ats_ptr_type, tmp450) = tmp429 ;
tmp454 = atspre_isub (tmp451, tmp452) ;
tmp453 = atspre_ilte (tmp454, 1) ;
if (tmp453) {
tmp456 = atspre_imax (tmp451, tmp452) ;
tmp455 = atspre_iadd (1, tmp456) ;
ats_ptrget_mac(ats_int_type, tmp448) = tmp455 ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp430 ;
tmp403 = ats_true_bool ;
} else {
tmp457 = avltree_rrotate_04310_ats_ptr_type (tmp448, tmp451, tmp449, tmp452, tmp450, tmp430) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp457 ;
tmp403 = ats_true_bool ;
} /* end of [if] */
break ;

/* branch: __ats_lab_93 */
__ats_lab_93_0:
// if (tmp429 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_93_1:
ats_ptrget_mac(ats_ptr_type, arg0) = tmp428 ;
tmp403 = ats_true_bool ;
break ;
} while (0) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_94 */
__ats_lab_94_0:
// if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_94_1:
tmp403 = ats_false_bool ;
break ;
} while (0) ;
return (tmp403) ;
} /* end of [remove_63] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
ats_clo_ref_type closure_env_1 ;
} remove_63_closure_type ;

ats_bool_type
remove_63_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0) {
return remove_63 (((remove_63_closure_type*)cloptr)->closure_env_0, ((remove_63_closure_type*)cloptr)->closure_env_1, arg0) ;
} /* end of function */

ATSinline()
ats_void_type
remove_63_closure_init (remove_63_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) {
p_clo->closure_fun = (ats_fun_ptr_type)&remove_63_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
return ;
} /* end of function */

ats_clo_ptr_type
remove_63_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
remove_63_closure_type *p_clo = ATS_MALLOC(sizeof(remove_63_closure_type)) ;
remove_63_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: 11591(line=444, offs=3) -- 14483(line=520, offs=2)
*/
ATSstaticdec()
ats_bool_type
linset_remove_03813_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp402) ;

__ats_lab_linset_remove_03813_ats_ptr_type:
tmp402 = remove_63 (arg1, arg2, arg0) ;
return (tmp402) ;
} /* end of [linset_remove_03813_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7740(line=318, offs=3) -- 7828(line=321, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_del (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp399) ;
ATSlocal (ats_ptr_type, tmp400) ;
ATSlocal (ats_bool_type, tmp401) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_del:
/* ats_ptr_type tmp400 ; */
tmp400 = arg0 ;
tmp401 = linset_remove_03813_ats_ptr_type ((&tmp400), arg1, statmp75) ;
tmp399 = tmp400 ;
return (tmp399) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_del] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7912(line=326, offs=7) -- 8104(line=331, offs=25)
*/
ATSstaticdec()
ats_ptr_type
loop_66 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp459) ;
ATSlocal (ats_ptr_type, tmp460) ;
ATSlocal (ats_ptr_type, tmp461) ;
ATSlocal (ats_ptr_type, tmp462) ;

__ats_lab_loop_66:
do {
/* branch: __ats_lab_95 */
__ats_lab_95_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_96_0 ; }
__ats_lab_95_1:
tmp460 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ;
tmp461 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ;
tmp462 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_del (arg0, tmp460) ;
arg0 = tmp462 ;
arg1 = tmp461 ;
goto __ats_lab_loop_66 ; // tail call
break ;

/* branch: __ats_lab_96 */
__ats_lab_96_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_96_1:
tmp459 = arg0 ;
break ;
} while (0) ;
return (tmp459) ;
} /* end of [loop_66] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 7889(line=325, offs=3) -- 8148(line=335, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_delist (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp458) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_delist:
tmp458 = loop_66 (arg0, arg1) ;
return (tmp458) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_delist] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 14636(line=529, offs=33) -- 15739(line=565, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_ljoin_04404_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp491) ;
ATSlocal (ats_int_type, tmp492) ;
ATSlocal (ats_int_type, tmp493) ;
ATSlocal (ats_bool_type, tmp494) ;
ATSlocal (ats_int_type, tmp495) ;
ATSlocal (ats_ptr_type, tmp496) ;
ATSlocal (ats_ptr_type, tmp497) ;
ATSlocal (ats_ptr_type, tmp498) ;
ATSlocal (ats_ptr_type, tmp499) ;
ATSlocal (ats_ptr_type, tmp500) ;
ATSlocal (ats_int_type, tmp501) ;
ATSlocal (ats_ptr_type, tmp502) ;
ATSlocal (ats_int_type, tmp503) ;
ATSlocal (ats_ptr_type, tmp504) ;
ATSlocal (ats_bool_type, tmp505) ;
ATSlocal (ats_int_type, tmp506) ;
ATSlocal (ats_int_type, tmp507) ;
ATSlocal (ats_int_type, tmp508) ;
ATSlocal (ats_ptr_type, tmp509) ;
ATSlocal (ats_ptr_type, tmp510) ;
ATSlocal (ats_ptr_type, tmp511) ;
ATSlocal (ats_int_type, tmp512) ;

__ats_lab_avltree_ljoin_04404_ats_ptr_type:
tmp492 = avltree_height_04256_ats_ptr_type (arg1) ;
tmp493 = avltree_height_04256_ats_ptr_type (arg2) ;
tmp495 = atspre_iadd (tmp493, 2) ;
tmp494 = atspre_igte (tmp492, tmp495) ;
if (tmp494) {
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp496 = &ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_0) ;
tmp497 = &ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_2) ;
tmp498 = &ats_caselptrlab_mac(anairiats_sum_3, arg1, atslab_3) ;
tmp500 = ats_ptrget_mac(ats_ptr_type, tmp498) ;
tmp499 = avltree_ljoin_04404_ats_ptr_type (arg0, tmp500, arg2) ;
ats_ptrget_mac(ats_ptr_type, tmp498) = tmp499 ;
tmp502 = ats_ptrget_mac(ats_ptr_type, tmp497) ;
tmp501 = avltree_height_04256_ats_ptr_type (tmp502) ;
tmp504 = ats_ptrget_mac(ats_ptr_type, tmp498) ;
tmp503 = avltree_height_04256_ats_ptr_type (tmp504) ;
tmp506 = atspre_iadd (tmp501, 1) ;
tmp505 = atspre_ilte (tmp503, tmp506) ;
if (tmp505) {
tmp508 = atspre_imax (tmp501, tmp503) ;
tmp507 = atspre_iadd (tmp508, 1) ;
ats_ptrget_mac(ats_int_type, tmp496) = tmp507 ;
tmp491 = arg1 ;
} else {
tmp491 = avltree_lrotate_04286_ats_ptr_type (tmp496, tmp501, tmp497, tmp503, tmp498, arg1) ;
} /* end of [if] */
} else {
if (arg0 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 15582(line=559, offs=9) -- 15612(line=559, offs=39)") ; }
tmp509 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp510 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ;
tmp511 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ;
tmp512 = atspre_iadd (tmp492, 1) ;
ats_ptrget_mac(ats_int_type, tmp509) = tmp512 ;
ats_ptrget_mac(ats_ptr_type, tmp510) = arg1 ;
ats_ptrget_mac(ats_ptr_type, tmp511) = arg2 ;
tmp491 = arg0 ;
} /* end of [if] */
return (tmp491) ;
} /* end of [avltree_ljoin_04404_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 15871(line=572, offs=32) -- 16972(line=608, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_rjoin_04424_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp513) ;
ATSlocal (ats_int_type, tmp514) ;
ATSlocal (ats_int_type, tmp515) ;
ATSlocal (ats_bool_type, tmp516) ;
ATSlocal (ats_int_type, tmp517) ;
ATSlocal (ats_ptr_type, tmp518) ;
ATSlocal (ats_ptr_type, tmp519) ;
ATSlocal (ats_ptr_type, tmp520) ;
ATSlocal (ats_ptr_type, tmp521) ;
ATSlocal (ats_ptr_type, tmp522) ;
ATSlocal (ats_int_type, tmp523) ;
ATSlocal (ats_ptr_type, tmp524) ;
ATSlocal (ats_int_type, tmp525) ;
ATSlocal (ats_ptr_type, tmp526) ;
ATSlocal (ats_bool_type, tmp527) ;
ATSlocal (ats_int_type, tmp528) ;
ATSlocal (ats_int_type, tmp529) ;
ATSlocal (ats_int_type, tmp530) ;
ATSlocal (ats_ptr_type, tmp531) ;
ATSlocal (ats_ptr_type, tmp532) ;
ATSlocal (ats_ptr_type, tmp533) ;
ATSlocal (ats_int_type, tmp534) ;

__ats_lab_avltree_rjoin_04424_ats_ptr_type:
tmp514 = avltree_height_04256_ats_ptr_type (arg1) ;
tmp515 = avltree_height_04256_ats_ptr_type (arg2) ;
tmp517 = atspre_iadd (tmp514, 2) ;
tmp516 = atspre_igte (tmp515, tmp517) ;
if (tmp516) {
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp518 = &ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ;
tmp519 = &ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_2) ;
tmp520 = &ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_3) ;
tmp522 = ats_ptrget_mac(ats_ptr_type, tmp519) ;
tmp521 = avltree_rjoin_04424_ats_ptr_type (arg0, arg1, tmp522) ;
ats_ptrget_mac(ats_ptr_type, tmp519) = tmp521 ;
tmp524 = ats_ptrget_mac(ats_ptr_type, tmp519) ;
tmp523 = avltree_height_04256_ats_ptr_type (tmp524) ;
tmp526 = ats_ptrget_mac(ats_ptr_type, tmp520) ;
tmp525 = avltree_height_04256_ats_ptr_type (tmp526) ;
tmp528 = atspre_iadd (tmp525, 1) ;
tmp527 = atspre_ilte (tmp523, tmp528) ;
if (tmp527) {
tmp530 = atspre_imax (tmp523, tmp525) ;
tmp529 = atspre_iadd (tmp530, 1) ;
ats_ptrget_mac(ats_int_type, tmp518) = tmp529 ;
tmp513 = arg2 ;
} else {
tmp513 = avltree_rrotate_04310_ats_ptr_type (tmp518, tmp523, tmp519, tmp525, tmp520, arg2) ;
} /* end of [if] */
} else {
if (arg0 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 16815(line=602, offs=9) -- 16845(line=602, offs=39)") ; }
tmp531 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp532 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ;
tmp533 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ;
tmp534 = atspre_iadd (tmp515, 1) ;
ats_ptrget_mac(ats_int_type, tmp531) = tmp534 ;
ats_ptrget_mac(ats_ptr_type, tmp532) = arg1 ;
ats_ptrget_mac(ats_ptr_type, tmp533) = arg2 ;
tmp513 = arg0 ;
} /* end of [if] */
return (tmp513) ;
} /* end of [avltree_rjoin_04424_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 17060(line=614, offs=15) -- 17380(line=624, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_join_04444_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp487) ;
ATSlocal (ats_int_type, tmp488) ;
ATSlocal (ats_int_type, tmp489) ;
ATSlocal (ats_bool_type, tmp490) ;

__ats_lab_avltree_join_04444_ats_ptr_type:
tmp488 = avltree_height_04256_ats_ptr_type (arg1) ;
tmp489 = avltree_height_04256_ats_ptr_type (arg2) ;
tmp490 = atspre_igte (tmp488, tmp489) ;
if (tmp490) {
tmp487 = avltree_ljoin_04404_ats_ptr_type (arg0, arg1, arg2) ;
} else {
tmp487 = avltree_rjoin_04424_ats_ptr_type (arg0, arg1, arg2) ;
} /* end of [if] */
return (tmp487) ;
} /* end of [avltree_join_04444_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 17875(line=647, offs=32) -- 19018(line=684, offs=8)
*/
ATSstaticdec()
ats_int_type
avltree_split_at_04455_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4, ats_clo_ref_type arg5) {
/* local vardec */
ATSlocal (ats_int_type, tmp476) ;
ATSlocal (ats_ptr_type, tmp477) ;
ATSlocal (ats_ptr_type, tmp478) ;
ATSlocal (ats_ptr_type, tmp479) ;
ATSlocal (ats_ptr_type, tmp480) ;
ATSlocal (ats_ptr_type, tmp481) ;
ATSlocal (ats_ptr_type, tmp482) ;
ATSlocal (ats_int_type, tmp483) ;
ATSlocal (ats_bool_type, tmp484) ;
ATSlocal (ats_int_type, tmp485) ;
ATSlocal (ats_ptr_type, tmp486) ;
ATSlocal (ats_bool_type, tmp535) ;
ATSlocal (ats_int_type, tmp536) ;
ATSlocal (ats_ptr_type, tmp537) ;
ATSlocal (ats_ptr_type, tmp538) ;
ATSlocal (ats_ptr_type, tmp539) ;

__ats_lab_avltree_split_at_04455_ats_ptr_type:
do {
/* branch: __ats_lab_100 */
__ats_lab_100_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_101_0 ; }
__ats_lab_100_1:
tmp477 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp478 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ;
tmp479 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ;
tmp480 = ats_ptrget_mac(ats_ptr_type, tmp477) ;
tmp481 = ats_ptrget_mac(ats_ptr_type, tmp478) ;
tmp482 = ats_ptrget_mac(ats_ptr_type, tmp479) ;
tmp483 = compare_elt_elt_03802_ats_ptr_type (arg1, tmp480, arg5) ;
tmp484 = atspre_lt_int_int (tmp483, 0) ;
if (tmp484) {
tmp485 = avltree_split_at_04455_ats_ptr_type (tmp481, arg1, arg2, arg3, arg4, arg5) ;
tmp486 = avltree_join_04444_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0), ats_ptrget_mac(ats_ptr_type, arg4), tmp482) ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp486 ;
tmp476 = tmp485 ;
} else {
tmp535 = atspre_gt_int_int (tmp483, 0) ;
if (tmp535) {
tmp536 = avltree_split_at_04455_ats_ptr_type (tmp482, arg1, arg2, arg3, arg4, arg5) ;
tmp537 = avltree_join_04444_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0), tmp481, ats_ptrget_mac(ats_ptr_type, arg3)) ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp537 ;
tmp476 = tmp536 ;
} else {
ats_ptrget_mac(ats_ptr_type, arg2) = ats_castfn_mac(ats_ptr_type, arg0) ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp481 ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp482 ;
tmp476 = 1 ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_101 */
__ats_lab_101_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_101_1:
tmp538 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp538 ;
tmp539 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp539 ;
tmp476 = 0 ;
break ;
} while (0) ;
return (tmp476) ;
} /* end of [avltree_split_at_04455_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 19901(line=728, offs=21) -- 20224(line=744, offs=4)
*/
ATSstaticdec()
ats_void_type
B_node_free_opt_04481_ (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp541) ;
ATSlocal (ats_bool_type, tmp542) ;

__ats_lab_B_node_free_opt_04481_:
tmp542 = atspre_igt (arg1, 0) ;
if (tmp542) {
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
ATS_FREE(arg0) ;
} else {
/* empty */
} /* end of [if] */
return /* (tmp541) */ ;
} /* end of [B_node_free_opt_04481_] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 20348(line=751, offs=7) -- 21139(line=772, offs=8)
*/
ATSstaticdec()
ats_ptr_type
union_69 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp465) ;
ATSlocal (ats_ptr_type, tmp466) ;
ATSlocal (ats_ptr_type, tmp467) ;
ATSlocal (ats_ptr_type, tmp468) ;
ATSlocal (ats_ptr_type, tmp469) ;
ATSlocal (ats_ptr_type, tmp470) ;
ATSlocal (ats_ptr_type, tmp471) ;
ATSlocal (ats_ptr_type, tmp472) ;
ATSlocal (ats_ptr_type, tmp473) ;
ATSlocal (ats_ptr_type, tmp474) ;
ATSlocal (ats_int_type, tmp475) ;
// ATSlocal_void (tmp540) ;
ATSlocal (ats_ptr_type, tmp543) ;
ATSlocal (ats_ptr_type, tmp544) ;

__ats_lab_union_69:
do {
/* branch: __ats_lab_97 */
__ats_lab_97_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_98_0 ; }
__ats_lab_97_1:
__ats_lab_97_2:
tmp465 = arg1 ;
break ;

/* branch: __ats_lab_98 */
__ats_lab_98_0:
__ats_lab_98_1:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_99_1 ; }
__ats_lab_98_2:
tmp465 = arg0 ;
break ;

/* branch: __ats_lab_99 */
__ats_lab_99_0:
__ats_lab_99_1:
__ats_lab_99_2:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp466 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp467 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ;
tmp468 = &ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ;
tmp469 = ats_ptrget_mac(ats_ptr_type, tmp466) ;
tmp470 = ats_ptrget_mac(ats_ptr_type, tmp467) ;
tmp471 = ats_ptrget_mac(ats_ptr_type, tmp468) ;
/* ats_ptr_type tmp472 ; */
/* ats_ptr_type tmp473 ; */
/* ats_ptr_type tmp474 ; */
tmp475 = avltree_split_at_04455_ats_ptr_type (arg1, tmp469, (&tmp472), (&tmp473), (&tmp474), env0) ;
/* tmp540 = */ B_node_free_opt_04481_ (tmp472, tmp475) ;
tmp543 = union_69 (env0, tmp470, tmp473) ;
tmp544 = union_69 (env0, tmp471, tmp474) ;
tmp465 = avltree_join_04444_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0), tmp543, tmp544) ;
break ;
} while (0) ;
return (tmp465) ;
} /* end of [union_69] */

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

ats_ptr_type
union_69_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) {
return union_69 (((union_69_closure_type*)cloptr)->closure_env_0, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
union_69_closure_make (ats_clo_ref_type env0) {
union_69_closure_type *p_clo = ATS_MALLOC(sizeof(union_69_closure_type)) ;
union_69_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: 20303(line=750, offs=3) -- 21177(line=774, offs=2)
*/
ATSstaticdec()
ats_ptr_type
linset_union_03816_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp464) ;

__ats_lab_linset_union_03816_ats_ptr_type:
tmp464 = union_69 (arg2, arg0, arg1) ;
return (tmp464) ;
} /* end of [linset_union_03816_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 8209(line=338, offs=19) -- 8250(line=338, offs=60)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_union (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp463) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_union:
tmp463 = linset_union_03816_ats_ptr_type (arg0, arg1, statmp75) ;
return (tmp463) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_union] */

/*
// /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_77 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp547) ;
ATSlocal (ats_ptr_type, tmp548) ;
ATSlocal (ats_ptr_type, tmp549) ;
// ATSlocal_void (tmp550) ;

__ats_lab_aux_77:
do {
/* branch: __ats_lab_102 */
__ats_lab_102_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_103_0 ; }
__ats_lab_102_1:
tmp548 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ;
tmp549 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ;
ATS_FREE(arg0) ;
/* tmp550 = */ aux_77 (tmp548) ;
arg0 = tmp549 ;
goto __ats_lab_aux_77 ; // tail call
break ;

/* branch: __ats_lab_103 */
__ats_lab_103_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_103_1:
break ;
} while (0) ;
return /* (tmp547) */ ;
} /* end of [aux_77] */

/*
// /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_03810_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp546) ;

__ats_lab_linset_free_03810_ats_ptr_type:
/* tmp546 = */ aux_77 (arg0) ;
return /* (tmp546) */ ;
} /* end of [linset_free_03810_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 8279(line=341, offs=18) -- 8305(line=341, offs=44)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_free (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp545) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_free:
/* tmp545 = */ linset_free_03810_ats_ptr_type (arg0) ;
return /* (tmp545) */ ;
} /* 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_80 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp553) ;
ATSlocal (ats_ptr_type, tmp554) ;
ATSlocal (ats_ptr_type, tmp555) ;
ATSlocal (ats_ptr_type, tmp556) ;
ATSlocal (ats_ptr_type, tmp557) ;
ATSlocal (ats_ptr_type, tmp558) ;

__ats_lab_aux_80:
do {
/* branch: __ats_lab_104 */
__ats_lab_104_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_105_0 ; }
__ats_lab_104_1:
tmp554 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp555 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_2) ;
tmp556 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_3) ;
ATS_FREE(arg0) ;
tmp557 = aux_80 (tmp556, arg1) ;
tmp558 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp558, atslab_0, tmp554) ;
ats_selptrset_mac(anairiats_sum_2, tmp558, atslab_1, tmp557) ;
arg0 = tmp555 ;
arg1 = tmp558 ;
goto __ats_lab_aux_80 ; // tail call
break ;

/* branch: __ats_lab_105 */
__ats_lab_105_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_105_1:
tmp553 = arg1 ;
break ;
} while (0) ;
return (tmp553) ;
} /* end of [aux_80] */

/*
// /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_03828_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp552) ;
ATSlocal (ats_ptr_type, tmp559) ;

__ats_lab_linset_listize_free_03828_ats_ptr_type:
tmp559 = (ats_sum_ptr_type)0 ;
tmp552 = aux_80 (arg0, tmp559) ;
return (tmp552) ;
} /* end of [linset_listize_free_03828_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 8342(line=343, offs=26) -- 8376(line=343, offs=60)
*/
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, tmp551) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_listize_free:
tmp551 = linset_listize_free_03828_ats_ptr_type (arg0) ;
return (tmp551) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_listize_free] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 8582(line=360, offs=1) -- 8667(line=363, offs=35)
*/
ATSstaticdec()
ats_int_type
__ats_fun_81 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp560) ;

__ats_lab___ats_fun_81:
tmp560 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (arg1, arg0) ;
return (tmp560) ;
} /* end of [__ats_fun_81] */

typedef struct {
ats_fun_ptr_type closure_fun ;
} __ats_fun_81_closure_type ;

ats_int_type
__ats_fun_81_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) {
return __ats_fun_81 (arg0, arg1) ;
} /* end of function */

ATSinline()
ats_void_type
__ats_fun_81_closure_init (__ats_fun_81_closure_type *p_clo) {
p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_81_clofun ;
return ;
} /* end of function */

ats_clo_ptr_type
__ats_fun_81_closure_make () {
__ats_fun_81_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_81_closure_type)) ;
__ats_fun_81_closure_init (p_clo) ;
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/funmset_listord.dats: 2250(line=74, offs=18) -- 2266(line=74, offs=34)
*/
ATSstaticdec()
ats_ptr_type
funmset_make_nil_03835_ () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp563) ;

__ats_lab_funmset_make_nil_03835_:
tmp563 = (ats_sum_ptr_type)0 ;
return (tmp563) ;
} /* end of [funmset_make_nil_03835_] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 8754(line=369, offs=15) -- 8784(line=369, offs=45)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp562) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_nil:
tmp562 = funmset_make_nil_03835_ () ;
return (tmp562) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_nil] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 2298(line=76, offs=19) -- 2332(line=76, offs=53)
*/
ATSstaticdec()
ats_ptr_type
funmset_make_sing_03836_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp565) ;
ATSlocal (anairiats_rec_4, tmp566) ;
ATSlocal (ats_ptr_type, tmp567) ;

__ats_lab_funmset_make_sing_03836_ats_ptr_type:
tmp566.atslab_0 = 1 ;
tmp566.atslab_1 = arg0 ;

tmp567 = (ats_sum_ptr_type)0 ;
tmp565 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp565, atslab_0, tmp566) ;
ats_selptrset_mac(anairiats_sum_5, tmp565, atslab_1, tmp567) ;
return (tmp565) ;
} /* end of [funmset_make_sing_03836_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 8810(line=371, offs=16) -- 8842(line=371, offs=48)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_sing (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp564) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_sing:
tmp564 = funmset_make_sing_03836_ats_ptr_type (arg0) ;
return (tmp564) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_sing] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 1928(line=58, offs=32) -- 1956(line=58, offs=60)
*/
ATSstaticdec()
ats_int_type
compare_elt_elt_03834_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp571) ;

__ats_lab_compare_elt_elt_03834_ats_ptr_type:
tmp571 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ;
return (tmp571) ;
} /* end of [compare_elt_elt_03834_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 2367(line=80, offs=3) -- 2710(line=98, offs=4)
*/
ATSstaticdec()
ats_ptr_type
funmset_make_pair_03837_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp569) ;
ATSlocal (ats_int_type, tmp570) ;
ATSlocal (ats_bool_type, tmp572) ;
ATSlocal (anairiats_rec_4, tmp573) ;
ATSlocal (anairiats_rec_4, tmp574) ;
ATSlocal (ats_ptr_type, tmp575) ;
ATSlocal (ats_ptr_type, tmp576) ;
ATSlocal (ats_bool_type, tmp577) ;
ATSlocal (anairiats_rec_4, tmp578) ;
ATSlocal (anairiats_rec_4, tmp579) ;
ATSlocal (ats_ptr_type, tmp580) ;
ATSlocal (ats_ptr_type, tmp581) ;
ATSlocal (anairiats_rec_4, tmp582) ;
ATSlocal (ats_ptr_type, tmp583) ;

__ats_lab_funmset_make_pair_03837_ats_ptr_type:
tmp570 = compare_elt_elt_03834_ats_ptr_type (arg0, arg1, arg2) ;
tmp572 = atspre_gt_int_int (tmp570, 0) ;
if (tmp572) {
tmp573.atslab_0 = 1 ;
tmp573.atslab_1 = arg0 ;

tmp574.atslab_0 = 1 ;
tmp574.atslab_1 = arg1 ;

tmp576 = (ats_sum_ptr_type)0 ;
tmp575 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp575, atslab_0, tmp574) ;
ats_selptrset_mac(anairiats_sum_5, tmp575, atslab_1, tmp576) ;
tmp569 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp569, atslab_0, tmp573) ;
ats_selptrset_mac(anairiats_sum_5, tmp569, atslab_1, tmp575) ;
} else {
tmp577 = atspre_lt_int_int (tmp570, 0) ;
if (tmp577) {
tmp578.atslab_0 = 1 ;
tmp578.atslab_1 = arg0 ;

tmp579.atslab_0 = 1 ;
tmp579.atslab_1 = arg1 ;

tmp581 = (ats_sum_ptr_type)0 ;
tmp580 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp580, atslab_0, tmp578) ;
ats_selptrset_mac(anairiats_sum_5, tmp580, atslab_1, tmp581) ;
tmp569 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp569, atslab_0, tmp579) ;
ats_selptrset_mac(anairiats_sum_5, tmp569, atslab_1, tmp580) ;
} else {
tmp582.atslab_0 = 2 ;
tmp582.atslab_1 = arg0 ;

tmp583 = (ats_sum_ptr_type)0 ;
tmp569 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp569, atslab_0, tmp582) ;
ats_selptrset_mac(anairiats_sum_5, tmp569, atslab_1, tmp583) ;
} /* end of [if] */
} /* end of [if] */
return (tmp569) ;
} /* end of [funmset_make_pair_03837_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 8871(line=374, offs=3) -- 8919(line=374, offs=51)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_pair (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp568) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_pair:
tmp568 = funmset_make_pair_03837_ats_ptr_type (arg0, arg1, statmp561) ;
return (tmp568) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_pair] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 10230(line=419, offs=5) -- 10916(line=444, offs=2)
*/
ATSstaticdec()
ats_int_type
aux_91 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp587) ;
ATSlocal (anairiats_rec_4, tmp588) ;
ATSlocal (ats_ptr_type, tmp589) ;
ATSlocal (anairiats_rec_4, tmp590) ;
ATSlocal (ats_ptr_type, tmp591) ;
ATSlocal (ats_int_type, tmp592) ;
ATSlocal (ats_ptr_type, tmp593) ;
ATSlocal (ats_ptr_type, tmp594) ;
ATSlocal (ats_bool_type, tmp595) ;
ATSlocal (ats_bool_type, tmp596) ;
ATSlocal (ats_int_type, tmp597) ;
ATSlocal (ats_int_type, tmp598) ;
ATSlocal (ats_bool_type, tmp599) ;
ATSlocal (ats_bool_type, tmp600) ;

__ats_lab_aux_91:
do {
/* branch: __ats_lab_106 */
__ats_lab_106_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_109_0 ; }
__ats_lab_106_1:
tmp588 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp589 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
do {
/* branch: __ats_lab_107 */
__ats_lab_107_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_108_0 ; }
__ats_lab_107_1:
tmp590 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ;
tmp591 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ;
tmp593 = ats_select_mac(tmp588, atslab_1) ;
tmp594 = ats_select_mac(tmp590, atslab_1) ;
tmp592 = compare_elt_elt_03834_ats_ptr_type (tmp593, tmp594, env0) ;
tmp595 = atspre_gt_int_int (tmp592, 0) ;
if (tmp595) {
tmp587 = 1 ;
} else {
tmp596 = atspre_lt_int_int (tmp592, 0) ;
if (tmp596) {
tmp587 = -1 ;
} else {
tmp597 = ats_select_mac(tmp588, atslab_0) ;
tmp598 = ats_select_mac(tmp590, atslab_0) ;
tmp599 = atspre_gt_int_int (tmp597, tmp598) ;
if (tmp599) {
tmp587 = 1 ;
} else {
tmp600 = atspre_lt_int_int (tmp597, tmp598) ;
if (tmp600) {
tmp587 = -1 ;
} else {
arg0 = tmp589 ;
arg1 = tmp591 ;
goto __ats_lab_aux_91 ; // tail call
} /* end of [if] */
} /* end of [if] */
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_108 */
__ats_lab_108_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_108_1:
tmp587 = 1 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_109 */
__ats_lab_109_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_109_1:
do {
/* branch: __ats_lab_110 */
__ats_lab_110_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_111_0 ; }
__ats_lab_110_1:
tmp587 = -1 ;
break ;

/* branch: __ats_lab_111 */
__ats_lab_111_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_111_1:
tmp587 = 0 ;
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp587) ;
} /* end of [aux_91] */

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

ats_int_type
aux_91_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) {
return aux_91 (((aux_91_closure_type*)cloptr)->closure_env_0, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
aux_91_closure_make (ats_clo_ref_type env0) {
aux_91_closure_type *p_clo = ATS_MALLOC(sizeof(aux_91_closure_type)) ;
aux_91_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/funmset_listord.dats: 10174(line=415, offs=3) -- 10961(line=448, offs=4)
*/
ATSstaticdec()
ats_int_type
funmset_compare_03849_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp586) ;

__ats_lab_funmset_compare_03849_ats_ptr_type:
tmp586 = aux_91 (arg2, arg0, arg1) ;
return (tmp586) ;
} /* end of [funmset_compare_03849_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 8974(line=379, offs=3) -- 9031(line=380, offs=45)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_gte (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp584) ;
ATSlocal (ats_int_type, tmp585) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_gte:
tmp585 = funmset_compare_03849_ats_ptr_type (arg0, arg1, statmp561) ;
tmp584 = atspre_gte_int_int (tmp585, 0) ;
return (tmp584) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_gte] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 9454(line=386, offs=5) -- 10046(line=405, offs=2)
*/
ATSstaticdec()
ats_bool_type
aux_94 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp603) ;
ATSlocal (anairiats_rec_4, tmp604) ;
ATSlocal (ats_ptr_type, tmp605) ;
ATSlocal (anairiats_rec_4, tmp606) ;
ATSlocal (ats_ptr_type, tmp607) ;
ATSlocal (ats_int_type, tmp608) ;
ATSlocal (ats_ptr_type, tmp609) ;
ATSlocal (ats_ptr_type, tmp610) ;
ATSlocal (ats_bool_type, tmp611) ;
ATSlocal (ats_bool_type, tmp612) ;
ATSlocal (ats_int_type, tmp613) ;
ATSlocal (ats_int_type, tmp614) ;

__ats_lab_aux_94:
do {
/* branch: __ats_lab_112 */
__ats_lab_112_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_115_0 ; }
__ats_lab_112_1:
tmp604 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp605 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
do {
/* branch: __ats_lab_113 */
__ats_lab_113_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_114_0 ; }
__ats_lab_113_1:
tmp606 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ;
tmp607 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ;
tmp609 = ats_select_mac(tmp604, atslab_1) ;
tmp610 = ats_select_mac(tmp606, atslab_1) ;
tmp608 = compare_elt_elt_03834_ats_ptr_type (tmp609, tmp610, env0) ;
tmp611 = atspre_eq_int_int (tmp608, 0) ;
if (tmp611) {
tmp613 = ats_select_mac(tmp604, atslab_0) ;
tmp614 = ats_select_mac(tmp606, atslab_0) ;
tmp612 = atspre_eq_int_int (tmp613, tmp614) ;
if (tmp612) {
arg0 = tmp605 ;
arg1 = tmp607 ;
goto __ats_lab_aux_94 ; // tail call
} else {
tmp603 = ats_false_bool ;
} /* end of [if] */
} else {
tmp603 = ats_false_bool ;
} /* end of [if] */
break ;

/* branch: __ats_lab_114 */
__ats_lab_114_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_114_1:
tmp603 = ats_false_bool ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_115 */
__ats_lab_115_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_115_1:
do {
/* branch: __ats_lab_116 */
__ats_lab_116_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_117_0 ; }
__ats_lab_116_1:
tmp603 = ats_false_bool ;
break ;

/* branch: __ats_lab_117 */
__ats_lab_117_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_117_1:
tmp603 = ats_true_bool ;
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp603) ;
} /* end of [aux_94] */

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

ats_bool_type
aux_94_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) {
return aux_94 (((aux_94_closure_type*)cloptr)->closure_env_0, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
aux_94_closure_make (ats_clo_ref_type env0) {
aux_94_closure_type *p_clo = ATS_MALLOC(sizeof(aux_94_closure_type)) ;
aux_94_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/funmset_listord.dats: 9401(line=383, offs=3) -- 10091(line=409, offs=4)
*/
ATSstaticdec()
ats_bool_type
funmset_is_equal_03848_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp602) ;

__ats_lab_funmset_is_equal_03848_ats_ptr_type:
tmp602 = aux_94 (arg2, arg0, arg1) ;
return (tmp602) ;
} /* end of [funmset_is_equal_03848_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 9090(line=385, offs=3) -- 9141(line=385, offs=54)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_is_equal (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp601) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_is_equal:
tmp601 = funmset_is_equal_03848_ats_ptr_type (arg0, arg1, statmp561) ;
return (tmp601) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_is_equal] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 5472(line=215, offs=5) -- 5963(line=231, offs=49)
*/
ATSstaticdec()
ats_ptr_type
aux_97 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp619) ;
ATSlocal (anairiats_rec_4, tmp620) ;
ATSlocal (ats_ptr_type, tmp621) ;
ATSlocal (ats_int_type, tmp622) ;
ATSlocal (ats_ptr_type, tmp623) ;
ATSlocal (ats_bool_type, tmp624) ;
ATSlocal (anairiats_rec_4, tmp625) ;
ATSlocal (ats_bool_type, tmp626) ;
ATSlocal (ats_ptr_type, tmp627) ;
ATSlocal (anairiats_rec_4, tmp628) ;
ATSlocal (ats_int_type, tmp629) ;
ATSlocal (ats_int_type, tmp630) ;
ATSlocal (ats_ptr_type, tmp631) ;
ATSlocal (anairiats_rec_4, tmp632) ;
ATSlocal (ats_ptr_type, tmp633) ;

__ats_lab_aux_97:
do {
/* branch: __ats_lab_118 */
__ats_lab_118_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_119_0 ; }
__ats_lab_118_1:
tmp620 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp621 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp623 = ats_select_mac(tmp620, atslab_1) ;
tmp622 = compare_elt_elt_03834_ats_ptr_type (env0, tmp623, env1) ;
tmp624 = atspre_gt_int_int (tmp622, 0) ;
if (tmp624) {
tmp625.atslab_0 = 1 ;
tmp625.atslab_1 = env0 ;

tmp619 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp619, atslab_0, tmp625) ;
ats_selptrset_mac(anairiats_sum_5, tmp619, atslab_1, arg0) ;
} else {
tmp626 = atspre_lt_int_int (tmp622, 0) ;
if (tmp626) {
tmp627 = aux_97 (env0, env1, tmp621) ;
tmp619 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp619, atslab_0, tmp620) ;
ats_selptrset_mac(anairiats_sum_5, tmp619, atslab_1, tmp627) ;
} else {
tmp630 = ats_select_mac(tmp620, atslab_0) ;
tmp629 = atspre_iadd (tmp630, 1) ;
tmp631 = ats_select_mac(tmp620, atslab_1) ;
tmp628.atslab_0 = tmp629 ;
tmp628.atslab_1 = tmp631 ;

tmp619 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp619, atslab_0, tmp628) ;
ats_selptrset_mac(anairiats_sum_5, tmp619, atslab_1, tmp621) ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_119 */
__ats_lab_119_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_119_1:
tmp632.atslab_0 = 1 ;
tmp632.atslab_1 = env0 ;

tmp633 = (ats_sum_ptr_type)0 ;
tmp619 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp619, atslab_0, tmp632) ;
ats_selptrset_mac(anairiats_sum_5, tmp619, atslab_1, tmp633) ;
break ;
} while (0) ;
return (tmp619) ;
} /* end of [aux_97] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
ats_clo_ref_type closure_env_1 ;
} aux_97_closure_type ;

ats_ptr_type
aux_97_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
return aux_97 (((aux_97_closure_type*)cloptr)->closure_env_0, ((aux_97_closure_type*)cloptr)->closure_env_1, arg0) ;
} /* end of function */

ATSinline()
ats_void_type
aux_97_closure_init (aux_97_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) {
p_clo->closure_fun = (ats_fun_ptr_type)&aux_97_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
return ;
} /* end of function */

ats_clo_ptr_type
aux_97_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
aux_97_closure_type *p_clo = ATS_MALLOC(sizeof(aux_97_closure_type)) ;
aux_97_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/funmset_listord.dats: 5418(line=211, offs=3) -- 6008(line=236, offs=4)
*/
ATSstaticdec()
ats_void_type
funmset_insert_03843_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
// ATSlocal_void (tmp618) ;
ATSlocal (ats_ptr_type, tmp634) ;

__ats_lab_funmset_insert_03843_ats_ptr_type:
tmp634 = aux_97 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp634 ;
return /* (tmp618) */ ;
} /* end of [funmset_insert_03843_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 9200(line=390, offs=3) -- 9281(line=393, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_add (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp615) ;
ATSlocal (ats_ptr_type, tmp616) ;
// ATSlocal_void (tmp617) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_add:
/* ats_ptr_type tmp616 ; */
tmp616 = arg0 ;
/* tmp617 = */ funmset_insert_03843_ats_ptr_type ((&tmp616), arg1, statmp561) ;
tmp615 = tmp616 ;
return (tmp615) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_add] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 6142(line=246, offs=5) -- 6742(line=266, offs=31)
*/
ATSstaticdec()
ats_ptr_type
aux_100 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp639) ;
ATSlocal (anairiats_rec_4, tmp640) ;
ATSlocal (ats_ptr_type, tmp641) ;
ATSlocal (ats_int_type, tmp642) ;
ATSlocal (ats_ptr_type, tmp643) ;
ATSlocal (ats_bool_type, tmp644) ;
ATSlocal (ats_bool_type, tmp645) ;
ATSlocal (ats_int_type, tmp646) ;
ATSlocal (ats_ptr_type, tmp647) ;
ATSlocal (ats_bool_type, tmp648) ;
ATSlocal (ats_int_type, tmp649) ;
ATSlocal (ats_int_type, tmp650) ;
ATSlocal (ats_int_type, tmp651) ;
ATSlocal (ats_bool_type, tmp652) ;
ATSlocal (anairiats_rec_4, tmp653) ;
ATSlocal (ats_ptr_type, tmp654) ;

__ats_lab_aux_100:
do {
/* branch: __ats_lab_120 */
__ats_lab_120_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_121_0 ; }
__ats_lab_120_1:
tmp640 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp641 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp643 = ats_select_mac(tmp640, atslab_1) ;
tmp642 = compare_elt_elt_03834_ats_ptr_type (env0, tmp643, env1) ;
tmp644 = atspre_gt_int_int (tmp642, 0) ;
if (tmp644) {
tmp639 = arg0 ;
} else {
tmp645 = atspre_lt_int_int (tmp642, 0) ;
if (tmp645) {
tmp646 = ats_ptrget_mac(ats_int_type, arg1) ;
tmp647 = aux_100 (env0, env1, tmp641, arg1) ;
tmp648 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg1), tmp646) ;
if (tmp648) {
tmp639 = arg0 ;
} else {
tmp639 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp639, atslab_0, tmp640) ;
ats_selptrset_mac(anairiats_sum_5, tmp639, atslab_1, tmp647) ;
} /* end of [if] */
} else {
tmp650 = ats_select_mac(tmp640, atslab_0) ;
tmp649 = atspre_isub (tmp650, 1) ;
tmp651 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg1), 1) ;
ats_ptrget_mac(ats_int_type, arg1) = tmp651 ;
tmp652 = atspre_igt (tmp649, 0) ;
if (tmp652) {
tmp654 = ats_select_mac(tmp640, atslab_1) ;
tmp653.atslab_0 = tmp649 ;
tmp653.atslab_1 = tmp654 ;

tmp639 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp639, atslab_0, tmp653) ;
ats_selptrset_mac(anairiats_sum_5, tmp639, atslab_1, tmp641) ;
} else {
tmp639 = tmp641 ;
} /* end of [if] */
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_121 */
__ats_lab_121_0:
if (arg0 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 6220(line=249, offs=3) -- 6742(line=266, offs=31)") ; }
__ats_lab_121_1:
tmp639 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp639) ;
} /* end of [aux_100] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
ats_clo_ref_type closure_env_1 ;
} aux_100_closure_type ;

ats_ptr_type
aux_100_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) {
return aux_100 (((aux_100_closure_type*)cloptr)->closure_env_0, ((aux_100_closure_type*)cloptr)->closure_env_1, arg0, arg1) ;
} /* end of function */

ATSinline()
ats_void_type
aux_100_closure_init (aux_100_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) {
p_clo->closure_fun = (ats_fun_ptr_type)&aux_100_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
return ;
} /* end of function */

ats_clo_ptr_type
aux_100_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
aux_100_closure_type *p_clo = ATS_MALLOC(sizeof(aux_100_closure_type)) ;
aux_100_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/funmset_listord.dats: 6088(line=242, offs=3) -- 6856(line=274, offs=4)
*/
ATSstaticdec()
ats_bool_type
funmset_remove_03844_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp638) ;
ATSlocal (ats_int_type, tmp655) ;
ATSlocal (ats_ptr_type, tmp656) ;
ATSlocal (ats_bool_type, tmp657) ;

__ats_lab_funmset_remove_03844_ats_ptr_type:
/* ats_int_type tmp655 ; */
tmp655 = 0 ;
tmp656 = aux_100 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp655)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp656 ;
tmp657 = atspre_gt_int_int (tmp655, 0) ;
if (tmp657) {
tmp638 = ats_true_bool ;
} else {
tmp638 = ats_false_bool ;
} /* end of [if] */
return (tmp638) ;
} /* end of [funmset_remove_03844_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 9335(line=397, offs=3) -- 9426(line=400, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_del (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp635) ;
ATSlocal (ats_ptr_type, tmp636) ;
ATSlocal (ats_bool_type, tmp637) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_del:
/* ats_ptr_type tmp636 ; */
tmp636 = arg0 ;
tmp637 = funmset_remove_03844_ats_ptr_type ((&tmp636), arg1, statmp561) ;
tmp635 = tmp636 ;
return (tmp635) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_del] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 6992(line=284, offs=5) -- 7658(line=305, offs=32)
*/
ATSstaticdec()
ats_ptr_type
aux_103 (ats_clo_ref_type env0, ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp660) ;
ATSlocal (anairiats_rec_4, tmp661) ;
ATSlocal (ats_ptr_type, tmp662) ;
ATSlocal (anairiats_rec_4, tmp663) ;
ATSlocal (ats_ptr_type, tmp664) ;
ATSlocal (ats_int_type, tmp665) ;
ATSlocal (ats_ptr_type, tmp666) ;
ATSlocal (ats_ptr_type, tmp667) ;
ATSlocal (ats_bool_type, tmp668) ;
ATSlocal (ats_ptr_type, tmp669) ;
ATSlocal (ats_bool_type, tmp670) ;
ATSlocal (ats_ptr_type, tmp671) ;
ATSlocal (anairiats_rec_4, tmp672) ;
ATSlocal (ats_int_type, tmp673) ;
ATSlocal (ats_int_type, tmp674) ;
ATSlocal (ats_int_type, tmp675) ;
ATSlocal (ats_ptr_type, tmp676) ;
ATSlocal (ats_ptr_type, tmp677) ;

__ats_lab_aux_103:
do {
/* branch: __ats_lab_122 */
__ats_lab_122_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_125_0 ; }
__ats_lab_122_1:
tmp661 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp662 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
do {
/* branch: __ats_lab_123 */
__ats_lab_123_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_124_0 ; }
__ats_lab_123_1:
tmp663 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ;
tmp664 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_1) ;
tmp666 = ats_select_mac(tmp661, atslab_1) ;
tmp667 = ats_select_mac(tmp663, atslab_1) ;
tmp665 = compare_elt_elt_03834_ats_ptr_type (tmp666, tmp667, env0) ;
tmp668 = atspre_gt_int_int (tmp665, 0) ;
if (tmp668) {
tmp669 = aux_103 (env0, tmp662, arg1) ;
tmp660 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp660, atslab_0, tmp661) ;
ats_selptrset_mac(anairiats_sum_5, tmp660, atslab_1, tmp669) ;
} else {
tmp670 = atspre_lt_int_int (tmp665, 0) ;
if (tmp670) {
tmp671 = aux_103 (env0, arg0, tmp664) ;
tmp660 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp660, atslab_0, tmp663) ;
ats_selptrset_mac(anairiats_sum_5, tmp660, atslab_1, tmp671) ;
} else {
tmp674 = ats_select_mac(tmp661, atslab_0) ;
tmp675 = ats_select_mac(tmp663, atslab_0) ;
tmp673 = atspre_iadd (tmp674, tmp675) ;
tmp676 = ats_select_mac(tmp661, atslab_1) ;
tmp672.atslab_0 = tmp673 ;
tmp672.atslab_1 = tmp676 ;

tmp677 = aux_103 (env0, tmp662, tmp664) ;
tmp660 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp660, atslab_0, tmp672) ;
ats_selptrset_mac(anairiats_sum_5, tmp660, atslab_1, tmp677) ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_124 */
__ats_lab_124_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_124_1:
tmp660 = arg0 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_125 */
__ats_lab_125_0:
if (arg0 != (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 7089(line=287, offs=3) -- 7658(line=305, offs=32)") ; }
__ats_lab_125_1:
tmp660 = arg1 ;
break ;
} while (0) ;
return (tmp660) ;
} /* end of [aux_103] */

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

ats_ptr_type
aux_103_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) {
return aux_103 (((aux_103_closure_type*)cloptr)->closure_env_0, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
aux_103_closure_make (ats_clo_ref_type env0) {
aux_103_closure_type *p_clo = ATS_MALLOC(sizeof(aux_103_closure_type)) ;
aux_103_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/funmset_listord.dats: 6935(line=280, offs=3) -- 7687(line=309, offs=4)
*/
ATSstaticdec()
ats_ptr_type
funmset_union_03845_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp659) ;

__ats_lab_funmset_union_03845_ats_ptr_type:
tmp659 = aux_103 (arg2, arg0, arg1) ;
return (tmp659) ;
} /* end of [funmset_union_03845_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 9482(line=404, offs=3) -- 9530(line=404, offs=51)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_union (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp658) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_union:
tmp658 = funmset_union_03845_ats_ptr_type (arg0, arg1, statmp561) ;
return (tmp658) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_union] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_108 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp682) ;
ATSlocal (anairiats_rec_4, tmp683) ;
ATSlocal (ats_ptr_type, tmp684) ;
ATSlocal (ats_ptr_type, tmp685) ;
ATSlocal (ats_ptr_type, tmp686) ;
ATSlocal (ats_ptr_type, tmp687) ;
ATSlocal (ats_ptr_type, tmp688) ;

__ats_lab_loop_108:
do {
/* branch: __ats_lab_126 */
__ats_lab_126_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_127_0 ; }
__ats_lab_126_1:
tmp683 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp684 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp685 = ((ats_ptr_type(*)(anairiats_rec_4, ats_ptr_type))arg1) (tmp683, arg3) ;
tmp686 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp686, atslab_0, tmp685) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp686 ;
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp687 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
arg0 = tmp684 ;
arg1 = arg1 ;
arg2 = tmp687 ;
arg3 = arg3 ;
goto __ats_lab_loop_108 ; // tail call
break ;

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

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

__ats_lab_list_map_funenv_01412_anairiats_rec_4_ats_ptr_type:
/* ats_ptr_type tmp689 ; */
/* tmp690 = */ loop_108 (arg0, arg1, (&tmp689), arg2) ;
tmp681 = tmp689 ;
return (tmp681) ;
} /* end of [list_map_funenv_01412_anairiats_rec_4_ats_ptr_type] */

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

__ats_lab_list_map_fun_01413_anairiats_rec_4_ats_ptr_type:
tmp680 = list_map_funenv_01412_anairiats_rec_4_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ;
return (tmp680) ;
} /* end of [list_map_fun_01413_anairiats_rec_4_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 11194(line=459, offs=29) -- 11212(line=459, offs=47)
*/
ATSstaticdec()
ats_ptr_type
__ats_fun_109 (anairiats_rec_4 arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp691) ;

__ats_lab___ats_fun_109:
tmp691 = ats_select_mac(arg0, atslab_1) ;
return (tmp691) ;
} /* end of [__ats_fun_109] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 11094(line=455, offs=17) -- 11217(line=460, offs=4)
*/
ATSstaticdec()
ats_ptr_type
funmset_listize_03850_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp679) ;

__ats_lab_funmset_listize_03850_ats_ptr_type:
tmp679 = list_map_fun_01413_anairiats_rec_4_ats_ptr_type (arg0, &__ats_fun_109) ;
return (tmp679) ;
} /* end of [funmset_listize_03850_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 9588(line=408, offs=19) -- 9620(line=408, offs=51)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_listize (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp678) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_listize:
tmp678 = funmset_listize_03850_ats_ptr_type (arg0) ;
return (tmp678) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varmset_listize] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 11426(line=470, offs=7) -- 11630(line=476, offs=42)
*/
ATSstaticdec()
ats_void_type
loop1_112 (ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
// ATSlocal_void (tmp713) ;

/* tmp713 = */ loop1_112_0loop2_113 (0, arg0, arg1) ;
return /* (tmp713) */ ;
} /* end of [loop1_112] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 11660(line=478, offs=7) -- 12034(line=491, offs=23)
*/
ATSstaticdec()
ats_void_type
loop2_113 (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) {
/* local vardec */
// ATSlocal_void (tmp714) ;

/* tmp714 = */ loop1_112_0loop2_113 (1, arg0, arg1, arg2, arg3) ;
return /* (tmp714) */ ;
} /* end of [loop2_113] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 11426(line=470, offs=7) -- 12034(line=491, offs=23)
*/
ATSstaticdec()
ats_void_type
loop1_112_0loop2_113 (ats_int_type arg0, ...) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp695) ;
ATSlocal (ats_ref_type, tmp696) ;
ATSlocal (ats_int_type, tmp697) ;
ATSlocal (ats_ptr_type, tmp698) ;
ATSlocal (ats_ptr_type, tmp699) ;
ATSlocal (ats_ref_type, tmp700) ;
// ATSlocal_void (tmp701) ;
ATSlocal (anairiats_rec_4, tmp702) ;
ATSlocal (ats_ptr_type, tmp703) ;
ATSlocal (ats_int_type, tmp704) ;
ATSlocal (ats_ptr_type, tmp705) ;
ATSlocal (ats_ptr_type, tmp706) ;
// ATSlocal_void (tmp707) ;
ATSlocal (ats_bool_type, tmp708) ;
ATSlocal (ats_ptr_type, tmp709) ;
ATSlocal (ats_ptr_type, tmp710) ;
ATSlocal (ats_int_type, tmp711) ;
// ATSlocal_void (tmp712) ;

va_list funarg ;

switch (arg0) {
case 0:
va_start(funarg, arg0) ;
tmp695 = va_arg(funarg, ats_ptr_type) ;
tmp696 = va_arg(funarg, ats_ref_type) ;
va_end(funarg) ;
goto __ats_lab_loop1_112 ;

case 1:
va_start(funarg, arg0) ;
tmp697 = va_arg(funarg, ats_int_type) ;
tmp698 = va_arg(funarg, ats_ptr_type) ;
tmp699 = va_arg(funarg, ats_ptr_type) ;
tmp700 = va_arg(funarg, ats_ref_type) ;
va_end(funarg) ;
goto __ats_lab_loop2_113 ;

default: exit(1) ; /* deadcode */
} /* end of switch */

ATSlocal (va_list, arg1) ;
va_start(arg1, arg0) ;

__ats_lab_loop1_112:
do {
/* branch: __ats_lab_128 */
__ats_lab_128_0:
if (tmp695 == (ats_sum_ptr_type)0) { goto __ats_lab_129_0 ; }
__ats_lab_128_1:
tmp702 = ats_caselptrlab_mac(anairiats_sum_5, tmp695, atslab_0) ;
tmp703 = ats_caselptrlab_mac(anairiats_sum_5, tmp695, atslab_1) ;
tmp704 = ats_select_mac(tmp702, atslab_0) ;
tmp705 = ats_select_mac(tmp702, atslab_1) ;
tmp697 = tmp704 ;
tmp698 = tmp705 ;
tmp699 = tmp703 ;
tmp700 = tmp696 ;
goto __ats_lab_loop2_113 ; // tail call
break ;

/* branch: __ats_lab_129 */
__ats_lab_129_0:
// if (tmp695 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_129_1:
tmp706 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, tmp696) = tmp706 ;
break ;
} while (0) ;
return /* tmp701 */ ;

__ats_lab_loop2_113:
tmp708 = atspre_igt (tmp697, 0) ;
if (tmp708) {
tmp709 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp709, atslab_0, tmp698) ;
ats_ptrget_mac(ats_ptr_type, tmp700) = tmp709 ;
if (ats_ptrget_mac(ats_ptr_type, tmp700) == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 11872(line=485, offs=11) -- 11902(line=485, offs=41)") ; }
tmp710 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, tmp700), atslab_1) ;
tmp711 = atspre_isub (tmp697, 1) ;
tmp697 = tmp711 ;
tmp698 = tmp698 ;
tmp699 = tmp699 ;
tmp700 = tmp710 ;
goto __ats_lab_loop2_113 ; // tail call
} else {
tmp695 = tmp699 ;
tmp696 = tmp700 ;
goto __ats_lab_loop1_112 ; // tail call
} /* end of [if] */
return /* tmp707 */ ;

return /* (tmp712) */ ;
} /* end of [loop1_112_0loop2_113] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmset_listord.dats: 11351(line=467, offs=18) -- 12149(line=498, offs=4)
*/
ATSstaticdec()
ats_ptr_type
funmset_mlistize_03851_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp694) ;
ATSlocal (ats_ptr_type, tmp715) ;
// ATSlocal_void (tmp716) ;

__ats_lab_funmset_mlistize_03851_ats_ptr_type:
/* ats_ptr_type tmp715 ; */
/* tmp716 = */ loop1_112 (arg0, (&tmp715)) ;
tmp694 = tmp715 ;
return (tmp694) ;
} /* end of [funmset_mlistize_03851_ats_ptr_type] */

/*
// /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_116 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp719) ;
ATSlocal (ats_ptr_type, tmp720) ;

__ats_lab_loop_116:
do {
/* branch: __ats_lab_130 */
__ats_lab_130_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_131_0 ; }
__ats_lab_130_1:
tmp720 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ;
ATS_FREE(arg0) ;
arg0 = tmp720 ;
goto __ats_lab_loop_116 ; // tail call
break ;

/* branch: __ats_lab_131 */
__ats_lab_131_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_131_1:
break ;
} while (0) ;
return /* (tmp719) */ ;
} /* end of [loop_116] */

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

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

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 9652(line=412, offs=3) -- 9814(line=419, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varmset (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp692) ;
ATSlocal (ats_ptr_type, tmp693) ;
// ATSlocal_void (tmp717) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varmset:
tmp693 = funmset_mlistize_03851_ats_ptr_type (arg1) ;
/* tmp717 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varlst (arg0, ats_castfn_mac(ats_ptr_type, tmp693)) ;
/* tmp692 = */ list_vt_free_01499_ats_ptr_type (tmp693) ;
return /* (tmp692) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2varmset] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 10001(line=433, offs=1) -- 10086(line=436, offs=35)
*/
ATSstaticdec()
ats_int_type
__ats_fun_117 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp721) ;

__ats_lab___ats_fun_117:
tmp721 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var (arg0, arg1) ;
return (tmp721) ;
} /* end of [__ats_fun_117] */

typedef struct {
ats_fun_ptr_type closure_fun ;
} __ats_fun_117_closure_type ;

ats_int_type
__ats_fun_117_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) {
return __ats_fun_117 (arg0, arg1) ;
} /* end of function */

ATSinline()
ats_void_type
__ats_fun_117_closure_init (__ats_fun_117_closure_type *p_clo) {
p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_117_clofun ;
return ;
} /* end of function */

ats_clo_ptr_type
__ats_fun_117_closure_make () {
__ats_fun_117_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_117_closure_type)) ;
__ats_fun_117_closure_init (p_clo) ;
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/linmap_avltree.dats: 3005(line=103, offs=29) -- 3014(line=103, offs=38)
*/
ATSstaticdec()
ats_ptr_type
linmap_make_nil_03853_ () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp724) ;

__ats_lab_linmap_make_nil_03853_:
tmp724 = (ats_sum_ptr_type)0 ;
return (tmp724) ;
} /* end of [linmap_make_nil_03853_] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 10214(line=446, offs=3) -- 10250(line=446, offs=39)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_make_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp723) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_make_nil:
tmp723 = linmap_make_nil_03853_ () ;
return (tmp723) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_make_nil] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 2008(line=61, offs=17) -- 2036(line=61, offs=45)
*/
ATSstaticdec()
ats_int_type
compare_key_key_03852_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp737) ;

__ats_lab_compare_key_key_03852_ats_ptr_type:
tmp737 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ;
return (tmp737) ;
} /* end of [compare_key_key_03852_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4545(line=168, offs=7) -- 5110(line=188, offs=6)
*/
ATSstaticdec()
ats_ptr_type
search_123 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp731) ;
ATSlocal (ats_ptr_type, tmp732) ;
ATSlocal (ats_ptr_type, tmp733) ;
ATSlocal (ats_ptr_type, tmp734) ;
ATSlocal (ats_ptr_type, tmp735) ;
ATSlocal (ats_int_type, tmp736) ;
ATSlocal (ats_bool_type, tmp738) ;
ATSlocal (ats_ptr_type, tmp739) ;
ATSlocal (ats_bool_type, tmp740) ;
ATSlocal (ats_ptr_type, tmp741) ;

__ats_lab_search_123:
do {
/* branch: __ats_lab_132 */
__ats_lab_132_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_136_0 ; }
__ats_lab_132_1:
tmp732 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp733 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp734 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp735 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ;
tmp736 = compare_key_key_03852_ats_ptr_type (env0, tmp732, env1) ;
do {
/* branch: __ats_lab_133 */
__ats_lab_133_0:
__ats_lab_133_1:
tmp738 = atspre_lt_int_int (tmp736, 0) ;
if (!tmp738) { goto __ats_lab_134_1 ; }
tmp739 = ats_ptrget_mac(ats_ptr_type, tmp734) ;
arg0 = tmp739 ;
goto __ats_lab_search_123 ; // tail call
break ;

/* branch: __ats_lab_134 */
__ats_lab_134_0:
__ats_lab_134_1:
tmp740 = atspre_gt_int_int (tmp736, 0) ;
if (!tmp740) { goto __ats_lab_135_1 ; }
tmp741 = ats_ptrget_mac(ats_ptr_type, tmp735) ;
arg0 = tmp741 ;
goto __ats_lab_search_123 ; // tail call
break ;

/* branch: __ats_lab_135 */
__ats_lab_135_0:
__ats_lab_135_1:
tmp731 = tmp733 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_136 */
__ats_lab_136_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_136_1:
tmp731 = atspre_null_ptr ;
break ;
} while (0) ;
return (tmp731) ;
} /* end of [search_123] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
ats_clo_ref_type closure_env_1 ;
} search_123_closure_type ;

ats_ptr_type
search_123_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
return search_123 (((search_123_closure_type*)cloptr)->closure_env_0, ((search_123_closure_type*)cloptr)->closure_env_1, arg0) ;
} /* end of function */

ATSinline()
ats_void_type
search_123_closure_init (search_123_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) {
p_clo->closure_fun = (ats_fun_ptr_type)&search_123_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
return ;
} /* end of function */

ats_clo_ptr_type
search_123_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
search_123_closure_type *p_clo = ATS_MALLOC(sizeof(search_123_closure_type)) ;
search_123_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/linmap_avltree.dats: 4505(line=167, offs=3) -- 5131(line=189, offs=2)
*/
ATSstaticdec()
ats_ptr_type
linmap_search_ref_03859_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp730) ;

__ats_lab_linmap_search_ref_03859_ats_ptr_type_2cats_ptr_type:
tmp730 = search_123 (arg1, arg2, arg0) ;
return (tmp730) ;
} /* end of [linmap_search_ref_03859_ats_ptr_type_2cats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4021(line=145, offs=3) -- 4437(line=162, offs=4)
*/
ATSstaticdec()
ats_bool_type
linmap_search_03858_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) {
/* local vardec */
ATSlocal (ats_bool_type, tmp728) ;
ATSlocal (ats_ptr_type, tmp729) ;
ATSlocal (ats_bool_type, tmp742) ;
ATSlocal (ats_ptr_type, tmp743) ;

__ats_lab_linmap_search_03858_ats_ptr_type_2cats_ptr_type:
tmp729 = linmap_search_ref_03859_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2) ;
tmp742 = atspre_pgt (tmp729, atspre_null_ptr) ;
if (tmp742) {
tmp743 = ats_ptrget_mac(ats_ptr_type, tmp729) ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp743 ;
tmp728 = ats_true_bool ;
} else {
tmp728 = ats_false_bool ;
} /* end of [if] */
return (tmp728) ;
} /* end of [linmap_search_03858_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 10286(line=450, offs=3) -- 10670(line=472, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_search (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp725) ;
ATSlocal (ats_ptr_type, tmp726) ;
ATSlocal (ats_bool_type, tmp727) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_search:
/* ats_ptr_type tmp726 ; */
tmp727 = linmap_search_03858_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp722, (&tmp726)) ;
if (tmp727) {
tmp725 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
ats_selptrset_mac(anairiats_sum_7, tmp725, atslab_0, tmp726) ;
} else {
tmp725 = (ats_sum_ptr_type)0 ;
} /* end of [if] */
return (tmp725) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_search] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 3769(line=134, offs=24) -- 3876(line=135, offs=69)
*/
ATSstaticdec()
ats_int_type
avltree_height_04847_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp760) ;
ATSlocal (ats_int_type, tmp761) ;

__ats_lab_avltree_height_04847_ats_ptr_type_2cats_ptr_type:
do {
/* branch: __ats_lab_138 */
__ats_lab_138_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_139_0 ; }
__ats_lab_138_1:
tmp761 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp760 = tmp761 ;
break ;

/* branch: __ats_lab_139 */
__ats_lab_139_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_139_1:
tmp760 = 0 ;
break ;
} while (0) ;
return (tmp760) ;
} /* end of [avltree_height_04847_ats_ptr_type_2cats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 7405(line=276, offs=32) -- 8902(line=325, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_rrotate_04900_ats_ptr_type_2cats_ptr_type (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, tmp770) ;
ATSlocal (ats_ptr_type, tmp771) ;
ATSlocal (ats_ptr_type, tmp772) ;
ATSlocal (ats_ptr_type, tmp773) ;
ATSlocal (ats_ptr_type, tmp774) ;
ATSlocal (ats_int_type, tmp775) ;
ATSlocal (ats_ptr_type, tmp776) ;
ATSlocal (ats_int_type, tmp777) ;
ATSlocal (ats_ptr_type, tmp778) ;
ATSlocal (ats_bool_type, tmp779) ;
ATSlocal (ats_int_type, tmp780) ;
ATSlocal (ats_int_type, tmp781) ;
ATSlocal (ats_ptr_type, tmp782) ;
ATSlocal (ats_int_type, tmp783) ;
ATSlocal (ats_int_type, tmp784) ;
ATSlocal (ats_ptr_type, tmp785) ;
ATSlocal (ats_ptr_type, tmp786) ;
ATSlocal (ats_ptr_type, tmp787) ;
ATSlocal (ats_ptr_type, tmp788) ;
ATSlocal (ats_int_type, tmp789) ;
ATSlocal (ats_ptr_type, tmp790) ;
ATSlocal (ats_int_type, tmp791) ;
ATSlocal (ats_ptr_type, tmp792) ;
ATSlocal (ats_int_type, tmp793) ;
ATSlocal (ats_int_type, tmp794) ;
ATSlocal (ats_ptr_type, tmp795) ;
ATSlocal (ats_int_type, tmp796) ;
ATSlocal (ats_int_type, tmp797) ;
ATSlocal (ats_ptr_type, tmp798) ;

__ats_lab_avltree_rrotate_04900_ats_ptr_type_2cats_ptr_type:
tmp771 = ats_ptrget_mac(ats_ptr_type, arg2) ;
// if (tmp771 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp772 = &ats_caselptrlab_mac(anairiats_sum_6, tmp771, atslab_0) ;
tmp773 = &ats_caselptrlab_mac(anairiats_sum_6, tmp771, atslab_3) ;
tmp774 = &ats_caselptrlab_mac(anairiats_sum_6, tmp771, atslab_4) ;
tmp776 = ats_ptrget_mac(ats_ptr_type, tmp773) ;
tmp775 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp776) ;
tmp778 = ats_ptrget_mac(ats_ptr_type, tmp774) ;
tmp777 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp778) ;
tmp780 = atspre_iadd (tmp775, 0) ;
tmp779 = atspre_igte (tmp780, tmp777) ;
if (tmp779) {
tmp781 = atspre_iadd (tmp777, 1) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp781 ;
tmp782 = ats_ptrget_mac(ats_ptr_type, tmp774) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp782 ;
tmp784 = atspre_imax (tmp775, tmp781) ;
tmp783 = atspre_iadd (1, tmp784) ;
ats_ptrget_mac(ats_int_type, tmp772) = tmp783 ;
ats_ptrget_mac(ats_ptr_type, tmp774) = arg5 ;
tmp770 = tmp771 ;
} else {
tmp785 = ats_ptrget_mac(ats_ptr_type, tmp774) ;
// if (tmp785 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp786 = &ats_caselptrlab_mac(anairiats_sum_6, tmp785, atslab_0) ;
tmp787 = &ats_caselptrlab_mac(anairiats_sum_6, tmp785, atslab_3) ;
tmp788 = &ats_caselptrlab_mac(anairiats_sum_6, tmp785, atslab_4) ;
tmp790 = ats_ptrget_mac(ats_ptr_type, tmp787) ;
tmp789 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp790) ;
tmp792 = ats_ptrget_mac(ats_ptr_type, tmp788) ;
tmp791 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp792) ;
tmp794 = atspre_imax (tmp791, arg3) ;
tmp793 = atspre_iadd (1, tmp794) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp793 ;
tmp795 = ats_ptrget_mac(ats_ptr_type, tmp788) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp795 ;
tmp797 = atspre_imax (tmp775, tmp789) ;
tmp796 = atspre_iadd (1, tmp797) ;
ats_ptrget_mac(ats_int_type, tmp772) = tmp796 ;
tmp798 = ats_ptrget_mac(ats_ptr_type, tmp787) ;
ats_ptrget_mac(ats_ptr_type, tmp774) = tmp798 ;
ats_ptrget_mac(ats_int_type, tmp786) = arg1 ;
ats_ptrget_mac(ats_ptr_type, tmp787) = tmp771 ;
ats_ptrget_mac(ats_ptr_type, tmp788) = arg5 ;
tmp770 = tmp785 ;
} /* end of [if] */
return (tmp770) ;
} /* end of [avltree_rrotate_04900_ats_ptr_type_2cats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 5694(line=219, offs=32) -- 7221(line=268, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_lrotate_04875_ats_ptr_type_2cats_ptr_type (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, tmp810) ;
ATSlocal (ats_ptr_type, tmp811) ;
ATSlocal (ats_ptr_type, tmp812) ;
ATSlocal (ats_ptr_type, tmp813) ;
ATSlocal (ats_ptr_type, tmp814) ;
ATSlocal (ats_int_type, tmp815) ;
ATSlocal (ats_ptr_type, tmp816) ;
ATSlocal (ats_int_type, tmp817) ;
ATSlocal (ats_ptr_type, tmp818) ;
ATSlocal (ats_bool_type, tmp819) ;
ATSlocal (ats_int_type, tmp820) ;
ATSlocal (ats_int_type, tmp821) ;
ATSlocal (ats_ptr_type, tmp822) ;
ATSlocal (ats_int_type, tmp823) ;
ATSlocal (ats_int_type, tmp824) ;
ATSlocal (ats_ptr_type, tmp825) ;
ATSlocal (ats_ptr_type, tmp826) ;
ATSlocal (ats_ptr_type, tmp827) ;
ATSlocal (ats_ptr_type, tmp828) ;
ATSlocal (ats_int_type, tmp829) ;
ATSlocal (ats_ptr_type, tmp830) ;
ATSlocal (ats_int_type, tmp831) ;
ATSlocal (ats_ptr_type, tmp832) ;
ATSlocal (ats_int_type, tmp833) ;
ATSlocal (ats_int_type, tmp834) ;
ATSlocal (ats_ptr_type, tmp835) ;
ATSlocal (ats_int_type, tmp836) ;
ATSlocal (ats_int_type, tmp837) ;
ATSlocal (ats_ptr_type, tmp838) ;

__ats_lab_avltree_lrotate_04875_ats_ptr_type_2cats_ptr_type:
tmp811 = ats_ptrget_mac(ats_ptr_type, arg4) ;
// if (tmp811 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp812 = &ats_caselptrlab_mac(anairiats_sum_6, tmp811, atslab_0) ;
tmp813 = &ats_caselptrlab_mac(anairiats_sum_6, tmp811, atslab_3) ;
tmp814 = &ats_caselptrlab_mac(anairiats_sum_6, tmp811, atslab_4) ;
tmp816 = ats_ptrget_mac(ats_ptr_type, tmp813) ;
tmp815 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp816) ;
tmp818 = ats_ptrget_mac(ats_ptr_type, tmp814) ;
tmp817 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp818) ;
tmp820 = atspre_iadd (tmp817, 0) ;
tmp819 = atspre_ilte (tmp815, tmp820) ;
if (tmp819) {
tmp821 = atspre_iadd (tmp815, 1) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp821 ;
tmp822 = ats_ptrget_mac(ats_ptr_type, tmp813) ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp822 ;
tmp824 = atspre_imax (tmp821, tmp817) ;
tmp823 = atspre_iadd (1, tmp824) ;
ats_ptrget_mac(ats_int_type, tmp812) = tmp823 ;
ats_ptrget_mac(ats_ptr_type, tmp813) = arg5 ;
tmp810 = tmp811 ;
} else {
tmp825 = ats_ptrget_mac(ats_ptr_type, tmp813) ;
// if (tmp825 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp826 = &ats_caselptrlab_mac(anairiats_sum_6, tmp825, atslab_0) ;
tmp827 = &ats_caselptrlab_mac(anairiats_sum_6, tmp825, atslab_3) ;
tmp828 = &ats_caselptrlab_mac(anairiats_sum_6, tmp825, atslab_4) ;
tmp830 = ats_ptrget_mac(ats_ptr_type, tmp827) ;
tmp829 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp830) ;
tmp832 = ats_ptrget_mac(ats_ptr_type, tmp828) ;
tmp831 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp832) ;
tmp834 = atspre_imax (arg1, tmp829) ;
tmp833 = atspre_iadd (1, tmp834) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp833 ;
tmp835 = ats_ptrget_mac(ats_ptr_type, tmp827) ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp835 ;
tmp837 = atspre_imax (tmp831, tmp817) ;
tmp836 = atspre_iadd (1, tmp837) ;
ats_ptrget_mac(ats_int_type, tmp812) = tmp836 ;
tmp838 = ats_ptrget_mac(ats_ptr_type, tmp828) ;
ats_ptrget_mac(ats_ptr_type, tmp813) = tmp838 ;
ats_ptrget_mac(ats_int_type, tmp826) = arg3 ;
ats_ptrget_mac(ats_ptr_type, tmp827) = arg5 ;
ats_ptrget_mac(ats_ptr_type, tmp828) = tmp811 ;
tmp810 = tmp825 ;
} /* end of [if] */
return (tmp810) ;
} /* end of [avltree_lrotate_04875_ats_ptr_type_2cats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 9023(line=333, offs=5) -- 11023(line=394, offs=4)
*/
ATSstaticdec()
ats_bool_type
insert_127 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp749) ;
ATSlocal (ats_ptr_type, tmp750) ;
ATSlocal (ats_ptr_type, tmp751) ;
ATSlocal (ats_ptr_type, tmp752) ;
ATSlocal (ats_ptr_type, tmp753) ;
ATSlocal (ats_ptr_type, tmp754) ;
ATSlocal (ats_int_type, tmp755) ;
ATSlocal (ats_ptr_type, tmp756) ;
ATSlocal (ats_bool_type, tmp757) ;
ATSlocal (ats_bool_type, tmp758) ;
ATSlocal (ats_int_type, tmp759) ;
ATSlocal (ats_ptr_type, tmp762) ;
ATSlocal (ats_int_type, tmp763) ;
ATSlocal (ats_ptr_type, tmp764) ;
ATSlocal (ats_bool_type, tmp765) ;
ATSlocal (ats_int_type, tmp766) ;
ATSlocal (ats_int_type, tmp767) ;
ATSlocal (ats_int_type, tmp768) ;
ATSlocal (ats_ptr_type, tmp769) ;
ATSlocal (ats_bool_type, tmp799) ;
ATSlocal (ats_bool_type, tmp800) ;
ATSlocal (ats_int_type, tmp801) ;
ATSlocal (ats_ptr_type, tmp802) ;
ATSlocal (ats_int_type, tmp803) ;
ATSlocal (ats_ptr_type, tmp804) ;
ATSlocal (ats_bool_type, tmp805) ;
ATSlocal (ats_int_type, tmp806) ;
ATSlocal (ats_int_type, tmp807) ;
ATSlocal (ats_int_type, tmp808) ;
ATSlocal (ats_ptr_type, tmp809) ;
ATSlocal (ats_ptr_type, tmp839) ;
ATSlocal (ats_ptr_type, tmp840) ;
ATSlocal (ats_ptr_type, tmp841) ;
ATSlocal (ats_ptr_type, tmp842) ;

__ats_lab_insert_127:
do {
/* branch: __ats_lab_137 */
__ats_lab_137_0:
if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_140_0 ; }
__ats_lab_137_1:
tmp750 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp751 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ;
tmp752 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ;
tmp753 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ;
tmp754 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ;
tmp756 = ats_ptrget_mac(ats_ptr_type, tmp751) ;
tmp755 = compare_key_key_03852_ats_ptr_type (env0, tmp756, env1) ;
tmp757 = atspre_lt_int_int (tmp755, 0) ;
if (tmp757) {
tmp758 = insert_127 (env0, env1, tmp753, arg1, arg2) ;
tmp762 = ats_ptrget_mac(ats_ptr_type, tmp753) ;
tmp759 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp762) ;
tmp764 = ats_ptrget_mac(ats_ptr_type, tmp754) ;
tmp763 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp764) ;
tmp766 = atspre_isub (tmp759, tmp763) ;
tmp765 = atspre_ilte (tmp766, 1) ;
if (tmp765) {
tmp768 = atspre_imax (tmp759, tmp763) ;
tmp767 = atspre_iadd (1, tmp768) ;
ats_ptrget_mac(ats_int_type, tmp750) = tmp767 ;
tmp749 = tmp758 ;
} else {
tmp769 = avltree_rrotate_04900_ats_ptr_type_2cats_ptr_type (tmp750, tmp759, tmp753, tmp763, tmp754, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp769 ;
tmp749 = tmp758 ;
} /* end of [if] */
} else {
tmp799 = atspre_gt_int_int (tmp755, 0) ;
if (tmp799) {
tmp800 = insert_127 (env0, env1, tmp754, arg1, arg2) ;
tmp802 = ats_ptrget_mac(ats_ptr_type, tmp753) ;
tmp801 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp802) ;
tmp804 = ats_ptrget_mac(ats_ptr_type, tmp754) ;
tmp803 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp804) ;
tmp806 = atspre_isub (tmp803, tmp801) ;
tmp805 = atspre_ilte (tmp806, 1) ;
if (tmp805) {
tmp808 = atspre_imax (tmp801, tmp803) ;
tmp807 = atspre_iadd (1, tmp808) ;
ats_ptrget_mac(ats_int_type, tmp750) = tmp807 ;
tmp749 = tmp800 ;
} else {
tmp809 = avltree_lrotate_04875_ats_ptr_type_2cats_ptr_type (tmp750, tmp801, tmp753, tmp803, tmp754, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp809 ;
tmp749 = tmp800 ;
} /* end of [if] */
} else {
tmp839 = ats_ptrget_mac(ats_ptr_type, tmp752) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp839 ;
ats_ptrget_mac(ats_ptr_type, tmp752) = arg1 ;
tmp749 = ats_true_bool ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_140 */
__ats_lab_140_0:
// if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_140_1:
tmp841 = (ats_sum_ptr_type)0 ;
tmp842 = (ats_sum_ptr_type)0 ;
tmp840 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp840, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_6, tmp840, atslab_1, env0) ;
ats_selptrset_mac(anairiats_sum_6, tmp840, atslab_2, arg1) ;
ats_selptrset_mac(anairiats_sum_6, tmp840, atslab_3, tmp841) ;
ats_selptrset_mac(anairiats_sum_6, tmp840, atslab_4, tmp842) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp840 ;
tmp749 = ats_false_bool ;
break ;
} while (0) ;
return (tmp749) ;
} /* end of [insert_127] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
ats_clo_ref_type closure_env_1 ;
} insert_127_closure_type ;

ats_bool_type
insert_127_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
return insert_127 (((insert_127_closure_type*)cloptr)->closure_env_0, ((insert_127_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2) ;
} /* end of function */

ATSinline()
ats_void_type
insert_127_closure_init (insert_127_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) {
p_clo->closure_fun = (ats_fun_ptr_type)&insert_127_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
return ;
} /* end of function */

ats_clo_ptr_type
insert_127_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
insert_127_closure_type *p_clo = ATS_MALLOC(sizeof(insert_127_closure_type)) ;
insert_127_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/linmap_avltree.dats: 8988(line=331, offs=3) -- 11078(line=400, offs=4)
*/
ATSstaticdec()
ats_bool_type
linmap_insert_03861_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3, ats_ref_type arg4) {
/* local vardec */
ATSlocal (ats_bool_type, tmp748) ;

__ats_lab_linmap_insert_03861_ats_ptr_type_2cats_ptr_type:
tmp748 = insert_127 (arg1, arg3, arg0, arg2, arg4) ;
return (tmp748) ;
} /* end of [linmap_insert_03861_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 10741(line=476, offs=3) -- 11070(line=496, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_insert (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp744) ;
ATSlocal (ats_ptr_type, tmp745) ;
ATSlocal (ats_ptr_type, tmp746) ;
ATSlocal (ats_bool_type, tmp747) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_insert:
tmp745 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ;
/* ats_ptr_type tmp746 ; */
tmp747 = linmap_insert_03861_ats_ptr_type_2cats_ptr_type (arg0, arg1, tmp745, statmp722, (&tmp746)) ;
return /* (tmp744) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_insert] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 11578(line=417, offs=35) -- 12629(line=451, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_takeout_min_04951_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp879) ;
ATSlocal (ats_ptr_type, tmp880) ;
ATSlocal (ats_ptr_type, tmp881) ;
ATSlocal (ats_ptr_type, tmp882) ;
ATSlocal (ats_ptr_type, tmp883) ;
ATSlocal (ats_ptr_type, tmp884) ;
ATSlocal (ats_int_type, tmp885) ;
ATSlocal (ats_ptr_type, tmp886) ;
ATSlocal (ats_int_type, tmp887) ;
ATSlocal (ats_ptr_type, tmp888) ;
ATSlocal (ats_bool_type, tmp889) ;
ATSlocal (ats_int_type, tmp890) ;
ATSlocal (ats_int_type, tmp891) ;
ATSlocal (ats_int_type, tmp892) ;
ATSlocal (ats_ptr_type, tmp893) ;
ATSlocal (ats_ptr_type, tmp894) ;
ATSlocal (ats_ptr_type, tmp895) ;

__ats_lab_avltree_takeout_min_04951_ats_ptr_type_2cats_ptr_type:
// if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp880 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp881 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ;
tmp882 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ;
tmp883 = ats_ptrget_mac(ats_ptr_type, tmp881) ;
do {
/* branch: __ats_lab_146 */
__ats_lab_146_0:
if (tmp883 == (ats_sum_ptr_type)0) { goto __ats_lab_147_0 ; }
__ats_lab_146_1:
tmp884 = avltree_takeout_min_04951_ats_ptr_type_2cats_ptr_type (tmp881) ;
tmp886 = ats_ptrget_mac(ats_ptr_type, tmp881) ;
tmp885 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp886) ;
tmp888 = ats_ptrget_mac(ats_ptr_type, tmp882) ;
tmp887 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp888) ;
tmp890 = atspre_isub (tmp887, tmp885) ;
tmp889 = atspre_ilte (tmp890, 1) ;
if (tmp889) {
tmp892 = atspre_imax (tmp885, tmp887) ;
tmp891 = atspre_iadd (1, tmp892) ;
ats_ptrget_mac(ats_int_type, tmp880) = tmp891 ;
tmp879 = tmp884 ;
} else {
tmp893 = avltree_lrotate_04875_ats_ptr_type_2cats_ptr_type (tmp880, tmp885, tmp881, tmp887, tmp882, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp893 ;
tmp879 = tmp884 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_147 */
__ats_lab_147_0:
// if (tmp883 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_147_1:
tmp894 = ats_ptrget_mac(ats_ptr_type, tmp882) ;
tmp895 = ats_ptrget_mac(ats_ptr_type, arg0) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp894 ;
tmp879 = ats_castfn_mac(ats_ptr_type, tmp895) ;
break ;
} while (0) ;
return (tmp879) ;
} /* end of [avltree_takeout_min_04951_ats_ptr_type_2cats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 13012(line=467, offs=7) -- 16649(line=558, offs=6)
*/
ATSstaticdec()
ats_bool_type
takeout_134 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp847) ;
ATSlocal (ats_ptr_type, tmp848) ;
ATSlocal (ats_ptr_type, tmp849) ;
ATSlocal (ats_ptr_type, tmp850) ;
ATSlocal (ats_ptr_type, tmp851) ;
ATSlocal (ats_ptr_type, tmp852) ;
ATSlocal (ats_int_type, tmp853) ;
ATSlocal (ats_ptr_type, tmp854) ;
ATSlocal (ats_bool_type, tmp855) ;
ATSlocal (ats_bool_type, tmp856) ;
ATSlocal (ats_int_type, tmp857) ;
ATSlocal (ats_ptr_type, tmp858) ;
ATSlocal (ats_int_type, tmp859) ;
ATSlocal (ats_ptr_type, tmp860) ;
ATSlocal (ats_bool_type, tmp861) ;
ATSlocal (ats_int_type, tmp862) ;
ATSlocal (ats_ptr_type, tmp863) ;
ATSlocal (ats_bool_type, tmp864) ;
ATSlocal (ats_bool_type, tmp865) ;
ATSlocal (ats_int_type, tmp866) ;
ATSlocal (ats_ptr_type, tmp867) ;
ATSlocal (ats_int_type, tmp868) ;
ATSlocal (ats_ptr_type, tmp869) ;
ATSlocal (ats_bool_type, tmp870) ;
ATSlocal (ats_int_type, tmp871) ;
ATSlocal (ats_ptr_type, tmp872) ;
ATSlocal (ats_bool_type, tmp874) ;
ATSlocal (ats_ptr_type, tmp875) ;
ATSlocal (ats_ptr_type, tmp876) ;
ATSlocal (ats_ptr_type, tmp877) ;
ATSlocal (ats_ptr_type, tmp878) ;
ATSlocal (ats_ptr_type, tmp896) ;
ATSlocal (ats_ptr_type, tmp897) ;
ATSlocal (ats_ptr_type, tmp898) ;
ATSlocal (ats_int_type, tmp899) ;
ATSlocal (ats_int_type, tmp900) ;
ATSlocal (ats_bool_type, tmp901) ;
ATSlocal (ats_int_type, tmp902) ;
ATSlocal (ats_int_type, tmp903) ;
ATSlocal (ats_int_type, tmp904) ;
ATSlocal (ats_ptr_type, tmp905) ;

__ats_lab_takeout_134:
do {
/* branch: __ats_lab_141 */
__ats_lab_141_0:
if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_149_0 ; }
__ats_lab_141_1:
tmp848 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp849 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ;
tmp850 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ;
tmp851 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ;
tmp852 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ;
tmp854 = ats_ptrget_mac(ats_ptr_type, tmp849) ;
tmp853 = compare_key_key_03852_ats_ptr_type (env0, tmp854, env1) ;
do {
/* branch: __ats_lab_142 */
__ats_lab_142_0:
__ats_lab_142_1:
tmp855 = atspre_lt_int_int (tmp853, 0) ;
if (!tmp855) { goto __ats_lab_143_1 ; }
tmp856 = takeout_134 (env0, env1, tmp851, arg1) ;
tmp858 = ats_ptrget_mac(ats_ptr_type, tmp851) ;
tmp857 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp858) ;
tmp860 = ats_ptrget_mac(ats_ptr_type, tmp852) ;
tmp859 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp860) ;
tmp862 = atspre_isub (tmp859, tmp857) ;
tmp861 = atspre_ilte (tmp862, 1) ;
if (tmp861) {
tmp847 = tmp856 ;
} else {
tmp863 = avltree_lrotate_04875_ats_ptr_type_2cats_ptr_type (tmp848, tmp857, tmp851, tmp859, tmp852, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp863 ;
tmp847 = tmp856 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_143 */
__ats_lab_143_0:
__ats_lab_143_1:
tmp864 = atspre_gt_int_int (tmp853, 0) ;
if (!tmp864) { goto __ats_lab_144_1 ; }
tmp865 = takeout_134 (env0, env1, tmp852, arg1) ;
tmp867 = ats_ptrget_mac(ats_ptr_type, tmp851) ;
tmp866 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp867) ;
tmp869 = ats_ptrget_mac(ats_ptr_type, tmp852) ;
tmp868 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp869) ;
tmp871 = atspre_isub (tmp866, tmp868) ;
tmp870 = atspre_ilte (tmp871, 1) ;
if (tmp870) {
tmp847 = tmp865 ;
} else {
tmp872 = avltree_rrotate_04900_ats_ptr_type_2cats_ptr_type (tmp848, tmp866, tmp851, tmp868, tmp852, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp872 ;
tmp847 = tmp865 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_144 */
__ats_lab_144_0:
__ats_lab_144_1:
tmp874 = atspre_pgt (arg1, atspre_null_ptr) ;
if (tmp874) {
tmp875 = ats_ptrget_mac(ats_ptr_type, tmp850) ;
ats_ptrget_mac(ats_ptr_type, arg1) = tmp875 ;
} else {
/* empty */
} /* end of [if] */
/* ats_ptr_type tmp876 ; */
tmp876 = ats_ptrget_mac(ats_ptr_type, tmp851) ;
/* ats_ptr_type tmp877 ; */
tmp877 = ats_ptrget_mac(ats_ptr_type, tmp852) ;
ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ;
do {
/* branch: __ats_lab_145 */
__ats_lab_145_0:
if (tmp877 == (ats_sum_ptr_type)0) { goto __ats_lab_148_0 ; }
__ats_lab_145_1:
tmp878 = avltree_takeout_min_04951_ats_ptr_type_2cats_ptr_type ((&tmp877)) ;
if (tmp878 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 15639(line=535, offs=21) -- 15683(line=535, offs=65)") ; }
tmp896 = &ats_caselptrlab_mac(anairiats_sum_6, tmp878, atslab_0) ;
tmp897 = &ats_caselptrlab_mac(anairiats_sum_6, tmp878, atslab_3) ;
tmp898 = &ats_caselptrlab_mac(anairiats_sum_6, tmp878, atslab_4) ;
tmp899 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp876) ;
tmp900 = avltree_height_04847_ats_ptr_type_2cats_ptr_type (tmp877) ;
ats_ptrget_mac(ats_ptr_type, tmp897) = tmp876 ;
ats_ptrget_mac(ats_ptr_type, tmp898) = tmp877 ;
tmp902 = atspre_isub (tmp899, tmp900) ;
tmp901 = atspre_ilte (tmp902, 1) ;
if (tmp901) {
tmp904 = atspre_imax (tmp899, tmp900) ;
tmp903 = atspre_iadd (1, tmp904) ;
ats_ptrget_mac(ats_int_type, tmp896) = tmp903 ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp878 ;
tmp847 = ats_true_bool ;
} else {
tmp905 = avltree_rrotate_04900_ats_ptr_type_2cats_ptr_type (tmp896, tmp899, tmp897, tmp900, tmp898, tmp878) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp905 ;
tmp847 = ats_true_bool ;
} /* end of [if] */
break ;

/* branch: __ats_lab_148 */
__ats_lab_148_0:
// if (tmp877 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_148_1:
ats_ptrget_mac(ats_ptr_type, arg0) = tmp876 ;
tmp847 = ats_true_bool ;
break ;
} while (0) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_149 */
__ats_lab_149_0:
// if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_149_1:
tmp847 = ats_false_bool ;
break ;
} while (0) ;
return (tmp847) ;
} /* end of [takeout_134] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
ats_clo_ref_type closure_env_1 ;
} takeout_134_closure_type ;

ats_bool_type
takeout_134_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) {
return takeout_134 (((takeout_134_closure_type*)cloptr)->closure_env_0, ((takeout_134_closure_type*)cloptr)->closure_env_1, arg0, arg1) ;
} /* end of function */

ATSinline()
ats_void_type
takeout_134_closure_init (takeout_134_closure_type *p_clo, ats_ptr_type env0, ats_clo_ref_type env1) {
p_clo->closure_fun = (ats_fun_ptr_type)&takeout_134_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
return ;
} /* end of function */

ats_clo_ptr_type
takeout_134_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
takeout_134_closure_type *p_clo = ATS_MALLOC(sizeof(takeout_134_closure_type)) ;
takeout_134_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/linmap_avltree.dats: 12957(line=466, offs=3) -- 16671(line=559, offs=2)
*/
ATSstaticdec()
ats_bool_type
linmap_takeout_ptr_03876_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_bool_type, tmp846) ;

__ats_lab_linmap_takeout_ptr_03876_ats_ptr_type_2cats_ptr_type:
tmp846 = takeout_134 (arg1, arg2, arg0, arg3) ;
return (tmp846) ;
} /* end of [linmap_takeout_ptr_03876_ats_ptr_type_2cats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 17132(line=576, offs=15) -- 17193(line=576, offs=76)
*/
ATSstaticdec()
ats_bool_type
linmap_remove_03863_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp845) ;

__ats_lab_linmap_remove_03863_ats_ptr_type_2cats_ptr_type:
tmp845 = linmap_takeout_ptr_03876_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, atspre_null_ptr) ;
return (tmp845) ;
} /* end of [linmap_remove_03863_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 11138(line=500, offs=3) -- 11240(line=504, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_remove (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp843) ;
ATSlocal (ats_bool_type, tmp844) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_remove:
tmp844 = linmap_remove_03863_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp722) ;
return /* (tmp843) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_remove] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 21260(line=724, offs=7) -- 21616(line=736, offs=31)
*/
ATSstaticdec()
ats_ptr_type
aux_138 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp908) ;
ATSlocal (ats_ptr_type, tmp909) ;
ATSlocal (ats_ptr_type, tmp910) ;
ATSlocal (ats_ptr_type, tmp911) ;
ATSlocal (ats_ptr_type, tmp912) ;
ATSlocal (ats_ptr_type, tmp913) ;
ATSlocal (ats_ptr_type, tmp914) ;
ATSlocal (ats_ptr_type, tmp915) ;
ATSlocal (anairiats_rec_8, tmp916) ;
ATSlocal (ats_ptr_type, tmp917) ;

__ats_lab_aux_138:
do {
/* branch: __ats_lab_150 */
__ats_lab_150_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_151_0 ; }
__ats_lab_150_1:
tmp909 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp910 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp911 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp912 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ;
tmp914 = ats_ptrget_mac(ats_ptr_type, tmp912) ;
tmp913 = aux_138 (tmp914, arg1) ;
tmp916.atslab_0 = tmp909 ;
tmp916.atslab_1 = tmp910 ;

tmp915 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp915, atslab_0, tmp916) ;
ats_selptrset_mac(anairiats_sum_9, tmp915, atslab_1, tmp913) ;
tmp917 = ats_ptrget_mac(ats_ptr_type, tmp911) ;
arg0 = tmp917 ;
arg1 = tmp915 ;
goto __ats_lab_aux_138 ; // tail call
break ;

/* branch: __ats_lab_151 */
__ats_lab_151_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_151_1:
tmp908 = arg1 ;
break ;
} while (0) ;
return (tmp908) ;
} /* end of [aux_138] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 21202(line=722, offs=16) -- 21664(line=740, offs=4)
*/
ATSstaticdec()
ats_ptr_type
linmap_listize_03872_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp907) ;
ATSlocal (ats_ptr_type, tmp918) ;

__ats_lab_linmap_listize_03872_ats_ptr_type_2cats_ptr_type:
tmp918 = (ats_sum_ptr_type)0 ;
tmp907 = aux_138 (arg0, tmp918) ;
return (tmp907) ;
} /* end of [linmap_listize_03872_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_svar.dats: 11307(line=507, offs=22) -- 11352(line=507, offs=67)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_listize (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp906) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_listize:
tmp906 = linmap_listize_03872_ats_ptr_type_2cats_ptr_type (arg0) ;
return (tmp906) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varbindmap_listize] */

/* 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_symbol_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 _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_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_2SATS_2linset_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_2DATS_2linset_avltree_2edats__staload (void) ;
extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funmset_listord_2esats__staload (void) ;
extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funmset_listord_2edats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linmap_avltree_2esats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_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_symbol_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ;
ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload () ;
// ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload () ;
ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload () ;
// ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload () ;
ATS_2d0_2e2_2e12_2libats_2SATS_2funmset_listord_2esats__staload () ;
ATS_2d0_2e2_2e12_2libats_2DATS_2funmset_listord_2edats__staload () ;
// ATS_2d0_2e2_2e12_2libats_2SATS_2linmap_avltree_2esats__staload () ;
// ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__staload () ;

return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_svar_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)) ;
ATS_GC_MARKROOT(&statmp75, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp561, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp722, sizeof(ats_ptr_type)) ;

/* marking external values for GC */

/* code for dynamic loading */
statmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_counter_2esats__counter_make () ;
statmp75 = __ats_fun_29_closure_make () ;
statmp561 = __ats_fun_81_closure_make () ;
statmp722 = __ats_fun_117_closure_make () ;
return ;
} /* end of [dynload function] */

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

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

/* end of [pats_staexp2_svar_dats.c] */
