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

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

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

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

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

typedef struct {
int tag ;
ats_ptr_type atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_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 ;
} anairiats_sum_3 ;

typedef
struct {
ats_ptr_type atslab_s2cst_sym ;
ats_ptr_type atslab_s2cst_loc ;
ats_ptr_type atslab_s2cst_fil ;
ats_ptr_type atslab_s2cst_srt ;
ats_ptr_type atslab_s2cst_def ;
ats_ptr_type atslab_s2cst_pack ;
ats_ptr_type atslab_s2cst_isabs ;
ats_bool_type atslab_s2cst_iscon ;
ats_bool_type atslab_s2cst_isrec ;
ats_ptr_type atslab_s2cst_isasp ;
ats_ptr_type atslab_s2cst_iscpy ;
ats_ptr_type atslab_s2cst_islst ;
ats_ptr_type atslab_s2cst_arylst ;
ats_ptr_type atslab_s2cst_argsrtss ;
ats_ptr_type atslab_s2cst_dconlst ;
ats_ptr_type atslab_s2cst_sup ;
ats_ptr_type atslab_s2cst_supcls ;
ats_ptr_type atslab_s2cst_sVarset ;
ats_int_type atslab_s2cst_dstag ;
ats_int_type atslab_s2cst_stamp ;
ats_ptr_type atslab_s2cst_extdef ;
} anairiats_rec_4 ;

typedef struct {
ats_ptr_type atslab_0 ;
} anairiats_sum_5 ;

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

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

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

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_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__None_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__SCSTEXTDEFnone_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2RTfun_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__B_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__E_1) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__B_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__E_1) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__B_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__E_1) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_neq_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ;
ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_uint_type, atspre_add_uint_uint) (ats_uint_type, ats_uint_type) ;
ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_ilte) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_ieq) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_ineq) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_imax) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_llint_type, atspre_llint_of_int) (ats_int_type) ;
ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ;
ATSextern_fun(ats_size_type, atspre_size_of_int1) (ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_add_size_int) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_add_size_size) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_size_type, atspre_max_size_size) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_sub_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_size_type, atspre_mul_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, ats_malloc_gc) (ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_ref_make_view_ptr) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_char_type, atspre_string_get_char_at) (ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_char_type, atspre_string_get_char_at__intsz) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, atspre_string_copy) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ;
ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ;
ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ;
ATSextern_val(ats_ptr_type, atspre_stropt_none) ;
ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_tostringf) (ats_ptr_type, ...) ;
ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ;
ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_type) ;
ATSextern_fun(ats_size_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_cap) (ats_ref_type) ;
ATSextern_fun(ats_size_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_size) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_empty) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_empty) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_full) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_full) (ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_initialize_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_uninitialize) (ats_ref_type) ;
ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_uninitialize_vt) (ats_ref_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_takeout_tsz) (ats_ref_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_insert_end_many_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_remove_beg_many_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_void_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_clear_all) (ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_copyout_tsz) (ats_ref_type, ats_size_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_update_capacity_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_get) () ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2cst_stamp_make) () ;
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_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_fun) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin_fun) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind_fun) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm_fun) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_bool_type, ats_bool_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_def) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_iscon) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sup) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_supcls) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_stamp) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_def) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_abstr) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_listlike) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_singular) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_linear) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil) () ;
ATSextern_fun(ats_void_type, patsopts2cst_set_isabs) (ats_ptr_type, ats_ptr_type) ;

/* external dynamic terminating constant declarations */
#ifdef _ATS_PROOFCHECK
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__lemma_deque_param_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_encode_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_decode_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_clear_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_insert_beg_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_insert_end_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_remove_beg_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_remove_end_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ;
extern
ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ;
#endif /* _ATS_PROOFCHECK */

/* assuming abstract types */
int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2cstmap_type_type = 0 ;
int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2cstset_vtype = 0 ;
int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2cstset_type = 0 ;
int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__sasp__s2cst_type = 0 ;

/* sum constructor declarations */
/* exn constructor declarations */
/* global dynamic (non-functional) constant declarations */
/* internal function declarations */
static
ats_int_type loop_2 (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_int_type list_length_01410_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type s2rt_get_arylst_0 (ats_ptr_type arg0) ;
static
ats_ptr_type ptr_alloc_01070_anairiats_rec_4 () ;
static
ats_ptr_type aux_36 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type list_is_sing_01298_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_bool_type list_is_pair_01299_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_bool_type aux_56 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type auxlst_57 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type aux_59 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type auxlst_60 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type aux_66 (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_66_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ;
static
ats_void_type aux_66_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_69 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type __ats_fun_69_closure_make () ;
static
ats_int_type __ats_fun_69_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type funset_make_nil_03733_ () ;
static
ats_int_type compare_elt_elt_03732_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_bool_type aux_74 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ;
static
ats_clo_ptr_type aux_74_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_bool_type aux_74_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_bool_type funset_is_member_03740_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type avltree_rrotate_04124_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_04107_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_78 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_clo_ptr_type insert_78_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_ptr_type insert_78_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_bool_type funset_insert_03742_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type listize_83 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type funset_listize_03757_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type linset_make_nil_03759_ () ;
static
ats_int_type compare_elt_elt_03758_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_bool_type aux_88 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ;
static
ats_clo_ptr_type aux_88_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_bool_type aux_88_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_bool_type linset_is_member_03764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_int_type avltree_height_04381_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type avltree_rrotate_04435_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_04411_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_92 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type insert_92_closure_make (ats_clo_ref_type env0) ;
static
ats_bool_type insert_92_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type linset_insert_03768_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type aux_98 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type linset_listize_free_03784_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_int_type __ats_fun_99 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type __ats_fun_99_closure_make () ;
static
ats_int_type __ats_fun_99_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type funmap_make_nil_03791_ () ;
static
ats_int_type compare_key_key_03790_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type avltree_rrotate_04818_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) ;
static
ats_ptr_type avltree_lrotate_04798_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) ;
static
ats_ptr_type insert_104 (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_clo_ptr_type insert_104_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2) ;
static
ats_ptr_type insert_104_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_bool_type funmap_insert_03798_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3) ;
static
ats_bool_type search_110 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_clo_ptr_type search_110_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_bool_type search_110_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_bool_type funmap_search_03796_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) ;

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

/* external value variable declarations */

/* function implementations */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51781(line=1842, offs=7) -- 51921(line=1845, offs=6)
*/
ATSstaticdec()
ats_int_type
loop_2 (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp5) ;
ATSlocal (ats_ptr_type, tmp6) ;
ATSlocal (ats_int_type, tmp7) ;

__ats_lab_loop_2:
do {
/* branch: __ats_lab_1 */
__ats_lab_1_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_2_0 ; }
__ats_lab_1_1:
tmp6 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ;
tmp7 = atspre_isucc (arg1) ;
arg0 = tmp6 ;
arg1 = tmp7 ;
goto __ats_lab_loop_2 ; // tail call
break ;

/* branch: __ats_lab_2 */
__ats_lab_2_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_2_1:
tmp5 = arg1 ;
break ;
} while (0) ;
return (tmp5) ;
} /* end of [loop_2] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51764(line=1841, offs=13) -- 52005(line=1849, offs=4)
*/
ATSstaticdec()
ats_int_type
list_length_01410_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp4) ;

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

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 3553(line=144, offs=1) -- 3791(line=156, offs=2)
*/
ATSstaticdec()
ats_ptr_type
s2rt_get_arylst_0 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp0) ;
ATSlocal (ats_ptr_type, tmp1) ;
ATSlocal (ats_ptr_type, tmp2) ;
ATSlocal (ats_int_type, tmp3) ;
ATSlocal (ats_ptr_type, tmp8) ;

__ats_lab_s2rt_get_arylst_0:
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_3_0 ; }
__ats_lab_0_1:
tmp1 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ;
tmp2 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ;
tmp3 = list_length_01410_ats_ptr_type (tmp1) ;
tmp8 = s2rt_get_arylst_0 (tmp2) ;
tmp0 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp0, atslab_0, tmp3) ;
ats_selptrset_mac(anairiats_sum_3, tmp0, atslab_1, tmp8) ;
break ;

/* branch: __ats_lab_3 */
__ats_lab_3_0:
__ats_lab_3_1:
tmp0 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp0) ;
} /* end of [s2rt_get_arylst_0] */

/*
// /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_4 () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp13) ;

__ats_lab_ptr_alloc_01070_anairiats_rec_4:
tmp13 = atspre_ptr_alloc_tsz (sizeof(anairiats_rec_4)) ;
return (tmp13) ;
} /* end of [ptr_alloc_01070_anairiats_rec_4] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 3905(line=164, offs=1) -- 5029(line=206, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_bool_type arg5, ats_bool_type arg6, ats_ptr_type arg7, ats_ptr_type arg8, ats_ptr_type arg9, ats_ptr_type arg10) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp9) ;
ATSlocal (ats_ptr_type, tmp10) ;
ATSlocal (ats_int_type, tmp11) ;
ATSlocal (ats_ptr_type, tmp12) ;
ATSlocal (ats_ptr_type, tmp14) ;
ATSlocal (ats_ptr_type, tmp15) ;
ATSlocal (ats_ptr_type, tmp16) ;
ATSlocal (ats_ptr_type, tmp17) ;
ATSlocal (ats_ptr_type, tmp18) ;
ATSlocal (ats_ptr_type, tmp19) ;
ATSlocal (ats_ptr_type, tmp20) ;
ATSlocal (ats_ptr_type, tmp21) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make:
tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_PACKNAME_get () ;
tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__s2cst_stamp_make () ;
tmp12 = ptr_alloc_01070_anairiats_rec_4 () ;
tmp14 = ats_selsin_mac(tmp12, atslab_2) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_sym) = arg0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_loc) = arg1 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_fil) = arg2 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_srt) = arg3 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_def) = arg10 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_pack) = tmp10 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_isabs) = arg4 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_iscon) = arg5 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_isrec) = arg6 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_isasp) = arg7 ;
tmp15 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_iscpy) = ats_castfn_mac(ats_ptr_type, tmp15) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_islst) = arg8 ;
tmp16 = s2rt_get_arylst_0 (arg3) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_arylst) = tmp16 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_argsrtss) = arg9 ;
tmp17 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_dconlst) = tmp17 ;
tmp18 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_sup) = ats_castfn_mac(ats_ptr_type, tmp18) ;
tmp19 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_supcls) = tmp19 ;
tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil () ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_sVarset) = tmp20 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_dstag) = -1 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_stamp) = tmp11 ;
tmp21 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp14), atslab_s2cst_extdef) = tmp21 ;
tmp9 = atspre_ref_make_view_ptr (tmp14) ;
return (tmp9) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 5098(line=211, offs=14) -- 5178(line=216, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym (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__s2cst_get_sym:
tmp23 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp22 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp23), atslab_s2cst_sym) ;
return (tmp22) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 5250(line=221, offs=14) -- 5330(line=226, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_loc (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp24) ;
ATSlocal (ats_ptr_type, tmp25) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_loc:
tmp25 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp24 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp25), atslab_s2cst_loc) ;
return (tmp24) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_loc] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 5402(line=231, offs=14) -- 5482(line=236, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_fil (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp26) ;
ATSlocal (ats_ptr_type, tmp27) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_fil:
tmp27 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp26 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp27), atslab_s2cst_fil) ;
return (tmp26) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_fil] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 5554(line=241, offs=14) -- 5635(line=246, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp28) ;
ATSlocal (ats_ptr_type, tmp29) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt:
tmp29 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp28 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp29), atslab_s2cst_srt) ;
return (tmp28) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 5707(line=251, offs=14) -- 5787(line=256, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_def (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp30) ;
ATSlocal (ats_ptr_type, tmp31) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_def:
tmp31 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp30 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp31), atslab_s2cst_def) ;
return (tmp30) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_def] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 5837(line=258, offs=14) -- 5929(line=263, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp32) ;
ATSlocal (ats_ptr_type, tmp33) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def:
tmp33 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp33), atslab_s2cst_def) = arg1 ;
return /* (tmp32) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 6002(line=268, offs=15) -- 6083(line=273, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_pack (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__s2cst_get_pack:
tmp35 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp34 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp35), atslab_s2cst_pack) ;
return (tmp34) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_pack] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 6158(line=278, offs=16) -- 6241(line=283, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp36) ;
ATSlocal (ats_ptr_type, tmp37) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs:
tmp37 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp36 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp37), atslab_s2cst_isabs) ;
return (tmp36) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 6373(line=291, offs=16) -- 6474(line=296, offs=4)
*/
ATSglobaldec()
ats_void_type
patsopts2cst_set_isabs (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp38) ;
ATSlocal (ats_ptr_type, tmp39) ;
ATSlocal (ats_ptr_type, tmp40) ;

