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

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

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

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

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

typedef
struct {
ats_ptr_type atslab_hipat_loc ;
ats_ptr_type atslab_hipat_type ;
ats_ptr_type atslab_hipat_node ;
ats_ptr_type atslab_hipat_asvar ;
} anairiats_rec_1 ;

typedef struct {
ats_ptr_type atslab_0 ;
} 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_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_4 ;

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

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

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

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

typedef struct {
int tag ;
ats_bool_type atslab_0 ;
} anairiats_sum_9 ;

typedef struct {
int tag ;
ats_char_type atslab_0 ;
} anairiats_sum_10 ;

typedef
struct {
ats_ptr_type atslab_primval_loc ;
ats_ptr_type atslab_primval_type ;
ats_ptr_type atslab_primval_node ;
} anairiats_rec_11 ;

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

/* external typedefs */
/* external dynamic constructor declarations */
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ;
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__HSEvararg_13) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__LABHIPAT_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPany_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPvar_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPint_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPintrep_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPbool_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPchar_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPstring_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPi0nt_8) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPf0loat_9) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPempty_10) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPcon_11) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPcon_any_12) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPrec_13) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPrefas_14) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIPann_15) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKcon_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKint_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKbool_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKchar_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKstring_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKi0nt_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PATCKf0loat_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTfunarg_fail_5) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_void_type, atspre_print_newline) () ;
ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ;
ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_gte_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_void_type, atspre_print_string) (ats_ptr_type) ;
ATSextern_fun(ats_llint_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__llint_make_string) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_location) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl) (ats_ptr_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hipat) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_get_type) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, patsopt_hipat_set_asvar) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_nshared) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_arg) (ats_ptr_type, ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argref) (ats_ptr_type, ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argtmpref) (ats_ptr_type, ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selcon) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_selcon) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_select) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_lab) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_freeconlst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_freeconenv) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_freeconenv) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freetupenv_if) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freeconenv_if) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_vbindmapenv) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_rec) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_con) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_sum) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_rec) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_sum) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__primval_make_funarg) (ats_ptr_type, ats_ptr_type, ats_int_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 hipat_getset_asvar_0 (ats_ptr_type arg0) ;
static
ats_void_type aux_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) ;
static
ats_void_type auxlst_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ;
static
ats_void_type aux_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) ;
static
ats_void_type auxlst_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) ;
static
ats_void_type auxvar_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) ;
static
ats_void_type auxpat_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) ;
static
ats_void_type auxpatlst_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ;
static
ats_void_type auxvar_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) ;
static
ats_void_type auxpat_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) ;
static
ats_void_type auxpatlst_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) ;
static
ats_void_type auxvar_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ;
static
ats_ptr_type auxpatck_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ;
static
ats_void_type auxmatch_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ;

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

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 1881(line=67, offs=1) -- 2153(line=82, offs=4)
*/
ATSstaticdec()
ats_ptr_type
hipat_getset_asvar_0 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp0) ;
ATSlocal (ats_ptr_type, tmp1) ;
ATSlocal (ats_ptr_type, tmp2) ;
ATSlocal (ats_ptr_type, tmp3) ;
ATSlocal (ats_ptr_type, tmp4) ;
// ATSlocal_void (tmp5) ;
ATSlocal (ats_ptr_type, tmp6) ;

__ats_lab_hipat_getset_asvar_0:
tmp1 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hipat_asvar) ;
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (tmp1 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; }
__ats_lab_0_1:
tmp2 = ats_caselptrlab_mac(anairiats_sum_2, tmp1, atslab_0) ;
tmp0 = tmp2 ;
break ;

/* branch: __ats_lab_1 */
__ats_lab_1_0:
// if (tmp1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_1_1:
tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_hipat_loc) ;
tmp4 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_make_any (tmp3) ;
tmp6 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
ats_selptrset_mac(anairiats_sum_2, tmp6, atslab_0, tmp4) ;
/* tmp5 = */ patsopt_hipat_set_asvar (arg0, tmp6) ;
tmp0 = tmp4 ;
break ;
} while (0) ;
return (tmp0) ;
} /* end of [hipat_getset_asvar_0] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 2367(line=96, offs=5) -- 3167(line=134, offs=4)
*/
ATSstaticdec()
ats_void_type
aux_1 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) {
/* local vardec */
// ATSlocal_void (tmp7) ;
ATSlocal (ats_ptr_type, tmp8) ;
ATSlocal (ats_ptr_type, tmp9) ;
ATSlocal (ats_ptr_type, tmp10) ;
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) ;
// ATSlocal_void (tmp17) ;
// ATSlocal_void (tmp18) ;

__ats_lab_aux_1:
tmp8 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_hipat_node) ;
do {
/* branch: __ats_lab_2 */
__ats_lab_2_0:
if (((ats_sum_ptr_type)tmp8)->tag != 0) { goto __ats_lab_3_0 ; }
__ats_lab_2_1:
break ;

/* branch: __ats_lab_3 */
__ats_lab_3_0:
if (((ats_sum_ptr_type)tmp8)->tag != 1) { goto __ats_lab_4_0 ; }
__ats_lab_3_1:
break ;

/* branch: __ats_lab_4 */
__ats_lab_4_0:
if (((ats_sum_ptr_type)tmp8)->tag != 15) { goto __ats_lab_5_0 ; }
__ats_lab_4_1:
tmp9 = ats_caselptrlab_mac(anairiats_sum_3, tmp8, atslab_0) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = tmp9 ;
arg5 = arg5 ;
arg6 = arg6 ;
goto __ats_lab_aux_1 ; // tail call
break ;

/* branch: __ats_lab_5 */
__ats_lab_5_0:
__ats_lab_5_1:
tmp10 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_hipat_loc) ;
tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_get_type (arg4) ;
tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_lab (tmp10, arg3) ;
tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp10, tmp11) ;
tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_select (tmp10, tmp13, tmp11, arg5, arg6, tmp12) ;
tmp15 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp (tmp10, tmp13) ;
tmp16 = hipat_getset_asvar_0 (arg4) ;
/* tmp17 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp16, tmp15) ;
/* tmp18 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp14) ;
/* tmp7 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp (arg0, arg1, arg2, arg4, tmp15) ;
break ;
} while (0) ;
return /* (tmp7) */ ;
} /* end of [aux_1] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 3189(line=136, offs=5) -- 3605(line=158, offs=4)
*/
ATSstaticdec()
ats_void_type
auxlst_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) {
/* local vardec */
// ATSlocal_void (tmp19) ;
ATSlocal (ats_ptr_type, tmp20) ;
ATSlocal (ats_ptr_type, tmp21) ;
ATSlocal (ats_ptr_type, tmp22) ;
ATSlocal (ats_ptr_type, tmp23) ;
// ATSlocal_void (tmp24) ;

__ats_lab_auxlst_2:
do {
/* branch: __ats_lab_6 */
__ats_lab_6_0:
if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; }
__ats_lab_6_1:
tmp20 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_0) ;
tmp21 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_1) ;
// 
tmp22 = ats_caselptrlab_mac(anairiats_sum_4, tmp20, atslab_0) ;
tmp23 = ats_caselptrlab_mac(anairiats_sum_4, tmp20, atslab_1) ;
/* tmp24 = */ aux_1 (arg0, arg1, arg2, tmp22, tmp23, arg4, arg5) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp21 ;
arg4 = arg4 ;
arg5 = arg5 ;
goto __ats_lab_auxlst_2 ; // tail call
break ;

