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

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

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

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#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"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#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"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#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"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#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"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#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"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"
/* external codes at top */
/* type definitions */
typedef struct {
ats_ptr_type atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_0 ;

typedef struct {
ats_ptr_type atslab_0 ;
} anairiats_sum_1 ;

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

/* 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, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__D2ENV_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__B_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__E_1) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_neq_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ;
ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_uint_type, atspre_add_uint_uint) (ats_uint_type, ats_uint_type) ;
ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_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_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_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_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_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_ptr_type, ats_malloc_gc) (ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_char_type, atspre_string_get_char_at) (ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_char_type, atspre_string_get_char_at__intsz) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, atspre_string_copy) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ;
ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ;
ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ;
ATSextern_val(ats_ptr_type, atspre_stropt_none) ;
ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_tostringf) (ats_ptr_type, ...) ;
ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, patsopt_file2strptr) (ats_int_type) ;
ATSextern_fun(ats_size_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_cap) (ats_ref_type) ;
ATSextern_fun(ats_size_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_size) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_empty) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_empty) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_full) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_full) (ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_initialize_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_uninitialize) (ats_ref_type) ;
ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_uninitialize_vt) (ats_ref_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_takeout_tsz) (ats_ref_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_insert_end_many_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_remove_beg_many_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_void_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_clear_all) (ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_copyout_tsz) (ats_ref_type, ats_size_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_update_capacity_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var) (ats_ptr_type, 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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_hisexp) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_make) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2env) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_nil) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_add) (ats_ptr_type, ats_ptr_type) ;

/* external dynamic terminating constant declarations */
#ifdef _ATS_PROOFCHECK
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____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_ccomp_2esats__sasp__d2envset_vtype = 0 ;
int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__sasp__d2env_type = 0 ;

/* sum constructor declarations */
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__D2ENV_0) ;

/* exn constructor declarations */
/* global dynamic (non-functional) constant declarations */
/* internal function declarations */
static
ats_int_type __ats_fun_4 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type __ats_fun_4_closure_make () ;
static
ats_int_type __ats_fun_4_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type linset_make_nil_05136_ () ;
static
ats_void_type aux_9 (ats_ptr_type arg0) ;
static
ats_void_type linset_free_05143_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_int_type compare_elt_elt_05135_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_int_type avltree_height_01871_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type avltree_rrotate_01925_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_01901_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_12 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type insert_12_closure_make (ats_clo_ref_type env0) ;
static
ats_bool_type insert_12_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type linset_insert_05145_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type aux_19 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type linset_listize_05160_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type aux_22 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type linset_listize_free_05161_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type loop_24 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type aux_28 (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_28_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ;
static
ats_void_type aux_28_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_void_type fprintlst_01723_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;

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

/* external value variable declarations */

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 1972(line=73, offs=15) -- 2023(line=75, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp0) ;
ATSlocal (ats_ptr_type, tmp1) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var:
// 
tmp1 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ;
tmp0 = tmp1 ;
return (tmp0) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 2079(line=78, offs=16) -- 2130(line=80, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp2) ;
ATSlocal (ats_ptr_type, tmp3) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type:
// 
tmp3 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ;
tmp2 = tmp3 ;
return (tmp2) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 2183(line=83, offs=12) -- 2212(line=83, offs=41)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_make (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp4) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_make:
tmp4 = ATS_MALLOC(sizeof(anairiats_sum_0)) ;
ats_selptrset_mac(anairiats_sum_0, tmp4, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_0, tmp4, atslab_1, arg1) ;
return (tmp4) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_make] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 2278(line=90, offs=11) -- 2534(line=108, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2var2env (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp5) ;
ATSlocal (ats_ptr_type, tmp6) ;
ATSlocal (ats_ptr_type, tmp7) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2var2env:
tmp6 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_hisexp (arg0) ;
if (tmp6 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 2471(line=105, offs=5) -- 2486(line=105, offs=20)") ; }
tmp7 = ats_caselptrlab_mac(anairiats_sum_1, tmp6, atslab_0) ;
tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_make (arg0, tmp7) ;
return (tmp5) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2var2env] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 2731(line=120, offs=11) -- 2853(line=124, offs=72)
*/
ATSstaticdec()
ats_int_type
__ats_fun_4 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp8) ;
ATSlocal (ats_ptr_type, tmp9) ;
ATSlocal (ats_ptr_type, tmp10) ;

