/*
**
** 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_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_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_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#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_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"
/* 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_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_1 ;

typedef
struct {
ats_ptr_type atslab_lstbefitm_var ;
ats_int_type atslab_lstbefitm_linval ;
ats_ptr_type atslab_lstbefitm_type ;
} anairiats_rec_2 ;

typedef struct {
ats_ptr_type atslab_0 ;
} anairiats_sum_3 ;

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

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

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

typedef
struct {
ats_ptr_type atslab_loopi2nv_loc ;
ats_ptr_type atslab_loopi2nv_svs ;
ats_ptr_type atslab_loopi2nv_gua ;
ats_ptr_type atslab_loopi2nv_arg ;
ats_ptr_type atslab_loopi2nv_met ;
ats_ptr_type atslab_loopi2nv_res ;
} anairiats_rec_7 ;

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

typedef
struct {
ats_ptr_type atslab_i2nvresstate_svs ;
ats_ptr_type atslab_i2nvresstate_gua ;
ats_ptr_type atslab_i2nvresstate_arg ;
ats_ptr_type atslab_i2nvresstate_met ;
} anairiats_rec_9 ;

typedef
struct {
ats_ptr_type atslab_d3exp_loc ;
ats_ptr_type atslab_d3exp_type ;
ats_ptr_type atslab_d3exp_node ;
} anairiats_rec_10 ;

typedef struct {
int tag ;
ats_ptr_type atslab_0 ;
ats_int_type atslab_1 ;
} 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_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_loopexn_88) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_some_89) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_d2var_some2_91) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_var_8) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKloop_9) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__LAMLPlam_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__LAMLPloop0_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__LAMLPloop1_2) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_prerr_newline) () ;
ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_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_void_type, atspre_prerr_string) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ;
ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refeq) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2expopt_subst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_t0ype) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_bool_index_t0ype) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_loop) (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_dynexp3_2esats__d3exp_loopexn) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isdec) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt_neg) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2explst_check_termet) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ntm) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_opnset_and_add) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitm_make) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_top) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_pop) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_loop0) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_loop1) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__d2exp_trup_loop_dryrun) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;

/* external dynamic terminating constant declarations */
#ifdef _ATS_PROOFCHECK
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_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 */
/* internal function declarations */
static
ats_void_type prerr_FILENAME_02045_ () ;
static
ats_void_type d2var_reset_type_1 (ats_ptr_type arg0) ;
static
ats_void_type lstbefitmlst_opnset_and_add_2 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type loop_5 (ats_ptr_type arg0) ;
static
ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type aux_6 (ats_ptr_type arg0) ;
static
ats_void_type loop_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type prerr_error3_loc_02051_ (ats_ptr_type arg0) ;
static
ats_void_type auxerr_none_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type auxerr_some_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type auxerr_some2_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_void_type auxVarCK_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_void_type auxMetCK_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type auxitm_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_void_type auxitmlst_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_void_type auxEnter_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type auxitm1_20 (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 auxitm2_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_void_type auxitm3_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type auxitmlst_23 (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 auxBreak_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type auxitm1_25 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ;
static
ats_void_type auxitm2_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type auxitmlst_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ;
static
ats_ptr_type auxContinue_24 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_void_type option_vt_free_01544_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type auxerr_31 (ats_ptr_type arg0, ats_int_type arg1) ;

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

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 1622(line=50, offs=18) -- 1654(line=50, offs=50)
*/
ATSstaticdec()
ats_void_type
prerr_FILENAME_02045_ () {
/* local vardec */
// ATSlocal_void (tmp0) ;

__ats_lab_prerr_FILENAME_02045_:
/* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_looping")) ;
return /* (tmp0) */ ;
} /* end of [prerr_FILENAME_02045_] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 2066(line=76, offs=5) -- 2153(line=78, offs=48)
*/
ATSstaticdec()
ats_void_type
d2var_reset_type_1 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp1) ;
ATSlocal (ats_ptr_type, tmp2) ;

__ats_lab_d2var_reset_type_1:
tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype (arg0) ;
/* tmp1 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg0, tmp2) ;
return /* (tmp1) */ ;
} /* end of [d2var_reset_type_1] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 2209(line=84, offs=1) -- 2483(line=96, offs=4)
*/
ATSstaticdec()
ats_void_type
lstbefitmlst_opnset_and_add_2 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp3) ;
ATSlocal (ats_ptr_type, tmp4) ;
ATSlocal (ats_ptr_type, tmp5) ;
// ATSlocal_void (tmp6) ;
ATSlocal (ats_ptr_type, tmp7) ;

__ats_lab_lstbefitmlst_opnset_and_add_2:
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; }
__ats_lab_0_1:
break ;

/* branch: __ats_lab_1 */
__ats_lab_1_0:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_1_1:
tmp4 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ;
tmp5 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ;
tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp4), atslab_lstbefitm_var) ;
/* tmp6 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_opnset_and_add (arg0, tmp7) ;
arg0 = arg0 ;
arg1 = tmp5 ;
goto __ats_lab_lstbefitmlst_opnset_and_add_2 ; // tail call
break ;
} while (0) ;
return /* (tmp3) */ ;
} /* end of [lstbefitmlst_opnset_and_add_2] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4893(line=177, offs=7) -- 5015(line=178, offs=73)
*/
ATSstaticdec()
ats_void_type
loop_5 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp23) ;
ATSlocal (ats_ptr_type, tmp24) ;

__ats_lab_loop_5:
do {
/* branch: __ats_lab_4 */
__ats_lab_4_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; }
__ats_lab_4_1:
tmp24 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ;
ATS_FREE(arg0) ;
arg0 = tmp24 ;
goto __ats_lab_loop_5 ; // tail call
break ;

/* branch: __ats_lab_5 */
__ats_lab_5_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_5_1:
break ;
} while (0) ;
return /* (tmp23) */ ;
} /* end of [loop_5] */

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

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

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 3700(line=158, offs=1) -- 4387(line=188, offs=4)
*/
ATSstaticdec()
ats_ptr_type
aux_6 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp25) ;
ATSlocal (ats_ptr_type, tmp26) ;
ATSlocal (ats_ptr_type, tmp27) ;
ATSlocal (ats_ptr_type, tmp28) ;
// ATSlocal_void (tmp29) ;
ATSlocal (ats_ptr_type, tmp30) ;
ATSlocal (ats_ptr_type, tmp31) ;
ATSlocal (ats_bool_type, tmp32) ;
ATSlocal (ats_bool_type, tmp33) ;
ATSlocal (ats_int_type, tmp34) ;

