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

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

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

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_isprf) (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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear) (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_47 (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_47_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ;
static
ats_void_type aux_47_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_51 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type __ats_fun_51_closure_make () ;
static
ats_int_type __ats_fun_51_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type funset_make_nil_04237_ () ;
static
ats_int_type compare_elt_elt_04236_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_bool_type aux_56 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ;
static
ats_clo_ptr_type aux_56_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_bool_type aux_56_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_bool_type funset_is_member_04244_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type avltree_rrotate_04074_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_04057_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_60 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_clo_ptr_type insert_60_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_ptr_type insert_60_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_bool_type funset_insert_04246_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type listize_65 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type funset_listize_04261_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type linset_make_nil_04265_ () ;
static
ats_void_type aux_70 (ats_ptr_type arg0) ;
static
ats_void_type linset_free_04272_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_int_type compare_elt_elt_04264_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_bool_type aux_73 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ;
static
ats_clo_ptr_type aux_73_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_bool_type aux_73_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_bool_type linset_is_member_04270_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_int_type avltree_height_04331_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type avltree_rrotate_04385_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_04361_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_77 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type insert_77_closure_make (ats_clo_ref_type env0) ;
static
ats_bool_type insert_77_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type linset_insert_04274_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type aux_83 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type linset_listize_04289_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type aux_86 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type linset_listize_free_04290_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type loop_89 (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_90 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type __ats_fun_90_closure_make () ;
static
ats_int_type __ats_fun_90_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type funmap_make_nil_04295_ () ;
static
ats_int_type compare_key_key_04294_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_bool_type search_96 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_clo_ptr_type search_96_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_bool_type search_96_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_bool_type funmap_search_04300_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_04301_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_04773_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_04753_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_100 (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_100_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2) ;
static
ats_ptr_type insert_100_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_bool_type funmap_insert_04302_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_105 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type funmap_listize_04311_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type linmap_make_nil_04318_ () ;
static
ats_void_type _free_110 (ats_ptr_type arg0) ;
static
ats_void_type linmap_free_04335_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ;
static
ats_int_type compare_key_key_04317_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type search_115 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) ;
static
ats_clo_ptr_type search_115_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_ptr_type search_115_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_ptr_type linmap_search_ref_04324_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_04323_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_04325_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_04949_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type avltree_rrotate_05002_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_04977_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_119 (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_119_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_bool_type insert_119_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_bool_type linmap_insert_04326_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_05053_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0) ;
static
ats_bool_type takeout_126 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type takeout_126_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) ;
static
ats_bool_type takeout_126_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type linmap_takeout_ptr_04341_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_04328_ats_ptr_type_2cats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type aux_130 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type linmap_listize_04337_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type f_133 (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2) ;
static
ats_void_type foreach_136 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type foreach_136_closure_make (ats_ptr_type env0) ;
static
ats_void_type foreach_136_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type linmap_foreach_funenv_04329_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_04334_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_04327_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, statmp142) ;
ATSstatic (ats_ptr_type, statmp395) ;

/* external value variable declarations */

/* function implementations */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/pointer.dats: 1817(line=56, offs=24) -- 1850(line=56, offs=57)
*/
ATSstaticdec()
ats_ptr_type
ptr_alloc_01070_anairiats_rec_1 () {
/* local vardec */
ATSlocal (ats_ptr_type, 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: 8463(line=315, offs=17) -- 8497(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: 8525(line=317, offs=17) -- 8593(line=318, offs=61)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linprf (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp76) ;
ATSlocal (ats_bool_type, tmp77) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linprf:
tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_isprf (arg0) ;
if (tmp77) {
tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linear (arg0) ;
} else {
tmp76 = ats_false_bool ;
} /* end of [if] */
return (tmp76) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_linprf] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8623(line=321, offs=17) -- 8694(line=322, 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, tmp78) ;
ATSlocal (ats_ptr_type, tmp79) ;

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

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8772(line=328, offs=16) -- 8816(line=328, 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, tmp80) ;
ATSlocal (ats_int_type, tmp81) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8844(line=330, offs=17) -- 8889(line=330, 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, tmp82) ;
ATSlocal (ats_int_type, tmp83) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 8943(line=335, offs=21) -- 9022(line=336, 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, tmp84) ;
ATSlocal (ats_int_type, tmp85) ;
ATSlocal (ats_int_type, tmp86) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 9091(line=341, offs=3) -- 9186(line=342, 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, tmp87) ;
ATSlocal (ats_ptr_type, tmp88) ;
ATSlocal (ats_ptr_type, tmp89) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 9273(line=349, offs=3) -- 9395(line=354, 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, tmp90) ;
ATSlocal (ats_ptr_type, tmp91) ;
// ATSlocal_void (tmp92) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 9480(line=360, offs=3) -- 9939(line=377, 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, 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 (ats_ptr_type, tmp99) ;
ATSlocal (ats_ptr_type, tmp100) ;
// ATSlocal_void (tmp101) ;
// ATSlocal_void (tmp102) ;
ATSlocal (ats_ptr_type, tmp103) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_ptr_viewat_make:
tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc (arg0) ;
tmp95 = _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:
tmp97 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ;
tmp96 = tmp97 ;
break ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10014(line=381, offs=3) -- 10063(line=381, 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, tmp104) ;
ATSlocal (ats_ptr_type, tmp105) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10147(line=387, offs=13) -- 10185(line=387, offs=51)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2var (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp106) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10208(line=389, offs=13) -- 10246(line=389, offs=51)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp107) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10273(line=393, offs=3) -- 10560(line=405, 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 (tmp108) ;
// ATSlocal_void (tmp109) ;
ATSlocal (ats_ptr_type, tmp110) ;
// ATSlocal_void (tmp111) ;
// ATSlocal_void (tmp112) ;
ATSlocal (ats_int_type, tmp113) ;
// ATSlocal_void (tmp114) ;
// ATSlocal_void (tmp115) ;
ATSlocal (ats_int_type, tmp116) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var:
tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_sym (arg1) ;
/* tmp109 = */ _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__fprint_symbol (arg0, tmp110) ;
/* tmp111 = */ atspre_fprint_string (arg0, ATSstrcst("$")) ;
tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_stamp (arg1) ;
/* tmp112 = */ _2tmp_2ATS_2dPostiats_2src_2pats_stamp_2esats__fprint_stamp (arg0, tmp113) ;
/* tmp114 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ;
tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_level (arg1) ;
/* tmp115 = */ atspre_fprint_int (arg0, tmp116) ;
/* tmp108 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ;
return /* (tmp108) */ ;
} /* 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_47 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp119) ;
ATSlocal (ats_ptr_type, tmp120) ;
ATSlocal (ats_ptr_type, tmp121) ;
// ATSlocal_void (tmp122) ;
ATSlocal (ats_bool_type, tmp123) ;
// ATSlocal_void (tmp124) ;
ATSlocal (ats_int_type, tmp125) ;

__ats_lab_aux_47:
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:
tmp120 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_0) ;
tmp121 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
tmp123 = atspre_gt_int_int (arg1, 0) ;
if (tmp123) {
/* tmp122 = */ atspre_fprint_string (env0, env1) ;
} else {
/* empty */
} /* end of [if] */
/* tmp124 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp120) ;
tmp125 = atspre_add_int_int (arg1, 1) ;
arg0 = tmp121 ;
arg1 = tmp125 ;
goto __ats_lab_aux_47 ; // tail call
break ;
} while (0) ;
return /* (tmp119) */ ;
} /* end of [aux_47] */

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

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

ATSinline()
ats_void_type
aux_47_closure_init (aux_47_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_47_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_47_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
aux_47_closure_type *p_clo = ATS_MALLOC(sizeof(aux_47_closure_type)) ;
aux_47_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 (tmp118) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10618(line=409, offs=3) -- 10677(line=409, 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 (tmp117) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10751(line=415, offs=14) -- 10786(line=415, offs=49)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2vfin (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp126) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10810(line=417, offs=14) -- 10845(line=417, offs=49)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2vfin (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp127) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 10873(line=421, offs=3) -- 11556(line=452, 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 (tmp128) ;
ATSlocal (ats_ptr_type, tmp129) ;
// ATSlocal_void (tmp130) ;
// ATSlocal_void (tmp131) ;
ATSlocal (ats_ptr_type, tmp132) ;
// ATSlocal_void (tmp133) ;
// ATSlocal_void (tmp134) ;
ATSlocal (ats_ptr_type, tmp135) ;
// ATSlocal_void (tmp136) ;
// ATSlocal_void (tmp137) ;
ATSlocal (ats_ptr_type, tmp138) ;
// ATSlocal_void (tmp139) ;
// ATSlocal_void (tmp140) ;

__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:
/* tmp128 = */ 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:
tmp129 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ;
/* tmp130 = */ atspre_fprint_string (arg0, ATSstrcst("D2VFINsome(")) ;
/* tmp131 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp129) ;
/* tmp128 = */ 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:
tmp132 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ;
/* tmp133 = */ atspre_fprint_string (arg0, ATSstrcst("D2VFINsome_lvar(")) ;
/* tmp134 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp132) ;
/* tmp128 = */ 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:
tmp135 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ;
/* tmp136 = */ atspre_fprint_string (arg0, ATSstrcst("D2VFINsome_vbox(")) ;
/* tmp137 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__fprint_s2exp (arg0, tmp135) ;
/* tmp128 = */ 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:
tmp138 = ats_caselptrlab_mac(anairiats_sum_4, arg1, atslab_0) ;
/* tmp139 = */ atspre_fprint_string (arg0, ATSstrcst("D2VFINdone(")) ;
/* tmp140 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2vfin (arg0, tmp138) ;
/* tmp128 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ;
break ;
} while (0) ;
return /* (tmp128) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2vfin] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 11810(line=466, offs=11) -- 11895(line=469, offs=35)
*/
ATSstaticdec()
ats_int_type
__ats_fun_51 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp141) ;

__ats_lab___ats_fun_51:
tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (arg0, arg1) ;
return (tmp141) ;
} /* end of [__ats_fun_51] */

typedef struct {
ats_fun_ptr_type closure_fun ;
} __ats_fun_51_closure_type ;

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

ATSinline()
ats_void_type
__ats_fun_51_closure_init (__ats_fun_51_closure_type *p_clo) {
p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_51_clofun ;
return ;
} /* end of function */

ats_clo_ptr_type
__ats_fun_51_closure_make () {
__ats_fun_51_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_51_closure_type)) ;
__ats_fun_51_closure_init (p_clo) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

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

__ats_lab_funset_make_nil_04237_:
tmp144 = (ats_sum_ptr_type)0 ;
return (tmp144) ;
} /* end of [funset_make_nil_04237_] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12040(line=478, offs=14) -- 12067(line=478, offs=41)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp143) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_nil:
tmp143 = funset_make_nil_04237_ () ;
return (tmp143) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_nil] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 1954(line=57, offs=30) -- 1982(line=57, offs=58)
*/
ATSstaticdec()
ats_int_type
compare_elt_elt_04236_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp152) ;

__ats_lab_compare_elt_elt_04236_ats_ptr_type:
tmp152 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ;
return (tmp152) ;
} /* end of [compare_elt_elt_04236_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4143(line=153, offs=7) -- 4406(line=161, offs=20)
*/
ATSstaticdec()
ats_bool_type
aux_56 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp147) ;
ATSlocal (ats_ptr_type, tmp148) ;
ATSlocal (ats_ptr_type, tmp149) ;
ATSlocal (ats_ptr_type, tmp150) ;
ATSlocal (ats_int_type, tmp151) ;
ATSlocal (ats_bool_type, tmp153) ;
ATSlocal (ats_bool_type, tmp154) ;

__ats_lab_aux_56:
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:
tmp148 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp149 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ;
tmp150 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ;
tmp151 = compare_elt_elt_04236_ats_ptr_type (env0, tmp148, env1) ;
tmp153 = atspre_lt_int_int (tmp151, 0) ;
if (tmp153) {
arg0 = tmp149 ;
goto __ats_lab_aux_56 ; // tail call
} else {
tmp154 = atspre_gt_int_int (tmp151, 0) ;
if (tmp154) {
arg0 = tmp150 ;
goto __ats_lab_aux_56 ; // tail call
} else {
tmp147 = 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:
tmp147 = ats_false_bool ;
break ;
} while (0) ;
return (tmp147) ;
} /* end of [aux_56] */

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

ats_bool_type
aux_56_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
return aux_56 (((aux_56_closure_type*)cloptr)->closure_env_0, ((aux_56_closure_type*)cloptr)->closure_env_1, arg0) ;
} /* end of function */

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