__ats_lab___ats_fun_4:
tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var (arg0) ;
tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var (arg1) ;
tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__compare_d2var_d2var (tmp9, tmp10) ;
return (tmp8) ;
} /* end of [__ats_fun_4] */

typedef struct {
ats_fun_ptr_type closure_fun ;
} __ats_fun_4_closure_type ;

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

ATSinline()
ats_void_type
__ats_fun_4_closure_init (__ats_fun_4_closure_type *p_clo) {
p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_4_clofun ;
return ;
} /* end of function */

ats_clo_ptr_type
__ats_fun_4_closure_make () {
__ats_fun_4_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_4_closure_type)) ;
__ats_fun_4_closure_init (p_clo) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2859(line=106, offs=17) -- 2868(line=106, offs=26)
*/
ATSstaticdec()
ats_ptr_type
linset_make_nil_05136_ () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp13) ;

__ats_lab_linset_make_nil_05136_:
tmp13 = (ats_sum_ptr_type)0 ;
return (tmp13) ;
} /* end of [linset_make_nil_05136_] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 2921(line=130, offs=17) -- 2948(line=130, offs=44)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_nil () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp12) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_nil:
tmp12 = linset_make_nil_05136_ () ;
return (tmp12) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_nil] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 4427(line=171, offs=7) -- 4555(line=175, offs=18)
*/
ATSstaticdec()
ats_void_type
aux_9 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp16) ;
ATSlocal (ats_ptr_type, tmp17) ;
ATSlocal (ats_ptr_type, tmp18) ;
// ATSlocal_void (tmp19) ;

__ats_lab_aux_9:
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; }
__ats_lab_0_1:
tmp17 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_2) ;
tmp18 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_3) ;
ATS_FREE(arg0) ;
/* tmp19 = */ aux_9 (tmp17) ;
arg0 = tmp18 ;
goto __ats_lab_aux_9 ; // tail call
break ;

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

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

__ats_lab_linset_free_05143_ats_ptr_type:
/* tmp15 = */ aux_9 (arg0) ;
return /* (tmp15) */ ;
} /* end of [linset_free_05143_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 2977(line=133, offs=18) -- 3003(line=133, offs=44)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_free (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp14) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_free:
/* tmp14 = */ linset_free_05143_ats_ptr_type (arg0) ;
return /* (tmp14) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_free] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 2013(line=65, offs=17) -- 2041(line=65, offs=45)
*/
ATSstaticdec()
ats_int_type
compare_elt_elt_05135_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp30) ;

__ats_lab_compare_elt_elt_05135_ats_ptr_type:
tmp30 = ((ats_int_type(*)(ats_clo_ptr_type, ats_ptr_type, ats_ptr_type))(ats_closure_fun(arg2))) (arg2, arg0, arg1) ;
return (tmp30) ;
} /* end of [compare_elt_elt_05135_ats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 3655(line=140, offs=3) -- 3740(line=141, offs=54)
*/
ATSstaticdec()
ats_int_type
avltree_height_01871_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp35) ;
ATSlocal (ats_int_type, tmp36) ;

__ats_lab_avltree_height_01871_ats_ptr_type:
do {
/* branch: __ats_lab_3 */
__ats_lab_3_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_4_0 ; }
__ats_lab_3_1:
tmp36 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_0) ;
tmp35 = tmp36 ;
break ;

