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

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

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

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_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"
/* external codes at top */
/* type definitions */
typedef
struct {
ats_ptr_type atslab_3 ;
ats_ptr_type atslab_4 ;
} anairiats_rec_0 ;

typedef
struct {
ats_ptr_type atslab_hisexp_name ;
ats_ptr_type atslab_hisexp_node ;
} anairiats_rec_1 ;

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

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

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

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

typedef struct {
ats_ptr_type atslab_0 ;
ats_ptr_type atslab_1 ;
ats_ptr_type atslab_2 ;
} anairiats_sum_6 ;

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

typedef struct {
ats_int_type atslab_0 ;
} anairiats_sum_8 ;

typedef struct {
int tag ;
ats_int_type atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_9 ;

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

typedef struct {
ats_ptr_type atslab_0 ;
} anairiats_sum_11 ;

/* 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_vt_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOfun_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__FUNCLOclo_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HITNAM_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSLABELED_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEcst_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyabs_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEapp_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEextype_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEfun_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSErefarg_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyarr_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyrec_8) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyrecsin_9) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtysum_10) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyvar_11) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtyclo_12) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEvararg_13) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEs2exp_14) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEs2zexp_15) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, atspre_add_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_int_type, atspre_isucc) (ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_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_mul2_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ;
ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed_fun) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_flted) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_fltext) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_find) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_subst_flag) (ats_ptr_type, ats_ptr_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atsvoid_t0ype) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_int) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_bool) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_size) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tybox) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_noret) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyabs) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_app) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_extype) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_refarg) (ats_int_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyarr) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrecsin) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tysum) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_vararg) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2exp) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2zexp) (ats_ptr_type) ;

/* external dynamic terminating constant declarations */
#ifdef _ATS_PROOFCHECK
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
#endif /* _ATS_PROOFCHECK */

/* assuming abstract types */
/* sum constructor declarations */
/* exn constructor declarations */
/* global dynamic (non-functional) constant declarations */
ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tybox) ;
ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr) ;
ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_clotyp) ;
ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_funptr) ;
ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cloptr) ;
ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_arrptr) ;
ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datconptr) ;
ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datcontyp) ;
ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_exnconptr) ;
ATSglobal(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_undefined) ;

/* internal function declarations */
static
ats_bool_type s2cst_is_void_3 (ats_ptr_type arg0) ;
static
ats_bool_type s2exp_is_void_4 (ats_ptr_type arg0) ;
static
ats_ptr_type hisexp_make_node_16 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type list_is_sing_01298_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type aux_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_ptr_type auxlab_37 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_ptr_type auxlst_38 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_ptr_type auxlablst_39 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_ptr_type auxlstlst_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;

/* partial value template declarations */
/* static temporary variable declarations */
ATSstatic (ats_ptr_type, statmp0) ;
ATSstatic (ats_ptr_type, statmp1) ;
ATSstatic (ats_ptr_type, statmp2) ;
ATSstatic (ats_ptr_type, statmp3) ;
ATSstatic (ats_ptr_type, statmp4) ;
ATSstatic (ats_ptr_type, statmp5) ;
ATSstatic (ats_ptr_type, statmp6) ;
ATSstatic (ats_ptr_type, statmp7) ;
ATSstatic (ats_ptr_type, statmp8) ;
ATSstatic (ats_ptr_type, statmp9) ;
ATSstatic (ats_ptr_type, statmp10) ;
ATSstatic (ats_ptr_type, statmp11) ;
ATSstatic (ats_ptr_type, statmp12) ;
ATSstatic (ats_ptr_type, statmp13) ;
ATSstatic (ats_ptr_type, statmp14) ;
ATSstatic (ats_ptr_type, statmp15) ;
ATSstatic (ats_ptr_type, statmp16) ;
ATSstatic (ats_ptr_type, statmp17) ;
ATSstatic (ats_ptr_type, statmp18) ;
ATSstatic (ats_ptr_type, statmp19) ;
ATSstatic (ats_ptr_type, statmp20) ;
ATSstatic (ats_ptr_type, statmp21) ;
ATSstatic (ats_ptr_type, statmp22) ;
ATSstatic (ats_ptr_type, statmp60) ;
ATSstatic (ats_ptr_type, statmp61) ;
ATSstatic (ats_ptr_type, statmp62) ;
ATSstatic (ats_ptr_type, statmp63) ;
ATSstatic (ats_ptr_type, statmp64) ;
ATSstatic (ats_ptr_type, statmp65) ;
ATSstatic (ats_ptr_type, statmp66) ;
ATSstatic (ats_ptr_type, statmp67) ;
ATSstatic (ats_ptr_type, statmp68) ;
ATSstatic (ats_ptr_type, statmp69) ;
ATSstatic (ats_ptr_type, statmp70) ;
ATSstatic (ats_ptr_type, statmp71) ;
ATSstatic (ats_ptr_type, statmp72) ;
ATSstatic (ats_ptr_type, statmp73) ;
ATSstatic (ats_ptr_type, statmp74) ;
ATSstatic (ats_ptr_type, statmp75) ;
ATSstatic (ats_ptr_type, statmp76) ;
ATSstatic (ats_ptr_type, statmp77) ;
ATSstatic (ats_ptr_type, statmp78) ;
ATSstatic (ats_ptr_type, statmp79) ;
ATSstatic (ats_ptr_type, statmp80) ;
ATSstatic (ats_ptr_type, statmp81) ;

