/*
**
** The C code is generated by ATS/Anairiats
** The compilation time is: 2019-12-18:  5h:29m
**
*/

/* 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/integer.cats"
#include "prelude/CATS/sizetype.cats"
#include "prelude/CATS/integer_ptr.cats"
#include "prelude/CATS/integer_fixed.cats"
#include "prelude/CATS/pointer.cats"
#include "prelude/CATS/bool.cats"
#include "prelude/CATS/char.cats"
#include "prelude/CATS/byte.cats"
#include "prelude/CATS/float.cats"
#include "prelude/CATS/string.cats"
#include "prelude/CATS/reference.cats"
#include "prelude/CATS/lazy.cats"
#include "prelude/CATS/lazy_vt.cats"
#include "prelude/CATS/printf.cats"
#include "prelude/CATS/list.cats"
#include "prelude/CATS/option.cats"
#include "prelude/CATS/array.cats"
#include "prelude/CATS/matrix.cats"
#endif /* _ATS_PRELUDE_NONE */
/* prologues from statically loaded files */

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

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

typedef
struct {
ats_ptr_type atslab_d2var_sym ;
ats_ptr_type atslab_d2var_loc ;
ats_int_type atslab_d2var_level ;
ats_int_type atslab_d2var_linval ;
ats_bool_type atslab_d2var_isfix ;
ats_bool_type atslab_d2var_isprf ;
ats_ptr_type atslab_d2var_decarg ;
ats_ptr_type atslab_d2var_addr ;
ats_ptr_type atslab_d2var_view ;
ats_ptr_type atslab_d2var_finknd ;
ats_ptr_type atslab_d2var_type ;
ats_ptr_type atslab_d2var_hisexp ;
ats_ptr_type atslab_d2var_mastype ;
ats_int_type atslab_d2var_utimes ;
ats_int_type atslab_d2var_stamp ;
} anairiats_rec_1 ;

typedef struct {
ats_ptr_type atslab_0 ;
} anairiats_sum_2 ;

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

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

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

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

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

typedef struct {
anairiats_rec_7 atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_8 ;

/* 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_dynexp2_2esats__D2VFINnone_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_lvar_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_vbox_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINdone_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) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__B_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__E_1) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_neq_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ;
ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_gte_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_uint_type, atspre_add_uint_uint) (ats_uint_type, ats_uint_type) ;
ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_ilte) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_ieq) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_ineq) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_imax) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_llint_type, atspre_llint_of_int) (ats_int_type) ;
ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ;
ATSextern_fun(ats_size_type, atspre_size_of_int1) (ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_add_size_int) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_add_size_size) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_size_type, atspre_max_size_size) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_sub_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_size_type, atspre_mul_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, ats_malloc_gc) (ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_ref_make_view_ptr) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_char_type, atspre_string_get_char_at) (ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_char_type, atspre_string_get_char_at__intsz) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, atspre_string_copy) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ;
ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ;
ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ;
ATSextern_val(ats_ptr_type, atspre_stropt_none) ;
ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_tostringf) (ats_ptr_type, ...) ;
ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ;
ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_type) ;
ATSextern_fun(ats_size_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_cap) (ats_ref_type) ;
ATSextern_fun(ats_size_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_size) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_empty) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_empty) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_full) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_full) (ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_initialize_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_uninitialize) (ats_ref_type) ;
ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_uninitialize_vt) (ats_ref_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_takeout_tsz) (ats_ref_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_insert_end_many_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_remove_beg_many_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_void_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_clear_all) (ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_copyout_tsz) (ats_ref_type, ats_size_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_update_capacity_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2var_stamp_make) () ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDERSCORE) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__compare_symbol_symbol) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2vfin) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_level) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_addr) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_utimes) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_listize) (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_dynexp2_2esats__sasp__d2varmaplst_vtype = 0 ;
int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sasp__d2varmap_vtype = 0 ;
int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sasp__d2varmap_type = 0 ;
int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sasp__d2varset_vtype = 0 ;
int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sasp__d2varset_type = 0 ;
int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__sasp__d2var_type = 0 ;

/* sum constructor declarations */
/* exn constructor declarations */
/* global dynamic (non-functional) constant declarations */
/* internal function declarations */
static
ats_ptr_type ptr_alloc_01070_anairiats_rec_1 () ;
static
ats_void_type aux_46 (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_46_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ;
static
ats_void_type aux_46_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_50 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type __ats_fun_50_closure_make () ;
static
ats_int_type __ats_fun_50_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type funset_make_nil_04236_ () ;
static
ats_int_type compare_elt_elt_04235_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_bool_type aux_55 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ;
static
ats_clo_ptr_type aux_55_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_bool_type aux_55_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_bool_type funset_is_member_04243_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type avltree_rrotate_04073_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_04056_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_59 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_clo_ptr_type insert_59_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_ptr_type insert_59_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_bool_type funset_insert_04245_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type listize_64 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type funset_listize_04260_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type linset_make_nil_04264_ () ;
static
ats_void_type aux_69 (ats_ptr_type arg0) ;
static
ats_void_type linset_free_04271_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_int_type compare_elt_elt_04263_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_bool_type aux_72 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ;
static
ats_clo_ptr_type aux_72_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_bool_type aux_72_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_bool_type linset_is_member_04269_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_int_type avltree_height_04330_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type avltree_rrotate_04384_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_04360_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_76 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type insert_76_closure_make (ats_clo_ref_type env0) ;
static
ats_bool_type insert_76_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type linset_insert_04273_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type aux_82 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type linset_listize_04288_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type aux_85 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type linset_listize_free_04289_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type loop_88 (ats_ptr_type arg0) ;
static
ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_int_type __ats_fun_89 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type __ats_fun_89_closure_make () ;
static
ats_int_type __ats_fun_89_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type funmap_make_nil_04294_ () ;
static
ats_int_type compare_key_key_04293_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_bool_type search_95 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_clo_ptr_type search_95_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_bool_type search_95_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_bool_type funmap_search_04299_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) ;
static
ats_ptr_type funmap_search_opt_04300_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type avltree_rrotate_04772_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_04752_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_99 (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_99_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2) ;
static
ats_ptr_type insert_99_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_bool_type funmap_insert_04301_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_ptr_type listize_104 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type funmap_listize_04310_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type linmap_make_nil_04317_ () ;
static
ats_void_type _free_109 (ats_ptr_type arg0) ;
static
ats_void_type linmap_free_04334_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ;
static
ats_int_type compare_key_key_04316_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type search_114 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ;
static
ats_clo_ptr_type search_114_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_ptr_type search_114_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_ptr_type linmap_search_ref_04323_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_bool_type linmap_search_04322_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) ;
static
ats_ptr_type linmap_search_opt_04324_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_int_type avltree_height_04948_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type avltree_rrotate_05001_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ;
static
ats_ptr_type avltree_lrotate_04976_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ;
static
ats_bool_type insert_118 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_clo_ptr_type insert_118_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_bool_type insert_118_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_bool_type linmap_insert_04325_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3, ats_ref_type arg4) ;
static
ats_ptr_type avltree_takeout_min_05052_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0) ;
static
ats_bool_type takeout_125 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type takeout_125_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_bool_type takeout_125_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type linmap_takeout_ptr_04340_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ptr_type arg3) ;
static
ats_bool_type linmap_remove_04327_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type aux_129 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type linmap_listize_04336_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type f_132 (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2) ;
static
ats_void_type foreach_135 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type foreach_135_closure_make (ats_ptr_type env0) ;
static
ats_void_type foreach_135_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type linmap_foreach_funenv_04328_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type linmap_clear_funenv_04333_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type ptr0_get_01759_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type ptrget_01763_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type ptr0_set_01760_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type ptrset_01764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type linmap_takeout_04326_ats_ptr_type_2cats_ptr_type (ats_ref_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, statmp140) ;
ATSstatic (ats_ptr_type, statmp393) ;

/* external value variable declarations */

/* function implementations */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57)
*/
ATSstaticdec()
ats_ptr_type
ptr_alloc_01070_anairiats_rec_1 () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp3) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 3014(line=112, offs=3) -- 3755(line=139, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp0) ;
ATSlocal (ats_int_type, tmp1) ;
ATSlocal (ats_ptr_type, tmp2) ;
ATSlocal (ats_ptr_type, tmp4) ;
ATSlocal (ats_ptr_type, tmp5) ;
ATSlocal (ats_ptr_type, tmp6) ;
ATSlocal (ats_ptr_type, tmp7) ;
ATSlocal (ats_ptr_type, tmp8) ;
ATSlocal (ats_ptr_type, tmp9) ;
ATSlocal (ats_ptr_type, tmp10) ;
ATSlocal (ats_ptr_type, tmp11) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make:
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__d2var_stamp_make () ;
tmp2 = ptr_alloc_01070_anairiats_rec_1 () ;
tmp4 = ats_selsin_mac(tmp2, atslab_2) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_sym) = arg1 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_loc) = arg0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_level) = -1 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_linval) = -1 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_isfix) = ats_false_bool ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_isprf) = ats_false_bool ;
tmp5 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_decarg) = tmp5 ;
tmp6 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_addr) = tmp6 ;
tmp7 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_view) = ats_castfn_mac(ats_ptr_type, tmp7) ;
tmp8 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINnone_0) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_finknd) = tmp8 ;
tmp9 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_type) = tmp9 ;
tmp10 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_hisexp) = tmp10 ;
tmp11 = (ats_sum_ptr_type)0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_mastype) = tmp11 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_utimes) = 0 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp4), atslab_d2var_stamp) = tmp1 ;
tmp0 = atspre_ref_make_view_ptr (tmp4) ;
return (tmp0) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 3828(line=145, offs=3) -- 3876(line=145, offs=51)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp12) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any:
tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_UNDERSCORE) ;
return (tmp12) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 3952(line=152, offs=3) -- 4041(line=154, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp13) ;
ATSlocal (ats_ptr_type, tmp14) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym:
tmp14 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp13 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp14), atslab_d2var_sym) ;
return (tmp13) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 4095(line=158, offs=3) -- 4184(line=160, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp15) ;
ATSlocal (ats_ptr_type, tmp16) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc:
tmp16 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp15 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp16), atslab_d2var_loc) ;
return (tmp15) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 4240(line=164, offs=3) -- 4331(line=166, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_level (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp17) ;
ATSlocal (ats_ptr_type, tmp18) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_level:
tmp18 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp17 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp18), atslab_d2var_level) ;
return (tmp17) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_level] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 4386(line=168, offs=17) -- 4476(line=170, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp19) ;
ATSlocal (ats_ptr_type, tmp20) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level:
tmp20 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp20), atslab_d2var_level) = arg1 ;
return /* (tmp19) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 4535(line=174, offs=3) -- 4627(line=176, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp21) ;
ATSlocal (ats_ptr_type, tmp22) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval:
tmp22 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp21 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp22), atslab_d2var_linval) ;
return (tmp21) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 4684(line=178, offs=18) -- 4775(line=180, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp23) ;
ATSlocal (ats_ptr_type, tmp24) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval:
tmp24 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp24), atslab_d2var_linval) = arg1 ;
return /* (tmp23) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 4834(line=184, offs=3) -- 4925(line=186, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_isfix (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp25) ;
ATSlocal (ats_ptr_type, tmp26) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 4980(line=188, offs=17) -- 5074(line=190, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isfix (ats_ptr_type arg0, ats_bool_type arg1) {
/* local vardec */
// ATSlocal_void (tmp27) ;
ATSlocal (ats_ptr_type, tmp28) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isfix:
tmp28 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp28), atslab_d2var_isfix) = arg1 ;
return /* (tmp27) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isfix] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 5132(line=194, offs=3) -- 5223(line=196, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_isprf (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp29) ;
ATSlocal (ats_ptr_type, tmp30) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 5278(line=198, offs=17) -- 5372(line=200, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_isprf (ats_ptr_type arg0, ats_bool_type arg1) {
/* local vardec */
// ATSlocal_void (tmp31) ;
ATSlocal (ats_ptr_type, tmp32) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 5431(line=204, offs=3) -- 5523(line=206, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_decarg (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp33) ;
ATSlocal (ats_ptr_type, tmp34) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 5580(line=208, offs=18) -- 5677(line=210, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_decarg (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp35) ;
ATSlocal (ats_ptr_type, tmp36) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 5735(line=214, offs=3) -- 5825(line=216, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp37) ;
ATSlocal (ats_ptr_type, tmp38) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr:
tmp38 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp37 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp38), atslab_d2var_addr) ;
return (tmp37) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 5878(line=218, offs=16) -- 5973(line=220, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_addr (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp39) ;
ATSlocal (ats_ptr_type, tmp40) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_addr:
tmp40 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp40), atslab_d2var_addr) = arg1 ;
return /* (tmp39) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_addr] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 6029(line=224, offs=3) -- 6146(line=228, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp41) ;
ATSlocal (ats_ptr_type, tmp42) ;
ATSlocal (ats_ptr_type, tmp43) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view:
tmp42 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp43 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp42), atslab_d2var_view) ;
tmp41 = ats_castfn_mac(ats_ptr_type, tmp43) ;
return (tmp41) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 6199(line=230, offs=16) -- 6315(line=234, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_view (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp44) ;
ATSlocal (ats_ptr_type, tmp45) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_view:
tmp45 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp45), atslab_d2var_view) = ats_castfn_mac(ats_ptr_type, arg1) ;
return /* (tmp44) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_view] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 6373(line=238, offs=3) -- 6465(line=240, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_finknd (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp46) ;
ATSlocal (ats_ptr_type, tmp47) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_finknd:
tmp47 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp46 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp47), atslab_d2var_finknd) ;
return (tmp46) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_finknd] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 6522(line=242, offs=18) -- 6613(line=244, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp48) ;
ATSlocal (ats_ptr_type, tmp49) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd:
tmp49 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp49), atslab_d2var_finknd) = arg1 ;
return /* (tmp48) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 6690(line=249, offs=16) -- 6782(line=252, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp50) ;
ATSlocal (ats_ptr_type, tmp51) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type:
tmp51 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp50 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp51), atslab_d2var_type) ;
return (tmp50) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 6835(line=254, offs=16) -- 6924(line=256, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp52) ;
ATSlocal (ats_ptr_type, tmp53) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type:
tmp53 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp53), atslab_d2var_type) = arg1 ;
return /* (tmp52) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 7004(line=262, offs=3) -- 7097(line=264, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp54) ;
ATSlocal (ats_ptr_type, tmp55) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype:
tmp55 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp54 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp55), atslab_d2var_mastype) ;
return (tmp54) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 7156(line=266, offs=19) -- 7248(line=268, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp56) ;
ATSlocal (ats_ptr_type, tmp57) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype:
tmp57 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp57), atslab_d2var_mastype) = arg1 ;
return /* (tmp56) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 7330(line=274, offs=3) -- 7422(line=276, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_hisexp (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp58) ;
ATSlocal (ats_ptr_type, tmp59) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_hisexp:
tmp59 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp58 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp59), atslab_d2var_hisexp) ;
return (tmp58) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_hisexp] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 7479(line=278, offs=18) -- 7570(line=280, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_hisexp (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp60) ;
ATSlocal (ats_ptr_type, tmp61) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_hisexp:
tmp61 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp61), atslab_d2var_hisexp) = arg1 ;
return /* (tmp60) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_hisexp] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 7649(line=285, offs=18) -- 7741(line=287, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp62) ;
ATSlocal (ats_ptr_type, tmp63) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes:
tmp63 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp62 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp63), atslab_d2var_utimes) ;
return (tmp62) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 7798(line=289, offs=18) -- 7906(line=291, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_utimes (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp64) ;
ATSlocal (ats_ptr_type, tmp65) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_utimes:
tmp65 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp65), atslab_d2var_utimes) = arg1 ;
return /* (tmp64) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_utimes] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 7963(line=294, offs=17) -- 8054(line=296, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp66) ;
ATSlocal (ats_ptr_type, tmp67) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp:
tmp67 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp66 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp67), atslab_d2var_stamp) ;
return (tmp66) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8155(line=303, offs=18) -- 8238(line=305, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp68) ;
ATSlocal (ats_int_type, tmp69) ;
ATSlocal (ats_int_type, tmp70) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval:
tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval (arg0) ;
tmp70 = atspre_add_int_int (tmp69, 1) ;
/* tmp68 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval (arg0, tmp70) ;
return /* (tmp68) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_linval] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8296(line=308, offs=18) -- 8383(line=310, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_utimes (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp71) ;
ATSlocal (ats_int_type, tmp72) ;
ATSlocal (ats_int_type, tmp73) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_utimes:
tmp72 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes (arg0) ;
tmp73 = atspre_add_int_int (tmp72, 1) ;
/* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_utimes (arg0, tmp73) ;
return /* (tmp71) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_inc_utimes] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8461(line=315, offs=17) -- 8495(line=315, offs=51)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp74) ;
ATSlocal (ats_int_type, tmp75) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear:
tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval (arg0) ;
tmp74 = atspre_gte_int_int (tmp75, 0) ;
return (tmp74) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8524(line=318, offs=17) -- 8595(line=319, offs=64)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp76) ;
ATSlocal (ats_ptr_type, tmp77) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl:
tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_view (arg0) ;
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (tmp77 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; }
__ats_lab_0_1:
tmp76 = ats_true_bool ;
break ;

/* branch: __ats_lab_1 */
__ats_lab_1_0:
// if (tmp77 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_1_1:
tmp76 = ats_false_bool ;
break ;
} while (0) ;
return (tmp76) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8671(line=325, offs=16) -- 8715(line=325, offs=60)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp78) ;
ATSlocal (ats_int_type, tmp79) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var:
tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (arg0, arg1) ;
tmp78 = atspre_ieq (tmp79, 0) ;
return (tmp78) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8743(line=327, offs=17) -- 8788(line=327, offs=62)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__neq_d2var_d2var (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp80) ;
ATSlocal (ats_int_type, tmp81) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__neq_d2var_d2var:
tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (arg0, arg1) ;
tmp80 = atspre_ineq (tmp81, 0) ;
return (tmp80) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__neq_d2var_d2var] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8842(line=332, offs=21) -- 8921(line=333, offs=69)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp82) ;
ATSlocal (ats_int_type, tmp83) ;
ATSlocal (ats_int_type, tmp84) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var:
tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp (arg0) ;
tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp (arg1) ;
tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__compare_stamp_stamp (tmp83, tmp84) ;
return (tmp82) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8990(line=338, offs=3) -- 9085(line=339, offs=70)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2vsym_d2vsym (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp85) ;
ATSlocal (ats_ptr_type, tmp86) ;
ATSlocal (ats_ptr_type, tmp87) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2vsym_d2vsym:
tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (arg0) ;
tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (arg1) ;
tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__compare_symbol_symbol (tmp86, tmp87) ;
return (tmp85) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2vsym_d2vsym] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 9172(line=346, offs=3) -- 9294(line=351, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_exch_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp88) ;
ATSlocal (ats_ptr_type, tmp89) ;
// ATSlocal_void (tmp90) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_exch_type:
tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (arg0) ;
/* tmp90 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg0, arg1) ;
tmp88 = tmp89 ;
return (tmp88) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_exch_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 9379(line=357, offs=3) -- 9838(line=374, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp91) ;
ATSlocal (ats_ptr_type, tmp92) ;
ATSlocal (ats_ptr_type, tmp93) ;
ATSlocal (ats_ptr_type, tmp94) ;
ATSlocal (ats_ptr_type, tmp95) ;
ATSlocal (ats_ptr_type, tmp96) ;
ATSlocal (ats_ptr_type, tmp97) ;
ATSlocal (ats_ptr_type, tmp98) ;
// ATSlocal_void (tmp99) ;
// ATSlocal_void (tmp100) ;
ATSlocal (ats_ptr_type, tmp101) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make:
tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc (arg0) ;
tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (arg0) ;
do {
/* branch: __ats_lab_2 */
__ats_lab_2_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; }
__ats_lab_2_1:
tmp95 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ;
tmp94 = tmp95 ;
break ;