/* branch: __ats_lab_4 */
__ats_lab_4_0:
__ats_lab_4_1:
tmp35 = 0 ;
break ;
} while (0) ;
return (tmp35) ;
} /* end of [avltree_height_01871_ats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 6846(line=274, offs=32) -- 8280(line=323, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_rrotate_01925_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, tmp45) ;
ATSlocal (ats_ptr_type, tmp46) ;
ATSlocal (ats_ptr_type, tmp47) ;
ATSlocal (ats_ptr_type, tmp48) ;
ATSlocal (ats_ptr_type, tmp49) ;
ATSlocal (ats_int_type, tmp50) ;
ATSlocal (ats_ptr_type, tmp51) ;
ATSlocal (ats_int_type, tmp52) ;
ATSlocal (ats_ptr_type, tmp53) ;
ATSlocal (ats_bool_type, tmp54) ;
ATSlocal (ats_int_type, tmp55) ;
ATSlocal (ats_int_type, tmp56) ;
ATSlocal (ats_ptr_type, tmp57) ;
ATSlocal (ats_int_type, tmp58) ;
ATSlocal (ats_int_type, tmp59) ;
ATSlocal (ats_ptr_type, tmp60) ;
ATSlocal (ats_ptr_type, tmp61) ;
ATSlocal (ats_ptr_type, tmp62) ;
ATSlocal (ats_ptr_type, tmp63) ;
ATSlocal (ats_int_type, tmp64) ;
ATSlocal (ats_ptr_type, tmp65) ;
ATSlocal (ats_int_type, tmp66) ;
ATSlocal (ats_ptr_type, tmp67) ;
ATSlocal (ats_int_type, tmp68) ;
ATSlocal (ats_int_type, tmp69) ;
ATSlocal (ats_ptr_type, tmp70) ;
ATSlocal (ats_int_type, tmp71) ;
ATSlocal (ats_int_type, tmp72) ;
ATSlocal (ats_ptr_type, tmp73) ;

__ats_lab_avltree_rrotate_01925_ats_ptr_type:
tmp46 = ats_ptrget_mac(ats_ptr_type, arg2) ;
// if (tmp46 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp47 = &ats_caselptrlab_mac(anairiats_sum_2, tmp46, atslab_0) ;
tmp48 = &ats_caselptrlab_mac(anairiats_sum_2, tmp46, atslab_2) ;
tmp49 = &ats_caselptrlab_mac(anairiats_sum_2, tmp46, atslab_3) ;
tmp51 = ats_ptrget_mac(ats_ptr_type, tmp48) ;
tmp50 = avltree_height_01871_ats_ptr_type (tmp51) ;
tmp53 = ats_ptrget_mac(ats_ptr_type, tmp49) ;
tmp52 = avltree_height_01871_ats_ptr_type (tmp53) ;
tmp55 = atspre_iadd (tmp50, 0) ;
tmp54 = atspre_igte (tmp55, tmp52) ;
if (tmp54) {
tmp56 = atspre_iadd (tmp52, 1) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp56 ;
tmp57 = ats_ptrget_mac(ats_ptr_type, tmp49) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp57 ;
tmp59 = atspre_imax (tmp50, tmp56) ;
tmp58 = atspre_iadd (1, tmp59) ;
ats_ptrget_mac(ats_int_type, tmp47) = tmp58 ;
ats_ptrget_mac(ats_ptr_type, tmp49) = arg5 ;
tmp45 = tmp46 ;
} else {
tmp60 = ats_ptrget_mac(ats_ptr_type, tmp49) ;
// if (tmp60 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp61 = &ats_caselptrlab_mac(anairiats_sum_2, tmp60, atslab_0) ;
tmp62 = &ats_caselptrlab_mac(anairiats_sum_2, tmp60, atslab_2) ;
tmp63 = &ats_caselptrlab_mac(anairiats_sum_2, tmp60, atslab_3) ;
tmp65 = ats_ptrget_mac(ats_ptr_type, tmp62) ;
tmp64 = avltree_height_01871_ats_ptr_type (tmp65) ;
tmp67 = ats_ptrget_mac(ats_ptr_type, tmp63) ;
tmp66 = avltree_height_01871_ats_ptr_type (tmp67) ;
tmp69 = atspre_imax (tmp66, arg3) ;
tmp68 = atspre_iadd (1, tmp69) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp68 ;
tmp70 = ats_ptrget_mac(ats_ptr_type, tmp63) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp70 ;
tmp72 = atspre_imax (tmp50, tmp64) ;
tmp71 = atspre_iadd (1, tmp72) ;
ats_ptrget_mac(ats_int_type, tmp47) = tmp71 ;
tmp73 = ats_ptrget_mac(ats_ptr_type, tmp62) ;
ats_ptrget_mac(ats_ptr_type, tmp49) = tmp73 ;
ats_ptrget_mac(ats_int_type, tmp61) = arg1 ;
ats_ptrget_mac(ats_ptr_type, tmp62) = tmp46 ;
ats_ptrget_mac(ats_ptr_type, tmp63) = arg5 ;
tmp45 = tmp60 ;
} /* end of [if] */
return (tmp45) ;
} /* end of [avltree_rrotate_01925_ats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 5209(line=217, offs=32) -- 6673(line=266, offs=4)
*/
ATSstaticdec()
ats_ptr_type
avltree_lrotate_01901_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, tmp85) ;
ATSlocal (ats_ptr_type, tmp86) ;
ATSlocal (ats_ptr_type, tmp87) ;
ATSlocal (ats_ptr_type, tmp88) ;
ATSlocal (ats_ptr_type, tmp89) ;
ATSlocal (ats_int_type, tmp90) ;
ATSlocal (ats_ptr_type, tmp91) ;
ATSlocal (ats_int_type, tmp92) ;
ATSlocal (ats_ptr_type, tmp93) ;
ATSlocal (ats_bool_type, tmp94) ;
ATSlocal (ats_int_type, tmp95) ;
ATSlocal (ats_int_type, tmp96) ;
ATSlocal (ats_ptr_type, tmp97) ;
ATSlocal (ats_int_type, tmp98) ;
ATSlocal (ats_int_type, tmp99) ;
ATSlocal (ats_ptr_type, tmp100) ;
ATSlocal (ats_ptr_type, tmp101) ;
ATSlocal (ats_ptr_type, tmp102) ;
ATSlocal (ats_ptr_type, tmp103) ;
ATSlocal (ats_int_type, tmp104) ;
ATSlocal (ats_ptr_type, tmp105) ;
ATSlocal (ats_int_type, tmp106) ;
ATSlocal (ats_ptr_type, tmp107) ;
ATSlocal (ats_int_type, tmp108) ;
ATSlocal (ats_int_type, tmp109) ;
ATSlocal (ats_ptr_type, tmp110) ;
ATSlocal (ats_int_type, tmp111) ;
ATSlocal (ats_int_type, tmp112) ;
ATSlocal (ats_ptr_type, tmp113) ;