__ats_lab_aux_6:
tmp26 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_lstbefitm_var) ;
tmp27 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg0), atslab_lstbefitm_type) ;
tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (tmp26) ;
do {
/* branch: __ats_lab_6 */
__ats_lab_6_0:
if (tmp27 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; }
__ats_lab_6_1:
if (tmp28 == (ats_sum_ptr_type)0) { goto __ats_lab_8_1 ; }
__ats_lab_6_2:
tmp30 = ats_caselptrlab_mac(anairiats_sum_3, tmp27, atslab_0) ;
tmp31 = ats_caselptrlab_mac(anairiats_sum_3, tmp28, atslab_0) ;
tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refeq (tmp30, tmp31) ;
tmp33 = atspre_neg_bool (tmp32) ;
if (tmp33) {
/* tmp29 = */ d2var_reset_type_1 (tmp26) ;
} else {
/* empty */
} /* end of [if] */
break ;

/* branch: __ats_lab_7 */
__ats_lab_7_0:
if (tmp27 != (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; }
__ats_lab_7_1:
if (tmp28 != (ats_sum_ptr_type)0) { goto __ats_lab_8_1 ; }
__ats_lab_7_2:
break ;

/* branch: __ats_lab_8 */
__ats_lab_8_0:
__ats_lab_8_1:
__ats_lab_8_2:
/* tmp29 = */ d2var_reset_type_1 (tmp26) ;
break ;
} while (0) ;
tmp34 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_linval (tmp26) ;
tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitm_make (tmp26, tmp34) ;
return (tmp25) ;
} /* end of [aux_6] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_9 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp38) ;
ATSlocal (ats_ptr_type, tmp39) ;
ATSlocal (ats_ptr_type, tmp40) ;
ATSlocal (ats_ptr_type, tmp41) ;
ATSlocal (ats_ptr_type, tmp42) ;
ATSlocal (ats_ptr_type, tmp43) ;
ATSlocal (ats_ptr_type, tmp44) ;

__ats_lab_loop_9:
do {
/* branch: __ats_lab_9 */
__ats_lab_9_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_10_0 ; }
__ats_lab_9_1:
tmp39 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_0) ;
tmp40 = ats_caselptrlab_mac(anairiats_sum_1, arg0, atslab_1) ;
tmp41 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp39, arg3) ;
tmp42 = ATS_MALLOC(sizeof(anairiats_sum_1)) ;
ats_selptrset_mac(anairiats_sum_1, tmp42, atslab_0, tmp41) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp42 ;
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp43 = &ats_caselptrlab_mac(anairiats_sum_1, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
arg0 = tmp40 ;
arg1 = arg1 ;
arg2 = tmp43 ;
arg3 = arg3 ;
goto __ats_lab_loop_9 ; // tail call
break ;

/* branch: __ats_lab_10 */
__ats_lab_10_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_10_1:
tmp44 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp44 ;
break ;
} while (0) ;
return /* (tmp38) */ ;
} /* end of [loop_9] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 52444(line=1870, offs=3) -- 53099(line=1899, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_map_funenv_01412_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp37) ;
ATSlocal (ats_ptr_type, tmp45) ;
// ATSlocal_void (tmp46) ;

__ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type:
/* ats_ptr_type tmp45 ; */
/* tmp46 = */ loop_9 (arg0, arg1, (&tmp45), arg2) ;
tmp37 = tmp45 ;
return (tmp37) ;
} /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 53173(line=1904, offs=3) -- 53424(line=1911, offs=2)
*/
ATSstaticdec()
ats_ptr_type
list_map_fun_01413_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp36) ;

__ats_lab_list_map_fun_01413_ats_ptr_type_ats_ptr_type:
tmp36 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ;
return (tmp36) ;
} /* end of [list_map_fun_01413_ats_ptr_type_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 3107(line=130, offs=1) -- 4482(line=194, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__d2exp_trup_loop_dryrun (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp8) ;
// ATSlocal_void (tmp9) ;
// ATSlocal_void (tmp10) ;
// ATSlocal_void (tmp11) ;
// ATSlocal_void (tmp12) ;
ATSlocal (ats_ptr_type, tmp13) ;
ATSlocal (ats_ptr_type, tmp14) ;
ATSlocal (ats_ptr_type, tmp15) ;
ATSlocal (ats_ptr_type, tmp16) ;
ATSlocal (ats_ptr_type, tmp17) ;
ATSlocal (ats_ptr_type, tmp18) ;
// ATSlocal_void (tmp19) ;
ATSlocal (ats_ptr_type, tmp20) ;
// ATSlocal_void (tmp21) ;
ATSlocal (ats_ptr_type, tmp35) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__d2exp_trup_loop_dryrun:
/* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ;
/* tmp10 = ats_selsin_mac(tmp9, atslab_1) */ ;
/* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_loop0 () ;
/* tmp12 = ats_selsin_mac(tmp11, atslab_1) */ ;
tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg2) ;
tmp14 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg4) ;
do {
/* branch: __ats_lab_2 */
__ats_lab_2_0:
if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; }
__ats_lab_2_1:
tmp16 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ;
tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ;
tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp16, tmp17) ;
tmp15 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp15, atslab_0, tmp18) ;
break ;

/* branch: __ats_lab_3 */
__ats_lab_3_0:
// if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_3_1:
tmp15 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
/* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_pop () ;
tmp20 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop () ;
/* tmp21 = */ list_vt_free_01499_ats_ptr_type (tmp20) ;
tmp35 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg1, &aux_6) ;
tmp8 = ats_castfn_mac(ats_ptr_type, tmp35) ;
return (tmp8) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__d2exp_trup_loop_dryrun] */

/*
// /tmp/ATS-Postiats/src/pats_errmsg.dats: 2341(line=88, offs=17) -- 2399(line=91, offs=2)
*/
ATSstaticdec()
ats_void_type
prerr_error3_loc_02051_ (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp49) ;
// ATSlocal_void (tmp50) ;