/* branch: __ats_lab_7 */
__ats_lab_7_0:
// if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_7_1:
break ;
} while (0) ;
return /* (tmp19) */ ;
} /* end of [auxlst_2] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 3678(line=164, offs=1) -- 3834(line=173, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_rec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
// ATSlocal_void (tmp25) ;
ATSlocal (ats_ptr_type, tmp26) ;
ATSlocal (ats_ptr_type, tmp27) ;
ATSlocal (ats_ptr_type, tmp28) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_rec:
tmp26 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_node) ;
if (((ats_sum_ptr_type)tmp26)->tag != 13) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 3724(line=168, offs=5) -- 3777(line=169, offs=47)") ; }
tmp27 = ats_caselptrlab_mac(anairiats_sum_5, tmp26, atslab_2) ;
tmp28 = ats_caselptrlab_mac(anairiats_sum_5, tmp26, atslab_3) ;
/* tmp25 = */ auxlst_2 (arg0, arg1, arg2, tmp27, arg4, tmp28) ;
return /* (tmp25) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_rec] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 4106(line=189, offs=1) -- 4304(line=203, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_con (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) {
/* local vardec */
// ATSlocal_void (tmp29) ;
ATSlocal (ats_ptr_type, tmp30) ;
ATSlocal (ats_ptr_type, tmp31) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_con:
tmp31 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
((ats_sum_ptr_type)tmp31)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_6, tmp31, atslab_0, arg4) ;
tmp30 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (arg3, arg5, tmp31, arg2) ;
/* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp30) ;
return /* (tmp29) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_con] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 4519(line=217, offs=5) -- 6324(line=289, offs=4)
*/
ATSstaticdec()
ats_void_type
aux_5 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) {
/* local vardec */
// ATSlocal_void (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) ;
ATSlocal (ats_ptr_type, tmp38) ;
ATSlocal (ats_ptr_type, tmp39) ;
ATSlocal (ats_ptr_type, tmp40) ;
ATSlocal (ats_int_type, tmp41) ;
ATSlocal (ats_ptr_type, tmp42) ;
ATSlocal (ats_ptr_type, tmp43) ;
ATSlocal (ats_ptr_type, tmp44) ;
ATSlocal (ats_bool_type, tmp45) ;
ATSlocal (ats_bool_type, tmp46) ;
// ATSlocal_void (tmp47) ;
ATSlocal (ats_int_type, tmp48) ;
ATSlocal (ats_ptr_type, tmp49) ;
ATSlocal (ats_ptr_type, tmp50) ;
// ATSlocal_void (tmp51) ;
ATSlocal (ats_ptr_type, tmp52) ;
ATSlocal (ats_int_type, tmp53) ;
ATSlocal (ats_ptr_type, tmp54) ;
// ATSlocal_void (tmp55) ;
ATSlocal (ats_bool_type, tmp56) ;

__ats_lab_aux_5:
tmp33 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg5), atslab_hipat_node) ;
tmp34 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg5), atslab_hipat_node) ;
do {
/* branch: __ats_lab_8 */
__ats_lab_8_0:
if (((ats_sum_ptr_type)tmp34)->tag != 0) { goto __ats_lab_9_0 ; }
__ats_lab_8_1:
break ;

/* branch: __ats_lab_9 */
__ats_lab_9_0:
if (((ats_sum_ptr_type)tmp34)->tag != 1) { goto __ats_lab_10_0 ; }
__ats_lab_9_1:
break ;

/* branch: __ats_lab_10 */
__ats_lab_10_0:
if (((ats_sum_ptr_type)tmp34)->tag != 15) { goto __ats_lab_11_0 ; }
__ats_lab_10_1:
tmp35 = ats_caselptrlab_mac(anairiats_sum_3, tmp34, atslab_0) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = arg4 ;
arg5 = tmp35 ;
arg6 = arg6 ;
arg7 = arg7 ;
goto __ats_lab_aux_5 ; // tail call
break ;

/* branch: __ats_lab_11 */
__ats_lab_11_0:
__ats_lab_11_1:
tmp36 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg5), atslab_hipat_loc) ;
tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_get_type (arg5) ;
tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp36, tmp37) ;
tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_selcon (tmp36, tmp38, tmp37, arg6, arg7, arg4) ;
tmp40 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp (tmp36, tmp38) ;
/* ats_int_type tmp41 ; */
tmp41 = 0 ;
do {
/* branch: __ats_lab_12 */
__ats_lab_12_0:
if (((ats_sum_ptr_type)tmp34)->tag != 14) { goto __ats_lab_13_0 ; }
__ats_lab_12_1:
tmp43 = ats_caselptrlab_mac(anairiats_sum_3, tmp34, atslab_0) ;
tmp44 = ats_caselptrlab_mac(anairiats_sum_3, tmp34, atslab_1) ;
tmp46 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (tmp43) ;
tmp45 = atspre_neg_bool (tmp46) ;
if (tmp45) {
tmp48 = atspre_iadd (tmp41, 1) ;
tmp41 = tmp48 ;
/* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp43, tmp40) ;
} else {
tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selcon (tmp36, tmp37, arg6, arg7, arg4) ;
tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof (tmp36, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr, tmp49) ;
/* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp43, tmp50) ;
} /* end of [if] */
tmp42 = tmp44 ;
break ;

/* branch: __ats_lab_13 */
__ats_lab_13_0:
__ats_lab_13_1:
tmp42 = arg5 ;
break ;
} while (0) ;
tmp52 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp42), atslab_hipat_node) ;
do {
/* branch: __ats_lab_14 */
__ats_lab_14_0:
if (((ats_sum_ptr_type)tmp52)->tag != 0) { goto __ats_lab_15_0 ; }
__ats_lab_14_1:
break ;

/* branch: __ats_lab_15 */
__ats_lab_15_0:
if (((ats_sum_ptr_type)tmp52)->tag != 1) { goto __ats_lab_16_0 ; }
__ats_lab_15_1:
break ;

/* branch: __ats_lab_16 */
__ats_lab_16_0:
if (((ats_sum_ptr_type)tmp52)->tag != 14) { goto __ats_lab_17_0 ; }
__ats_lab_16_1:
break ;

/* branch: __ats_lab_17 */
__ats_lab_17_0:
__ats_lab_17_1:
tmp53 = atspre_add_int_int (tmp41, 1) ;
tmp41 = tmp53 ;
tmp54 = hipat_getset_asvar_0 (tmp42) ;
/* tmp51 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp54, tmp40) ;
break ;
} while (0) ;
tmp56 = atspre_gte_int_int (tmp41, 1) ;
if (tmp56) {
/* tmp55 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp39) ;
} else {
/* empty */
} /* end of [if] */
/* tmp32 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp (arg0, arg1, arg2, tmp42, tmp40) ;
break ;
} while (0) ;
return /* (tmp32) */ ;
} /* end of [aux_5] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 6346(line=291, offs=5) -- 6807(line=311, offs=4)
*/
ATSstaticdec()
ats_void_type
auxlst_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) {
/* local vardec */
// ATSlocal_void (tmp57) ;
ATSlocal (ats_ptr_type, tmp58) ;
ATSlocal (ats_ptr_type, tmp59) ;
ATSlocal (ats_ptr_type, tmp60) ;
ATSlocal (ats_ptr_type, tmp61) ;
// ATSlocal_void (tmp62) ;
ATSlocal (ats_int_type, tmp63) ;

__ats_lab_auxlst_6:
do {
/* branch: __ats_lab_18 */
__ats_lab_18_0:
if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_19_0 ; }
__ats_lab_18_1:
tmp58 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_0) ;
tmp59 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_1) ;
// 
tmp60 = ats_caselptrlab_mac(anairiats_sum_4, tmp58, atslab_0) ;
tmp61 = ats_caselptrlab_mac(anairiats_sum_4, tmp58, atslab_1) ;
/* tmp62 = */ aux_5 (arg0, arg1, arg2, arg3, tmp60, tmp61, arg5, arg6) ;
tmp63 = atspre_add_int_int (arg3, 1) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp63 ;
arg4 = tmp59 ;
arg5 = arg5 ;
arg6 = arg6 ;
goto __ats_lab_auxlst_6 ; // tail call
break ;