__ats_lab_patsopts2cst_set_isabs:
tmp39 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp40 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp40, atslab_0, arg1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp39), atslab_s2cst_isabs) = tmp40 ;
return /* (tmp38) */ ;
} /* end of [patsopts2cst_set_isabs] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 6552(line=301, offs=16) -- 6634(line=306, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_iscon (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp41) ;
ATSlocal (ats_ptr_type, tmp42) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_iscon:
tmp42 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp41 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp42), atslab_s2cst_iscon) ;
return (tmp41) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_iscon] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 6710(line=311, offs=16) -- 6792(line=316, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isrec (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp43) ;
ATSlocal (ats_ptr_type, tmp44) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isrec:
tmp44 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp43 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp44), atslab_s2cst_isrec) ;
return (tmp43) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isrec] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 6868(line=321, offs=16) -- 6950(line=326, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isasp (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp45) ;
ATSlocal (ats_ptr_type, tmp46) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isasp:
tmp46 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp45 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp46), atslab_s2cst_isasp) ;
return (tmp45) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isasp] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 7004(line=328, offs=16) -- 7102(line=333, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_isasp (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp47) ;
ATSlocal (ats_ptr_type, tmp48) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_isasp:
tmp48 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp48), atslab_s2cst_isasp) = arg1 ;
return /* (tmp47) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_isasp] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 7181(line=338, offs=19) -- 7266(line=343, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_argsrtss (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp49) ;
ATSlocal (ats_ptr_type, tmp50) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_argsrtss:
tmp50 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp49 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp50), atslab_s2cst_argsrtss) ;
return (tmp49) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_argsrtss] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 7345(line=348, offs=16) -- 7428(line=353, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp51) ;
ATSlocal (ats_ptr_type, tmp52) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst:
tmp52 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp51 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp52), atslab_s2cst_islst) ;
return (tmp51) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 7482(line=355, offs=16) -- 7580(line=360, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_islst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp53) ;
ATSlocal (ats_ptr_type, tmp54) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_islst:
tmp54 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp54), atslab_s2cst_islst) = arg1 ;
return /* (tmp53) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_islst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 7658(line=365, offs=18) -- 7742(line=370, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp55) ;
ATSlocal (ats_ptr_type, tmp56) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst:
tmp56 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp55 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp56), atslab_s2cst_dconlst) ;
return (tmp55) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 7800(line=372, offs=18) -- 7898(line=377, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_dconlst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp57) ;
ATSlocal (ats_ptr_type, tmp58) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_dconlst:
tmp58 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp58), atslab_s2cst_dconlst) = arg1 ;
return /* (tmp57) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_dconlst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 7974(line=382, offs=14) -- 8071(line=387, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sup (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp59) ;
ATSlocal (ats_ptr_type, tmp60) ;
ATSlocal (ats_ptr_type, tmp61) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sup:
tmp60 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp61 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp60), atslab_s2cst_sup) ;
tmp59 = ats_castfn_mac(ats_ptr_type, tmp61) ;
return (tmp59) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sup] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 8121(line=389, offs=14) -- 8313(line=398, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp62) ;
ATSlocal (ats_ptr_type, tmp63) ;
ATSlocal (ats_ptr_type, tmp64) ;
ATSlocal (ats_ptr_type, tmp65) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup:
tmp63 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp64 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp63), atslab_s2cst_sup) ;
tmp65 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp65, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_2, tmp65, atslab_1, ats_castfn_mac(ats_ptr_type, tmp64)) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp63), atslab_s2cst_sup) = ats_castfn_mac(ats_ptr_type, tmp65) ;
return /* (tmp62) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 8388(line=403, offs=17) -- 8471(line=408, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_supcls (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp66) ;
ATSlocal (ats_ptr_type, tmp67) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_supcls:
tmp67 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp66 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp67), atslab_s2cst_supcls) ;
return (tmp66) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_supcls] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 8527(line=410, offs=17) -- 8650(line=416, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_supcls (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp68) ;
ATSlocal (ats_ptr_type, tmp69) ;
ATSlocal (ats_ptr_type, tmp70) ;
ATSlocal (ats_ptr_type, tmp71) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_supcls:
tmp69 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp71 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp69), atslab_s2cst_supcls) ;
tmp70 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp70, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_2, tmp70, atslab_1, tmp71) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp69), atslab_s2cst_supcls) = tmp70 ;
return /* (tmp68) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_supcls] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 8729(line=421, offs=18) -- 8813(line=426, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sVarset (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp72) ;
ATSlocal (ats_ptr_type, tmp73) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sVarset:
tmp73 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp72 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp73), atslab_s2cst_sVarset) ;
return (tmp72) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sVarset] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 8871(line=428, offs=18) -- 8969(line=433, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_sVarset (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp74) ;
ATSlocal (ats_ptr_type, tmp75) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_sVarset:
tmp75 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp75), atslab_s2cst_sVarset) = arg1 ;
return /* (tmp74) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_sVarset] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 9047(line=438, offs=16) -- 9129(line=443, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dstag (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp76) ;
ATSlocal (ats_ptr_type, tmp77) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dstag:
tmp77 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp76 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp77), atslab_s2cst_dstag) ;
return (tmp76) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dstag] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 9183(line=445, offs=16) -- 9277(line=450, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_dstag (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp78) ;
ATSlocal (ats_ptr_type, tmp79) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_dstag:
tmp79 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp79), atslab_s2cst_dstag) = arg1 ;
return /* (tmp78) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_dstag] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 9356(line=455, offs=16) -- 9438(line=460, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_stamp (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp80) ;
ATSlocal (ats_ptr_type, tmp81) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_stamp:
tmp81 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp80 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp81), atslab_s2cst_stamp) ;
return (tmp80) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_stamp] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 9515(line=465, offs=17) -- 9614(line=469, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_extdef (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp82) ;
ATSlocal (ats_ptr_type, tmp83) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_extdef:
tmp83 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp82 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp83), atslab_s2cst_extdef) ;
return (tmp82) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_extdef] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 9670(line=471, offs=17) -- 9767(line=476, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_extdef (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp84) ;
ATSlocal (ats_ptr_type, tmp85) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_extdef:
tmp85 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_4, tmp85), atslab_s2cst_extdef) = arg1 ;
return /* (tmp84) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_extdef] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 9890(line=485, offs=15) -- 9938(line=486, offs=41)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_name (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp86) ;
ATSlocal (ats_ptr_type, tmp87) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_name:
tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym (arg0) ;
tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp87) ;
return (tmp86) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_name] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 10073(line=497, offs=5) -- 10239(line=506, offs=2)
*/
ATSstaticdec()
ats_ptr_type
aux_36 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp89) ;
ATSlocal (ats_ptr_type, tmp90) ;
ATSlocal (ats_ptr_type, tmp91) ;
ATSlocal (ats_ptr_type, tmp92) ;

__ats_lab_aux_36:
do {
/* branch: __ats_lab_4 */
__ats_lab_4_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; }
__ats_lab_4_1:
tmp90 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ;
tmp91 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ;
tmp92 = aux_36 (tmp91, arg1) ;
tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_fun (tmp90, tmp92) ;
break ;

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

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 10015(line=493, offs=1) -- 10570(line=527, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make_dat (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp88) ;
ATSlocal (ats_ptr_type, tmp93) ;
ATSlocal (ats_ptr_type, tmp94) ;
ATSlocal (ats_ptr_type, tmp95) ;
ATSlocal (ats_ptr_type, tmp96) ;
ATSlocal (ats_ptr_type, tmp97) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make_dat:
tmp93 = aux_36 (arg2, arg3) ;
tmp94 = (ats_sum_ptr_type)0 ;
tmp95 = (ats_sum_ptr_type)0 ;
tmp96 = (ats_sum_ptr_type)0 ;
tmp97 = (ats_sum_ptr_type)0 ;
tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__filename_dummy, tmp93, tmp94, ats_true_bool, ats_false_bool, tmp95, tmp96, arg4, tmp97) ;
return (tmp88) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_make_dat] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 10647(line=533, offs=3) -- 10678(line=533, offs=34)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lt_s2cst_s2cst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp98) ;
ATSlocal (ats_int_type, tmp99) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lt_s2cst_s2cst:
tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst (arg0, arg1) ;
tmp98 = atspre_ilt (tmp99, 0) ;
return (tmp98) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lt_s2cst_s2cst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 10736(line=538, offs=3) -- 10768(line=538, offs=35)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lte_s2cst_s2cst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp100) ;
ATSlocal (ats_int_type, tmp101) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lte_s2cst_s2cst:
tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst (arg0, arg1) ;
tmp100 = atspre_ilte (tmp101, 0) ;
return (tmp100) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__lte_s2cst_s2cst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 10826(line=543, offs=3) -- 10857(line=543, offs=34)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp102) ;
ATSlocal (ats_int_type, tmp103) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst:
tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst (arg0, arg1) ;
tmp102 = atspre_ieq (tmp103, 0) ;
return (tmp102) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 10915(line=548, offs=3) -- 10947(line=548, offs=35)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2cst_s2cst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp104) ;
ATSlocal (ats_int_type, tmp105) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2cst_s2cst:
tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst (arg0, arg1) ;
tmp104 = atspre_ineq (tmp105, 0) ;
return (tmp104) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_s2cst_s2cst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 11007(line=552, offs=20) -- 11089(line=557, offs=52)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp106) ;
ATSlocal (ats_int_type, tmp107) ;
ATSlocal (ats_int_type, tmp108) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst:
tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_stamp (arg0) ;
tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_stamp (arg1) ;
tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp (tmp107, tmp108) ;
return (tmp106) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 11195(line=565, offs=13) -- 11292(line=569, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_def (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp109) ;
ATSlocal (ats_ptr_type, tmp110) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_def:
tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_def (arg0) ;
do {
/* branch: __ats_lab_6 */
__ats_lab_6_0:
if (tmp110 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; }
__ats_lab_6_1:
tmp109 = ats_true_bool ;
break ;

/* branch: __ats_lab_7 */
__ats_lab_7_0:
// if (tmp110 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_7_1:
tmp109 = ats_false_bool ;
break ;
} while (0) ;
return (tmp109) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_def] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 11368(line=574, offs=15) -- 11467(line=578, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_abstr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp111) ;
ATSlocal (ats_ptr_type, tmp112) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_abstr:
tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs (arg0) ;
do {
/* branch: __ats_lab_8 */
__ats_lab_8_0:
if (tmp112 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; }
__ats_lab_8_1:
tmp111 = ats_true_bool ;
break ;

/* branch: __ats_lab_9 */
__ats_lab_9_0:
// if (tmp112 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_9_1:
tmp111 = ats_false_bool ;
break ;
} while (0) ;
return (tmp111) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_abstr] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 11544(line=583, offs=15) -- 11586(line=584, offs=37)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tkind (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp113) ;
ATSlocal (ats_ptr_type, tmp114) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tkind:
tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (arg0) ;
tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_tkind_fun (tmp114) ;
return (tmp113) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tkind] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 11662(line=590, offs=15) -- 11750(line=594, offs=55)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tydef (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp115) ;
ATSlocal (ats_bool_type, tmp116) ;
ATSlocal (ats_ptr_type, tmp117) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tydef:
tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_def (arg0) ;
if (tmp116) {
tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (arg0) ;
tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_prgm_fun (tmp117) ;
} else {
tmp115 = ats_false_bool ;
} /* end of [if] */
return (tmp115) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tydef] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 11812(line=599, offs=16) -- 11884(line=602, offs=60)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_datype (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp118) ;
ATSlocal (ats_bool_type, tmp119) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_datype:
tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_abstr (arg0) ;
if (tmp119) {
tmp118 = ats_false_bool ;
} else {
tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_iscon (arg0) ;
} /* end of [if] */
return (tmp118) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_datype] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 11969(line=609, offs=17) -- 12110(line=613, offs=41)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tagless (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp120) ;
ATSlocal (ats_bool_type, tmp121) ;
ATSlocal (ats_bool_type, tmp122) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tagless:
do {
/* branch: __ats_lab_10 */
__ats_lab_10_0:
__ats_lab_10_1:
tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_listlike (arg0) ;
if (!tmp121) { goto __ats_lab_11_1 ; }
tmp120 = ats_true_bool ;
break ;

/* branch: __ats_lab_11 */
__ats_lab_11_0:
__ats_lab_11_1:
tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_singular (arg0) ;
if (!tmp122) { goto __ats_lab_12_1 ; }
tmp120 = ats_true_bool ;
break ;

/* branch: __ats_lab_12 */
__ats_lab_12_0:
__ats_lab_12_1:
tmp120 = ats_false_bool ;
break ;
} while (0) ;
return (tmp120) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_tagless] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 12170(line=617, offs=18) -- 12265(line=621, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_listlike (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp123) ;
ATSlocal (ats_ptr_type, tmp124) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_listlike:
tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_islst (arg0) ;
do {
/* branch: __ats_lab_13 */
__ats_lab_13_0:
if (tmp124 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; }
__ats_lab_13_1:
tmp123 = ats_true_bool ;
break ;

/* branch: __ats_lab_14 */
__ats_lab_14_0:
// if (tmp124 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_14_1:
tmp123 = ats_false_bool ;
break ;
} while (0) ;
return (tmp123) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_listlike] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50922(line=1801, offs=14) -- 50991(line=1803, offs=4)
*/
ATSstaticdec()
ats_bool_type
list_is_sing_01298_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp128) ;
ATSlocal (ats_ptr_type, tmp129) ;

__ats_lab_list_is_sing_01298_ats_ptr_type:
do {
/* branch: __ats_lab_16 */
__ats_lab_16_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; }
tmp129 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ;
if (tmp129 != (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; }
__ats_lab_16_1:
tmp128 = ats_true_bool ;
break ;

/* branch: __ats_lab_17 */
__ats_lab_17_0:
__ats_lab_17_1:
tmp128 = ats_false_bool ;
break ;
} while (0) ;
return (tmp128) ;
} /* end of [list_is_sing_01298_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 12324(line=624, offs=18) -- 12447(line=629, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_singular (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp125) ;
ATSlocal (ats_ptr_type, tmp126) ;
ATSlocal (ats_ptr_type, tmp127) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_singular:
tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst (arg0) ;
do {
/* branch: __ats_lab_15 */
__ats_lab_15_0:
if (tmp126 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; }
__ats_lab_15_1:
tmp127 = ats_caselptrlab_mac(anairiats_sum_5, tmp126, atslab_0) ;
tmp125 = list_is_sing_01298_ats_ptr_type (tmp127) ;
break ;