/* external value variable declarations */

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 3692(line=160, offs=3) -- 3910(line=173, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_boxknd (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp23) ;
ATSlocal (ats_ptr_type, tmp24) ;
ATSlocal (ats_ptr_type, tmp25) ;
ATSlocal (ats_bool_type, tmp26) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_boxknd:
tmp24 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ;
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (((ats_sum_ptr_type)tmp24)->tag != 8) { goto __ats_lab_1_0 ; }
__ats_lab_0_1:
tmp25 = ats_caselptrlab_mac(anairiats_sum_3, tmp24, atslab_0) ;
tmp26 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_boxed (tmp25) ;
if (tmp26) {
tmp23 = 1 ;
} else {
tmp23 = 0 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_1 */
__ats_lab_1_0:
if (((ats_sum_ptr_type)tmp24)->tag != 10) { goto __ats_lab_2_0 ; }
__ats_lab_1_1:
tmp23 = 0 ;
break ;

/* branch: __ats_lab_2 */
__ats_lab_2_0:
__ats_lab_2_1:
tmp23 = -1 ;
break ;
} while (0) ;
return (tmp23) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_boxknd] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 3972(line=177, offs=3) -- 4141(line=188, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_extknd (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp27) ;
ATSlocal (ats_ptr_type, tmp28) ;
ATSlocal (ats_ptr_type, tmp29) ;
ATSlocal (ats_bool_type, tmp30) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_extknd:
tmp28 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ;
do {
/* branch: __ats_lab_3 */
__ats_lab_3_0:
if (((ats_sum_ptr_type)tmp28)->tag != 8) { goto __ats_lab_4_0 ; }
__ats_lab_3_1:
tmp29 = ats_caselptrlab_mac(anairiats_sum_3, tmp28, atslab_0) ;
tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_fltext (tmp29) ;
if (tmp30) {
tmp27 = 1 ;
} else {
tmp27 = 0 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_4 */
__ats_lab_4_0:
__ats_lab_4_1:
tmp27 = -1 ;
break ;
} while (0) ;
return (tmp27) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_get_extknd] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 4219(line=193, offs=16) -- 4293(line=197, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_boxed (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp31) ;
ATSlocal (ats_ptr_type, tmp32) ;
ATSlocal (ats_int_type, tmp33) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_boxed:
tmp32 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_name) ;
// 
tmp33 = ats_caselptrlab_mac(anairiats_sum_2, tmp32, atslab_0) ;
tmp31 = atspre_gt_int_int (tmp33, 0) ;
return (tmp31) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_boxed] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 4357(line=204, offs=1) -- 4447(line=206, offs=54)
*/
ATSstaticdec()
ats_bool_type
s2cst_is_void_3 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp34) ;

__ats_lab_s2cst_is_void_3:
tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atsvoid_t0ype, arg0) ;
return (tmp34) ;
} /* end of [s2cst_is_void_3] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 4455(line=209, offs=1) -- 4789(line=225, offs=2)
*/
ATSstaticdec()
ats_bool_type
s2exp_is_void_4 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp35) ;
ATSlocal (ats_ptr_type, tmp36) ;

__ats_lab_s2exp_is_void_4:
tmp36 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, arg0), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_5 */
__ats_lab_5_0:
__ats_lab_5_1:
tmp35 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_exp (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atsvoid_t0ype, arg0) ;
break ;
} while (0) ;
return (tmp35) ;
} /* end of [s2exp_is_void_4] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 4842(line=231, offs=3) -- 5142(line=249, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp37) ;
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) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void:
tmp38 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ;
do {
/* branch: __ats_lab_6 */
__ats_lab_6_0:
if (((ats_sum_ptr_type)tmp38)->tag != 0) { goto __ats_lab_7_0 ; }
__ats_lab_6_1:
tmp39 = ats_caselptrlab_mac(anairiats_sum_5, tmp38, atslab_0) ;
tmp37 = s2cst_is_void_3 (tmp39) ;
break ;

/* branch: __ats_lab_7 */
__ats_lab_7_0:
if (((ats_sum_ptr_type)tmp38)->tag != 9) { goto __ats_lab_8_0 ; }
__ats_lab_7_1:
tmp40 = ats_caselptrlab_mac(anairiats_sum_5, tmp38, atslab_0) ;

tmp41 = ats_caselptrlab_mac(anairiats_sum_6, tmp40, atslab_2) ;
arg0 = tmp41 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void ; // tail call
break ;

/* branch: __ats_lab_8 */
__ats_lab_8_0:
if (((ats_sum_ptr_type)tmp38)->tag != 14) { goto __ats_lab_9_0 ; }
__ats_lab_8_1:
tmp42 = ats_caselptrlab_mac(anairiats_sum_5, tmp38, atslab_0) ;
tmp37 = s2exp_is_void_4 (tmp42) ;
break ;

/* branch: __ats_lab_9 */
__ats_lab_9_0:
__ats_lab_9_1:
tmp37 = ats_false_bool ;
break ;
} while (0) ;
return (tmp37) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 5246(line=257, offs=3) -- 5404(line=269, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun_is_void (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp43) ;
ATSlocal (ats_ptr_type, tmp44) ;
ATSlocal (ats_ptr_type, tmp45) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun_is_void:
tmp44 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ;
do {
/* branch: __ats_lab_10 */
__ats_lab_10_0:
if (((ats_sum_ptr_type)tmp44)->tag != 5) { goto __ats_lab_11_0 ; }
__ats_lab_10_1:
tmp45 = ats_caselptrlab_mac(anairiats_sum_7, tmp44, atslab_2) ;
tmp43 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_void (tmp45) ;
break ;

/* branch: __ats_lab_11 */
__ats_lab_11_0:
__ats_lab_11_1:
tmp43 = ats_false_bool ;
break ;
} while (0) ;
return (tmp43) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun_is_void] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 5486(line=275, offs=3) -- 5813(line=292, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_noret (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp46) ;
ATSlocal (ats_ptr_type, tmp47) ;
ATSlocal (ats_ptr_type, tmp48) ;
ATSlocal (ats_ptr_type, tmp49) ;
ATSlocal (ats_ptr_type, tmp50) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_noret:
tmp47 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ;
do {
/* branch: __ats_lab_12 */
__ats_lab_12_0:
if (((ats_sum_ptr_type)tmp47)->tag != 0) { goto __ats_lab_13_0 ; }
__ats_lab_12_1:
tmp48 = ats_caselptrlab_mac(anairiats_sum_5, tmp47, atslab_0) ;
tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_equ_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atsvoid_t0ype, tmp48) ;
break ;

/* branch: __ats_lab_13 */
__ats_lab_13_0:
if (((ats_sum_ptr_type)tmp47)->tag != 11) { goto __ats_lab_14_0 ; }
__ats_lab_13_1:
tmp46 = ats_true_bool ;
break ;

/* branch: __ats_lab_14 */
__ats_lab_14_0:
if (((ats_sum_ptr_type)tmp47)->tag != 9) { goto __ats_lab_15_0 ; }
__ats_lab_14_1:
tmp49 = ats_caselptrlab_mac(anairiats_sum_5, tmp47, atslab_0) ;

tmp50 = ats_caselptrlab_mac(anairiats_sum_6, tmp49, atslab_2) ;
arg0 = tmp50 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_noret ; // tail call
break ;

/* branch: __ats_lab_15 */
__ats_lab_15_0:
__ats_lab_15_1:
tmp46 = ats_false_bool ;
break ;
} while (0) ;
return (tmp46) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_noret] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 5875(line=296, offs=3) -- 6029(line=306, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun_is_noret (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp51) ;
ATSlocal (ats_ptr_type, tmp52) ;
ATSlocal (ats_ptr_type, tmp53) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun_is_noret:
tmp52 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ;
do {
/* branch: __ats_lab_16 */
__ats_lab_16_0:
if (((ats_sum_ptr_type)tmp52)->tag != 5) { goto __ats_lab_17_0 ; }
__ats_lab_16_1:
tmp53 = ats_caselptrlab_mac(anairiats_sum_7, tmp52, atslab_2) ;
tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_noret (tmp53) ;
break ;

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

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 6111(line=312, offs=3) -- 6190(line=315, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_tyarr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp54) ;
ATSlocal (ats_ptr_type, tmp55) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_tyarr:
tmp55 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ;
do {
/* branch: __ats_lab_18 */
__ats_lab_18_0:
if (((ats_sum_ptr_type)tmp55)->tag != 7) { goto __ats_lab_19_0 ; }
__ats_lab_18_1:
tmp54 = ats_true_bool ;
break ;

/* branch: __ats_lab_19 */
__ats_lab_19_0:
__ats_lab_19_1:
tmp54 = ats_false_bool ;
break ;
} while (0) ;
return (tmp54) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_tyarr] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 6251(line=319, offs=3) -- 6333(line=322, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_tyrecsin (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp56) ;
ATSlocal (ats_ptr_type, tmp57) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_is_tyrecsin:
tmp57 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hisexp_node) ;
do {
/* branch: __ats_lab_20 */
__ats_lab_20_0:
if (((ats_sum_ptr_type)tmp57)->tag != 9) { goto __ats_lab_21_0 ; }
__ats_lab_20_1:
tmp56 = ats_true_bool ;
break ;

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

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 6415(line=327, offs=19) -- 6477(line=328, offs=54)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__labhisexp_get_elt (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp58) ;
ATSlocal (ats_ptr_type, tmp59) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__labhisexp_get_elt:

tmp59 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_2) ;
tmp58 = tmp59 ;
return (tmp58) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__labhisexp_get_elt] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 8023(line=411, offs=18) -- 8161(line=418, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_int_t0ype () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp82) ;
ATSlocal (ats_ptr_type, tmp83) ;
ATSlocal (ats_ptr_type, tmp84) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_int_t0ype:
tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_int) ;
tmp84 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp84)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_5, tmp84, atslab_0, tmp83) ;
tmp82 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, tmp82, atslab_hisexp_name, statmp10) ;
ats_selptrset_mac(anairiats_rec_1, tmp82, atslab_hisexp_node, tmp84) ;