ats_clo_ptr_type
aux_56_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
aux_56_closure_type *p_clo = ATS_MALLOC(sizeof(aux_56_closure_type)) ;
aux_56_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

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

__ats_lab_funset_is_member_04244_ats_ptr_type:
tmp146 = aux_56 (arg1, arg2, arg0) ;
return (tmp146) ;
} /* end of [funset_is_member_04244_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12096(line=482, offs=3) -- 12139(line=482, 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, tmp145) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_ismem:
tmp145 = funset_is_member_04244_ats_ptr_type (arg0, arg1, statmp142) ;
return (tmp145) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_ismem] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 5504(line=202, offs=46) -- 6164(line=224, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_rrotate_04074_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, tmp175) ;
ATSlocal (ats_ptr_type, tmp176) ;
ATSlocal (ats_ptr_type, tmp177) ;
ATSlocal (ats_ptr_type, tmp178) ;
ATSlocal (ats_int_type, tmp179) ;
ATSlocal (ats_int_type, tmp180) ;
ATSlocal (ats_int_type, tmp181) ;
ATSlocal (ats_int_type, tmp182) ;
ATSlocal (ats_bool_type, tmp183) ;
ATSlocal (ats_int_type, tmp184) ;
ATSlocal (ats_int_type, tmp185) ;
ATSlocal (ats_int_type, tmp186) ;
ATSlocal (ats_int_type, tmp187) ;
ATSlocal (ats_ptr_type, tmp188) ;
ATSlocal (ats_ptr_type, tmp189) ;
ATSlocal (ats_ptr_type, tmp190) ;
ATSlocal (ats_ptr_type, tmp191) ;
ATSlocal (ats_int_type, tmp192) ;
ATSlocal (ats_int_type, tmp193) ;
ATSlocal (ats_int_type, tmp194) ;
ATSlocal (ats_int_type, tmp195) ;
ATSlocal (ats_ptr_type, tmp196) ;
ATSlocal (ats_int_type, tmp197) ;
ATSlocal (ats_int_type, tmp198) ;
ATSlocal (ats_ptr_type, tmp199) ;
ATSlocal (ats_int_type, tmp200) ;
ATSlocal (ats_int_type, tmp201) ;

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

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

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

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

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

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 4671(line=174, offs=46) -- 5362(line=196, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_lrotate_04057_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, tmp212) ;
ATSlocal (ats_ptr_type, tmp213) ;
ATSlocal (ats_ptr_type, tmp214) ;
ATSlocal (ats_ptr_type, tmp215) ;
ATSlocal (ats_int_type, tmp216) ;
ATSlocal (ats_int_type, tmp217) ;
ATSlocal (ats_int_type, tmp218) ;
ATSlocal (ats_int_type, tmp219) ;
ATSlocal (ats_bool_type, tmp220) ;
ATSlocal (ats_int_type, tmp221) ;
ATSlocal (ats_int_type, tmp222) ;
ATSlocal (ats_int_type, tmp223) ;
ATSlocal (ats_int_type, tmp224) ;
ATSlocal (ats_ptr_type, tmp225) ;
ATSlocal (ats_ptr_type, tmp226) ;
ATSlocal (ats_ptr_type, tmp227) ;
ATSlocal (ats_ptr_type, tmp228) ;
ATSlocal (ats_int_type, tmp229) ;
ATSlocal (ats_int_type, tmp230) ;
ATSlocal (ats_int_type, tmp231) ;
ATSlocal (ats_int_type, tmp232) ;
ATSlocal (ats_ptr_type, tmp233) ;
ATSlocal (ats_int_type, tmp234) ;
ATSlocal (ats_int_type, tmp235) ;
ATSlocal (ats_ptr_type, tmp236) ;
ATSlocal (ats_int_type, tmp237) ;
ATSlocal (ats_int_type, tmp238) ;

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

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

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

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

/* branch: __ats_lab_37 */
__ats_lab_37_0:
// if (tmp228 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_37_1:
tmp231 = 0 ;
break ;
} while (0) ;
tmp235 = atspre_imax (arg1, tmp229) ;
tmp234 = atspre_iadd (1, tmp235) ;
tmp233 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp233, atslab_0, tmp234) ;
ats_selptrset_mac(anairiats_sum_5, tmp233, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_5, tmp233, atslab_2, arg2) ;
ats_selptrset_mac(anairiats_sum_5, tmp233, atslab_3, tmp227) ;
tmp238 = atspre_imax (tmp231, tmp218) ;
tmp237 = atspre_iadd (1, tmp238) ;
tmp236 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp236, atslab_0, tmp237) ;
ats_selptrset_mac(anairiats_sum_5, tmp236, atslab_1, tmp213) ;
ats_selptrset_mac(anairiats_sum_5, tmp236, atslab_2, tmp228) ;
ats_selptrset_mac(anairiats_sum_5, tmp236, atslab_3, tmp215) ;
tmp212 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp212, atslab_0, arg3) ;
ats_selptrset_mac(anairiats_sum_5, tmp212, atslab_1, tmp226) ;
ats_selptrset_mac(anairiats_sum_5, tmp212, atslab_2, tmp233) ;
ats_selptrset_mac(anairiats_sum_5, tmp212, atslab_3, tmp236) ;
} /* end of [if] */
return (tmp212) ;
} /* end of [avltree_lrotate_04057_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 6278(line=231, offs=7) -- 7544(line=264, offs=6)
*/
ATSstaticdec()
ats_ptr_type
insert_60 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp159) ;
ATSlocal (ats_int_type, tmp160) ;
ATSlocal (ats_ptr_type, tmp161) ;
ATSlocal (ats_ptr_type, tmp162) ;
ATSlocal (ats_ptr_type, tmp163) ;
ATSlocal (ats_int_type, tmp164) ;
ATSlocal (ats_bool_type, tmp165) ;
ATSlocal (ats_ptr_type, tmp166) ;
ATSlocal (ats_int_type, tmp167) ;
ATSlocal (ats_int_type, tmp168) ;
ATSlocal (ats_int_type, tmp169) ;
ATSlocal (ats_int_type, tmp170) ;
ATSlocal (ats_bool_type, tmp171) ;
ATSlocal (ats_int_type, tmp172) ;
ATSlocal (ats_int_type, tmp173) ;
ATSlocal (ats_int_type, tmp174) ;
ATSlocal (ats_bool_type, tmp202) ;
ATSlocal (ats_ptr_type, tmp203) ;
ATSlocal (ats_int_type, tmp204) ;
ATSlocal (ats_int_type, tmp205) ;
ATSlocal (ats_int_type, tmp206) ;
ATSlocal (ats_int_type, tmp207) ;
ATSlocal (ats_bool_type, tmp208) ;
ATSlocal (ats_int_type, tmp209) ;
ATSlocal (ats_int_type, tmp210) ;
ATSlocal (ats_int_type, tmp211) ;
ATSlocal (ats_ptr_type, tmp239) ;
ATSlocal (ats_ptr_type, tmp240) ;

__ats_lab_insert_60:
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:
tmp160 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp161 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp162 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ;
tmp163 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ;
tmp164 = compare_elt_elt_04236_ats_ptr_type (env0, tmp161, env1) ;
tmp165 = atspre_lt_int_int (tmp164, 0) ;
if (tmp165) {
tmp166 = insert_60 (env0, env1, tmp162, arg1) ;
do {
/* branch: __ats_lab_14 */
__ats_lab_14_0:
if (tmp166 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; }
__ats_lab_14_1:
tmp168 = ats_caselptrlab_mac(anairiats_sum_5, tmp166, atslab_0) ;
tmp167 = tmp168 ;
break ;

/* branch: __ats_lab_15 */
__ats_lab_15_0:
// if (tmp166 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_15_1:
tmp167 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_16 */
__ats_lab_16_0:
if (tmp163 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; }
__ats_lab_16_1:
tmp170 = ats_caselptrlab_mac(anairiats_sum_5, tmp163, atslab_0) ;
tmp169 = tmp170 ;
break ;

/* branch: __ats_lab_17 */
__ats_lab_17_0:
// if (tmp163 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_17_1:
tmp169 = 0 ;
break ;
} while (0) ;
tmp172 = atspre_isub (tmp167, tmp169) ;
tmp171 = atspre_ilte (tmp172, 1) ;
if (tmp171) {
tmp174 = atspre_imax (tmp167, tmp169) ;
tmp173 = atspre_iadd (1, tmp174) ;
tmp159 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_0, tmp173) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_1, tmp161) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_2, tmp166) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_3, tmp163) ;
} else {
tmp159 = avltree_rrotate_04074_ats_ptr_type (tmp161, tmp167, tmp166, tmp169, tmp163) ;
} /* end of [if] */
} else {
tmp202 = atspre_gt_int_int (tmp164, 0) ;
if (tmp202) {
tmp203 = insert_60 (env0, env1, tmp163, arg1) ;
do {
/* branch: __ats_lab_26 */
__ats_lab_26_0:
if (tmp162 == (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; }
__ats_lab_26_1:
tmp205 = ats_caselptrlab_mac(anairiats_sum_5, tmp162, atslab_0) ;
tmp204 = tmp205 ;
break ;

/* branch: __ats_lab_27 */
__ats_lab_27_0:
// if (tmp162 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_27_1:
tmp204 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_28 */
__ats_lab_28_0:
if (tmp203 == (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; }
__ats_lab_28_1:
tmp207 = ats_caselptrlab_mac(anairiats_sum_5, tmp203, atslab_0) ;
tmp206 = tmp207 ;
break ;

/* branch: __ats_lab_29 */
__ats_lab_29_0:
// if (tmp203 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_29_1:
tmp206 = 0 ;
break ;
} while (0) ;
tmp209 = atspre_isub (tmp206, tmp204) ;
tmp208 = atspre_ilte (tmp209, 1) ;
if (tmp208) {
tmp211 = atspre_imax (tmp204, tmp206) ;
tmp210 = atspre_iadd (1, tmp211) ;
tmp159 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_0, tmp210) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_1, tmp161) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_2, tmp162) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_3, tmp203) ;
} else {
tmp159 = avltree_lrotate_04057_ats_ptr_type (tmp161, tmp204, tmp162, tmp206, tmp203) ;
} /* end of [if] */
} else {
ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ;
tmp159 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_0, tmp160) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_1, env0) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_2, tmp162) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_3, tmp163) ;
} /* 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 ;
tmp239 = (ats_sum_ptr_type)0 ;
tmp240 = (ats_sum_ptr_type)0 ;
tmp159 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_1, env0) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_2, tmp239) ;
ats_selptrset_mac(anairiats_sum_5, tmp159, atslab_3, tmp240) ;
break ;
} while (0) ;
return (tmp159) ;
} /* end of [insert_60] */

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

ats_ptr_type
insert_60_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) {
return insert_60 (((insert_60_closure_type*)cloptr)->closure_env_0, ((insert_60_closure_type*)cloptr)->closure_env_1, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
insert_60_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
insert_60_closure_type *p_clo = ATS_MALLOC(sizeof(insert_60_closure_type)) ;
insert_60_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

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

__ats_lab_funset_insert_04246_ats_ptr_type:
/* ats_bool_type tmp241 ; */
tmp242 = insert_60 (arg1, arg2, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp241)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp242 ;
tmp158 = tmp241 ;
return (tmp158) ;
} /* end of [funset_insert_04246_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12193(line=487, offs=3) -- 12282(line=490, 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, tmp155) ;
ATSlocal (ats_ptr_type, tmp156) ;
ATSlocal (ats_bool_type, tmp157) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_add:
/* ats_ptr_type tmp156 ; */
tmp156 = arg0 ;
tmp157 = funset_insert_04246_ats_ptr_type ((&tmp156), arg1, statmp142) ;
tmp155 = tmp156 ;
return (tmp155) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_add] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funset_avltree.dats: 20241(line=721, offs=7) -- 20545(line=732, offs=18)
*/
ATSstaticdec()
ats_ptr_type
listize_65 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp245) ;
ATSlocal (ats_ptr_type, tmp246) ;
ATSlocal (ats_ptr_type, tmp247) ;
ATSlocal (ats_ptr_type, tmp248) ;
ATSlocal (ats_ptr_type, tmp249) ;
ATSlocal (ats_ptr_type, tmp250) ;