__ats_lab_prerr_error3_loc_02051_:
/* tmp50 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ;
/* tmp49 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ;
return /* (tmp49) */ ;
} /* end of [prerr_error3_loc_02051_] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 4553(line=201, offs=1) -- 4945(line=218, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_none_10 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp47) ;
// ATSlocal_void (tmp48) ;
// ATSlocal_void (tmp51) ;
// ATSlocal_void (tmp52) ;
// ATSlocal_void (tmp53) ;
// ATSlocal_void (tmp54) ;
// ATSlocal_void (tmp55) ;
// ATSlocal_void (tmp56) ;
ATSlocal (ats_ptr_type, tmp57) ;

__ats_lab_auxerr_none_10:
/* tmp48 = */ prerr_error3_loc_02051_ (arg0) ;
/* tmp51 = */ atspre_prerr_string (ATSstrcst(": the dynamic variable [")) ;
/* tmp52 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ;
/* tmp53 = */ atspre_prerr_string (ATSstrcst("] is retained with the type [")) ;
/* tmp54 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg2) ;
/* tmp55 = */ atspre_prerr_string (ATSstrcst("but it should be consumed instead.")) ;
/* tmp56 = */ atspre_prerr_newline () ;
tmp57 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp57)->tag = 89 ;
ats_selptrset_mac(anairiats_sum_4, tmp57, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_4, tmp57, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_4, tmp57, atslab_2, arg2) ;
/* tmp47 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp57) ;
return /* (tmp47) */ ;
} /* end of [auxerr_none_10] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 4975(line=221, offs=1) -- 5372(line=238, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_some_12 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp58) ;
// ATSlocal_void (tmp59) ;
// ATSlocal_void (tmp60) ;
// ATSlocal_void (tmp61) ;
// ATSlocal_void (tmp62) ;
// ATSlocal_void (tmp63) ;
// ATSlocal_void (tmp64) ;
// ATSlocal_void (tmp65) ;
ATSlocal (ats_ptr_type, tmp66) ;

__ats_lab_auxerr_some_12:
/* tmp59 = */ prerr_error3_loc_02051_ (arg0) ;
/* tmp60 = */ atspre_prerr_string (ATSstrcst(": the dynamic variable [")) ;
/* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ;
/* tmp62 = */ atspre_prerr_string (ATSstrcst("] is consumed but it should be retained with the type [")) ;
/* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg2) ;
/* tmp64 = */ atspre_prerr_string (ATSstrcst("] instead.")) ;
/* tmp65 = */ atspre_prerr_newline () ;
tmp66 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
((ats_sum_ptr_type)tmp66)->tag = 89 ;
ats_selptrset_mac(anairiats_sum_4, tmp66, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_4, tmp66, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_4, tmp66, atslab_2, arg2) ;
/* tmp58 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp66) ;
return /* (tmp58) */ ;
} /* end of [auxerr_some_12] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 5402(line=241, offs=1) -- 5789(line=257, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_some2_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp67) ;
// ATSlocal_void (tmp68) ;
// ATSlocal_void (tmp69) ;
// ATSlocal_void (tmp70) ;
// ATSlocal_void (tmp71) ;
// ATSlocal_void (tmp72) ;
// ATSlocal_void (tmp73) ;
ATSlocal (ats_ptr_type, tmp74) ;

__ats_lab_auxerr_some2_13:
/* tmp68 = */ prerr_error3_loc_02051_ (arg0) ;
/* tmp69 = */ atspre_prerr_string (ATSstrcst(": the dynamic variable [")) ;
/* tmp70 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ;
/* tmp71 = */ atspre_prerr_string (ATSstrcst("] is retained but with a type that fails to merge.")) ;
/* tmp72 = */ atspre_prerr_newline () ;
/* tmp73 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ;
tmp74 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp74)->tag = 91 ;
ats_selptrset_mac(anairiats_sum_5, tmp74, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_5, tmp74, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_5, tmp74, atslab_2, arg2) ;
ats_selptrset_mac(anairiats_sum_5, tmp74, atslab_3, arg3) ;
/* tmp67 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp74) ;
return /* (tmp67) */ ;
} /* end of [auxerr_some2_13] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 5841(line=262, offs=1) -- 6980(line=314, offs=4)
*/
ATSstaticdec()
ats_void_type
auxVarCK_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp75) ;
ATSlocal (ats_ptr_type, tmp76) ;
ATSlocal (ats_ptr_type, tmp77) ;
ATSlocal (ats_int_type, tmp78) ;
ATSlocal (ats_bool_type, tmp79) ;
ATSlocal (ats_bool_type, tmp81) ;
// ATSlocal_void (tmp82) ;
// ATSlocal_void (tmp83) ;
ATSlocal (ats_int_type, tmp84) ;
ATSlocal (ats_ptr_type, tmp85) ;
// ATSlocal_void (tmp86) ;
ATSlocal (ats_bool_type, tmp87) ;
// ATSlocal_void (tmp88) ;
ATSlocal (ats_ptr_type, tmp89) ;

__ats_lab_auxVarCK_14:
do {
/* branch: __ats_lab_11 */
__ats_lab_11_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_14_0 ; }
__ats_lab_11_1:
tmp76 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ;
do {
/* branch: __ats_lab_12 */
__ats_lab_12_0:
if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; }
__ats_lab_12_1:
tmp77 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ;
/* ats_int_type tmp78 ; */
tmp78 = 0 ;
tmp79 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refeq (tmp76, tmp77) ;
tmp81 = atspre_neg_bool (tmp79) ;
if (tmp81) {
/* tmp82 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ;
/* tmp83 = ats_selsin_mac(tmp82, atslab_1) */ ;
tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_tyleq_solve (arg0, tmp76, tmp77) ;
tmp85 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
((ats_sum_ptr_type)tmp85)->tag = 8 ;
ats_selptrset_mac(anairiats_sum_6, tmp85, atslab_0, arg1) ;
/* tmp86 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add (arg0, tmp85) ;
tmp78 = tmp84 ;
} else {
/* empty */
} /* end of [if] */
tmp87 = atspre_gt_int_int (tmp78, 0) ;
if (tmp87) {
/* tmp88 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__prerr_the_staerrlst () ;
/* tmp75 = */ auxerr_some2_13 (arg0, arg1, tmp76, tmp77) ;
} else {
/* empty */
} /* end of [if] */
break ;

/* branch: __ats_lab_13 */
__ats_lab_13_0:
// if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_13_1:
/* tmp75 = */ auxerr_none_10 (arg0, arg1, tmp76) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_14 */
__ats_lab_14_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_14_1:
do {
/* branch: __ats_lab_15 */
__ats_lab_15_0:
if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; }
__ats_lab_15_1:
tmp89 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ;
/* tmp75 = */ auxerr_some_12 (arg0, arg1, tmp89) ;
break ;