__ats_lab_avltree_lrotate_01901_ats_ptr_type:
tmp86 = ats_ptrget_mac(ats_ptr_type, arg4) ;
// if (tmp86 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp87 = &ats_caselptrlab_mac(anairiats_sum_2, tmp86, atslab_0) ;
tmp88 = &ats_caselptrlab_mac(anairiats_sum_2, tmp86, atslab_2) ;
tmp89 = &ats_caselptrlab_mac(anairiats_sum_2, tmp86, atslab_3) ;
tmp91 = ats_ptrget_mac(ats_ptr_type, tmp88) ;
tmp90 = avltree_height_01871_ats_ptr_type (tmp91) ;
tmp93 = ats_ptrget_mac(ats_ptr_type, tmp89) ;
tmp92 = avltree_height_01871_ats_ptr_type (tmp93) ;
tmp95 = atspre_iadd (tmp92, 0) ;
tmp94 = atspre_ilte (tmp90, tmp95) ;
if (tmp94) {
tmp96 = atspre_iadd (tmp90, 1) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp96 ;
tmp97 = ats_ptrget_mac(ats_ptr_type, tmp88) ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp97 ;
tmp99 = atspre_imax (tmp96, tmp92) ;
tmp98 = atspre_iadd (1, tmp99) ;
ats_ptrget_mac(ats_int_type, tmp87) = tmp98 ;
ats_ptrget_mac(ats_ptr_type, tmp88) = arg5 ;
tmp85 = tmp86 ;
} else {
tmp100 = ats_ptrget_mac(ats_ptr_type, tmp88) ;
// if (tmp100 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp101 = &ats_caselptrlab_mac(anairiats_sum_2, tmp100, atslab_0) ;
tmp102 = &ats_caselptrlab_mac(anairiats_sum_2, tmp100, atslab_2) ;
tmp103 = &ats_caselptrlab_mac(anairiats_sum_2, tmp100, atslab_3) ;
tmp105 = ats_ptrget_mac(ats_ptr_type, tmp102) ;
tmp104 = avltree_height_01871_ats_ptr_type (tmp105) ;
tmp107 = ats_ptrget_mac(ats_ptr_type, tmp103) ;
tmp106 = avltree_height_01871_ats_ptr_type (tmp107) ;
tmp109 = atspre_imax (arg1, tmp104) ;
tmp108 = atspre_iadd (1, tmp109) ;
ats_ptrget_mac(ats_int_type, arg0) = tmp108 ;
tmp110 = ats_ptrget_mac(ats_ptr_type, tmp102) ;
ats_ptrget_mac(ats_ptr_type, arg4) = tmp110 ;
tmp112 = atspre_imax (tmp106, tmp92) ;
tmp111 = atspre_iadd (1, tmp112) ;
ats_ptrget_mac(ats_int_type, tmp87) = tmp111 ;
tmp113 = ats_ptrget_mac(ats_ptr_type, tmp103) ;
ats_ptrget_mac(ats_ptr_type, tmp88) = tmp113 ;
ats_ptrget_mac(ats_int_type, tmp101) = arg3 ;
ats_ptrget_mac(ats_ptr_type, tmp102) = arg5 ;
ats_ptrget_mac(ats_ptr_type, tmp103) = tmp86 ;
tmp85 = tmp100 ;
} /* end of [if] */
return (tmp85) ;
} /* end of [avltree_lrotate_01901_ats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8387(line=331, offs=5) -- 10085(line=382, offs=4)
*/
ATSstaticdec()
ats_bool_type
insert_12 (ats_clo_ref_type env0, ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp24) ;
ATSlocal (ats_ptr_type, tmp25) ;
ATSlocal (ats_ptr_type, tmp26) ;
ATSlocal (ats_ptr_type, tmp27) ;
ATSlocal (ats_ptr_type, tmp28) ;
ATSlocal (ats_int_type, tmp29) ;
ATSlocal (ats_ptr_type, tmp31) ;
ATSlocal (ats_bool_type, tmp32) ;
ATSlocal (ats_bool_type, tmp33) ;
ATSlocal (ats_int_type, tmp34) ;
ATSlocal (ats_ptr_type, tmp37) ;
ATSlocal (ats_int_type, tmp38) ;
ATSlocal (ats_ptr_type, tmp39) ;
ATSlocal (ats_bool_type, tmp40) ;
ATSlocal (ats_int_type, tmp41) ;
ATSlocal (ats_int_type, tmp42) ;
ATSlocal (ats_int_type, tmp43) ;
ATSlocal (ats_ptr_type, tmp44) ;
ATSlocal (ats_bool_type, tmp74) ;
ATSlocal (ats_bool_type, tmp75) ;
ATSlocal (ats_int_type, tmp76) ;
ATSlocal (ats_ptr_type, tmp77) ;
ATSlocal (ats_int_type, tmp78) ;
ATSlocal (ats_ptr_type, tmp79) ;
ATSlocal (ats_bool_type, tmp80) ;
ATSlocal (ats_int_type, tmp81) ;
ATSlocal (ats_int_type, tmp82) ;
ATSlocal (ats_int_type, tmp83) ;
ATSlocal (ats_ptr_type, tmp84) ;
ATSlocal (ats_ptr_type, tmp114) ;
ATSlocal (ats_ptr_type, tmp115) ;
ATSlocal (ats_ptr_type, tmp116) ;