__ats_lab_listize_65:
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:
tmp246 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp247 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ;
tmp248 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ;
tmp249 = listize_65 (tmp248, arg1) ;
tmp250 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp250, atslab_0, tmp246) ;
ats_selptrset_mac(anairiats_sum_3, tmp250, atslab_1, tmp249) ;
arg0 = tmp247 ;
arg1 = tmp250 ;
goto __ats_lab_listize_65 ; // 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:
tmp245 = arg1 ;
break ;
} while (0) ;
return (tmp245) ;
} /* end of [listize_65] */

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

__ats_lab_funset_listize_04261_ats_ptr_type:
tmp251 = (ats_sum_ptr_type)0 ;
tmp244 = listize_65 (arg0, tmp251) ;
return (tmp244) ;
} /* end of [funset_listize_04261_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12336(line=493, offs=18) -- 12365(line=493, 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, tmp243) ;

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

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

__ats_lab_linset_make_nil_04265_:
tmp253 = (ats_sum_ptr_type)0 ;
return (tmp253) ;
} /* end of [linset_make_nil_04265_] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12415(line=498, offs=17) -- 12442(line=498, offs=44)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp252) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_nil:
tmp252 = linset_make_nil_04265_ () ;
return (tmp252) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_nil] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4427(line=171, offs=7) -- 4555(line=175, offs=18)
*/
ATSstaticdec()
ats_void_type
aux_70 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp256) ;
ATSlocal (ats_ptr_type, tmp257) ;
ATSlocal (ats_ptr_type, tmp258) ;
// ATSlocal_void (tmp259) ;

__ats_lab_aux_70:
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:
tmp257 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ;
tmp258 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ;
ATS_FREE(arg0) ;
/* tmp259 = */ aux_70 (tmp257) ;
arg0 = tmp258 ;
goto __ats_lab_aux_70 ; // 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 /* (tmp256) */ ;
} /* end of [aux_70] */

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

__ats_lab_linset_free_04272_ats_ptr_type:
/* tmp255 = */ aux_70 (arg0) ;
return /* (tmp255) */ ;
} /* end of [linset_free_04272_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12471(line=501, offs=18) -- 12497(line=501, offs=44)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_free (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp254) ;

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

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2013(line=65, offs=17) -- 2041(line=65, offs=45)
*/
ATSstaticdec()
ats_int_type
compare_elt_elt_04264_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp267) ;

__ats_lab_compare_elt_elt_04264_ats_ptr_type:
tmp267 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ;
return (tmp267) ;
} /* end of [compare_elt_elt_04264_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3861(line=149, offs=7) -- 4231(line=160, offs=33)
*/
ATSstaticdec()
ats_bool_type
aux_73 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp262) ;
ATSlocal (ats_ptr_type, tmp263) ;
ATSlocal (ats_ptr_type, tmp264) ;
ATSlocal (ats_ptr_type, tmp265) ;
ATSlocal (ats_int_type, tmp266) ;
ATSlocal (ats_bool_type, tmp268) ;
ATSlocal (ats_ptr_type, tmp269) ;
ATSlocal (ats_bool_type, tmp270) ;
ATSlocal (ats_ptr_type, tmp271) ;

__ats_lab_aux_73:
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:
tmp263 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp264 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ;
tmp265 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ;
tmp266 = compare_elt_elt_04264_ats_ptr_type (env0, tmp263, env1) ;
tmp268 = atspre_lt_int_int (tmp266, 0) ;
if (tmp268) {
tmp269 = ats_ptrget_mac(ats_ptr_type, tmp264) ;
arg0 = tmp269 ;
goto __ats_lab_aux_73 ; // tail call
} else {
tmp270 = atspre_gt_int_int (tmp266, 0) ;
if (tmp270) {
tmp271 = ats_ptrget_mac(ats_ptr_type, tmp265) ;
arg0 = tmp271 ;
goto __ats_lab_aux_73 ; // tail call
} else {
tmp262 = 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:
tmp262 = ats_false_bool ;
break ;
} while (0) ;
return (tmp262) ;
} /* end of [aux_73] */

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

ats_bool_type
aux_73_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
return aux_73 (((aux_73_closure_type*)cloptr)->closure_env_0, ((aux_73_closure_type*)cloptr)->closure_env_1, arg0) ;
} /* end of function */

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

ats_clo_ptr_type
aux_73_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
aux_73_closure_type *p_clo = ATS_MALLOC(sizeof(aux_73_closure_type)) ;
aux_73_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

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

__ats_lab_linset_is_member_04270_ats_ptr_type:
tmp261 = aux_73 (arg1, arg2, arg0) ;
return (tmp261) ;
} /* end of [linset_is_member_04270_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12530(line=505, offs=3) -- 12573(line=505, 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, tmp260) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_ismem:
tmp260 = linset_is_member_04270_ats_ptr_type (arg0, arg1, statmp142) ;
return (tmp260) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_ismem] */

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

__ats_lab_avltree_height_04331_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:
tmp287 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp286 = tmp287 ;
break ;

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

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 6846(line=274, offs=32) -- 8280(line=323, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_rrotate_04385_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, tmp296) ;
ATSlocal (ats_ptr_type, tmp297) ;
ATSlocal (ats_ptr_type, tmp298) ;
ATSlocal (ats_ptr_type, tmp299) ;
ATSlocal (ats_ptr_type, tmp300) ;
ATSlocal (ats_int_type, tmp301) ;
ATSlocal (ats_ptr_type, tmp302) ;
ATSlocal (ats_int_type, tmp303) ;
ATSlocal (ats_ptr_type, tmp304) ;
ATSlocal (ats_bool_type, tmp305) ;
ATSlocal (ats_int_type, tmp306) ;
ATSlocal (ats_int_type, tmp307) ;
ATSlocal (ats_ptr_type, tmp308) ;
ATSlocal (ats_int_type, tmp309) ;
ATSlocal (ats_int_type, tmp310) ;
ATSlocal (ats_ptr_type, tmp311) ;
ATSlocal (ats_ptr_type, tmp312) ;
ATSlocal (ats_ptr_type, tmp313) ;
ATSlocal (ats_ptr_type, tmp314) ;
ATSlocal (ats_int_type, tmp315) ;
ATSlocal (ats_ptr_type, tmp316) ;
ATSlocal (ats_int_type, tmp317) ;
ATSlocal (ats_ptr_type, tmp318) ;
ATSlocal (ats_int_type, tmp319) ;
ATSlocal (ats_int_type, tmp320) ;
ATSlocal (ats_ptr_type, tmp321) ;
ATSlocal (ats_int_type, tmp322) ;
ATSlocal (ats_int_type, tmp323) ;
ATSlocal (ats_ptr_type, tmp324) ;

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

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 5209(line=217, offs=32) -- 6673(line=266, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_lrotate_04361_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, tmp336) ;
ATSlocal (ats_ptr_type, tmp337) ;
ATSlocal (ats_ptr_type, tmp338) ;
ATSlocal (ats_ptr_type, tmp339) ;
ATSlocal (ats_ptr_type, tmp340) ;
ATSlocal (ats_int_type, tmp341) ;
ATSlocal (ats_ptr_type, tmp342) ;
ATSlocal (ats_int_type, tmp343) ;
ATSlocal (ats_ptr_type, tmp344) ;
ATSlocal (ats_bool_type, tmp345) ;
ATSlocal (ats_int_type, tmp346) ;
ATSlocal (ats_int_type, tmp347) ;
ATSlocal (ats_ptr_type, tmp348) ;
ATSlocal (ats_int_type, tmp349) ;
ATSlocal (ats_int_type, tmp350) ;
ATSlocal (ats_ptr_type, tmp351) ;
ATSlocal (ats_ptr_type, tmp352) ;
ATSlocal (ats_ptr_type, tmp353) ;
ATSlocal (ats_ptr_type, tmp354) ;
ATSlocal (ats_int_type, tmp355) ;
ATSlocal (ats_ptr_type, tmp356) ;
ATSlocal (ats_int_type, tmp357) ;
ATSlocal (ats_ptr_type, tmp358) ;
ATSlocal (ats_int_type, tmp359) ;
ATSlocal (ats_int_type, tmp360) ;
ATSlocal (ats_ptr_type, tmp361) ;
ATSlocal (ats_int_type, tmp362) ;
ATSlocal (ats_int_type, tmp363) ;
ATSlocal (ats_ptr_type, tmp364) ;

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

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8387(line=331, offs=5) -- 10085(line=382, offs=4)
*/
ATSstaticdec()
ats_bool_type
insert_77 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp276) ;
ATSlocal (ats_ptr_type, tmp277) ;
ATSlocal (ats_ptr_type, tmp278) ;
ATSlocal (ats_ptr_type, tmp279) ;
ATSlocal (ats_ptr_type, tmp280) ;
ATSlocal (ats_int_type, tmp281) ;
ATSlocal (ats_ptr_type, tmp282) ;
ATSlocal (ats_bool_type, tmp283) ;
ATSlocal (ats_bool_type, tmp284) ;
ATSlocal (ats_int_type, tmp285) ;
ATSlocal (ats_ptr_type, tmp288) ;
ATSlocal (ats_int_type, tmp289) ;
ATSlocal (ats_ptr_type, tmp290) ;
ATSlocal (ats_bool_type, tmp291) ;
ATSlocal (ats_int_type, tmp292) ;
ATSlocal (ats_int_type, tmp293) ;
ATSlocal (ats_int_type, tmp294) ;
ATSlocal (ats_ptr_type, tmp295) ;
ATSlocal (ats_bool_type, tmp325) ;
ATSlocal (ats_bool_type, tmp326) ;
ATSlocal (ats_int_type, tmp327) ;
ATSlocal (ats_ptr_type, tmp328) ;
ATSlocal (ats_int_type, tmp329) ;
ATSlocal (ats_ptr_type, tmp330) ;
ATSlocal (ats_bool_type, tmp331) ;
ATSlocal (ats_int_type, tmp332) ;
ATSlocal (ats_int_type, tmp333) ;
ATSlocal (ats_int_type, tmp334) ;
ATSlocal (ats_ptr_type, tmp335) ;
ATSlocal (ats_ptr_type, tmp365) ;
ATSlocal (ats_ptr_type, tmp366) ;
ATSlocal (ats_ptr_type, tmp367) ;

__ats_lab_insert_77:
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:
tmp277 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp278 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ;
tmp279 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ;
tmp280 = &ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ;
tmp282 = ats_ptrget_mac(ats_ptr_type, tmp278) ;
tmp281 = compare_elt_elt_04264_ats_ptr_type (arg1, tmp282, env0) ;
tmp283 = atspre_lt_int_int (tmp281, 0) ;
if (tmp283) {
tmp284 = insert_77 (env0, tmp279, arg1) ;
tmp288 = ats_ptrget_mac(ats_ptr_type, tmp279) ;
tmp285 = avltree_height_04331_ats_ptr_type (tmp288) ;
tmp290 = ats_ptrget_mac(ats_ptr_type, tmp280) ;
tmp289 = avltree_height_04331_ats_ptr_type (tmp290) ;
tmp292 = atspre_isub (tmp285, tmp289) ;
tmp291 = atspre_ilte (tmp292, 1) ;
if (tmp291) {
tmp294 = atspre_imax (tmp285, tmp289) ;
tmp293 = atspre_iadd (1, tmp294) ;
ats_ptrget_mac(ats_int_type, tmp277) = tmp293 ;
tmp276 = tmp284 ;
} else {
tmp295 = avltree_rrotate_04385_ats_ptr_type (tmp277, tmp285, tmp279, tmp289, tmp280, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp295 ;
tmp276 = tmp284 ;
} /* end of [if] */
} else {
tmp325 = atspre_gt_int_int (tmp281, 0) ;
if (tmp325) {
tmp326 = insert_77 (env0, tmp280, arg1) ;
tmp328 = ats_ptrget_mac(ats_ptr_type, tmp279) ;
tmp327 = avltree_height_04331_ats_ptr_type (tmp328) ;
tmp330 = ats_ptrget_mac(ats_ptr_type, tmp280) ;
tmp329 = avltree_height_04331_ats_ptr_type (tmp330) ;
tmp332 = atspre_isub (tmp329, tmp327) ;
tmp331 = atspre_ilte (tmp332, 1) ;
if (tmp331) {
tmp334 = atspre_imax (tmp327, tmp329) ;
tmp333 = atspre_iadd (1, tmp334) ;
ats_ptrget_mac(ats_int_type, tmp277) = tmp333 ;
tmp276 = tmp326 ;
} else {
tmp335 = avltree_lrotate_04361_ats_ptr_type (tmp277, tmp327, tmp279, tmp329, tmp280, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp335 ;
tmp276 = tmp326 ;
} /* end of [if] */
} else {
tmp276 = 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:
tmp366 = (ats_sum_ptr_type)0 ;
tmp367 = (ats_sum_ptr_type)0 ;
tmp365 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp365, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_5, tmp365, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_5, tmp365, atslab_2, tmp366) ;
ats_selptrset_mac(anairiats_sum_5, tmp365, atslab_3, tmp367) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp365 ;
tmp276 = ats_false_bool ;
break ;
} while (0) ;
return (tmp276) ;
} /* end of [insert_77] */

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

ats_bool_type
insert_77_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) {
return insert_77 (((insert_77_closure_type*)cloptr)->closure_env_0, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
insert_77_closure_make (ats_clo_ref_type env0) {
insert_77_closure_type *p_clo = ATS_MALLOC(sizeof(insert_77_closure_type)) ;
insert_77_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

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

__ats_lab_linset_insert_04274_ats_ptr_type:
tmp275 = insert_77 (arg2, arg0, arg1) ;
return (tmp275) ;
} /* end of [linset_insert_04274_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12633(line=510, offs=3) -- 12722(line=513, 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, tmp272) ;
ATSlocal (ats_ptr_type, tmp273) ;
ATSlocal (ats_bool_type, tmp274) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_add:
/* ats_ptr_type tmp273 ; */
tmp273 = arg0 ;
tmp274 = linset_insert_04274_ats_ptr_type ((&tmp273), arg1, statmp142) ;
tmp272 = tmp273 ;
return (tmp272) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varset_vt_add] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27430(line=997, offs=7) -- 27766(line=1008, offs=31)
*/
ATSstaticdec()
ats_ptr_type
aux_83 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
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) ;
ATSlocal (ats_ptr_type, tmp376) ;
ATSlocal (ats_ptr_type, tmp377) ;