/* branch: __ats_lab_16 */
__ats_lab_16_0:
// if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_16_1:
break ;
} while (0) ;
break ;
} while (0) ;
return /* (tmp75) */ ;
} /* end of [auxVarCK_14] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 7028(line=319, offs=1) -- 7331(line=333, offs=4)
*/
ATSstaticdec()
ats_void_type
auxMetCK_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp90) ;
ATSlocal (ats_ptr_type, tmp91) ;
ATSlocal (ats_ptr_type, tmp92) ;
ATSlocal (ats_ptr_type, tmp93) ;

__ats_lab_auxMetCK_15:
do {
/* branch: __ats_lab_17 */
__ats_lab_17_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_18_0 ; }
__ats_lab_17_1:
tmp91 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ;
tmp92 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst (arg1, tmp91) ;
tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isdec (arg0, tmp92, tmp91) ;
/* tmp90 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr (tmp93) ;
break ;

/* branch: __ats_lab_18 */
__ats_lab_18_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_18_1:
break ;
} while (0) ;
return /* (tmp90) */ ;
} /* end of [auxMetCK_15] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 7510(line=349, offs=1) -- 8252(line=382, offs=4)
*/
ATSstaticdec()
ats_void_type
auxitm_17 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp95) ;
ATSlocal (ats_ptr_type, tmp96) ;
ATSlocal (ats_ptr_type, tmp97) ;
ATSlocal (ats_ptr_type, tmp98) ;
ATSlocal (ats_ptr_type, tmp99) ;
ATSlocal (ats_ptr_type, tmp100) ;
ATSlocal (ats_ptr_type, tmp101) ;
ATSlocal (ats_bool_type, tmp102) ;
ATSlocal (ats_ptr_type, tmp103) ;
ATSlocal (ats_ptr_type, tmp104) ;
ATSlocal (ats_ptr_type, tmp105) ;

__ats_lab_auxitm_17:
tmp96 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_lstbefitm_var) ;
do {
/* branch: __ats_lab_19 */
__ats_lab_19_0:
if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; }
__ats_lab_19_1:
tmp97 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_lstbefitm_type) ;
tmp98 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (tmp96) ;
/* tmp95 = */ auxVarCK_14 (arg0, tmp96, tmp97, tmp98) ;
break ;

/* branch: __ats_lab_20 */
__ats_lab_20_0:
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_20_1:
tmp99 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ;
tmp100 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_1) ;
tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var (tmp99) ;
tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (tmp96, tmp101) ;
if (tmp102) {
tmp103 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_lstbefitm_type) ;
tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type (tmp99) ;
tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2expopt_subst (arg1, tmp104) ;
/* tmp95 = */ auxVarCK_14 (arg0, tmp96, tmp103, tmp105) ;
} else {
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp100 ;
arg3 = arg3 ;
goto __ats_lab_auxitm_17 ; // tail call
} /* end of [if] */
break ;
} while (0) ;
return /* (tmp95) */ ;
} /* end of [auxitm_17] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 8282(line=385, offs=1) -- 8576(line=402, offs=4)
*/
ATSstaticdec()
ats_void_type
auxitmlst_18 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp106) ;
ATSlocal (ats_ptr_type, tmp107) ;
ATSlocal (ats_ptr_type, tmp108) ;
// ATSlocal_void (tmp109) ;

__ats_lab_auxitmlst_18:
do {
/* branch: __ats_lab_21 */
__ats_lab_21_0:
if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; }
__ats_lab_21_1:
break ;

/* branch: __ats_lab_22 */
__ats_lab_22_0:
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_22_1:
tmp107 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ;
tmp108 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ;
/* tmp109 = */ auxitm_17 (arg0, arg1, arg2, tmp107) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp108 ;
goto __ats_lab_auxitmlst_18 ; // tail call
break ;
} while (0) ;
return /* (tmp106) */ ;
} /* end of [auxitmlst_18] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 7379(line=338, offs=1) -- 9064(line=428, offs=4)
*/
ATSstaticdec()
ats_void_type
auxEnter_16 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp94) ;
ATSlocal (ats_ptr_type, tmp110) ;
ATSlocal (ats_ptr_type, tmp111) ;
// ATSlocal_void (tmp112) ;
// ATSlocal_void (tmp113) ;
ATSlocal (ats_ptr_type, tmp114) ;
ATSlocal (ats_ptr_type, tmp115) ;
// ATSlocal_void (tmp116) ;
// ATSlocal_void (tmp117) ;
ATSlocal (ats_ptr_type, tmp118) ;
ATSlocal (ats_ptr_type, tmp119) ;
// ATSlocal_void (tmp120) ;

__ats_lab_auxEnter_16:
tmp111 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_svs) ;
tmp110 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst (arg0, tmp111) ;
/* tmp112 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ;
/* tmp113 = ats_selsin_mac(tmp112, atslab_1) */ ;
tmp115 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_gua) ;
tmp114 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (tmp110, tmp115) ;
/* tmp116 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp114) ;
tmp118 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_arg) ;
/* tmp117 = */ auxitmlst_18 (arg0, tmp110, tmp118, arg2) ;
tmp119 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp119)->tag = 9 ;
ats_selptrset_mac(anairiats_sum_8, tmp119, atslab_0, -1) ;
/* tmp120 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add (arg0, tmp119) ;
/* tmp94 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp110) ;
return /* (tmp94) */ ;
} /* end of [auxEnter_16] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 9243(line=444, offs=1) -- 9996(line=478, offs=4)
*/
ATSstaticdec()
ats_void_type
auxitm1_20 (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 (tmp122) ;
ATSlocal (ats_ptr_type, tmp123) ;
ATSlocal (ats_ptr_type, tmp124) ;
ATSlocal (ats_ptr_type, tmp125) ;
ATSlocal (ats_ptr_type, tmp126) ;
ATSlocal (ats_ptr_type, tmp127) ;
ATSlocal (ats_bool_type, tmp128) ;
ATSlocal (ats_ptr_type, tmp129) ;
ATSlocal (ats_ptr_type, tmp130) ;
ATSlocal (ats_ptr_type, tmp131) ;

__ats_lab_auxitm1_20:
tmp123 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg5), atslab_lstbefitm_var) ;
do {
/* branch: __ats_lab_23 */
__ats_lab_23_0:
if (arg4 != (ats_sum_ptr_type)0) { goto __ats_lab_24_0 ; }
__ats_lab_23_1:
tmp124 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_arg) ;
/* tmp122 = */ auxitm2_21 (arg0, arg2, tmp124, arg5) ;
break ;