return (tmp82) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_int_t0ype] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 8241(line=423, offs=19) -- 8380(line=430, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_bool_t0ype () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp85) ;
ATSlocal (ats_ptr_type, tmp86) ;
ATSlocal (ats_ptr_type, tmp87) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_bool_t0ype:
tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_bool) ;
tmp87 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp87)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_5, tmp87, atslab_0, tmp86) ;
tmp85 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, tmp85, atslab_hisexp_name, statmp10) ;
ats_selptrset_mac(anairiats_rec_1, tmp85, atslab_hisexp_node, tmp87) ;

return (tmp85) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_bool_t0ype] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 8461(line=435, offs=19) -- 8600(line=442, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_size_t0ype () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp88) ;
ATSlocal (ats_ptr_type, tmp89) ;
ATSlocal (ats_ptr_type, tmp90) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_size_t0ype:
tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atstype_size) ;
tmp90 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp90)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_5, tmp90, atslab_0, tmp89) ;
tmp88 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, tmp88, atslab_hisexp_name, statmp10) ;
ats_selptrset_mac(anairiats_rec_1, tmp88, atslab_hisexp_node, tmp90) ;

return (tmp88) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_size_t0ype] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 8982(line=462, offs=19) -- 9122(line=469, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_void_t0ype () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp91) ;
ATSlocal (ats_ptr_type, tmp92) ;
ATSlocal (ats_ptr_type, tmp93) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_void_t0ype:
tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_atsvoid_t0ype) ;
tmp93 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp93)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_5, tmp93, atslab_0, tmp92) ;
tmp91 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, tmp91, atslab_hisexp_name, statmp10) ;
ats_selptrset_mac(anairiats_rec_1, tmp91, atslab_hisexp_node, tmp93) ;

return (tmp91) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_void_t0ype] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 9179(line=474, offs=1) -- 9286(line=479, offs=2)
*/
ATSstaticdec()
ats_ptr_type
hisexp_make_node_16 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp94) ;

__ats_lab_hisexp_make_node_16:
tmp94 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, tmp94, atslab_hisexp_name, arg0) ;
ats_selptrset_mac(anairiats_rec_1, tmp94, atslab_hisexp_node, arg1) ;

return (tmp94) ;
} /* end of [hisexp_make_node_16] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 9365(line=484, offs=13) -- 9418(line=485, offs=46)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyabs (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp95) ;
ATSlocal (ats_ptr_type, tmp96) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyabs:
tmp96 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp96)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_5, tmp96, atslab_0, arg0) ;
tmp95 = hisexp_make_node_16 (statmp10, tmp96) ;
return (tmp95) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyabs] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 9471(line=491, offs=3) -- 9673(line=509, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_make_srt (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp97) ;
ATSlocal (ats_bool_type, tmp98) ;
ATSlocal (ats_ptr_type, tmp99) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_make_srt:
tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed_fun (arg0) ;
if (tmp98) {
tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tybox ;
} else {
tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("atstype_unboxed")) ;
tmp97 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyabs (tmp99) ;
} /* end of [if] */
return (tmp97) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_make_srt] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 9734(line=513, offs=3) -- 9873(line=521, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_make_srtsym (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp100) ;
ATSlocal (ats_bool_type, tmp101) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_make_srtsym:
tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed_fun (arg0) ;
if (tmp101) {
tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tybox ;
} else {
tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyabs (arg1) ;
} /* end of [if] */
return (tmp100) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_make_srtsym] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 9950(line=526, offs=12) -- 10005(line=527, offs=48)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cst (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp102) ;
ATSlocal (ats_ptr_type, tmp103) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cst:
tmp103 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp103)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_5, tmp103, atslab_0, arg0) ;
tmp102 = hisexp_make_node_16 (statmp10, tmp103) ;
return (tmp102) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cst] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 10051(line=533, offs=1) -- 10361(line=550, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp104) ;
ATSlocal (ats_ptr_type, tmp105) ;
ATSlocal (ats_int_type, tmp106) ;
ATSlocal (ats_bool_type, tmp107) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun:
tmp105 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp105)->tag = 5 ;
ats_selptrset_mac(anairiats_sum_7, tmp105, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_7, tmp105, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_7, tmp105, atslab_2, arg2) ;
do {
/* branch: __ats_lab_22 */
__ats_lab_22_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; }
__ats_lab_22_1:
tmp104 = hisexp_make_node_16 (statmp3, tmp105) ;
break ;