__ats_lab_aux_83:
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:
tmp371 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp372 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ;
tmp373 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ;
tmp375 = ats_ptrget_mac(ats_ptr_type, tmp373) ;
tmp374 = aux_83 (tmp375, arg1) ;
tmp376 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp376, atslab_0, tmp371) ;
ats_selptrset_mac(anairiats_sum_3, tmp376, atslab_1, tmp374) ;
tmp377 = ats_ptrget_mac(ats_ptr_type, tmp372) ;
arg0 = tmp377 ;
arg1 = tmp376 ;
goto __ats_lab_aux_83 ; // 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:
tmp370 = arg1 ;
break ;
} while (0) ;
return (tmp370) ;
} /* end of [aux_83] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-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_04289_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp369) ;
ATSlocal (ats_ptr_type, tmp378) ;

__ats_lab_linset_listize_04289_ats_ptr_type:
tmp378 = (ats_sum_ptr_type)0 ;
tmp369 = aux_83 (arg0, tmp378) ;
return (tmp369) ;
} /* end of [linset_listize_04289_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12782(line=516, offs=21) -- 12811(line=516, 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, tmp368) ;

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

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27949(line=1019, offs=7) -- 28232(line=1029, offs=19)
*/
ATSstaticdec()
ats_ptr_type
aux_86 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp381) ;
ATSlocal (ats_ptr_type, tmp382) ;
ATSlocal (ats_ptr_type, tmp383) ;
ATSlocal (ats_ptr_type, tmp384) ;
ATSlocal (ats_ptr_type, tmp385) ;
ATSlocal (ats_ptr_type, tmp386) ;

__ats_lab_aux_86:
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:
tmp382 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp383 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_2) ;
tmp384 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_3) ;
ATS_FREE(arg0) ;
tmp385 = aux_86 (tmp384, arg1) ;
tmp386 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp386, atslab_0, tmp382) ;
ats_selptrset_mac(anairiats_sum_3, tmp386, atslab_1, tmp385) ;
arg0 = tmp383 ;
arg1 = tmp386 ;
goto __ats_lab_aux_86 ; // 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:
tmp381 = arg1 ;
break ;
} while (0) ;
return (tmp381) ;
} /* end of [aux_86] */

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

__ats_lab_linset_listize_free_04290_ats_ptr_type:
tmp387 = (ats_sum_ptr_type)0 ;
tmp380 = aux_86 (arg0, tmp387) ;
return (tmp380) ;
} /* end of [linset_listize_free_04290_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12848(line=518, offs=26) -- 12882(line=518, 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, tmp379) ;

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

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

__ats_lab_loop_89:
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:
tmp393 = ats_caselptrlab_mac(anairiats_sum_3, arg0, atslab_1) ;
ATS_FREE(arg0) ;
arg0 = tmp393 ;
goto __ats_lab_loop_89 ; // 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 /* (tmp392) */ ;
} /* end of [loop_89] */

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

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 12957(line=526, offs=3) -- 13115(line=533, 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 (tmp388) ;
ATSlocal (ats_ptr_type, tmp389) ;
// ATSlocal_void (tmp390) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 13371(line=547, offs=11) -- 13456(line=550, offs=35)
*/
ATSstaticdec()
ats_int_type
__ats_fun_90 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp394) ;

__ats_lab___ats_fun_90:
tmp394 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (arg0, arg1) ;
return (tmp394) ;
} /* end of [__ats_fun_90] */

typedef struct {
ats_fun_ptr_type closure_fun ;
} __ats_fun_90_closure_type ;

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

ATSinline()
ats_void_type
__ats_fun_90_closure_init (__ats_fun_90_closure_type *p_clo) {
p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_90_clofun ;
return ;
} /* end of function */

ats_clo_ptr_type
__ats_fun_90_closure_make () {
__ats_fun_90_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_90_closure_type)) ;
__ats_fun_90_closure_init (p_clo) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 2871(line=98, offs=29) -- 2880(line=98, offs=38)
*/
ATSstaticdec()
ats_ptr_type
funmap_make_nil_04295_ () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp397) ;

__ats_lab_funmap_make_nil_04295_:
tmp397 = (ats_sum_ptr_type)0 ;
return (tmp397) ;
} /* end of [funmap_make_nil_04295_] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 13689(line=563, offs=14) -- 13716(line=563, offs=41)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp396) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_nil:
tmp396 = funmap_make_nil_04295_ () ;
return (tmp396) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_nil] */

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

__ats_lab_compare_key_key_04294_ats_ptr_type:
tmp409 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ;
return (tmp409) ;
} /* end of [compare_key_key_04294_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 3756(line=137, offs=7) -- 4334(line=154, offs=6)
*/
ATSstaticdec()
ats_bool_type
search_96 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp403) ;
ATSlocal (ats_ptr_type, tmp404) ;
ATSlocal (ats_ptr_type, tmp405) ;
ATSlocal (ats_ptr_type, tmp406) ;
ATSlocal (ats_ptr_type, tmp407) ;
ATSlocal (ats_int_type, tmp408) ;
ATSlocal (ats_bool_type, tmp410) ;
ATSlocal (ats_bool_type, tmp411) ;

__ats_lab_search_96:
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:
tmp404 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp405 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp406 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp407 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ;
tmp408 = compare_key_key_04294_ats_ptr_type (env0, tmp404, env1) ;
do {
/* branch: __ats_lab_56 */
__ats_lab_56_0:
__ats_lab_56_1:
tmp410 = atspre_lt_int_int (tmp408, 0) ;
if (!tmp410) { goto __ats_lab_57_1 ; }
arg0 = tmp406 ;
arg1 = arg1 ;
goto __ats_lab_search_96 ; // tail call
break ;

/* branch: __ats_lab_57 */
__ats_lab_57_0:
__ats_lab_57_1:
tmp411 = atspre_gt_int_int (tmp408, 0) ;
if (!tmp411) { goto __ats_lab_58_1 ; }
arg0 = tmp407 ;
arg1 = arg1 ;
goto __ats_lab_search_96 ; // tail call
break ;

/* branch: __ats_lab_58 */
__ats_lab_58_0:
__ats_lab_58_1:
ats_ptrget_mac(ats_ptr_type, arg1) = tmp405 ;
tmp403 = 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:
tmp403 = ats_false_bool ;
break ;
} while (0) ;
return (tmp403) ;
} /* end of [search_96] */

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

ats_bool_type
search_96_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) {
return search_96 (((search_96_closure_type*)cloptr)->closure_env_0, ((search_96_closure_type*)cloptr)->closure_env_1, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
search_96_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
search_96_closure_type *p_clo = ATS_MALLOC(sizeof(search_96_closure_type)) ;
search_96_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 3706(line=136, offs=3) -- 4355(line=155, offs=2)
*/
ATSstaticdec()
ats_bool_type
funmap_search_04300_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, tmp402) ;

__ats_lab_funmap_search_04300_ats_ptr_type_2cats_ptr_type:
tmp402 = search_96 (arg1, arg2, arg0, arg3) ;
return (tmp402) ;
} /* end of [funmap_search_04300_ats_ptr_type_2cats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-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_04301_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, tmp399) ;
ATSlocal (ats_ptr_type, tmp400) ;
ATSlocal (ats_bool_type, tmp401) ;

__ats_lab_funmap_search_opt_04301_ats_ptr_type_2cats_ptr_type:
/* ats_ptr_type tmp400 ; */
tmp401 = funmap_search_04300_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, (&tmp400)) ;
if (tmp401) {
tmp399 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp399, atslab_0, tmp400) ;
} else {
tmp399 = (ats_sum_ptr_type)0 ;
} /* end of [if] */
return (tmp399) ;
} /* end of [funmap_search_opt_04301_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 13750(line=567, offs=7) -- 13802(line=568, 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, tmp398) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_search:
tmp398 = funmap_search_opt_04301_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp395) ;
return (tmp398) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_search] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 5755(line=209, offs=46) -- 6474(line=231, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_rrotate_04773_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, tmp431) ;
ATSlocal (ats_ptr_type, tmp432) ;
ATSlocal (ats_ptr_type, tmp433) ;
ATSlocal (ats_ptr_type, tmp434) ;
ATSlocal (ats_ptr_type, tmp435) ;
ATSlocal (ats_int_type, tmp436) ;
ATSlocal (ats_int_type, tmp437) ;
ATSlocal (ats_int_type, tmp438) ;
ATSlocal (ats_int_type, tmp439) ;
ATSlocal (ats_bool_type, tmp440) ;
ATSlocal (ats_int_type, tmp441) ;
ATSlocal (ats_int_type, tmp442) ;
ATSlocal (ats_int_type, tmp443) ;
ATSlocal (ats_int_type, tmp444) ;
ATSlocal (ats_ptr_type, tmp445) ;
ATSlocal (ats_ptr_type, tmp446) ;
ATSlocal (ats_ptr_type, tmp447) ;
ATSlocal (ats_ptr_type, tmp448) ;
ATSlocal (ats_ptr_type, tmp449) ;
ATSlocal (ats_int_type, tmp450) ;
ATSlocal (ats_int_type, tmp451) ;
ATSlocal (ats_int_type, tmp452) ;
ATSlocal (ats_int_type, tmp453) ;
ATSlocal (ats_ptr_type, tmp454) ;
ATSlocal (ats_int_type, tmp455) ;
ATSlocal (ats_int_type, tmp456) ;
ATSlocal (ats_ptr_type, tmp457) ;
ATSlocal (ats_int_type, tmp458) ;
ATSlocal (ats_int_type, tmp459) ;

__ats_lab_avltree_rrotate_04773_ats_ptr_type_2cats_ptr_type:
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp432 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_1) ;
tmp433 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_2) ;
tmp434 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_3) ;
tmp435 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_4) ;
do {
/* branch: __ats_lab_65 */
__ats_lab_65_0:
if (tmp434 == (ats_sum_ptr_type)0) { goto __ats_lab_66_0 ; }
__ats_lab_65_1:
tmp437 = ats_caselptrlab_mac(anairiats_sum_6, tmp434, atslab_0) ;
tmp436 = tmp437 ;
break ;

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