/* branch: __ats_lab_3 */
__ats_lab_3_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_3_1:
tmp96 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_get_name (tmp93) ;
tmp98 = atspre_string_append (tmp96, ATSstrcst("$view")) ;
tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (tmp98) ;
tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make (tmp92, tmp97) ;
break ;
} while (0) ;
/* tmp99 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval (tmp94, 0) ;
tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (arg0) ;
/* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_addr (tmp94, tmp101) ;
tmp91 = tmp94 ;
return (tmp91) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 9913(line=378, offs=3) -- 9962(line=378, offs=52)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make_none (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp102) ;
ATSlocal (ats_ptr_type, tmp103) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make_none:
tmp103 = (ats_sum_ptr_type)0 ;
tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make (arg0, tmp103) ;
return (tmp102) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make_none] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10046(line=384, offs=13) -- 10084(line=384, offs=51)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2var (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp104) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2var:
/* tmp104 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (stdout, arg0) ;
return /* (tmp104) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2var] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10107(line=386, offs=13) -- 10145(line=386, offs=51)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp105) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var:
/* tmp105 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (stderr, arg0) ;
return /* (tmp105) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10172(line=390, offs=3) -- 10459(line=402, offs=2)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp106) ;
// ATSlocal_void (tmp107) ;
ATSlocal (ats_ptr_type, tmp108) ;
// ATSlocal_void (tmp109) ;
// ATSlocal_void (tmp110) ;
ATSlocal (ats_int_type, tmp111) ;
// ATSlocal_void (tmp112) ;
// ATSlocal_void (tmp113) ;
ATSlocal (ats_int_type, tmp114) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var:
tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (arg1) ;
/* tmp107 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp108) ;
/* tmp109 = */ atspre_fprint_string (arg0, ATSstrcst("$")) ;
tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp (arg1) ;
/* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp (arg0, tmp111) ;
/* tmp112 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ;
tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_level (arg1) ;
/* tmp113 = */ atspre_fprint_int (arg0, tmp114) ;
/* tmp106 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ;
return /* (tmp106) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var] */

/*
// /tmp/ATS-Postiats/src/pats_utils.dats: 11884(line=651, offs=1) -- 12164(line=665, offs=2)
*/
ATSstaticdec()
ats_void_type
aux_46 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp117) ;
ATSlocal (ats_ptr_type, tmp118) ;
ATSlocal (ats_ptr_type, tmp119) ;
// ATSlocal_void (tmp120) ;
ATSlocal (ats_bool_type, tmp121) ;
// ATSlocal_void (tmp122) ;
ATSlocal (ats_int_type, tmp123) ;

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

/* branch: __ats_lab_5 */
__ats_lab_5_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_5_1:
tmp118 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp119 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp121 = atspre_gt_int_int (arg1, 0) ;
if (tmp121) {
/* tmp120 = */ atspre_fprint_string (env0, env1) ;
} else {
/* empty */
} /* end of [if] */
/* tmp122 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp118) ;
tmp123 = atspre_add_int_int (arg1, 1) ;
arg0 = tmp119 ;
arg1 = tmp123 ;
goto __ats_lab_aux_46 ; // tail call
break ;
} while (0) ;
return /* (tmp117) */ ;
} /* end of [aux_46] */

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

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

ATSinline()
ats_void_type
aux_46_closure_init (aux_46_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_46_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_46_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
aux_46_closure_type *p_clo = ATS_MALLOC(sizeof(aux_46_closure_type)) ;
aux_46_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 (tmp116) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10517(line=406, offs=3) -- 10576(line=406, offs=62)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp115) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst:
/* tmp115 = */ fprintlst_01887_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) ;
return /* (tmp115) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varlst] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10650(line=412, offs=14) -- 10685(line=412, offs=49)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2vfin (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp124) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2vfin:
/* tmp124 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2vfin (stdout, arg0) ;
return /* (tmp124) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2vfin] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10709(line=414, offs=14) -- 10744(line=414, offs=49)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2vfin (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp125) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2vfin:
/* tmp125 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2vfin (stderr, arg0) ;
return /* (tmp125) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2vfin] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10772(line=418, offs=3) -- 11455(line=449, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2vfin (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp126) ;
ATSlocal (ats_ptr_type, tmp127) ;
// ATSlocal_void (tmp128) ;
// ATSlocal_void (tmp129) ;
ATSlocal (ats_ptr_type, tmp130) ;
// ATSlocal_void (tmp131) ;
// ATSlocal_void (tmp132) ;
ATSlocal (ats_ptr_type, tmp133) ;
// ATSlocal_void (tmp134) ;
// ATSlocal_void (tmp135) ;
ATSlocal (ats_ptr_type, tmp136) ;
// ATSlocal_void (tmp137) ;
// ATSlocal_void (tmp138) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2vfin:
do {
/* branch: __ats_lab_6 */
__ats_lab_6_0:
if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_7_0 ; }
__ats_lab_6_1:
/* tmp126 = */ atspre_fprint_string (arg0, ATSstrcst("D2VFINnone()")) ;
break ;

/* branch: __ats_lab_7 */
__ats_lab_7_0:
if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_8_0 ; }
__ats_lab_7_1:
tmp127 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ;
/* tmp128 = */ atspre_fprint_string (arg0, ATSstrcst("D2VFINsome(")) ;
/* tmp129 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp127) ;
/* tmp126 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ;
break ;

/* branch: __ats_lab_8 */
__ats_lab_8_0:
if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_9_0 ; }
__ats_lab_8_1:
tmp130 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ;
/* tmp131 = */ atspre_fprint_string (arg0, ATSstrcst("D2VFINsome_lvar(")) ;
/* tmp132 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp130) ;
/* tmp126 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ;
break ;

/* branch: __ats_lab_9 */
__ats_lab_9_0:
if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_10_0 ; }
__ats_lab_9_1:
tmp133 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ;
/* tmp134 = */ atspre_fprint_string (arg0, ATSstrcst("D2VFINsome_vbox(")) ;
/* tmp135 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp133) ;
/* tmp126 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ;
break ;

/* branch: __ats_lab_10 */
__ats_lab_10_0:
// if (((ats_sum_ptr_type)arg1)->tag != 4) { ats_deadcode_failure_handle () ; }
__ats_lab_10_1:
tmp136 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ;
/* tmp137 = */ atspre_fprint_string (arg0, ATSstrcst("D2VFINdone(")) ;
/* tmp138 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2vfin (arg0, tmp136) ;
/* tmp126 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ;
break ;
} while (0) ;
return /* (tmp126) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2vfin] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 11709(line=463, offs=11) -- 11794(line=466, offs=35)
*/
ATSstaticdec()
ats_int_type
__ats_fun_50 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp139) ;

__ats_lab___ats_fun_50:
tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (arg0, arg1) ;
return (tmp139) ;
} /* end of [__ats_fun_50] */

typedef struct {
ats_fun_ptr_type closure_fun ;
} __ats_fun_50_closure_type ;

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

ATSinline()
ats_void_type
__ats_fun_50_closure_init (__ats_fun_50_closure_type *p_clo) {
p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_50_clofun ;
return ;
} /* end of function */

ats_clo_ptr_type
__ats_fun_50_closure_make () {
__ats_fun_50_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_50_closure_type)) ;
__ats_fun_50_closure_init (p_clo) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /home/ats-lang-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_04236_ () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp142) ;

__ats_lab_funset_make_nil_04236_:
tmp142 = (ats_sum_ptr_type)0 ;
return (tmp142) ;
} /* end of [funset_make_nil_04236_] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 11939(line=475, offs=14) -- 11966(line=475, offs=41)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp141) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_nil:
tmp141 = funset_make_nil_04236_ () ;
return (tmp141) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_nil] */

/*
// /home/ats-lang-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_04235_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp150) ;

__ats_lab_compare_elt_elt_04235_ats_ptr_type:
tmp150 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ;
return (tmp150) ;
} /* end of [compare_elt_elt_04235_ats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4143(line=153, offs=7) -- 4406(line=161, offs=20)
*/
ATSstaticdec()
ats_bool_type
aux_55 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp145) ;
ATSlocal (ats_ptr_type, tmp146) ;
ATSlocal (ats_ptr_type, tmp147) ;
ATSlocal (ats_ptr_type, tmp148) ;
ATSlocal (ats_int_type, tmp149) ;
ATSlocal (ats_bool_type, tmp151) ;
ATSlocal (ats_bool_type, tmp152) ;

__ats_lab_aux_55:
do {
/* branch: __ats_lab_11 */
__ats_lab_11_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; }
__ats_lab_11_1:
tmp146 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp147 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ;
tmp148 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ;
tmp149 = compare_elt_elt_04235_ats_ptr_type (env0, tmp146, env1) ;
tmp151 = atspre_lt_int_int (tmp149, 0) ;
if (tmp151) {
arg0 = tmp147 ;
goto __ats_lab_aux_55 ; // tail call
} else {
tmp152 = atspre_gt_int_int (tmp149, 0) ;
if (tmp152) {
arg0 = tmp148 ;
goto __ats_lab_aux_55 ; // tail call
} else {
tmp145 = ats_true_bool ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_12 */
__ats_lab_12_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_12_1:
tmp145 = ats_false_bool ;
break ;
} while (0) ;
return (tmp145) ;
} /* end of [aux_55] */

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

ats_bool_type
aux_55_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
return aux_55 (((aux_55_closure_type*)cloptr)->closure_env_0, ((aux_55_closure_type*)cloptr)->closure_env_1, arg0) ;
} /* end of function */

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

ats_clo_ptr_type
aux_55_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
aux_55_closure_type *p_clo = ATS_MALLOC(sizeof(aux_55_closure_type)) ;
aux_55_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /home/ats-lang-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_04243_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp144) ;

__ats_lab_funset_is_member_04243_ats_ptr_type:
tmp144 = aux_55 (arg1, arg2, arg0) ;
return (tmp144) ;
} /* end of [funset_is_member_04243_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 11995(line=479, offs=3) -- 12038(line=479, offs=46)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_ismem (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp143) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_ismem:
tmp143 = funset_is_member_04243_ats_ptr_type (arg0, arg1, statmp140) ;
return (tmp143) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_ismem] */

/*
// /home/ats-lang-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_04073_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, tmp173) ;
ATSlocal (ats_ptr_type, tmp174) ;
ATSlocal (ats_ptr_type, tmp175) ;
ATSlocal (ats_ptr_type, tmp176) ;
ATSlocal (ats_int_type, tmp177) ;
ATSlocal (ats_int_type, tmp178) ;
ATSlocal (ats_int_type, tmp179) ;
ATSlocal (ats_int_type, tmp180) ;
ATSlocal (ats_bool_type, tmp181) ;
ATSlocal (ats_int_type, tmp182) ;
ATSlocal (ats_int_type, tmp183) ;
ATSlocal (ats_int_type, tmp184) ;
ATSlocal (ats_int_type, tmp185) ;
ATSlocal (ats_ptr_type, tmp186) ;
ATSlocal (ats_ptr_type, tmp187) ;
ATSlocal (ats_ptr_type, tmp188) ;
ATSlocal (ats_ptr_type, tmp189) ;
ATSlocal (ats_int_type, tmp190) ;
ATSlocal (ats_int_type, tmp191) ;
ATSlocal (ats_int_type, tmp192) ;
ATSlocal (ats_int_type, tmp193) ;
ATSlocal (ats_ptr_type, tmp194) ;
ATSlocal (ats_int_type, tmp195) ;
ATSlocal (ats_int_type, tmp196) ;
ATSlocal (ats_ptr_type, tmp197) ;
ATSlocal (ats_int_type, tmp198) ;
ATSlocal (ats_int_type, tmp199) ;

__ats_lab_avltree_rrotate_04073_ats_ptr_type:
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp174 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ;
tmp175 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_2) ;
tmp176 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_3) ;
do {
/* branch: __ats_lab_18 */
__ats_lab_18_0:
if (tmp175 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; }
__ats_lab_18_1:
tmp178 = ats_caselptrlab_mac(anairiats_sum_5, tmp175, atslab_0) ;
tmp177 = tmp178 ;
break ;

/* branch: __ats_lab_19 */
__ats_lab_19_0:
// if (tmp175 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_19_1:
tmp177 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_20 */
__ats_lab_20_0:
if (tmp176 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; }
__ats_lab_20_1:
tmp180 = ats_caselptrlab_mac(anairiats_sum_5, tmp176, atslab_0) ;
tmp179 = tmp180 ;
break ;

/* branch: __ats_lab_21 */
__ats_lab_21_0:
// if (tmp176 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_21_1:
tmp179 = 0 ;
break ;
} while (0) ;
tmp182 = atspre_iadd (tmp177, 0) ;
tmp181 = atspre_igte (tmp182, tmp179) ;
if (tmp181) {
tmp183 = atspre_iadd (tmp179, 1) ;
tmp185 = atspre_imax (tmp177, tmp183) ;
tmp184 = atspre_iadd (1, tmp185) ;
tmp186 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp186, atslab_0, tmp183) ;
ats_selptrset_mac(anairiats_sum_5, tmp186, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_5, tmp186, atslab_2, tmp176) ;
ats_selptrset_mac(anairiats_sum_5, tmp186, atslab_3, arg4) ;
tmp173 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp173, atslab_0, tmp184) ;
ats_selptrset_mac(anairiats_sum_5, tmp173, atslab_1, tmp174) ;
ats_selptrset_mac(anairiats_sum_5, tmp173, atslab_2, tmp175) ;
ats_selptrset_mac(anairiats_sum_5, tmp173, atslab_3, tmp186) ;
} else {
// if (tmp176 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp187 = ats_caselptrlab_mac(anairiats_sum_5, tmp176, atslab_1) ;
tmp188 = ats_caselptrlab_mac(anairiats_sum_5, tmp176, atslab_2) ;
tmp189 = ats_caselptrlab_mac(anairiats_sum_5, tmp176, atslab_3) ;
do {
/* branch: __ats_lab_22 */
__ats_lab_22_0:
if (tmp188 == (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; }
__ats_lab_22_1:
tmp191 = ats_caselptrlab_mac(anairiats_sum_5, tmp188, atslab_0) ;
tmp190 = tmp191 ;
break ;

/* branch: __ats_lab_23 */
__ats_lab_23_0:
// if (tmp188 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_23_1:
tmp190 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_24 */
__ats_lab_24_0:
if (tmp189 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; }
__ats_lab_24_1:
tmp193 = ats_caselptrlab_mac(anairiats_sum_5, tmp189, atslab_0) ;
tmp192 = tmp193 ;
break ;

/* branch: __ats_lab_25 */
__ats_lab_25_0:
// if (tmp189 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_25_1:
tmp192 = 0 ;
break ;
} while (0) ;
tmp196 = atspre_imax (tmp177, tmp190) ;
tmp195 = atspre_iadd (1, tmp196) ;
tmp194 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp194, atslab_0, tmp195) ;
ats_selptrset_mac(anairiats_sum_5, tmp194, atslab_1, tmp174) ;
ats_selptrset_mac(anairiats_sum_5, tmp194, atslab_2, tmp175) ;
ats_selptrset_mac(anairiats_sum_5, tmp194, atslab_3, tmp188) ;
tmp199 = atspre_imax (tmp192, arg3) ;
tmp198 = atspre_iadd (1, tmp199) ;
tmp197 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp197, atslab_0, tmp198) ;
ats_selptrset_mac(anairiats_sum_5, tmp197, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_5, tmp197, atslab_2, tmp189) ;
ats_selptrset_mac(anairiats_sum_5, tmp197, atslab_3, arg4) ;
tmp173 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp173, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_5, tmp173, atslab_1, tmp187) ;
ats_selptrset_mac(anairiats_sum_5, tmp173, atslab_2, tmp194) ;
ats_selptrset_mac(anairiats_sum_5, tmp173, atslab_3, tmp197) ;
} /* end of [if] */
return (tmp173) ;
} /* end of [avltree_rrotate_04073_ats_ptr_type] */