/* branch: __ats_lab_24 */
__ats_lab_24_0:
// if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_24_1:
tmp125 = ats_caselptrlab_mac(anairiats_sum_1, arg4, atslab_0) ;
tmp126 = ats_caselptrlab_mac(anairiats_sum_1, arg4, atslab_1) ;
tmp127 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var (tmp125) ;
tmp128 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (tmp123, tmp127) ;
if (tmp128) {
tmp129 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg5), atslab_lstbefitm_type) ;
tmp130 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type (tmp125) ;
tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2expopt_subst (arg3, tmp130) ;
/* tmp122 = */ auxVarCK_14 (arg0, tmp123, tmp129, tmp131) ;
} else {
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = tmp126 ;
arg5 = arg5 ;
goto __ats_lab_auxitm1_20 ; // tail call
} /* end of [if] */
break ;
} while (0) ;
return /* (tmp122) */ ;
} /* end of [auxitm1_20] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 10024(line=481, offs=1) -- 10679(line=512, offs=4)
*/
ATSstaticdec()
ats_void_type
auxitm2_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp132) ;
ATSlocal (ats_ptr_type, tmp133) ;
ATSlocal (ats_ptr_type, tmp134) ;
ATSlocal (ats_ptr_type, tmp135) ;
ATSlocal (ats_ptr_type, tmp136) ;
ATSlocal (ats_bool_type, tmp137) ;
ATSlocal (ats_ptr_type, tmp138) ;
ATSlocal (ats_ptr_type, tmp139) ;

__ats_lab_auxitm2_21:
tmp133 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_lstbefitm_var) ;
do {
/* branch: __ats_lab_25 */
__ats_lab_25_0:
if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_26_0 ; }
__ats_lab_25_1:
/* tmp132 = */ auxitm3_22 (arg0, arg1, arg3) ;
break ;

/* branch: __ats_lab_26 */
__ats_lab_26_0:
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_26_1:
tmp134 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_0) ;
tmp135 = ats_caselptrlab_mac(anairiats_sum_1, arg2, atslab_1) ;
tmp136 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var (tmp134) ;
tmp137 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (tmp133, tmp136) ;
if (tmp137) {
tmp138 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg3), atslab_lstbefitm_type) ;
tmp139 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type (tmp134) ;
/* tmp132 = */ auxVarCK_14 (arg0, tmp133, tmp138, tmp139) ;
} else {
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp135 ;
arg3 = arg3 ;
goto __ats_lab_auxitm2_21 ; // tail call
} /* end of [if] */
break ;
} while (0) ;
return /* (tmp132) */ ;
} /* end of [auxitm2_21] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 10707(line=515, offs=1) -- 11256(line=542, offs=4)
*/
ATSstaticdec()
ats_void_type
auxitm3_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp140) ;
ATSlocal (ats_ptr_type, tmp141) ;
ATSlocal (ats_ptr_type, tmp142) ;
ATSlocal (ats_ptr_type, tmp143) ;
ATSlocal (ats_ptr_type, tmp144) ;
ATSlocal (ats_bool_type, tmp145) ;
ATSlocal (ats_ptr_type, tmp146) ;
ATSlocal (ats_ptr_type, tmp147) ;

__ats_lab_auxitm3_22:
tmp141 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg2), atslab_lstbefitm_var) ;
do {
/* branch: __ats_lab_27 */
__ats_lab_27_0:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_28_0 ; }
__ats_lab_27_1:
break ;

/* branch: __ats_lab_28 */
__ats_lab_28_0:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_28_1:
tmp142 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ;
tmp143 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ;
tmp144 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp142), atslab_lstbefitm_var) ;
tmp145 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (tmp141, tmp144) ;
if (tmp145) {
tmp146 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg2), atslab_lstbefitm_type) ;
tmp147 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp142), atslab_lstbefitm_type) ;
/* tmp140 = */ auxVarCK_14 (arg0, tmp141, tmp146, tmp147) ;
} else {
arg0 = arg0 ;
arg1 = tmp143 ;
arg2 = arg2 ;
goto __ats_lab_auxitm3_22 ; // tail call
} /* end of [if] */
break ;
} while (0) ;
return /* (tmp140) */ ;
} /* end of [auxitm3_22] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 11284(line=545, offs=1) -- 11644(line=564, offs=4)
*/
ATSstaticdec()
ats_void_type
auxitmlst_23 (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 (tmp148) ;
ATSlocal (ats_ptr_type, tmp149) ;
ATSlocal (ats_ptr_type, tmp150) ;
// ATSlocal_void (tmp151) ;

__ats_lab_auxitmlst_23:
do {
/* branch: __ats_lab_29 */
__ats_lab_29_0:
if (arg5 != (ats_sum_ptr_type)0) { goto __ats_lab_30_0 ; }
__ats_lab_29_1:
break ;

/* branch: __ats_lab_30 */
__ats_lab_30_0:
// if (arg5 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_30_1:
tmp149 = ats_caselptrlab_mac(anairiats_sum_1, arg5, atslab_0) ;
tmp150 = ats_caselptrlab_mac(anairiats_sum_1, arg5, atslab_1) ;
/* tmp151 = */ auxitm1_20 (arg0, arg1, arg2, arg3, arg4, tmp149) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = arg4 ;
arg5 = tmp150 ;
goto __ats_lab_auxitmlst_23 ; // tail call
break ;
} while (0) ;
return /* (tmp148) */ ;
} /* end of [auxitmlst_23] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 9112(line=433, offs=1) -- 12117(line=588, offs=4)
*/
ATSstaticdec()
ats_void_type
auxBreak_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp121) ;
ATSlocal (ats_ptr_type, tmp152) ;
ATSlocal (ats_ptr_type, tmp153) ;
ATSlocal (ats_ptr_type, tmp154) ;
ATSlocal (ats_ptr_type, tmp155) ;
// ATSlocal_void (tmp156) ;
// ATSlocal_void (tmp157) ;
// ATSlocal_void (tmp158) ;
ATSlocal (ats_ptr_type, tmp159) ;
ATSlocal (ats_ptr_type, tmp160) ;
// ATSlocal_void (tmp161) ;