/* branch: __ats_lab_68 */
__ats_lab_68_0:
// if (tmp435 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_68_1:
tmp438 = 0 ;
break ;
} while (0) ;
tmp441 = atspre_iadd (tmp436, 0) ;
tmp440 = atspre_igte (tmp441, tmp438) ;
if (tmp440) {
tmp442 = atspre_iadd (tmp438, 1) ;
tmp444 = atspre_imax (tmp436, tmp442) ;
tmp443 = atspre_iadd (1, tmp444) ;
tmp445 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp445, atslab_0, tmp442) ;
ats_selptrset_mac(anairiats_sum_6, tmp445, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_6, tmp445, atslab_2, arg1) ;
ats_selptrset_mac(anairiats_sum_6, tmp445, atslab_3, tmp435) ;
ats_selptrset_mac(anairiats_sum_6, tmp445, atslab_4, arg5) ;
tmp431 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp431, atslab_0, tmp443) ;
ats_selptrset_mac(anairiats_sum_6, tmp431, atslab_1, tmp432) ;
ats_selptrset_mac(anairiats_sum_6, tmp431, atslab_2, tmp433) ;
ats_selptrset_mac(anairiats_sum_6, tmp431, atslab_3, tmp434) ;
ats_selptrset_mac(anairiats_sum_6, tmp431, atslab_4, tmp445) ;
} else {
// if (tmp435 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp446 = ats_caselptrlab_mac(anairiats_sum_6, tmp435, atslab_1) ;
tmp447 = ats_caselptrlab_mac(anairiats_sum_6, tmp435, atslab_2) ;
tmp448 = ats_caselptrlab_mac(anairiats_sum_6, tmp435, atslab_3) ;
tmp449 = ats_caselptrlab_mac(anairiats_sum_6, tmp435, atslab_4) ;
do {
/* branch: __ats_lab_69 */
__ats_lab_69_0:
if (tmp448 == (ats_sum_ptr_type)0) { goto __ats_lab_70_0 ; }
__ats_lab_69_1:
tmp451 = ats_caselptrlab_mac(anairiats_sum_6, tmp448, atslab_0) ;
tmp450 = tmp451 ;
break ;

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

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

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 4857(line=181, offs=46) -- 5607(line=203, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_lrotate_04753_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, tmp470) ;
ATSlocal (ats_ptr_type, tmp471) ;
ATSlocal (ats_ptr_type, tmp472) ;
ATSlocal (ats_ptr_type, tmp473) ;
ATSlocal (ats_ptr_type, tmp474) ;
ATSlocal (ats_int_type, tmp475) ;
ATSlocal (ats_int_type, tmp476) ;
ATSlocal (ats_int_type, tmp477) ;
ATSlocal (ats_int_type, tmp478) ;
ATSlocal (ats_bool_type, tmp479) ;
ATSlocal (ats_int_type, tmp480) ;
ATSlocal (ats_int_type, tmp481) ;
ATSlocal (ats_int_type, tmp482) ;
ATSlocal (ats_int_type, tmp483) ;
ATSlocal (ats_ptr_type, tmp484) ;
ATSlocal (ats_ptr_type, tmp485) ;
ATSlocal (ats_ptr_type, tmp486) ;
ATSlocal (ats_ptr_type, tmp487) ;
ATSlocal (ats_ptr_type, tmp488) ;
ATSlocal (ats_int_type, tmp489) ;
ATSlocal (ats_int_type, tmp490) ;
ATSlocal (ats_int_type, tmp491) ;
ATSlocal (ats_int_type, tmp492) ;
ATSlocal (ats_ptr_type, tmp493) ;
ATSlocal (ats_int_type, tmp494) ;
ATSlocal (ats_int_type, tmp495) ;
ATSlocal (ats_ptr_type, tmp496) ;
ATSlocal (ats_int_type, tmp497) ;
ATSlocal (ats_int_type, tmp498) ;

__ats_lab_avltree_lrotate_04753_ats_ptr_type_2cats_ptr_type:
// if (arg5 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp471 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_1) ;
tmp472 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_2) ;
tmp473 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_3) ;
tmp474 = ats_caselptrlab_mac(anairiats_sum_6, arg5, atslab_4) ;
do {
/* branch: __ats_lab_77 */
__ats_lab_77_0:
if (tmp473 == (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; }
__ats_lab_77_1:
tmp476 = ats_caselptrlab_mac(anairiats_sum_6, tmp473, atslab_0) ;
tmp475 = tmp476 ;
break ;

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

/* branch: __ats_lab_80 */
__ats_lab_80_0:
// if (tmp474 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_80_1:
tmp477 = 0 ;
break ;
} while (0) ;
tmp480 = atspre_iadd (tmp477, 0) ;
tmp479 = atspre_ilte (tmp475, tmp480) ;
if (tmp479) {
tmp481 = atspre_iadd (tmp475, 1) ;
tmp483 = atspre_imax (tmp481, tmp477) ;
tmp482 = atspre_iadd (1, tmp483) ;
tmp484 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp484, atslab_0, tmp481) ;
ats_selptrset_mac(anairiats_sum_6, tmp484, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_6, tmp484, atslab_2, arg1) ;
ats_selptrset_mac(anairiats_sum_6, tmp484, atslab_3, arg3) ;
ats_selptrset_mac(anairiats_sum_6, tmp484, atslab_4, tmp473) ;
tmp470 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp470, atslab_0, tmp482) ;
ats_selptrset_mac(anairiats_sum_6, tmp470, atslab_1, tmp471) ;
ats_selptrset_mac(anairiats_sum_6, tmp470, atslab_2, tmp472) ;
ats_selptrset_mac(anairiats_sum_6, tmp470, atslab_3, tmp484) ;
ats_selptrset_mac(anairiats_sum_6, tmp470, atslab_4, tmp474) ;
} else {
// if (tmp473 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp485 = ats_caselptrlab_mac(anairiats_sum_6, tmp473, atslab_1) ;
tmp486 = ats_caselptrlab_mac(anairiats_sum_6, tmp473, atslab_2) ;
tmp487 = ats_caselptrlab_mac(anairiats_sum_6, tmp473, atslab_3) ;
tmp488 = ats_caselptrlab_mac(anairiats_sum_6, tmp473, atslab_4) ;
do {
/* branch: __ats_lab_81 */
__ats_lab_81_0:
if (tmp487 == (ats_sum_ptr_type)0) { goto __ats_lab_82_0 ; }
__ats_lab_81_1:
tmp490 = ats_caselptrlab_mac(anairiats_sum_6, tmp487, atslab_0) ;
tmp489 = tmp490 ;
break ;

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

/* branch: __ats_lab_84 */
__ats_lab_84_0:
// if (tmp488 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_84_1:
tmp491 = 0 ;
break ;
} while (0) ;
tmp495 = atspre_imax (arg2, tmp489) ;
tmp494 = atspre_iadd (1, tmp495) ;
tmp493 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp493, atslab_0, tmp494) ;
ats_selptrset_mac(anairiats_sum_6, tmp493, atslab_1, arg0) ;
ats_selptrset_mac(anairiats_sum_6, tmp493, atslab_2, arg1) ;
ats_selptrset_mac(anairiats_sum_6, tmp493, atslab_3, arg3) ;
ats_selptrset_mac(anairiats_sum_6, tmp493, atslab_4, tmp487) ;
tmp498 = atspre_imax (tmp491, tmp477) ;
tmp497 = atspre_iadd (1, tmp498) ;
tmp496 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp496, atslab_0, tmp497) ;
ats_selptrset_mac(anairiats_sum_6, tmp496, atslab_1, tmp471) ;
ats_selptrset_mac(anairiats_sum_6, tmp496, atslab_2, tmp472) ;
ats_selptrset_mac(anairiats_sum_6, tmp496, atslab_3, tmp488) ;
ats_selptrset_mac(anairiats_sum_6, tmp496, atslab_4, tmp474) ;
tmp470 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp470, atslab_0, arg4) ;
ats_selptrset_mac(anairiats_sum_6, tmp470, atslab_1, tmp485) ;
ats_selptrset_mac(anairiats_sum_6, tmp470, atslab_2, tmp486) ;
ats_selptrset_mac(anairiats_sum_6, tmp470, atslab_3, tmp493) ;
ats_selptrset_mac(anairiats_sum_6, tmp470, atslab_4, tmp496) ;
} /* end of [if] */
return (tmp470) ;
} /* end of [avltree_lrotate_04753_ats_ptr_type_2cats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 6597(line=238, offs=7) -- 7899(line=271, offs=6)
*/
ATSstaticdec()
ats_ptr_type
insert_100 (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, tmp414) ;
ATSlocal (ats_int_type, tmp415) ;
ATSlocal (ats_ptr_type, tmp416) ;
ATSlocal (ats_ptr_type, tmp417) ;
ATSlocal (ats_ptr_type, tmp418) ;
ATSlocal (ats_ptr_type, tmp419) ;
ATSlocal (ats_int_type, tmp420) ;
ATSlocal (ats_bool_type, tmp421) ;
ATSlocal (ats_ptr_type, tmp422) ;
ATSlocal (ats_int_type, tmp423) ;
ATSlocal (ats_int_type, tmp424) ;
ATSlocal (ats_int_type, tmp425) ;
ATSlocal (ats_int_type, tmp426) ;
ATSlocal (ats_bool_type, tmp427) ;
ATSlocal (ats_int_type, tmp428) ;
ATSlocal (ats_int_type, tmp429) ;
ATSlocal (ats_int_type, tmp430) ;
ATSlocal (ats_bool_type, tmp460) ;
ATSlocal (ats_ptr_type, tmp461) ;
ATSlocal (ats_int_type, tmp462) ;
ATSlocal (ats_int_type, tmp463) ;
ATSlocal (ats_int_type, tmp464) ;
ATSlocal (ats_int_type, tmp465) ;
ATSlocal (ats_bool_type, tmp466) ;
ATSlocal (ats_int_type, tmp467) ;
ATSlocal (ats_int_type, tmp468) ;
ATSlocal (ats_int_type, tmp469) ;
ATSlocal (ats_ptr_type, tmp499) ;
ATSlocal (ats_ptr_type, tmp500) ;

__ats_lab_insert_100:
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:
tmp415 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp416 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp417 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp418 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp419 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ;
tmp420 = compare_key_key_04294_ats_ptr_type (env0, tmp416, env2) ;
tmp421 = atspre_lt_int_int (tmp420, 0) ;
if (tmp421) {
tmp422 = insert_100 (env0, env1, env2, tmp418, arg1) ;
do {
/* branch: __ats_lab_61 */
__ats_lab_61_0:
if (tmp422 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; }
__ats_lab_61_1:
tmp424 = ats_caselptrlab_mac(anairiats_sum_6, tmp422, atslab_0) ;
tmp423 = tmp424 ;
break ;

/* branch: __ats_lab_62 */
__ats_lab_62_0:
// if (tmp422 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_62_1:
tmp423 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_63 */
__ats_lab_63_0:
if (tmp419 == (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; }
__ats_lab_63_1:
tmp426 = ats_caselptrlab_mac(anairiats_sum_6, tmp419, atslab_0) ;
tmp425 = tmp426 ;
break ;

/* branch: __ats_lab_64 */
__ats_lab_64_0:
// if (tmp419 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_64_1:
tmp425 = 0 ;
break ;
} while (0) ;
tmp428 = atspre_isub (tmp423, tmp425) ;
tmp427 = atspre_ilte (tmp428, 1) ;
if (tmp427) {
tmp430 = atspre_imax (tmp423, tmp425) ;
tmp429 = atspre_iadd (1, tmp430) ;
tmp414 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_0, tmp429) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_1, tmp416) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_2, tmp417) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_3, tmp422) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_4, tmp419) ;
} else {
tmp414 = avltree_rrotate_04773_ats_ptr_type_2cats_ptr_type (tmp416, tmp417, tmp423, tmp422, tmp425, tmp419) ;
} /* end of [if] */
} else {
tmp460 = atspre_gt_int_int (tmp420, 0) ;
if (tmp460) {
tmp461 = insert_100 (env0, env1, env2, tmp419, arg1) ;
do {
/* branch: __ats_lab_73 */
__ats_lab_73_0:
if (tmp418 == (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; }
__ats_lab_73_1:
tmp463 = ats_caselptrlab_mac(anairiats_sum_6, tmp418, atslab_0) ;
tmp462 = tmp463 ;
break ;

/* branch: __ats_lab_74 */
__ats_lab_74_0:
// if (tmp418 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_74_1:
tmp462 = 0 ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_75 */
__ats_lab_75_0:
if (tmp461 == (ats_sum_ptr_type)0) { goto __ats_lab_76_0 ; }
__ats_lab_75_1:
tmp465 = ats_caselptrlab_mac(anairiats_sum_6, tmp461, atslab_0) ;
tmp464 = tmp465 ;
break ;

/* branch: __ats_lab_76 */
__ats_lab_76_0:
// if (tmp461 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_76_1:
tmp464 = 0 ;
break ;
} while (0) ;
tmp467 = atspre_isub (tmp464, tmp462) ;
tmp466 = atspre_ilte (tmp467, 1) ;
if (tmp466) {
tmp469 = atspre_imax (tmp462, tmp464) ;
tmp468 = atspre_iadd (1, tmp469) ;
tmp414 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_0, tmp468) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_1, tmp416) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_2, tmp417) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_3, tmp418) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_4, tmp461) ;
} else {
tmp414 = avltree_lrotate_04753_ats_ptr_type_2cats_ptr_type (tmp416, tmp417, tmp462, tmp418, tmp464, tmp461) ;
} /* end of [if] */
} else {
ats_ptrget_mac(ats_bool_type, arg1) = ats_true_bool ;
tmp414 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_0, tmp415) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_1, tmp416) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_2, env1) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_3, tmp418) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_4, tmp419) ;
} /* 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 ;
tmp499 = (ats_sum_ptr_type)0 ;
tmp500 = (ats_sum_ptr_type)0 ;
tmp414 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_1, env0) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_2, env1) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_3, tmp499) ;
ats_selptrset_mac(anairiats_sum_6, tmp414, atslab_4, tmp500) ;
break ;
} while (0) ;
return (tmp414) ;
} /* end of [insert_100] */

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