/*
// /home/ats-lang-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_04056_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, tmp210) ;
ATSlocal (ats_ptr_type, tmp211) ;
ATSlocal (ats_ptr_type, tmp212) ;
ATSlocal (ats_ptr_type, tmp213) ;
ATSlocal (ats_int_type, tmp214) ;
ATSlocal (ats_int_type, tmp215) ;
ATSlocal (ats_int_type, tmp216) ;
ATSlocal (ats_int_type, tmp217) ;
ATSlocal (ats_bool_type, tmp218) ;
ATSlocal (ats_int_type, tmp219) ;
ATSlocal (ats_int_type, tmp220) ;
ATSlocal (ats_int_type, tmp221) ;
ATSlocal (ats_int_type, tmp222) ;
ATSlocal (ats_ptr_type, tmp223) ;
ATSlocal (ats_ptr_type, tmp224) ;
ATSlocal (ats_ptr_type, tmp225) ;
ATSlocal (ats_ptr_type, tmp226) ;
ATSlocal (ats_int_type, tmp227) ;
ATSlocal (ats_int_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) ;
ATSlocal (ats_ptr_type, tmp234) ;
ATSlocal (ats_int_type, tmp235) ;
ATSlocal (ats_int_type, tmp236) ;

__ats_lab_avltree_lrotate_04056_ats_ptr_type:
// if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp211 = ats_caselptrlab_mac(anairiats_sum_5, arg4, atslab_1) ;
tmp212 = ats_caselptrlab_mac(anairiats_sum_5, arg4, atslab_2) ;
tmp213 = ats_caselptrlab_mac(anairiats_sum_5, arg4, atslab_3) ;
do {
/* branch: __ats_lab_30 */
__ats_lab_30_0:
if (tmp212 == (ats_sum_ptr_type)0) { goto __ats_lab_31_0 ; }
__ats_lab_30_1:
tmp215 = ats_caselptrlab_mac(anairiats_sum_5, tmp212, atslab_0) ;
tmp214 = tmp215 ;
break ;

/* branch: __ats_lab_31 */
__ats_lab_31_0:
// if (tmp212 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_31_1:
tmp214 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_32 */
__ats_lab_32_0:
if (tmp213 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; }
__ats_lab_32_1:
tmp217 = ats_caselptrlab_mac(anairiats_sum_5, tmp213, atslab_0) ;
tmp216 = tmp217 ;
break ;

/* branch: __ats_lab_33 */
__ats_lab_33_0:
// if (tmp213 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_33_1:
tmp216 = 0 ;
break ;
} while (0) ;
tmp219 = atspre_iadd (tmp216, 0) ;
tmp218 = atspre_ilte (tmp214, tmp219) ;
if (tmp218) {
tmp220 = atspre_iadd (tmp214, 1) ;
tmp222 = atspre_imax (tmp220, tmp216) ;
tmp221 = atspre_iadd (1, tmp222) ;
tmp223 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp223, atslab_0, tmp220) ;
ats_selptrset_mac(anairiats_sum_5, tmp223, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_5, tmp223, atslab_2, arg2) ;
ats_selptrset_mac(anairiats_sum_5, tmp223, atslab_3, tmp212) ;
tmp210 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp210, atslab_0, tmp221) ;
ats_selptrset_mac(anairiats_sum_5, tmp210, atslab_1, tmp211) ;
ats_selptrset_mac(anairiats_sum_5, tmp210, atslab_2, tmp223) ;
ats_selptrset_mac(anairiats_sum_5, tmp210, atslab_3, tmp213) ;
} else {
// if (tmp212 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp224 = ats_caselptrlab_mac(anairiats_sum_5, tmp212, atslab_1) ;
tmp225 = ats_caselptrlab_mac(anairiats_sum_5, tmp212, atslab_2) ;
tmp226 = ats_caselptrlab_mac(anairiats_sum_5, tmp212, atslab_3) ;
do {
/* branch: __ats_lab_34 */
__ats_lab_34_0:
if (tmp225 == (ats_sum_ptr_type)0) { goto __ats_lab_35_0 ; }
__ats_lab_34_1:
tmp228 = ats_caselptrlab_mac(anairiats_sum_5, tmp225, atslab_0) ;
tmp227 = tmp228 ;
break ;

/* branch: __ats_lab_35 */
__ats_lab_35_0:
// if (tmp225 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_35_1:
tmp227 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_36 */
__ats_lab_36_0:
if (tmp226 == (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; }
__ats_lab_36_1:
tmp230 = ats_caselptrlab_mac(anairiats_sum_5, tmp226, atslab_0) ;
tmp229 = tmp230 ;
break ;

/* branch: __ats_lab_37 */
__ats_lab_37_0:
// if (tmp226 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_37_1:
tmp229 = 0 ;
break ;
} while (0) ;
tmp233 = atspre_imax (arg1, tmp227) ;
tmp232 = atspre_iadd (1, tmp233) ;
tmp231 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp231, atslab_0, tmp232) ;
ats_selptrset_mac(anairiats_sum_5, tmp231, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_5, tmp231, atslab_2, arg2) ;
ats_selptrset_mac(anairiats_sum_5, tmp231, atslab_3, tmp225) ;
tmp236 = atspre_imax (tmp229, tmp216) ;
tmp235 = atspre_iadd (1, tmp236) ;
tmp234 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp234, atslab_0, tmp235) ;
ats_selptrset_mac(anairiats_sum_5, tmp234, atslab_1, tmp211) ;
ats_selptrset_mac(anairiats_sum_5, tmp234, atslab_2, tmp226) ;
ats_selptrset_mac(anairiats_sum_5, tmp234, atslab_3, tmp213) ;
tmp210 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp210, atslab_0, arg3) ;
ats_selptrset_mac(anairiats_sum_5, tmp210, atslab_1, tmp224) ;
ats_selptrset_mac(anairiats_sum_5, tmp210, atslab_2, tmp231) ;
ats_selptrset_mac(anairiats_sum_5, tmp210, atslab_3, tmp234) ;
} /* end of [if] */
return (tmp210) ;
} /* end of [avltree_lrotate_04056_ats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6278(line=231, offs=7) -- 7544(line=264, offs=6)
*/
ATSstaticdec()
ats_ptr_type
insert_59 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp157) ;
ATSlocal (ats_int_type, tmp158) ;
ATSlocal (ats_ptr_type, tmp159) ;
ATSlocal (ats_ptr_type, tmp160) ;
ATSlocal (ats_ptr_type, tmp161) ;
ATSlocal (ats_int_type, tmp162) ;
ATSlocal (ats_bool_type, tmp163) ;
ATSlocal (ats_ptr_type, tmp164) ;
ATSlocal (ats_int_type, tmp165) ;
ATSlocal (ats_int_type, tmp166) ;
ATSlocal (ats_int_type, tmp167) ;
ATSlocal (ats_int_type, tmp168) ;
ATSlocal (ats_bool_type, tmp169) ;
ATSlocal (ats_int_type, tmp170) ;
ATSlocal (ats_int_type, tmp171) ;
ATSlocal (ats_int_type, tmp172) ;
ATSlocal (ats_bool_type, tmp200) ;
ATSlocal (ats_ptr_type, tmp201) ;
ATSlocal (ats_int_type, tmp202) ;
ATSlocal (ats_int_type, tmp203) ;
ATSlocal (ats_int_type, tmp204) ;
ATSlocal (ats_int_type, tmp205) ;
ATSlocal (ats_bool_type, tmp206) ;
ATSlocal (ats_int_type, tmp207) ;
ATSlocal (ats_int_type, tmp208) ;
ATSlocal (ats_int_type, tmp209) ;
ATSlocal (ats_ptr_type, tmp237) ;
ATSlocal (ats_ptr_type, tmp238) ;

__ats_lab_insert_59:
do {
/* branch: __ats_lab_13 */
__ats_lab_13_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; }
__ats_lab_13_1:
tmp158 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp159 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp160 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ;
tmp161 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ;
tmp162 = compare_elt_elt_04235_ats_ptr_type (env0, tmp159, env1) ;
tmp163 = atspre_lt_int_int (tmp162, 0) ;
if (tmp163) {
tmp164 = insert_59 (env0, env1, tmp160, arg1) ;
do {
/* branch: __ats_lab_14 */
__ats_lab_14_0:
if (tmp164 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; }
__ats_lab_14_1:
tmp166 = ats_caselptrlab_mac(anairiats_sum_5, tmp164, atslab_0) ;
tmp165 = tmp166 ;
break ;

/* branch: __ats_lab_15 */
__ats_lab_15_0:
// if (tmp164 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_15_1:
tmp165 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_16 */
__ats_lab_16_0:
if (tmp161 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; }
__ats_lab_16_1:
tmp168 = ats_caselptrlab_mac(anairiats_sum_5, tmp161, atslab_0) ;
tmp167 = tmp168 ;
break ;

/* branch: __ats_lab_17 */
__ats_lab_17_0:
// if (tmp161 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_17_1:
tmp167 = 0 ;
break ;
} while (0) ;
tmp170 = atspre_isub (tmp165, tmp167) ;
tmp169 = atspre_ilte (tmp170, 1) ;
if (tmp169) {
tmp172 = atspre_imax (tmp165, tmp167) ;
tmp171 = atspre_iadd (1, tmp172) ;
tmp157 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_0, tmp171) ;
ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_1, tmp159) ;
ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_2, tmp164) ;
ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_3, tmp161) ;
} else {
tmp157 = avltree_rrotate_04073_ats_ptr_type (tmp159, tmp165, tmp164, tmp167, tmp161) ;
} /* end of [if] */
} else {
tmp200 = atspre_gt_int_int (tmp162, 0) ;
if (tmp200) {
tmp201 = insert_59 (env0, env1, tmp161, arg1) ;
do {
/* branch: __ats_lab_26 */
__ats_lab_26_0:
if (tmp160 == (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; }
__ats_lab_26_1:
tmp203 = ats_caselptrlab_mac(anairiats_sum_5, tmp160, atslab_0) ;
tmp202 = tmp203 ;
break ;

/* branch: __ats_lab_27 */
__ats_lab_27_0:
// if (tmp160 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_27_1:
tmp202 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_28 */
__ats_lab_28_0:
if (tmp201 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; }
__ats_lab_28_1:
tmp205 = ats_caselptrlab_mac(anairiats_sum_5, tmp201, atslab_0) ;
tmp204 = tmp205 ;
break ;

/* branch: __ats_lab_29 */
__ats_lab_29_0:
// if (tmp201 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_29_1:
tmp204 = 0 ;
break ;
} while (0) ;
tmp207 = atspre_isub (tmp204, tmp202) ;
tmp206 = atspre_ilte (tmp207, 1) ;
if (tmp206) {
tmp209 = atspre_imax (tmp202, tmp204) ;
tmp208 = atspre_iadd (1, tmp209) ;
tmp157 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_0, tmp208) ;
ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_1, tmp159) ;
ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_2, tmp160) ;
ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_3, tmp201) ;
} else {
tmp157 = avltree_lrotate_04056_ats_ptr_type (tmp159, tmp202, tmp160, tmp204, tmp201) ;
} /* end of [if] */
} else {
ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ;
tmp157 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_0, tmp158) ;
ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_1, env0) ;
ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_2, tmp160) ;
ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_3, tmp161) ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_38 */
__ats_lab_38_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_38_1:
ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ;
tmp237 = (ats_sum_ptr_type)0 ;
tmp238 = (ats_sum_ptr_type)0 ;
tmp157 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_1, env0) ;
ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_2, tmp237) ;
ats_selptrset_mac(anairiats_sum_5, tmp157, atslab_3, tmp238) ;
break ;
} while (0) ;
return (tmp157) ;
} /* end of [insert_59] */

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

ats_ptr_type
insert_59_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) {
return insert_59 (((insert_59_closure_type*)cloptr)->closure_env_0, ((insert_59_closure_type*)cloptr)->closure_env_1, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
insert_59_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
insert_59_closure_type *p_clo = ATS_MALLOC(sizeof(insert_59_closure_type)) ;
insert_59_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /home/ats-lang-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_04245_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp156) ;
ATSlocal (ats_bool_type, tmp239) ;
ATSlocal (ats_ptr_type, tmp240) ;

__ats_lab_funset_insert_04245_ats_ptr_type:
/* ats_bool_type tmp239 ; */
tmp240 = insert_59 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp239)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp240 ;
tmp156 = tmp239 ;
return (tmp156) ;
} /* end of [funset_insert_04245_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12092(line=484, offs=3) -- 12181(line=487, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_add (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp153) ;
ATSlocal (ats_ptr_type, tmp154) ;
ATSlocal (ats_bool_type, tmp155) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_add:
/* ats_ptr_type tmp154 ; */
tmp154 = arg0 ;
tmp155 = funset_insert_04245_ats_ptr_type ((&tmp154), arg1, statmp140) ;
tmp153 = tmp154 ;
return (tmp153) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_add] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 20241(line=721, offs=7) -- 20545(line=732, offs=18)
*/
ATSstaticdec()
ats_ptr_type
listize_64 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp243) ;
ATSlocal (ats_ptr_type, tmp244) ;
ATSlocal (ats_ptr_type, tmp245) ;
ATSlocal (ats_ptr_type, tmp246) ;
ATSlocal (ats_ptr_type, tmp247) ;
ATSlocal (ats_ptr_type, tmp248) ;

__ats_lab_listize_64:
do {
/* branch: __ats_lab_39 */
__ats_lab_39_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; }
__ats_lab_39_1:
tmp244 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp245 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ;
tmp246 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ;
tmp247 = listize_64 (tmp246, arg1) ;
tmp248 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp248, atslab_0, tmp244) ;
ats_selptrset_mac(anairiats_sum_3, tmp248, atslab_1, tmp247) ;
arg0 = tmp245 ;
arg1 = tmp248 ;
goto __ats_lab_listize_64 ; // tail call
break ;

/* branch: __ats_lab_40 */
__ats_lab_40_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_40_1:
tmp243 = arg1 ;
break ;
} while (0) ;
return (tmp243) ;
} /* end of [listize_64] */

/*
// /home/ats-lang-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_04260_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp242) ;
ATSlocal (ats_ptr_type, tmp249) ;

__ats_lab_funset_listize_04260_ats_ptr_type:
tmp249 = (ats_sum_ptr_type)0 ;
tmp242 = listize_64 (arg0, tmp249) ;
return (tmp242) ;
} /* end of [funset_listize_04260_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12235(line=490, offs=18) -- 12264(line=490, offs=47)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_listize (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp241) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_listize:
tmp241 = funset_listize_04260_ats_ptr_type (arg0) ;
return (tmp241) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_listize] */

/*
// /home/ats-lang-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_04264_ () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp251) ;

__ats_lab_linset_make_nil_04264_:
tmp251 = (ats_sum_ptr_type)0 ;
return (tmp251) ;
} /* end of [linset_make_nil_04264_] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12314(line=495, offs=17) -- 12341(line=495, offs=44)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp250) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_nil:
tmp250 = linset_make_nil_04264_ () ;
return (tmp250) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_nil] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4427(line=171, offs=7) -- 4555(line=175, offs=18)
*/
ATSstaticdec()
ats_void_type
aux_69 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp254) ;
ATSlocal (ats_ptr_type, tmp255) ;
ATSlocal (ats_ptr_type, tmp256) ;
// ATSlocal_void (tmp257) ;

__ats_lab_aux_69:
do {
/* branch: __ats_lab_41 */
__ats_lab_41_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; }
__ats_lab_41_1:
tmp255 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ;
tmp256 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ;
ATS_FREE(arg0) ;
/* tmp257 = */ aux_69 (tmp255) ;
arg0 = tmp256 ;
goto __ats_lab_aux_69 ; // tail call
break ;

/* branch: __ats_lab_42 */
__ats_lab_42_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_42_1:
break ;
} while (0) ;
return /* (tmp254) */ ;
} /* end of [aux_69] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4410(line=170, offs=13) -- 4591(line=179, offs=4)
*/
ATSstaticdec()
ats_void_type
linset_free_04271_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp253) ;

__ats_lab_linset_free_04271_ats_ptr_type:
/* tmp253 = */ aux_69 (arg0) ;
return /* (tmp253) */ ;
} /* end of [linset_free_04271_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12370(line=498, offs=18) -- 12396(line=498, offs=44)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_free (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp252) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_free:
/* tmp252 = */ linset_free_04271_ats_ptr_type (arg0) ;
return /* (tmp252) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_free] */

/*
// /home/ats-lang-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_04263_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp265) ;

__ats_lab_compare_elt_elt_04263_ats_ptr_type:
tmp265 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ;
return (tmp265) ;
} /* end of [compare_elt_elt_04263_ats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3861(line=149, offs=7) -- 4231(line=160, offs=33)
*/
ATSstaticdec()
ats_bool_type
aux_72 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp260) ;
ATSlocal (ats_ptr_type, tmp261) ;
ATSlocal (ats_ptr_type, tmp262) ;
ATSlocal (ats_ptr_type, tmp263) ;
ATSlocal (ats_int_type, tmp264) ;
ATSlocal (ats_bool_type, tmp266) ;
ATSlocal (ats_ptr_type, tmp267) ;
ATSlocal (ats_bool_type, tmp268) ;
ATSlocal (ats_ptr_type, tmp269) ;

__ats_lab_aux_72:
do {
/* branch: __ats_lab_43 */
__ats_lab_43_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_44_0 ; }
__ats_lab_43_1:
tmp261 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp262 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ;
tmp263 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ;
tmp264 = compare_elt_elt_04263_ats_ptr_type (env0, tmp261, env1) ;
tmp266 = atspre_lt_int_int (tmp264, 0) ;
if (tmp266) {
tmp267 = ats_ptrget_mac(ats_ptr_type, tmp262) ;
arg0 = tmp267 ;
goto __ats_lab_aux_72 ; // tail call
} else {
tmp268 = atspre_gt_int_int (tmp264, 0) ;
if (tmp268) {
tmp269 = ats_ptrget_mac(ats_ptr_type, tmp263) ;
arg0 = tmp269 ;
goto __ats_lab_aux_72 ; // tail call
} else {
tmp260 = ats_true_bool ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_44 */
__ats_lab_44_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_44_1:
tmp260 = ats_false_bool ;
break ;
} while (0) ;
return (tmp260) ;
} /* end of [aux_72] */

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

ats_bool_type
aux_72_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
return aux_72 (((aux_72_closure_type*)cloptr)->closure_env_0, ((aux_72_closure_type*)cloptr)->closure_env_1, arg0) ;
} /* end of function */

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

