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

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

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

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_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_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_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_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"
/* 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_s2exp_srt ;
ats_ptr_type atslab_s2exp_node ;
} anairiats_rec_1 ;

typedef struct {
int tag ;
ats_int_type atslab_0 ;
} anairiats_sum_2 ;

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

/* 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, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eint_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eintinf_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ecst_4) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_bool_type, atspre_gte_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_neq_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_compare_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_int) (ats_ptr_type, ats_int_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_lte_cls_cls) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_add) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst) (ats_ptr_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_bool) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_bool_bool) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_mul_bool_bool) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_bool_bool) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_bool_bool) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_mul_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_div_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ndiv_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_idiv_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lt_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_abs_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_absrel_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sgn_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sgnrel_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_max_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_min_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_maxrel_int_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_minrel_int_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ndivrel_int_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_idivrel_int_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ifint_bool_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ifintrel_bool_int_int_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_of_addr) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_addr_of_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lt_addr_addr) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_addr_addr) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_addr_addr) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_addr_addr) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_addr_addr) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_addr_addr) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_addr_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_addr_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_addr_addr) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_cls_cls) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lterel_cls_cls) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ineg) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bvar) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bool) (ats_bool_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneg) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_beq) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneq) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_badd) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bmul) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ilt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ilte) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_igt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_igte) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ieq) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineq) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineg) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_iadd) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isub) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_imul) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp) (ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make) (ats_ref_type, ats_ptr_type) ;

/* external dynamic terminating constant declarations */
#ifdef _ATS_PROOFCHECK
#endif /* _ATS_PROOFCHECK */

/* assuming abstract types */
/* sum constructor declarations */
/* exn constructor declarations */
/* global dynamic (non-functional) constant declarations */
/* internal function declarations */
static
ats_ptr_type f_identity_0 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_neg_bool_1 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_add_bool_bool_2 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_mul_bool_bool_3 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_eq_bool_bool_4 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_neq_bool_bool_5 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_neg_int_6 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_add_int_int_7 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_sub_int_int_8 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_mul_int_int_9 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_ndiv_int_int_10 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_idiv_int_int_11 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_lt_int_int_12 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_lte_int_int_13 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_gt_int_int_14 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_gte_int_int_15 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_eq_int_int_16 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_neq_int_int_17 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_abs_int_18 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_sgn_int_19 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_max_int_int_20 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_min_int_int_21 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_ifint_bool_int_int_22 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type f_lte_cls_cls_23 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_void_type ins_25 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;

/* partial value template declarations */
/* static temporary variable declarations */
/* external value variable declarations */

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 1727(line=61, offs=1) -- 1857(line=67, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_identity_0 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp0) ;
ATSlocal (ats_ptr_type, tmp1) ;