__ats_lab_auxBreak_19:
tmp152 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_res) ;
tmp153 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp152), atslab_i2nvresstate_svs) ;
tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst (arg0, tmp153) ;
tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst () ;
/* tmp156 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ;
/* tmp157 = ats_selsin_mac(tmp156, atslab_1) */ ;
tmp159 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_9, tmp152), atslab_i2nvresstate_arg) ;
/* tmp158 = */ auxitmlst_23 (arg0, arg1, arg2, tmp154, tmp159, tmp155) ;
tmp160 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp160)->tag = 9 ;
ats_selptrset_mac(anairiats_sum_8, tmp160, atslab_0, 0) ;
/* tmp161 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add (arg0, tmp160) ;
/* tmp121 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp154) ;
return /* (tmp121) */ ;
} /* end of [auxBreak_19] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 12323(line=605, offs=1) -- 13026(line=636, offs=4)
*/
ATSstaticdec()
ats_void_type
auxitm1_25 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
// ATSlocal_void (tmp163) ;
ATSlocal (ats_ptr_type, tmp164) ;
ATSlocal (ats_ptr_type, tmp165) ;
ATSlocal (ats_ptr_type, tmp166) ;
ATSlocal (ats_ptr_type, tmp167) ;
ATSlocal (ats_bool_type, tmp168) ;
ATSlocal (ats_ptr_type, tmp169) ;
ATSlocal (ats_ptr_type, tmp170) ;
ATSlocal (ats_ptr_type, tmp171) ;

__ats_lab_auxitm1_25:
tmp164 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg4), atslab_lstbefitm_var) ;
do {
/* branch: __ats_lab_31 */
__ats_lab_31_0:
if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_32_0 ; }
__ats_lab_31_1:
/* tmp163 = */ auxitm2_26 (arg0, arg1, arg4) ;
break ;

/* branch: __ats_lab_32 */
__ats_lab_32_0:
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_32_1:
tmp165 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_0) ;
tmp166 = ats_caselptrlab_mac(anairiats_sum_1, arg3, atslab_1) ;
tmp167 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_var (tmp165) ;
tmp168 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (tmp164, tmp167) ;
if (tmp168) {
tmp169 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg4), atslab_lstbefitm_type) ;
tmp170 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__i2nvarg_get_type (tmp165) ;
tmp171 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2expopt_subst (arg2, tmp170) ;
/* tmp163 = */ auxVarCK_14 (arg0, tmp164, tmp169, tmp171) ;
} else {
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp166 ;
arg4 = arg4 ;
goto __ats_lab_auxitm1_25 ; // tail call
} /* end of [if] */
break ;
} while (0) ;
return /* (tmp163) */ ;
} /* end of [auxitm1_25] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 13054(line=639, offs=1) -- 13603(line=666, offs=4)
*/
ATSstaticdec()
ats_void_type
auxitm2_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp172) ;
ATSlocal (ats_ptr_type, tmp173) ;
ATSlocal (ats_ptr_type, tmp174) ;
ATSlocal (ats_ptr_type, tmp175) ;
ATSlocal (ats_ptr_type, tmp176) ;
ATSlocal (ats_bool_type, tmp177) ;
ATSlocal (ats_ptr_type, tmp178) ;
ATSlocal (ats_ptr_type, tmp179) ;

__ats_lab_auxitm2_26:
tmp173 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg2), atslab_lstbefitm_var) ;
do {
/* branch: __ats_lab_33 */
__ats_lab_33_0:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_34_0 ; }
__ats_lab_33_1:
break ;

/* branch: __ats_lab_34 */
__ats_lab_34_0:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_34_1:
tmp174 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_0) ;
tmp175 = ats_caselptrlab_mac(anairiats_sum_1, arg1, atslab_1) ;
tmp176 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp174), atslab_lstbefitm_var) ;
tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__eq_d2var_d2var (tmp173, tmp176) ;
if (tmp177) {
tmp178 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg2), atslab_lstbefitm_type) ;
tmp179 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, tmp174), atslab_lstbefitm_type) ;
/* tmp172 = */ auxVarCK_14 (arg0, tmp173, tmp178, tmp179) ;
} else {
arg0 = arg0 ;
arg1 = tmp175 ;
arg2 = arg2 ;
goto __ats_lab_auxitm2_26 ; // tail call
} /* end of [if] */
break ;
} while (0) ;
return /* (tmp172) */ ;
} /* end of [auxitm2_26] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 13631(line=669, offs=1) -- 13962(line=687, offs=4)
*/
ATSstaticdec()
ats_void_type
auxitmlst_27 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
// ATSlocal_void (tmp180) ;
ATSlocal (ats_ptr_type, tmp181) ;
ATSlocal (ats_ptr_type, tmp182) ;
// ATSlocal_void (tmp183) ;

__ats_lab_auxitmlst_27:
do {
/* branch: __ats_lab_35 */
__ats_lab_35_0:
if (arg4 != (ats_sum_ptr_type)0) { goto __ats_lab_36_0 ; }
__ats_lab_35_1:
break ;

/* branch: __ats_lab_36 */
__ats_lab_36_0:
// if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_36_1:
tmp181 = ats_caselptrlab_mac(anairiats_sum_1, arg4, atslab_0) ;
tmp182 = ats_caselptrlab_mac(anairiats_sum_1, arg4, atslab_1) ;
/* tmp183 = */ auxitm1_25 (arg0, arg1, arg2, arg3, tmp181) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = tmp182 ;
goto __ats_lab_auxitmlst_27 ; // tail call
break ;
} while (0) ;
return /* (tmp180) */ ;
} /* end of [auxitmlst_27] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 12165(line=593, offs=1) -- 14739(line=729, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxContinue_24 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp162) ;
ATSlocal (ats_ptr_type, tmp184) ;
ATSlocal (ats_ptr_type, tmp185) ;
ATSlocal (ats_ptr_type, tmp186) ;
ATSlocal (ats_ptr_type, tmp187) ;
ATSlocal (ats_ptr_type, tmp188) ;
ATSlocal (ats_ptr_type, tmp189) ;
ATSlocal (ats_ptr_type, tmp190) ;
// ATSlocal_void (tmp191) ;
// ATSlocal_void (tmp192) ;
ATSlocal (ats_ptr_type, tmp193) ;
ATSlocal (ats_ptr_type, tmp194) ;
// ATSlocal_void (tmp195) ;
// ATSlocal_void (tmp196) ;
ATSlocal (ats_ptr_type, tmp197) ;
// ATSlocal_void (tmp198) ;
ATSlocal (ats_ptr_type, tmp199) ;
ATSlocal (ats_ptr_type, tmp200) ;
// ATSlocal_void (tmp201) ;
// ATSlocal_void (tmp202) ;

__ats_lab_auxContinue_24:
tmp184 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ;
do {
/* branch: __ats_lab_37 */
__ats_lab_37_0:
if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; }
__ats_lab_37_1:
tmp186 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ;
tmp187 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp186, tmp184) ;
tmp185 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp185, atslab_0, tmp187) ;
break ;