ats_clo_ptr_type
aux_72_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
aux_72_closure_type *p_clo = ATS_MALLOC(sizeof(aux_72_closure_type)) ;
aux_72_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /home/ats-lang-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_04269_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp259) ;

__ats_lab_linset_is_member_04269_ats_ptr_type:
tmp259 = aux_72 (arg1, arg2, arg0) ;
return (tmp259) ;
} /* end of [linset_is_member_04269_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12429(line=502, offs=3) -- 12472(line=502, offs=46)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_ismem (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp258) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_ismem:
tmp258 = linset_is_member_04269_ats_ptr_type (arg0, arg1, statmp140) ;
return (tmp258) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_ismem] */

/*
// /home/ats-lang-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_04330_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp284) ;
ATSlocal (ats_int_type, tmp285) ;

__ats_lab_avltree_height_04330_ats_ptr_type:
do {
/* branch: __ats_lab_46 */
__ats_lab_46_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; }
__ats_lab_46_1:
tmp285 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp284 = tmp285 ;
break ;

/* branch: __ats_lab_47 */
__ats_lab_47_0:
__ats_lab_47_1:
tmp284 = 0 ;
break ;
} while (0) ;
return (tmp284) ;
} /* end of [avltree_height_04330_ats_ptr_type] */

/*
// /home/ats-lang-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_04384_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, tmp294) ;
ATSlocal (ats_ptr_type, tmp295) ;
ATSlocal (ats_ptr_type, tmp296) ;
ATSlocal (ats_ptr_type, tmp297) ;
ATSlocal (ats_ptr_type, tmp298) ;
ATSlocal (ats_int_type, tmp299) ;
ATSlocal (ats_ptr_type, tmp300) ;
ATSlocal (ats_int_type, tmp301) ;
ATSlocal (ats_ptr_type, tmp302) ;
ATSlocal (ats_bool_type, tmp303) ;
ATSlocal (ats_int_type, tmp304) ;
ATSlocal (ats_int_type, tmp305) ;
ATSlocal (ats_ptr_type, tmp306) ;
ATSlocal (ats_int_type, tmp307) ;
ATSlocal (ats_int_type, tmp308) ;
ATSlocal (ats_ptr_type, tmp309) ;
ATSlocal (ats_ptr_type, tmp310) ;
ATSlocal (ats_ptr_type, tmp311) ;
ATSlocal (ats_ptr_type, tmp312) ;
ATSlocal (ats_int_type, tmp313) ;
ATSlocal (ats_ptr_type, tmp314) ;
ATSlocal (ats_int_type, tmp315) ;
ATSlocal (ats_ptr_type, tmp316) ;
ATSlocal (ats_int_type, tmp317) ;
ATSlocal (ats_int_type, tmp318) ;
ATSlocal (ats_ptr_type, tmp319) ;
ATSlocal (ats_int_type, tmp320) ;
ATSlocal (ats_int_type, tmp321) ;
ATSlocal (ats_ptr_type, tmp322) ;

__ats_lab_avltree_rrotate_04384_ats_ptr_type:
tmp295 = ats_ptrget_mac(ats_ptr_type, arg2) ;
// if (tmp295 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp296 = &ats_caselptrlab_mac(anairiats_sum_5, tmp295, atslab_0) ;
tmp297 = &ats_caselptrlab_mac(anairiats_sum_5, tmp295, atslab_2) ;
tmp298 = &ats_caselptrlab_mac(anairiats_sum_5, tmp295, atslab_3) ;
tmp300 = ats_ptrget_mac(ats_ptr_type, tmp297) ;
tmp299 = avltree_height_04330_ats_ptr_type (tmp300) ;
tmp302 = ats_ptrget_mac(ats_ptr_type, tmp298) ;
tmp301 = avltree_height_04330_ats_ptr_type (tmp302) ;
tmp304 = atspre_iadd (tmp299, 0) ;
tmp303 = atspre_igte (tmp304, tmp301) ;
if (tmp303) {
tmp305 = atspre_iadd (tmp301, 1) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp305 ;
tmp306 = ats_ptrget_mac(ats_ptr_type, tmp298) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp306 ;
tmp308 = atspre_imax (tmp299, tmp305) ;
tmp307 = atspre_iadd (1, tmp308) ;
ats_ptrget_mac(ats_int_type, tmp296) = tmp307 ;
ats_ptrget_mac(ats_ptr_type, tmp298) = arg5 ;
tmp294 = tmp295 ;
} else {
tmp309 = ats_ptrget_mac(ats_ptr_type, tmp298) ;
// if (tmp309 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp310 = &ats_caselptrlab_mac(anairiats_sum_5, tmp309, atslab_0) ;
tmp311 = &ats_caselptrlab_mac(anairiats_sum_5, tmp309, atslab_2) ;
tmp312 = &ats_caselptrlab_mac(anairiats_sum_5, tmp309, atslab_3) ;
tmp314 = ats_ptrget_mac(ats_ptr_type, tmp311) ;
tmp313 = avltree_height_04330_ats_ptr_type (tmp314) ;
tmp316 = ats_ptrget_mac(ats_ptr_type, tmp312) ;
tmp315 = avltree_height_04330_ats_ptr_type (tmp316) ;
tmp318 = atspre_imax (tmp315, arg3) ;
tmp317 = atspre_iadd (1, tmp318) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp317 ;
tmp319 = ats_ptrget_mac(ats_ptr_type, tmp312) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp319 ;
tmp321 = atspre_imax (tmp299, tmp313) ;
tmp320 = atspre_iadd (1, tmp321) ;
ats_ptrget_mac(ats_int_type, tmp296) = tmp320 ;
tmp322 = ats_ptrget_mac(ats_ptr_type, tmp311) ;
ats_ptrget_mac(ats_ptr_type, tmp298) = tmp322 ;
ats_ptrget_mac(ats_int_type, tmp310) = arg1 ;
ats_ptrget_mac(ats_ptr_type, tmp311) = tmp295 ;
ats_ptrget_mac(ats_ptr_type, tmp312) = arg5 ;
tmp294 = tmp309 ;
} /* end of [if] */
return (tmp294) ;
} /* end of [avltree_rrotate_04384_ats_ptr_type] */

/*
// /home/ats-lang-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_04360_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, tmp334) ;
ATSlocal (ats_ptr_type, tmp335) ;
ATSlocal (ats_ptr_type, tmp336) ;
ATSlocal (ats_ptr_type, tmp337) ;
ATSlocal (ats_ptr_type, tmp338) ;
ATSlocal (ats_int_type, tmp339) ;
ATSlocal (ats_ptr_type, tmp340) ;
ATSlocal (ats_int_type, tmp341) ;
ATSlocal (ats_ptr_type, tmp342) ;
ATSlocal (ats_bool_type, tmp343) ;
ATSlocal (ats_int_type, tmp344) ;
ATSlocal (ats_int_type, tmp345) ;
ATSlocal (ats_ptr_type, tmp346) ;
ATSlocal (ats_int_type, tmp347) ;
ATSlocal (ats_int_type, tmp348) ;
ATSlocal (ats_ptr_type, tmp349) ;
ATSlocal (ats_ptr_type, tmp350) ;
ATSlocal (ats_ptr_type, tmp351) ;
ATSlocal (ats_ptr_type, tmp352) ;
ATSlocal (ats_int_type, tmp353) ;
ATSlocal (ats_ptr_type, tmp354) ;
ATSlocal (ats_int_type, tmp355) ;
ATSlocal (ats_ptr_type, tmp356) ;
ATSlocal (ats_int_type, tmp357) ;
ATSlocal (ats_int_type, tmp358) ;
ATSlocal (ats_ptr_type, tmp359) ;
ATSlocal (ats_int_type, tmp360) ;
ATSlocal (ats_int_type, tmp361) ;
ATSlocal (ats_ptr_type, tmp362) ;

__ats_lab_avltree_lrotate_04360_ats_ptr_type:
tmp335 = ats_ptrget_mac(ats_ptr_type, arg4) ;
// if (tmp335 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp336 = &ats_caselptrlab_mac(anairiats_sum_5, tmp335, atslab_0) ;
tmp337 = &ats_caselptrlab_mac(anairiats_sum_5, tmp335, atslab_2) ;
tmp338 = &ats_caselptrlab_mac(anairiats_sum_5, tmp335, atslab_3) ;
tmp340 = ats_ptrget_mac(ats_ptr_type, tmp337) ;
tmp339 = avltree_height_04330_ats_ptr_type (tmp340) ;
tmp342 = ats_ptrget_mac(ats_ptr_type, tmp338) ;
tmp341 = avltree_height_04330_ats_ptr_type (tmp342) ;
tmp344 = atspre_iadd (tmp341, 0) ;
tmp343 = atspre_ilte (tmp339, tmp344) ;
if (tmp343) {
tmp345 = atspre_iadd (tmp339, 1) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp345 ;
tmp346 = ats_ptrget_mac(ats_ptr_type, tmp337) ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp346 ;
tmp348 = atspre_imax (tmp345, tmp341) ;
tmp347 = atspre_iadd (1, tmp348) ;
ats_ptrget_mac(ats_int_type, tmp336) = tmp347 ;
ats_ptrget_mac(ats_ptr_type, tmp337) = arg5 ;
tmp334 = tmp335 ;
} else {
tmp349 = ats_ptrget_mac(ats_ptr_type, tmp337) ;
// if (tmp349 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp350 = &ats_caselptrlab_mac(anairiats_sum_5, tmp349, atslab_0) ;
tmp351 = &ats_caselptrlab_mac(anairiats_sum_5, tmp349, atslab_2) ;
tmp352 = &ats_caselptrlab_mac(anairiats_sum_5, tmp349, atslab_3) ;
tmp354 = ats_ptrget_mac(ats_ptr_type, tmp351) ;
tmp353 = avltree_height_04330_ats_ptr_type (tmp354) ;
tmp356 = ats_ptrget_mac(ats_ptr_type, tmp352) ;
tmp355 = avltree_height_04330_ats_ptr_type (tmp356) ;
tmp358 = atspre_imax (arg1, tmp353) ;
tmp357 = atspre_iadd (1, tmp358) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp357 ;
tmp359 = ats_ptrget_mac(ats_ptr_type, tmp351) ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp359 ;
tmp361 = atspre_imax (tmp355, tmp341) ;
tmp360 = atspre_iadd (1, tmp361) ;
ats_ptrget_mac(ats_int_type, tmp336) = tmp360 ;
tmp362 = ats_ptrget_mac(ats_ptr_type, tmp352) ;
ats_ptrget_mac(ats_ptr_type, tmp337) = tmp362 ;
ats_ptrget_mac(ats_int_type, tmp350) = arg3 ;
ats_ptrget_mac(ats_ptr_type, tmp351) = arg5 ;
ats_ptrget_mac(ats_ptr_type, tmp352) = tmp335 ;
tmp334 = tmp349 ;
} /* end of [if] */
return (tmp334) ;
} /* end of [avltree_lrotate_04360_ats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8387(line=331, offs=5) -- 10085(line=382, offs=4)
*/
ATSstaticdec()
ats_bool_type
insert_76 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp274) ;
ATSlocal (ats_ptr_type, tmp275) ;
ATSlocal (ats_ptr_type, tmp276) ;
ATSlocal (ats_ptr_type, tmp277) ;
ATSlocal (ats_ptr_type, tmp278) ;
ATSlocal (ats_int_type, tmp279) ;
ATSlocal (ats_ptr_type, tmp280) ;
ATSlocal (ats_bool_type, tmp281) ;
ATSlocal (ats_bool_type, tmp282) ;
ATSlocal (ats_int_type, tmp283) ;
ATSlocal (ats_ptr_type, tmp286) ;
ATSlocal (ats_int_type, tmp287) ;
ATSlocal (ats_ptr_type, tmp288) ;
ATSlocal (ats_bool_type, tmp289) ;
ATSlocal (ats_int_type, tmp290) ;
ATSlocal (ats_int_type, tmp291) ;
ATSlocal (ats_int_type, tmp292) ;
ATSlocal (ats_ptr_type, tmp293) ;
ATSlocal (ats_bool_type, tmp323) ;
ATSlocal (ats_bool_type, tmp324) ;
ATSlocal (ats_int_type, tmp325) ;
ATSlocal (ats_ptr_type, tmp326) ;
ATSlocal (ats_int_type, tmp327) ;
ATSlocal (ats_ptr_type, tmp328) ;
ATSlocal (ats_bool_type, tmp329) ;
ATSlocal (ats_int_type, tmp330) ;
ATSlocal (ats_int_type, tmp331) ;
ATSlocal (ats_int_type, tmp332) ;
ATSlocal (ats_ptr_type, tmp333) ;
ATSlocal (ats_ptr_type, tmp363) ;
ATSlocal (ats_ptr_type, tmp364) ;
ATSlocal (ats_ptr_type, tmp365) ;

__ats_lab_insert_76:
do {
/* branch: __ats_lab_45 */
__ats_lab_45_0:
if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; }
__ats_lab_45_1:
tmp275 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp276 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ;
tmp277 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ;
tmp278 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ;
tmp280 = ats_ptrget_mac(ats_ptr_type, tmp276) ;
tmp279 = compare_elt_elt_04263_ats_ptr_type (arg1, tmp280, env0) ;
tmp281 = atspre_lt_int_int (tmp279, 0) ;
if (tmp281) {
tmp282 = insert_76 (env0, tmp277, arg1) ;
tmp286 = ats_ptrget_mac(ats_ptr_type, tmp277) ;
tmp283 = avltree_height_04330_ats_ptr_type (tmp286) ;
tmp288 = ats_ptrget_mac(ats_ptr_type, tmp278) ;
tmp287 = avltree_height_04330_ats_ptr_type (tmp288) ;
tmp290 = atspre_isub (tmp283, tmp287) ;
tmp289 = atspre_ilte (tmp290, 1) ;
if (tmp289) {
tmp292 = atspre_imax (tmp283, tmp287) ;
tmp291 = atspre_iadd (1, tmp292) ;
ats_ptrget_mac(ats_int_type, tmp275) = tmp291 ;
tmp274 = tmp282 ;
} else {
tmp293 = avltree_rrotate_04384_ats_ptr_type (tmp275, tmp283, tmp277, tmp287, tmp278, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp293 ;
tmp274 = tmp282 ;
} /* end of [if] */
} else {
tmp323 = atspre_gt_int_int (tmp279, 0) ;
if (tmp323) {
tmp324 = insert_76 (env0, tmp278, arg1) ;
tmp326 = ats_ptrget_mac(ats_ptr_type, tmp277) ;
tmp325 = avltree_height_04330_ats_ptr_type (tmp326) ;
tmp328 = ats_ptrget_mac(ats_ptr_type, tmp278) ;
tmp327 = avltree_height_04330_ats_ptr_type (tmp328) ;
tmp330 = atspre_isub (tmp327, tmp325) ;
tmp329 = atspre_ilte (tmp330, 1) ;
if (tmp329) {
tmp332 = atspre_imax (tmp325, tmp327) ;
tmp331 = atspre_iadd (1, tmp332) ;
ats_ptrget_mac(ats_int_type, tmp275) = tmp331 ;
tmp274 = tmp324 ;
} else {
tmp333 = avltree_lrotate_04360_ats_ptr_type (tmp275, tmp325, tmp277, tmp327, tmp278, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp333 ;
tmp274 = tmp324 ;
} /* end of [if] */
} else {
tmp274 = ats_true_bool ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_48 */
__ats_lab_48_0:
// if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_48_1:
tmp364 = (ats_sum_ptr_type)0 ;
tmp365 = (ats_sum_ptr_type)0 ;
tmp363 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp363, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_5, tmp363, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_5, tmp363, atslab_2, tmp364) ;
ats_selptrset_mac(anairiats_sum_5, tmp363, atslab_3, tmp365) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp363 ;
tmp274 = ats_false_bool ;
break ;
} while (0) ;
return (tmp274) ;
} /* end of [insert_76] */

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

ats_bool_type
insert_76_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) {
return insert_76 (((insert_76_closure_type*)cloptr)->closure_env_0, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
insert_76_closure_make (ats_clo_ref_type env0) {
insert_76_closure_type *p_clo = ATS_MALLOC(sizeof(insert_76_closure_type)) ;
insert_76_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /home/ats-lang-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_04273_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp273) ;

__ats_lab_linset_insert_04273_ats_ptr_type:
tmp273 = insert_76 (arg2, arg0, arg1) ;
return (tmp273) ;
} /* end of [linset_insert_04273_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12532(line=507, offs=3) -- 12621(line=510, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_add (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp270) ;
ATSlocal (ats_ptr_type, tmp271) ;
ATSlocal (ats_bool_type, tmp272) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_add:
/* ats_ptr_type tmp271 ; */
tmp271 = arg0 ;
tmp272 = linset_insert_04273_ats_ptr_type ((&tmp271), arg1, statmp140) ;
tmp270 = tmp271 ;
return (tmp270) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_add] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27430(line=997, offs=7) -- 27766(line=1008, offs=31)
*/
ATSstaticdec()
ats_ptr_type
aux_82 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp368) ;
ATSlocal (ats_ptr_type, tmp369) ;
ATSlocal (ats_ptr_type, tmp370) ;
ATSlocal (ats_ptr_type, tmp371) ;
ATSlocal (ats_ptr_type, tmp372) ;
ATSlocal (ats_ptr_type, tmp373) ;
ATSlocal (ats_ptr_type, tmp374) ;
ATSlocal (ats_ptr_type, tmp375) ;

__ats_lab_aux_82:
do {
/* branch: __ats_lab_49 */
__ats_lab_49_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_50_0 ; }
__ats_lab_49_1:
tmp369 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp370 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ;
tmp371 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ;
tmp373 = ats_ptrget_mac(ats_ptr_type, tmp371) ;
tmp372 = aux_82 (tmp373, arg1) ;
tmp374 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp374, atslab_0, tmp369) ;
ats_selptrset_mac(anairiats_sum_3, tmp374, atslab_1, tmp372) ;
tmp375 = ats_ptrget_mac(ats_ptr_type, tmp370) ;
arg0 = tmp375 ;
arg1 = tmp374 ;
goto __ats_lab_aux_82 ; // tail call
break ;