/* branch: __ats_lab_19 */
__ats_lab_19_0:
// if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_19_1:
break ;
} while (0) ;
return /* (tmp57) */ ;
} /* end of [auxlst_6] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 6880(line=317, offs=1) -- 7270(line=338, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_sum (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
// ATSlocal_void (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_void (tmp70) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_sum:
tmp65 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_loc) ;
tmp66 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_node) ;
if (((ats_sum_ptr_type)tmp66)->tag != 11) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 7087(line=331, offs=5) -- 7140(line=332, offs=47)") ; }
tmp67 = ats_caselptrlab_mac(anairiats_sum_7, tmp66, atslab_1) ;
tmp68 = ats_caselptrlab_mac(anairiats_sum_7, tmp66, atslab_2) ;
tmp69 = ats_caselptrlab_mac(anairiats_sum_7, tmp66, atslab_3) ;
/* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_con (arg0, arg1, arg2, tmp65, tmp67, arg4) ;
/* tmp64 = */ auxlst_6 (arg0, arg1, arg2, 0, tmp69, arg4, tmp68) ;
return /* (tmp64) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_sum] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 7370(line=346, offs=1) -- 9608(line=457, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
// ATSlocal_void (tmp71) ;
ATSlocal (ats_ptr_type, tmp72) ;
ATSlocal (ats_ptr_type, tmp73) ;
ATSlocal (ats_ptr_type, tmp74) ;
ATSlocal (ats_int_type, tmp75) ;
ATSlocal (ats_ptr_type, tmp76) ;
ATSlocal (ats_ptr_type, tmp77) ;
ATSlocal (ats_ptr_type, tmp78) ;
ATSlocal (ats_llint_type, tmp79) ;
ATSlocal (ats_ptr_type, tmp80) ;
ATSlocal (ats_ptr_type, tmp81) ;
ATSlocal (ats_bool_type, tmp82) ;
ATSlocal (ats_ptr_type, tmp83) ;
ATSlocal (ats_ptr_type, tmp84) ;
ATSlocal (ats_char_type, tmp85) ;
ATSlocal (ats_ptr_type, tmp86) ;
ATSlocal (ats_ptr_type, tmp87) ;
ATSlocal (ats_ptr_type, tmp88) ;
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) ;
ATSlocal (ats_ptr_type, tmp95) ;
ATSlocal (ats_ptr_type, tmp96) ;
ATSlocal (ats_ptr_type, tmp97) ;
ATSlocal (ats_ptr_type, tmp98) ;
// ATSlocal_void (tmp99) ;
// ATSlocal_void (tmp100) ;
// ATSlocal_void (tmp101) ;
// ATSlocal_void (tmp102) ;
// ATSlocal_void (tmp103) ;
// ATSlocal_void (tmp104) ;
ATSlocal (ats_ptr_type, tmp105) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp:
tmp72 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_loc) ;
tmp73 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_node) ;
do {
/* branch: __ats_lab_20 */
__ats_lab_20_0:
if (((ats_sum_ptr_type)tmp73)->tag != 0) { goto __ats_lab_21_0 ; }
__ats_lab_20_1:
break ;

/* branch: __ats_lab_21 */
__ats_lab_21_0:
if (((ats_sum_ptr_type)tmp73)->tag != 1) { goto __ats_lab_22_0 ; }
__ats_lab_21_1:
break ;