__ats_lab_insert_12:
do {
/* branch: __ats_lab_2 */
__ats_lab_2_0:
if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; }
__ats_lab_2_1:
tmp25 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp26 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ;
tmp27 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg0), atslab_2) ;
tmp28 = &ats_caselptrlab_mac(anairiats_sum_2, ats_ptrget_mac(ats_ptr_type, arg0), atslab_3) ;
tmp31 = ats_ptrget_mac(ats_ptr_type, tmp26) ;
tmp29 = compare_elt_elt_05135_ats_ptr_type (arg1, tmp31, env0) ;
tmp32 = atspre_lt_int_int (tmp29, 0) ;
if (tmp32) {
tmp33 = insert_12 (env0, tmp27, arg1) ;
tmp37 = ats_ptrget_mac(ats_ptr_type, tmp27) ;
tmp34 = avltree_height_01871_ats_ptr_type (tmp37) ;
tmp39 = ats_ptrget_mac(ats_ptr_type, tmp28) ;
tmp38 = avltree_height_01871_ats_ptr_type (tmp39) ;
tmp41 = atspre_isub (tmp34, tmp38) ;
tmp40 = atspre_ilte (tmp41, 1) ;
if (tmp40) {
tmp43 = atspre_imax (tmp34, tmp38) ;
tmp42 = atspre_iadd (1, tmp43) ;
ats_ptrget_mac(ats_int_type, tmp25) = tmp42 ;
tmp24 = tmp33 ;
} else {
tmp44 = avltree_rrotate_01925_ats_ptr_type (tmp25, tmp34, tmp27, tmp38, tmp28, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp44 ;
tmp24 = tmp33 ;
} /* end of [if] */
} else {
tmp74 = atspre_gt_int_int (tmp29, 0) ;
if (tmp74) {
tmp75 = insert_12 (env0, tmp28, arg1) ;
tmp77 = ats_ptrget_mac(ats_ptr_type, tmp27) ;
tmp76 = avltree_height_01871_ats_ptr_type (tmp77) ;
tmp79 = ats_ptrget_mac(ats_ptr_type, tmp28) ;
tmp78 = avltree_height_01871_ats_ptr_type (tmp79) ;
tmp81 = atspre_isub (tmp78, tmp76) ;
tmp80 = atspre_ilte (tmp81, 1) ;
if (tmp80) {
tmp83 = atspre_imax (tmp76, tmp78) ;
tmp82 = atspre_iadd (1, tmp83) ;
ats_ptrget_mac(ats_int_type, tmp25) = tmp82 ;
tmp24 = tmp75 ;
} else {
tmp84 = avltree_lrotate_01901_ats_ptr_type (tmp25, tmp76, tmp27, tmp78, tmp28, ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp84 ;
tmp24 = tmp75 ;
} /* end of [if] */
} else {
tmp24 = ats_true_bool ;
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_5 */
__ats_lab_5_0:
// if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_5_1:
tmp115 = (ats_sum_ptr_type)0 ;
tmp116 = (ats_sum_ptr_type)0 ;
tmp114 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp114, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_2, tmp114, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_2, tmp114, atslab_2, tmp115) ;
ats_selptrset_mac(anairiats_sum_2, tmp114, atslab_3, tmp116) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp114 ;
tmp24 = ats_false_bool ;
break ;
} while (0) ;
return (tmp24) ;
} /* end of [insert_12] */

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

ats_bool_type
insert_12_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1) {
return insert_12 (((insert_12_closure_type*)cloptr)->closure_env_0, arg0, arg1) ;
} /* end of function */

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