/* branch: __ats_lab_50 */
__ats_lab_50_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_50_1:
tmp368 = arg1 ;
break ;
} while (0) ;
return (tmp368) ;
} /* end of [aux_82] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27379(line=995, offs=16) -- 27815(line=1012, offs=4)
*/
ATSstaticdec()
ats_ptr_type
linset_listize_04288_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp367) ;
ATSlocal (ats_ptr_type, tmp376) ;

__ats_lab_linset_listize_04288_ats_ptr_type:
tmp376 = (ats_sum_ptr_type)0 ;
tmp367 = aux_82 (arg0, tmp376) ;
return (tmp367) ;
} /* end of [linset_listize_04288_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12681(line=513, offs=21) -- 12710(line=513, offs=50)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_listize (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp366) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_listize:
tmp366 = linset_listize_04288_ats_ptr_type (arg0) ;
return (tmp366) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_listize] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27949(line=1019, offs=7) -- 28232(line=1029, offs=19)
*/
ATSstaticdec()
ats_ptr_type
aux_85 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp379) ;
ATSlocal (ats_ptr_type, tmp380) ;
ATSlocal (ats_ptr_type, tmp381) ;
ATSlocal (ats_ptr_type, tmp382) ;
ATSlocal (ats_ptr_type, tmp383) ;
ATSlocal (ats_ptr_type, tmp384) ;

__ats_lab_aux_85:
do {
/* branch: __ats_lab_51 */
__ats_lab_51_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; }
__ats_lab_51_1:
tmp380 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp381 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ;
tmp382 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ;
ATS_FREE(arg0) ;
tmp383 = aux_85 (tmp382, arg1) ;
tmp384 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp384, atslab_0, tmp380) ;
ats_selptrset_mac(anairiats_sum_3, tmp384, atslab_1, tmp383) ;
arg0 = tmp381 ;
arg1 = tmp384 ;
goto __ats_lab_aux_85 ; // tail call
break ;

/* branch: __ats_lab_52 */
__ats_lab_52_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_52_1:
tmp379 = arg1 ;
break ;
} while (0) ;
return (tmp379) ;
} /* end of [aux_85] */

/*
// /home/ats-lang-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_04289_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp378) ;
ATSlocal (ats_ptr_type, tmp385) ;

__ats_lab_linset_listize_free_04289_ats_ptr_type:
tmp385 = (ats_sum_ptr_type)0 ;
tmp378 = aux_85 (arg0, tmp385) ;
return (tmp378) ;
} /* end of [linset_listize_free_04289_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12747(line=515, offs=26) -- 12781(line=515, offs=60)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_listize_free (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp377) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_listize_free:
tmp377 = linset_listize_free_04289_ats_ptr_type (arg0) ;
return (tmp377) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_listize_free] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4893(line=177, offs=7) -- 5015(line=178, offs=73)
*/
ATSstaticdec()
ats_void_type
loop_88 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp390) ;
ATSlocal (ats_ptr_type, tmp391) ;

__ats_lab_loop_88:
do {
/* branch: __ats_lab_53 */
__ats_lab_53_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; }
__ats_lab_53_1:
tmp391 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
ATS_FREE(arg0) ;
arg0 = tmp391 ;
goto __ats_lab_loop_88 ; // tail call
break ;

/* branch: __ats_lab_54 */
__ats_lab_54_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_54_1:
break ;
} while (0) ;
return /* (tmp390) */ ;
} /* end of [loop_88] */

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

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12856(line=523, offs=3) -- 13014(line=530, offs=2)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varset (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp386) ;
ATSlocal (ats_ptr_type, tmp387) ;
// ATSlocal_void (tmp388) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varset:
tmp387 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_listize (arg1) ;
/* tmp388 = */ fprintlst_01887_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, tmp387), ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) ;
/* tmp386 = */ list_vt_free_01499_ats_ptr_type (tmp387) ;
return /* (tmp386) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2varset] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 13270(line=544, offs=11) -- 13355(line=547, offs=35)
*/
ATSstaticdec()
ats_int_type
__ats_fun_89 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp392) ;

__ats_lab___ats_fun_89:
tmp392 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (arg0, arg1) ;
return (tmp392) ;
} /* end of [__ats_fun_89] */

typedef struct {
ats_fun_ptr_type closure_fun ;
} __ats_fun_89_closure_type ;

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

ATSinline()
ats_void_type
__ats_fun_89_closure_init (__ats_fun_89_closure_type *p_clo) {
p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_89_clofun ;
return ;
} /* end of function */

ats_clo_ptr_type
__ats_fun_89_closure_make () {
__ats_fun_89_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_89_closure_type)) ;
__ats_fun_89_closure_init (p_clo) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /home/ats-lang-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_04294_ () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp395) ;

__ats_lab_funmap_make_nil_04294_:
tmp395 = (ats_sum_ptr_type)0 ;
return (tmp395) ;
} /* end of [funmap_make_nil_04294_] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 13588(line=560, offs=14) -- 13615(line=560, offs=41)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp394) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_nil:
tmp394 = funmap_make_nil_04294_ () ;
return (tmp394) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_nil] */

/*
// /home/ats-lang-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_04293_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp407) ;

__ats_lab_compare_key_key_04293_ats_ptr_type:
tmp407 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ;
return (tmp407) ;
} /* end of [compare_key_key_04293_ats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 3756(line=137, offs=7) -- 4334(line=154, offs=6)
*/
ATSstaticdec()
ats_bool_type
search_95 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp401) ;
ATSlocal (ats_ptr_type, tmp402) ;
ATSlocal (ats_ptr_type, tmp403) ;
ATSlocal (ats_ptr_type, tmp404) ;
ATSlocal (ats_ptr_type, tmp405) ;
ATSlocal (ats_int_type, tmp406) ;
ATSlocal (ats_bool_type, tmp408) ;
ATSlocal (ats_bool_type, tmp409) ;

__ats_lab_search_95:
do {
/* branch: __ats_lab_55 */
__ats_lab_55_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_59_0 ; }
__ats_lab_55_1:
tmp402 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp403 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp404 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp405 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ;
tmp406 = compare_key_key_04293_ats_ptr_type (env0, tmp402, env1) ;
do {
/* branch: __ats_lab_56 */
__ats_lab_56_0:
__ats_lab_56_1:
tmp408 = atspre_lt_int_int (tmp406, 0) ;
if (!tmp408) { goto __ats_lab_57_1 ; }
arg0 = tmp404 ;
arg1 = arg1 ;
goto __ats_lab_search_95 ; // tail call
break ;

/* branch: __ats_lab_57 */
__ats_lab_57_0:
__ats_lab_57_1:
tmp409 = atspre_gt_int_int (tmp406, 0) ;
if (!tmp409) { goto __ats_lab_58_1 ; }
arg0 = tmp405 ;
arg1 = arg1 ;
goto __ats_lab_search_95 ; // tail call
break ;

/* branch: __ats_lab_58 */
__ats_lab_58_0:
__ats_lab_58_1:
ats_ptrget_mac(ats_ptr_type, arg1) = tmp403 ;
tmp401 = ats_true_bool ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_59 */
__ats_lab_59_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_59_1:
tmp401 = ats_false_bool ;
break ;
} while (0) ;
return (tmp401) ;
} /* end of [search_95] */

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

ats_bool_type
search_95_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) {
return search_95 (((search_95_closure_type*)cloptr)->closure_env_0, ((search_95_closure_type*)cloptr)->closure_env_1, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
search_95_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
search_95_closure_type *p_clo = ATS_MALLOC(sizeof(search_95_closure_type)) ;
search_95_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /home/ats-lang-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_04299_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, tmp400) ;

__ats_lab_funmap_search_04299_ats_ptr_type_2cats_ptr_type:
tmp400 = search_95 (arg1, arg2, arg0, arg3) ;
return (tmp400) ;
} /* end of [funmap_search_04299_ats_ptr_type_2cats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 4423(line=160, offs=3) -- 4687(line=173, offs=4)
*/
ATSstaticdec()
ats_ptr_type
funmap_search_opt_04300_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp397) ;
ATSlocal (ats_ptr_type, tmp398) ;
ATSlocal (ats_bool_type, tmp399) ;

__ats_lab_funmap_search_opt_04300_ats_ptr_type_2cats_ptr_type:
/* ats_ptr_type tmp398 ; */
tmp399 = funmap_search_04299_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, (&tmp398)) ;
if (tmp399) {
tmp397 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp397, atslab_0, tmp398) ;
} else {
tmp397 = (ats_sum_ptr_type)0 ;
} /* end of [if] */
return (tmp397) ;
} /* end of [funmap_search_opt_04300_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 13649(line=564, offs=7) -- 13701(line=565, offs=40)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_search (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp396) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_search:
tmp396 = funmap_search_opt_04300_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp393) ;
return (tmp396) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_search] */

/*
// /home/ats-lang-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_04772_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_04772_ats_ptr_type_2cats_ptr_type:
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp430 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_1) ;
tmp431 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_2) ;
tmp432 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_3) ;
tmp433 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_4) ;
do {
/* branch: __ats_lab_65 */
__ats_lab_65_0:
if (tmp432 == (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; }
__ats_lab_65_1:
tmp435 = ats_caselptrlab_mac(anairiats_sum_6, tmp432, atslab_0) ;
tmp434 = tmp435 ;
break ;

/* branch: __ats_lab_66 */
__ats_lab_66_0:
// if (tmp432 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_66_1:
tmp434 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_67 */
__ats_lab_67_0:
if (tmp433 == (ats_sum_ptr_type)0) { goto __ats_lab_68_0 ; }
__ats_lab_67_1:
tmp437 = ats_caselptrlab_mac(anairiats_sum_6, tmp433, atslab_0) ;
tmp436 = tmp437 ;
break ;

/* branch: __ats_lab_68 */
__ats_lab_68_0:
// if (tmp433 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_68_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_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp443, atslab_0, tmp440) ;
ats_selptrset_mac(anairiats_sum_6, tmp443, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_6, tmp443, atslab_2, arg1) ;
ats_selptrset_mac(anairiats_sum_6, tmp443, atslab_3, tmp433) ;
ats_selptrset_mac(anairiats_sum_6, tmp443, atslab_4, arg5) ;
tmp429 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp429, atslab_0, tmp441) ;
ats_selptrset_mac(anairiats_sum_6, tmp429, atslab_1, tmp430) ;
ats_selptrset_mac(anairiats_sum_6, tmp429, atslab_2, tmp431) ;
ats_selptrset_mac(anairiats_sum_6, tmp429, atslab_3, tmp432) ;
ats_selptrset_mac(anairiats_sum_6, tmp429, atslab_4, tmp443) ;
} else {
// if (tmp433 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp444 = ats_caselptrlab_mac(anairiats_sum_6, tmp433, atslab_1) ;
tmp445 = ats_caselptrlab_mac(anairiats_sum_6, tmp433, atslab_2) ;
tmp446 = ats_caselptrlab_mac(anairiats_sum_6, tmp433, atslab_3) ;
tmp447 = ats_caselptrlab_mac(anairiats_sum_6, tmp433, atslab_4) ;
do {
/* branch: __ats_lab_69 */
__ats_lab_69_0:
if (tmp446 == (ats_sum_ptr_type)0) { goto __ats_lab_70_0 ; }
__ats_lab_69_1:
tmp449 = ats_caselptrlab_mac(anairiats_sum_6, tmp446, atslab_0) ;
tmp448 = tmp449 ;
break ;

/* branch: __ats_lab_70 */
__ats_lab_70_0:
// if (tmp446 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_70_1:
tmp448 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_71 */
__ats_lab_71_0:
if (tmp447 == (ats_sum_ptr_type)0) { goto __ats_lab_72_0 ; }
__ats_lab_71_1:
tmp451 = ats_caselptrlab_mac(anairiats_sum_6, tmp447, atslab_0) ;
tmp450 = tmp451 ;
break ;

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

/*
// /home/ats-lang-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_04752_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_04752_ats_ptr_type_2cats_ptr_type:
// if (arg5 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp469 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_1) ;
tmp470 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_2) ;
tmp471 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_3) ;
tmp472 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_4) ;
do {
/* branch: __ats_lab_77 */
__ats_lab_77_0:
if (tmp471 == (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; }
__ats_lab_77_1:
tmp474 = ats_caselptrlab_mac(anairiats_sum_6, tmp471, atslab_0) ;
tmp473 = tmp474 ;
break ;

/* branch: __ats_lab_78 */
__ats_lab_78_0:
// if (tmp471 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_78_1:
tmp473 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_79 */
__ats_lab_79_0:
if (tmp472 == (ats_sum_ptr_type)0) { goto __ats_lab_80_0 ; }
__ats_lab_79_1:
tmp476 = ats_caselptrlab_mac(anairiats_sum_6, tmp472, atslab_0) ;
tmp475 = tmp476 ;
break ;

/* branch: __ats_lab_80 */
__ats_lab_80_0:
// if (tmp472 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_80_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_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp482, atslab_0, tmp479) ;
ats_selptrset_mac(anairiats_sum_6, tmp482, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_6, tmp482, atslab_2, arg1) ;
ats_selptrset_mac(anairiats_sum_6, tmp482, atslab_3, arg3) ;
ats_selptrset_mac(anairiats_sum_6, tmp482, atslab_4, tmp471) ;
tmp468 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp468, atslab_0, tmp480) ;
ats_selptrset_mac(anairiats_sum_6, tmp468, atslab_1, tmp469) ;
ats_selptrset_mac(anairiats_sum_6, tmp468, atslab_2, tmp470) ;
ats_selptrset_mac(anairiats_sum_6, tmp468, atslab_3, tmp482) ;
ats_selptrset_mac(anairiats_sum_6, tmp468, atslab_4, tmp472) ;
} else {
// if (tmp471 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp483 = ats_caselptrlab_mac(anairiats_sum_6, tmp471, atslab_1) ;
tmp484 = ats_caselptrlab_mac(anairiats_sum_6, tmp471, atslab_2) ;
tmp485 = ats_caselptrlab_mac(anairiats_sum_6, tmp471, atslab_3) ;
tmp486 = ats_caselptrlab_mac(anairiats_sum_6, tmp471, atslab_4) ;
do {
/* branch: __ats_lab_81 */
__ats_lab_81_0:
if (tmp485 == (ats_sum_ptr_type)0) { goto __ats_lab_82_0 ; }
__ats_lab_81_1:
tmp488 = ats_caselptrlab_mac(anairiats_sum_6, tmp485, atslab_0) ;
tmp487 = tmp488 ;
break ;

/* branch: __ats_lab_82 */
__ats_lab_82_0:
// if (tmp485 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_82_1:
tmp487 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_83 */
__ats_lab_83_0:
if (tmp486 == (ats_sum_ptr_type)0) { goto __ats_lab_84_0 ; }
__ats_lab_83_1:
tmp490 = ats_caselptrlab_mac(anairiats_sum_6, tmp486, atslab_0) ;
tmp489 = tmp490 ;
break ;

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

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 6597(line=238, offs=7) -- 7899(line=271, offs=6)
*/
ATSstaticdec()
ats_ptr_type
insert_99 (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, tmp412) ;
ATSlocal (ats_int_type, tmp413) ;
ATSlocal (ats_ptr_type, tmp414) ;
ATSlocal (ats_ptr_type, tmp415) ;
ATSlocal (ats_ptr_type, tmp416) ;
ATSlocal (ats_ptr_type, tmp417) ;
ATSlocal (ats_int_type, tmp418) ;
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_99:
do {
/* branch: __ats_lab_60 */
__ats_lab_60_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_85_0 ; }
__ats_lab_60_1:
tmp413 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp414 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp415 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp416 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp417 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ;
tmp418 = compare_key_key_04293_ats_ptr_type (env0, tmp414, env2) ;
tmp419 = atspre_lt_int_int (tmp418, 0) ;
if (tmp419) {
tmp420 = insert_99 (env0, env1, env2, tmp416, arg1) ;
do {
/* branch: __ats_lab_61 */
__ats_lab_61_0:
if (tmp420 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; }
__ats_lab_61_1:
tmp422 = ats_caselptrlab_mac(anairiats_sum_6, tmp420, atslab_0) ;
tmp421 = tmp422 ;
break ;

/* branch: __ats_lab_62 */
__ats_lab_62_0:
// if (tmp420 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_62_1:
tmp421 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_63 */
__ats_lab_63_0:
if (tmp417 == (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; }
__ats_lab_63_1:
tmp424 = ats_caselptrlab_mac(anairiats_sum_6, tmp417, atslab_0) ;
tmp423 = tmp424 ;
break ;

/* branch: __ats_lab_64 */
__ats_lab_64_0:
// if (tmp417 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_64_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) ;
tmp412 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_0, tmp427) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_1, tmp414) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_2, tmp415) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_3, tmp420) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_4, tmp417) ;
} else {
tmp412 = avltree_rrotate_04772_ats_ptr_type_2cats_ptr_type (tmp414, tmp415, tmp421, tmp420, tmp423, tmp417) ;
} /* end of [if] */
} else {
tmp458 = atspre_gt_int_int (tmp418, 0) ;
if (tmp458) {
tmp459 = insert_99 (env0, env1, env2, tmp417, arg1) ;
do {
/* branch: __ats_lab_73 */
__ats_lab_73_0:
if (tmp416 == (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; }
__ats_lab_73_1:
tmp461 = ats_caselptrlab_mac(anairiats_sum_6, tmp416, atslab_0) ;
tmp460 = tmp461 ;
break ;

/* branch: __ats_lab_74 */
__ats_lab_74_0:
// if (tmp416 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_74_1:
tmp460 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_75 */
__ats_lab_75_0:
if (tmp459 == (ats_sum_ptr_type)0) { goto __ats_lab_76_0 ; }
__ats_lab_75_1:
tmp463 = ats_caselptrlab_mac(anairiats_sum_6, tmp459, atslab_0) ;
tmp462 = tmp463 ;
break ;

/* branch: __ats_lab_76 */
__ats_lab_76_0:
// if (tmp459 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_76_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) ;
tmp412 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_0, tmp466) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_1, tmp414) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_2, tmp415) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_3, tmp416) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_4, tmp459) ;
} else {
tmp412 = avltree_lrotate_04752_ats_ptr_type_2cats_ptr_type (tmp414, tmp415, tmp460, tmp416, tmp462, tmp459) ;
} /* end of [if] */
} else {
ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ;
tmp412 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_0, tmp413) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_1, tmp414) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_2, env1) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_3, tmp416) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_4, tmp417) ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_85 */
__ats_lab_85_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_85_1:
ats_ptrget_mac(ats_bool_type, arg1) = ats_false_bool ;
tmp497 = (ats_sum_ptr_type)0 ;
tmp498 = (ats_sum_ptr_type)0 ;
tmp412 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_1, env0) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_2, env1) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_3, tmp497) ;
ats_selptrset_mac(anairiats_sum_6, tmp412, atslab_4, tmp498) ;
break ;
} while (0) ;
return (tmp412) ;
} /* end of [insert_99] */

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