/* branch: __ats_lab_18 */
__ats_lab_18_0:
// if (tmp126 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_18_1:
tmp125 = ats_false_bool ;
break ;
} while (0) ;
return (tmp125) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_singular] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 51044(line=1806, offs=14) -- 51123(line=1808, offs=4)
*/
ATSstaticdec()
ats_bool_type
list_is_pair_01299_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp133) ;
ATSlocal (ats_ptr_type, tmp134) ;
ATSlocal (ats_ptr_type, tmp135) ;

__ats_lab_list_is_pair_01299_ats_ptr_type:
do {
/* branch: __ats_lab_20 */
__ats_lab_20_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; }
tmp134 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ;
if (tmp134 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; }
tmp135 = ats_caselptrlab_mac(anairiats_sum_2, tmp134, atslab_1) ;
if (tmp135 != (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; }
__ats_lab_20_1:
tmp133 = ats_true_bool ;
break ;

/* branch: __ats_lab_21 */
__ats_lab_21_0:
__ats_lab_21_1:
tmp133 = ats_false_bool ;
break ;
} while (0) ;
return (tmp133) ;
} /* end of [list_is_pair_01299_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 12506(line=632, offs=18) -- 12629(line=637, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_binarian (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp130) ;
ATSlocal (ats_ptr_type, tmp131) ;
ATSlocal (ats_ptr_type, tmp132) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_binarian:
tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_dconlst (arg0) ;
do {
/* branch: __ats_lab_19 */
__ats_lab_19_0:
if (tmp131 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; }
__ats_lab_19_1:
tmp132 = ats_caselptrlab_mac(anairiats_sum_5, tmp131, atslab_0) ;
tmp130 = list_is_pair_01299_ats_ptr_type (tmp132) ;
break ;

/* branch: __ats_lab_22 */
__ats_lab_22_0:
// if (tmp131 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_22_1:
tmp130 = ats_false_bool ;
break ;
} while (0) ;
return (tmp130) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_binarian] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 12709(line=642, offs=16) -- 12752(line=643, offs=36)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_linear (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp136) ;
ATSlocal (ats_ptr_type, tmp137) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_linear:
tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_srt (arg0) ;
tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_lin_fun (tmp137) ;
return (tmp136) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_linear] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 12786(line=646, offs=19) -- 12841(line=647, offs=47)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_nonlinear (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp138) ;
ATSlocal (ats_bool_type, tmp139) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_nonlinear:
tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_linear (arg0) ;
if (tmp139) {
tmp138 = ats_false_bool ;
} else {
tmp138 = ats_true_bool ;
} /* end of [if] */
return (tmp138) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_is_nonlinear] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 13017(line=658, offs=5) -- 13132(line=662, offs=50)
*/
ATSstaticdec()
ats_bool_type
aux_56 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp141) ;
ATSlocal (ats_bool_type, tmp142) ;
ATSlocal (ats_ptr_type, tmp143) ;

__ats_lab_aux_56:
tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst (arg0, arg1) ;
if (tmp142) {
tmp141 = ats_true_bool ;
} else {
tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sup (arg0) ;
tmp141 = auxlst_57 (tmp143, arg1) ;
} /* end of [if] */
return (tmp141) ;
} /* end of [aux_56] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 13154(line=664, offs=5) -- 13353(line=671, offs=33)
*/
ATSstaticdec()
ats_bool_type
auxlst_57 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp144) ;
ATSlocal (ats_ptr_type, tmp145) ;
ATSlocal (ats_ptr_type, tmp146) ;
ATSlocal (ats_bool_type, tmp147) ;

__ats_lab_auxlst_57:
do {
/* branch: __ats_lab_23 */
__ats_lab_23_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; }
__ats_lab_23_1:
tmp145 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ;
tmp146 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ;
tmp147 = aux_56 (tmp145, arg1) ;
if (tmp147) {
tmp144 = ats_true_bool ;
} else {
arg0 = tmp146 ;
arg1 = arg1 ;
goto __ats_lab_auxlst_57 ; // tail call
} /* end of [if] */
break ;

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

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 12890(line=653, offs=3) -- 13468(line=680, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_subeq (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp140) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_subeq:
tmp140 = aux_56 (arg0, arg1) ;
return (tmp140) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_subeq] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 13684(line=692, offs=1) -- 13956(line=703, offs=4)
*/
ATSstaticdec()
ats_bool_type
aux_59 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp149) ;
ATSlocal (ats_bool_type, tmp150) ;
ATSlocal (ats_ptr_type, tmp151) ;

__ats_lab_aux_59:
tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2cst_s2cst (arg0, arg1) ;
if (tmp150) {
tmp149 = ats_true_bool ;
} else {
tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_supcls (arg0) ;
tmp149 = auxlst_60 (tmp151, arg1) ;
} /* end of [if] */
return (tmp149) ;
} /* end of [aux_59] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 13980(line=706, offs=1) -- 14332(line=720, offs=4)
*/
ATSstaticdec()
ats_bool_type
auxlst_60 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp152) ;
ATSlocal (ats_ptr_type, tmp153) ;
ATSlocal (ats_ptr_type, tmp154) ;
ATSlocal (ats_ptr_type, tmp155) ;
ATSlocal (ats_ptr_type, tmp156) ;
ATSlocal (ats_bool_type, tmp157) ;

__ats_lab_auxlst_60:
do {
/* branch: __ats_lab_25 */
__ats_lab_25_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; }
__ats_lab_25_1:
tmp153 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ;
tmp154 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ;
tmp155 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp153), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_26 */
__ats_lab_26_0:
if (((ats_sum_ptr_type)tmp155)->tag != 4) { goto __ats_lab_27_0 ; }
__ats_lab_26_1:
tmp156 = ats_caselptrlab_mac(anairiats_sum_7, tmp155, atslab_0) ;
tmp157 = aux_59 (tmp156, arg1) ;
if (tmp157) {
tmp152 = ats_true_bool ;
} else {
arg0 = tmp154 ;
arg1 = arg1 ;
goto __ats_lab_auxlst_60 ; // tail call
} /* end of [if] */
break ;

/* branch: __ats_lab_27 */
__ats_lab_27_0:
__ats_lab_27_1:
arg0 = tmp154 ;
arg1 = arg1 ;
goto __ats_lab_auxlst_60 ; // tail call
break ;
} while (0) ;
break ;

/* branch: __ats_lab_28 */
__ats_lab_28_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_28_1:
tmp152 = ats_false_bool ;
break ;
} while (0) ;
return (tmp152) ;
} /* end of [auxlst_60] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 13545(line=686, offs=3) -- 14453(line=728, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_lte_cls_cls (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp148) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_lte_cls_cls:
tmp148 = aux_59 (arg0, arg1) ;
return (tmp148) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_lte_cls_cls] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 14531(line=734, offs=3) -- 14614(line=738, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp158) ;
ATSlocal (ats_ptr_type, tmp159) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst:
tmp159 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_sym (arg1) ;
/* tmp158 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp159) ;
return /* (tmp158) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 15127(line=758, offs=23) -- 15161(line=758, offs=57)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2cst (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp160) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2cst:
/* tmp160 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst (stdout, arg0) ;
return /* (tmp160) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2cst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 15184(line=759, offs=23) -- 15218(line=759, offs=57)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cst (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp161) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cst:
/* tmp161 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst (stderr, arg0) ;
return /* (tmp161) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cst] */

/*
// /tmp/ATS-Postiats/src/pats_utils.dats: 11884(line=651, offs=1) -- 12164(line=665, offs=2)
*/
ATSstaticdec()
ats_void_type
aux_66 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp164) ;
ATSlocal (ats_ptr_type, tmp165) ;
ATSlocal (ats_ptr_type, tmp166) ;
// ATSlocal_void (tmp167) ;
ATSlocal (ats_bool_type, tmp168) ;
// ATSlocal_void (tmp169) ;
ATSlocal (ats_int_type, tmp170) ;

__ats_lab_aux_66:
do {
/* branch: __ats_lab_29 */
__ats_lab_29_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; }
__ats_lab_29_1:
break ;

/* branch: __ats_lab_30 */
__ats_lab_30_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_30_1:
tmp165 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ;
tmp166 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ;
tmp168 = atspre_gt_int_int (arg1, 0) ;
if (tmp168) {
/* tmp167 = */ atspre_fprint_string (env0, env1) ;
} else {
/* empty */
} /* end of [if] */
/* tmp169 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp165) ;
tmp170 = atspre_add_int_int (arg1, 1) ;
arg0 = tmp166 ;
arg1 = tmp170 ;
goto __ats_lab_aux_66 ; // tail call
break ;
} while (0) ;
return /* (tmp164) */ ;
} /* end of [aux_66] */

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

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

ATSinline()
ats_void_type
aux_66_closure_init (aux_66_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_66_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_66_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
aux_66_closure_type *p_clo = ATS_MALLOC(sizeof(aux_66_closure_type)) ;
aux_66_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 (tmp163) ;

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

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 15248(line=763, offs=3) -- 15303(line=763, offs=58)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp162) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst:
/* tmp162 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cst) ;
return /* (tmp162) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 15358(line=767, offs=16) -- 15397(line=767, offs=55)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2cstlst (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp171) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2cstlst:
/* tmp171 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst (stdout, arg0) ;
return /* (tmp171) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__print_s2cstlst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 15423(line=769, offs=16) -- 15462(line=769, offs=55)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cstlst (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp172) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cstlst:
/* tmp172 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2cstlst (stderr, arg0) ;
return /* (tmp172) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cstlst] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 15705(line=786, offs=1) -- 15790(line=789, offs=35)
*/
ATSstaticdec()
ats_int_type
__ats_fun_69 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp173) ;

__ats_lab___ats_fun_69:
tmp173 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst (arg0, arg1) ;
return (tmp173) ;
} /* end of [__ats_fun_69] */

typedef struct {
ats_fun_ptr_type closure_fun ;
} __ats_fun_69_closure_type ;

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

ATSinline()
ats_void_type
__ats_fun_69_closure_init (__ats_fun_69_closure_type *p_clo) {
p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_69_clofun ;
return ;
} /* end of function */

ats_clo_ptr_type
__ats_fun_69_closure_make () {
__ats_fun_69_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_69_closure_type)) ;
__ats_fun_69_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_03733_ () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp176) ;

__ats_lab_funset_make_nil_03733_:
tmp176 = (ats_sum_ptr_type)0 ;
return (tmp176) ;
} /* end of [funset_make_nil_03733_] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 15939(line=799, offs=3) -- 15974(line=799, offs=38)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp175) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_nil:
tmp175 = funset_make_nil_03733_ () ;
return (tmp175) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_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_03732_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp184) ;

__ats_lab_compare_elt_elt_03732_ats_ptr_type:
tmp184 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ;
return (tmp184) ;
} /* end of [compare_elt_elt_03732_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4143(line=153, offs=7) -- 4406(line=161, offs=20)
*/
ATSstaticdec()
ats_bool_type
aux_74 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp179) ;
ATSlocal (ats_ptr_type, tmp180) ;
ATSlocal (ats_ptr_type, tmp181) ;
ATSlocal (ats_ptr_type, tmp182) ;
ATSlocal (ats_int_type, tmp183) ;
ATSlocal (ats_bool_type, tmp185) ;
ATSlocal (ats_bool_type, tmp186) ;

__ats_lab_aux_74:
do {
/* branch: __ats_lab_31 */
__ats_lab_31_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_32_0 ; }
__ats_lab_31_1:
tmp180 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ;
tmp181 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_2) ;
tmp182 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_3) ;
tmp183 = compare_elt_elt_03732_ats_ptr_type (env0, tmp180, env1) ;
tmp185 = atspre_lt_int_int (tmp183, 0) ;
if (tmp185) {
arg0 = tmp181 ;
goto __ats_lab_aux_74 ; // tail call
} else {
tmp186 = atspre_gt_int_int (tmp183, 0) ;
if (tmp186) {
arg0 = tmp182 ;
goto __ats_lab_aux_74 ; // tail call
} else {
tmp179 = ats_true_bool ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_32 */
__ats_lab_32_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_32_1:
tmp179 = ats_false_bool ;
break ;
} while (0) ;
return (tmp179) ;
} /* end of [aux_74] */

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

ats_bool_type
aux_74_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
return aux_74 (((aux_74_closure_type*)cloptr)->closure_env_0, ((aux_74_closure_type*)cloptr)->closure_env_1, arg0) ;
} /* end of function */

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

ats_clo_ptr_type
aux_74_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
aux_74_closure_type *p_clo = ATS_MALLOC(sizeof(aux_74_closure_type)) ;
aux_74_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

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

__ats_lab_funset_is_member_03740_ats_ptr_type:
tmp178 = aux_74 (arg1, arg2, arg0) ;
return (tmp178) ;
} /* end of [funset_is_member_03740_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 16005(line=803, offs=3) -- 16048(line=803, offs=46)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_ismem (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp177) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_ismem:
tmp177 = funset_is_member_03740_ats_ptr_type (arg0, arg1, statmp174) ;
return (tmp177) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_ismem] */