/* branch: __ats_lab_22 */
__ats_lab_22_0:
if (((ats_sum_ptr_type)tmp73)->tag != 11) { goto __ats_lab_23_0 ; }
__ats_lab_22_1:
/* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_sum (arg0, arg1, arg2, arg3, arg4) ;
break ;

/* branch: __ats_lab_23 */
__ats_lab_23_0:
if (((ats_sum_ptr_type)tmp73)->tag != 12) { goto __ats_lab_24_0 ; }
__ats_lab_23_1:
tmp74 = ats_caselptrlab_mac(anairiats_sum_3, tmp73, atslab_1) ;
/* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_con (arg0, arg1, arg2, tmp72, tmp74, arg4) ;
break ;

/* branch: __ats_lab_24 */
__ats_lab_24_0:
if (((ats_sum_ptr_type)tmp73)->tag != 2) { goto __ats_lab_25_0 ; }
__ats_lab_24_1:
tmp75 = ats_caselptrlab_mac(anairiats_sum_8, tmp73, atslab_0) ;
tmp77 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp77)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_8, tmp77, atslab_0, tmp75) ;
tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (tmp72, arg4, tmp77, arg2) ;
/* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp76) ;
break ;

/* branch: __ats_lab_25 */
__ats_lab_25_0:
if (((ats_sum_ptr_type)tmp73)->tag != 3) { goto __ats_lab_26_0 ; }
__ats_lab_25_1:
tmp78 = ats_caselptrlab_mac(anairiats_sum_6, tmp73, atslab_0) ;
tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__llint_make_string (tmp78) ;
tmp81 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp81)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_8, tmp81, atslab_0, ats_castfn_mac(ats_int_type, tmp79)) ;
tmp80 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (tmp72, arg4, tmp81, arg2) ;
/* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp80) ;
break ;

/* branch: __ats_lab_26 */
__ats_lab_26_0:
if (((ats_sum_ptr_type)tmp73)->tag != 4) { goto __ats_lab_27_0 ; }
__ats_lab_26_1:
tmp82 = ats_caselptrlab_mac(anairiats_sum_9, tmp73, atslab_0) ;
tmp84 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp84)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_9, tmp84, atslab_0, tmp82) ;
tmp83 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (tmp72, arg4, tmp84, arg2) ;
/* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp83) ;
break ;

/* branch: __ats_lab_27 */
__ats_lab_27_0:
if (((ats_sum_ptr_type)tmp73)->tag != 5) { goto __ats_lab_28_0 ; }
__ats_lab_27_1:
tmp85 = ats_caselptrlab_mac(anairiats_sum_10, tmp73, atslab_0) ;
tmp87 = ATS_MALLOC(sizeof(anairiats_sum_10)) ;
((ats_sum_ptr_type)tmp87)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_10, tmp87, atslab_0, tmp85) ;
tmp86 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (tmp72, arg4, tmp87, arg2) ;
/* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp86) ;
break ;

/* branch: __ats_lab_28 */
__ats_lab_28_0:
if (((ats_sum_ptr_type)tmp73)->tag != 6) { goto __ats_lab_29_0 ; }
__ats_lab_28_1:
tmp88 = ats_caselptrlab_mac(anairiats_sum_6, tmp73, atslab_0) ;
tmp90 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
((ats_sum_ptr_type)tmp90)->tag = 5 ;
ats_selptrset_mac(anairiats_sum_6, tmp90, atslab_0, tmp88) ;
tmp89 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (tmp72, arg4, tmp90, arg2) ;
/* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp89) ;
break ;

/* branch: __ats_lab_29 */
__ats_lab_29_0:
if (((ats_sum_ptr_type)tmp73)->tag != 8) { goto __ats_lab_30_0 ; }
__ats_lab_29_1:
tmp91 = ats_caselptrlab_mac(anairiats_sum_6, tmp73, atslab_0) ;
tmp93 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
((ats_sum_ptr_type)tmp93)->tag = 6 ;
ats_selptrset_mac(anairiats_sum_6, tmp93, atslab_0, tmp91) ;
tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (tmp72, arg4, tmp93, arg2) ;
/* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp92) ;
break ;

/* branch: __ats_lab_30 */
__ats_lab_30_0:
if (((ats_sum_ptr_type)tmp73)->tag != 9) { goto __ats_lab_31_0 ; }
__ats_lab_30_1:
tmp94 = ats_caselptrlab_mac(anairiats_sum_6, tmp73, atslab_0) ;
tmp96 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
((ats_sum_ptr_type)tmp96)->tag = 7 ;
ats_selptrset_mac(anairiats_sum_6, tmp96, atslab_0, tmp94) ;
tmp95 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_patck (tmp72, arg4, tmp96, arg2) ;
/* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp95) ;
break ;

/* branch: __ats_lab_31 */
__ats_lab_31_0:
if (((ats_sum_ptr_type)tmp73)->tag != 10) { goto __ats_lab_32_0 ; }
__ats_lab_31_1:
break ;

/* branch: __ats_lab_32 */
__ats_lab_32_0:
if (((ats_sum_ptr_type)tmp73)->tag != 13) { goto __ats_lab_33_0 ; }
__ats_lab_32_1:
/* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__hipatck_ccomp_rec (arg0, arg1, arg2, arg3, arg4) ;
break ;

/* branch: __ats_lab_33 */
__ats_lab_33_0:
if (((ats_sum_ptr_type)tmp73)->tag != 14) { goto __ats_lab_34_0 ; }
__ats_lab_33_1:
tmp97 = ats_caselptrlab_mac(anairiats_sum_3, tmp73, atslab_1) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp97 ;
arg4 = arg4 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp ; // tail call
break ;

/* branch: __ats_lab_34 */
__ats_lab_34_0:
if (((ats_sum_ptr_type)tmp73)->tag != 15) { goto __ats_lab_35_0 ; }
__ats_lab_34_1:
tmp98 = ats_caselptrlab_mac(anairiats_sum_3, tmp73, atslab_0) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp98 ;
arg4 = arg4 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp ; // tail call
break ;

/* branch: __ats_lab_35 */
__ats_lab_35_0:
__ats_lab_35_1:
/* tmp99 = */ atspre_print_string (ATSstrcst("hipatck_ccomp: loc0 = ")) ;
/* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_location (tmp72) ;
/* tmp101 = */ atspre_print_newline () ;
/* tmp102 = */ atspre_print_string (ATSstrcst("hipatck_ccomp: hip0 = ")) ;
/* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hipat (arg3) ;
/* tmp104 = */ atspre_print_newline () ;
tmp105 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 9439(line=451, offs=5) -- 9449(line=451, offs=15)", ATSstrcst("\n")) ;
/* tmp71 = */ ats_exit_errmsg (1, tmp105) ;
break ;
} while (0) ;
return /* (tmp71) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 9835(line=471, offs=5) -- 10863(line=511, offs=4)
*/
ATSstaticdec()
ats_void_type
auxvar_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) {
/* local vardec */
// ATSlocal_void (tmp106) ;
ATSlocal (ats_ptr_type, tmp107) ;
ATSlocal (ats_ptr_type, tmp108) ;
ATSlocal (ats_ptr_type, tmp109) ;
// ATSlocal_void (tmp110) ;
ATSlocal (ats_int_type, tmp111) ;
ATSlocal (ats_bool_type, tmp112) ;
ATSlocal (ats_ptr_type, tmp113) ;
ATSlocal (ats_ptr_type, tmp114) ;
ATSlocal (ats_ptr_type, tmp115) ;
ATSlocal (ats_ptr_type, tmp116) ;
ATSlocal (ats_ptr_type, tmp117) ;
// ATSlocal_void (tmp118) ;

__ats_lab_auxvar_9:
tmp107 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_hipat_loc) ;
tmp108 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_hipat_node) ;
if (((ats_sum_ptr_type)tmp108)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 9995(line=480, offs=7) -- 10024(line=480, offs=36)") ; }
tmp109 = ats_caselptrlab_mac(anairiats_sum_6, tmp108, atslab_0) ;
/* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level (tmp109, arg2) ;
tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes (tmp109) ;
do {
/* branch: __ats_lab_36 */
__ats_lab_36_0:
__ats_lab_36_1:
tmp112 = atspre_eq_int_int (tmp111, 0) ;
if (!tmp112) { goto __ats_lab_37_1 ; }
break ;

/* branch: __ats_lab_37 */
__ats_lab_37_0:
__ats_lab_37_1:
tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_get_type (arg4) ;
tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp107, tmp113) ;
tmp115 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primlab_lab (tmp107, arg3) ;
tmp116 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_select (tmp107, tmp114, tmp113, arg5, arg6, tmp115) ;
tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp (tmp107, tmp114) ;
/* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp109, tmp117) ;
/* tmp106 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp116) ;
break ;
} while (0) ;
return /* (tmp106) */ ;
} /* end of [auxvar_9] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 10888(line=514, offs=1) -- 11581(line=547, offs=4)
*/
ATSstaticdec()
ats_void_type
auxpat_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) {
/* local vardec */
// ATSlocal_void (tmp119) ;
ATSlocal (ats_ptr_type, tmp120) ;
ATSlocal (ats_ptr_type, tmp121) ;
ATSlocal (ats_ptr_type, tmp122) ;
ATSlocal (ats_ptr_type, tmp123) ;
ATSlocal (ats_ptr_type, tmp124) ;
ATSlocal (ats_ptr_type, tmp125) ;
ATSlocal (ats_ptr_type, tmp126) ;
ATSlocal (ats_ptr_type, tmp127) ;

__ats_lab_auxpat_10:
tmp120 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_hipat_node) ;
do {
/* branch: __ats_lab_38 */
__ats_lab_38_0:
if (((ats_sum_ptr_type)tmp120)->tag != 0) { goto __ats_lab_39_0 ; }
__ats_lab_38_1:
break ;

/* branch: __ats_lab_39 */
__ats_lab_39_0:
if (((ats_sum_ptr_type)tmp120)->tag != 1) { goto __ats_lab_40_0 ; }
__ats_lab_39_1:
/* tmp119 = */ auxvar_9 (arg0, arg1, arg2, arg3, arg4, arg5, arg6) ;
break ;

/* branch: __ats_lab_40 */
__ats_lab_40_0:
if (((ats_sum_ptr_type)tmp120)->tag != 14) { goto __ats_lab_41_0 ; }
__ats_lab_40_1:
tmp121 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_1) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = tmp121 ;
arg5 = arg5 ;
arg6 = arg6 ;
goto __ats_lab_auxpat_10 ; // tail call
break ;