__ats_lab_f_identity_0:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 1796(line=64, offs=7) -- 1825(line=64, offs=36)") ; }
tmp1 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp1) ;
return (tmp0) ;
} /* end of [f_identity_0] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 1925(line=72, offs=1) -- 2084(line=79, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_neg_bool_1 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp2) ;
ATSlocal (ats_ptr_type, tmp3) ;
ATSlocal (ats_ptr_type, tmp4) ;

__ats_lab_f_neg_bool_1:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 1994(line=75, offs=7) -- 2022(line=75, offs=35)") ; }
tmp3 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp3) ;
tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneg (tmp4) ;
return (tmp2) ;
} /* end of [f_neg_bool_1] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2115(line=82, offs=1) -- 2364(line=91, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_add_bool_bool_2 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
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) ;

__ats_lab_f_add_bool_bool_2:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2190(line=85, offs=7) -- 2219(line=85, offs=36)") ; }
tmp6 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp7 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ;
if (tmp7 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2226(line=86, offs=7) -- 2255(line=86, offs=36)") ; }
tmp8 = ats_caselptrlab_mac(anairiats_sum_0, tmp7, atslab_0) ;
tmp9 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp6) ;
tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp8) ;
tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_badd (tmp9, tmp10) ;
return (tmp5) ;
} /* end of [f_add_bool_bool_2] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2400(line=94, offs=1) -- 2649(line=103, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_mul_bool_bool_3 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp11) ;
ATSlocal (ats_ptr_type, tmp12) ;
ATSlocal (ats_ptr_type, tmp13) ;
ATSlocal (ats_ptr_type, tmp14) ;
ATSlocal (ats_ptr_type, tmp15) ;
ATSlocal (ats_ptr_type, tmp16) ;

__ats_lab_f_mul_bool_bool_3:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2475(line=97, offs=7) -- 2504(line=97, offs=36)") ; }
tmp12 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp13 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ;
if (tmp13 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2511(line=98, offs=7) -- 2540(line=98, offs=36)") ; }
tmp14 = ats_caselptrlab_mac(anairiats_sum_0, tmp13, atslab_0) ;
tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp12) ;
tmp16 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp14) ;
tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bmul (tmp15, tmp16) ;
return (tmp11) ;
} /* end of [f_mul_bool_bool_3] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2685(line=106, offs=1) -- 2932(line=115, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_eq_bool_bool_4 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp17) ;
ATSlocal (ats_ptr_type, tmp18) ;
ATSlocal (ats_ptr_type, tmp19) ;
ATSlocal (ats_ptr_type, tmp20) ;
ATSlocal (ats_ptr_type, tmp21) ;
ATSlocal (ats_ptr_type, tmp22) ;

__ats_lab_f_eq_bool_bool_4:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2759(line=109, offs=7) -- 2788(line=109, offs=36)") ; }
tmp18 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp19 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ;
if (tmp19 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2795(line=110, offs=7) -- 2824(line=110, offs=36)") ; }
tmp20 = ats_caselptrlab_mac(anairiats_sum_0, tmp19, atslab_0) ;
tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp18) ;
tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp20) ;
tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_beq (tmp21, tmp22) ;
return (tmp17) ;
} /* end of [f_eq_bool_bool_4] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 2967(line=118, offs=1) -- 3216(line=127, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_neq_bool_bool_5 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp23) ;
ATSlocal (ats_ptr_type, tmp24) ;
ATSlocal (ats_ptr_type, tmp25) ;
ATSlocal (ats_ptr_type, tmp26) ;
ATSlocal (ats_ptr_type, tmp27) ;
ATSlocal (ats_ptr_type, tmp28) ;

__ats_lab_f_neq_bool_bool_5:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3042(line=121, offs=7) -- 3071(line=121, offs=36)") ; }
tmp24 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp25 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ;
if (tmp25 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3078(line=122, offs=7) -- 3107(line=122, offs=36)") ; }
tmp26 = ats_caselptrlab_mac(anairiats_sum_0, tmp25, atslab_0) ;
tmp27 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp24) ;
tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp26) ;
tmp23 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bneq (tmp27, tmp28) ;
return (tmp23) ;
} /* end of [f_neq_bool_bool_5] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3291(line=132, offs=1) -- 3454(line=139, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_neg_int_6 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp29) ;
ATSlocal (ats_ptr_type, tmp30) ;
ATSlocal (ats_ptr_type, tmp31) ;

__ats_lab_f_neg_int_6:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3360(line=135, offs=7) -- 3389(line=135, offs=36)") ; }
tmp30 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp31 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp30) ;
tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineg (tmp31) ;
return (tmp29) ;
} /* end of [f_neg_int_6] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3484(line=142, offs=1) -- 3731(line=151, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_add_int_int_7 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp32) ;
ATSlocal (ats_ptr_type, tmp33) ;
ATSlocal (ats_ptr_type, tmp34) ;
ATSlocal (ats_ptr_type, tmp35) ;
ATSlocal (ats_ptr_type, tmp36) ;
ATSlocal (ats_ptr_type, tmp37) ;

__ats_lab_f_add_int_int_7:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3557(line=145, offs=7) -- 3586(line=145, offs=36)") ; }
tmp33 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp34 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ;
if (tmp34 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3593(line=146, offs=7) -- 3622(line=146, offs=36)") ; }
tmp35 = ats_caselptrlab_mac(anairiats_sum_0, tmp34, atslab_0) ;
tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp33) ;
tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp35) ;
tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_iadd (tmp36, tmp37) ;
return (tmp32) ;
} /* end of [f_add_int_int_7] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3765(line=154, offs=1) -- 4012(line=163, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_sub_int_int_8 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp38) ;
ATSlocal (ats_ptr_type, tmp39) ;
ATSlocal (ats_ptr_type, tmp40) ;
ATSlocal (ats_ptr_type, tmp41) ;
ATSlocal (ats_ptr_type, tmp42) ;
ATSlocal (ats_ptr_type, tmp43) ;

__ats_lab_f_sub_int_int_8:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3838(line=157, offs=7) -- 3867(line=157, offs=36)") ; }
tmp39 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp40 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ;
if (tmp40 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 3874(line=158, offs=7) -- 3903(line=158, offs=36)") ; }
tmp41 = ats_caselptrlab_mac(anairiats_sum_0, tmp40, atslab_0) ;
tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp39) ;
tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp41) ;
tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_isub (tmp42, tmp43) ;
return (tmp38) ;
} /* end of [f_sub_int_int_8] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 4046(line=166, offs=1) -- 4293(line=175, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_mul_int_int_9 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp44) ;
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) ;

__ats_lab_f_mul_int_int_9:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 4119(line=169, offs=7) -- 4148(line=169, offs=36)") ; }
tmp45 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp46 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ;
if (tmp46 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 4155(line=170, offs=7) -- 4184(line=170, offs=36)") ; }
tmp47 = ats_caselptrlab_mac(anairiats_sum_0, tmp46, atslab_0) ;
tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp45) ;
tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp47) ;
tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_imul (tmp48, tmp49) ;
return (tmp44) ;
} /* end of [f_mul_int_int_9] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 4327(line=178, offs=1) -- 4537(line=186, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_ndiv_int_int_10 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp50) ;
ATSlocal (ats_ptr_type, tmp51) ;
ATSlocal (ats_ptr_type, tmp52) ;

__ats_lab_f_ndiv_int_int_10:
tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ndivrel_int_int_int) ;
tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int, tmp51, arg1) ;
tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp52) ;
return (tmp50) ;
} /* end of [f_ndiv_int_int_10] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 4569(line=188, offs=1) -- 5440(line=219, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_idiv_int_int_11 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp53) ;
ATSlocal (ats_ptr_type, tmp54) ;
ATSlocal (ats_ptr_type, tmp55) ;
ATSlocal (ats_ptr_type, tmp56) ;
ATSlocal (ats_int_type, tmp57) ;
ATSlocal (ats_ptr_type, tmp58) ;
ATSlocal (ats_int_type, tmp59) ;
ATSlocal (ats_ptr_type, tmp60) ;
ATSlocal (ats_ptr_type, tmp61) ;
ATSlocal (ats_bool_type, tmp62) ;
ATSlocal (ats_ptr_type, tmp63) ;
ATSlocal (ats_bool_type, tmp64) ;
ATSlocal (ats_ptr_type, tmp65) ;
ATSlocal (ats_ptr_type, tmp66) ;
ATSlocal (ats_ptr_type, tmp67) ;
ATSlocal (ats_ptr_type, tmp68) ;
ATSlocal (ats_ptr_type, tmp69) ;
ATSlocal (ats_bool_type, tmp70) ;

__ats_lab_f_idiv_int_int_11:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 4661(line=193, offs=7) -- 4690(line=193, offs=36)") ; }
tmp54 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp55 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ;
if (tmp55 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 4697(line=194, offs=7) -- 4726(line=194, offs=36)") ; }
tmp56 = ats_caselptrlab_mac(anairiats_sum_0, tmp55, atslab_0) ;
tmp58 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp56), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (((ats_sum_ptr_type)tmp58)->tag != 0) { goto __ats_lab_1_0 ; }
__ats_lab_0_1:
tmp59 = ats_caselptrlab_mac(anairiats_sum_2, tmp58, atslab_0) ;
tmp57 = atspre_compare_int_int (tmp59, 0) ;
break ;

/* branch: __ats_lab_1 */
__ats_lab_1_0:
if (((ats_sum_ptr_type)tmp58)->tag != 1) { goto __ats_lab_2_0 ; }
__ats_lab_1_1:
tmp60 = ats_caselptrlab_mac(anairiats_sum_3, tmp58, atslab_0) ;
tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__compare_intinf_int (tmp60, 0) ;
break ;