/*
// /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_04124_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, tmp207) ;
ATSlocal (ats_ptr_type, tmp208) ;
ATSlocal (ats_ptr_type, tmp209) ;
ATSlocal (ats_ptr_type, tmp210) ;
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) ;
ATSlocal (ats_int_type, tmp219) ;
ATSlocal (ats_ptr_type, tmp220) ;
ATSlocal (ats_ptr_type, tmp221) ;
ATSlocal (ats_ptr_type, tmp222) ;
ATSlocal (ats_ptr_type, tmp223) ;
ATSlocal (ats_int_type, tmp224) ;
ATSlocal (ats_int_type, tmp225) ;
ATSlocal (ats_int_type, tmp226) ;
ATSlocal (ats_int_type, tmp227) ;
ATSlocal (ats_ptr_type, tmp228) ;
ATSlocal (ats_int_type, tmp229) ;
ATSlocal (ats_int_type, tmp230) ;
ATSlocal (ats_ptr_type, tmp231) ;
ATSlocal (ats_int_type, tmp232) ;
ATSlocal (ats_int_type, tmp233) ;

__ats_lab_avltree_rrotate_04124_ats_ptr_type:
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp208 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_1) ;
tmp209 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_2) ;
tmp210 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_3) ;
do {
/* branch: __ats_lab_38 */
__ats_lab_38_0:
if (tmp209 == (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; }
__ats_lab_38_1:
tmp212 = ats_caselptrlab_mac(anairiats_sum_8, tmp209, atslab_0) ;
tmp211 = tmp212 ;
break ;

/* branch: __ats_lab_39 */
__ats_lab_39_0:
// if (tmp209 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_39_1:
tmp211 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_40 */
__ats_lab_40_0:
if (tmp210 == (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; }
__ats_lab_40_1:
tmp214 = ats_caselptrlab_mac(anairiats_sum_8, tmp210, atslab_0) ;
tmp213 = tmp214 ;
break ;

/* branch: __ats_lab_41 */
__ats_lab_41_0:
// if (tmp210 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_41_1:
tmp213 = 0 ;
break ;
} while (0) ;
tmp216 = atspre_iadd (tmp211, 0) ;
tmp215 = atspre_igte (tmp216, tmp213) ;
if (tmp215) {
tmp217 = atspre_iadd (tmp213, 1) ;
tmp219 = atspre_imax (tmp211, tmp217) ;
tmp218 = atspre_iadd (1, tmp219) ;
tmp220 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp220, atslab_0, tmp217) ;
ats_selptrset_mac(anairiats_sum_8, tmp220, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_8, tmp220, atslab_2, tmp210) ;
ats_selptrset_mac(anairiats_sum_8, tmp220, atslab_3, arg4) ;
tmp207 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp207, atslab_0, tmp218) ;
ats_selptrset_mac(anairiats_sum_8, tmp207, atslab_1, tmp208) ;
ats_selptrset_mac(anairiats_sum_8, tmp207, atslab_2, tmp209) ;
ats_selptrset_mac(anairiats_sum_8, tmp207, atslab_3, tmp220) ;
} else {
// if (tmp210 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp221 = ats_caselptrlab_mac(anairiats_sum_8, tmp210, atslab_1) ;
tmp222 = ats_caselptrlab_mac(anairiats_sum_8, tmp210, atslab_2) ;
tmp223 = ats_caselptrlab_mac(anairiats_sum_8, tmp210, atslab_3) ;
do {
/* branch: __ats_lab_42 */
__ats_lab_42_0:
if (tmp222 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; }
__ats_lab_42_1:
tmp225 = ats_caselptrlab_mac(anairiats_sum_8, tmp222, atslab_0) ;
tmp224 = tmp225 ;
break ;

/* branch: __ats_lab_43 */
__ats_lab_43_0:
// if (tmp222 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_43_1:
tmp224 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_44 */
__ats_lab_44_0:
if (tmp223 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; }
__ats_lab_44_1:
tmp227 = ats_caselptrlab_mac(anairiats_sum_8, tmp223, atslab_0) ;
tmp226 = tmp227 ;
break ;

/* branch: __ats_lab_45 */
__ats_lab_45_0:
// if (tmp223 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_45_1:
tmp226 = 0 ;
break ;
} while (0) ;
tmp230 = atspre_imax (tmp211, tmp224) ;
tmp229 = atspre_iadd (1, tmp230) ;
tmp228 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp228, atslab_0, tmp229) ;
ats_selptrset_mac(anairiats_sum_8, tmp228, atslab_1, tmp208) ;
ats_selptrset_mac(anairiats_sum_8, tmp228, atslab_2, tmp209) ;
ats_selptrset_mac(anairiats_sum_8, tmp228, atslab_3, tmp222) ;
tmp233 = atspre_imax (tmp226, arg3) ;
tmp232 = atspre_iadd (1, tmp233) ;
tmp231 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp231, atslab_0, tmp232) ;
ats_selptrset_mac(anairiats_sum_8, tmp231, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_8, tmp231, atslab_2, tmp223) ;
ats_selptrset_mac(anairiats_sum_8, tmp231, atslab_3, arg4) ;
tmp207 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp207, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_8, tmp207, atslab_1, tmp221) ;
ats_selptrset_mac(anairiats_sum_8, tmp207, atslab_2, tmp228) ;
ats_selptrset_mac(anairiats_sum_8, tmp207, atslab_3, tmp231) ;
} /* end of [if] */
return (tmp207) ;
} /* end of [avltree_rrotate_04124_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_04107_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, tmp244) ;
ATSlocal (ats_ptr_type, tmp245) ;
ATSlocal (ats_ptr_type, tmp246) ;
ATSlocal (ats_ptr_type, tmp247) ;
ATSlocal (ats_int_type, tmp248) ;
ATSlocal (ats_int_type, tmp249) ;
ATSlocal (ats_int_type, tmp250) ;
ATSlocal (ats_int_type, tmp251) ;
ATSlocal (ats_bool_type, tmp252) ;
ATSlocal (ats_int_type, tmp253) ;
ATSlocal (ats_int_type, tmp254) ;
ATSlocal (ats_int_type, tmp255) ;
ATSlocal (ats_int_type, tmp256) ;
ATSlocal (ats_ptr_type, tmp257) ;
ATSlocal (ats_ptr_type, tmp258) ;
ATSlocal (ats_ptr_type, tmp259) ;
ATSlocal (ats_ptr_type, tmp260) ;
ATSlocal (ats_int_type, tmp261) ;
ATSlocal (ats_int_type, tmp262) ;
ATSlocal (ats_int_type, tmp263) ;
ATSlocal (ats_int_type, tmp264) ;
ATSlocal (ats_ptr_type, tmp265) ;
ATSlocal (ats_int_type, tmp266) ;
ATSlocal (ats_int_type, tmp267) ;
ATSlocal (ats_ptr_type, tmp268) ;
ATSlocal (ats_int_type, tmp269) ;
ATSlocal (ats_int_type, tmp270) ;

__ats_lab_avltree_lrotate_04107_ats_ptr_type:
// if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp245 = ats_caselptrlab_mac(anairiats_sum_8, arg4, atslab_1) ;
tmp246 = ats_caselptrlab_mac(anairiats_sum_8, arg4, atslab_2) ;
tmp247 = ats_caselptrlab_mac(anairiats_sum_8, arg4, atslab_3) ;
do {
/* branch: __ats_lab_50 */
__ats_lab_50_0:
if (tmp246 == (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; }
__ats_lab_50_1:
tmp249 = ats_caselptrlab_mac(anairiats_sum_8, tmp246, atslab_0) ;
tmp248 = tmp249 ;
break ;

/* branch: __ats_lab_51 */
__ats_lab_51_0:
// if (tmp246 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_51_1:
tmp248 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_52 */
__ats_lab_52_0:
if (tmp247 == (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; }
__ats_lab_52_1:
tmp251 = ats_caselptrlab_mac(anairiats_sum_8, tmp247, atslab_0) ;
tmp250 = tmp251 ;
break ;

/* branch: __ats_lab_53 */
__ats_lab_53_0:
// if (tmp247 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_53_1:
tmp250 = 0 ;
break ;
} while (0) ;
tmp253 = atspre_iadd (tmp250, 0) ;
tmp252 = atspre_ilte (tmp248, tmp253) ;
if (tmp252) {
tmp254 = atspre_iadd (tmp248, 1) ;
tmp256 = atspre_imax (tmp254, tmp250) ;
tmp255 = atspre_iadd (1, tmp256) ;
tmp257 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp257, atslab_0, tmp254) ;
ats_selptrset_mac(anairiats_sum_8, tmp257, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_8, tmp257, atslab_2, arg2) ;
ats_selptrset_mac(anairiats_sum_8, tmp257, atslab_3, tmp246) ;
tmp244 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_0, tmp255) ;
ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_1, tmp245) ;
ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_2, tmp257) ;
ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_3, tmp247) ;
} else {
// if (tmp246 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp258 = ats_caselptrlab_mac(anairiats_sum_8, tmp246, atslab_1) ;
tmp259 = ats_caselptrlab_mac(anairiats_sum_8, tmp246, atslab_2) ;
tmp260 = ats_caselptrlab_mac(anairiats_sum_8, tmp246, atslab_3) ;
do {
/* branch: __ats_lab_54 */
__ats_lab_54_0:
if (tmp259 == (ats_sum_ptr_type)0) { goto __ats_lab_55_0 ; }
__ats_lab_54_1:
tmp262 = ats_caselptrlab_mac(anairiats_sum_8, tmp259, atslab_0) ;
tmp261 = tmp262 ;
break ;

/* branch: __ats_lab_55 */
__ats_lab_55_0:
// if (tmp259 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_55_1:
tmp261 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_56 */
__ats_lab_56_0:
if (tmp260 == (ats_sum_ptr_type)0) { goto __ats_lab_57_0 ; }
__ats_lab_56_1:
tmp264 = ats_caselptrlab_mac(anairiats_sum_8, tmp260, atslab_0) ;
tmp263 = tmp264 ;
break ;

/* branch: __ats_lab_57 */
__ats_lab_57_0:
// if (tmp260 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_57_1:
tmp263 = 0 ;
break ;
} while (0) ;
tmp267 = atspre_imax (arg1, tmp261) ;
tmp266 = atspre_iadd (1, tmp267) ;
tmp265 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp265, atslab_0, tmp266) ;
ats_selptrset_mac(anairiats_sum_8, tmp265, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_8, tmp265, atslab_2, arg2) ;
ats_selptrset_mac(anairiats_sum_8, tmp265, atslab_3, tmp259) ;
tmp270 = atspre_imax (tmp263, tmp250) ;
tmp269 = atspre_iadd (1, tmp270) ;
tmp268 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp268, atslab_0, tmp269) ;
ats_selptrset_mac(anairiats_sum_8, tmp268, atslab_1, tmp245) ;
ats_selptrset_mac(anairiats_sum_8, tmp268, atslab_2, tmp260) ;
ats_selptrset_mac(anairiats_sum_8, tmp268, atslab_3, tmp247) ;
tmp244 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_0, arg3) ;
ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_1, tmp258) ;
ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_2, tmp265) ;
ats_selptrset_mac(anairiats_sum_8, tmp244, atslab_3, tmp268) ;
} /* end of [if] */
return (tmp244) ;
} /* end of [avltree_lrotate_04107_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_78 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp191) ;
ATSlocal (ats_int_type, tmp192) ;
ATSlocal (ats_ptr_type, tmp193) ;
ATSlocal (ats_ptr_type, tmp194) ;
ATSlocal (ats_ptr_type, tmp195) ;
ATSlocal (ats_int_type, tmp196) ;
ATSlocal (ats_bool_type, tmp197) ;
ATSlocal (ats_ptr_type, tmp198) ;
ATSlocal (ats_int_type, tmp199) ;
ATSlocal (ats_int_type, tmp200) ;
ATSlocal (ats_int_type, tmp201) ;
ATSlocal (ats_int_type, tmp202) ;
ATSlocal (ats_bool_type, tmp203) ;
ATSlocal (ats_int_type, tmp204) ;
ATSlocal (ats_int_type, tmp205) ;
ATSlocal (ats_int_type, tmp206) ;
ATSlocal (ats_bool_type, tmp234) ;
ATSlocal (ats_ptr_type, tmp235) ;
ATSlocal (ats_int_type, tmp236) ;
ATSlocal (ats_int_type, tmp237) ;
ATSlocal (ats_int_type, tmp238) ;
ATSlocal (ats_int_type, tmp239) ;
ATSlocal (ats_bool_type, tmp240) ;
ATSlocal (ats_int_type, tmp241) ;
ATSlocal (ats_int_type, tmp242) ;
ATSlocal (ats_int_type, tmp243) ;
ATSlocal (ats_ptr_type, tmp271) ;
ATSlocal (ats_ptr_type, tmp272) ;

__ats_lab_insert_78:
do {
/* branch: __ats_lab_33 */
__ats_lab_33_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; }
__ats_lab_33_1:
tmp192 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ;
tmp193 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ;
tmp194 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_2) ;
tmp195 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_3) ;
tmp196 = compare_elt_elt_03732_ats_ptr_type (env0, tmp193, env1) ;
tmp197 = atspre_lt_int_int (tmp196, 0) ;
if (tmp197) {
tmp198 = insert_78 (env0, env1, tmp194, arg1) ;
do {
/* branch: __ats_lab_34 */
__ats_lab_34_0:
if (tmp198 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; }
__ats_lab_34_1:
tmp200 = ats_caselptrlab_mac(anairiats_sum_8, tmp198, atslab_0) ;
tmp199 = tmp200 ;
break ;

/* branch: __ats_lab_35 */
__ats_lab_35_0:
// if (tmp198 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_35_1:
tmp199 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_36 */
__ats_lab_36_0:
if (tmp195 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; }
__ats_lab_36_1:
tmp202 = ats_caselptrlab_mac(anairiats_sum_8, tmp195, atslab_0) ;
tmp201 = tmp202 ;
break ;

/* branch: __ats_lab_37 */
__ats_lab_37_0:
// if (tmp195 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_37_1:
tmp201 = 0 ;
break ;
} while (0) ;
tmp204 = atspre_isub (tmp199, tmp201) ;
tmp203 = atspre_ilte (tmp204, 1) ;
if (tmp203) {
tmp206 = atspre_imax (tmp199, tmp201) ;
tmp205 = atspre_iadd (1, tmp206) ;
tmp191 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_0, tmp205) ;
ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_1, tmp193) ;
ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_2, tmp198) ;
ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_3, tmp195) ;
} else {
tmp191 = avltree_rrotate_04124_ats_ptr_type (tmp193, tmp199, tmp198, tmp201, tmp195) ;
} /* end of [if] */
} else {
tmp234 = atspre_gt_int_int (tmp196, 0) ;
if (tmp234) {
tmp235 = insert_78 (env0, env1, tmp195, arg1) ;
do {
/* branch: __ats_lab_46 */
__ats_lab_46_0:
if (tmp194 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; }
__ats_lab_46_1:
tmp237 = ats_caselptrlab_mac(anairiats_sum_8, tmp194, atslab_0) ;
tmp236 = tmp237 ;
break ;

/* branch: __ats_lab_47 */
__ats_lab_47_0:
// if (tmp194 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_47_1:
tmp236 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_48 */
__ats_lab_48_0:
if (tmp235 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; }
__ats_lab_48_1:
tmp239 = ats_caselptrlab_mac(anairiats_sum_8, tmp235, atslab_0) ;
tmp238 = tmp239 ;
break ;

/* branch: __ats_lab_49 */
__ats_lab_49_0:
// if (tmp235 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_49_1:
tmp238 = 0 ;
break ;
} while (0) ;
tmp241 = atspre_isub (tmp238, tmp236) ;
tmp240 = atspre_ilte (tmp241, 1) ;
if (tmp240) {
tmp243 = atspre_imax (tmp236, tmp238) ;
tmp242 = atspre_iadd (1, tmp243) ;
tmp191 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_0, tmp242) ;
ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_1, tmp193) ;
ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_2, tmp194) ;
ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_3, tmp235) ;
} else {
tmp191 = avltree_lrotate_04107_ats_ptr_type (tmp193, tmp236, tmp194, tmp238, tmp235) ;
} /* end of [if] */
} else {
ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ;
tmp191 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_0, tmp192) ;
ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_1, env0) ;
ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_2, tmp194) ;
ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_3, tmp195) ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_58 */
__ats_lab_58_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_58_1:
ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ;
tmp271 = (ats_sum_ptr_type)0 ;
tmp272 = (ats_sum_ptr_type)0 ;
tmp191 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_1, env0) ;
ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_2, tmp271) ;
ats_selptrset_mac(anairiats_sum_8, tmp191, atslab_3, tmp272) ;
break ;
} while (0) ;
return (tmp191) ;
} /* end of [insert_78] */

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