/* branch: __ats_lab_41 */
__ats_lab_41_0:
if (((ats_sum_ptr_type)tmp120)->tag != 15) { goto __ats_lab_42_0 ; }
__ats_lab_41_1:
tmp122 = ats_caselptrlab_mac(anairiats_sum_3, tmp120, atslab_0) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = tmp122 ;
arg5 = arg5 ;
arg6 = arg6 ;
goto __ats_lab_auxpat_10 ; // tail call
break ;

/* branch: __ats_lab_42 */
__ats_lab_42_0:
__ats_lab_42_1:
tmp123 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_hipat_loc) ;
tmp124 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg4), atslab_hipat_asvar) ;
if (tmp124 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 11414(line=541, offs=9) -- 11441(line=541, offs=36)") ; }
tmp125 = ats_caselptrlab_mac(anairiats_sum_2, tmp124, atslab_0) ;
tmp126 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_vbindmapenv (arg0, tmp125) ;
if (tmp126 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 11450(line=542, offs=9) -- 11508(line=543, offs=43)") ; }
tmp127 = ats_caselptrlab_mac(anairiats_sum_2, tmp126, atslab_0) ;
ATS_FREE(tmp126) ;
/* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp (arg0, arg1, arg2, arg4, tmp127) ;
break ;
} while (0) ;
return /* (tmp119) */ ;
} /* end of [auxpat_10] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 11606(line=550, offs=1) -- 12036(line=576, offs=4)
*/
ATSstaticdec()
ats_void_type
auxpatlst_11 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) {
/* local vardec */
// ATSlocal_void (tmp128) ;
ATSlocal (ats_ptr_type, tmp129) ;
ATSlocal (ats_ptr_type, tmp130) ;
ATSlocal (ats_ptr_type, tmp131) ;
ATSlocal (ats_ptr_type, tmp132) ;
// ATSlocal_void (tmp133) ;

__ats_lab_auxpatlst_11:
do {
/* branch: __ats_lab_43 */
__ats_lab_43_0:
if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_44_0 ; }
__ats_lab_43_1:
break ;

/* branch: __ats_lab_44 */
__ats_lab_44_0:
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_44_1:
tmp129 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_0) ;
tmp130 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_1) ;
// 
tmp131 = ats_caselptrlab_mac(anairiats_sum_4, tmp129, atslab_0) ;
tmp132 = ats_caselptrlab_mac(anairiats_sum_4, tmp129, atslab_1) ;
/* tmp133 = */ auxpat_10 (arg0, arg1, arg2, tmp131, tmp132, arg4, arg5) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp130 ;
arg4 = arg4 ;
arg5 = arg5 ;
goto __ats_lab_auxpatlst_11 ; // tail call
break ;
} while (0) ;
return /* (tmp128) */ ;
} /* end of [auxpatlst_11] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 12112(line=582, offs=1) -- 12271(line=591, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_rec (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
// ATSlocal_void (tmp134) ;
ATSlocal (ats_ptr_type, tmp135) ;
ATSlocal (ats_ptr_type, tmp136) ;
ATSlocal (ats_ptr_type, tmp137) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_rec:
tmp135 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_node) ;
if (((ats_sum_ptr_type)tmp135)->tag != 13) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 12158(line=586, offs=5) -- 12211(line=587, offs=47)") ; }
tmp136 = ats_caselptrlab_mac(anairiats_sum_5, tmp135, atslab_2) ;
tmp137 = ats_caselptrlab_mac(anairiats_sum_5, tmp135, atslab_3) ;
/* tmp134 = */ auxpatlst_11 (arg0, arg1, arg2, tmp136, arg4, tmp137) ;
return /* (tmp134) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_rec] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 12529(line=608, offs=1) -- 13501(line=649, offs=4)
*/
ATSstaticdec()
ats_void_type
auxvar_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) {
/* local vardec */
// ATSlocal_void (tmp138) ;
ATSlocal (ats_ptr_type, tmp139) ;
ATSlocal (ats_ptr_type, tmp140) ;
ATSlocal (ats_ptr_type, tmp141) ;
// ATSlocal_void (tmp142) ;
ATSlocal (ats_int_type, tmp143) ;
ATSlocal (ats_bool_type, tmp144) ;
ATSlocal (ats_bool_type, tmp145) ;
ATSlocal (ats_ptr_type, tmp146) ;
ATSlocal (ats_ptr_type, tmp147) ;
ATSlocal (ats_ptr_type, tmp148) ;
ATSlocal (ats_ptr_type, tmp149) ;
ATSlocal (ats_ptr_type, tmp150) ;
ATSlocal (ats_ptr_type, tmp151) ;
ATSlocal (ats_ptr_type, tmp152) ;
// ATSlocal_void (tmp153) ;

__ats_lab_auxvar_13:
tmp139 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg5), atslab_hipat_loc) ;
tmp140 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg5), atslab_hipat_node) ;
if (((ats_sum_ptr_type)tmp140)->tag != 1) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 12701(line=618, offs=7) -- 12730(line=618, offs=36)") ; }
tmp141 = ats_caselptrlab_mac(anairiats_sum_6, tmp140, atslab_0) ;
/* tmp142 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level (tmp141, arg2) ;
tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes (tmp141) ;
do {
/* branch: __ats_lab_45 */
__ats_lab_45_0:
__ats_lab_45_1:
tmp144 = atspre_eq_int_int (tmp143, 0) ;
if (!tmp144) { goto __ats_lab_46_1 ; }
break ;