/* branch: __ats_lab_38 */
__ats_lab_38_0:
// if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_38_1:
tmp185 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
tmp189 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_svs) ;
tmp188 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst (arg0, tmp189) ;
tmp190 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst () ;
/* tmp191 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ;
/* tmp192 = ats_selsin_mac(tmp191, atslab_1) */ ;
tmp194 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_gua) ;
tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (tmp188, tmp194) ;
/* tmp195 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp193) ;
tmp197 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_met) ;
/* tmp196 = */ auxMetCK_15 (arg0, tmp188, tmp197) ;
tmp199 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_arg) ;
/* tmp198 = */ auxitmlst_27 (arg0, arg2, tmp188, tmp199, tmp190) ;
tmp200 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp200)->tag = 9 ;
ats_selptrset_mac(anairiats_sum_8, tmp200, atslab_0, 1) ;
/* tmp201 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add (arg0, tmp200) ;
/* tmp202 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp188) ;
tmp162 = tmp185 ;
return (tmp162) ;
} /* end of [auxContinue_24] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/option_vt.dats: 2556(line=86, offs=16) -- 2611(line=87, offs=49)
*/
ATSstaticdec()
ats_void_type
option_vt_free_01544_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp246) ;

__ats_lab_option_vt_free_01544_ats_ptr_type:
do {
/* branch: __ats_lab_43 */
__ats_lab_43_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_44_0 ; }
__ats_lab_43_1:
ATS_FREE(arg0) ;
break ;

/* branch: __ats_lab_44 */
__ats_lab_44_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_44_1:
break ;
} while (0) ;
return /* (tmp246) */ ;
} /* end of [option_vt_free_01544_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 14815(line=735, offs=1) -- 17176(line=820, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_loop (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 (ats_ptr_type, tmp203) ;
ATSlocal (ats_ptr_type, tmp204) ;
ATSlocal (ats_ptr_type, tmp205) ;
ATSlocal (ats_ptr_type, tmp206) ;
ATSlocal (ats_ptr_type, tmp207) ;
ATSlocal (ats_ptr_type, tmp208) ;
ATSlocal (ats_ptr_type, tmp209) ;
// ATSlocal_void (tmp210) ;
ATSlocal (ats_ptr_type, tmp211) ;
// ATSlocal_void (tmp212) ;
ATSlocal (ats_ptr_type, tmp213) ;
// ATSlocal_void (tmp214) ;
ATSlocal (ats_ptr_type, tmp215) ;
ATSlocal (ats_ptr_type, tmp216) ;
ATSlocal (ats_int_type, tmp217) ;
ATSlocal (ats_ptr_type, tmp218) ;
// ATSlocal_void (tmp219) ;
ATSlocal (ats_ptr_type, tmp220) ;
// ATSlocal_void (tmp221) ;
// ATSlocal_void (tmp222) ;
ATSlocal (ats_ptr_type, tmp223) ;
ATSlocal (ats_ptr_type, tmp224) ;
// ATSlocal_void (tmp225) ;
ATSlocal (ats_ptr_type, tmp226) ;
ATSlocal (ats_ptr_type, tmp227) ;
ATSlocal (ats_ptr_type, tmp228) ;
ATSlocal (ats_ptr_type, tmp229) ;
ATSlocal (ats_ptr_type, tmp230) ;
// ATSlocal_void (tmp231) ;
// ATSlocal_void (tmp232) ;
// ATSlocal_void (tmp233) ;
// ATSlocal_void (tmp234) ;
// ATSlocal_void (tmp235) ;
// ATSlocal_void (tmp236) ;
// ATSlocal_void (tmp237) ;
// ATSlocal_void (tmp238) ;
// ATSlocal_void (tmp239) ;
// ATSlocal_void (tmp240) ;
ATSlocal (ats_ptr_type, tmp241) ;
// ATSlocal_void (tmp242) ;
ATSlocal (ats_ptr_type, tmp243) ;
// ATSlocal_void (tmp244) ;
// ATSlocal_void (tmp245) ;
// ATSlocal_void (tmp247) ;
// ATSlocal_void (tmp248) ;
ATSlocal (ats_ptr_type, tmp249) ;
// ATSlocal_void (tmp250) ;
ATSlocal (ats_ptr_type, tmp251) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_loop:
tmp204 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_void_t0ype () ;
do {
/* branch: __ats_lab_39 */
__ats_lab_39_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; }
__ats_lab_39_1:
tmp206 = ats_caselptrlab_mac(anairiats_sum_3, arg2, atslab_0) ;
tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp206, tmp204) ;
tmp205 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
ats_selptrset_mac(anairiats_sum_3, tmp205, atslab_0, tmp207) ;
break ;