ats_ptr_type
insert_78_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) {
return insert_78 (((insert_78_closure_type*)cloptr)->closure_env_0, ((insert_78_closure_type*)cloptr)->closure_env_1, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
insert_78_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
insert_78_closure_type *p_clo = ATS_MALLOC(sizeof(insert_78_closure_type)) ;
insert_78_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_03742_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp190) ;
ATSlocal (ats_bool_type, tmp273) ;
ATSlocal (ats_ptr_type, tmp274) ;

__ats_lab_funset_insert_03742_ats_ptr_type:
/* ats_bool_type tmp273 ; */
tmp274 = insert_78 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp273)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp274 ;
tmp190 = tmp273 ;
return (tmp190) ;
} /* end of [funset_insert_03742_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 16077(line=807, offs=3) -- 16164(line=810, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_add (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp187) ;
ATSlocal (ats_ptr_type, tmp188) ;
ATSlocal (ats_bool_type, tmp189) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_add:
/* ats_ptr_type tmp188 ; */
tmp188 = arg0 ;
tmp189 = funset_insert_03742_ats_ptr_type ((&tmp188), arg1, statmp174) ;
tmp187 = tmp188 ;
return (tmp187) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_add] */

/*
// /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_83 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp277) ;
ATSlocal (ats_ptr_type, tmp278) ;
ATSlocal (ats_ptr_type, tmp279) ;
ATSlocal (ats_ptr_type, tmp280) ;
ATSlocal (ats_ptr_type, tmp281) ;
ATSlocal (ats_ptr_type, tmp282) ;

__ats_lab_listize_83:
do {
/* branch: __ats_lab_59 */
__ats_lab_59_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_60_0 ; }
__ats_lab_59_1:
tmp278 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ;
tmp279 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_2) ;
tmp280 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_3) ;
tmp281 = listize_83 (tmp280, arg1) ;
tmp282 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp282, atslab_0, tmp278) ;
ats_selptrset_mac(anairiats_sum_2, tmp282, atslab_1, tmp281) ;
arg0 = tmp279 ;
arg1 = tmp282 ;
goto __ats_lab_listize_83 ; // tail call
break ;

/* branch: __ats_lab_60 */
__ats_lab_60_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_60_1:
tmp277 = arg1 ;
break ;
} while (0) ;
return (tmp277) ;
} /* end of [listize_83] */

/*
// /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_03757_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp276) ;
ATSlocal (ats_ptr_type, tmp283) ;

__ats_lab_funset_listize_03757_ats_ptr_type:
tmp283 = (ats_sum_ptr_type)0 ;
tmp276 = listize_83 (arg0, tmp283) ;
return (tmp276) ;
} /* end of [funset_listize_03757_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 16223(line=813, offs=18) -- 16252(line=813, offs=47)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_listize (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp275) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_listize:
tmp275 = funset_listize_03757_ats_ptr_type (arg0) ;
return (tmp275) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_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_03759_ () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp285) ;

__ats_lab_linset_make_nil_03759_:
tmp285 = (ats_sum_ptr_type)0 ;
return (tmp285) ;
} /* end of [linset_make_nil_03759_] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 16304(line=819, offs=3) -- 16339(line=819, offs=38)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp284) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_nil:
tmp284 = linset_make_nil_03759_ () ;
return (tmp284) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_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_03758_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp293) ;

__ats_lab_compare_elt_elt_03758_ats_ptr_type:
tmp293 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ;
return (tmp293) ;
} /* end of [compare_elt_elt_03758_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3861(line=149, offs=7) -- 4231(line=160, offs=33)
*/
ATSstaticdec()
ats_bool_type
aux_88 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp288) ;
ATSlocal (ats_ptr_type, tmp289) ;
ATSlocal (ats_ptr_type, tmp290) ;
ATSlocal (ats_ptr_type, tmp291) ;
ATSlocal (ats_int_type, tmp292) ;
ATSlocal (ats_bool_type, tmp294) ;
ATSlocal (ats_ptr_type, tmp295) ;
ATSlocal (ats_bool_type, tmp296) ;
ATSlocal (ats_ptr_type, tmp297) ;

__ats_lab_aux_88:
do {
/* branch: __ats_lab_61 */
__ats_lab_61_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; }
__ats_lab_61_1:
tmp289 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ;
tmp290 = &ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_2) ;
tmp291 = &ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_3) ;
tmp292 = compare_elt_elt_03758_ats_ptr_type (env0, tmp289, env1) ;
tmp294 = atspre_lt_int_int (tmp292, 0) ;
if (tmp294) {
tmp295 = ats_ptrget_mac(ats_ptr_type, tmp290) ;
arg0 = tmp295 ;
goto __ats_lab_aux_88 ; // tail call
} else {
tmp296 = atspre_gt_int_int (tmp292, 0) ;
if (tmp296) {
tmp297 = ats_ptrget_mac(ats_ptr_type, tmp291) ;
arg0 = tmp297 ;
goto __ats_lab_aux_88 ; // tail call
} else {
tmp288 = ats_true_bool ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_62 */
__ats_lab_62_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_62_1:
tmp288 = ats_false_bool ;
break ;
} while (0) ;
return (tmp288) ;
} /* end of [aux_88] */

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

ats_bool_type
aux_88_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
return aux_88 (((aux_88_closure_type*)cloptr)->closure_env_0, ((aux_88_closure_type*)cloptr)->closure_env_1, arg0) ;
} /* end of function */

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

ats_clo_ptr_type
aux_88_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
aux_88_closure_type *p_clo = ATS_MALLOC(sizeof(aux_88_closure_type)) ;
aux_88_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

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

__ats_lab_linset_is_member_03764_ats_ptr_type:
tmp287 = aux_88 (arg1, arg2, arg0) ;
return (tmp287) ;
} /* end of [linset_is_member_03764_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 16373(line=823, offs=3) -- 16416(line=823, offs=46)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_ismem (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp286) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_ismem:
tmp286 = linset_is_member_03764_ats_ptr_type (arg0, arg1, statmp174) ;
return (tmp286) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_ismem] */

/*
// /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_04381_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp312) ;
ATSlocal (ats_int_type, tmp313) ;

__ats_lab_avltree_height_04381_ats_ptr_type:
do {
/* branch: __ats_lab_64 */
__ats_lab_64_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_65_0 ; }
__ats_lab_64_1:
tmp313 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ;
tmp312 = tmp313 ;
break ;