/* branch: __ats_lab_46 */
__ats_lab_46_0:
__ats_lab_46_1:
tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (tmp141) ;
if (!tmp145) { goto __ats_lab_47_1 ; }
tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_get_type (arg5) ;
tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_selcon (tmp139, tmp146, arg6, arg7, arg4) ;
tmp148 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof (tmp139, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr, tmp147) ;
/* tmp138 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp141, tmp148) ;
break ;

/* branch: __ats_lab_47 */
__ats_lab_47_0:
__ats_lab_47_1:
tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__hipat_get_type (arg5) ;
tmp150 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp139, tmp149) ;
tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_selcon (tmp139, tmp150, tmp149, arg6, arg7, arg4) ;
tmp152 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp (tmp139, tmp150) ;
/* tmp153 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp141, tmp152) ;
/* tmp138 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp151) ;
break ;
} while (0) ;
return /* (tmp138) */ ;
} /* end of [auxvar_13] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 13526(line=652, offs=1) -- 14137(line=680, offs=4)
*/
ATSstaticdec()
ats_void_type
auxpat_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6, ats_ptr_type arg7) {
/* local vardec */
// ATSlocal_void (tmp154) ;
ATSlocal (ats_ptr_type, tmp155) ;
ATSlocal (ats_ptr_type, tmp156) ;
ATSlocal (ats_ptr_type, tmp157) ;
ATSlocal (ats_ptr_type, tmp158) ;
ATSlocal (ats_ptr_type, tmp159) ;
ATSlocal (ats_ptr_type, tmp160) ;
ATSlocal (ats_ptr_type, tmp161) ;

__ats_lab_auxpat_14:
tmp155 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg5), atslab_hipat_node) ;
do {
/* branch: __ats_lab_48 */
__ats_lab_48_0:
if (((ats_sum_ptr_type)tmp155)->tag != 0) { goto __ats_lab_49_0 ; }
__ats_lab_48_1:
break ;

/* branch: __ats_lab_49 */
__ats_lab_49_0:
if (((ats_sum_ptr_type)tmp155)->tag != 1) { goto __ats_lab_50_0 ; }
__ats_lab_49_1:
/* tmp154 = */ auxvar_13 (arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) ;
break ;

/* branch: __ats_lab_50 */
__ats_lab_50_0:
if (((ats_sum_ptr_type)tmp155)->tag != 14) { goto __ats_lab_51_0 ; }
__ats_lab_50_1:
tmp156 = ats_caselptrlab_mac(anairiats_sum_3, tmp155, atslab_1) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = arg4 ;
arg5 = tmp156 ;
arg6 = arg6 ;
arg7 = arg7 ;
goto __ats_lab_auxpat_14 ; // tail call
break ;

/* branch: __ats_lab_51 */
__ats_lab_51_0:
if (((ats_sum_ptr_type)tmp155)->tag != 15) { goto __ats_lab_52_0 ; }
__ats_lab_51_1:
tmp157 = ats_caselptrlab_mac(anairiats_sum_3, tmp155, atslab_0) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = arg4 ;
arg5 = tmp157 ;
arg6 = arg6 ;
arg7 = arg7 ;
goto __ats_lab_auxpat_14 ; // tail call
break ;

/* branch: __ats_lab_52 */
__ats_lab_52_0:
__ats_lab_52_1:
tmp158 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg5), atslab_hipat_asvar) ;
if (tmp158 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 13973(line=674, offs=9) -- 14000(line=674, offs=36)") ; }
tmp159 = ats_caselptrlab_mac(anairiats_sum_2, tmp158, atslab_0) ;
tmp160 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_find_vbindmapenv (arg0, tmp159) ;
if (tmp160 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 14009(line=675, offs=9) -- 14060(line=675, offs=60)") ; }
tmp161 = ats_caselptrlab_mac(anairiats_sum_2, tmp160, atslab_0) ;
ATS_FREE(tmp160) ;
/* tmp154 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp (arg0, arg1, arg2, arg5, tmp161) ;
break ;
} while (0) ;
return /* (tmp154) */ ;
} /* end of [auxpat_14] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 14162(line=683, offs=1) -- 14620(line=707, offs=4)
*/
ATSstaticdec()
ats_void_type
auxpatlst_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5, ats_ptr_type arg6) {
/* local vardec */
// ATSlocal_void (tmp162) ;
ATSlocal (ats_ptr_type, tmp163) ;
ATSlocal (ats_ptr_type, tmp164) ;
ATSlocal (ats_ptr_type, tmp165) ;
ATSlocal (ats_ptr_type, tmp166) ;
// ATSlocal_void (tmp167) ;
ATSlocal (ats_int_type, tmp168) ;

__ats_lab_auxpatlst_15:
do {
/* branch: __ats_lab_53 */
__ats_lab_53_0:
if (arg4 != (ats_sum_ptr_type)0) { goto __ats_lab_54_0 ; }
__ats_lab_53_1:
break ;

/* branch: __ats_lab_54 */
__ats_lab_54_0:
// if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_54_1:
tmp163 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_0) ;
tmp164 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_1) ;

tmp165 = ats_caselptrlab_mac(anairiats_sum_4, tmp163, atslab_0) ;
tmp166 = ats_caselptrlab_mac(anairiats_sum_4, tmp163, atslab_1) ;
/* tmp167 = */ auxpat_14 (arg0, arg1, arg2, arg3, tmp165, tmp166, arg5, arg6) ;
tmp168 = atspre_add_int_int (arg3, 1) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp168 ;
arg4 = tmp164 ;
arg5 = arg5 ;
arg6 = arg6 ;
goto __ats_lab_auxpatlst_15 ; // tail call
break ;
} while (0) ;
return /* (tmp162) */ ;
} /* end of [auxpatlst_15] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 14693(line=713, offs=1) -- 14921(line=726, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_sum (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
// ATSlocal_void (tmp169) ;
ATSlocal (ats_ptr_type, tmp170) ;
ATSlocal (ats_ptr_type, tmp171) ;
ATSlocal (ats_ptr_type, tmp172) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_sum:
tmp170 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_node) ;
if (((ats_sum_ptr_type)tmp170)->tag != 11) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 14797(line=721, offs=5) -- 14850(line=722, offs=47)") ; }
tmp171 = ats_caselptrlab_mac(anairiats_sum_7, tmp170, atslab_2) ;
tmp172 = ats_caselptrlab_mac(anairiats_sum_7, tmp170, atslab_3) ;
/* tmp169 = */ auxpatlst_15 (arg0, arg1, arg2, 0, tmp172, arg4, tmp171) ;
return /* (tmp169) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_sum] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 15008(line=734, offs=5) -- 15953(line=776, offs=4)
*/
ATSstaticdec()
ats_void_type
auxvar_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
// ATSlocal_void (tmp173) ;
ATSlocal (ats_int_type, tmp174) ;
// ATSlocal_void (tmp175) ;
ATSlocal (ats_bool_type, tmp176) ;
ATSlocal (ats_bool_type, tmp177) ;
ATSlocal (ats_ptr_type, tmp178) ;
ATSlocal (ats_bool_type, tmp179) ;
ATSlocal (ats_ptr_type, tmp180) ;
ATSlocal (ats_ptr_type, tmp181) ;
ATSlocal (ats_ptr_type, tmp182) ;
// ATSlocal_void (tmp183) ;
ATSlocal (ats_ptr_type, tmp184) ;
ATSlocal (ats_ptr_type, tmp185) ;