/* branch: __ats_lab_23 */
__ats_lab_23_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_23_1:
tmp106 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_0) ;
tmp107 = atspre_eq_int_int (tmp106, 0) ;
if (tmp107) {
tmp104 = hisexp_make_node_16 (statmp5, tmp105) ;
} else {
tmp104 = hisexp_make_node_16 (statmp4, tmp105) ;
} /* end of [if] */
break ;
} while (0) ;
return (tmp104) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 10430(line=556, offs=3) -- 10499(line=557, offs=55)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_app (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp108) ;
ATSlocal (ats_ptr_type, tmp109) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_app:
tmp109 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
((ats_sum_ptr_type)tmp109)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_3, tmp109, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_3, tmp109, atslab_1, arg1) ;
tmp108 = hisexp_make_node_16 (statmp12, tmp109) ;
return (tmp108) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_app] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 10571(line=564, offs=3) -- 10692(line=568, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_extype (ats_ptr_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__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_extype:
tmp111 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp111, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_2, tmp111, atslab_1, 1) ;
ats_selptrset_mac(anairiats_sum_2, tmp111, atslab_2, arg0) ;
tmp112 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
((ats_sum_ptr_type)tmp112)->tag = 4 ;
ats_selptrset_mac(anairiats_sum_3, tmp112, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_3, tmp112, atslab_1, arg1) ;
tmp110 = hisexp_make_node_16 (tmp111, tmp112) ;
return (tmp110) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_extype] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 10767(line=574, offs=3) -- 10915(line=581, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_refarg (ats_int_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__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_refarg:
tmp114 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp114, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_2, tmp114, atslab_1, 0) ;
ats_selptrset_mac(anairiats_sum_2, tmp114, atslab_2, ATSstrcst("postiats_refarg")) ;
tmp115 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp115)->tag = 6 ;
ats_selptrset_mac(anairiats_sum_9, tmp115, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_9, tmp115, atslab_1, arg1) ;
tmp113 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, tmp113, atslab_hisexp_name, tmp114) ;
ats_selptrset_mac(anairiats_rec_1, tmp113, atslab_hisexp_node, tmp115) ;

return (tmp113) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_refarg] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 10987(line=586, offs=14) -- 11054(line=587, offs=55)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyarr (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp116) ;
ATSlocal (ats_ptr_type, tmp117) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyarr:
tmp117 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
((ats_sum_ptr_type)tmp117)->tag = 7 ;
ats_selptrset_mac(anairiats_sum_3, tmp117, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_3, tmp117, atslab_1, arg1) ;
tmp116 = hisexp_make_node_16 (statmp14, tmp117) ;
return (tmp116) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyarr] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 11125(line=593, offs=14) -- 11196(line=594, offs=57)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp118) ;
ATSlocal (ats_ptr_type, tmp119) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec:
tmp119 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
((ats_sum_ptr_type)tmp119)->tag = 8 ;
ats_selptrset_mac(anairiats_sum_3, tmp119, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_3, tmp119, atslab_1, arg1) ;
tmp118 = hisexp_make_node_16 (statmp15, tmp119) ;
return (tmp118) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 11249(line=598, offs=17) -- 11314(line=599, offs=57)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrecsin (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp120) ;
ATSlocal (ats_ptr_type, tmp121) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrecsin:
tmp121 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp121)->tag = 9 ;
ats_selptrset_mac(anairiats_sum_5, tmp121, atslab_0, arg0) ;
tmp120 = hisexp_make_node_16 (statmp16, tmp121) ;
return (tmp120) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrecsin] */

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

__ats_lab_list_is_sing_01298_ats_ptr_type:
do {
/* branch: __ats_lab_24 */
__ats_lab_24_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; }
tmp126 = ats_caselptrlab_mac(anairiats_sum_10, arg0, atslab_1) ;
if (tmp126 != (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; }
__ats_lab_24_1:
tmp125 = ats_true_bool ;
break ;

/* branch: __ats_lab_25 */
__ats_lab_25_0:
__ats_lab_25_1:
tmp125 = ats_false_bool ;
break ;
} while (0) ;
return (tmp125) ;
} /* end of [list_is_sing_01298_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 11370(line=604, offs=3) -- 11696(line=623, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec2 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp122) ;
ATSlocal (ats_bool_type, tmp123) ;
ATSlocal (ats_bool_type, tmp124) ;
ATSlocal (ats_ptr_type, tmp127) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec2:
tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__tyreckind_is_flted (arg0) ;
if (tmp123) {
tmp124 = list_is_sing_01298_ats_ptr_type (arg1) ;
if (tmp124) {
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp127 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_0) ;
tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrecsin (tmp127) ;
} else {
tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec (arg0, arg1) ;
} /* end of [if] */
} else {
tmp122 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec (arg0, arg1) ;
} /* end of [if] */
return (tmp122) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec2] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 11768(line=628, offs=14) -- 11839(line=629, offs=57)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tysum (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp128) ;
ATSlocal (ats_ptr_type, tmp129) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tysum:
tmp129 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
((ats_sum_ptr_type)tmp129)->tag = 10 ;
ats_selptrset_mac(anairiats_sum_3, tmp129, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_3, tmp129, atslab_1, arg1) ;
tmp128 = hisexp_make_node_16 (statmp17, tmp129) ;
return (tmp128) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tysum] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 11910(line=635, offs=14) -- 12127(line=643, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyvar (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp130) ;
ATSlocal (ats_ptr_type, tmp131) ;
ATSlocal (ats_bool_type, tmp132) ;
ATSlocal (ats_ptr_type, tmp133) ;
ATSlocal (ats_ptr_type, tmp134) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyvar:
tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (arg0) ;
tmp132 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_is_boxed (tmp131) ;
if (tmp132) {
tmp133 = statmp0 ;
} else {
tmp133 = statmp18 ;
} /* end of [if] */
tmp134 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp134)->tag = 11 ;
ats_selptrset_mac(anairiats_sum_5, tmp134, atslab_0, arg0) ;
tmp130 = hisexp_make_node_16 (tmp133, tmp134) ;
return (tmp130) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyvar] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 12198(line=648, offs=14) -- 12257(line=649, offs=51)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyclo (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp135) ;
ATSlocal (ats_ptr_type, tmp136) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyclo:
tmp136 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp136)->tag = 12 ;
ats_selptrset_mac(anairiats_sum_5, tmp136, atslab_0, arg0) ;
tmp135 = hisexp_make_node_16 (statmp13, tmp136) ;
return (tmp135) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyclo] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 12329(line=655, offs=15) -- 12400(line=657, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_vararg (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp137) ;
ATSlocal (ats_ptr_type, tmp138) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_vararg:
tmp138 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp138)->tag = 13 ;
ats_selptrset_mac(anairiats_sum_5, tmp138, atslab_0, arg0) ;
tmp137 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, tmp137, atslab_hisexp_name, statmp20) ;
ats_selptrset_mac(anairiats_rec_1, tmp137, atslab_hisexp_node, tmp138) ;