/* branch: __ats_lab_65 */
__ats_lab_65_0:
__ats_lab_65_1:
tmp312 = 0 ;
break ;
} while (0) ;
return (tmp312) ;
} /* end of [avltree_height_04381_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_04435_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, tmp322) ;
ATSlocal (ats_ptr_type, tmp323) ;
ATSlocal (ats_ptr_type, tmp324) ;
ATSlocal (ats_ptr_type, tmp325) ;
ATSlocal (ats_ptr_type, tmp326) ;
ATSlocal (ats_int_type, tmp327) ;
ATSlocal (ats_ptr_type, tmp328) ;
ATSlocal (ats_int_type, tmp329) ;
ATSlocal (ats_ptr_type, tmp330) ;
ATSlocal (ats_bool_type, tmp331) ;
ATSlocal (ats_int_type, tmp332) ;
ATSlocal (ats_int_type, tmp333) ;
ATSlocal (ats_ptr_type, tmp334) ;
ATSlocal (ats_int_type, tmp335) ;
ATSlocal (ats_int_type, tmp336) ;
ATSlocal (ats_ptr_type, tmp337) ;
ATSlocal (ats_ptr_type, tmp338) ;
ATSlocal (ats_ptr_type, tmp339) ;
ATSlocal (ats_ptr_type, tmp340) ;
ATSlocal (ats_int_type, tmp341) ;
ATSlocal (ats_ptr_type, tmp342) ;
ATSlocal (ats_int_type, tmp343) ;
ATSlocal (ats_ptr_type, tmp344) ;
ATSlocal (ats_int_type, tmp345) ;
ATSlocal (ats_int_type, tmp346) ;
ATSlocal (ats_ptr_type, tmp347) ;
ATSlocal (ats_int_type, tmp348) ;
ATSlocal (ats_int_type, tmp349) ;
ATSlocal (ats_ptr_type, tmp350) ;

__ats_lab_avltree_rrotate_04435_ats_ptr_type:
tmp323 = ats_ptrget_mac(ats_ptr_type, arg2) ;
// if (tmp323 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp324 = &ats_caselptrlab_mac(anairiats_sum_8, tmp323, atslab_0) ;
tmp325 = &ats_caselptrlab_mac(anairiats_sum_8, tmp323, atslab_2) ;
tmp326 = &ats_caselptrlab_mac(anairiats_sum_8, tmp323, atslab_3) ;
tmp328 = ats_ptrget_mac(ats_ptr_type, tmp325) ;
tmp327 = avltree_height_04381_ats_ptr_type (tmp328) ;
tmp330 = ats_ptrget_mac(ats_ptr_type, tmp326) ;
tmp329 = avltree_height_04381_ats_ptr_type (tmp330) ;
tmp332 = atspre_iadd (tmp327, 0) ;
tmp331 = atspre_igte (tmp332, tmp329) ;
if (tmp331) {
tmp333 = atspre_iadd (tmp329, 1) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp333 ;
tmp334 = ats_ptrget_mac(ats_ptr_type, tmp326) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp334 ;
tmp336 = atspre_imax (tmp327, tmp333) ;
tmp335 = atspre_iadd (1, tmp336) ;
ats_ptrget_mac(ats_int_type, tmp324) = tmp335 ;
ats_ptrget_mac(ats_ptr_type, tmp326) = arg5 ;
tmp322 = tmp323 ;
} else {
tmp337 = ats_ptrget_mac(ats_ptr_type, tmp326) ;
// if (tmp337 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp338 = &ats_caselptrlab_mac(anairiats_sum_8, tmp337, atslab_0) ;
tmp339 = &ats_caselptrlab_mac(anairiats_sum_8, tmp337, atslab_2) ;
tmp340 = &ats_caselptrlab_mac(anairiats_sum_8, tmp337, atslab_3) ;
tmp342 = ats_ptrget_mac(ats_ptr_type, tmp339) ;
tmp341 = avltree_height_04381_ats_ptr_type (tmp342) ;
tmp344 = ats_ptrget_mac(ats_ptr_type, tmp340) ;
tmp343 = avltree_height_04381_ats_ptr_type (tmp344) ;
tmp346 = atspre_imax (tmp343, arg3) ;
tmp345 = atspre_iadd (1, tmp346) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp345 ;
tmp347 = ats_ptrget_mac(ats_ptr_type, tmp340) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp347 ;
tmp349 = atspre_imax (tmp327, tmp341) ;
tmp348 = atspre_iadd (1, tmp349) ;
ats_ptrget_mac(ats_int_type, tmp324) = tmp348 ;
tmp350 = ats_ptrget_mac(ats_ptr_type, tmp339) ;
ats_ptrget_mac(ats_ptr_type, tmp326) = tmp350 ;
ats_ptrget_mac(ats_int_type, tmp338) = arg1 ;
ats_ptrget_mac(ats_ptr_type, tmp339) = tmp323 ;
ats_ptrget_mac(ats_ptr_type, tmp340) = arg5 ;
tmp322 = tmp337 ;
} /* end of [if] */
return (tmp322) ;
} /* end of [avltree_rrotate_04435_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_04411_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, tmp362) ;
ATSlocal (ats_ptr_type, tmp363) ;
ATSlocal (ats_ptr_type, tmp364) ;
ATSlocal (ats_ptr_type, tmp365) ;
ATSlocal (ats_ptr_type, tmp366) ;
ATSlocal (ats_int_type, tmp367) ;
ATSlocal (ats_ptr_type, tmp368) ;
ATSlocal (ats_int_type, tmp369) ;
ATSlocal (ats_ptr_type, tmp370) ;
ATSlocal (ats_bool_type, tmp371) ;
ATSlocal (ats_int_type, tmp372) ;
ATSlocal (ats_int_type, tmp373) ;
ATSlocal (ats_ptr_type, tmp374) ;
ATSlocal (ats_int_type, tmp375) ;
ATSlocal (ats_int_type, tmp376) ;
ATSlocal (ats_ptr_type, tmp377) ;
ATSlocal (ats_ptr_type, tmp378) ;
ATSlocal (ats_ptr_type, tmp379) ;
ATSlocal (ats_ptr_type, tmp380) ;
ATSlocal (ats_int_type, tmp381) ;
ATSlocal (ats_ptr_type, tmp382) ;
ATSlocal (ats_int_type, tmp383) ;
ATSlocal (ats_ptr_type, tmp384) ;
ATSlocal (ats_int_type, tmp385) ;
ATSlocal (ats_int_type, tmp386) ;
ATSlocal (ats_ptr_type, tmp387) ;
ATSlocal (ats_int_type, tmp388) ;
ATSlocal (ats_int_type, tmp389) ;
ATSlocal (ats_ptr_type, tmp390) ;

__ats_lab_avltree_lrotate_04411_ats_ptr_type:
tmp363 = ats_ptrget_mac(ats_ptr_type, arg4) ;
// if (tmp363 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp364 = &ats_caselptrlab_mac(anairiats_sum_8, tmp363, atslab_0) ;
tmp365 = &ats_caselptrlab_mac(anairiats_sum_8, tmp363, atslab_2) ;
tmp366 = &ats_caselptrlab_mac(anairiats_sum_8, tmp363, atslab_3) ;
tmp368 = ats_ptrget_mac(ats_ptr_type, tmp365) ;
tmp367 = avltree_height_04381_ats_ptr_type (tmp368) ;
tmp370 = ats_ptrget_mac(ats_ptr_type, tmp366) ;
tmp369 = avltree_height_04381_ats_ptr_type (tmp370) ;
tmp372 = atspre_iadd (tmp369, 0) ;
tmp371 = atspre_ilte (tmp367, tmp372) ;
if (tmp371) {
tmp373 = atspre_iadd (tmp367, 1) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp373 ;
tmp374 = ats_ptrget_mac(ats_ptr_type, tmp365) ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp374 ;
tmp376 = atspre_imax (tmp373, tmp369) ;
tmp375 = atspre_iadd (1, tmp376) ;
ats_ptrget_mac(ats_int_type, tmp364) = tmp375 ;
ats_ptrget_mac(ats_ptr_type, tmp365) = arg5 ;
tmp362 = tmp363 ;
} else {
tmp377 = ats_ptrget_mac(ats_ptr_type, tmp365) ;
// if (tmp377 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp378 = &ats_caselptrlab_mac(anairiats_sum_8, tmp377, atslab_0) ;
tmp379 = &ats_caselptrlab_mac(anairiats_sum_8, tmp377, atslab_2) ;
tmp380 = &ats_caselptrlab_mac(anairiats_sum_8, tmp377, atslab_3) ;
tmp382 = ats_ptrget_mac(ats_ptr_type, tmp379) ;
tmp381 = avltree_height_04381_ats_ptr_type (tmp382) ;
tmp384 = ats_ptrget_mac(ats_ptr_type, tmp380) ;
tmp383 = avltree_height_04381_ats_ptr_type (tmp384) ;
tmp386 = atspre_imax (arg1, tmp381) ;
tmp385 = atspre_iadd (1, tmp386) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp385 ;
tmp387 = ats_ptrget_mac(ats_ptr_type, tmp379) ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp387 ;
tmp389 = atspre_imax (tmp383, tmp369) ;
tmp388 = atspre_iadd (1, tmp389) ;
ats_ptrget_mac(ats_int_type, tmp364) = tmp388 ;
tmp390 = ats_ptrget_mac(ats_ptr_type, tmp380) ;
ats_ptrget_mac(ats_ptr_type, tmp365) = tmp390 ;
ats_ptrget_mac(ats_int_type, tmp378) = arg3 ;
ats_ptrget_mac(ats_ptr_type, tmp379) = arg5 ;
ats_ptrget_mac(ats_ptr_type, tmp380) = tmp363 ;
tmp362 = tmp377 ;
} /* end of [if] */
return (tmp362) ;
} /* end of [avltree_lrotate_04411_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_92 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp302) ;
ATSlocal (ats_ptr_type, tmp303) ;
ATSlocal (ats_ptr_type, tmp304) ;
ATSlocal (ats_ptr_type, tmp305) ;
ATSlocal (ats_ptr_type, tmp306) ;
ATSlocal (ats_int_type, tmp307) ;
ATSlocal (ats_ptr_type, tmp308) ;
ATSlocal (ats_bool_type, tmp309) ;
ATSlocal (ats_bool_type, tmp310) ;
ATSlocal (ats_int_type, tmp311) ;
ATSlocal (ats_ptr_type, tmp314) ;
ATSlocal (ats_int_type, tmp315) ;
ATSlocal (ats_ptr_type, tmp316) ;
ATSlocal (ats_bool_type, tmp317) ;
ATSlocal (ats_int_type, tmp318) ;
ATSlocal (ats_int_type, tmp319) ;
ATSlocal (ats_int_type, tmp320) ;
ATSlocal (ats_ptr_type, tmp321) ;
ATSlocal (ats_bool_type, tmp351) ;
ATSlocal (ats_bool_type, tmp352) ;
ATSlocal (ats_int_type, tmp353) ;
ATSlocal (ats_ptr_type, tmp354) ;
ATSlocal (ats_int_type, tmp355) ;
ATSlocal (ats_ptr_type, tmp356) ;
ATSlocal (ats_bool_type, tmp357) ;
ATSlocal (ats_int_type, tmp358) ;
ATSlocal (ats_int_type, tmp359) ;
ATSlocal (ats_int_type, tmp360) ;
ATSlocal (ats_ptr_type, tmp361) ;
ATSlocal (ats_ptr_type, tmp391) ;
ATSlocal (ats_ptr_type, tmp392) ;
ATSlocal (ats_ptr_type, tmp393) ;

__ats_lab_insert_92:
do {
/* branch: __ats_lab_63 */
__ats_lab_63_0:
if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; }
__ats_lab_63_1:
tmp303 = &ats_caselptrlab_mac(anairiats_sum_8, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp304 = &ats_caselptrlab_mac(anairiats_sum_8, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ;
tmp305 = &ats_caselptrlab_mac(anairiats_sum_8, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ;
tmp306 = &ats_caselptrlab_mac(anairiats_sum_8, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ;
tmp308 = ats_ptrget_mac(ats_ptr_type, tmp304) ;
tmp307 = compare_elt_elt_03758_ats_ptr_type (arg1, tmp308, env0) ;
tmp309 = atspre_lt_int_int (tmp307, 0) ;
if (tmp309) {
tmp310 = insert_92 (env0, tmp305, arg1) ;
tmp314 = ats_ptrget_mac(ats_ptr_type, tmp305) ;
tmp311 = avltree_height_04381_ats_ptr_type (tmp314) ;
tmp316 = ats_ptrget_mac(ats_ptr_type, tmp306) ;
tmp315 = avltree_height_04381_ats_ptr_type (tmp316) ;
tmp318 = atspre_isub (tmp311, tmp315) ;
tmp317 = atspre_ilte (tmp318, 1) ;
if (tmp317) {
tmp320 = atspre_imax (tmp311, tmp315) ;
tmp319 = atspre_iadd (1, tmp320) ;
ats_ptrget_mac(ats_int_type, tmp303) = tmp319 ;
tmp302 = tmp310 ;
} else {
tmp321 = avltree_rrotate_04435_ats_ptr_type (tmp303, tmp311, tmp305, tmp315, tmp306, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp321 ;
tmp302 = tmp310 ;
} /* end of [if] */
} else {
tmp351 = atspre_gt_int_int (tmp307, 0) ;
if (tmp351) {
tmp352 = insert_92 (env0, tmp306, arg1) ;
tmp354 = ats_ptrget_mac(ats_ptr_type, tmp305) ;
tmp353 = avltree_height_04381_ats_ptr_type (tmp354) ;
tmp356 = ats_ptrget_mac(ats_ptr_type, tmp306) ;
tmp355 = avltree_height_04381_ats_ptr_type (tmp356) ;
tmp358 = atspre_isub (tmp355, tmp353) ;
tmp357 = atspre_ilte (tmp358, 1) ;
if (tmp357) {
tmp360 = atspre_imax (tmp353, tmp355) ;
tmp359 = atspre_iadd (1, tmp360) ;
ats_ptrget_mac(ats_int_type, tmp303) = tmp359 ;
tmp302 = tmp352 ;
} else {
tmp361 = avltree_lrotate_04411_ats_ptr_type (tmp303, tmp353, tmp305, tmp355, tmp306, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp361 ;
tmp302 = tmp352 ;
} /* end of [if] */
} else {
tmp302 = ats_true_bool ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_66 */
__ats_lab_66_0:
// if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_66_1:
tmp392 = (ats_sum_ptr_type)0 ;
tmp393 = (ats_sum_ptr_type)0 ;
tmp391 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp391, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_8, tmp391, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_8, tmp391, atslab_2, tmp392) ;
ats_selptrset_mac(anairiats_sum_8, tmp391, atslab_3, tmp393) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp391 ;
tmp302 = ats_false_bool ;
break ;
} while (0) ;
return (tmp302) ;
} /* end of [insert_92] */

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

ats_bool_type
insert_92_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) {
return insert_92 (((insert_92_closure_type*)cloptr)->closure_env_0, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
insert_92_closure_make (ats_clo_ref_type env0) {
insert_92_closure_type *p_clo = ATS_MALLOC(sizeof(insert_92_closure_type)) ;
insert_92_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_03768_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp301) ;

__ats_lab_linset_insert_03768_ats_ptr_type:
tmp301 = insert_92 (arg2, arg0, arg1) ;
return (tmp301) ;
} /* end of [linset_insert_03768_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 16448(line=827, offs=3) -- 16535(line=830, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_add (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp298) ;
ATSlocal (ats_ptr_type, tmp299) ;
ATSlocal (ats_bool_type, tmp300) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_add:
/* ats_ptr_type tmp299 ; */
tmp299 = arg0 ;
tmp300 = linset_insert_03768_ats_ptr_type ((&tmp299), arg1, statmp174) ;
tmp298 = tmp299 ;
return (tmp298) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_add] */

/*
// /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_98 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp396) ;
ATSlocal (ats_ptr_type, tmp397) ;
ATSlocal (ats_ptr_type, tmp398) ;
ATSlocal (ats_ptr_type, tmp399) ;
ATSlocal (ats_ptr_type, tmp400) ;
ATSlocal (ats_ptr_type, tmp401) ;

__ats_lab_aux_98:
do {
/* branch: __ats_lab_67 */
__ats_lab_67_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; }
__ats_lab_67_1:
tmp397 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ;
tmp398 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_2) ;
tmp399 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_3) ;
ATS_FREE(arg0) ;
tmp400 = aux_98 (tmp399, arg1) ;
tmp401 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp401, atslab_0, tmp397) ;
ats_selptrset_mac(anairiats_sum_2, tmp401, atslab_1, tmp400) ;
arg0 = tmp398 ;
arg1 = tmp401 ;
goto __ats_lab_aux_98 ; // tail call
break ;

/* branch: __ats_lab_68 */
__ats_lab_68_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_68_1:
tmp396 = arg1 ;
break ;
} while (0) ;
return (tmp396) ;
} /* end of [aux_98] */

/*
// /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_03784_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp395) ;
ATSlocal (ats_ptr_type, tmp402) ;

__ats_lab_linset_listize_free_03784_ats_ptr_type:
tmp402 = (ats_sum_ptr_type)0 ;
tmp395 = aux_98 (arg0, tmp402) ;
return (tmp395) ;
} /* end of [linset_listize_free_03784_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 16605(line=833, offs=26) -- 16639(line=833, offs=60)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_listize_free (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp394) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_listize_free:
tmp394 = linset_listize_free_03784_ats_ptr_type (arg0) ;
return (tmp394) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstset_vt_listize_free] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 16889(line=850, offs=11) -- 16974(line=853, offs=35)
*/
ATSstaticdec()
ats_int_type
__ats_fun_99 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp403) ;