__ats_lab_auxvar_17:
tmp174 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_utimes (arg3) ;
/* tmp175 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level (arg3, arg2) ;
tmp176 = atspre_gt_int_int (tmp174, 0) ;
if (tmp176) {
tmp178 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg4), atslab_primval_node) ;
do {
/* branch: __ats_lab_55 */
__ats_lab_55_0:
__ats_lab_55_1:
tmp179 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_is_mutabl (arg3) ;
if (!tmp179) { goto __ats_lab_56_1 ; }
tmp177 = ats_false_bool ;
break ;

/* branch: __ats_lab_56 */
__ats_lab_56_0:
__ats_lab_56_1:
tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_is_nshared (arg4) ;
break ;
} while (0) ;
if (tmp177) {
tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc (arg3) ;
tmp181 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_11, arg4), atslab_primval_type) ;
tmp182 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp180, tmp181) ;
tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_move_val (tmp180, tmp182, arg4) ;
/* tmp183 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add (arg1, tmp184) ;
tmp185 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_tmp (tmp180, tmp182) ;
/* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, arg3, tmp185) ;
} else {
/* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, arg3, arg4) ;
} /* end of [if] */
} else {
/* empty */
} /* end of [if] */
return /* (tmp173) */ ;
} /* end of [auxvar_17] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 16022(line=782, offs=1) -- 17480(line=868, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
// ATSlocal_void (tmp186) ;
ATSlocal (ats_ptr_type, tmp187) ;
ATSlocal (ats_ptr_type, tmp188) ;
ATSlocal (ats_ptr_type, tmp189) ;
ATSlocal (ats_ptr_type, tmp190) ;
ATSlocal (ats_ptr_type, tmp191) ;
// ATSlocal_void (tmp192) ;
ATSlocal (ats_ptr_type, tmp193) ;
ATSlocal (ats_ptr_type, tmp194) ;
ATSlocal (ats_ptr_type, tmp195) ;
// ATSlocal_void (tmp196) ;
ATSlocal (ats_ptr_type, tmp197) ;
ATSlocal (ats_ptr_type, tmp198) ;
// ATSlocal_void (tmp199) ;
// ATSlocal_void (tmp200) ;
// ATSlocal_void (tmp201) ;
ATSlocal (ats_ptr_type, tmp202) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp:
tmp187 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_loc) ;
tmp188 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_node) ;
do {
/* branch: __ats_lab_57 */
__ats_lab_57_0:
if (((ats_sum_ptr_type)tmp188)->tag != 0) { goto __ats_lab_58_0 ; }
__ats_lab_57_1:
break ;

/* branch: __ats_lab_58 */
__ats_lab_58_0:
if (((ats_sum_ptr_type)tmp188)->tag != 1) { goto __ats_lab_59_0 ; }
__ats_lab_58_1:
tmp189 = ats_caselptrlab_mac(anairiats_sum_6, tmp188, atslab_0) ;
/* tmp186 = */ auxvar_17 (arg0, arg1, arg2, tmp189, arg4) ;
break ;

/* branch: __ats_lab_59 */
__ats_lab_59_0:
if (((ats_sum_ptr_type)tmp188)->tag != 2) { goto __ats_lab_60_0 ; }
__ats_lab_59_1:
break ;

/* branch: __ats_lab_60 */
__ats_lab_60_0:
if (((ats_sum_ptr_type)tmp188)->tag != 3) { goto __ats_lab_61_0 ; }
__ats_lab_60_1:
break ;

/* branch: __ats_lab_61 */
__ats_lab_61_0:
if (((ats_sum_ptr_type)tmp188)->tag != 4) { goto __ats_lab_62_0 ; }
__ats_lab_61_1:
break ;

/* branch: __ats_lab_62 */
__ats_lab_62_0:
if (((ats_sum_ptr_type)tmp188)->tag != 5) { goto __ats_lab_63_0 ; }
__ats_lab_62_1:
break ;

/* branch: __ats_lab_63 */
__ats_lab_63_0:
if (((ats_sum_ptr_type)tmp188)->tag != 6) { goto __ats_lab_64_0 ; }
__ats_lab_63_1:
break ;

/* branch: __ats_lab_64 */
__ats_lab_64_0:
if (((ats_sum_ptr_type)tmp188)->tag != 8) { goto __ats_lab_65_0 ; }
__ats_lab_64_1:
break ;

/* branch: __ats_lab_65 */
__ats_lab_65_0:
if (((ats_sum_ptr_type)tmp188)->tag != 9) { goto __ats_lab_66_0 ; }
__ats_lab_65_1:
break ;

/* branch: __ats_lab_66 */
__ats_lab_66_0:
if (((ats_sum_ptr_type)tmp188)->tag != 10) { goto __ats_lab_67_0 ; }
__ats_lab_66_1:
break ;

/* branch: __ats_lab_67 */
__ats_lab_67_0:
if (((ats_sum_ptr_type)tmp188)->tag != 11) { goto __ats_lab_68_0 ; }
__ats_lab_67_1:
tmp190 = ats_caselptrlab_mac(anairiats_sum_7, tmp188, atslab_0) ;
tmp191 = ats_caselptrlab_mac(anairiats_sum_7, tmp188, atslab_1) ;
/* tmp192 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freeconenv_if (arg0, arg4, tmp190, tmp191) ;
/* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_sum (arg0, arg1, arg2, arg3, arg4) ;
break ;

/* branch: __ats_lab_68 */
__ats_lab_68_0:
if (((ats_sum_ptr_type)tmp188)->tag != 12) { goto __ats_lab_69_0 ; }
__ats_lab_68_1:
tmp193 = ats_caselptrlab_mac(anairiats_sum_3, tmp188, atslab_0) ;
tmp194 = ats_caselptrlab_mac(anairiats_sum_3, tmp188, atslab_1) ;
/* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freeconenv_if (arg0, arg4, tmp193, tmp194) ;
break ;

/* branch: __ats_lab_69 */
__ats_lab_69_0:
if (((ats_sum_ptr_type)tmp188)->tag != 13) { goto __ats_lab_70_0 ; }
__ats_lab_69_1:
tmp195 = ats_caselptrlab_mac(anairiats_sum_5, tmp188, atslab_1) ;
/* tmp196 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_freetupenv_if (arg0, arg4, tmp195) ;
/* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__himatch_ccomp_rec (arg0, arg1, arg2, arg3, arg4) ;
break ;

/* branch: __ats_lab_70 */
__ats_lab_70_0:
if (((ats_sum_ptr_type)tmp188)->tag != 14) { goto __ats_lab_71_0 ; }
__ats_lab_70_1:
tmp197 = ats_caselptrlab_mac(anairiats_sum_3, tmp188, atslab_1) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp197 ;
arg4 = arg4 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp ; // tail call
break ;