ats_ptr_type
insert_100_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ref_type arg1) {
return insert_100 (((insert_100_closure_type*)cloptr)->closure_env_0, ((insert_100_closure_type*)cloptr)->closure_env_1, ((insert_100_closure_type*)cloptr)->closure_env_2, arg0, arg1) ;
} /* end of function */

ATSinline()
ats_void_type
insert_100_closure_init (insert_100_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_100_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_100_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_clo_ref_type env2) {
insert_100_closure_type *p_clo = ATS_MALLOC(sizeof(insert_100_closure_type)) ;
insert_100_closure_init (p_clo, env0, env1, env2) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 6560(line=237, offs=3) -- 7985(line=274, offs=2)
*/
ATSstaticdec()
ats_bool_type
funmap_insert_04302_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, tmp413) ;
ATSlocal (ats_bool_type, tmp501) ;
ATSlocal (ats_ptr_type, tmp502) ;

__ats_lab_funmap_insert_04302_ats_ptr_type_2cats_ptr_type:
/* ats_bool_type tmp501 ; */
tmp502 = insert_100 (arg1, arg2, arg3, ats_ptrget_mac(ats_ptr_type, arg0), (&tmp501)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp502 ;
tmp413 = tmp501 ;
return (tmp413) ;
} /* end of [funmap_insert_04302_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 13864(line=573, offs=7) -- 13918(line=574, 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, tmp412) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_insert:
tmp412 = funmap_insert_04302_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, statmp395) ;
return (tmp412) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_insert] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/funmap_avltree.dats: 16338(line=542, offs=7) -- 16662(line=553, offs=18)
*/
ATSstaticdec()
ats_ptr_type
listize_105 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
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 (ats_ptr_type, tmp510) ;
ATSlocal (ats_ptr_type, tmp511) ;
ATSlocal (anairiats_rec_7, tmp512) ;

__ats_lab_listize_105:
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:
tmp506 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp507 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp508 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp509 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ;
tmp510 = listize_105 (tmp509, arg1) ;
tmp512.atslab_0 = tmp506 ;
tmp512.atslab_1 = tmp507 ;

tmp511 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp511, atslab_0, tmp512) ;
ats_selptrset_mac(anairiats_sum_8, tmp511, atslab_1, tmp510) ;
arg0 = tmp508 ;
arg1 = tmp511 ;
goto __ats_lab_listize_105 ; // 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:
tmp505 = arg1 ;
break ;
} while (0) ;
return (tmp505) ;
} /* end of [listize_105] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-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_04311_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp504) ;
ATSlocal (ats_ptr_type, tmp513) ;

__ats_lab_funmap_listize_04311_ats_ptr_type_2cats_ptr_type:
tmp513 = (ats_sum_ptr_type)0 ;
tmp504 = listize_105 (arg0, tmp513) ;
return (tmp504) ;
} /* end of [funmap_listize_04311_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 13981(line=579, offs=7) -- 14012(line=579, 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, tmp503) ;

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

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 3005(line=103, offs=29) -- 3014(line=103, offs=38)
*/
ATSstaticdec()
ats_ptr_type
linmap_make_nil_04318_ () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp515) ;

__ats_lab_linmap_make_nil_04318_:
tmp515 = (ats_sum_ptr_type)0 ;
return (tmp515) ;
} /* end of [linmap_make_nil_04318_] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14091(line=585, offs=17) -- 14118(line=585, offs=44)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp514) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_nil:
tmp514 = linmap_make_nil_04318_ () ;
return (tmp514) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_nil] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 20597(line=699, offs=7) -- 20733(line=701, offs=65)
*/
ATSstaticdec()
ats_void_type
_free_110 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp518) ;
ATSlocal (ats_ptr_type, tmp519) ;
ATSlocal (ats_ptr_type, tmp520) ;
// ATSlocal_void (tmp521) ;

__ats_lab__free_110:
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:
tmp519 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp520 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ;
ATS_FREE(arg0) ;
/* tmp521 = */ _free_110 (tmp519) ;
arg0 = tmp520 ;
goto __ats_lab__free_110 ; // 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 /* (tmp518) */ ;
} /* end of [_free_110] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-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_04335_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp517) ;

__ats_lab_linmap_free_04335_ats_ptr_type_2cats_ptr_type:
/* tmp517 = */ _free_110 (arg0) ;
return /* (tmp517) */ ;
} /* end of [linmap_free_04335_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14147(line=588, offs=18) -- 14175(line=588, offs=46)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_free (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp516) ;

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

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

__ats_lab_compare_key_key_04317_ats_ptr_type:
tmp535 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ;
return (tmp535) ;
} /* end of [compare_key_key_04317_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4545(line=168, offs=7) -- 5110(line=188, offs=6)
*/
ATSstaticdec()
ats_ptr_type
search_115 (ats_ptr_type env0, ats_clo_ref_type env1, ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp529) ;
ATSlocal (ats_ptr_type, tmp530) ;
ATSlocal (ats_ptr_type, tmp531) ;
ATSlocal (ats_ptr_type, tmp532) ;
ATSlocal (ats_ptr_type, tmp533) ;
ATSlocal (ats_int_type, tmp534) ;
ATSlocal (ats_bool_type, tmp536) ;
ATSlocal (ats_ptr_type, tmp537) ;
ATSlocal (ats_bool_type, tmp538) ;
ATSlocal (ats_ptr_type, tmp539) ;

__ats_lab_search_115:
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:
tmp530 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp531 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp532 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp533 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ;
tmp534 = compare_key_key_04317_ats_ptr_type (env0, tmp530, env1) ;
do {
/* branch: __ats_lab_91 */
__ats_lab_91_0:
__ats_lab_91_1:
tmp536 = atspre_lt_int_int (tmp534, 0) ;
if (!tmp536) { goto __ats_lab_92_1 ; }
tmp537 = ats_ptrget_mac(ats_ptr_type, tmp532) ;
arg0 = tmp537 ;
goto __ats_lab_search_115 ; // tail call
break ;

/* branch: __ats_lab_92 */
__ats_lab_92_0:
__ats_lab_92_1:
tmp538 = atspre_gt_int_int (tmp534, 0) ;
if (!tmp538) { goto __ats_lab_93_1 ; }
tmp539 = ats_ptrget_mac(ats_ptr_type, tmp533) ;
arg0 = tmp539 ;
goto __ats_lab_search_115 ; // tail call
break ;

/* branch: __ats_lab_93 */
__ats_lab_93_0:
__ats_lab_93_1:
tmp529 = tmp531 ;
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:
tmp529 = atspre_null_ptr ;
break ;
} while (0) ;
return (tmp529) ;
} /* end of [search_115] */

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

ats_ptr_type
search_115_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
return search_115 (((search_115_closure_type*)cloptr)->closure_env_0, ((search_115_closure_type*)cloptr)->closure_env_1, arg0) ;
} /* end of function */

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

ats_clo_ptr_type
search_115_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
search_115_closure_type *p_clo = ATS_MALLOC(sizeof(search_115_closure_type)) ;
search_115_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4505(line=167, offs=3) -- 5131(line=189, offs=2)
*/
ATSstaticdec()
ats_ptr_type
linmap_search_ref_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, tmp528) ;

__ats_lab_linmap_search_ref_04324_ats_ptr_type_2cats_ptr_type:
tmp528 = search_115 (arg1, arg2, arg0) ;
return (tmp528) ;
} /* end of [linmap_search_ref_04324_ats_ptr_type_2cats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 4021(line=145, offs=3) -- 4437(line=162, offs=4)
*/
ATSstaticdec()
ats_bool_type
linmap_search_04323_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, tmp526) ;
ATSlocal (ats_ptr_type, tmp527) ;
ATSlocal (ats_bool_type, tmp540) ;
ATSlocal (ats_ptr_type, tmp541) ;

__ats_lab_linmap_search_04323_ats_ptr_type_2cats_ptr_type:
tmp527 = linmap_search_ref_04324_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2) ;
tmp540 = atspre_pgt (tmp527, atspre_null_ptr) ;
if (tmp540) {
tmp541 = ats_ptrget_mac(ats_ptr_type, tmp527) ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp541 ;
tmp526 = ats_true_bool ;
} else {
tmp526 = ats_false_bool ;
} /* end of [if] */
return (tmp526) ;
} /* end of [linmap_search_04323_ats_ptr_type_2cats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-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_04325_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, tmp523) ;
ATSlocal (ats_ptr_type, tmp524) ;
ATSlocal (ats_bool_type, tmp525) ;

__ats_lab_linmap_search_opt_04325_ats_ptr_type_2cats_ptr_type:
/* ats_ptr_type tmp524 ; */
tmp525 = linmap_search_04323_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, (&tmp524)) ;
if (tmp525) {
tmp523 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp523, atslab_0, tmp524) ;
} else {
tmp523 = (ats_sum_ptr_type)0 ;
} /* end of [if] */
return (tmp523) ;
} /* end of [linmap_search_opt_04325_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14213(line=592, offs=7) -- 14265(line=593, 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, tmp522) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_search:
tmp522 = linmap_search_opt_04325_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp395) ;
return (tmp522) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_search] */

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