__ats_lab___ats_fun_99:
tmp403 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2cst_s2cst (arg0, arg1) ;
return (tmp403) ;
} /* end of [__ats_fun_99] */

typedef struct {
ats_fun_ptr_type closure_fun ;
} __ats_fun_99_closure_type ;

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

ATSinline()
ats_void_type
__ats_fun_99_closure_init (__ats_fun_99_closure_type *p_clo) {
p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_99_clofun ;
return ;
} /* end of function */

ats_clo_ptr_type
__ats_fun_99_closure_make () {
__ats_fun_99_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_99_closure_type)) ;
__ats_fun_99_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/funmap_avltree.dats: 2871(line=98, offs=29) -- 2880(line=98, offs=38)
*/
ATSstaticdec()
ats_ptr_type
funmap_make_nil_03791_ () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp406) ;

__ats_lab_funmap_make_nil_03791_:
tmp406 = (ats_sum_ptr_type)0 ;
return (tmp406) ;
} /* end of [funmap_make_nil_03791_] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 17036(line=859, offs=14) -- 17064(line=859, offs=42)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp405) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_nil:
tmp405 = funmap_make_nil_03791_ () ;
return (tmp405) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_nil] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 1960(line=59, offs=32) -- 1988(line=59, offs=60)
*/
ATSstaticdec()
ats_int_type
compare_key_key_03790_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp418) ;

__ats_lab_compare_key_key_03790_ats_ptr_type:
tmp418 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ;
return (tmp418) ;
} /* end of [compare_key_key_03790_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 5755(line=209, offs=46) -- 6474(line=231, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_rrotate_04818_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp429) ;
ATSlocal (ats_ptr_type, tmp430) ;
ATSlocal (ats_ptr_type, tmp431) ;
ATSlocal (ats_ptr_type, tmp432) ;
ATSlocal (ats_ptr_type, tmp433) ;
ATSlocal (ats_int_type, tmp434) ;
ATSlocal (ats_int_type, tmp435) ;
ATSlocal (ats_int_type, tmp436) ;
ATSlocal (ats_int_type, tmp437) ;
ATSlocal (ats_bool_type, tmp438) ;
ATSlocal (ats_int_type, tmp439) ;
ATSlocal (ats_int_type, tmp440) ;
ATSlocal (ats_int_type, tmp441) ;
ATSlocal (ats_int_type, tmp442) ;
ATSlocal (ats_ptr_type, tmp443) ;
ATSlocal (ats_ptr_type, tmp444) ;
ATSlocal (ats_ptr_type, tmp445) ;
ATSlocal (ats_ptr_type, tmp446) ;
ATSlocal (ats_ptr_type, tmp447) ;
ATSlocal (ats_int_type, tmp448) ;
ATSlocal (ats_int_type, tmp449) ;
ATSlocal (ats_int_type, tmp450) ;
ATSlocal (ats_int_type, tmp451) ;
ATSlocal (ats_ptr_type, tmp452) ;
ATSlocal (ats_int_type, tmp453) ;
ATSlocal (ats_int_type, tmp454) ;
ATSlocal (ats_ptr_type, tmp455) ;
ATSlocal (ats_int_type, tmp456) ;
ATSlocal (ats_int_type, tmp457) ;

__ats_lab_avltree_rrotate_04818_ats_ptr_type_2cats_ptr_type:
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp430 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_1) ;
tmp431 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_2) ;
tmp432 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_3) ;
tmp433 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_4) ;
do {
/* branch: __ats_lab_74 */
__ats_lab_74_0:
if (tmp432 == (ats_sum_ptr_type)0) { goto __ats_lab_75_0 ; }
__ats_lab_74_1:
tmp435 = ats_caselptrlab_mac(anairiats_sum_9, tmp432, atslab_0) ;
tmp434 = tmp435 ;
break ;

/* branch: __ats_lab_75 */
__ats_lab_75_0:
// if (tmp432 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_75_1:
tmp434 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_76 */
__ats_lab_76_0:
if (tmp433 == (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; }
__ats_lab_76_1:
tmp437 = ats_caselptrlab_mac(anairiats_sum_9, tmp433, atslab_0) ;
tmp436 = tmp437 ;
break ;

/* branch: __ats_lab_77 */
__ats_lab_77_0:
// if (tmp433 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_77_1:
tmp436 = 0 ;
break ;
} while (0) ;
tmp439 = atspre_iadd (tmp434, 0) ;
tmp438 = atspre_igte (tmp439, tmp436) ;
if (tmp438) {
tmp440 = atspre_iadd (tmp436, 1) ;
tmp442 = atspre_imax (tmp434, tmp440) ;
tmp441 = atspre_iadd (1, tmp442) ;
tmp443 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp443, atslab_0, tmp440) ;
ats_selptrset_mac(anairiats_sum_9, tmp443, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_9, tmp443, atslab_2, arg1) ;
ats_selptrset_mac(anairiats_sum_9, tmp443, atslab_3, tmp433) ;
ats_selptrset_mac(anairiats_sum_9, tmp443, atslab_4, arg5) ;
tmp429 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_0, tmp441) ;
ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_1, tmp430) ;
ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_2, tmp431) ;
ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_3, tmp432) ;
ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_4, tmp443) ;
} else {
// if (tmp433 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp444 = ats_caselptrlab_mac(anairiats_sum_9, tmp433, atslab_1) ;
tmp445 = ats_caselptrlab_mac(anairiats_sum_9, tmp433, atslab_2) ;
tmp446 = ats_caselptrlab_mac(anairiats_sum_9, tmp433, atslab_3) ;
tmp447 = ats_caselptrlab_mac(anairiats_sum_9, tmp433, atslab_4) ;
do {
/* branch: __ats_lab_78 */
__ats_lab_78_0:
if (tmp446 == (ats_sum_ptr_type)0) { goto __ats_lab_79_0 ; }
__ats_lab_78_1:
tmp449 = ats_caselptrlab_mac(anairiats_sum_9, tmp446, atslab_0) ;
tmp448 = tmp449 ;
break ;

/* branch: __ats_lab_79 */
__ats_lab_79_0:
// if (tmp446 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_79_1:
tmp448 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_80 */
__ats_lab_80_0:
if (tmp447 == (ats_sum_ptr_type)0) { goto __ats_lab_81_0 ; }
__ats_lab_80_1:
tmp451 = ats_caselptrlab_mac(anairiats_sum_9, tmp447, atslab_0) ;
tmp450 = tmp451 ;
break ;

/* branch: __ats_lab_81 */
__ats_lab_81_0:
// if (tmp447 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_81_1:
tmp450 = 0 ;
break ;
} while (0) ;
tmp454 = atspre_imax (tmp434, tmp448) ;
tmp453 = atspre_iadd (1, tmp454) ;
tmp452 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp452, atslab_0, tmp453) ;
ats_selptrset_mac(anairiats_sum_9, tmp452, atslab_1, tmp430) ;
ats_selptrset_mac(anairiats_sum_9, tmp452, atslab_2, tmp431) ;
ats_selptrset_mac(anairiats_sum_9, tmp452, atslab_3, tmp432) ;
ats_selptrset_mac(anairiats_sum_9, tmp452, atslab_4, tmp446) ;
tmp457 = atspre_imax (tmp450, arg4) ;
tmp456 = atspre_iadd (1, tmp457) ;
tmp455 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp455, atslab_0, tmp456) ;
ats_selptrset_mac(anairiats_sum_9, tmp455, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_9, tmp455, atslab_2, arg1) ;
ats_selptrset_mac(anairiats_sum_9, tmp455, atslab_3, tmp447) ;
ats_selptrset_mac(anairiats_sum_9, tmp455, atslab_4, arg5) ;
tmp429 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_0, arg2) ;
ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_1, tmp444) ;
ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_2, tmp445) ;
ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_3, tmp452) ;
ats_selptrset_mac(anairiats_sum_9, tmp429, atslab_4, tmp455) ;
} /* end of [if] */
return (tmp429) ;
} /* end of [avltree_rrotate_04818_ats_ptr_type_2cats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 4857(line=181, offs=46) -- 5607(line=203, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_lrotate_04798_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ptr_type arg5) {
/* local vardec */
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_int_type, tmp473) ;
ATSlocal (ats_int_type, tmp474) ;
ATSlocal (ats_int_type, tmp475) ;
ATSlocal (ats_int_type, tmp476) ;
ATSlocal (ats_bool_type, tmp477) ;
ATSlocal (ats_int_type, tmp478) ;
ATSlocal (ats_int_type, tmp479) ;
ATSlocal (ats_int_type, tmp480) ;
ATSlocal (ats_int_type, tmp481) ;
ATSlocal (ats_ptr_type, tmp482) ;
ATSlocal (ats_ptr_type, tmp483) ;
ATSlocal (ats_ptr_type, tmp484) ;
ATSlocal (ats_ptr_type, tmp485) ;
ATSlocal (ats_ptr_type, tmp486) ;
ATSlocal (ats_int_type, tmp487) ;
ATSlocal (ats_int_type, tmp488) ;
ATSlocal (ats_int_type, tmp489) ;
ATSlocal (ats_int_type, tmp490) ;
ATSlocal (ats_ptr_type, tmp491) ;
ATSlocal (ats_int_type, tmp492) ;
ATSlocal (ats_int_type, tmp493) ;
ATSlocal (ats_ptr_type, tmp494) ;
ATSlocal (ats_int_type, tmp495) ;
ATSlocal (ats_int_type, tmp496) ;

__ats_lab_avltree_lrotate_04798_ats_ptr_type_2cats_ptr_type:
// if (arg5 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp469 = ats_caselptrlab_mac(anairiats_sum_9, arg5, atslab_1) ;
tmp470 = ats_caselptrlab_mac(anairiats_sum_9, arg5, atslab_2) ;
tmp471 = ats_caselptrlab_mac(anairiats_sum_9, arg5, atslab_3) ;
tmp472 = ats_caselptrlab_mac(anairiats_sum_9, arg5, atslab_4) ;
do {
/* branch: __ats_lab_86 */
__ats_lab_86_0:
if (tmp471 == (ats_sum_ptr_type)0) { goto __ats_lab_87_0 ; }
__ats_lab_86_1:
tmp474 = ats_caselptrlab_mac(anairiats_sum_9, tmp471, atslab_0) ;
tmp473 = tmp474 ;
break ;

/* branch: __ats_lab_87 */
__ats_lab_87_0:
// if (tmp471 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_87_1:
tmp473 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_88 */
__ats_lab_88_0:
if (tmp472 == (ats_sum_ptr_type)0) { goto __ats_lab_89_0 ; }
__ats_lab_88_1:
tmp476 = ats_caselptrlab_mac(anairiats_sum_9, tmp472, atslab_0) ;
tmp475 = tmp476 ;
break ;

/* branch: __ats_lab_89 */
__ats_lab_89_0:
// if (tmp472 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_89_1:
tmp475 = 0 ;
break ;
} while (0) ;
tmp478 = atspre_iadd (tmp475, 0) ;
tmp477 = atspre_ilte (tmp473, tmp478) ;
if (tmp477) {
tmp479 = atspre_iadd (tmp473, 1) ;
tmp481 = atspre_imax (tmp479, tmp475) ;
tmp480 = atspre_iadd (1, tmp481) ;
tmp482 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp482, atslab_0, tmp479) ;
ats_selptrset_mac(anairiats_sum_9, tmp482, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_9, tmp482, atslab_2, arg1) ;
ats_selptrset_mac(anairiats_sum_9, tmp482, atslab_3, arg3) ;
ats_selptrset_mac(anairiats_sum_9, tmp482, atslab_4, tmp471) ;
tmp468 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_0, tmp480) ;
ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_1, tmp469) ;
ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_2, tmp470) ;
ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_3, tmp482) ;
ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_4, tmp472) ;
} else {
// if (tmp471 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp483 = ats_caselptrlab_mac(anairiats_sum_9, tmp471, atslab_1) ;
tmp484 = ats_caselptrlab_mac(anairiats_sum_9, tmp471, atslab_2) ;
tmp485 = ats_caselptrlab_mac(anairiats_sum_9, tmp471, atslab_3) ;
tmp486 = ats_caselptrlab_mac(anairiats_sum_9, tmp471, atslab_4) ;
do {
/* branch: __ats_lab_90 */
__ats_lab_90_0:
if (tmp485 == (ats_sum_ptr_type)0) { goto __ats_lab_91_0 ; }
__ats_lab_90_1:
tmp488 = ats_caselptrlab_mac(anairiats_sum_9, tmp485, atslab_0) ;
tmp487 = tmp488 ;
break ;

/* branch: __ats_lab_91 */
__ats_lab_91_0:
// if (tmp485 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_91_1:
tmp487 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_92 */
__ats_lab_92_0:
if (tmp486 == (ats_sum_ptr_type)0) { goto __ats_lab_93_0 ; }
__ats_lab_92_1:
tmp490 = ats_caselptrlab_mac(anairiats_sum_9, tmp486, atslab_0) ;
tmp489 = tmp490 ;
break ;

/* branch: __ats_lab_93 */
__ats_lab_93_0:
// if (tmp486 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_93_1:
tmp489 = 0 ;
break ;
} while (0) ;
tmp493 = atspre_imax (arg2, tmp487) ;
tmp492 = atspre_iadd (1, tmp493) ;
tmp491 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp491, atslab_0, tmp492) ;
ats_selptrset_mac(anairiats_sum_9, tmp491, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_9, tmp491, atslab_2, arg1) ;
ats_selptrset_mac(anairiats_sum_9, tmp491, atslab_3, arg3) ;
ats_selptrset_mac(anairiats_sum_9, tmp491, atslab_4, tmp485) ;
tmp496 = atspre_imax (tmp489, tmp475) ;
tmp495 = atspre_iadd (1, tmp496) ;
tmp494 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp494, atslab_0, tmp495) ;
ats_selptrset_mac(anairiats_sum_9, tmp494, atslab_1, tmp469) ;
ats_selptrset_mac(anairiats_sum_9, tmp494, atslab_2, tmp470) ;
ats_selptrset_mac(anairiats_sum_9, tmp494, atslab_3, tmp486) ;
ats_selptrset_mac(anairiats_sum_9, tmp494, atslab_4, tmp472) ;
tmp468 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_0, arg4) ;
ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_1, tmp483) ;
ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_2, tmp484) ;
ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_3, tmp491) ;
ats_selptrset_mac(anairiats_sum_9, tmp468, atslab_4, tmp494) ;
} /* end of [if] */
return (tmp468) ;
} /* end of [avltree_lrotate_04798_ats_ptr_type_2cats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 6597(line=238, offs=7) -- 7899(line=271, offs=6)
*/
ATSstaticdec()
ats_ptr_type
insert_104 (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2, ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp411) ;
ATSlocal (ats_int_type, tmp412) ;
ATSlocal (ats_ptr_type, tmp413) ;
ATSlocal (ats_ptr_type, tmp414) ;
ATSlocal (ats_ptr_type, tmp415) ;
ATSlocal (ats_ptr_type, tmp416) ;
ATSlocal (ats_int_type, tmp417) ;
ATSlocal (ats_bool_type, tmp419) ;
ATSlocal (ats_ptr_type, tmp420) ;
ATSlocal (ats_int_type, tmp421) ;
ATSlocal (ats_int_type, tmp422) ;
ATSlocal (ats_int_type, tmp423) ;
ATSlocal (ats_int_type, tmp424) ;
ATSlocal (ats_bool_type, tmp425) ;
ATSlocal (ats_int_type, tmp426) ;
ATSlocal (ats_int_type, tmp427) ;
ATSlocal (ats_int_type, tmp428) ;
ATSlocal (ats_bool_type, tmp458) ;
ATSlocal (ats_ptr_type, tmp459) ;
ATSlocal (ats_int_type, tmp460) ;
ATSlocal (ats_int_type, tmp461) ;
ATSlocal (ats_int_type, tmp462) ;
ATSlocal (ats_int_type, tmp463) ;
ATSlocal (ats_bool_type, tmp464) ;
ATSlocal (ats_int_type, tmp465) ;
ATSlocal (ats_int_type, tmp466) ;
ATSlocal (ats_int_type, tmp467) ;
ATSlocal (ats_ptr_type, tmp497) ;
ATSlocal (ats_ptr_type, tmp498) ;