return (tmp137) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_vararg] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 12472(line=662, offs=14) -- 12529(line=663, offs=50)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2exp (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp139) ;
ATSlocal (ats_ptr_type, tmp140) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2exp:
tmp140 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp140)->tag = 14 ;
ats_selptrset_mac(anairiats_sum_5, tmp140, atslab_0, arg0) ;
tmp139 = hisexp_make_node_16 (statmp21, tmp140) ;
return (tmp139) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2exp] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 12580(line=667, offs=15) -- 12641(line=668, offs=53)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2zexp (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp141) ;
ATSlocal (ats_ptr_type, tmp142) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2zexp:
tmp142 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp142)->tag = 15 ;
ats_selptrset_mac(anairiats_sum_5, tmp142, atslab_0, arg0) ;
tmp141 = hisexp_make_node_16 (statmp22, tmp142) ;
return (tmp141) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2zexp] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 12701(line=676, offs=1) -- 15541(line=799, offs=4)
*/
ATSstaticdec()
ats_ptr_type
aux_36 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp143) ;
ATSlocal (ats_ptr_type, tmp144) ;
ATSlocal (ats_ptr_type, tmp145) ;
ATSlocal (ats_ptr_type, tmp146) ;
ATSlocal (ats_int_type, tmp147) ;
ATSlocal (ats_ptr_type, tmp148) ;
ATSlocal (ats_ptr_type, tmp149) ;
ATSlocal (ats_bool_type, tmp150) ;
ATSlocal (ats_ptr_type, tmp151) ;
ATSlocal (ats_ptr_type, tmp152) ;
ATSlocal (ats_int_type, tmp153) ;
ATSlocal (ats_ptr_type, tmp154) ;
ATSlocal (ats_bool_type, tmp155) ;
ATSlocal (ats_ptr_type, tmp156) ;
ATSlocal (ats_ptr_type, tmp157) ;
ATSlocal (ats_ptr_type, tmp158) ;
ATSlocal (ats_int_type, tmp159) ;
ATSlocal (ats_ptr_type, tmp160) ;
ATSlocal (ats_ptr_type, tmp161) ;
ATSlocal (ats_bool_type, tmp162) ;
ATSlocal (ats_int_type, tmp163) ;
ATSlocal (ats_ptr_type, tmp164) ;
ATSlocal (ats_int_type, tmp165) ;
ATSlocal (ats_ptr_type, tmp166) ;
ATSlocal (ats_bool_type, tmp167) ;
ATSlocal (ats_ptr_type, tmp168) ;
ATSlocal (ats_ptr_type, tmp169) ;
ATSlocal (ats_int_type, tmp170) ;
ATSlocal (ats_ptr_type, tmp171) ;
ATSlocal (ats_ptr_type, tmp172) ;
ATSlocal (ats_bool_type, tmp173) ;
ATSlocal (ats_ptr_type, tmp174) ;
ATSlocal (ats_ptr_type, tmp175) ;
ATSlocal (ats_int_type, tmp176) ;
ATSlocal (ats_ptr_type, tmp177) ;
ATSlocal (ats_bool_type, tmp178) ;
ATSlocal (ats_ptr_type, tmp179) ;
ATSlocal (ats_int_type, tmp180) ;
ATSlocal (ats_ptr_type, tmp181) ;
ATSlocal (ats_bool_type, tmp182) ;
ATSlocal (ats_ptr_type, tmp183) ;
ATSlocal (ats_ptr_type, tmp184) ;
ATSlocal (ats_int_type, tmp185) ;
ATSlocal (ats_ptr_type, tmp186) ;
ATSlocal (ats_bool_type, tmp187) ;
ATSlocal (ats_ptr_type, tmp188) ;
ATSlocal (ats_ptr_type, tmp189) ;
ATSlocal (ats_ptr_type, tmp190) ;
ATSlocal (ats_int_type, tmp191) ;
ATSlocal (ats_ptr_type, tmp192) ;
ATSlocal (ats_int_type, tmp193) ;
ATSlocal (ats_ptr_type, tmp194) ;
ATSlocal (ats_bool_type, tmp195) ;
ATSlocal (ats_ptr_type, tmp196) ;
ATSlocal (ats_int_type, tmp197) ;
ATSlocal (ats_ptr_type, tmp198) ;
ATSlocal (ats_bool_type, tmp199) ;
ATSlocal (ats_ptr_type, tmp200) ;
ATSlocal (ats_int_type, tmp201) ;
ATSlocal (ats_ptr_type, tmp202) ;
ATSlocal (ats_bool_type, tmp203) ;