__ats_lab_avltree_height_04949_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:
tmp557 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp556 = tmp557 ;
break ;

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

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 7405(line=276, offs=32) -- 8902(line=325, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_rrotate_05002_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, tmp566) ;
ATSlocal (ats_ptr_type, tmp567) ;
ATSlocal (ats_ptr_type, tmp568) ;
ATSlocal (ats_ptr_type, tmp569) ;
ATSlocal (ats_ptr_type, tmp570) ;
ATSlocal (ats_int_type, tmp571) ;
ATSlocal (ats_ptr_type, tmp572) ;
ATSlocal (ats_int_type, tmp573) ;
ATSlocal (ats_ptr_type, tmp574) ;
ATSlocal (ats_bool_type, tmp575) ;
ATSlocal (ats_int_type, tmp576) ;
ATSlocal (ats_int_type, tmp577) ;
ATSlocal (ats_ptr_type, tmp578) ;
ATSlocal (ats_int_type, tmp579) ;
ATSlocal (ats_int_type, tmp580) ;
ATSlocal (ats_ptr_type, tmp581) ;
ATSlocal (ats_ptr_type, tmp582) ;
ATSlocal (ats_ptr_type, tmp583) ;
ATSlocal (ats_ptr_type, tmp584) ;
ATSlocal (ats_int_type, tmp585) ;
ATSlocal (ats_ptr_type, tmp586) ;
ATSlocal (ats_int_type, tmp587) ;
ATSlocal (ats_ptr_type, tmp588) ;
ATSlocal (ats_int_type, tmp589) ;
ATSlocal (ats_int_type, tmp590) ;
ATSlocal (ats_ptr_type, tmp591) ;
ATSlocal (ats_int_type, tmp592) ;
ATSlocal (ats_int_type, tmp593) ;
ATSlocal (ats_ptr_type, tmp594) ;

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

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 5694(line=219, offs=32) -- 7221(line=268, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_lrotate_04977_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, tmp606) ;
ATSlocal (ats_ptr_type, tmp607) ;
ATSlocal (ats_ptr_type, tmp608) ;
ATSlocal (ats_ptr_type, tmp609) ;
ATSlocal (ats_ptr_type, tmp610) ;
ATSlocal (ats_int_type, tmp611) ;
ATSlocal (ats_ptr_type, tmp612) ;
ATSlocal (ats_int_type, tmp613) ;
ATSlocal (ats_ptr_type, tmp614) ;
ATSlocal (ats_bool_type, tmp615) ;
ATSlocal (ats_int_type, tmp616) ;
ATSlocal (ats_int_type, tmp617) ;
ATSlocal (ats_ptr_type, tmp618) ;
ATSlocal (ats_int_type, tmp619) ;
ATSlocal (ats_int_type, tmp620) ;
ATSlocal (ats_ptr_type, tmp621) ;
ATSlocal (ats_ptr_type, tmp622) ;
ATSlocal (ats_ptr_type, tmp623) ;
ATSlocal (ats_ptr_type, tmp624) ;
ATSlocal (ats_int_type, tmp625) ;
ATSlocal (ats_ptr_type, tmp626) ;
ATSlocal (ats_int_type, tmp627) ;
ATSlocal (ats_ptr_type, tmp628) ;
ATSlocal (ats_int_type, tmp629) ;
ATSlocal (ats_int_type, tmp630) ;
ATSlocal (ats_ptr_type, tmp631) ;
ATSlocal (ats_int_type, tmp632) ;
ATSlocal (ats_int_type, tmp633) ;
ATSlocal (ats_ptr_type, tmp634) ;

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

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 9023(line=333, offs=5) -- 11023(line=394, offs=4)
*/
ATSstaticdec()
ats_bool_type
insert_119 (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, tmp545) ;
ATSlocal (ats_ptr_type, tmp546) ;
ATSlocal (ats_ptr_type, tmp547) ;
ATSlocal (ats_ptr_type, tmp548) ;
ATSlocal (ats_ptr_type, tmp549) ;
ATSlocal (ats_ptr_type, tmp550) ;
ATSlocal (ats_int_type, tmp551) ;
ATSlocal (ats_ptr_type, tmp552) ;
ATSlocal (ats_bool_type, tmp553) ;
ATSlocal (ats_bool_type, tmp554) ;
ATSlocal (ats_int_type, tmp555) ;
ATSlocal (ats_ptr_type, tmp558) ;
ATSlocal (ats_int_type, tmp559) ;
ATSlocal (ats_ptr_type, tmp560) ;
ATSlocal (ats_bool_type, tmp561) ;
ATSlocal (ats_int_type, tmp562) ;
ATSlocal (ats_int_type, tmp563) ;
ATSlocal (ats_int_type, tmp564) ;
ATSlocal (ats_ptr_type, tmp565) ;
ATSlocal (ats_bool_type, tmp595) ;
ATSlocal (ats_bool_type, tmp596) ;
ATSlocal (ats_int_type, tmp597) ;
ATSlocal (ats_ptr_type, tmp598) ;
ATSlocal (ats_int_type, tmp599) ;
ATSlocal (ats_ptr_type, tmp600) ;
ATSlocal (ats_bool_type, tmp601) ;
ATSlocal (ats_int_type, tmp602) ;
ATSlocal (ats_int_type, tmp603) ;
ATSlocal (ats_int_type, tmp604) ;
ATSlocal (ats_ptr_type, tmp605) ;
ATSlocal (ats_ptr_type, tmp635) ;
ATSlocal (ats_ptr_type, tmp636) ;
ATSlocal (ats_ptr_type, tmp637) ;
ATSlocal (ats_ptr_type, tmp638) ;

__ats_lab_insert_119:
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:
tmp546 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp547 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ;
tmp548 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ;
tmp549 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ;
tmp550 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ;
tmp552 = ats_ptrget_mac(ats_ptr_type, tmp547) ;
tmp551 = compare_key_key_04317_ats_ptr_type (env0, tmp552, env1) ;
tmp553 = atspre_lt_int_int (tmp551, 0) ;
if (tmp553) {
tmp554 = insert_119 (env0, env1, tmp549, arg1, arg2) ;
tmp558 = ats_ptrget_mac(ats_ptr_type, tmp549) ;
tmp555 = avltree_height_04949_ats_ptr_type_2cats_ptr_type (tmp558) ;
tmp560 = ats_ptrget_mac(ats_ptr_type, tmp550) ;
tmp559 = avltree_height_04949_ats_ptr_type_2cats_ptr_type (tmp560) ;
tmp562 = atspre_isub (tmp555, tmp559) ;
tmp561 = atspre_ilte (tmp562, 1) ;
if (tmp561) {
tmp564 = atspre_imax (tmp555, tmp559) ;
tmp563 = atspre_iadd (1, tmp564) ;
ats_ptrget_mac(ats_int_type, tmp546) = tmp563 ;
tmp545 = tmp554 ;
} else {
tmp565 = avltree_rrotate_05002_ats_ptr_type_2cats_ptr_type (tmp546, tmp555, tmp549, tmp559, tmp550, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp565 ;
tmp545 = tmp554 ;
} /* end of [if] */
} else {
tmp595 = atspre_gt_int_int (tmp551, 0) ;
if (tmp595) {
tmp596 = insert_119 (env0, env1, tmp550, arg1, arg2) ;
tmp598 = ats_ptrget_mac(ats_ptr_type, tmp549) ;
tmp597 = avltree_height_04949_ats_ptr_type_2cats_ptr_type (tmp598) ;
tmp600 = ats_ptrget_mac(ats_ptr_type, tmp550) ;
tmp599 = avltree_height_04949_ats_ptr_type_2cats_ptr_type (tmp600) ;
tmp602 = atspre_isub (tmp599, tmp597) ;
tmp601 = atspre_ilte (tmp602, 1) ;
if (tmp601) {
tmp604 = atspre_imax (tmp597, tmp599) ;
tmp603 = atspre_iadd (1, tmp604) ;
ats_ptrget_mac(ats_int_type, tmp546) = tmp603 ;
tmp545 = tmp596 ;
} else {
tmp605 = avltree_lrotate_04977_ats_ptr_type_2cats_ptr_type (tmp546, tmp597, tmp549, tmp599, tmp550, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp605 ;
tmp545 = tmp596 ;
} /* end of [if] */
} else {
tmp635 = ats_ptrget_mac(ats_ptr_type, tmp548) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp635 ;
ats_ptrget_mac(ats_ptr_type, tmp548) = arg1 ;
tmp545 = 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:
tmp637 = (ats_sum_ptr_type)0 ;
tmp638 = (ats_sum_ptr_type)0 ;
tmp636 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp636, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_6, tmp636, atslab_1, env0) ;
ats_selptrset_mac(anairiats_sum_6, tmp636, atslab_2, arg1) ;
ats_selptrset_mac(anairiats_sum_6, tmp636, atslab_3, tmp637) ;
ats_selptrset_mac(anairiats_sum_6, tmp636, atslab_4, tmp638) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp636 ;
tmp545 = ats_false_bool ;
break ;
} while (0) ;
return (tmp545) ;
} /* end of [insert_119] */

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

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

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

ats_clo_ptr_type
insert_119_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
insert_119_closure_type *p_clo = ATS_MALLOC(sizeof(insert_119_closure_type)) ;
insert_119_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 8988(line=331, offs=3) -- 11078(line=400, offs=4)
*/
ATSstaticdec()
ats_bool_type
linmap_insert_04326_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, tmp544) ;

__ats_lab_linmap_insert_04326_ats_ptr_type_2cats_ptr_type:
tmp544 = insert_119 (arg1, arg3, arg0, arg2, arg4) ;
return (tmp544) ;
} /* end of [linmap_insert_04326_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14333(line=598, offs=7) -- 14479(line=604, 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, tmp542) ;
ATSlocal (ats_ptr_type, tmp543) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_insert:
/* ats_ptr_type tmp543 ; */
tmp542 = linmap_insert_04326_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, statmp395, (&tmp543)) ;
return (tmp542) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_insert] */

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

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

/* branch: __ats_lab_105 */
__ats_lab_105_0:
// if (tmp678 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_105_1:
tmp689 = ats_ptrget_mac(ats_ptr_type, tmp677) ;
tmp690 = ats_ptrget_mac(ats_ptr_type, arg0) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp689 ;
tmp674 = ats_castfn_mac(ats_ptr_type, tmp690) ;
break ;
} while (0) ;
return (tmp674) ;
} /* end of [avltree_takeout_min_05053_ats_ptr_type_2cats_ptr_type] */

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

__ats_lab_takeout_126:
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:
tmp643 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp644 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ;
tmp645 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ;
tmp646 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ;
tmp647 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_4) ;
tmp649 = ats_ptrget_mac(ats_ptr_type, tmp644) ;
tmp648 = compare_key_key_04317_ats_ptr_type (env0, tmp649, env1) ;
do {
/* branch: __ats_lab_100 */
__ats_lab_100_0:
__ats_lab_100_1:
tmp650 = atspre_lt_int_int (tmp648, 0) ;
if (!tmp650) { goto __ats_lab_101_1 ; }
tmp651 = takeout_126 (env0, env1, tmp646, arg1) ;
tmp653 = ats_ptrget_mac(ats_ptr_type, tmp646) ;
tmp652 = avltree_height_04949_ats_ptr_type_2cats_ptr_type (tmp653) ;
tmp655 = ats_ptrget_mac(ats_ptr_type, tmp647) ;
tmp654 = avltree_height_04949_ats_ptr_type_2cats_ptr_type (tmp655) ;
tmp657 = atspre_isub (tmp654, tmp652) ;
tmp656 = atspre_ilte (tmp657, 1) ;
if (tmp656) {
tmp642 = tmp651 ;
} else {
tmp658 = avltree_lrotate_04977_ats_ptr_type_2cats_ptr_type (tmp643, tmp652, tmp646, tmp654, tmp647, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp658 ;
tmp642 = tmp651 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_101 */
__ats_lab_101_0:
__ats_lab_101_1:
tmp659 = atspre_gt_int_int (tmp648, 0) ;
if (!tmp659) { goto __ats_lab_102_1 ; }
tmp660 = takeout_126 (env0, env1, tmp647, arg1) ;
tmp662 = ats_ptrget_mac(ats_ptr_type, tmp646) ;
tmp661 = avltree_height_04949_ats_ptr_type_2cats_ptr_type (tmp662) ;
tmp664 = ats_ptrget_mac(ats_ptr_type, tmp647) ;
tmp663 = avltree_height_04949_ats_ptr_type_2cats_ptr_type (tmp664) ;
tmp666 = atspre_isub (tmp661, tmp663) ;
tmp665 = atspre_ilte (tmp666, 1) ;
if (tmp665) {
tmp642 = tmp660 ;
} else {
tmp667 = avltree_rrotate_05002_ats_ptr_type_2cats_ptr_type (tmp643, tmp661, tmp646, tmp663, tmp647, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp667 ;
tmp642 = tmp660 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_102 */
__ats_lab_102_0:
__ats_lab_102_1:
tmp669 = atspre_pgt (arg1, atspre_null_ptr) ;
if (tmp669) {
tmp670 = ats_ptrget_mac(ats_ptr_type, tmp645) ;
ats_ptrget_mac(ats_ptr_type, arg1) = tmp670 ;
} else {
/* empty */
} /* end of [if] */
/* ats_ptr_type tmp671 ; */
tmp671 = ats_ptrget_mac(ats_ptr_type, tmp646) ;
/* ats_ptr_type tmp672 ; */
tmp672 = ats_ptrget_mac(ats_ptr_type, tmp647) ;
ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ;
do {
/* branch: __ats_lab_103 */
__ats_lab_103_0:
if (tmp672 == (ats_sum_ptr_type)0) { goto __ats_lab_106_0 ; }
__ats_lab_103_1:
tmp673 = avltree_takeout_min_05053_ats_ptr_type_2cats_ptr_type ((&tmp672)) ;
if (tmp673 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 15639(line=535, offs=21) -- 15683(line=535, offs=65)") ; }
tmp691 = &ats_caselptrlab_mac(anairiats_sum_6, tmp673, atslab_0) ;
tmp692 = &ats_caselptrlab_mac(anairiats_sum_6, tmp673, atslab_3) ;
tmp693 = &ats_caselptrlab_mac(anairiats_sum_6, tmp673, atslab_4) ;
tmp694 = avltree_height_04949_ats_ptr_type_2cats_ptr_type (tmp671) ;
tmp695 = avltree_height_04949_ats_ptr_type_2cats_ptr_type (tmp672) ;
ats_ptrget_mac(ats_ptr_type, tmp692) = tmp671 ;
ats_ptrget_mac(ats_ptr_type, tmp693) = tmp672 ;
tmp697 = atspre_isub (tmp694, tmp695) ;
tmp696 = atspre_ilte (tmp697, 1) ;
if (tmp696) {
tmp699 = atspre_imax (tmp694, tmp695) ;
tmp698 = atspre_iadd (1, tmp699) ;
ats_ptrget_mac(ats_int_type, tmp691) = tmp698 ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp673 ;
tmp642 = ats_true_bool ;
} else {
tmp700 = avltree_rrotate_05002_ats_ptr_type_2cats_ptr_type (tmp691, tmp694, tmp692, tmp695, tmp693, tmp673) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp700 ;
tmp642 = ats_true_bool ;
} /* end of [if] */
break ;

/* branch: __ats_lab_106 */
__ats_lab_106_0:
// if (tmp672 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_106_1:
ats_ptrget_mac(ats_ptr_type, arg0) = tmp671 ;
tmp642 = 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:
tmp642 = ats_false_bool ;
break ;
} while (0) ;
return (tmp642) ;
} /* end of [takeout_126] */

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

ats_bool_type
takeout_126_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) {
return takeout_126 (((takeout_126_closure_type*)cloptr)->closure_env_0, ((takeout_126_closure_type*)cloptr)->closure_env_1, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
takeout_126_closure_make (ats_ptr_type env0, ats_clo_ref_type env1) {
takeout_126_closure_type *p_clo = ATS_MALLOC(sizeof(takeout_126_closure_type)) ;
takeout_126_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 12957(line=466, offs=3) -- 16671(line=559, offs=2)
*/
ATSstaticdec()
ats_bool_type
linmap_takeout_ptr_04341_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, tmp641) ;

__ats_lab_linmap_takeout_ptr_04341_ats_ptr_type_2cats_ptr_type:
tmp641 = takeout_126 (arg1, arg2, arg0, arg3) ;
return (tmp641) ;
} /* end of [linmap_takeout_ptr_04341_ats_ptr_type_2cats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 17132(line=576, offs=15) -- 17193(line=576, offs=76)
*/
ATSstaticdec()
ats_bool_type
linmap_remove_04328_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, tmp640) ;

__ats_lab_linmap_remove_04328_ats_ptr_type_2cats_ptr_type:
tmp640 = linmap_takeout_ptr_04341_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, atspre_null_ptr) ;
return (tmp640) ;
} /* end of [linmap_remove_04328_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14547(line=608, offs=7) -- 14595(line=609, 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, tmp639) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_remove:
tmp639 = linmap_remove_04328_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp395) ;
return (tmp639) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmap_vt_remove] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 21260(line=724, offs=7) -- 21616(line=736, offs=31)
*/
ATSstaticdec()
ats_ptr_type
aux_130 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
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 (ats_ptr_type, tmp709) ;
ATSlocal (ats_ptr_type, tmp710) ;
ATSlocal (anairiats_rec_7, tmp711) ;
ATSlocal (ats_ptr_type, tmp712) ;

__ats_lab_aux_130:
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:
tmp704 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp705 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp706 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp707 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ;
tmp709 = ats_ptrget_mac(ats_ptr_type, tmp707) ;
tmp708 = aux_130 (tmp709, arg1) ;
tmp711.atslab_0 = tmp704 ;
tmp711.atslab_1 = tmp705 ;

tmp710 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
ats_selptrset_mac(anairiats_sum_8, tmp710, atslab_0, tmp711) ;
ats_selptrset_mac(anairiats_sum_8, tmp710, atslab_1, tmp708) ;
tmp712 = ats_ptrget_mac(ats_ptr_type, tmp706) ;
arg0 = tmp712 ;
arg1 = tmp710 ;
goto __ats_lab_aux_130 ; // 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:
tmp703 = arg1 ;
break ;
} while (0) ;
return (tmp703) ;
} /* end of [aux_130] */

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