ats_clo_ptr_type
insert_12_closure_make (ats_clo_ref_type env0) {
insert_12_closure_type *p_clo = ATS_MALLOC(sizeof(insert_12_closure_type)) ;
insert_12_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 8360(line=329, offs=3) -- 10136(line=388, offs=4)
*/
ATSstaticdec()
ats_bool_type
linset_insert_05145_ats_ptr_type (ats_ref_type arg0, ats_ptr_type arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp23) ;

__ats_lab_linset_insert_05145_ats_ptr_type:
tmp23 = insert_12 (arg2, arg0, arg1) ;
return (tmp23) ;
} /* end of [linset_insert_05145_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 3034(line=137, offs=3) -- 3123(line=140, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_add (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp20) ;
ATSlocal (ats_ptr_type, tmp21) ;
ATSlocal (ats_bool_type, tmp22) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_add:
/* ats_ptr_type tmp21 ; */
tmp21 = arg0 ;
tmp22 = linset_insert_05145_ats_ptr_type ((&tmp21), arg1, statmp11) ;
tmp20 = tmp21 ;
return (tmp20) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_add] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27430(line=997, offs=7) -- 27766(line=1008, offs=31)
*/
ATSstaticdec()
ats_ptr_type
aux_19 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp119) ;
ATSlocal (ats_ptr_type, tmp120) ;
ATSlocal (ats_ptr_type, tmp121) ;
ATSlocal (ats_ptr_type, tmp122) ;
ATSlocal (ats_ptr_type, tmp123) ;
ATSlocal (ats_ptr_type, tmp124) ;
ATSlocal (ats_ptr_type, tmp125) ;
ATSlocal (ats_ptr_type, tmp126) ;

__ats_lab_aux_19:
do {
/* branch: __ats_lab_6 */
__ats_lab_6_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; }
__ats_lab_6_1:
tmp120 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ;
tmp121 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_2) ;
tmp122 = &ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_3) ;
tmp124 = ats_ptrget_mac(ats_ptr_type, tmp122) ;
tmp123 = aux_19 (tmp124, arg1) ;
tmp125 = ATS_MALLOC(sizeof(anairiats_sum_0)) ;
ats_selptrset_mac(anairiats_sum_0, tmp125, atslab_0, tmp120) ;
ats_selptrset_mac(anairiats_sum_0, tmp125, atslab_1, tmp123) ;
tmp126 = ats_ptrget_mac(ats_ptr_type, tmp121) ;
arg0 = tmp126 ;
arg1 = tmp125 ;
goto __ats_lab_aux_19 ; // tail call
break ;