__ats_lab_aux_36:
tmp144 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg1), atslab_hisexp_node) ;
do {
/* branch: __ats_lab_26 */
__ats_lab_26_0:
if (((ats_sum_ptr_type)tmp144)->tag != 0) { goto __ats_lab_27_0 ; }
__ats_lab_26_1:
tmp143 = arg1 ;
break ;

/* branch: __ats_lab_27 */
__ats_lab_27_0:
if (((ats_sum_ptr_type)tmp144)->tag != 2) { goto __ats_lab_28_0 ; }
__ats_lab_27_1:
tmp143 = arg1 ;
break ;

/* branch: __ats_lab_28 */
__ats_lab_28_0:
if (((ats_sum_ptr_type)tmp144)->tag != 1) { goto __ats_lab_29_0 ; }
__ats_lab_28_1:
tmp143 = arg1 ;
break ;

/* branch: __ats_lab_29 */
__ats_lab_29_0:
if (((ats_sum_ptr_type)tmp144)->tag != 3) { goto __ats_lab_30_0 ; }
__ats_lab_29_1:
tmp145 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_0) ;
tmp146 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_1) ;
tmp147 = ats_ptrget_mac(ats_int_type, arg2) ;
tmp148 = aux_36 (arg0, tmp145, arg2) ;
tmp149 = auxlst_38 (arg0, tmp146, arg2) ;
tmp150 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp147) ;
if (tmp150) {
tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_app (tmp148, tmp149) ;
} else {
tmp143 = arg1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_30 */
__ats_lab_30_0:
if (((ats_sum_ptr_type)tmp144)->tag != 4) { goto __ats_lab_31_0 ; }
__ats_lab_30_1:
tmp151 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_0) ;
tmp152 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_1) ;
tmp153 = ats_ptrget_mac(ats_int_type, arg2) ;
tmp154 = auxlstlst_40 (arg0, tmp152, arg2) ;
tmp155 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp153) ;
if (tmp155) {
tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_extype (tmp151, tmp154) ;
} else {
tmp143 = arg1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_31 */
__ats_lab_31_0:
if (((ats_sum_ptr_type)tmp144)->tag != 5) { goto __ats_lab_32_0 ; }
__ats_lab_31_1:
tmp156 = ats_caselptrlab_mac(anairiats_sum_7, tmp144, atslab_0) ;
tmp157 = ats_caselptrlab_mac(anairiats_sum_7, tmp144, atslab_1) ;
tmp158 = ats_caselptrlab_mac(anairiats_sum_7, tmp144, atslab_2) ;
tmp159 = ats_ptrget_mac(ats_int_type, arg2) ;
tmp160 = aux_36 (arg0, tmp158, arg2) ;
tmp161 = auxlst_38 (arg0, tmp157, arg2) ;
tmp162 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp159) ;
if (tmp162) {
tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_fun (tmp156, tmp161, tmp160) ;
} else {
tmp143 = arg1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_32 */
__ats_lab_32_0:
if (((ats_sum_ptr_type)tmp144)->tag != 6) { goto __ats_lab_33_0 ; }
__ats_lab_32_1:
tmp163 = ats_caselptrlab_mac(anairiats_sum_9, tmp144, atslab_0) ;
tmp164 = ats_caselptrlab_mac(anairiats_sum_9, tmp144, atslab_1) ;
tmp165 = ats_ptrget_mac(ats_int_type, arg2) ;
tmp166 = aux_36 (arg0, tmp164, arg2) ;
tmp167 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp165) ;
if (tmp167) {
tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_refarg (tmp163, tmp166) ;
} else {
tmp143 = arg1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_33 */
__ats_lab_33_0:
if (((ats_sum_ptr_type)tmp144)->tag != 7) { goto __ats_lab_34_0 ; }
__ats_lab_33_1:
tmp168 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_0) ;
tmp169 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_1) ;
tmp170 = ats_ptrget_mac(ats_int_type, arg2) ;
tmp171 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_flag (arg0, tmp169, arg2) ;
tmp172 = aux_36 (arg0, tmp168, arg2) ;
tmp173 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp170) ;
if (tmp173) {
tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyarr (tmp172, tmp171) ;
} else {
tmp143 = arg1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_34 */
__ats_lab_34_0:
if (((ats_sum_ptr_type)tmp144)->tag != 8) { goto __ats_lab_35_0 ; }
__ats_lab_34_1:
tmp174 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_0) ;
tmp175 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_1) ;
tmp176 = ats_ptrget_mac(ats_int_type, arg2) ;
tmp177 = auxlablst_39 (arg0, tmp175, arg2) ;
tmp178 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp176) ;
if (tmp178) {
tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrec (tmp174, tmp177) ;
} else {
tmp143 = arg1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_35 */
__ats_lab_35_0:
if (((ats_sum_ptr_type)tmp144)->tag != 9) { goto __ats_lab_36_0 ; }
__ats_lab_35_1:
tmp179 = ats_caselptrlab_mac(anairiats_sum_5, tmp144, atslab_0) ;
tmp180 = ats_ptrget_mac(ats_int_type, arg2) ;
tmp181 = auxlab_37 (arg0, tmp179, arg2) ;
tmp182 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp180) ;
if (tmp182) {
tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tyrecsin (tmp181) ;
} else {
tmp143 = arg1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_36 */
__ats_lab_36_0:
if (((ats_sum_ptr_type)tmp144)->tag != 10) { goto __ats_lab_37_0 ; }
__ats_lab_36_1:
tmp183 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_0) ;
tmp184 = ats_caselptrlab_mac(anairiats_sum_3, tmp144, atslab_1) ;
tmp185 = ats_ptrget_mac(ats_int_type, arg2) ;
tmp186 = auxlablst_39 (arg0, tmp184, arg2) ;
tmp187 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp185) ;
if (tmp187) {
tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tysum (tmp183, tmp186) ;
} else {
tmp143 = arg1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_37 */
__ats_lab_37_0:
if (((ats_sum_ptr_type)tmp144)->tag != 11) { goto __ats_lab_40_0 ; }
__ats_lab_37_1:
tmp188 = ats_caselptrlab_mac(anairiats_sum_5, tmp144, atslab_0) ;
tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_find (arg0, tmp188) ;
do {
/* branch: __ats_lab_38 */
__ats_lab_38_0:
if (tmp189 == (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; }
__ats_lab_38_1:
tmp190 = ats_caselptrlab_mac(anairiats_sum_11, tmp189, atslab_0) ;
ATS_FREE(tmp189) ;
tmp191 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ;
ats_ptrget_mac(ats_int_type, arg2) = tmp191 ;
tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2exp (tmp190) ;
break ;

/* branch: __ats_lab_39 */
__ats_lab_39_0:
// if (tmp189 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_39_1:
tmp143 = arg1 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_40 */
__ats_lab_40_0:
if (((ats_sum_ptr_type)tmp144)->tag != 12) { goto __ats_lab_41_0 ; }
__ats_lab_40_1:
tmp143 = arg1 ;
break ;

/* branch: __ats_lab_41 */
__ats_lab_41_0:
if (((ats_sum_ptr_type)tmp144)->tag != 13) { goto __ats_lab_42_0 ; }
__ats_lab_41_1:
tmp192 = ats_caselptrlab_mac(anairiats_sum_5, tmp144, atslab_0) ;
tmp193 = ats_ptrget_mac(ats_int_type, arg2) ;
tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp192, arg2) ;
tmp195 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp193) ;
if (tmp195) {
tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_vararg (tmp194) ;
} else {
tmp143 = arg1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_42 */
__ats_lab_42_0:
if (((ats_sum_ptr_type)tmp144)->tag != 14) { goto __ats_lab_43_0 ; }
__ats_lab_42_1:
tmp196 = ats_caselptrlab_mac(anairiats_sum_5, tmp144, atslab_0) ;
tmp197 = ats_ptrget_mac(ats_int_type, arg2) ;
tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst_flag (arg0, tmp196, arg2) ;
tmp199 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp197) ;
if (tmp199) {
tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2exp (tmp198) ;
} else {
tmp143 = arg1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_43 */
__ats_lab_43_0:
// if (((ats_sum_ptr_type)tmp144)->tag != 15) { ats_deadcode_failure_handle () ; }
__ats_lab_43_1:
tmp200 = ats_caselptrlab_mac(anairiats_sum_5, tmp144, atslab_0) ;
tmp201 = ats_ptrget_mac(ats_int_type, arg2) ;
tmp202 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2zexp_subst_flag (arg0, tmp200, arg2) ;
tmp203 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp201) ;
if (tmp203) {
tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_s2zexp (tmp202) ;
} else {
tmp143 = arg1 ;
} /* end of [if] */
break ;
} while (0) ;
return (tmp143) ;
} /* end of [aux_36] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 15563(line=801, offs=5) -- 15789(line=809, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxlab_37 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp204) ;
ATSlocal (ats_int_type, tmp205) ;
ATSlocal (ats_ptr_type, tmp206) ;
ATSlocal (ats_ptr_type, tmp207) ;
ATSlocal (ats_ptr_type, tmp208) ;
ATSlocal (ats_ptr_type, tmp209) ;
ATSlocal (ats_bool_type, tmp210) ;

__ats_lab_auxlab_37:
tmp205 = ats_ptrget_mac(ats_int_type, arg2) ;
// 
tmp206 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ;
tmp207 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
tmp208 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_2) ;
tmp209 = aux_36 (arg0, tmp208, arg2) ;
tmp210 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp205) ;
if (tmp210) {
tmp204 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp204, atslab_0, tmp206) ;
ats_selptrset_mac(anairiats_sum_6, tmp204, atslab_1, tmp207) ;
ats_selptrset_mac(anairiats_sum_6, tmp204, atslab_2, tmp209) ;
} else {
tmp204 = arg1 ;
} /* end of [if] */
return (tmp204) ;
} /* end of [auxlab_37] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 15814(line=811, offs=5) -- 16160(line=827, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxlst_38 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp211) ;
ATSlocal (ats_ptr_type, tmp212) ;
ATSlocal (ats_ptr_type, tmp213) ;
ATSlocal (ats_int_type, tmp214) ;
ATSlocal (ats_ptr_type, tmp215) ;
ATSlocal (ats_ptr_type, tmp216) ;
ATSlocal (ats_bool_type, tmp217) ;

__ats_lab_auxlst_38:
do {
/* branch: __ats_lab_44 */
__ats_lab_44_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; }
__ats_lab_44_1:
tmp212 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_0) ;
tmp213 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_1) ;
tmp214 = ats_ptrget_mac(ats_int_type, arg2) ;
tmp215 = aux_36 (arg0, tmp212, arg2) ;
tmp216 = auxlst_38 (arg0, tmp213, arg2) ;
tmp217 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp214) ;
if (tmp217) {
tmp211 = ATS_MALLOC(sizeof(anairiats_sum_10)) ;
ats_selptrset_mac(anairiats_sum_10, tmp211, atslab_0, tmp215) ;
ats_selptrset_mac(anairiats_sum_10, tmp211, atslab_1, tmp216) ;
} else {
tmp211 = arg1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_45 */
__ats_lab_45_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_45_1:
tmp211 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp211) ;
} /* end of [auxlst_38] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 16185(line=829, offs=5) -- 16557(line=845, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxlablst_39 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp218) ;
ATSlocal (ats_ptr_type, tmp219) ;
ATSlocal (ats_ptr_type, tmp220) ;
ATSlocal (ats_int_type, tmp221) ;
ATSlocal (ats_ptr_type, tmp222) ;
ATSlocal (ats_ptr_type, tmp223) ;
ATSlocal (ats_bool_type, tmp224) ;

__ats_lab_auxlablst_39:
do {
/* branch: __ats_lab_46 */
__ats_lab_46_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_47_0 ; }
__ats_lab_46_1:
tmp219 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_0) ;
tmp220 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_1) ;
tmp221 = ats_ptrget_mac(ats_int_type, arg2) ;
tmp222 = auxlab_37 (arg0, tmp219, arg2) ;
tmp223 = auxlablst_39 (arg0, tmp220, arg2) ;
tmp224 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp221) ;
if (tmp224) {
tmp218 = ATS_MALLOC(sizeof(anairiats_sum_10)) ;
ats_selptrset_mac(anairiats_sum_10, tmp218, atslab_0, tmp222) ;
ats_selptrset_mac(anairiats_sum_10, tmp218, atslab_1, tmp223) ;
} else {
tmp218 = arg1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_47 */
__ats_lab_47_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_47_1:
tmp218 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp218) ;
} /* end of [auxlablst_39] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 16585(line=847, offs=5) -- 16957(line=863, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxlstlst_40 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp225) ;
ATSlocal (ats_ptr_type, tmp226) ;
ATSlocal (ats_ptr_type, tmp227) ;
ATSlocal (ats_int_type, tmp228) ;
ATSlocal (ats_ptr_type, tmp229) ;
ATSlocal (ats_ptr_type, tmp230) ;
ATSlocal (ats_bool_type, tmp231) ;

__ats_lab_auxlstlst_40:
do {
/* branch: __ats_lab_48 */
__ats_lab_48_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; }
__ats_lab_48_1:
tmp226 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_0) ;
tmp227 = ats_caselptrlab_mac(anairiats_sum_10, arg1, atslab_1) ;
tmp228 = ats_ptrget_mac(ats_int_type, arg2) ;
tmp229 = auxlst_38 (arg0, tmp226, arg2) ;
tmp230 = auxlstlst_40 (arg0, tmp227, arg2) ;
tmp231 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp228) ;
if (tmp231) {
tmp225 = ATS_MALLOC(sizeof(anairiats_sum_10)) ;
ats_selptrset_mac(anairiats_sum_10, tmp225, atslab_0, tmp229) ;
ats_selptrset_mac(anairiats_sum_10, tmp225, atslab_1, tmp230) ;
} else {
tmp225 = arg1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_49 */
__ats_lab_49_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_49_1:
tmp225 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp225) ;
} /* end of [auxlstlst_40] */