__ats_lab_linmap_listize_04337_ats_ptr_type_2cats_ptr_type:
tmp713 = (ats_sum_ptr_type)0 ;
tmp702 = aux_130 (arg0, tmp713) ;
return (tmp702) ;
} /* end of [linmap_listize_04337_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14664(line=614, offs=7) -- 14695(line=614, 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, tmp701) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14780(line=620, offs=20) -- 14807(line=620, offs=47)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp714) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_nil:
tmp714 = linmap_make_nil_04318_ () ;
return (tmp714) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_nil] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14913(line=629, offs=4) -- 14998(line=632, offs=30)
*/
ATSstaticdec()
ats_void_type
f_133 (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp716) ;

__ats_lab_f_133:
/* tmp716 = */ list_vt_free_01499_ats_ptr_type (ats_ptrget_mac(ats_ptr_type, arg1)) ;
return /* (tmp716) */ ;
} /* end of [f_133] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 17514(line=590, offs=7) -- 17815(line=596, offs=24)
*/
ATSstaticdec()
ats_void_type
foreach_136 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp720) ;
ATSlocal (ats_ptr_type, tmp721) ;
ATSlocal (ats_ptr_type, tmp722) ;
ATSlocal (ats_ptr_type, tmp723) ;
ATSlocal (ats_ptr_type, tmp724) ;
// ATSlocal_void (tmp725) ;
ATSlocal (ats_ptr_type, tmp726) ;
// ATSlocal_void (tmp727) ;
ATSlocal (ats_ptr_type, tmp728) ;
ATSlocal (ats_ptr_type, tmp729) ;

__ats_lab_foreach_136:
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:
tmp721 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp722 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp723 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_3) ;
tmp724 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_4) ;
tmp726 = ats_ptrget_mac(ats_ptr_type, tmp723) ;
/* tmp725 = */ foreach_136 (env0, tmp726, arg1) ;
tmp728 = ats_ptrget_mac(ats_ptr_type, tmp721) ;
/* tmp727 = */ ((ats_void_type(*)(ats_ptr_type, ats_ref_type, ats_ptr_type))env0) (tmp728, tmp722, arg1) ;
tmp729 = ats_ptrget_mac(ats_ptr_type, tmp724) ;
arg0 = tmp729 ;
arg1 = arg1 ;
goto __ats_lab_foreach_136 ; // 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 /* (tmp720) */ ;
} /* end of [foreach_136] */

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

ats_void_type
foreach_136_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) {
foreach_136 (((foreach_136_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; return ;
} /* end of function */

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

ats_clo_ptr_type
foreach_136_closure_make (ats_ptr_type env0) {
foreach_136_closure_type *p_clo = ATS_MALLOC(sizeof(foreach_136_closure_type)) ;
foreach_136_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linmap_avltree.dats: 17459(line=589, offs=3) -- 17839(line=598, offs=2)
*/
ATSstaticdec()
ats_void_type
linmap_foreach_funenv_04329_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp719) ;

__ats_lab_linmap_foreach_funenv_04329_ats_ptr_type_2cats_ptr_type:
/* tmp719 = */ foreach_136 (arg1, arg0, arg2) ;
return /* (tmp719) */ ;
} /* end of [linmap_foreach_funenv_04329_ats_ptr_type_2cats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-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_04334_ats_ptr_type_2cats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp718) ;

__ats_lab_linmap_clear_funenv_04334_ats_ptr_type_2cats_ptr_type:
/* tmp718 = */ linmap_foreach_funenv_04329_ats_ptr_type_2cats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), arg2) ;
return /* (tmp718) */ ;
} /* end of [linmap_clear_funenv_04334_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 14845(line=624, offs=7) -- 15202(line=642, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_free (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp715) ;
// ATSlocal_void (tmp717) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_free:
/* tmp717 = */ linmap_clear_funenv_04334_ats_ptr_type_2cats_ptr_type (arg0, &f_133, atspre_null_ptr) ;
/* tmp715 = */ linmap_free_04335_ats_ptr_type_2cats_ptr_type (arg0) ;
return /* (tmp715) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_free] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-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, tmp735) ;

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

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-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, tmp734) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 15274(line=646, offs=7) -- 15637(line=667, 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, tmp730) ;
ATSlocal (ats_ptr_type, tmp731) ;
ATSlocal (ats_bool_type, tmp732) ;
ATSlocal (ats_ptr_type, tmp733) ;
ATSlocal (ats_ptr_type, tmp736) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_search:
tmp731 = linmap_search_ref_04324_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp395) ;
tmp732 = atspre_pgt (tmp731, atspre_null_ptr) ;
if (tmp732) {
tmp733 = ptrget_01763_ats_ptr_type (tmp731) ;
do {
/* branch: __ats_lab_112 */
__ats_lab_112_0:
if (tmp733 == (ats_sum_ptr_type)0) { goto __ats_lab_113_0 ; }
__ats_lab_112_1:
tmp736 = ats_caselptrlab_mac(anairiats_sum_3, tmp733, atslab_0) ;
tmp730 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp730, atslab_0, tmp736) ;
break ;

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

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-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 (tmp743) ;

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

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-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 (tmp742) ;

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

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 15711(line=671, offs=7) -- 16220(line=698, 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, tmp737) ;
ATSlocal (ats_ptr_type, tmp738) ;
ATSlocal (ats_bool_type, tmp739) ;
ATSlocal (ats_ptr_type, tmp740) ;
// ATSlocal_void (tmp741) ;
ATSlocal (ats_ptr_type, tmp744) ;
ATSlocal (ats_ptr_type, tmp745) ;
ATSlocal (ats_bool_type, tmp746) ;
ATSlocal (ats_ptr_type, tmp747) ;
ATSlocal (ats_ptr_type, tmp748) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_insert:
tmp738 = linmap_search_ref_04324_ats_ptr_type_2cats_ptr_type (ats_ptrget_mac(ats_ptr_type, arg0), arg1, statmp395) ;
tmp739 = atspre_pgt (tmp738, atspre_null_ptr) ;
if (tmp739) {
tmp740 = ptrget_01763_ats_ptr_type (tmp738) ;
tmp744 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp744, atslab_0, arg2) ;
ats_selptrset_mac(anairiats_sum_3, tmp744, atslab_1, tmp740) ;
/* tmp741 = */ ptrset_01764_ats_ptr_type (tmp738, tmp744) ;
tmp737 = ats_true_bool ;
} else {
/* ats_ptr_type tmp745 ; */
tmp748 = (ats_sum_ptr_type)0 ;
tmp747 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp747, atslab_0, arg2) ;
ats_selptrset_mac(anairiats_sum_3, tmp747, atslab_1, tmp748) ;
tmp746 = linmap_insert_04326_ats_ptr_type_2cats_ptr_type (arg0, arg1, tmp747, statmp395, (&tmp745)) ;
tmp737 = ats_false_bool ;
} /* end of [if] */
return (tmp737) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2varmaplst_vt_insert] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-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_04327_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, tmp757) ;
ATSlocal (ats_bool_type, tmp758) ;

__ats_lab_linmap_takeout_04327_ats_ptr_type_2cats_ptr_type:
tmp758 = linmap_takeout_ptr_04341_ats_ptr_type_2cats_ptr_type (arg0, arg1, arg2, arg3) ;
tmp757 = ats_castfn_mac(ats_bool_type, tmp758) ;
return (tmp757) ;
} /* end of [linmap_takeout_04327_ats_ptr_type_2cats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_dynexp2_dvar.dats: 16294(line=702, offs=7) -- 17209(line=740, 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, tmp749) ;
ATSlocal (ats_ptr_type, tmp750) ;
ATSlocal (ats_bool_type, tmp751) ;
ATSlocal (ats_ptr_type, tmp752) ;
ATSlocal (ats_ptr_type, tmp753) ;
// ATSlocal_void (tmp754) ;
ATSlocal (ats_ptr_type, tmp755) ;
ATSlocal (ats_bool_type, tmp756) ;

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

/* branch: __ats_lab_116 */
__ats_lab_116_0:
// if (tmp753 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_116_1:
/* ats_ptr_type tmp755 ; */
tmp756 = linmap_takeout_04327_ats_ptr_type_2cats_ptr_type (arg0, arg1, statmp395, (&tmp755)) ;
/* tmp754 = ats_castfn_mac(ats_void_type, tmp755) */ ;
break ;
} while (0) ;
tmp749 = ats_true_bool ;
break ;

/* branch: __ats_lab_117 */
__ats_lab_117_0:
// if (tmp752 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_117_1:
tmp749 = ats_false_bool ;
break ;
} while (0) ;
} else {
tmp749 = ats_false_bool ;
} /* end of [if] */
return (tmp749) ;
} /* 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(&statmp142, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp395, sizeof(ats_ptr_type)) ;

/* marking external values for GC */

/* code for dynamic loading */
statmp142 = __ats_fun_51_closure_make () ;
statmp395 = __ats_fun_90_closure_make () ;
return ;
} /* end of [dynload function] */

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

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

/* end of [pats_dynexp2_dvar_dats.c] */