/* branch: __ats_lab_7 */
__ats_lab_7_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_7_1:
tmp119 = arg1 ;
break ;
} while (0) ;
return (tmp119) ;
} /* end of [aux_19] */

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

__ats_lab_linset_listize_05160_ats_ptr_type:
tmp127 = (ats_sum_ptr_type)0 ;
tmp118 = aux_19 (arg0, tmp127) ;
return (tmp118) ;
} /* end of [linset_listize_05160_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 3183(line=143, offs=21) -- 3212(line=143, offs=50)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp117) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize:
tmp117 = linset_listize_05160_ats_ptr_type (arg0) ;
return (tmp117) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27949(line=1019, offs=7) -- 28232(line=1029, offs=19)
*/
ATSstaticdec()
ats_ptr_type
aux_22 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp130) ;
ATSlocal (ats_ptr_type, tmp131) ;
ATSlocal (ats_ptr_type, tmp132) ;
ATSlocal (ats_ptr_type, tmp133) ;
ATSlocal (ats_ptr_type, tmp134) ;
ATSlocal (ats_ptr_type, tmp135) ;

__ats_lab_aux_22:
do {
/* branch: __ats_lab_8 */
__ats_lab_8_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; }
__ats_lab_8_1:
tmp131 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ;
tmp132 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_2) ;
tmp133 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_3) ;
ATS_FREE(arg0) ;
tmp134 = aux_22 (tmp133, arg1) ;
tmp135 = ATS_MALLOC(sizeof(anairiats_sum_0)) ;
ats_selptrset_mac(anairiats_sum_0, tmp135, atslab_0, tmp131) ;
ats_selptrset_mac(anairiats_sum_0, tmp135, atslab_1, tmp134) ;
arg0 = tmp132 ;
arg1 = tmp135 ;
goto __ats_lab_aux_22 ; // tail call
break ;

/* branch: __ats_lab_9 */
__ats_lab_9_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_9_1:
tmp130 = arg1 ;
break ;
} while (0) ;
return (tmp130) ;
} /* end of [aux_22] */

/*
// /home/ats-lang-anairiats-0.2.12/libats/DATS/linset_avltree.dats: 27898(line=1017, offs=21) -- 28295(line=1033, offs=4)
*/
ATSstaticdec()
ats_ptr_type
linset_listize_free_05161_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp129) ;
ATSlocal (ats_ptr_type, tmp136) ;

__ats_lab_linset_listize_free_05161_ats_ptr_type:
tmp136 = (ats_sum_ptr_type)0 ;
tmp129 = aux_22 (arg0, tmp136) ;
return (tmp129) ;
} /* end of [linset_listize_free_05161_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 3249(line=145, offs=26) -- 3283(line=145, offs=60)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize_free (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp128) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize_free:
tmp128 = linset_listize_free_05161_ats_ptr_type (arg0) ;
return (tmp128) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_listize_free] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 3373(line=154, offs=5) -- 3555(line=165, offs=4)
*/
ATSstaticdec()
ats_ptr_type
loop_24 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp138) ;
ATSlocal (ats_ptr_type, tmp139) ;
ATSlocal (ats_ptr_type, tmp140) ;
ATSlocal (ats_ptr_type, tmp141) ;

__ats_lab_loop_24:
do {
/* branch: __ats_lab_10 */
__ats_lab_10_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; }
__ats_lab_10_1:
tmp139 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ;
tmp140 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ;
tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_add (arg1, tmp139) ;
arg0 = tmp140 ;
arg1 = tmp141 ;
goto __ats_lab_loop_24 ; // tail call
break ;