ats_ptr_type
insert_99_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) {
return insert_99 (((insert_99_closure_type*)cloptr)->closure_env_0, ((insert_99_closure_type*)cloptr)->closure_env_1, ((insert_99_closure_type*)cloptr)->closure_env_2, arg0, arg1) ;
} /* end of function */

ATSinline()
ats_void_type
insert_99_closure_init (insert_99_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_99_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_99_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2) {
insert_99_closure_type *p_clo = ATS_MALLOC(sizeof(insert_99_closure_type)) ;
insert_99_closure_init (p_clo, env0, env1, env2) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /home/ats-lang-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_04301_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, tmp411) ;
ATSlocal (ats_bool_type, tmp499) ;
ATSlocal (ats_ptr_type, tmp500) ;

__ats_lab_funmap_insert_04301_ats_ptr_type_2cats_ptr_type:
/* ats_bool_type tmp499 ; */
tmp500 = insert_99 (arg1, arg2, arg3, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp499)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp500 ;
tmp411 = tmp499 ;
return (tmp411) ;
} /* end of [funmap_insert_04301_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 13763(line=570, offs=7) -- 13817(line=571, offs=39)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_insert (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp410) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_insert:
tmp410 = funmap_insert_04301_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, statmp393) ;
return (tmp410) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_insert] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 16338(line=542, offs=7) -- 16662(line=553, offs=18)
*/
ATSstaticdec()
ats_ptr_type
listize_104 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp503) ;
ATSlocal (ats_ptr_type, tmp504) ;
ATSlocal (ats_ptr_type, tmp505) ;
ATSlocal (ats_ptr_type, tmp506) ;
ATSlocal (ats_ptr_type, tmp507) ;
ATSlocal (ats_ptr_type, tmp508) ;
ATSlocal (ats_ptr_type, tmp509) ;
ATSlocal (anairiats_rec_7, tmp510) ;

__ats_lab_listize_104:
do {
/* branch: __ats_lab_86 */
__ats_lab_86_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_87_0 ; }
__ats_lab_86_1:
tmp504 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp505 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp506 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp507 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ;
tmp508 = listize_104 (tmp507, arg1) ;
tmp510.atslab_0 = tmp504 ;
tmp510.atslab_1 = tmp505 ;

tmp509 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp509, atslab_0, tmp510) ;
ats_selptrset_mac(anairiats_sum_8, tmp509, atslab_1, tmp508) ;
arg0 = tmp506 ;
arg1 = tmp509 ;
goto __ats_lab_listize_104 ; // tail call
break ;

/* branch: __ats_lab_87 */
__ats_lab_87_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_87_1:
tmp503 = arg1 ;
break ;
} while (0) ;
return (tmp503) ;
} /* end of [listize_104] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 16252(line=539, offs=16) -- 16722(line=557, offs=4)
*/
ATSstaticdec()
ats_ptr_type
funmap_listize_04310_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp502) ;
ATSlocal (ats_ptr_type, tmp511) ;

__ats_lab_funmap_listize_04310_ats_ptr_type_2cats_ptr_type:
tmp511 = (ats_sum_ptr_type)0 ;
tmp502 = listize_104 (arg0, tmp511) ;
return (tmp502) ;
} /* end of [funmap_listize_04310_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 13880(line=576, offs=7) -- 13911(line=576, offs=38)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_listize (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp501) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_listize:
tmp501 = funmap_listize_04310_ats_ptr_type_2cats_ptr_type (arg0) ;
return (tmp501) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_listize] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 3005(line=103, offs=29) -- 3014(line=103, offs=38)
*/
ATSstaticdec()
ats_ptr_type
linmap_make_nil_04317_ () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp513) ;

__ats_lab_linmap_make_nil_04317_:
tmp513 = (ats_sum_ptr_type)0 ;
return (tmp513) ;
} /* end of [linmap_make_nil_04317_] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 13990(line=582, offs=17) -- 14017(line=582, offs=44)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp512) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_nil:
tmp512 = linmap_make_nil_04317_ () ;
return (tmp512) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_nil] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 20597(line=699, offs=7) -- 20733(line=701, offs=65)
*/
ATSstaticdec()
ats_void_type
_free_109 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp516) ;
ATSlocal (ats_ptr_type, tmp517) ;
ATSlocal (ats_ptr_type, tmp518) ;
// ATSlocal_void (tmp519) ;

__ats_lab__free_109:
do {
/* branch: __ats_lab_88 */
__ats_lab_88_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_89_0 ; }
__ats_lab_88_1:
tmp517 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp518 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ;
ATS_FREE(arg0) ;
/* tmp519 = */ _free_109 (tmp517) ;
arg0 = tmp518 ;
goto __ats_lab__free_109 ; // tail call
break ;

/* branch: __ats_lab_89 */
__ats_lab_89_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_89_1:
break ;
} while (0) ;
return /* (tmp516) */ ;
} /* end of [_free_109] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 20567(line=698, offs=13) -- 20755(line=703, offs=2)
*/
ATSstaticdec()
ats_void_type
linmap_free_04334_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp515) ;

__ats_lab_linmap_free_04334_ats_ptr_type_2cats_ptr_type:
/* tmp515 = */ _free_109 (arg0) ;
return /* (tmp515) */ ;
} /* end of [linmap_free_04334_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14046(line=585, offs=18) -- 14074(line=585, offs=46)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_free (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp514) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_free:
/* tmp514 = */ linmap_free_04334_ats_ptr_type_2cats_ptr_type (arg0) ;
return /* (tmp514) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_free] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 2008(line=61, offs=17) -- 2036(line=61, offs=45)
*/
ATSstaticdec()
ats_int_type
compare_key_key_04316_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp533) ;

__ats_lab_compare_key_key_04316_ats_ptr_type:
tmp533 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ;
return (tmp533) ;
} /* end of [compare_key_key_04316_ats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4545(line=168, offs=7) -- 5110(line=188, offs=6)
*/
ATSstaticdec()
ats_ptr_type
search_114 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp527) ;
ATSlocal (ats_ptr_type, tmp528) ;
ATSlocal (ats_ptr_type, tmp529) ;
ATSlocal (ats_ptr_type, tmp530) ;
ATSlocal (ats_ptr_type, tmp531) ;
ATSlocal (ats_int_type, tmp532) ;
ATSlocal (ats_bool_type, tmp534) ;
ATSlocal (ats_ptr_type, tmp535) ;
ATSlocal (ats_bool_type, tmp536) ;
ATSlocal (ats_ptr_type, tmp537) ;

__ats_lab_search_114:
do {
/* branch: __ats_lab_90 */
__ats_lab_90_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_94_0 ; }
__ats_lab_90_1:
tmp528 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp529 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp530 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp531 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ;
tmp532 = compare_key_key_04316_ats_ptr_type (env0, tmp528, env1) ;
do {
/* branch: __ats_lab_91 */
__ats_lab_91_0:
__ats_lab_91_1:
tmp534 = atspre_lt_int_int (tmp532, 0) ;
if (!tmp534) { goto __ats_lab_92_1 ; }
tmp535 = ats_ptrget_mac(ats_ptr_type, tmp530) ;
arg0 = tmp535 ;
goto __ats_lab_search_114 ; // tail call
break ;

/* branch: __ats_lab_92 */
__ats_lab_92_0:
__ats_lab_92_1:
tmp536 = atspre_gt_int_int (tmp532, 0) ;
if (!tmp536) { goto __ats_lab_93_1 ; }
tmp537 = ats_ptrget_mac(ats_ptr_type, tmp531) ;
arg0 = tmp537 ;
goto __ats_lab_search_114 ; // tail call
break ;

/* branch: __ats_lab_93 */
__ats_lab_93_0:
__ats_lab_93_1:
tmp527 = tmp529 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_94 */
__ats_lab_94_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_94_1:
tmp527 = atspre_null_ptr ;
break ;
} while (0) ;
return (tmp527) ;
} /* end of [search_114] */

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

ats_ptr_type
search_114_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
return search_114 (((search_114_closure_type*)cloptr)->closure_env_0, ((search_114_closure_type*)cloptr)->closure_env_1, arg0) ;
} /* end of function */

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

ats_clo_ptr_type
search_114_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
search_114_closure_type *p_clo = ATS_MALLOC(sizeof(search_114_closure_type)) ;
search_114_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4505(line=167, offs=3) -- 5131(line=189, offs=2)
*/
ATSstaticdec()
ats_ptr_type
linmap_search_ref_04323_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp526) ;

__ats_lab_linmap_search_ref_04323_ats_ptr_type_2cats_ptr_type:
tmp526 = search_114 (arg1, arg2, arg0) ;
return (tmp526) ;
} /* end of [linmap_search_ref_04323_ats_ptr_type_2cats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4021(line=145, offs=3) -- 4437(line=162, offs=4)
*/
ATSstaticdec()
ats_bool_type
linmap_search_04322_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, tmp524) ;
ATSlocal (ats_ptr_type, tmp525) ;
ATSlocal (ats_bool_type, tmp538) ;
ATSlocal (ats_ptr_type, tmp539) ;

__ats_lab_linmap_search_04322_ats_ptr_type_2cats_ptr_type:
tmp525 = linmap_search_ref_04323_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2) ;
tmp538 = atspre_pgt (tmp525, atspre_null_ptr) ;
if (tmp538) {
tmp539 = ats_ptrget_mac(ats_ptr_type, tmp525) ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp539 ;
tmp524 = ats_true_bool ;
} else {
tmp524 = ats_false_bool ;
} /* end of [if] */
return (tmp524) ;
} /* end of [linmap_search_04322_ats_ptr_type_2cats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 5224(line=196, offs=3) -- 5488(line=209, offs=4)
*/
ATSstaticdec()
ats_ptr_type
linmap_search_opt_04324_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp521) ;
ATSlocal (ats_ptr_type, tmp522) ;
ATSlocal (ats_bool_type, tmp523) ;

__ats_lab_linmap_search_opt_04324_ats_ptr_type_2cats_ptr_type:
/* ats_ptr_type tmp522 ; */
tmp523 = linmap_search_04322_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, (&tmp522)) ;
if (tmp523) {
tmp521 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp521, atslab_0, tmp522) ;
} else {
tmp521 = (ats_sum_ptr_type)0 ;
} /* end of [if] */
return (tmp521) ;
} /* end of [linmap_search_opt_04324_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14112(line=589, offs=7) -- 14164(line=590, offs=40)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_search (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp520) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_search:
tmp520 = linmap_search_opt_04324_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp393) ;
return (tmp520) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_search] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 3769(line=134, offs=24) -- 3876(line=135, offs=69)
*/
ATSstaticdec()
ats_int_type
avltree_height_04948_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp554) ;
ATSlocal (ats_int_type, tmp555) ;

__ats_lab_avltree_height_04948_ats_ptr_type_2cats_ptr_type:
do {
/* branch: __ats_lab_96 */
__ats_lab_96_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_97_0 ; }
__ats_lab_96_1:
tmp555 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp554 = tmp555 ;
break ;

/* branch: __ats_lab_97 */
__ats_lab_97_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_97_1:
tmp554 = 0 ;
break ;
} while (0) ;
return (tmp554) ;
} /* end of [avltree_height_04948_ats_ptr_type_2cats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 7405(line=276, offs=32) -- 8902(line=325, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_rrotate_05001_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp564) ;
ATSlocal (ats_ptr_type, tmp565) ;
ATSlocal (ats_ptr_type, tmp566) ;
ATSlocal (ats_ptr_type, tmp567) ;
ATSlocal (ats_ptr_type, tmp568) ;
ATSlocal (ats_int_type, tmp569) ;
ATSlocal (ats_ptr_type, tmp570) ;
ATSlocal (ats_int_type, tmp571) ;
ATSlocal (ats_ptr_type, tmp572) ;
ATSlocal (ats_bool_type, tmp573) ;
ATSlocal (ats_int_type, tmp574) ;
ATSlocal (ats_int_type, tmp575) ;
ATSlocal (ats_ptr_type, tmp576) ;
ATSlocal (ats_int_type, tmp577) ;
ATSlocal (ats_int_type, tmp578) ;
ATSlocal (ats_ptr_type, tmp579) ;
ATSlocal (ats_ptr_type, tmp580) ;
ATSlocal (ats_ptr_type, tmp581) ;
ATSlocal (ats_ptr_type, tmp582) ;
ATSlocal (ats_int_type, tmp583) ;
ATSlocal (ats_ptr_type, tmp584) ;
ATSlocal (ats_int_type, tmp585) ;
ATSlocal (ats_ptr_type, tmp586) ;
ATSlocal (ats_int_type, tmp587) ;
ATSlocal (ats_int_type, tmp588) ;
ATSlocal (ats_ptr_type, tmp589) ;
ATSlocal (ats_int_type, tmp590) ;
ATSlocal (ats_int_type, tmp591) ;
ATSlocal (ats_ptr_type, tmp592) ;

__ats_lab_avltree_rrotate_05001_ats_ptr_type_2cats_ptr_type:
tmp565 = ats_ptrget_mac(ats_ptr_type, arg2) ;
// if (tmp565 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp566 = &ats_caselptrlab_mac(anairiats_sum_6, tmp565, atslab_0) ;
tmp567 = &ats_caselptrlab_mac(anairiats_sum_6, tmp565, atslab_3) ;
tmp568 = &ats_caselptrlab_mac(anairiats_sum_6, tmp565, atslab_4) ;
tmp570 = ats_ptrget_mac(ats_ptr_type, tmp567) ;
tmp569 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp570) ;
tmp572 = ats_ptrget_mac(ats_ptr_type, tmp568) ;
tmp571 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp572) ;
tmp574 = atspre_iadd (tmp569, 0) ;
tmp573 = atspre_igte (tmp574, tmp571) ;
if (tmp573) {
tmp575 = atspre_iadd (tmp571, 1) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp575 ;
tmp576 = ats_ptrget_mac(ats_ptr_type, tmp568) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp576 ;
tmp578 = atspre_imax (tmp569, tmp575) ;
tmp577 = atspre_iadd (1, tmp578) ;
ats_ptrget_mac(ats_int_type, tmp566) = tmp577 ;
ats_ptrget_mac(ats_ptr_type, tmp568) = arg5 ;
tmp564 = tmp565 ;
} else {
tmp579 = ats_ptrget_mac(ats_ptr_type, tmp568) ;
// if (tmp579 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp580 = &ats_caselptrlab_mac(anairiats_sum_6, tmp579, atslab_0) ;
tmp581 = &ats_caselptrlab_mac(anairiats_sum_6, tmp579, atslab_3) ;
tmp582 = &ats_caselptrlab_mac(anairiats_sum_6, tmp579, atslab_4) ;
tmp584 = ats_ptrget_mac(ats_ptr_type, tmp581) ;
tmp583 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp584) ;
tmp586 = ats_ptrget_mac(ats_ptr_type, tmp582) ;
tmp585 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp586) ;
tmp588 = atspre_imax (tmp585, arg3) ;
tmp587 = atspre_iadd (1, tmp588) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp587 ;
tmp589 = ats_ptrget_mac(ats_ptr_type, tmp582) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp589 ;
tmp591 = atspre_imax (tmp569, tmp583) ;
tmp590 = atspre_iadd (1, tmp591) ;
ats_ptrget_mac(ats_int_type, tmp566) = tmp590 ;
tmp592 = ats_ptrget_mac(ats_ptr_type, tmp581) ;
ats_ptrget_mac(ats_ptr_type, tmp568) = tmp592 ;
ats_ptrget_mac(ats_int_type, tmp580) = arg1 ;
ats_ptrget_mac(ats_ptr_type, tmp581) = tmp565 ;
ats_ptrget_mac(ats_ptr_type, tmp582) = arg5 ;
tmp564 = tmp579 ;
} /* end of [if] */
return (tmp564) ;
} /* end of [avltree_rrotate_05001_ats_ptr_type_2cats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 5694(line=219, offs=32) -- 7221(line=268, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_lrotate_04976_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp604) ;
ATSlocal (ats_ptr_type, tmp605) ;
ATSlocal (ats_ptr_type, tmp606) ;
ATSlocal (ats_ptr_type, tmp607) ;
ATSlocal (ats_ptr_type, tmp608) ;
ATSlocal (ats_int_type, tmp609) ;
ATSlocal (ats_ptr_type, tmp610) ;
ATSlocal (ats_int_type, tmp611) ;
ATSlocal (ats_ptr_type, tmp612) ;
ATSlocal (ats_bool_type, tmp613) ;
ATSlocal (ats_int_type, tmp614) ;
ATSlocal (ats_int_type, tmp615) ;
ATSlocal (ats_ptr_type, tmp616) ;
ATSlocal (ats_int_type, tmp617) ;
ATSlocal (ats_int_type, tmp618) ;
ATSlocal (ats_ptr_type, tmp619) ;
ATSlocal (ats_ptr_type, tmp620) ;
ATSlocal (ats_ptr_type, tmp621) ;
ATSlocal (ats_ptr_type, tmp622) ;
ATSlocal (ats_int_type, tmp623) ;
ATSlocal (ats_ptr_type, tmp624) ;
ATSlocal (ats_int_type, tmp625) ;
ATSlocal (ats_ptr_type, tmp626) ;
ATSlocal (ats_int_type, tmp627) ;
ATSlocal (ats_int_type, tmp628) ;
ATSlocal (ats_ptr_type, tmp629) ;
ATSlocal (ats_int_type, tmp630) ;
ATSlocal (ats_int_type, tmp631) ;
ATSlocal (ats_ptr_type, tmp632) ;

__ats_lab_avltree_lrotate_04976_ats_ptr_type_2cats_ptr_type:
tmp605 = ats_ptrget_mac(ats_ptr_type, arg4) ;
// if (tmp605 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp606 = &ats_caselptrlab_mac(anairiats_sum_6, tmp605, atslab_0) ;
tmp607 = &ats_caselptrlab_mac(anairiats_sum_6, tmp605, atslab_3) ;
tmp608 = &ats_caselptrlab_mac(anairiats_sum_6, tmp605, atslab_4) ;
tmp610 = ats_ptrget_mac(ats_ptr_type, tmp607) ;
tmp609 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp610) ;
tmp612 = ats_ptrget_mac(ats_ptr_type, tmp608) ;
tmp611 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp612) ;
tmp614 = atspre_iadd (tmp611, 0) ;
tmp613 = atspre_ilte (tmp609, tmp614) ;
if (tmp613) {
tmp615 = atspre_iadd (tmp609, 1) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp615 ;
tmp616 = ats_ptrget_mac(ats_ptr_type, tmp607) ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp616 ;
tmp618 = atspre_imax (tmp615, tmp611) ;
tmp617 = atspre_iadd (1, tmp618) ;
ats_ptrget_mac(ats_int_type, tmp606) = tmp617 ;
ats_ptrget_mac(ats_ptr_type, tmp607) = arg5 ;
tmp604 = tmp605 ;
} else {
tmp619 = ats_ptrget_mac(ats_ptr_type, tmp607) ;
// if (tmp619 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp620 = &ats_caselptrlab_mac(anairiats_sum_6, tmp619, atslab_0) ;
tmp621 = &ats_caselptrlab_mac(anairiats_sum_6, tmp619, atslab_3) ;
tmp622 = &ats_caselptrlab_mac(anairiats_sum_6, tmp619, atslab_4) ;
tmp624 = ats_ptrget_mac(ats_ptr_type, tmp621) ;
tmp623 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp624) ;
tmp626 = ats_ptrget_mac(ats_ptr_type, tmp622) ;
tmp625 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp626) ;
tmp628 = atspre_imax (arg1, tmp623) ;
tmp627 = atspre_iadd (1, tmp628) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp627 ;
tmp629 = ats_ptrget_mac(ats_ptr_type, tmp621) ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp629 ;
tmp631 = atspre_imax (tmp625, tmp611) ;
tmp630 = atspre_iadd (1, tmp631) ;
ats_ptrget_mac(ats_int_type, tmp606) = tmp630 ;
tmp632 = ats_ptrget_mac(ats_ptr_type, tmp622) ;
ats_ptrget_mac(ats_ptr_type, tmp607) = tmp632 ;
ats_ptrget_mac(ats_int_type, tmp620) = arg3 ;
ats_ptrget_mac(ats_ptr_type, tmp621) = arg5 ;
ats_ptrget_mac(ats_ptr_type, tmp622) = tmp605 ;
tmp604 = tmp619 ;
} /* end of [if] */
return (tmp604) ;
} /* end of [avltree_lrotate_04976_ats_ptr_type_2cats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 9023(line=333, offs=5) -- 11023(line=394, offs=4)
*/
ATSstaticdec()
ats_bool_type
insert_118 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp543) ;
ATSlocal (ats_ptr_type, tmp544) ;
ATSlocal (ats_ptr_type, tmp545) ;
ATSlocal (ats_ptr_type, tmp546) ;
ATSlocal (ats_ptr_type, tmp547) ;
ATSlocal (ats_ptr_type, tmp548) ;
ATSlocal (ats_int_type, tmp549) ;
ATSlocal (ats_ptr_type, tmp550) ;
ATSlocal (ats_bool_type, tmp551) ;
ATSlocal (ats_bool_type, tmp552) ;
ATSlocal (ats_int_type, tmp553) ;
ATSlocal (ats_ptr_type, tmp556) ;
ATSlocal (ats_int_type, tmp557) ;
ATSlocal (ats_ptr_type, tmp558) ;
ATSlocal (ats_bool_type, tmp559) ;
ATSlocal (ats_int_type, tmp560) ;
ATSlocal (ats_int_type, tmp561) ;
ATSlocal (ats_int_type, tmp562) ;
ATSlocal (ats_ptr_type, tmp563) ;
ATSlocal (ats_bool_type, tmp593) ;
ATSlocal (ats_bool_type, tmp594) ;
ATSlocal (ats_int_type, tmp595) ;
ATSlocal (ats_ptr_type, tmp596) ;
ATSlocal (ats_int_type, tmp597) ;
ATSlocal (ats_ptr_type, tmp598) ;
ATSlocal (ats_bool_type, tmp599) ;
ATSlocal (ats_int_type, tmp600) ;
ATSlocal (ats_int_type, tmp601) ;
ATSlocal (ats_int_type, tmp602) ;
ATSlocal (ats_ptr_type, tmp603) ;
ATSlocal (ats_ptr_type, tmp633) ;
ATSlocal (ats_ptr_type, tmp634) ;
ATSlocal (ats_ptr_type, tmp635) ;
ATSlocal (ats_ptr_type, tmp636) ;