/* branch: __ats_lab_71 */
__ats_lab_71_0:
if (((ats_sum_ptr_type)tmp188)->tag != 15) { goto __ats_lab_72_0 ; }
__ats_lab_71_1:
tmp198 = ats_caselptrlab_mac(anairiats_sum_3, tmp188, atslab_0) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp198 ;
arg4 = arg4 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp ; // tail call
break ;

/* branch: __ats_lab_72 */
__ats_lab_72_0:
__ats_lab_72_1:
/* tmp199 = */ atspre_print_string (ATSstrcst("himatch_ccomp: hip0 = ")) ;
/* tmp200 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hipat (arg3) ;
/* tmp201 = */ atspre_print_newline () ;
tmp202 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 17373(line=862, offs=5) -- 17382(line=862, offs=14)", ATSstrcst("\n")) ;
/* tmp186 = */ ats_exit_errmsg (1, tmp202) ;
break ;
} while (0) ;
return /* (tmp186) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 17581(line=876, offs=1) -- 17821(line=886, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch2_ccomp (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
// ATSlocal_void (tmp203) ;
// ATSlocal_void (tmp204) ;
// ATSlocal_void (tmp205) ;
ATSlocal (ats_ptr_type, tmp206) ;
ATSlocal (ats_ptr_type, tmp207) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch2_ccomp:
/* tmp204 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_freeconenv (arg0) ;
/* tmp205 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp (arg0, arg1, arg2, arg3, arg4) ;
tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_getdec_freeconenv (arg0) ;
tmp207 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_hipat_loc) ;
/* tmp203 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_freeconlst (arg1, tmp207, tmp206) ;
return /* (tmp203) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch2_ccomp] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 18018(line=898, offs=3) -- 18383(line=920, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__primval_make_funarg (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp208) ;
ATSlocal (ats_ptr_type, tmp209) ;
ATSlocal (ats_int_type, tmp210) ;
ATSlocal (ats_bool_type, tmp211) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__primval_make_funarg:
tmp209 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_0, arg1), atslab_hisexp_node) ;
do {
/* branch: __ats_lab_73 */
__ats_lab_73_0:
if (((ats_sum_ptr_type)tmp209)->tag != 6) { goto __ats_lab_74_0 ; }
__ats_lab_73_1:
tmp210 = ats_caselptrlab_mac(anairiats_sum_12, tmp209, atslab_0) ;
tmp211 = atspre_eq_int_int (tmp210, 0) ;
if (tmp211) {
tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_arg (arg0, arg1, arg2) ;
} else {
tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argref (arg0, arg1, arg2) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_74 */
__ats_lab_74_0:
if (((ats_sum_ptr_type)tmp209)->tag != 13) { goto __ats_lab_75_0 ; }
__ats_lab_74_1:
tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_argtmpref (arg0, arg1, arg2) ;
break ;

/* branch: __ats_lab_75 */
__ats_lab_75_0:
__ats_lab_75_1:
tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_arg (arg0, arg1, arg2) ;
break ;
} while (0) ;
return (tmp208) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__primval_make_funarg] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 18516(line=931, offs=1) -- 19301(line=977, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxpatck_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp213) ;
ATSlocal (ats_ptr_type, tmp214) ;
ATSlocal (ats_ptr_type, tmp215) ;
ATSlocal (ats_ptr_type, tmp216) ;
ATSlocal (ats_ptr_type, tmp217) ;
ATSlocal (ats_ptr_type, tmp218) ;
// ATSlocal_void (tmp219) ;
ATSlocal (ats_ptr_type, tmp220) ;
ATSlocal (ats_int_type, tmp221) ;

__ats_lab_auxpatck_22:
do {
/* branch: __ats_lab_76 */
__ats_lab_76_0:
if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; }
__ats_lab_76_1:
tmp213 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_77 */
__ats_lab_77_0:
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_77_1:
tmp214 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_0) ;
tmp215 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_1) ;
tmp216 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp214), atslab_hipat_loc) ;
tmp217 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp214), atslab_hipat_type) ;
tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__primval_make_funarg (tmp216, tmp217, arg2) ;
/* tmp219 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp (arg0, arg1, arg4, tmp214, tmp218) ;
tmp221 = atspre_add_int_int (arg2, 1) ;
tmp220 = auxpatck_22 (arg0, arg1, tmp221, tmp215, arg4) ;
tmp213 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp213, atslab_0, tmp218) ;
ats_selptrset_mac(anairiats_sum_4, tmp213, atslab_1, tmp220) ;
break ;
} while (0) ;
return (tmp213) ;
} /* end of [auxpatck_22] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 19330(line=979, offs=5) -- 19733(line=1000, offs=4)
*/
ATSstaticdec()
ats_void_type
auxmatch_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
// ATSlocal_void (tmp222) ;
ATSlocal (ats_ptr_type, tmp223) ;
ATSlocal (ats_ptr_type, tmp224) ;
ATSlocal (ats_ptr_type, tmp225) ;
ATSlocal (ats_ptr_type, tmp226) ;
// ATSlocal_void (tmp227) ;

__ats_lab_auxmatch_23:
do {
/* branch: __ats_lab_78 */
__ats_lab_78_0:
if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_79_0 ; }
__ats_lab_78_1:
tmp223 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_0) ;
tmp224 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_1) ;
ATS_FREE(arg4) ;
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp225 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_0) ;
tmp226 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_1) ;
/* tmp227 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch_ccomp (arg0, arg1, arg2, tmp225, tmp223) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp226 ;
arg4 = tmp224 ;
goto __ats_lab_auxmatch_23 ; // tail call
break ;

/* branch: __ats_lab_79 */
__ats_lab_79_0:
// if (arg4 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_79_1:
break ;
} while (0) ;
return /* (tmp222) */ ;
} /* end of [auxmatch_23] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_hipat.dats: 18463(line=926, offs=1) -- 19896(line=1007, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifunarg_ccomp (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) {
/* local vardec */
// ATSlocal_void (tmp212) ;
ATSlocal (ats_ptr_type, tmp228) ;
ATSlocal (ats_ptr_type, tmp229) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifunarg_ccomp:
tmp228 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
((ats_sum_ptr_type)tmp228)->tag = 5 ;
ats_selptrset_mac(anairiats_sum_3, tmp228, atslab_0, arg4) ;
ats_selptrset_mac(anairiats_sum_3, tmp228, atslab_1, arg2) ;
tmp229 = auxpatck_22 (arg0, arg1, 0, arg5, tmp228) ;
/* tmp212 = */ auxmatch_23 (arg0, arg1, arg3, arg5, tmp229) ;
return /* (tmp212) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifunarg_ccomp] */

/* static load function */

// extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__staload_flag = 1 ;

// ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ;

return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_hipat_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_ccomp_hipat_dats.c] */