/* branch: __ats_lab_40 */
__ats_lab_40_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_40_1:
tmp205 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_save_lstbefitmlst () ;
tmp209 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__d2exp_trup_loop_dryrun (arg0, tmp208, arg3, arg4, arg5) ;
/* tmp210 = */ auxEnter_16 (arg0, arg1, tmp208) ;
tmp211 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_loc) ;
tmp213 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_svs) ;
/* tmp212 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (tmp213) ;
tmp215 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_gua) ;
/* tmp214 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst (tmp211, tmp215) ;
tmp216 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_met) ;
do {
/* branch: __ats_lab_41 */
__ats_lab_41_0:
if (tmp216 == (ats_sum_ptr_type)0) { goto __ats_lab_42_0 ; }
__ats_lab_41_1:
tmp218 = ats_caselptrlab_mac(anairiats_sum_3, tmp216, atslab_0) ;
/* tmp219 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2explst_check_termet (arg0, tmp218) ;
tmp217 = 0 ;
break ;

/* branch: __ats_lab_42 */
__ats_lab_42_0:
// if (tmp216 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_42_1:
tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_check_ntm (arg0) ;
break ;
} while (0) ;
tmp220 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_arg) ;
/* tmp221 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update (tmp211, tmp220) ;
/* tmp222 = */ lstbefitmlst_opnset_and_add_2 (tmp211, tmp209) ;
tmp223 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (arg3) ;
tmp224 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp223), atslab_d3exp_loc) ;
/* tmp225 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp223) ;
tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp223) ;
tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool_t0ype () ;
tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3exp_trdn (tmp223, tmp227) ;
tmp229 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp226) ;
tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_bool_index_t0ype (tmp229) ;
/* tmp231 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ;
/* tmp232 = ats_selsin_mac(tmp231, atslab_1) */ ;
/* tmp233 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt_neg (tmp224, ats_castfn_mac(ats_ptr_type, tmp230)) ;
/* tmp234 = */ auxBreak_19 (arg0, arg1, tmp209) ;
/* tmp235 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (arg0) ;
/* tmp236 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ;
/* tmp237 = ats_selsin_mac(tmp236, atslab_1) */ ;
/* tmp238 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt (tmp224, ats_castfn_mac(ats_ptr_type, tmp230)) ;
/* tmp239 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_push_loop1 (arg1, tmp209, arg4) ;
/* tmp240 = ats_selsin_mac(tmp239, atslab_1) */ ;
tmp241 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (arg5, tmp204) ;
/* tmp242 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_pop () ;
tmp243 = auxContinue_24 (arg0, arg1, tmp209, arg4) ;
/* tmp244 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (arg0) ;
/* tmp245 = */ option_vt_free_01544_ats_ptr_type (tmp230) ;
/* tmp247 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__lstbefitmlst_restore_type (tmp209) ;
tmp249 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_arg) ;
/* tmp248 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvarglst_update (tmp211, tmp249) ;
tmp251 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_7, arg1), atslab_loopi2nv_res) ;
/* tmp250 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__i2nvresstate_update (tmp211, tmp251) ;
tmp203 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_loop (arg0, tmp205, tmp228, tmp243, tmp241) ;
return (tmp203) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_loop] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 17283(line=829, offs=1) -- 17627(line=841, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_31 (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp253) ;
// ATSlocal_void (tmp254) ;
// ATSlocal_void (tmp255) ;
ATSlocal (ats_bool_type, tmp256) ;
// ATSlocal_void (tmp257) ;
ATSlocal (ats_bool_type, tmp258) ;
// ATSlocal_void (tmp259) ;
ATSlocal (ats_ptr_type, tmp260) ;

__ats_lab_auxerr_31:
/* tmp254 = */ prerr_error3_loc_02051_ (arg0) ;
tmp256 = atspre_eq_int_int (arg1, 0) ;
if (tmp256) {
/* tmp255 = */ atspre_prerr_string (ATSstrcst(": [break] is only allowed inside a for/while-loop")) ;
} else {
/* empty */
} /* end of [if] */
tmp258 = atspre_gt_int_int (arg1, 0) ;
if (tmp258) {
/* tmp257 = */ atspre_prerr_string (ATSstrcst(": [continue] is only allowed inside a for/while-loop")) ;
} else {
/* empty */
} /* end of [if] */
/* tmp259 = */ atspre_prerr_newline () ;
tmp260 = ATS_MALLOC(sizeof(anairiats_sum_11)) ;
((ats_sum_ptr_type)tmp260)->tag = 88 ;
ats_selptrset_mac(anairiats_sum_11, tmp260, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_11, tmp260, atslab_1, arg1) ;
/* tmp253 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp260) ;
return /* (tmp253) */ ;
} /* end of [auxerr_31] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_looping.dats: 17258(line=826, offs=3) -- 18226(line=866, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_loopexn (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp252) ;
ATSlocal (ats_ptr_type, tmp261) ;
// ATSlocal_void (tmp262) ;
ATSlocal (ats_ptr_type, tmp263) ;
ATSlocal (ats_ptr_type, tmp264) ;
ATSlocal (ats_ptr_type, tmp265) ;
ATSlocal (ats_ptr_type, tmp266) ;
ATSlocal (ats_bool_type, tmp267) ;
ATSlocal (ats_ptr_type, tmp268) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_loopexn:
tmp261 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_lamlpenv_top () ;
do {
/* branch: __ats_lab_45 */
__ats_lab_45_0:
if (tmp261 == (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; }
__ats_lab_45_1:
tmp263 = ats_caselptrlab_mac(anairiats_sum_3, tmp261, atslab_0) ;
ATS_FREE(tmp261) ;
do {
/* branch: __ats_lab_46 */
__ats_lab_46_0:
if (((ats_sum_ptr_type)tmp263)->tag != 0) { goto __ats_lab_47_0 ; }
__ats_lab_46_1:
/* tmp262 = */ auxerr_31 (arg0, arg1) ;
break ;

/* branch: __ats_lab_47 */
__ats_lab_47_0:
if (((ats_sum_ptr_type)tmp263)->tag != 1) { goto __ats_lab_48_0 ; }
__ats_lab_47_1:
break ;

/* branch: __ats_lab_48 */
__ats_lab_48_0:
// if (((ats_sum_ptr_type)tmp263)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_48_1:
tmp264 = ats_caselptrlab_mac(anairiats_sum_4, tmp263, atslab_0) ;
tmp265 = ats_caselptrlab_mac(anairiats_sum_4, tmp263, atslab_1) ;
tmp266 = ats_caselptrlab_mac(anairiats_sum_4, tmp263, atslab_2) ;
tmp267 = atspre_eq_int_int (arg1, 0) ;
if (tmp267) {
/* tmp262 = */ auxBreak_19 (arg0, tmp264, tmp265) ;
} else {
tmp268 = auxContinue_24 (arg0, tmp264, tmp265, tmp266) ;
} /* end of [if] */
break ;
} while (0) ;
break ;

/* branch: __ats_lab_49 */
__ats_lab_49_0:
// if (tmp261 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_49_1:
/* tmp262 = */ auxerr_31 (arg0, arg1) ;
break ;
} while (0) ;
tmp252 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_loopexn (arg0, arg1) ;
return (tmp252) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup_loopexn] */

/* static load function */

// extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_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_dynexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__staload_flag = 1 ;

// _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ;
// ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_error_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ;

return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_looping_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 */

/* 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_trans3_looping_dats.c] */