__ats_lab_insert_118:
do {
/* branch: __ats_lab_95 */
__ats_lab_95_0:
if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_98_0 ; }
__ats_lab_95_1:
tmp544 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp545 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ;
tmp546 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ;
tmp547 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ;
tmp548 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ;
tmp550 = ats_ptrget_mac(ats_ptr_type, tmp545) ;
tmp549 = compare_key_key_04316_ats_ptr_type (env0, tmp550, env1) ;
tmp551 = atspre_lt_int_int (tmp549, 0) ;
if (tmp551) {
tmp552 = insert_118 (env0, env1, tmp547, arg1, arg2) ;
tmp556 = ats_ptrget_mac(ats_ptr_type, tmp547) ;
tmp553 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp556) ;
tmp558 = ats_ptrget_mac(ats_ptr_type, tmp548) ;
tmp557 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp558) ;
tmp560 = atspre_isub (tmp553, tmp557) ;
tmp559 = atspre_ilte (tmp560, 1) ;
if (tmp559) {
tmp562 = atspre_imax (tmp553, tmp557) ;
tmp561 = atspre_iadd (1, tmp562) ;
ats_ptrget_mac(ats_int_type, tmp544) = tmp561 ;
tmp543 = tmp552 ;
} else {
tmp563 = avltree_rrotate_05001_ats_ptr_type_2cats_ptr_type (tmp544, tmp553, tmp547, tmp557, tmp548, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp563 ;
tmp543 = tmp552 ;
} /* end of [if] */
} else {
tmp593 = atspre_gt_int_int (tmp549, 0) ;
if (tmp593) {
tmp594 = insert_118 (env0, env1, tmp548, arg1, arg2) ;
tmp596 = ats_ptrget_mac(ats_ptr_type, tmp547) ;
tmp595 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp596) ;
tmp598 = ats_ptrget_mac(ats_ptr_type, tmp548) ;
tmp597 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp598) ;
tmp600 = atspre_isub (tmp597, tmp595) ;
tmp599 = atspre_ilte (tmp600, 1) ;
if (tmp599) {
tmp602 = atspre_imax (tmp595, tmp597) ;
tmp601 = atspre_iadd (1, tmp602) ;
ats_ptrget_mac(ats_int_type, tmp544) = tmp601 ;
tmp543 = tmp594 ;
} else {
tmp603 = avltree_lrotate_04976_ats_ptr_type_2cats_ptr_type (tmp544, tmp595, tmp547, tmp597, tmp548, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp603 ;
tmp543 = tmp594 ;
} /* end of [if] */
} else {
tmp633 = ats_ptrget_mac(ats_ptr_type, tmp546) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp633 ;
ats_ptrget_mac(ats_ptr_type, tmp546) = arg1 ;
tmp543 = ats_true_bool ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_98 */
__ats_lab_98_0:
// if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_98_1:
tmp635 = (ats_sum_ptr_type)0 ;
tmp636 = (ats_sum_ptr_type)0 ;
tmp634 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp634, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_6, tmp634, atslab_1, env0) ;
ats_selptrset_mac(anairiats_sum_6, tmp634, atslab_2, arg1) ;
ats_selptrset_mac(anairiats_sum_6, tmp634, atslab_3, tmp635) ;
ats_selptrset_mac(anairiats_sum_6, tmp634, atslab_4, tmp636) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp634 ;
tmp543 = ats_false_bool ;
break ;
} while (0) ;
return (tmp543) ;
} /* end of [insert_118] */

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

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

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

ats_clo_ptr_type
insert_118_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
insert_118_closure_type *p_clo = ATS_MALLOC(sizeof(insert_118_closure_type)) ;
insert_118_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 8988(line=331, offs=3) -- 11078(line=400, offs=4)
*/
ATSstaticdec()
ats_bool_type
linmap_insert_04325_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_clo_ref_type arg3, ats_ref_type arg4) {
/* local vardec */
ATSlocal (ats_bool_type, tmp542) ;

__ats_lab_linmap_insert_04325_ats_ptr_type_2cats_ptr_type:
tmp542 = insert_118 (arg1, arg3, arg0, arg2, arg4) ;
return (tmp542) ;
} /* end of [linmap_insert_04325_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14232(line=595, offs=7) -- 14378(line=601, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_insert (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp540) ;
ATSlocal (ats_ptr_type, tmp541) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_insert:
/* ats_ptr_type tmp541 ; */
tmp540 = linmap_insert_04325_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, statmp393, (&tmp541)) ;
return (tmp540) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_insert] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 11578(line=417, offs=35) -- 12629(line=451, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_takeout_min_05052_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp672) ;
ATSlocal (ats_ptr_type, tmp673) ;
ATSlocal (ats_ptr_type, tmp674) ;
ATSlocal (ats_ptr_type, tmp675) ;
ATSlocal (ats_ptr_type, tmp676) ;
ATSlocal (ats_ptr_type, tmp677) ;
ATSlocal (ats_int_type, tmp678) ;
ATSlocal (ats_ptr_type, tmp679) ;
ATSlocal (ats_int_type, tmp680) ;
ATSlocal (ats_ptr_type, tmp681) ;
ATSlocal (ats_bool_type, tmp682) ;
ATSlocal (ats_int_type, tmp683) ;
ATSlocal (ats_int_type, tmp684) ;
ATSlocal (ats_int_type, tmp685) ;
ATSlocal (ats_ptr_type, tmp686) ;
ATSlocal (ats_ptr_type, tmp687) ;
ATSlocal (ats_ptr_type, tmp688) ;

__ats_lab_avltree_takeout_min_05052_ats_ptr_type_2cats_ptr_type:
// if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp673 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp674 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ;
tmp675 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ;
tmp676 = ats_ptrget_mac(ats_ptr_type, tmp674) ;
do {
/* branch: __ats_lab_104 */
__ats_lab_104_0:
if (tmp676 == (ats_sum_ptr_type)0) { goto __ats_lab_105_0 ; }
__ats_lab_104_1:
tmp677 = avltree_takeout_min_05052_ats_ptr_type_2cats_ptr_type (tmp674) ;
tmp679 = ats_ptrget_mac(ats_ptr_type, tmp674) ;
tmp678 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp679) ;
tmp681 = ats_ptrget_mac(ats_ptr_type, tmp675) ;
tmp680 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp681) ;
tmp683 = atspre_isub (tmp680, tmp678) ;
tmp682 = atspre_ilte (tmp683, 1) ;
if (tmp682) {
tmp685 = atspre_imax (tmp678, tmp680) ;
tmp684 = atspre_iadd (1, tmp685) ;
ats_ptrget_mac(ats_int_type, tmp673) = tmp684 ;
tmp672 = tmp677 ;
} else {
tmp686 = avltree_lrotate_04976_ats_ptr_type_2cats_ptr_type (tmp673, tmp678, tmp674, tmp680, tmp675, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp686 ;
tmp672 = tmp677 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_105 */
__ats_lab_105_0:
// if (tmp676 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_105_1:
tmp687 = ats_ptrget_mac(ats_ptr_type, tmp675) ;
tmp688 = ats_ptrget_mac(ats_ptr_type, arg0) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp687 ;
tmp672 = ats_castfn_mac(ats_ptr_type, tmp688) ;
break ;
} while (0) ;
return (tmp672) ;
} /* end of [avltree_takeout_min_05052_ats_ptr_type_2cats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 13012(line=467, offs=7) -- 16649(line=558, offs=6)
*/
ATSstaticdec()
ats_bool_type
takeout_125 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp640) ;
ATSlocal (ats_ptr_type, tmp641) ;
ATSlocal (ats_ptr_type, tmp642) ;
ATSlocal (ats_ptr_type, tmp643) ;
ATSlocal (ats_ptr_type, tmp644) ;
ATSlocal (ats_ptr_type, tmp645) ;
ATSlocal (ats_int_type, tmp646) ;
ATSlocal (ats_ptr_type, tmp647) ;
ATSlocal (ats_bool_type, tmp648) ;
ATSlocal (ats_bool_type, tmp649) ;
ATSlocal (ats_int_type, tmp650) ;
ATSlocal (ats_ptr_type, tmp651) ;
ATSlocal (ats_int_type, tmp652) ;
ATSlocal (ats_ptr_type, tmp653) ;
ATSlocal (ats_bool_type, tmp654) ;
ATSlocal (ats_int_type, tmp655) ;
ATSlocal (ats_ptr_type, tmp656) ;
ATSlocal (ats_bool_type, tmp657) ;
ATSlocal (ats_bool_type, tmp658) ;
ATSlocal (ats_int_type, tmp659) ;
ATSlocal (ats_ptr_type, tmp660) ;
ATSlocal (ats_int_type, tmp661) ;
ATSlocal (ats_ptr_type, tmp662) ;
ATSlocal (ats_bool_type, tmp663) ;
ATSlocal (ats_int_type, tmp664) ;
ATSlocal (ats_ptr_type, tmp665) ;
ATSlocal (ats_bool_type, tmp667) ;
ATSlocal (ats_ptr_type, tmp668) ;
ATSlocal (ats_ptr_type, tmp669) ;
ATSlocal (ats_ptr_type, tmp670) ;
ATSlocal (ats_ptr_type, tmp671) ;
ATSlocal (ats_ptr_type, tmp689) ;
ATSlocal (ats_ptr_type, tmp690) ;
ATSlocal (ats_ptr_type, tmp691) ;
ATSlocal (ats_int_type, tmp692) ;
ATSlocal (ats_int_type, tmp693) ;
ATSlocal (ats_bool_type, tmp694) ;
ATSlocal (ats_int_type, tmp695) ;
ATSlocal (ats_int_type, tmp696) ;
ATSlocal (ats_int_type, tmp697) ;
ATSlocal (ats_ptr_type, tmp698) ;

__ats_lab_takeout_125:
do {
/* branch: __ats_lab_99 */
__ats_lab_99_0:
if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_107_0 ; }
__ats_lab_99_1:
tmp641 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp642 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ;
tmp643 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ;
tmp644 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ;
tmp645 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ;
tmp647 = ats_ptrget_mac(ats_ptr_type, tmp642) ;
tmp646 = compare_key_key_04316_ats_ptr_type (env0, tmp647, env1) ;
do {
/* branch: __ats_lab_100 */
__ats_lab_100_0:
__ats_lab_100_1:
tmp648 = atspre_lt_int_int (tmp646, 0) ;
if (!tmp648) { goto __ats_lab_101_1 ; }
tmp649 = takeout_125 (env0, env1, tmp644, arg1) ;
tmp651 = ats_ptrget_mac(ats_ptr_type, tmp644) ;
tmp650 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp651) ;
tmp653 = ats_ptrget_mac(ats_ptr_type, tmp645) ;
tmp652 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp653) ;
tmp655 = atspre_isub (tmp652, tmp650) ;
tmp654 = atspre_ilte (tmp655, 1) ;
if (tmp654) {
tmp640 = tmp649 ;
} else {
tmp656 = avltree_lrotate_04976_ats_ptr_type_2cats_ptr_type (tmp641, tmp650, tmp644, tmp652, tmp645, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp656 ;
tmp640 = tmp649 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_101 */
__ats_lab_101_0:
__ats_lab_101_1:
tmp657 = atspre_gt_int_int (tmp646, 0) ;
if (!tmp657) { goto __ats_lab_102_1 ; }
tmp658 = takeout_125 (env0, env1, tmp645, arg1) ;
tmp660 = ats_ptrget_mac(ats_ptr_type, tmp644) ;
tmp659 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp660) ;
tmp662 = ats_ptrget_mac(ats_ptr_type, tmp645) ;
tmp661 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp662) ;
tmp664 = atspre_isub (tmp659, tmp661) ;
tmp663 = atspre_ilte (tmp664, 1) ;
if (tmp663) {
tmp640 = tmp658 ;
} else {
tmp665 = avltree_rrotate_05001_ats_ptr_type_2cats_ptr_type (tmp641, tmp659, tmp644, tmp661, tmp645, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp665 ;
tmp640 = tmp658 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_102 */
__ats_lab_102_0:
__ats_lab_102_1:
tmp667 = atspre_pgt (arg1, atspre_null_ptr) ;
if (tmp667) {
tmp668 = ats_ptrget_mac(ats_ptr_type, tmp643) ;
ats_ptrget_mac(ats_ptr_type, arg1) = tmp668 ;
} else {
/* empty */
} /* end of [if] */
/* ats_ptr_type tmp669 ; */
tmp669 = ats_ptrget_mac(ats_ptr_type, tmp644) ;
/* ats_ptr_type tmp670 ; */
tmp670 = ats_ptrget_mac(ats_ptr_type, tmp645) ;
ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ;
do {
/* branch: __ats_lab_103 */
__ats_lab_103_0:
if (tmp670 == (ats_sum_ptr_type)0) { goto __ats_lab_106_0 ; }
__ats_lab_103_1:
tmp671 = avltree_takeout_min_05052_ats_ptr_type_2cats_ptr_type ((&tmp670)) ;
if (tmp671 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 15639(line=535, offs=21) -- 15683(line=535, offs=65)") ; }
tmp689 = &ats_caselptrlab_mac(anairiats_sum_6, tmp671, atslab_0) ;
tmp690 = &ats_caselptrlab_mac(anairiats_sum_6, tmp671, atslab_3) ;
tmp691 = &ats_caselptrlab_mac(anairiats_sum_6, tmp671, atslab_4) ;
tmp692 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp669) ;
tmp693 = avltree_height_04948_ats_ptr_type_2cats_ptr_type (tmp670) ;
ats_ptrget_mac(ats_ptr_type, tmp690) = tmp669 ;
ats_ptrget_mac(ats_ptr_type, tmp691) = tmp670 ;
tmp695 = atspre_isub (tmp692, tmp693) ;
tmp694 = atspre_ilte (tmp695, 1) ;
if (tmp694) {
tmp697 = atspre_imax (tmp692, tmp693) ;
tmp696 = atspre_iadd (1, tmp697) ;
ats_ptrget_mac(ats_int_type, tmp689) = tmp696 ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp671 ;
tmp640 = ats_true_bool ;
} else {
tmp698 = avltree_rrotate_05001_ats_ptr_type_2cats_ptr_type (tmp689, tmp692, tmp690, tmp693, tmp691, tmp671) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp698 ;
tmp640 = ats_true_bool ;
} /* end of [if] */
break ;

/* branch: __ats_lab_106 */
__ats_lab_106_0:
// if (tmp670 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_106_1:
ats_ptrget_mac(ats_ptr_type, arg0) = tmp669 ;
tmp640 = ats_true_bool ;
break ;
} while (0) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_107 */
__ats_lab_107_0:
// if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_107_1:
tmp640 = ats_false_bool ;
break ;
} while (0) ;
return (tmp640) ;
} /* end of [takeout_125] */

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