/* branch: __ats_lab_2 */
__ats_lab_2_0:
__ats_lab_2_1:
tmp57 = 0 ;
break ;
} while (0) ;
tmp62 = atspre_neq_int_int (tmp57, 0) ;
if (tmp62) {
tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ndivrel_int_int_int) ;
} else {
tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_idivrel_int_int_int) ;
} /* end of [if] */
tmp64 = atspre_gte_int_int (tmp57, 0) ;
if (tmp64) {
tmp63 = arg1 ;
} else {
tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_ineg (tmp56) ;
tmp67 = (ats_sum_ptr_type)0 ;
tmp65 = ATS_MALLOC(sizeof(anairiats_sum_0)) ;
ats_selptrset_mac(anairiats_sum_0, tmp65, atslab_0, tmp66) ;
ats_selptrset_mac(anairiats_sum_0, tmp65, atslab_1, tmp67) ;
tmp63 = ATS_MALLOC(sizeof(anairiats_sum_0)) ;
ats_selptrset_mac(anairiats_sum_0, tmp63, atslab_0, tmp54) ;
ats_selptrset_mac(anairiats_sum_0, tmp63, atslab_1, tmp65) ;
} /* end of [if] */
tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int, tmp61, tmp63) ;
tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp68) ;
tmp70 = atspre_gte_int_int (tmp57, 0) ;
if (tmp70) {
tmp53 = tmp69 ;
} else {
tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineg (tmp69) ;
} /* end of [if] */
return (tmp53) ;
} /* end of [f_idiv_int_int_11] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 5475(line=222, offs=1) -- 5720(line=231, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_lt_int_int_12 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp71) ;
ATSlocal (ats_ptr_type, tmp72) ;
ATSlocal (ats_ptr_type, tmp73) ;
ATSlocal (ats_ptr_type, tmp74) ;
ATSlocal (ats_ptr_type, tmp75) ;
ATSlocal (ats_ptr_type, tmp76) ;

__ats_lab_f_lt_int_int_12:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 5547(line=225, offs=7) -- 5576(line=225, offs=36)") ; }
tmp72 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp73 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ;
if (tmp73 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 5583(line=226, offs=7) -- 5612(line=226, offs=36)") ; }
tmp74 = ats_caselptrlab_mac(anairiats_sum_0, tmp73, atslab_0) ;
tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp72) ;
tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp74) ;
tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ilt (tmp75, tmp76) ;
return (tmp71) ;
} /* end of [f_lt_int_int_12] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 5753(line=234, offs=1) -- 6000(line=243, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_lte_int_int_13 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp77) ;
ATSlocal (ats_ptr_type, tmp78) ;
ATSlocal (ats_ptr_type, tmp79) ;
ATSlocal (ats_ptr_type, tmp80) ;
ATSlocal (ats_ptr_type, tmp81) ;
ATSlocal (ats_ptr_type, tmp82) ;

__ats_lab_f_lte_int_int_13:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 5826(line=237, offs=7) -- 5855(line=237, offs=36)") ; }
tmp78 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp79 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ;
if (tmp79 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 5862(line=238, offs=7) -- 5891(line=238, offs=36)") ; }
tmp80 = ats_caselptrlab_mac(anairiats_sum_0, tmp79, atslab_0) ;
tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp78) ;
tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp80) ;
tmp77 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ilte (tmp81, tmp82) ;
return (tmp77) ;
} /* end of [f_lte_int_int_13] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6034(line=246, offs=1) -- 6279(line=255, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_gt_int_int_14 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp83) ;
ATSlocal (ats_ptr_type, tmp84) ;
ATSlocal (ats_ptr_type, tmp85) ;
ATSlocal (ats_ptr_type, tmp86) ;
ATSlocal (ats_ptr_type, tmp87) ;
ATSlocal (ats_ptr_type, tmp88) ;

__ats_lab_f_gt_int_int_14:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6106(line=249, offs=7) -- 6135(line=249, offs=36)") ; }
tmp84 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp85 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ;
if (tmp85 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6142(line=250, offs=7) -- 6171(line=250, offs=36)") ; }
tmp86 = ats_caselptrlab_mac(anairiats_sum_0, tmp85, atslab_0) ;
tmp87 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp84) ;
tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp86) ;
tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_igt (tmp87, tmp88) ;
return (tmp83) ;
} /* end of [f_gt_int_int_14] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6312(line=258, offs=1) -- 6559(line=267, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_gte_int_int_15 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp89) ;
ATSlocal (ats_ptr_type, tmp90) ;
ATSlocal (ats_ptr_type, tmp91) ;
ATSlocal (ats_ptr_type, tmp92) ;
ATSlocal (ats_ptr_type, tmp93) ;
ATSlocal (ats_ptr_type, tmp94) ;

__ats_lab_f_gte_int_int_15:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6385(line=261, offs=7) -- 6414(line=261, offs=36)") ; }
tmp90 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp91 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ;
if (tmp91 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6421(line=262, offs=7) -- 6450(line=262, offs=36)") ; }
tmp92 = ats_caselptrlab_mac(anairiats_sum_0, tmp91, atslab_0) ;
tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp90) ;
tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp92) ;
tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_igte (tmp93, tmp94) ;
return (tmp89) ;
} /* end of [f_gte_int_int_15] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6593(line=270, offs=1) -- 6838(line=279, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_eq_int_int_16 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
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) ;

__ats_lab_f_eq_int_int_16:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6665(line=273, offs=7) -- 6694(line=273, offs=36)") ; }
tmp96 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp97 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ;
if (tmp97 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6701(line=274, offs=7) -- 6730(line=274, offs=36)") ; }
tmp98 = ats_caselptrlab_mac(anairiats_sum_0, tmp97, atslab_0) ;
tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp96) ;
tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp98) ;
tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ieq (tmp99, tmp100) ;
return (tmp95) ;
} /* end of [f_eq_int_int_16] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6871(line=282, offs=1) -- 7118(line=291, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_neq_int_int_17 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp101) ;
ATSlocal (ats_ptr_type, tmp102) ;
ATSlocal (ats_ptr_type, tmp103) ;
ATSlocal (ats_ptr_type, tmp104) ;
ATSlocal (ats_ptr_type, tmp105) ;
ATSlocal (ats_ptr_type, tmp106) ;

__ats_lab_f_neq_int_int_17:
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6944(line=285, offs=7) -- 6973(line=285, offs=36)") ; }
tmp102 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp103 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ;
if (tmp103 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 6980(line=286, offs=7) -- 7009(line=286, offs=36)") ; }
tmp104 = ats_caselptrlab_mac(anairiats_sum_0, tmp103, atslab_0) ;
tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp102) ;
tmp106 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg0, tmp104) ;
tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_ineq (tmp105, tmp106) ;
return (tmp101) ;
} /* end of [f_neq_int_int_17] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 7152(line=293, offs=5) -- 7352(line=300, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_abs_int_18 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp107) ;
ATSlocal (ats_ptr_type, tmp108) ;
ATSlocal (ats_ptr_type, tmp109) ;

__ats_lab_f_abs_int_18:
tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_absrel_int_int) ;
tmp109 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int, tmp108, arg1) ;
tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp109) ;
return (tmp107) ;
} /* end of [f_abs_int_18] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 7382(line=302, offs=5) -- 7582(line=309, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_sgn_int_19 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp110) ;
ATSlocal (ats_ptr_type, tmp111) ;
ATSlocal (ats_ptr_type, tmp112) ;

__ats_lab_f_sgn_int_19:
tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sgnrel_int_int) ;
tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int, tmp111, arg1) ;
tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp112) ;
return (tmp110) ;
} /* end of [f_sgn_int_19] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 7612(line=312, offs=1) -- 7820(line=319, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_max_int_int_20 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp113) ;
ATSlocal (ats_ptr_type, tmp114) ;
ATSlocal (ats_ptr_type, tmp115) ;

__ats_lab_f_max_int_int_20:
tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_maxrel_int_int_int) ;
tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int, tmp114, arg1) ;
tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp115) ;
return (tmp113) ;
} /* end of [f_max_int_int_20] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 7854(line=322, offs=1) -- 8062(line=329, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_min_int_int_21 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp116) ;
ATSlocal (ats_ptr_type, tmp117) ;
ATSlocal (ats_ptr_type, tmp118) ;

__ats_lab_f_min_int_int_21:
tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_minrel_int_int_int) ;
tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int, tmp117, arg1) ;
tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp118) ;
return (tmp116) ;
} /* end of [f_min_int_int_21] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 8096(line=332, offs=1) -- 8318(line=340, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_ifint_bool_int_int_22 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp119) ;
ATSlocal (ats_ptr_type, tmp120) ;
ATSlocal (ats_ptr_type, tmp121) ;

__ats_lab_f_ifint_bool_int_int_22:
tmp120 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ifintrel_bool_int_int_int) ;
tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_int, tmp120, arg1) ;
tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_var (tmp121) ;
return (tmp119) ;
} /* end of [f_ifint_bool_int_int_22] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 8771(line=362, offs=1) -- 9559(line=401, offs=4)
*/
ATSstaticdec()
ats_ptr_type
f_lte_cls_cls_23 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
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) ;
ATSlocal (ats_ptr_type, tmp127) ;
ATSlocal (ats_ptr_type, tmp128) ;
ATSlocal (ats_ptr_type, tmp129) ;
ATSlocal (ats_ptr_type, tmp130) ;
ATSlocal (ats_ptr_type, tmp131) ;
ATSlocal (ats_ptr_type, tmp132) ;
ATSlocal (ats_bool_type, tmp133) ;
ATSlocal (ats_ptr_type, tmp134) ;
ATSlocal (ats_ptr_type, tmp135) ;