/* branch: __ats_lab_11 */
__ats_lab_11_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_11_1:
tmp138 = arg1 ;
break ;
} while (0) ;
return (tmp138) ;
} /* end of [loop_24] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 3353(line=152, offs=14) -- 3619(line=169, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envlst2set (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp137) ;
ATSlocal (ats_ptr_type, tmp142) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envlst2set:
tmp142 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envset_vt_nil () ;
tmp137 = loop_24 (arg0, tmp142) ;
return (tmp137) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2envlst2set] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 3695(line=175, offs=3) -- 3931(line=188, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2env (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp143) ;
ATSlocal (ats_ptr_type, tmp144) ;
ATSlocal (ats_ptr_type, tmp145) ;
// ATSlocal_void (tmp146) ;
// ATSlocal_void (tmp147) ;
// ATSlocal_void (tmp148) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2env:
tmp144 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_var (arg1) ;
tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__d2env_get_type (arg1) ;
/* tmp146 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__fprint_d2var (arg0, tmp144) ;
/* tmp147 = */ atspre_fprint_string (arg0, ATSstrcst("(")) ;
/* tmp148 = */ _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__fprint_hisexp (arg0, tmp145) ;
/* tmp143 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ;
return /* (tmp143) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2env] */

/*
// /tmp/ATS-Postiats/src/pats_utils.dats: 11884(line=651, offs=1) -- 12164(line=665, offs=2)
*/
ATSstaticdec()
ats_void_type
aux_28 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp151) ;
ATSlocal (ats_ptr_type, tmp152) ;
ATSlocal (ats_ptr_type, tmp153) ;
// ATSlocal_void (tmp154) ;
ATSlocal (ats_bool_type, tmp155) ;
// ATSlocal_void (tmp156) ;
ATSlocal (ats_int_type, tmp157) ;

__ats_lab_aux_28:
do {
/* branch: __ats_lab_12 */
__ats_lab_12_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; }
__ats_lab_12_1:
break ;

/* branch: __ats_lab_13 */
__ats_lab_13_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_13_1:
tmp152 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_0) ;
tmp153 = ats_caselptrlab_mac(anairiats_sum_0, arg0, atslab_1) ;
tmp155 = atspre_gt_int_int (arg1, 0) ;
if (tmp155) {
/* tmp154 = */ atspre_fprint_string (env0, env1) ;
} else {
/* empty */
} /* end of [if] */
/* tmp156 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))env2) (env0, tmp152) ;
tmp157 = atspre_add_int_int (arg1, 1) ;
arg0 = tmp153 ;
arg1 = tmp157 ;
goto __ats_lab_aux_28 ; // tail call
break ;
} while (0) ;
return /* (tmp151) */ ;
} /* end of [aux_28] */

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

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

ATSinline()
ats_void_type
aux_28_closure_init (aux_28_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_28_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_28_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
aux_28_closure_type *p_clo = ATS_MALLOC(sizeof(aux_28_closure_type)) ;
aux_28_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_01723_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp150) ;

__ats_lab_fprintlst_01723_ats_ptr_type:
/* tmp150 = */ aux_28 (arg0, arg2, arg3, arg1, 0) ;
return /* (tmp150) */ ;
} /* end of [fprintlst_01723_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 4007(line=194, offs=3) -- 4079(line=197, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp149) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlst:
/* tmp149 = */ fprintlst_01723_ats_ptr_type (arg0, arg1, ATSstrcst(", "), &_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2env) ;
return /* (tmp149) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlst] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_d2env.dats: 4161(line=203, offs=3) -- 4322(line=212, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlstopt (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp158) ;
ATSlocal (ats_ptr_type, tmp159) ;
// ATSlocal_void (tmp160) ;
// ATSlocal_void (tmp161) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlstopt:
do {
/* branch: __ats_lab_14 */
__ats_lab_14_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; }
__ats_lab_14_1:
tmp159 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ;
/* tmp160 = */ atspre_fprint_string (arg0, ATSstrcst("Some(")) ;
/* tmp161 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlst (arg0, tmp159) ;
/* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst(")")) ;
break ;

/* branch: __ats_lab_15 */
__ats_lab_15_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_15_1:
/* tmp158 = */ atspre_fprint_string (arg0, ATSstrcst("None()")) ;
break ;
} while (0) ;
return /* (tmp158) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__fprint_d2envlstopt] */

/* static load function */

// 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_staexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__staload_flag = 1 ;

// 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_staexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ;
// ATS_2d0_2e2_2e12_2libats_2SATS_2linset_avltree_2esats__staload () ;
// ATS_2d0_2e2_2e12_2libats_2DATS_2linset_avltree_2edats__staload () ;

// _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__D2ENV_0.tag = 0 ;
return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_d2env_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_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
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(&statmp11, sizeof(ats_ptr_type)) ;

/* marking external values for GC */

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

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

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

/* end of [pats_ccomp_d2env_dats.c] */