/*
// /tmp/ATS-Postiats/src/pats_histaexp.dats: 17027(line=869, offs=3) -- 17093(line=871, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp232) ;
ATSlocal (ats_int_type, tmp233) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst:
/* ats_int_type tmp233 ; */
tmp233 = 0 ;
tmp232 = aux_36 (arg0, arg1, (&tmp233)) ;
return (tmp232) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_subst] */

/* static load function */

// extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_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_histaexp_2esats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__staload_flag = 1 ;

// _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ;

return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2edats__staload () ;

#ifdef _ATS_PROOFCHECK
ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
#endif /* _ATS_PROOFCHECK */

/* marking static variables for GC */
ATS_GC_MARKROOT(&statmp0, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp1, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp2, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp3, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp4, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp5, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp6, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp7, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp8, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp9, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp10, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp11, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp12, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp13, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp14, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp15, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp16, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp17, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp18, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp19, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp20, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp21, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp22, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp60, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp61, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp62, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp63, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp64, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp65, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp66, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp67, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp68, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp69, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp70, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp71, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp72, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp73, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp74, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp75, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp76, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp77, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp78, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp79, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp80, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp81, sizeof(ats_ptr_type)) ;

/* marking external values for GC */

/* code for dynamic loading */
statmp0 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp0, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp0, atslab_1, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp0, atslab_2, ATSstrcst("atstype_boxed")) ;
statmp1 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp1, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp1, atslab_1, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp1, atslab_2, ATSstrcst("atstype_unboxed")) ;
statmp2 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp2, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp2, atslab_1, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp2, atslab_2, ATSstrcst("atstype_undefined")) ;
statmp3 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp3, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp3, atslab_1, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp3, atslab_2, ATSstrcst("atstype_funptr")) ;
statmp4 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp4, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp4, atslab_1, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp4, atslab_2, ATSstrcst("atstype_cloptr")) ;
statmp5 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp5, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp5, atslab_1, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp5, atslab_2, ATSstrcst("atstype_clotyp")) ;
statmp6 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp6, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp6, atslab_1, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp6, atslab_2, ATSstrcst("atstype_arrptr")) ;
statmp7 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp7, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp7, atslab_1, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp7, atslab_2, ATSstrcst("atstype_datconptr")) ;
statmp8 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp8, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp8, atslab_1, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp8, atslab_2, ATSstrcst("atstype_datcontyp")) ;
statmp9 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp9, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp9, atslab_1, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp9, atslab_2, ATSstrcst("atstype_exnconptr")) ;
statmp10 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp10, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp10, atslab_1, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp10, atslab_2, ATSstrcst("postiats_tyabs")) ;
statmp11 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp11, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp11, atslab_1, 1) ;
ats_selptrset_mac(anairiats_sum_2, statmp11, atslab_2, ATSstrcst("postiats_typtr")) ;
statmp12 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp12, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp12, atslab_1, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp12, atslab_2, ATSstrcst("postiats_tyapp")) ;
statmp13 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp13, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp13, atslab_1, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp13, atslab_2, ATSstrcst("postiats_tyclo")) ;
statmp14 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp14, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp14, atslab_1, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp14, atslab_2, ATSstrcst("postiats_tyarr")) ;
statmp15 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp15, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp15, atslab_1, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp15, atslab_2, ATSstrcst("postiats_tyrec")) ;
statmp16 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp16, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp16, atslab_1, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp16, atslab_2, ATSstrcst("postiats_tyrecsin")) ;
statmp17 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp17, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp17, atslab_1, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp17, atslab_2, ATSstrcst("postiats_tysum")) ;
statmp18 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp18, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp18, atslab_1, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp18, atslab_2, ATSstrcst("postiats_tyvar")) ;
statmp19 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp19, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp19, atslab_1, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp19, atslab_2, ATSstrcst("postiats_tyvaret")) ;
statmp20 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp20, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp20, atslab_1, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp20, atslab_2, ATSstrcst("postiats_vararg")) ;
statmp21 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp21, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp21, atslab_1, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp21, atslab_2, ATSstrcst("postiats_s2exp")) ;
statmp22 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, statmp22, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp22, atslab_1, 0) ;
ats_selptrset_mac(anairiats_sum_2, statmp22, atslab_2, ATSstrcst("postiats_s2zexp")) ;
statmp61 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ;
statmp60 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, statmp60, atslab_hisexp_name, statmp0) ;
ats_selptrset_mac(anairiats_rec_1, statmp60, atslab_hisexp_node, statmp61) ;

ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tybox, sizeof(ats_ptr_type)) ;
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_tybox = statmp60 ;
statmp63 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ;
statmp62 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, statmp62, atslab_hisexp_name, statmp11) ;
ats_selptrset_mac(anairiats_rec_1, statmp62, atslab_hisexp_node, statmp63) ;

ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr, sizeof(ats_ptr_type)) ;
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr = statmp62 ;
statmp64 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("atstyclo_top")) ;
statmp66 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)statmp66)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_5, statmp66, atslab_0, statmp64) ;
statmp65 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, statmp65, atslab_hisexp_name, statmp13) ;
ats_selptrset_mac(anairiats_rec_1, statmp65, atslab_hisexp_node, statmp66) ;

ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_clotyp, sizeof(ats_ptr_type)) ;
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_clotyp = statmp65 ;
statmp68 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ;
statmp67 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, statmp67, atslab_hisexp_name, statmp3) ;
ats_selptrset_mac(anairiats_rec_1, statmp67, atslab_hisexp_node, statmp68) ;

ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_funptr, sizeof(ats_ptr_type)) ;
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_funptr = statmp67 ;
statmp70 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ;
statmp69 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, statmp69, atslab_hisexp_name, statmp4) ;
ats_selptrset_mac(anairiats_rec_1, statmp69, atslab_hisexp_node, statmp70) ;

ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cloptr, sizeof(ats_ptr_type)) ;
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_cloptr = statmp69 ;
statmp72 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ;
statmp71 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, statmp71, atslab_hisexp_name, statmp6) ;
ats_selptrset_mac(anairiats_rec_1, statmp71, atslab_hisexp_node, statmp72) ;

ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_arrptr, sizeof(ats_ptr_type)) ;
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_arrptr = statmp71 ;
statmp74 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ;
statmp73 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, statmp73, atslab_hisexp_name, statmp7) ;
ats_selptrset_mac(anairiats_rec_1, statmp73, atslab_hisexp_node, statmp74) ;

ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datconptr, sizeof(ats_ptr_type)) ;
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datconptr = statmp73 ;
statmp76 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ;
statmp75 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, statmp75, atslab_hisexp_name, statmp8) ;
ats_selptrset_mac(anairiats_rec_1, statmp75, atslab_hisexp_node, statmp76) ;

ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datcontyp, sizeof(ats_ptr_type)) ;
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_datcontyp = statmp75 ;
statmp78 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__HSEtybox_1) ;
statmp77 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, statmp77, atslab_hisexp_name, statmp9) ;
ats_selptrset_mac(anairiats_rec_1, statmp77, atslab_hisexp_node, statmp78) ;

ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_exnconptr, sizeof(ats_ptr_type)) ;
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_exnconptr = statmp77 ;
statmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_symbol_2esats__symbol_make_string (ATSstrcst("atstype_undefined")) ;
statmp81 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)statmp81)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_5, statmp81, atslab_0, statmp79) ;
statmp80 = ATS_MALLOC(sizeof(anairiats_rec_1)) ;
ats_selptrset_mac(anairiats_rec_1, statmp80, atslab_hisexp_name, statmp2) ;
ats_selptrset_mac(anairiats_rec_1, statmp80, atslab_hisexp_node, statmp81) ;

ATS_GC_MARKROOT(&_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_undefined, sizeof(ats_ptr_type)) ;
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_undefined = statmp80 ;
return ;
} /* end of [dynload function] */

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

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

/* end of [pats_histaexp_dats.c] */