__ats_lab_f_lte_cls_cls_23:
tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_cls_cls) ;
if (arg1 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 8955(line=373, offs=5) -- 8986(line=373, offs=36)") ; }
tmp124 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_0) ;
tmp125 = ats_caselptrlab_mac(anairiats_sum_0, arg1, atslab_1) ;
if (tmp125 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_constraint3_init.dats: 8991(line=374, offs=5) -- 9022(line=374, offs=36)") ; }
tmp126 = ats_caselptrlab_mac(anairiats_sum_0, tmp125, atslab_0) ;
tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp124) ;
tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp126) ;
tmp129 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp127), atslab_s2exp_node) ;
tmp130 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp128), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_3 */
__ats_lab_3_0:
if (((ats_sum_ptr_type)tmp129)->tag != 4) { goto __ats_lab_4_0 ; }
__ats_lab_3_1:
if (((ats_sum_ptr_type)tmp130)->tag != 4) { goto __ats_lab_4_1 ; }
__ats_lab_3_2:
tmp131 = ats_caselptrlab_mac(anairiats_sum_3, tmp129, atslab_0) ;
tmp132 = ats_caselptrlab_mac(anairiats_sum_3, tmp130, atslab_0) ;
tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_lte_cls_cls (tmp131, tmp132) ;
tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bool (tmp133) ;
break ;