__ats_lab_insert_104:
do {
/* branch: __ats_lab_69 */
__ats_lab_69_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_94_0 ; }
__ats_lab_69_1:
tmp412 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ;
tmp413 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ;
tmp414 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_2) ;
tmp415 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_3) ;
tmp416 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_4) ;
tmp417 = compare_key_key_03790_ats_ptr_type (env0, tmp413, env2) ;
tmp419 = atspre_lt_int_int (tmp417, 0) ;
if (tmp419) {
tmp420 = insert_104 (env0, env1, env2, tmp415, arg1) ;
do {
/* branch: __ats_lab_70 */
__ats_lab_70_0:
if (tmp420 == (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; }
__ats_lab_70_1:
tmp422 = ats_caselptrlab_mac(anairiats_sum_9, tmp420, atslab_0) ;
tmp421 = tmp422 ;
break ;

/* branch: __ats_lab_71 */
__ats_lab_71_0:
// if (tmp420 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_71_1:
tmp421 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_72 */
__ats_lab_72_0:
if (tmp416 == (ats_sum_ptr_type)0) { goto __ats_lab_73_0 ; }
__ats_lab_72_1:
tmp424 = ats_caselptrlab_mac(anairiats_sum_9, tmp416, atslab_0) ;
tmp423 = tmp424 ;
break ;

/* branch: __ats_lab_73 */
__ats_lab_73_0:
// if (tmp416 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_73_1:
tmp423 = 0 ;
break ;
} while (0) ;
tmp426 = atspre_isub (tmp421, tmp423) ;
tmp425 = atspre_ilte (tmp426, 1) ;
if (tmp425) {
tmp428 = atspre_imax (tmp421, tmp423) ;
tmp427 = atspre_iadd (1, tmp428) ;
tmp411 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_0, tmp427) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_1, tmp413) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_2, tmp414) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_3, tmp420) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_4, tmp416) ;
} else {
tmp411 = avltree_rrotate_04818_ats_ptr_type_2cats_ptr_type (tmp413, tmp414, tmp421, tmp420, tmp423, tmp416) ;
} /* end of [if] */
} else {
tmp458 = atspre_gt_int_int (tmp417, 0) ;
if (tmp458) {
tmp459 = insert_104 (env0, env1, env2, tmp416, arg1) ;
do {
/* branch: __ats_lab_82 */
__ats_lab_82_0:
if (tmp415 == (ats_sum_ptr_type)0) { goto __ats_lab_83_0 ; }
__ats_lab_82_1:
tmp461 = ats_caselptrlab_mac(anairiats_sum_9, tmp415, atslab_0) ;
tmp460 = tmp461 ;
break ;

/* branch: __ats_lab_83 */
__ats_lab_83_0:
// if (tmp415 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_83_1:
tmp460 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_84 */
__ats_lab_84_0:
if (tmp459 == (ats_sum_ptr_type)0) { goto __ats_lab_85_0 ; }
__ats_lab_84_1:
tmp463 = ats_caselptrlab_mac(anairiats_sum_9, tmp459, atslab_0) ;
tmp462 = tmp463 ;
break ;

/* branch: __ats_lab_85 */
__ats_lab_85_0:
// if (tmp459 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_85_1:
tmp462 = 0 ;
break ;
} while (0) ;
tmp465 = atspre_isub (tmp462, tmp460) ;
tmp464 = atspre_ilte (tmp465, 1) ;
if (tmp464) {
tmp467 = atspre_imax (tmp460, tmp462) ;
tmp466 = atspre_iadd (1, tmp467) ;
tmp411 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_0, tmp466) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_1, tmp413) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_2, tmp414) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_3, tmp415) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_4, tmp459) ;
} else {
tmp411 = avltree_lrotate_04798_ats_ptr_type_2cats_ptr_type (tmp413, tmp414, tmp460, tmp415, tmp462, tmp459) ;
} /* end of [if] */
} else {
ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ;
tmp411 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_0, tmp412) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_1, tmp413) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_2, env1) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_3, tmp415) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_4, tmp416) ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_94 */
__ats_lab_94_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_94_1:
ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ;
tmp497 = (ats_sum_ptr_type)0 ;
tmp498 = (ats_sum_ptr_type)0 ;
tmp411 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_1, env0) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_2, env1) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_3, tmp497) ;
ats_selptrset_mac(anairiats_sum_9, tmp411, atslab_4, tmp498) ;
break ;
} while (0) ;
return (tmp411) ;
} /* end of [insert_104] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
ats_ptr_type closure_env_1 ;
ats_clo_ref_type closure_env_2 ;
} insert_104_closure_type ;

ats_ptr_type
insert_104_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) {
return insert_104 (((insert_104_closure_type*)cloptr)->closure_env_0, ((insert_104_closure_type*)cloptr)->closure_env_1, ((insert_104_closure_type*)cloptr)->closure_env_2, arg0, arg1) ;
} /* end of function */

ATSinline()
ats_void_type
insert_104_closure_init (insert_104_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2) {
p_clo->closure_fun = (ats_fun_ptr_type)&insert_104_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
insert_104_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2) {
insert_104_closure_type *p_clo = ATS_MALLOC(sizeof(insert_104_closure_type)) ;
insert_104_closure_init (p_clo, env0, env1, env2) ;
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/funmap_avltree.dats: 6560(line=237, offs=3) -- 7985(line=274, offs=2)
*/
ATSstaticdec()
ats_bool_type
funmap_insert_03798_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3) {
/* local vardec */
ATSlocal (ats_bool_type, tmp410) ;
ATSlocal (ats_bool_type, tmp499) ;
ATSlocal (ats_ptr_type, tmp500) ;

__ats_lab_funmap_insert_03798_ats_ptr_type_2cats_ptr_type:
/* ats_bool_type tmp499 ; */
tmp500 = insert_104 (arg1, arg2, arg3, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp499)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp500 ;
tmp410 = tmp499 ;
return (tmp410) ;
} /* end of [funmap_insert_03798_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 17091(line=863, offs=3) -- 17200(line=866, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_add (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp407) ;
ATSlocal (ats_ptr_type, tmp408) ;
ATSlocal (ats_bool_type, tmp409) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_add:
/* ats_ptr_type tmp408 ; */
tmp408 = arg0 ;
tmp409 = funmap_insert_03798_ats_ptr_type_2cats_ptr_type ((&tmp408), arg1, arg2, statmp404) ;
tmp407 = tmp408 ;
return (tmp407) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_add] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 3756(line=137, offs=7) -- 4334(line=154, offs=6)
*/
ATSstaticdec()
ats_bool_type
search_110 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp505) ;
ATSlocal (ats_ptr_type, tmp506) ;
ATSlocal (ats_ptr_type, tmp507) ;
ATSlocal (ats_ptr_type, tmp508) ;
ATSlocal (ats_ptr_type, tmp509) ;
ATSlocal (ats_int_type, tmp510) ;
ATSlocal (ats_bool_type, tmp511) ;
ATSlocal (ats_bool_type, tmp512) ;

__ats_lab_search_110:
do {
/* branch: __ats_lab_95 */
__ats_lab_95_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_99_0 ; }
__ats_lab_95_1:
tmp506 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ;
tmp507 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_2) ;
tmp508 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_3) ;
tmp509 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_4) ;
tmp510 = compare_key_key_03790_ats_ptr_type (env0, tmp506, env1) ;
do {
/* branch: __ats_lab_96 */
__ats_lab_96_0:
__ats_lab_96_1:
tmp511 = atspre_lt_int_int (tmp510, 0) ;
if (!tmp511) { goto __ats_lab_97_1 ; }
arg0 = tmp508 ;
arg1 = arg1 ;
goto __ats_lab_search_110 ; // tail call
break ;

/* branch: __ats_lab_97 */
__ats_lab_97_0:
__ats_lab_97_1:
tmp512 = atspre_gt_int_int (tmp510, 0) ;
if (!tmp512) { goto __ats_lab_98_1 ; }
arg0 = tmp509 ;
arg1 = arg1 ;
goto __ats_lab_search_110 ; // tail call
break ;

/* branch: __ats_lab_98 */
__ats_lab_98_0:
__ats_lab_98_1:
ats_ptrget_mac(ats_ptr_type, arg1) = tmp507 ;
tmp505 = ats_true_bool ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_99 */
__ats_lab_99_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_99_1:
tmp505 = ats_false_bool ;
break ;
} while (0) ;
return (tmp505) ;
} /* end of [search_110] */

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

ats_bool_type
search_110_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) {
return search_110 (((search_110_closure_type*)cloptr)->closure_env_0, ((search_110_closure_type*)cloptr)->closure_env_1, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
search_110_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
search_110_closure_type *p_clo = ATS_MALLOC(sizeof(search_110_closure_type)) ;
search_110_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/funmap_avltree.dats: 3706(line=136, offs=3) -- 4355(line=155, offs=2)
*/
ATSstaticdec()
ats_bool_type
funmap_search_03796_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, tmp504) ;

__ats_lab_funmap_search_03796_ats_ptr_type_2cats_ptr_type:
tmp504 = search_110 (arg1, arg2, arg0, arg3) ;
return (tmp504) ;
} /* end of [funmap_search_03796_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_staexp2_scst.dats: 17257(line=870, offs=7) -- 17548(line=881, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_find (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp501) ;
ATSlocal (ats_ptr_type, tmp502) ;
ATSlocal (ats_bool_type, tmp503) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_find:
/* ats_ptr_type tmp502 ; */
tmp503 = funmap_search_03796_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp404, (&tmp502)) ;
if (tmp503) {
tmp501 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp501, atslab_0, tmp502) ;
} else {
tmp501 = (ats_sum_ptr_type)0 ;
} /* end of [if] */
return (tmp501) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_find] */

/* static load function */

// extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_global_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_filename_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ;
extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2libats_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_2funmap_avltree_2esats__staload (void) ;
extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__staload_flag = 1 ;

// _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_filename_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ;
ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload () ;
// ATS_2d0_2e2_2e12_2libats_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_2funmap_avltree_2esats__staload () ;
ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__staload () ;

return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_scst_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(&statmp174, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp404, sizeof(ats_ptr_type)) ;

/* marking external values for GC */

/* code for dynamic loading */
statmp174 = __ats_fun_69_closure_make () ;
statmp404 = __ats_fun_99_closure_make () ;
return ;
} /* end of [dynload function] */

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

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

/* end of [pats_staexp2_scst_dats.c] */