ats_bool_type
takeout_125_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) {
return takeout_125 (((takeout_125_closure_type*)cloptr)->closure_env_0, ((takeout_125_closure_type*)cloptr)->closure_env_1, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
takeout_125_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
takeout_125_closure_type *p_clo = ATS_MALLOC(sizeof(takeout_125_closure_type)) ;
takeout_125_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 12957(line=466, offs=3) -- 16671(line=559, offs=2)
*/
ATSstaticdec()
ats_bool_type
linmap_takeout_ptr_04340_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_bool_type, tmp639) ;

__ats_lab_linmap_takeout_ptr_04340_ats_ptr_type_2cats_ptr_type:
tmp639 = takeout_125 (arg1, arg2, arg0, arg3) ;
return (tmp639) ;
} /* end of [linmap_takeout_ptr_04340_ats_ptr_type_2cats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 17132(line=576, offs=15) -- 17193(line=576, offs=76)
*/
ATSstaticdec()
ats_bool_type
linmap_remove_04327_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp638) ;

__ats_lab_linmap_remove_04327_ats_ptr_type_2cats_ptr_type:
tmp638 = linmap_takeout_ptr_04340_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, atspre_null_ptr) ;
return (tmp638) ;
} /* end of [linmap_remove_04327_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14446(line=605, offs=7) -- 14494(line=606, offs=36)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_remove (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp637) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_remove:
tmp637 = linmap_remove_04327_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp393) ;
return (tmp637) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_remove] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 21260(line=724, offs=7) -- 21616(line=736, offs=31)
*/
ATSstaticdec()
ats_ptr_type
aux_129 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp701) ;
ATSlocal (ats_ptr_type, tmp702) ;
ATSlocal (ats_ptr_type, tmp703) ;
ATSlocal (ats_ptr_type, tmp704) ;
ATSlocal (ats_ptr_type, tmp705) ;
ATSlocal (ats_ptr_type, tmp706) ;
ATSlocal (ats_ptr_type, tmp707) ;
ATSlocal (ats_ptr_type, tmp708) ;
ATSlocal (anairiats_rec_7, tmp709) ;
ATSlocal (ats_ptr_type, tmp710) ;

__ats_lab_aux_129:
do {
/* branch: __ats_lab_108 */
__ats_lab_108_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_109_0 ; }
__ats_lab_108_1:
tmp702 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp703 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp704 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp705 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ;
tmp707 = ats_ptrget_mac(ats_ptr_type, tmp705) ;
tmp706 = aux_129 (tmp707, arg1) ;
tmp709.atslab_0 = tmp702 ;
tmp709.atslab_1 = tmp703 ;

tmp708 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp708, atslab_0, tmp709) ;
ats_selptrset_mac(anairiats_sum_8, tmp708, atslab_1, tmp706) ;
tmp710 = ats_ptrget_mac(ats_ptr_type, tmp704) ;
arg0 = tmp710 ;
arg1 = tmp708 ;
goto __ats_lab_aux_129 ; // tail call
break ;

/* branch: __ats_lab_109 */
__ats_lab_109_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_109_1:
tmp701 = arg1 ;
break ;
} while (0) ;
return (tmp701) ;
} /* end of [aux_129] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 21202(line=722, offs=16) -- 21664(line=740, offs=4)
*/
ATSstaticdec()
ats_ptr_type
linmap_listize_04336_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp700) ;
ATSlocal (ats_ptr_type, tmp711) ;

__ats_lab_linmap_listize_04336_ats_ptr_type_2cats_ptr_type:
tmp711 = (ats_sum_ptr_type)0 ;
tmp700 = aux_129 (arg0, tmp711) ;
return (tmp700) ;
} /* end of [linmap_listize_04336_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14563(line=611, offs=7) -- 14594(line=611, offs=38)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_listize (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp699) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_listize:
tmp699 = linmap_listize_04336_ats_ptr_type_2cats_ptr_type (arg0) ;
return (tmp699) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_listize] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14679(line=617, offs=20) -- 14706(line=617, offs=47)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp712) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_nil:
tmp712 = linmap_make_nil_04317_ () ;
return (tmp712) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_nil] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14812(line=626, offs=4) -- 14897(line=629, offs=30)
*/
ATSstaticdec()
ats_void_type
f_132 (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp714) ;

__ats_lab_f_132:
/* tmp714 = */ list_vt_free_01499_ats_ptr_type (ats_ptrget_mac(ats_ptr_type, arg1)) ;
return /* (tmp714) */ ;
} /* end of [f_132] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 17514(line=590, offs=7) -- 17815(line=596, offs=24)
*/
ATSstaticdec()
ats_void_type
foreach_135 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp718) ;
ATSlocal (ats_ptr_type, tmp719) ;
ATSlocal (ats_ptr_type, tmp720) ;
ATSlocal (ats_ptr_type, tmp721) ;
ATSlocal (ats_ptr_type, tmp722) ;
// ATSlocal_void (tmp723) ;
ATSlocal (ats_ptr_type, tmp724) ;
// ATSlocal_void (tmp725) ;
ATSlocal (ats_ptr_type, tmp726) ;
ATSlocal (ats_ptr_type, tmp727) ;

__ats_lab_foreach_135:
do {
/* branch: __ats_lab_110 */
__ats_lab_110_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_111_0 ; }
__ats_lab_110_1:
tmp719 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp720 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp721 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp722 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ;
tmp724 = ats_ptrget_mac(ats_ptr_type, tmp721) ;
/* tmp723 = */ foreach_135 (env0, tmp724, arg1) ;
tmp726 = ats_ptrget_mac(ats_ptr_type, tmp719) ;
/* tmp725 = */ ((ats_void_type(*)(ats_ptr_type, ats_ref_type, ats_ptr_type))env0) (tmp726, tmp720, arg1) ;
tmp727 = ats_ptrget_mac(ats_ptr_type, tmp722) ;
arg0 = tmp727 ;
arg1 = arg1 ;
goto __ats_lab_foreach_135 ; // tail call
break ;

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

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
} foreach_135_closure_type ;

ats_void_type
foreach_135_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) {
foreach_135 (((foreach_135_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; return ;
} /* end of function */

ATSinline()
ats_void_type
foreach_135_closure_init (foreach_135_closure_type *p_clo, ats_ptr_type env0) {
p_clo->closure_fun = (ats_fun_ptr_type)&foreach_135_clofun ;
p_clo->closure_env_0 = env0 ;
return ;
} /* end of function */

ats_clo_ptr_type
foreach_135_closure_make (ats_ptr_type env0) {
foreach_135_closure_type *p_clo = ATS_MALLOC(sizeof(foreach_135_closure_type)) ;
foreach_135_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 17459(line=589, offs=3) -- 17839(line=598, offs=2)
*/
ATSstaticdec()
ats_void_type
linmap_foreach_funenv_04328_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp717) ;

__ats_lab_linmap_foreach_funenv_04328_ats_ptr_type_2cats_ptr_type:
/* tmp717 = */ foreach_135 (arg1, arg0, arg2) ;
return /* (tmp717) */ ;
} /* end of [linmap_foreach_funenv_04328_ats_ptr_type_2cats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 20057(line=678, offs=12) -- 20481(line=693, offs=4)
*/
ATSstaticdec()
ats_void_type
linmap_clear_funenv_04333_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp716) ;

__ats_lab_linmap_clear_funenv_04333_ats_ptr_type_2cats_ptr_type:
/* tmp716 = */ linmap_foreach_funenv_04328_ats_ptr_type_2cats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), arg2) ;
return /* (tmp716) */ ;
} /* end of [linmap_clear_funenv_04333_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14744(line=621, offs=7) -- 15101(line=639, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_free (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp713) ;
// ATSlocal_void (tmp715) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_free:
/* tmp715 = */ linmap_clear_funenv_04333_ats_ptr_type_2cats_ptr_type (arg0, &f_132, atspre_null_ptr) ;
/* tmp713 = */ linmap_free_04334_ats_ptr_type_2cats_ptr_type (arg0) ;
return /* (tmp713) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_free] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/unsafe.dats: 1763(line=50, offs=10) -- 1979(line=60, offs=2)
*/
ATSstaticdec()
ats_ptr_type
ptr0_get_01759_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp733) ;

__ats_lab_ptr0_get_01759_ats_ptr_type:
tmp733 = ats_ptrget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ;
return (tmp733) ;
} /* end of [ptr0_get_01759_ats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2430(line=82, offs=21) -- 2450(line=82, offs=41)
*/
ATSstaticdec()
ats_ptr_type
ptrget_01763_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp732) ;

__ats_lab_ptrget_01763_ats_ptr_type:
tmp732 = ptr0_get_01759_ats_ptr_type (arg0) ;
return (tmp732) ;
} /* end of [ptrget_01763_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 15173(line=643, offs=7) -- 15536(line=664, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_search (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp728) ;
ATSlocal (ats_ptr_type, tmp729) ;
ATSlocal (ats_bool_type, tmp730) ;
ATSlocal (ats_ptr_type, tmp731) ;
ATSlocal (ats_ptr_type, tmp734) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_search:
tmp729 = linmap_search_ref_04323_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp393) ;
tmp730 = atspre_pgt (tmp729, atspre_null_ptr) ;
if (tmp730) {
tmp731 = ptrget_01763_ats_ptr_type (tmp729) ;
do {
/* branch: __ats_lab_112 */
__ats_lab_112_0:
if (tmp731 == (ats_sum_ptr_type)0) { goto __ats_lab_113_0 ; }
__ats_lab_112_1:
tmp734 = ats_caselptrlab_mac(anairiats_sum_3, tmp731, atslab_0) ;
tmp728 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp728, atslab_0, tmp734) ;
break ;

/* branch: __ats_lab_113 */
__ats_lab_113_0:
__ats_lab_113_1:
tmp728 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
} else {
tmp728 = (ats_sum_ptr_type)0 ;
} /* end of [if] */
return (tmp728) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_search] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2024(line=63, offs=10) -- 2250(line=73, offs=2)
*/
ATSstaticdec()
ats_void_type
ptr0_set_01760_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp741) ;

__ats_lab_ptr0_set_01760_ats_ptr_type:
ats_ptrget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) = arg1 ;
return /* (tmp741) */ ;
} /* end of [ptr0_set_01760_ats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2472(line=83, offs=21) -- 2499(line=83, offs=48)
*/
ATSstaticdec()
ats_void_type
ptrset_01764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp740) ;

__ats_lab_ptrset_01764_ats_ptr_type:
/* tmp740 = */ ptr0_set_01760_ats_ptr_type (arg0, arg1) ;
return /* (tmp740) */ ;
} /* end of [ptrset_01764_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 15610(line=668, offs=7) -- 16119(line=695, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_insert (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp735) ;
ATSlocal (ats_ptr_type, tmp736) ;
ATSlocal (ats_bool_type, tmp737) ;
ATSlocal (ats_ptr_type, tmp738) ;
// ATSlocal_void (tmp739) ;
ATSlocal (ats_ptr_type, tmp742) ;
ATSlocal (ats_ptr_type, tmp743) ;
ATSlocal (ats_bool_type, tmp744) ;
ATSlocal (ats_ptr_type, tmp745) ;
ATSlocal (ats_ptr_type, tmp746) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_insert:
tmp736 = linmap_search_ref_04323_ats_ptr_type_2cats_ptr_type (ats_ptrget_mac(ats_ptr_type, arg0), arg1, statmp393) ;
tmp737 = atspre_pgt (tmp736, atspre_null_ptr) ;
if (tmp737) {
tmp738 = ptrget_01763_ats_ptr_type (tmp736) ;
tmp742 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp742, atslab_0, arg2) ;
ats_selptrset_mac(anairiats_sum_3, tmp742, atslab_1, tmp738) ;
/* tmp739 = */ ptrset_01764_ats_ptr_type (tmp736, tmp742) ;
tmp735 = ats_true_bool ;
} else {
/* ats_ptr_type tmp743 ; */
tmp746 = (ats_sum_ptr_type)0 ;
tmp745 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp745, atslab_0, arg2) ;
ats_selptrset_mac(anairiats_sum_3, tmp745, atslab_1, tmp746) ;
tmp744 = linmap_insert_04325_ats_ptr_type_2cats_ptr_type (arg0, arg1, tmp745, statmp393, (&tmp743)) ;
tmp735 = ats_false_bool ;
} /* end of [if] */
return (tmp735) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_insert] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 16762(line=566, offs=3) -- 17070(line=573, offs=2)
*/
ATSstaticdec()
ats_bool_type
linmap_takeout_04326_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2, ats_ref_type arg3) {
/* local vardec */
ATSlocal (ats_bool_type, tmp755) ;
ATSlocal (ats_bool_type, tmp756) ;

__ats_lab_linmap_takeout_04326_ats_ptr_type_2cats_ptr_type:
tmp756 = linmap_takeout_ptr_04340_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, arg3) ;
tmp755 = ats_castfn_mac(ats_bool_type, tmp756) ;
return (tmp755) ;
} /* end of [linmap_takeout_04326_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 16193(line=699, offs=7) -- 17108(line=737, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_remove (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp747) ;
ATSlocal (ats_ptr_type, tmp748) ;
ATSlocal (ats_bool_type, tmp749) ;
ATSlocal (ats_ptr_type, tmp750) ;
ATSlocal (ats_ptr_type, tmp751) ;
// ATSlocal_void (tmp752) ;
ATSlocal (ats_ptr_type, tmp753) ;
ATSlocal (ats_bool_type, tmp754) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_remove:
tmp748 = linmap_search_ref_04323_ats_ptr_type_2cats_ptr_type (ats_ptrget_mac(ats_ptr_type, arg0), arg1, statmp393) ;
tmp749 = atspre_pgt (tmp748, atspre_null_ptr) ;
if (tmp749) {
tmp750 = ptrget_01763_ats_ptr_type (tmp748) ;
do {
/* branch: __ats_lab_114 */
__ats_lab_114_0:
if (tmp750 == (ats_sum_ptr_type)0) { goto __ats_lab_117_0 ; }
__ats_lab_114_1:
tmp751 = ats_caselptrlab_mac(anairiats_sum_3, tmp750, atslab_1) ;
ATS_FREE(tmp750) ;
do {
/* branch: __ats_lab_115 */
__ats_lab_115_0:
if (tmp751 == (ats_sum_ptr_type)0) { goto __ats_lab_116_0 ; }
__ats_lab_115_1:
/* tmp752 = */ ptrset_01764_ats_ptr_type (tmp748, tmp751) ;
break ;

/* branch: __ats_lab_116 */
__ats_lab_116_0:
// if (tmp751 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_116_1:
/* ats_ptr_type tmp753 ; */
tmp754 = linmap_takeout_04326_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp393, (&tmp753)) ;
/* tmp752 = ats_castfn_mac(ats_void_type, tmp753) */ ;
break ;
} while (0) ;
tmp747 = ats_true_bool ;
break ;

/* branch: __ats_lab_117 */
__ats_lab_117_0:
// if (tmp750 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_117_1:
tmp747 = ats_false_bool ;
break ;
} while (0) ;
} else {
tmp747 = ats_false_bool ;
} /* end of [if] */
return (tmp747) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_remove] */

/* static load function */

// extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ;
extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload (void) ;
extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload (void) ;
// 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) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linmap_avltree_2esats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__staload_flag = 1 ;

// _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ;
// ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ;
ATS_2d0_2e2_2e12_2libats_2SATS_2funset_avltree_2esats__staload () ;
ATS_2d0_2e2_2e12_2libats_2DATS_2funset_avltree_2edats__staload () ;
// ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload () ;
// ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload () ;
// ATS_2d0_2e2_2e12_2libats_2SATS_2funmap_avltree_2esats__staload () ;
ATS_2d0_2e2_2e12_2libats_2DATS_2funmap_avltree_2edats__staload () ;
// ATS_2d0_2e2_2e12_2libats_2SATS_2linmap_avltree_2esats__staload () ;
// ATS_2d0_2e2_2e12_2libats_2DATS_2linmap_avltree_2edats__staload () ;

return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_dvar_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(&statmp140, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp393, sizeof(ats_ptr_type)) ;

/* marking external values for GC */

/* code for dynamic loading */
statmp140 = __ats_fun_50_closure_make () ;
statmp393 = __ats_fun_89_closure_make () ;
return ;
} /* end of [dynload function] */

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

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

/* end of [pats_dynexp2_dvar_dats.c] */