/* branch: __ats_lab_4 */
__ats_lab_4_0:
__ats_lab_4_1:
__ats_lab_4_2:
tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lterel_cls_cls) ;
tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_replace_cstapp (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_bool, tmp134, arg1) ;
tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_bvar (tmp135) ;
break ;
} while (0) ;
return (tmp122) ;
} /* end of [f_lte_cls_cls_23] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 9766(line=414, offs=5) -- 10012(line=423, offs=4)
*/
ATSstaticdec()
ats_void_type
ins_25 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp137) ;
ATSlocal (ats_ptr_type, tmp138) ;
ATSlocal (ats_ptr_type, tmp139) ;
ATSlocal (ats_ptr_type, tmp140) ;

__ats_lab_ins_25:
tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (arg1) ;
tmp139 = ats_castfn_mac(ats_ptr_type, ats_ptrget_mac(ats_ptr_type, arg0)) ;
tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cstmap_add (tmp139, tmp138, arg2) ;
ats_ptrget_mac(ats_ptr_type, arg0) = ats_castfn_mac(ats_ptr_type, tmp140) ;
return /* (tmp137) */ ;
} /* end of [ins_25] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_init.dats: 9692(line=410, offs=28) -- 12162(line=482, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__constraint3_initialize_map (ats_ref_type arg0) {
/* local vardec */
// ATSlocal_void (tmp136) ;
// ATSlocal_void (tmp141) ;
// ATSlocal_void (tmp142) ;
// ATSlocal_void (tmp143) ;
// ATSlocal_void (tmp144) ;
// ATSlocal_void (tmp145) ;
// ATSlocal_void (tmp146) ;
// ATSlocal_void (tmp147) ;
// ATSlocal_void (tmp148) ;
// ATSlocal_void (tmp149) ;
// ATSlocal_void (tmp150) ;
// ATSlocal_void (tmp151) ;
// ATSlocal_void (tmp152) ;
// ATSlocal_void (tmp153) ;
// ATSlocal_void (tmp154) ;
// ATSlocal_void (tmp155) ;
// ATSlocal_void (tmp156) ;
// ATSlocal_void (tmp157) ;
// ATSlocal_void (tmp158) ;
// ATSlocal_void (tmp159) ;
// ATSlocal_void (tmp160) ;
// ATSlocal_void (tmp161) ;
// ATSlocal_void (tmp162) ;
// ATSlocal_void (tmp163) ;
// ATSlocal_void (tmp164) ;
// ATSlocal_void (tmp165) ;
// ATSlocal_void (tmp166) ;
// ATSlocal_void (tmp167) ;
// ATSlocal_void (tmp168) ;
// ATSlocal_void (tmp169) ;
// ATSlocal_void (tmp170) ;
// ATSlocal_void (tmp171) ;
// ATSlocal_void (tmp172) ;
// ATSlocal_void (tmp173) ;
// ATSlocal_void (tmp174) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__constraint3_initialize_map:
/* tmp141 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_bool, &f_neg_bool_1) ;
/* tmp142 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_bool_bool, &f_add_bool_bool_2) ;
/* tmp143 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_mul_bool_bool, &f_mul_bool_bool_3) ;
/* tmp144 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_bool_bool, &f_eq_bool_bool_4) ;
/* tmp145 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_bool_bool, &f_neq_bool_bool_5) ;
/* tmp146 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neg_int, &f_neg_int_6) ;
/* tmp147 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_int_int, &f_add_int_int_7) ;
/* tmp148 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_int_int, &f_sub_int_int_8) ;
/* tmp149 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_mul_int_int, &f_mul_int_int_9) ;
/* tmp150 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_div_int_int, &f_idiv_int_int_11) ;
/* tmp151 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ndiv_int_int, &f_ndiv_int_int_10) ;
/* tmp152 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_idiv_int_int, &f_idiv_int_int_11) ;
/* tmp153 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lt_int_int, &f_lt_int_int_12) ;
/* tmp154 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_int_int, &f_lte_int_int_13) ;
/* tmp155 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_int_int, &f_gt_int_int_14) ;
/* tmp156 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_int_int, &f_gte_int_int_15) ;
/* tmp157 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_int_int, &f_eq_int_int_16) ;
/* tmp158 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_int_int, &f_neq_int_int_17) ;
/* tmp159 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_abs_int, &f_abs_int_18) ;
/* tmp160 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sgn_int, &f_sgn_int_19) ;
/* tmp161 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_max_int_int, &f_max_int_int_20) ;
/* tmp162 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_min_int_int, &f_min_int_int_21) ;
/* tmp163 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ifint_bool_int_int, &f_ifint_bool_int_int_22) ;
/* tmp164 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_int_of_addr, &f_identity_0) ;
/* tmp165 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_addr_of_int, &f_identity_0) ;
/* tmp166 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_add_addr_int, &f_add_int_int_7) ;
/* tmp167 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_addr_int, &f_sub_int_int_8) ;
/* tmp168 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_sub_addr_addr, &f_sub_int_int_8) ;
/* tmp169 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lt_addr_addr, &f_lt_int_int_12) ;
/* tmp170 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_addr_addr, &f_lte_int_int_13) ;
/* tmp171 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gt_addr_addr, &f_gt_int_int_14) ;
/* tmp172 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_gte_addr_addr, &f_gte_int_int_15) ;
/* tmp173 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_eq_addr_addr, &f_eq_int_int_16) ;
/* tmp174 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_neq_addr_addr, &f_neq_int_int_17) ;
/* tmp136 = */ ins_25 (arg0, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_lte_cls_cls, &f_lte_cls_cls_23) ;
return /* (tmp136) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__constraint3_initialize_map] */

/* 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_intinf_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_stacst2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__staload_flag = 1 ;

// ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload () ;

return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_init_2edats__staload () ;

#ifdef _ATS_PROOFCHECK
#endif /* _ATS_PROOFCHECK */

/* marking static variables for GC */

/* marking external values for GC */

/* code for dynamic loading */
return ;
} /* end of [dynload function] */

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

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

/* end of [pats_constraint3_init_dats.c] */
