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

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

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

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_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_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_d2ecl_loc ;
ats_ptr_type atslab_d2ecl_node ;
} anairiats_rec_1 ;

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

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

typedef
struct {
ats_ptr_type atslab_s2aspdec_loc ;
ats_ptr_type atslab_s2aspdec_cst ;
ats_ptr_type atslab_s2aspdec_def ;
} anairiats_rec_4 ;

typedef struct {
ats_ptr_type atslab_0 ;
} anairiats_sum_5 ;

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

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

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

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

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

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

typedef
struct {
ats_ptr_type atslab_i2mpdec_loc ;
ats_ptr_type atslab_i2mpdec_locid ;
ats_ptr_type atslab_i2mpdec_cst ;
ats_ptr_type atslab_i2mpdec_imparg ;
ats_ptr_type atslab_i2mpdec_tmparg ;
ats_ptr_type atslab_i2mpdec_tmpgua ;
ats_ptr_type atslab_i2mpdec_def ;
} anairiats_rec_12 ;

typedef
struct {
ats_ptr_type atslab_f2undec_loc ;
ats_ptr_type atslab_f2undec_var ;
ats_ptr_type atslab_f2undec_def ;
ats_ptr_type atslab_f2undec_ann ;
} anairiats_rec_13 ;

typedef
struct {
ats_ptr_type atslab_d2exp_loc ;
ats_ptr_type atslab_d2exp_node ;
} anairiats_rec_14 ;

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

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

typedef struct {
anairiats_rec_16 atslab_0 ;
} anairiats_sum_17 ;

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

typedef
struct {
ats_ptr_type atslab_v2aldec_loc ;
ats_ptr_type atslab_v2aldec_pat ;
ats_ptr_type atslab_v2aldec_def ;
ats_ptr_type atslab_v2aldec_ann ;
} anairiats_rec_19 ;

typedef
struct {
ats_ptr_type atslab_p2at_loc ;
ats_ptr_type atslab_p2at_svs ;
ats_ptr_type atslab_p2at_dvs ;
ats_ptr_type atslab_p2at_type ;
ats_ptr_type atslab_p2at_node ;
} anairiats_rec_20 ;

typedef
struct {
ats_ptr_type atslab_v2ardec_loc ;
ats_int_type atslab_v2ardec_knd ;
ats_ptr_type atslab_v2ardec_svar ;
ats_ptr_type atslab_v2ardec_dvar ;
ats_ptr_type atslab_v2ardec_pfat ;
ats_ptr_type atslab_v2ardec_type ;
ats_ptr_type atslab_v2ardec_init ;
ats_ptr_type atslab_v2ardec_dvaropt ;
} anairiats_rec_21 ;

typedef
struct {
ats_ptr_type atslab_prv2ardec_loc ;
ats_ptr_type atslab_prv2ardec_dvar ;
ats_ptr_type atslab_prv2ardec_type ;
ats_ptr_type atslab_prv2ardec_init ;
} anairiats_rec_22 ;

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

/* 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_basics_2esats__CK_case_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_pos_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2VFINsome_lvar_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_dyn_56) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_sta_58) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Elam_met_59) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cnone_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clist_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csymintr_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csymelim_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Coverload_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cpragma_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Ccodegen_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstacsts_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstacons_8) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Csaspdec_9) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Creassume_10) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextype_11) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextvar_12) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cextcode_13) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdatdecs_14) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cexndecs_15) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdcstdecs_16) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cimpdec_17) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cfundecs_18) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvaldecs_19) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvaldecs_rec_20) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cvardecs_21) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cprvardecs_22) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cinclude_23) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstaload_24) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cstaloadloc_25) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Cdynload_26) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__D2Clocal_27) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2exp_assgn_tszeq_55) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_reassume_tr_isnotasp_97) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_f2undeclst_tr_termetsrtck_98) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_v2aldeclst_rec_tr_linearity_99) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_cloptr_free) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_print_newline) () ;
ATSextern_fun(ats_void_type, atspre_prerr_newline) () ;
ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_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_print_string) (ats_ptr_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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_recursive) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__valkind_is_proof) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__valkind2caskind) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_location) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ;
ATSextern_val(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isasp) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cst) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at) (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_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_0) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_tszeq) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_decarg) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd) (ats_ptr_type, 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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2ecl) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_free) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_copy) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_comp) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_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__i3mpdec_make) (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__f3undec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__v3aldec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__v3ardec_make) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prv3ardec_make) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_list) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_saspdec) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_reassume) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extype) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extcode) (ats_ptr_type, ats_int_type, ats_int_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_datdecs) (ats_ptr_type, ats_int_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_exndecs) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_dcstdecs) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_impdec) (ats_ptr_type, ats_int_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_fundecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_valdecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_valdecs_rec) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_vardecs) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_prvardecs) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_include) (ats_ptr_type, ats_int_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_staload) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_staloadloc) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_dynload) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_local) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2eclist) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_d3eclistopt) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_finalize) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_syn_type) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_pat_type_left) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2ecl_tr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__filenv_get_d3eclistopt) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt) (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_svar) (ats_ptr_type) ;
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_squalst) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_patcstlstlst_false) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_add) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_addlst) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_bind_and_add) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop_and_unbind) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_push) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_metfun_load) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop_if) (ats_bool_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_set_if) (ats_bool_type, ats_uint_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_caskind_check_exn) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_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__d2var_mutablize) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvar) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3at) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvar) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3at) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__i2mpdec_tr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undec_tr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undeclst_tr) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldec_tr) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_tr) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_rec_tr) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardec_tr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardeclst_tr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardec_tr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardeclst_tr) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staload) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staloadloc) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_dynload) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, patsopts2cst_set_isabs) (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_02085_ () ;
static
ats_void_type prerr_error3_loc_02091_ (ats_ptr_type arg0) ;
static
ats_void_type loop_6 (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 aux_11 (ats_ptr_type env0, ats_ptr_type arg0) ;
static
ats_clo_ptr_type aux_11_closure_make (ats_ptr_type env0) ;
static
ats_void_type aux_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_void_type d2exp_metfun_load_10 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_bool_type aux_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_bool_type termet_sortcheck_12 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_void_type aux_init_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_ptr_type f_17 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type loop_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) ;
static
ats_ptr_type list_map2_funenv_01424_ats_ptr_type_2cats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type aux_fini_16 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type __ats_fun_21 (ats_ptr_type arg0) ;
static
ats_void_type loop_23 (ats_ptr_type arg0) ;
static
ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_bool_type list_vt_is_nil_01494_ (ats_ptr_type arg0) ;
static
ats_ptr_type __ats_fun_27 (ats_ptr_type env0, ats_ptr_type arg0) ;
static
ats_clo_ptr_type __ats_fun_27_closure_make (ats_ptr_type env0) ;
static
ats_ptr_type __ats_fun_27_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_ptr_type app_30 (ats_ptr_type arg0, ats_clo_ptr_type arg1) ;
static
ats_ptr_type list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ;
static
ats_ptr_type list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) ;
static
ats_ptr_type aux1_32 (ats_ptr_type arg0) ;
static
ats_ptr_type aux2_33 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type auxInitCK_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_void_type loop_39 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type __ats_fun_40 (ats_ptr_type arg0) ;
static
ats_void_type ptr0_set_01760_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type ptrset_01764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;

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

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 1724(line=56, offs=3) -- 1762(line=56, offs=41)
*/
ATSstaticdec()
ats_void_type
prerr_FILENAME_02085_ () {
/* local vardec */
// ATSlocal_void (tmp0) ;

__ats_lab_prerr_FILENAME_02085_:
/* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_decl")) ;
return /* (tmp0) */ ;
} /* end of [prerr_FILENAME_02085_] */

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

__ats_lab_prerr_error3_loc_02091_:
/* tmp22 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ;
/* tmp21 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ;
return /* (tmp21) */ ;
} /* end of [prerr_error3_loc_02091_] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 3280(line=137, offs=9) -- 8150(line=350, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2ecl_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1) ;
ATSlocal (ats_ptr_type, tmp2) ;
ATSlocal (ats_ptr_type, tmp3) ;
ATSlocal (ats_ptr_type, tmp4) ;
ATSlocal (ats_ptr_type, tmp5) ;
ATSlocal (ats_ptr_type, tmp6) ;
ATSlocal (ats_ptr_type, tmp7) ;
ATSlocal (ats_ptr_type, tmp8) ;
ATSlocal (ats_ptr_type, tmp9) ;
ATSlocal (ats_ptr_type, tmp10) ;
ATSlocal (ats_ptr_type, tmp11) ;
ATSlocal (ats_ptr_type, tmp12) ;
// ATSlocal_void (tmp13) ;
ATSlocal (ats_ptr_type, tmp14) ;
ATSlocal (ats_ptr_type, tmp15) ;
// ATSlocal_void (tmp16) ;
ATSlocal (ats_ptr_type, tmp17) ;
ATSlocal (ats_ptr_type, tmp18) ;
// ATSlocal_void (tmp19) ;
// ATSlocal_void (tmp20) ;
// ATSlocal_void (tmp23) ;
// ATSlocal_void (tmp24) ;
// ATSlocal_void (tmp25) ;
// ATSlocal_void (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_ptr_type, tmp32) ;
ATSlocal (ats_ptr_type, tmp33) ;
ATSlocal (ats_ptr_type, tmp34) ;
ATSlocal (ats_ptr_type, tmp35) ;
ATSlocal (ats_ptr_type, tmp36) ;
ATSlocal (ats_ptr_type, tmp37) ;
ATSlocal (ats_int_type, tmp38) ;
ATSlocal (ats_int_type, tmp39) ;
ATSlocal (ats_ptr_type, tmp40) ;
ATSlocal (ats_ptr_type, tmp41) ;
ATSlocal (ats_int_type, tmp42) ;
ATSlocal (ats_ptr_type, tmp43) ;
ATSlocal (ats_int_type, tmp44) ;
ATSlocal (ats_ptr_type, tmp45) ;
ATSlocal (ats_ptr_type, tmp46) ;
ATSlocal (ats_int_type, tmp47) ;
ATSlocal (ats_ptr_type, tmp48) ;
ATSlocal (ats_ptr_type, tmp49) ;
ATSlocal (ats_ptr_type, tmp50) ;
ATSlocal (ats_ptr_type, tmp51) ;
ATSlocal (ats_ptr_type, tmp52) ;
ATSlocal (ats_ptr_type, tmp53) ;
ATSlocal (ats_ptr_type, tmp54) ;
ATSlocal (ats_ptr_type, tmp55) ;
ATSlocal (ats_ptr_type, tmp56) ;
ATSlocal (ats_ptr_type, tmp57) ;
ATSlocal (ats_ptr_type, tmp58) ;
ATSlocal (ats_ptr_type, tmp59) ;
ATSlocal (ats_ptr_type, tmp60) ;
ATSlocal (ats_ptr_type, tmp61) ;
ATSlocal (ats_ptr_type, tmp62) ;
ATSlocal (ats_ptr_type, tmp63) ;
ATSlocal (ats_int_type, tmp64) ;
ATSlocal (ats_ptr_type, tmp65) ;
ATSlocal (ats_ptr_type, tmp66) ;
ATSlocal (ats_ptr_type, tmp67) ;
ATSlocal (ats_ptr_type, tmp68) ;
// ATSlocal_void (tmp69) ;
// ATSlocal_void (tmp70) ;
ATSlocal (ats_ptr_type, tmp71) ;
// ATSlocal_void (tmp72) ;
// ATSlocal_void (tmp73) ;
ATSlocal (ats_ptr_type, tmp74) ;
ATSlocal (ats_ptr_type, tmp75) ;
// ATSlocal_void (tmp76) ;
// ATSlocal_void (tmp77) ;
// ATSlocal_void (tmp78) ;
// ATSlocal_void (tmp79) ;
// ATSlocal_void (tmp80) ;
// ATSlocal_void (tmp81) ;
// ATSlocal_void (tmp82) ;
// ATSlocal_void (tmp83) ;
ATSlocal (ats_ptr_type, tmp84) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2ecl_tr:
tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_loc) ;
tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_node) ;
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (((ats_sum_ptr_type)tmp3)->tag != 0) { goto __ats_lab_1_0 ; }
__ats_lab_0_1:
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none (tmp2) ;
break ;

/* branch: __ats_lab_1 */
__ats_lab_1_0:
if (((ats_sum_ptr_type)tmp3)->tag != 1) { goto __ats_lab_2_0 ; }
__ats_lab_1_1:
tmp4 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ;
tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (tmp4) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_list (tmp2, tmp5) ;
break ;

/* branch: __ats_lab_2 */
__ats_lab_2_0:
if (((ats_sum_ptr_type)tmp3)->tag != 2) { goto __ats_lab_3_0 ; }
__ats_lab_2_1:
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none (tmp2) ;
break ;

/* branch: __ats_lab_3 */
__ats_lab_3_0:
if (((ats_sum_ptr_type)tmp3)->tag != 3) { goto __ats_lab_4_0 ; }
__ats_lab_3_1:
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none (tmp2) ;
break ;

/* branch: __ats_lab_4 */
__ats_lab_4_0:
if (((ats_sum_ptr_type)tmp3)->tag != 4) { goto __ats_lab_5_0 ; }
__ats_lab_4_1:
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none (tmp2) ;
break ;

/* branch: __ats_lab_5 */
__ats_lab_5_0:
if (((ats_sum_ptr_type)tmp3)->tag != 5) { goto __ats_lab_6_0 ; }
__ats_lab_5_1:
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none (tmp2) ;
break ;

/* branch: __ats_lab_6 */
__ats_lab_6_0:
if (((ats_sum_ptr_type)tmp3)->tag != 6) { goto __ats_lab_7_0 ; }
__ats_lab_6_1:
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none (tmp2) ;
break ;

/* branch: __ats_lab_7 */
__ats_lab_7_0:
if (((ats_sum_ptr_type)tmp3)->tag != 7) { goto __ats_lab_8_0 ; }
__ats_lab_7_1:
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none (tmp2) ;
break ;

/* branch: __ats_lab_8 */
__ats_lab_8_0:
if (((ats_sum_ptr_type)tmp3)->tag != 8) { goto __ats_lab_9_0 ; }
__ats_lab_8_1:
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_none (tmp2) ;
break ;

/* branch: __ats_lab_9 */
__ats_lab_9_0:
if (((ats_sum_ptr_type)tmp3)->tag != 9) { goto __ats_lab_14_0 ; }
__ats_lab_9_1:
tmp6 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ;
tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp6), atslab_s2aspdec_loc) ;
tmp8 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp6), atslab_s2aspdec_cst) ;
tmp9 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp6), atslab_s2aspdec_def) ;
tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp9) ;
tmp11 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp10) ;
tmp12 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isabs (tmp8) ;
do {
/* branch: __ats_lab_10 */
__ats_lab_10_0:
if (tmp12 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; }
__ats_lab_10_1:
tmp14 = ats_caselptrlab_mac(anairiats_sum_5, tmp12, atslab_0) ;
do {
/* branch: __ats_lab_11 */
__ats_lab_11_0:
if (tmp14 != (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; }
__ats_lab_11_1:
tmp15 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp15, atslab_0, tmp11) ;
/* tmp13 = */ patsopts2cst_set_isabs (tmp8, tmp15) ;
break ;

/* branch: __ats_lab_12 */
__ats_lab_12_0:
// if (tmp14 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_12_1:
break ;
} while (0) ;
break ;

/* branch: __ats_lab_13 */
__ats_lab_13_0:
// if (tmp12 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_13_1:
break ;
} while (0) ;
/* tmp16 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_bind_and_add (tmp7, tmp8, tmp10) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_saspdec (tmp2, tmp6) ;
break ;

/* branch: __ats_lab_14 */
__ats_lab_14_0:
if (((ats_sum_ptr_type)tmp3)->tag != 10) { goto __ats_lab_17_0 ; }
__ats_lab_14_1:
tmp17 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ;
tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_get_isasp (tmp17) ;
do {
/* branch: __ats_lab_15 */
__ats_lab_15_0:
if (tmp18 != (ats_sum_ptr_type)0) { goto __ats_lab_16_0 ; }
__ats_lab_15_1:
/* tmp20 = */ prerr_error3_loc_02091_ (tmp2) ;
/* tmp23 = */ atspre_prerr_string (ATSstrcst(": the abstype type [")) ;
/* tmp24 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2cst (tmp17) ;
/* tmp25 = */ atspre_prerr_string (ATSstrcst("] is not yet assumed.")) ;
/* tmp26 = */ atspre_prerr_newline () ;
tmp27 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
((ats_sum_ptr_type)tmp27)->tag = 97 ;
ats_selptrset_mac(anairiats_sum_6, tmp27, atslab_0, tmp2) ;
ats_selptrset_mac(anairiats_sum_6, tmp27, atslab_1, tmp17) ;
/* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp27) ;
break ;

/* branch: __ats_lab_16 */
__ats_lab_16_0:
// if (tmp18 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_16_1:
tmp28 = ats_caselptrlab_mac(anairiats_sum_5, tmp18, atslab_0) ;
/* tmp29 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_add (tmp17) ;
tmp30 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp30, atslab_0, tmp28) ;
/* tmp19 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_set_def (tmp17, tmp30) ;
break ;
} while (0) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_reassume (tmp2, tmp17) ;
break ;

/* branch: __ats_lab_17 */
__ats_lab_17_0:
if (((ats_sum_ptr_type)tmp3)->tag != 11) { goto __ats_lab_18_0 ; }
__ats_lab_17_1:
tmp31 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_0) ;
tmp32 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_1) ;
tmp33 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_loc) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extype (tmp33, tmp31, tmp32) ;
break ;

/* branch: __ats_lab_18 */
__ats_lab_18_0:
if (((ats_sum_ptr_type)tmp3)->tag != 12) { goto __ats_lab_19_0 ; }
__ats_lab_18_1:
tmp34 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_0) ;
tmp35 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_1) ;
tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp35) ;
tmp37 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_loc) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extvar (tmp37, tmp34, tmp36) ;
break ;

/* branch: __ats_lab_19 */
__ats_lab_19_0:
if (((ats_sum_ptr_type)tmp3)->tag != 13) { goto __ats_lab_20_0 ; }
__ats_lab_19_1:
tmp38 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_0) ;
tmp39 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_1) ;
tmp40 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_2) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_extcode (tmp2, tmp38, tmp39, tmp40) ;
break ;

/* branch: __ats_lab_20 */
__ats_lab_20_0:
if (((ats_sum_ptr_type)tmp3)->tag != 15) { goto __ats_lab_21_0 ; }
__ats_lab_20_1:
tmp41 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_exndecs (tmp2, tmp41) ;
break ;

/* branch: __ats_lab_21 */
__ats_lab_21_0:
if (((ats_sum_ptr_type)tmp3)->tag != 14) { goto __ats_lab_22_0 ; }
__ats_lab_21_1:
tmp42 = ats_caselptrlab_mac(anairiats_sum_8, tmp3, atslab_0) ;
tmp43 = ats_caselptrlab_mac(anairiats_sum_8, tmp3, atslab_1) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_datdecs (tmp2, tmp42, tmp43) ;
break ;

/* branch: __ats_lab_22 */
__ats_lab_22_0:
if (((ats_sum_ptr_type)tmp3)->tag != 16) { goto __ats_lab_23_0 ; }
__ats_lab_22_1:
tmp44 = ats_caselptrlab_mac(anairiats_sum_9, tmp3, atslab_0) ;
tmp45 = ats_caselptrlab_mac(anairiats_sum_9, tmp3, atslab_1) ;
tmp46 = ats_caselptrlab_mac(anairiats_sum_9, tmp3, atslab_2) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_dcstdecs (tmp2, tmp44, tmp45, tmp46) ;
break ;

/* branch: __ats_lab_23 */
__ats_lab_23_0:
if (((ats_sum_ptr_type)tmp3)->tag != 17) { goto __ats_lab_24_0 ; }
__ats_lab_23_1:
tmp47 = ats_caselptrlab_mac(anairiats_sum_8, tmp3, atslab_0) ;
tmp48 = ats_caselptrlab_mac(anairiats_sum_8, tmp3, atslab_1) ;
tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__i2mpdec_tr (tmp48) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_impdec (tmp2, tmp47, tmp49) ;
break ;

/* branch: __ats_lab_24 */
__ats_lab_24_0:
if (((ats_sum_ptr_type)tmp3)->tag != 18) { goto __ats_lab_25_0 ; }
__ats_lab_24_1:
tmp50 = ats_caselptrlab_mac(anairiats_sum_10, tmp3, atslab_0) ;
tmp51 = ats_caselptrlab_mac(anairiats_sum_10, tmp3, atslab_1) ;
tmp52 = ats_caselptrlab_mac(anairiats_sum_10, tmp3, atslab_2) ;
tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undeclst_tr (tmp50, tmp51, tmp52) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_fundecs (tmp2, tmp50, tmp51, tmp53) ;
break ;

/* branch: __ats_lab_25 */
__ats_lab_25_0:
if (((ats_sum_ptr_type)tmp3)->tag != 19) { goto __ats_lab_26_0 ; }
__ats_lab_25_1:
tmp54 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_0) ;
tmp55 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_1) ;
tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_tr (tmp54, tmp55) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_valdecs (tmp2, tmp54, tmp56) ;
break ;

/* branch: __ats_lab_26 */
__ats_lab_26_0:
if (((ats_sum_ptr_type)tmp3)->tag != 20) { goto __ats_lab_27_0 ; }
__ats_lab_26_1:
tmp57 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_0) ;
tmp58 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_1) ;
tmp59 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_rec_tr (tmp57, tmp58) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_valdecs_rec (tmp2, tmp57, tmp59) ;
break ;

/* branch: __ats_lab_27 */
__ats_lab_27_0:
if (((ats_sum_ptr_type)tmp3)->tag != 21) { goto __ats_lab_28_0 ; }
__ats_lab_27_1:
tmp60 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ;
tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardeclst_tr (tmp60) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_vardecs (tmp2, tmp61) ;
break ;

/* branch: __ats_lab_28 */
__ats_lab_28_0:
if (((ats_sum_ptr_type)tmp3)->tag != 22) { goto __ats_lab_29_0 ; }
__ats_lab_28_1:
tmp62 = ats_caselptrlab_mac(anairiats_sum_2, tmp3, atslab_0) ;
tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardeclst_tr (tmp62) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_prvardecs (tmp2, tmp63) ;
break ;

/* branch: __ats_lab_29 */
__ats_lab_29_0:
if (((ats_sum_ptr_type)tmp3)->tag != 23) { goto __ats_lab_30_0 ; }
__ats_lab_29_1:
tmp64 = ats_caselptrlab_mac(anairiats_sum_8, tmp3, atslab_0) ;
tmp65 = ats_caselptrlab_mac(anairiats_sum_8, tmp3, atslab_1) ;
tmp66 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (tmp65) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_include (tmp2, tmp64, tmp66) ;
break ;

/* branch: __ats_lab_30 */
__ats_lab_30_0:
if (((ats_sum_ptr_type)tmp3)->tag != 24) { goto __ats_lab_31_0 ; }
__ats_lab_30_1:
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staload (arg0) ;
break ;

/* branch: __ats_lab_31 */
__ats_lab_31_0:
if (((ats_sum_ptr_type)tmp3)->tag != 25) { goto __ats_lab_32_0 ; }
__ats_lab_31_1:
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staloadloc (arg0) ;
break ;

/* branch: __ats_lab_32 */
__ats_lab_32_0:
if (((ats_sum_ptr_type)tmp3)->tag != 26) { goto __ats_lab_33_0 ; }
__ats_lab_32_1:
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_dynload (arg0) ;
break ;

/* branch: __ats_lab_33 */
__ats_lab_33_0:
if (((ats_sum_ptr_type)tmp3)->tag != 27) { goto __ats_lab_34_0 ; }
__ats_lab_33_1:
tmp67 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_0) ;
tmp68 = ats_caselptrlab_mac(anairiats_sum_6, tmp3, atslab_1) ;
/* tmp69 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_push () ;
/* tmp70 = ats_selsin_mac(tmp69, atslab_1) */ ;
tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (tmp67) ;
/* tmp72 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_push () ;
/* tmp73 = ats_selsin_mac(tmp72, atslab_1) */ ;
tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (tmp68) ;
tmp75 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop () ;
/* tmp76 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop_and_unbind () ;
/* tmp77 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_addlst (tmp75) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_local (tmp2, tmp71, tmp74) ;
break ;

/* branch: __ats_lab_34 */
__ats_lab_34_0:
__ats_lab_34_1:
/* tmp78 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__print_location (tmp2) ;
/* tmp79 = */ atspre_print_newline () ;
/* tmp80 = */ atspre_print_string (ATSstrcst("d2ecl_tr: d2c0 = ")) ;
/* tmp81 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__print_d2ecl (arg0) ;
/* tmp82 = */ atspre_print_newline () ;
tmp84 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans3_decl.dats: 8022(line=339, offs=14) -- 8038(line=339, offs=30)", ATSstrcst("\n")) ;
/* tmp83 = */ atspre_assert_errmsg (ats_false_bool, tmp84) ;
/* tmp1 = */ ats_exit (1) ;
break ;
} while (0) ;
return (tmp1) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2ecl_tr] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 52519(line=1874, offs=5) -- 52952(line=1891, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_6 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp89) ;
ATSlocal (ats_ptr_type, tmp90) ;
ATSlocal (ats_ptr_type, tmp91) ;
ATSlocal (ats_ptr_type, tmp92) ;
ATSlocal (ats_ptr_type, tmp93) ;
ATSlocal (ats_ptr_type, tmp94) ;
ATSlocal (ats_ptr_type, tmp95) ;

__ats_lab_loop_6:
do {
/* branch: __ats_lab_35 */
__ats_lab_35_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_36_0 ; }
__ats_lab_35_1:
tmp90 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_0) ;
tmp91 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_1) ;
tmp92 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp90, arg3) ;
tmp93 = ATS_MALLOC(sizeof(anairiats_sum_11)) ;
ats_selptrset_mac(anairiats_sum_11, tmp93, atslab_0, tmp92) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp93 ;
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp94 = &ats_caselptrlab_mac(anairiats_sum_11, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
arg0 = tmp91 ;
arg1 = arg1 ;
arg2 = tmp94 ;
arg3 = arg3 ;
goto __ats_lab_loop_6 ; // tail call
break ;

/* branch: __ats_lab_36 */
__ats_lab_36_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_36_1:
tmp95 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp95 ;
break ;
} while (0) ;
return /* (tmp89) */ ;
} /* end of [loop_6] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-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, tmp88) ;
ATSlocal (ats_ptr_type, tmp96) ;
// ATSlocal_void (tmp97) ;

__ats_lab_list_map_funenv_01412_ats_ptr_type_ats_ptr_type:
/* ats_ptr_type tmp96 ; */
/* tmp97 = */ loop_6 (arg0, arg1, (&tmp96), arg2) ;
tmp88 = tmp96 ;
return (tmp88) ;
} /* end of [list_map_funenv_01412_ats_ptr_type_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-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, tmp87) ;

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

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 8218(line=356, offs=3) -- 8288(line=359, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp85) ;
ATSlocal (ats_ptr_type, tmp86) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr:
tmp86 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2ecl_tr) ;
tmp85 = ats_castfn_mac(ats_ptr_type, tmp86) ;
return (tmp85) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 8368(line=365, offs=3) -- 8469(line=368, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr_errck (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp98) ;
ATSlocal (ats_ptr_type, tmp99) ;
// ATSlocal_void (tmp100) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr_errck:
tmp99 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (arg0) ;
/* tmp100 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_finalize () ;
tmp98 = tmp99 ;
return (tmp98) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr_errck] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 8543(line=373, offs=12) -- 9202(line=403, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__i2mpdec_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp101) ;
ATSlocal (ats_ptr_type, tmp102) ;
ATSlocal (ats_ptr_type, tmp103) ;
ATSlocal (ats_ptr_type, tmp104) ;
ATSlocal (ats_ptr_type, tmp105) ;
ATSlocal (ats_ptr_type, tmp106) ;
ATSlocal (ats_ptr_type, tmp107) ;
// ATSlocal_void (tmp108) ;
// ATSlocal_void (tmp109) ;
// ATSlocal_void (tmp110) ;
ATSlocal (ats_ptr_type, tmp111) ;
ATSlocal (ats_ptr_type, tmp112) ;
// ATSlocal_void (tmp113) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__i2mpdec_tr:
tmp102 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_i2mpdec_loc) ;
tmp103 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_i2mpdec_locid) ;
tmp104 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_i2mpdec_cst) ;
tmp105 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_i2mpdec_imparg) ;
tmp106 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_i2mpdec_tmparg) ;
tmp107 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_i2mpdec_tmpgua) ;
/* tmp108 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ;
/* tmp109 = ats_selsin_mac(tmp108, atslab_1) */ ;
/* tmp110 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (tmp105) ;
tmp112 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_i2mpdec_def) ;
tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp112) ;
/* tmp113 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (tmp102) ;
tmp101 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__i3mpdec_make (tmp102, tmp104, tmp105, tmp106, tmp111) ;
return (tmp101) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__i2mpdec_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 9271(line=409, offs=3) -- 10073(line=439, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undec_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp114) ;
ATSlocal (ats_ptr_type, tmp115) ;
ATSlocal (ats_ptr_type, tmp116) ;
ATSlocal (ats_ptr_type, tmp117) ;
ATSlocal (ats_ptr_type, tmp118) ;
ATSlocal (ats_ptr_type, tmp119) ;
// ATSlocal_void (tmp120) ;
// ATSlocal_void (tmp121) ;
// ATSlocal_void (tmp122) ;
ATSlocal (ats_ptr_type, tmp123) ;
ATSlocal (ats_ptr_type, tmp124) ;
// ATSlocal_void (tmp125) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undec_tr:
tmp115 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_f2undec_ann) ;
tmp116 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_f2undec_loc) ;
tmp117 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_f2undec_var) ;
tmp118 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_f2undec_def) ;
tmp119 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_decarg (tmp117) ;
/* tmp120 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ;
/* tmp121 = ats_selsin_mac(tmp120, atslab_1) */ ;
/* tmp122 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squalst (tmp119) ;
do {
/* branch: __ats_lab_37 */
__ats_lab_37_0:
if (tmp115 == (ats_sum_ptr_type)0) { goto __ats_lab_38_0 ; }
__ats_lab_37_1:
tmp124 = ats_caselptrlab_mac(anairiats_sum_5, tmp115, atslab_0) ;
tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp118, tmp124) ;
break ;

/* branch: __ats_lab_38 */
__ats_lab_38_0:
// if (tmp115 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_38_1:
tmp123 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp118) ;
break ;
} while (0) ;
/* tmp125 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (tmp116) ;
tmp114 = tmp123 ;
return (tmp114) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undec_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 10232(line=451, offs=7) -- 10511(line=460, offs=43)
*/
ATSstaticdec()
ats_void_type
aux_11 (ats_ptr_type env0, ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp127) ;
ATSlocal (ats_ptr_type, tmp128) ;
ATSlocal (ats_ptr_type, tmp129) ;
ATSlocal (ats_ptr_type, tmp130) ;
ATSlocal (ats_ptr_type, tmp131) ;

__ats_lab_aux_11:
tmp128 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg0), atslab_d2exp_node) ;
do {
/* branch: __ats_lab_39 */
__ats_lab_39_0:
if (((ats_sum_ptr_type)tmp128)->tag != 56) { goto __ats_lab_40_0 ; }
__ats_lab_39_1:
tmp129 = ats_caselptrlab_mac(anairiats_sum_15, tmp128, atslab_3) ;
arg0 = tmp129 ;
goto __ats_lab_aux_11 ; // tail call
break ;

/* branch: __ats_lab_40 */
__ats_lab_40_0:
if (((ats_sum_ptr_type)tmp128)->tag != 58) { goto __ats_lab_41_0 ; }
__ats_lab_40_1:
tmp130 = ats_caselptrlab_mac(anairiats_sum_10, tmp128, atslab_2) ;
arg0 = tmp130 ;
goto __ats_lab_aux_11 ; // tail call
break ;

/* branch: __ats_lab_41 */
__ats_lab_41_0:
if (((ats_sum_ptr_type)tmp128)->tag != 59) { goto __ats_lab_42_0 ; }
__ats_lab_41_1:
tmp131 = ats_caselptrlab_mac(anairiats_sum_10, tmp128, atslab_0) ;
ats_ptrget_mac(ats_ptr_type, tmp131) = env0 ;
break ;

/* branch: __ats_lab_42 */
__ats_lab_42_0:
__ats_lab_42_1:
break ;
} while (0) ;
return /* (tmp127) */ ;
} /* end of [aux_11] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
} aux_11_closure_type ;

ats_void_type
aux_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
aux_11 (((aux_11_closure_type*)cloptr)->closure_env_0, arg0) ; return ;
} /* end of function */

ATSinline()
ats_void_type
aux_11_closure_init (aux_11_closure_type *p_clo, ats_ptr_type env0) {
p_clo->closure_fun = (ats_fun_ptr_type)&aux_11_clofun ;
p_clo->closure_env_0 = env0 ;
return ;
} /* end of function */

ats_clo_ptr_type
aux_11_closure_make (ats_ptr_type env0) {
aux_11_closure_type *p_clo = ATS_MALLOC(sizeof(aux_11_closure_type)) ;
aux_11_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 10133(line=446, offs=1) -- 10531(line=462, offs=2)
*/
ATSstaticdec()
ats_void_type
d2exp_metfun_load_10 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp126) ;

__ats_lab_d2exp_metfun_load_10:
/* tmp126 = */ aux_11 (arg1, arg0) ;
return /* (tmp126) */ ;
} /* end of [d2exp_metfun_load_10] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 10647(line=466, offs=7) -- 11209(line=486, offs=8)
*/
ATSstaticdec()
ats_bool_type
aux_13 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp133) ;
ATSlocal (ats_ptr_type, tmp134) ;
ATSlocal (ats_ptr_type, tmp135) ;
ATSlocal (ats_ptr_type, tmp136) ;
ATSlocal (ats_ptr_type, tmp137) ;
ATSlocal (ats_bool_type, tmp138) ;

__ats_lab_aux_13:
do {
/* branch: __ats_lab_43 */
__ats_lab_43_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_46_0 ; }
__ats_lab_43_1:
do {
/* branch: __ats_lab_44 */
__ats_lab_44_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; }
__ats_lab_44_1:
ats_ptrget_mac(ats_int_type, arg2) = -1 ;
tmp133 = ats_true_bool ;
break ;

/* branch: __ats_lab_45 */
__ats_lab_45_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_45_1:
tmp133 = ats_true_bool ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_46 */
__ats_lab_46_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_46_1:
tmp134 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_0) ;
tmp135 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_1) ;
do {
/* branch: __ats_lab_47 */
__ats_lab_47_0:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; }
__ats_lab_47_1:
ats_ptrget_mac(ats_int_type, arg2) = 1 ;
tmp133 = ats_true_bool ;
break ;

/* branch: __ats_lab_48 */
__ats_lab_48_0:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_48_1:
tmp136 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_0) ;
tmp137 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_1) ;
tmp138 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (tmp136, tmp134) ;
if (tmp138) {
arg0 = tmp135 ;
arg1 = tmp137 ;
arg2 = arg2 ;
goto __ats_lab_aux_13 ; // tail call
} else {
tmp133 = ats_false_bool ;
} /* end of [if] */
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp133) ;
} /* end of [aux_13] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 10569(line=464, offs=5) -- 11617(line=506, offs=4)
*/
ATSstaticdec()
ats_bool_type
termet_sortcheck_12 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp132) ;
ATSlocal (ats_ptr_type, tmp139) ;
ATSlocal (ats_ptr_type, tmp140) ;
ATSlocal (ats_int_type, tmp141) ;
ATSlocal (ats_bool_type, tmp142) ;
ATSlocal (ats_bool_type, tmp144) ;

__ats_lab_termet_sortcheck_12:
do {
/* branch: __ats_lab_49 */
__ats_lab_49_0:
if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_52_0 ; }
__ats_lab_49_1:
tmp139 = ats_caselptrlab_mac(anairiats_sum_5, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
do {
/* branch: __ats_lab_50 */
__ats_lab_50_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; }
__ats_lab_50_1:
tmp140 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ;
/* ats_int_type tmp141 ; */
tmp141 = 0 ;
tmp142 = aux_13 (tmp139, tmp140, (&tmp141)) ;
if (tmp142) {
tmp144 = atspre_lt_int_int (tmp141, 0) ;
if (tmp144) {
ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ;
} else {
/* empty */
} /* end of [if] */
} else {
/* empty */
} /* end of [if] */
tmp132 = tmp142 ;
break ;

/* branch: __ats_lab_51 */
__ats_lab_51_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_51_1:
tmp132 = ats_true_bool ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_52 */
__ats_lab_52_0:
// if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_52_1:
ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ;
tmp132 = ats_true_bool ;
break ;
} while (0) ;
return (tmp132) ;
} /* end of [termet_sortcheck_12] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 11773(line=516, offs=5) -- 13426(line=578, offs=4)
*/
ATSstaticdec()
ats_void_type
aux_init_15 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
// ATSlocal_void (tmp147) ;
ATSlocal (ats_ptr_type, tmp148) ;
ATSlocal (ats_ptr_type, tmp149) ;
ATSlocal (ats_ptr_type, tmp150) ;
ATSlocal (ats_ptr_type, tmp151) ;
// ATSlocal_void (tmp152) ;
ATSlocal (ats_ptr_type, tmp153) ;
ATSlocal (ats_ptr_type, tmp154) ;
ATSlocal (ats_ptr_type, tmp155) ;
ATSlocal (ats_ptr_type, tmp156) ;
ATSlocal (ats_ptr_type, tmp157) ;
ATSlocal (anairiats_rec_16, tmp159) ;
ATSlocal (ats_ptr_type, tmp160) ;
ATSlocal (ats_ptr_type, tmp161) ;
ATSlocal (ats_ptr_type, tmp162) ;
ATSlocal (ats_bool_type, tmp163) ;
// ATSlocal_void (tmp164) ;
ATSlocal (ats_bool_type, tmp165) ;
// ATSlocal_void (tmp166) ;
ATSlocal (ats_ptr_type, tmp167) ;
// ATSlocal_void (tmp168) ;
// ATSlocal_void (tmp169) ;
ATSlocal (ats_ptr_type, tmp170) ;
ATSlocal (ats_ptr_type, tmp171) ;
// ATSlocal_void (tmp172) ;
// ATSlocal_void (tmp173) ;

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

/* branch: __ats_lab_54 */
__ats_lab_54_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_54_1:
tmp148 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_0) ;
tmp149 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_1) ;
tmp150 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp148), atslab_f2undec_var) ;
tmp151 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp148), atslab_f2undec_def) ;
/* tmp152 = */ d2exp_metfun_load_10 (tmp151, arg1) ;
/* ats_ptr_type tmp153 ; */
tmp154 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp148), atslab_f2undec_ann) ;
do {
/* branch: __ats_lab_55 */
__ats_lab_55_0:
if (tmp154 == (ats_sum_ptr_type)0) { goto __ats_lab_56_0 ; }
__ats_lab_55_1:
tmp155 = ats_caselptrlab_mac(anairiats_sum_5, tmp154, atslab_0) ;
tmp153 = tmp155 ;
break ;

/* branch: __ats_lab_56 */
__ats_lab_56_0:
// if (tmp154 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_56_1:
tmp153 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_syn_type (tmp151) ;
break ;
} while (0) ;
/* ats_ptr_type tmp156 ; */
tmp156 = (ats_sum_ptr_type)0 ;
tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_metfun_load (tmp153, tmp150) ;
do {
/* branch: __ats_lab_57 */
__ats_lab_57_0:
if (tmp157 != (ats_sum_ptr_type)0) { goto __ats_lab_58_0 ; }
__ats_lab_57_1:
break ;

/* branch: __ats_lab_58 */
__ats_lab_58_0:
// if (tmp157 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_58_1:
tmp159 = ats_caselptrlab_mac(anairiats_sum_17, tmp157, atslab_0) ;
ATS_FREE(tmp157) ;
tmp160 = ats_select_mac(tmp159, atslab_0) ;
tmp153 = tmp160 ;
tmp162 = ats_select_mac(tmp159, atslab_1) ;
tmp161 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp161, atslab_0, tmp162) ;
tmp156 = tmp161 ;
break ;
} while (0) ;
tmp163 = termet_sortcheck_12 (arg2, tmp156) ;
tmp165 = atspre_neg_bool (tmp163) ;
if (tmp165) {
tmp167 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, tmp148), atslab_f2undec_loc) ;
/* tmp166 = */ prerr_error3_loc_02091_ (tmp167) ;
/* tmp168 = */ atspre_prerr_string (ATSstrcst(": incompatible termination metric for this function.")) ;
/* tmp169 = */ atspre_prerr_newline () ;
tmp170 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
((ats_sum_ptr_type)tmp170)->tag = 98 ;
ats_selptrset_mac(anairiats_sum_6, tmp170, atslab_0, tmp148) ;
ats_selptrset_mac(anairiats_sum_6, tmp170, atslab_1, tmp156) ;
/* tmp164 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp170) ;
} else {
/* empty */
} /* end of [if] */
tmp171 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp171, atslab_0, tmp153) ;
/* tmp172 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp150, tmp171) ;
/* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype (tmp150, tmp171) ;
arg0 = tmp149 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab_aux_init_15 ; // tail call
break ;
} while (0) ;
return /* (tmp147) */ ;
} /* end of [aux_init_15] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 13549(line=585, offs=6) -- 13966(line=600, offs=6)
*/
ATSstaticdec()
ats_ptr_type
f_17 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp175) ;
ATSlocal (ats_ptr_type, tmp176) ;
ATSlocal (ats_ptr_type, tmp177) ;
ATSlocal (ats_ptr_type, tmp178) ;
// ATSlocal_void (tmp179) ;
// ATSlocal_void (tmp180) ;
ATSlocal (ats_ptr_type, tmp181) ;

__ats_lab_f_17:
tmp176 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_18, arg1), atslab_d3exp_type) ;
tmp177 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_f2undec_var) ;
tmp178 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp178, atslab_0, tmp176) ;
/* tmp179 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp177, tmp178) ;
/* tmp180 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype (tmp177, tmp178) ;
tmp181 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_f2undec_loc) ;
tmp175 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__f3undec_make (tmp181, tmp177, arg1) ;
return (tmp175) ;
} /* end of [f_17] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 58376(line=2097, offs=5) -- 58882(line=2115, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ptr_type arg4) {
/* local vardec */
// ATSlocal_void (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 (ats_ptr_type, tmp191) ;
ATSlocal (ats_ptr_type, tmp192) ;
ATSlocal (ats_ptr_type, tmp193) ;

__ats_lab_loop_20:
do {
/* branch: __ats_lab_59 */
__ats_lab_59_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_60_0 ; }
__ats_lab_59_1:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_59_2:
tmp186 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_0) ;
tmp187 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_1) ;
tmp188 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_0) ;
tmp189 = ats_caselptrlab_mac(anairiats_sum_11, arg1, atslab_1) ;
tmp190 = ((ats_ptr_type(*)(ats_ptr_type, ats_ptr_type, ats_ptr_type))arg2) (tmp186, tmp188, arg4) ;
tmp191 = ATS_MALLOC(sizeof(anairiats_sum_11)) ;
ats_selptrset_mac(anairiats_sum_11, tmp191, atslab_0, tmp190) ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp191 ;
// if (ats_ptrget_mac(ats_ptr_type, arg3) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp192 = &ats_caselptrlab_mac(anairiats_sum_11, ats_ptrget_mac(ats_ptr_type, arg3), atslab_1) ;
arg0 = tmp187 ;
arg1 = tmp189 ;
arg2 = arg2 ;
arg3 = tmp192 ;
arg4 = arg4 ;
goto __ats_lab_loop_20 ; // tail call
break ;

/* branch: __ats_lab_60 */
__ats_lab_60_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_60_1:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_60_2:
tmp193 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp193 ;
break ;
} while (0) ;
return /* (tmp185) */ ;
} /* end of [loop_20] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 58341(line=2095, offs=3) -- 59077(line=2124, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_map2_funenv_01424_ats_ptr_type_2cats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp184) ;
ATSlocal (ats_ptr_type, tmp194) ;
// ATSlocal_void (tmp195) ;

__ats_lab_list_map2_funenv_01424_ats_ptr_type_2cats_ptr_type_ats_ptr_type:
/* ats_ptr_type tmp194 ; */
/* tmp195 = */ loop_20 (arg0, arg1, arg2, (&tmp194), arg3) ;
tmp184 = tmp194 ;
return (tmp184) ;
} /* end of [list_map2_funenv_01424_ats_ptr_type_2cats_ptr_type_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 59154(line=2127, offs=27) -- 59433(line=2136, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp183) ;

__ats_lab_list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type:
tmp183 = list_map2_funenv_01424_ats_ptr_type_2cats_ptr_type_ats_ptr_type (arg0, arg1, ats_castfn_mac(ats_ptr_type, arg2), atspre_null_ptr) ;
return (tmp183) ;
} /* end of [list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 13453(line=580, offs=4) -- 14097(line=607, offs=4)
*/
ATSstaticdec()
ats_ptr_type
aux_fini_16 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp174) ;
ATSlocal (ats_ptr_type, tmp182) ;

__ats_lab_aux_fini_16:
tmp182 = list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), &f_17) ;
tmp174 = ats_castfn_mac(ats_ptr_type, tmp182) ;
return (tmp174) ;
} /* end of [aux_fini_16] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 14238(line=615, offs=31) -- 14268(line=615, offs=61)
*/
ATSstaticdec()
ats_ptr_type
__ats_fun_21 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp198) ;

__ats_lab___ats_fun_21:
tmp198 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_13, arg0), atslab_f2undec_var) ;
return (tmp198) ;
} /* end of [__ats_fun_21] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4893(line=177, offs=7) -- 5015(line=178, offs=73)
*/
ATSstaticdec()
ats_void_type
loop_23 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp204) ;
ATSlocal (ats_ptr_type, tmp205) ;

__ats_lab_loop_23:
do {
/* branch: __ats_lab_61 */
__ats_lab_61_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_62_0 ; }
__ats_lab_61_1:
tmp205 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_1) ;
ATS_FREE(arg0) ;
arg0 = tmp205 ;
goto __ats_lab_loop_23 ; // tail call
break ;

/* branch: __ats_lab_62 */
__ats_lab_62_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_62_1:
break ;
} while (0) ;
return /* (tmp204) */ ;
} /* end of [loop_23] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-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 (tmp203) ;

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

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 11698(line=512, offs=3) -- 14586(line=631, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undeclst_tr (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp145) ;
ATSlocal (ats_bool_type, tmp146) ;
// ATSlocal_void (tmp196) ;
ATSlocal (ats_ptr_type, tmp197) ;
ATSlocal (ats_ptr_type, tmp199) ;
ATSlocal (ats_ptr_type, tmp200) ;
ATSlocal (ats_ptr_type, tmp201) ;
// ATSlocal_void (tmp202) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undeclst_tr:
tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_recursive (arg0) ;
if (tmp146) {
tmp197 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg2, &__ats_fun_21) ;
/* ats_ptr_type tmp199 ; */
tmp199 = (ats_sum_ptr_type)0 ;
/* tmp196 = */ aux_init_15 (arg2, ats_castfn_mac(ats_ptr_type, tmp197), (&tmp199)) ;
} else {
/* empty */
} /* end of [if] */
tmp200 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undec_tr) ;
tmp201 = aux_fini_16 (arg2, tmp200) ;
/* tmp202 = */ list_vt_free_01499_ats_ptr_type (tmp200) ;
tmp145 = tmp201 ;
return (tmp145) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__f2undeclst_tr] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 1961(line=59, offs=16) -- 2054(line=60, offs=87)
*/
ATSstaticdec()
ats_bool_type
list_vt_is_nil_01494_ (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp228) ;

__ats_lab_list_vt_is_nil_01494_:
do {
/* branch: __ats_lab_68 */
__ats_lab_68_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_69_0 ; }
__ats_lab_68_1:
tmp228 = ats_true_bool ;
break ;

/* branch: __ats_lab_69 */
__ats_lab_69_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_69_1:
tmp228 = ats_false_bool ;
break ;
} while (0) ;
return (tmp228) ;
} /* end of [list_vt_is_nil_01494_] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 14681(line=639, offs=3) -- 16433(line=706, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldec_tr (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp206) ;
ATSlocal (ats_ptr_type, tmp207) ;
ATSlocal (ats_ptr_type, tmp208) ;
ATSlocal (ats_bool_type, tmp209) ;
// ATSlocal_void (tmp210) ;
// ATSlocal_void (tmp211) ;
ATSlocal (ats_ptr_type, tmp212) ;
ATSlocal (ats_ptr_type, tmp213) ;
ATSlocal (ats_ptr_type, tmp214) ;
ATSlocal (ats_ptr_type, tmp215) ;
// ATSlocal_void (tmp216) ;
ATSlocal (ats_ptr_type, tmp217) ;
ATSlocal (ats_ptr_type, tmp218) ;
ATSlocal (ats_ptr_type, tmp219) ;
ATSlocal (ats_ptr_type, tmp220) ;
ATSlocal (ats_ptr_type, tmp221) ;
ATSlocal (ats_ptr_type, tmp222) ;
ATSlocal (ats_ptr_type, tmp223) ;
ATSlocal (ats_ptr_type, tmp224) ;
ATSlocal (ats_ptr_type, tmp225) ;
ATSlocal (ats_bool_type, tmp226) ;
ATSlocal (ats_bool_type, tmp227) ;
// ATSlocal_void (tmp229) ;
ATSlocal (ats_bool_type, tmp230) ;
ATSlocal (ats_ptr_type, tmp231) ;
ATSlocal (ats_ptr_type, tmp232) ;
ATSlocal (ats_ptr_type, tmp233) ;
// ATSlocal_void (tmp234) ;
ATSlocal (ats_bool_type, tmp236) ;
ATSlocal (ats_int_type, tmp237) ;
ATSlocal (ats_ptr_type, tmp238) ;
// ATSlocal_void (tmp239) ;
// ATSlocal_void (tmp240) ;
// ATSlocal_void (tmp241) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldec_tr:
tmp207 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_v2aldec_loc) ;
tmp208 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_v2aldec_pat) ;
tmp209 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__valkind_is_proof (arg0) ;
/* tmp210 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_push_set_if (ats_castfn_mac(ats_bool_type, tmp209), _2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__effset_all) ;
/* tmp211 = ats_selsin_mac(tmp210, atslab_1) */ ;
tmp212 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_v2aldec_def) ;
tmp213 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg1), atslab_v2aldec_ann) ;
do {
/* branch: __ats_lab_63 */
__ats_lab_63_0:
if (tmp213 == (ats_sum_ptr_type)0) { goto __ats_lab_64_0 ; }
__ats_lab_63_1:
tmp215 = ats_caselptrlab_mac(anairiats_sum_5, tmp213, atslab_0) ;
tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp212, tmp215) ;
break ;

/* branch: __ats_lab_64 */
__ats_lab_64_0:
// if (tmp213 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_64_1:
tmp214 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp212) ;
break ;
} while (0) ;
/* tmp216 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_pop_if (ats_castfn_mac(ats_bool_type, tmp209)) ;
tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp214) ;
tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__valkind2caskind (arg0) ;
do {
/* branch: __ats_lab_65 */
__ats_lab_65_0:
if (((ats_sum_ptr_type)tmp218)->tag != 0) { goto __ats_lab_66_0 ; }
__ats_lab_65_1:
tmp221 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst (tmp208) ;
tmp222 = (ats_sum_ptr_type)0 ;
tmp220 = ATS_MALLOC(sizeof(anairiats_sum_11)) ;
ats_selptrset_mac(anairiats_sum_11, tmp220, atslab_0, tmp221) ;
ats_selptrset_mac(anairiats_sum_11, tmp220, atslab_1, tmp222) ;
tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_comp (tmp220) ;
break ;

/* branch: __ats_lab_66 */
__ats_lab_66_0:
if (((ats_sum_ptr_type)tmp218)->tag != 1) { goto __ats_lab_67_0 ; }
__ats_lab_66_1:
tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2at2cst (tmp208) ;
tmp225 = (ats_sum_ptr_type)0 ;
tmp223 = ATS_MALLOC(sizeof(anairiats_sum_11)) ;
ats_selptrset_mac(anairiats_sum_11, tmp223, atslab_0, tmp224) ;
ats_selptrset_mac(anairiats_sum_11, tmp223, atslab_1, tmp225) ;
tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlst_comp (tmp223) ;
break ;

/* branch: __ats_lab_67 */
__ats_lab_67_0:
// if (((ats_sum_ptr_type)tmp218)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_67_1:
tmp219 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
tmp227 = list_vt_is_nil_01494_ (tmp219) ;
if (tmp227) {
tmp226 = ats_true_bool ;
} else {
tmp226 = ats_false_bool ;
} /* end of [if] */
tmp230 = atspre_neg_bool (tmp226) ;
if (tmp230) {
tmp232 = (ats_sum_ptr_type)0 ;
tmp231 = ATS_MALLOC(sizeof(anairiats_sum_11)) ;
ats_selptrset_mac(anairiats_sum_11, tmp231, atslab_0, tmp217) ;
ats_selptrset_mac(anairiats_sum_11, tmp231, atslab_1, tmp232) ;
tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_copy (tmp219) ;
/* tmp229 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_patcstlstlst_false (tmp207, tmp218, tmp233, tmp231) ;
} else {
/* empty */
} /* end of [if] */
/* tmp234 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__p2atcstlstlst_vt_free (tmp219) ;
tmp236 = atspre_neg_bool (tmp226) ;
if (tmp236) {
tmp237 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_effenv_caskind_check_exn (tmp207, tmp218) ;
} else {
/* empty */
} /* end of [if] */
tmp238 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn (tmp208, tmp217) ;
/* tmp239 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d3lval_set_pat_type_left (tmp214, tmp238) ;
/* tmp240 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_p3at (tmp238) ;
/* tmp241 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_p3at (tmp238) ;
tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__v3aldec_make (tmp207, tmp238, tmp214) ;
return (tmp206) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldec_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 16531(line=712, offs=11) -- 16586(line=713, offs=52)
*/
ATSstaticdec()
ats_ptr_type
__ats_fun_27 (ats_ptr_type env0, ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp243) ;

__ats_lab___ats_fun_27:
tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldec_tr (env0, arg0) ;
return (tmp243) ;
} /* end of [__ats_fun_27] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
} __ats_fun_27_closure_type ;

ats_ptr_type
__ats_fun_27_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
return __ats_fun_27 (((__ats_fun_27_closure_type*)cloptr)->closure_env_0, arg0) ;
} /* end of function */

ATSinline()
ats_void_type
__ats_fun_27_closure_init (__ats_fun_27_closure_type *p_clo, ats_ptr_type env0) {
p_clo->closure_fun = (ats_fun_ptr_type)&__ats_fun_27_clofun ;
p_clo->closure_env_0 = env0 ;
return ;
} /* end of function */

ats_clo_ptr_type
__ats_fun_27_closure_make (ats_ptr_type env0) {
__ats_fun_27_closure_type *p_clo = ATS_MALLOC(sizeof(__ats_fun_27_closure_type)) ;
__ats_fun_27_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54647(line=1953, offs=6) -- 54699(line=1953, offs=58)
*/
ATSstaticdec()
ats_ptr_type
app_30 (ats_ptr_type arg0, ats_clo_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp248) ;

__ats_lab_app_30:
tmp248 = ((ats_ptr_type(*)(ats_clo_ptr_type, ats_ptr_type))(ats_closure_fun(arg1))) (arg1, arg0) ;
return (tmp248) ;
} /* end of [app_30] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54575(line=1951, offs=23) -- 54763(line=1956, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp247) ;

__ats_lab_list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type:
tmp247 = list_map_funenv_01412_ats_ptr_type_ats_ptr_type (arg0, &app_30, arg1) ;
return (tmp247) ;
} /* end of [list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 54041(line=1936, offs=19) -- 54491(line=1948, offs=2)
*/
ATSstaticdec()
ats_ptr_type
list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (ats_ptr_type arg0, ats_clo_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp246) ;

__ats_lab_list_map_cloptr_01415_ats_ptr_type_ats_ptr_type:
tmp246 = list_map_vcloptr_01416_ats_ptr_type_ats_ptr_type (arg0, arg1) ;
return (tmp246) ;
} /* end of [list_map_cloptr_01415_ats_ptr_type_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 16503(line=711, offs=15) -- 16689(line=718, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_tr (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp242) ;
ATSlocal (ats_ptr_type, tmp244) ;
ATSlocal (ats_ptr_type, tmp245) ;
// ATSlocal_void (tmp249) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_tr:
tmp244 = __ats_fun_27_closure_make (arg0) ;
tmp245 = list_map_cloptr_01415_ats_ptr_type_ats_ptr_type (arg1, tmp244) ;
/* tmp249 = */ atspre_cloptr_free (tmp244) ;
tmp242 = ats_castfn_mac(ats_ptr_type, tmp245) ;
return (tmp242) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 16809(line=727, offs=6) -- 17402(line=744, offs=6)
*/
ATSstaticdec()
ats_ptr_type
aux1_32 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp251) ;
ATSlocal (ats_ptr_type, tmp252) ;
ATSlocal (ats_ptr_type, tmp253) ;
ATSlocal (ats_ptr_type, tmp254) ;
ATSlocal (ats_ptr_type, tmp255) ;
// ATSlocal_void (tmp256) ;
ATSlocal (ats_bool_type, tmp257) ;
// ATSlocal_void (tmp258) ;
ATSlocal (ats_ptr_type, tmp259) ;
// ATSlocal_void (tmp260) ;
// ATSlocal_void (tmp261) ;
ATSlocal (ats_ptr_type, tmp262) ;

__ats_lab_aux1_32:
tmp252 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_v2aldec_pat) ;
tmp254 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_v2aldec_ann) ;
do {
/* branch: __ats_lab_70 */
__ats_lab_70_0:
if (tmp254 == (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; }
__ats_lab_70_1:
tmp255 = ats_caselptrlab_mac(anairiats_sum_5, tmp254, atslab_0) ;
tmp253 = tmp255 ;
break ;

/* branch: __ats_lab_71 */
__ats_lab_71_0:
// if (tmp254 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_71_1:
tmp253 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_syn_type (tmp252) ;
break ;
} while (0) ;
tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_is_lin (tmp253) ;
if (tmp257) {
tmp259 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, tmp252), atslab_p2at_loc) ;
/* tmp258 = */ prerr_error3_loc_02091_ (tmp259) ;
/* tmp260 = */ atspre_prerr_string (ATSstrcst(": this pattern cannot be assigned a linear type.")) ;
/* tmp261 = */ atspre_prerr_newline () ;
tmp262 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
((ats_sum_ptr_type)tmp262)->tag = 99 ;
ats_selptrset_mac(anairiats_sum_6, tmp262, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_6, tmp262, atslab_1, tmp253) ;
/* tmp256 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp262) ;
} else {
/* empty */
} /* end of [if] */
tmp251 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__p2at_trdn (tmp252, tmp253) ;
return (tmp251) ;
} /* end of [aux1_32] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 17501(line=750, offs=7) -- 17735(line=758, offs=6)
*/
ATSstaticdec()
ats_ptr_type
aux2_33 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp264) ;
ATSlocal (ats_ptr_type, tmp265) ;
ATSlocal (ats_ptr_type, tmp266) ;
ATSlocal (ats_ptr_type, tmp267) ;
ATSlocal (ats_ptr_type, tmp268) ;

__ats_lab_aux2_33:
tmp265 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_v2aldec_def) ;
tmp266 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__p3at_get_type (arg1) ;
tmp267 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp265, tmp266) ;
tmp268 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_19, arg0), atslab_v2aldec_loc) ;
tmp264 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__v3aldec_make (tmp268, arg1, tmp267) ;
return (tmp264) ;
} /* end of [aux2_33] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 16768(line=724, offs=3) -- 17833(line=765, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_rec_tr (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp250) ;
ATSlocal (ats_ptr_type, tmp263) ;
ATSlocal (ats_ptr_type, tmp269) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_rec_tr:
tmp263 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg1, &aux1_32) ;
tmp269 = list_map2_fun_01425_ats_ptr_type_2cats_ptr_type_ats_ptr_type (arg1, ats_castfn_mac(ats_ptr_type, tmp263), &aux2_33) ;
tmp250 = ats_castfn_mac(ats_ptr_type, tmp269) ;
return (tmp250) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2aldeclst_rec_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 17897(line=772, offs=1) -- 18536(line=794, offs=4)
*/
ATSstaticdec()
ats_void_type
auxInitCK_34 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp270) ;
ATSlocal (ats_bool_type, tmp271) ;
ATSlocal (ats_bool_type, tmp272) ;
// ATSlocal_void (tmp273) ;
// ATSlocal_void (tmp274) ;
// ATSlocal_void (tmp275) ;
// ATSlocal_void (tmp276) ;
// ATSlocal_void (tmp277) ;
// ATSlocal_void (tmp278) ;
// ATSlocal_void (tmp279) ;
// ATSlocal_void (tmp280) ;
// ATSlocal_void (tmp281) ;
// ATSlocal_void (tmp282) ;
// ATSlocal_void (tmp283) ;
// ATSlocal_void (tmp284) ;
// ATSlocal_void (tmp285) ;
ATSlocal (ats_ptr_type, tmp286) ;

__ats_lab_auxInitCK_34:
tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_tszeq (arg2, arg3) ;
tmp272 = atspre_neg_bool (tmp271) ;
if (tmp272) {
/* tmp273 = */ prerr_error3_loc_02091_ (arg0) ;
/* tmp274 = */ atspre_prerr_string (ATSstrcst(": initialization for [")) ;
/* tmp275 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (arg1) ;
/* tmp276 = */ atspre_prerr_string (ATSstrcst("] cannot be performed properly")) ;
/* tmp277 = */ atspre_prerr_string (ATSstrcst(": mismatch of var/val type-sizes:\n")) ;
/* tmp278 = */ atspre_prerr_string (ATSstrcst("var: [")) ;
/* tmp279 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg2) ;
/* tmp280 = */ atspre_prerr_string (ATSstrcst("]")) ;
/* tmp281 = */ atspre_prerr_newline () ;
/* tmp282 = */ atspre_prerr_string (ATSstrcst("val: [")) ;
/* tmp283 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2exp (arg3) ;
/* tmp284 = */ atspre_prerr_string (ATSstrcst("]")) ;
/* tmp285 = */ atspre_prerr_newline () ;
tmp286 = ATS_MALLOC(sizeof(anairiats_sum_10)) ;
((ats_sum_ptr_type)tmp286)->tag = 55 ;
ats_selptrset_mac(anairiats_sum_10, tmp286, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_10, tmp286, atslab_1, arg2) ;
ats_selptrset_mac(anairiats_sum_10, tmp286, atslab_2, arg3) ;
/* tmp270 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp286) ;
} else {
/* empty */
} /* end of [if] */
return /* (tmp270) */ ;
} /* end of [auxInitCK_34] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 18607(line=800, offs=3) -- 20722(line=882, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardec_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp287) ;
ATSlocal (ats_ptr_type, tmp288) ;
ATSlocal (ats_int_type, tmp289) ;
ATSlocal (ats_ptr_type, tmp290) ;
ATSlocal (ats_ptr_type, tmp291) ;
ATSlocal (ats_ptr_type, tmp292) ;
ATSlocal (ats_ptr_type, tmp293) ;
ATSlocal (ats_ptr_type, tmp294) ;
ATSlocal (ats_ptr_type, tmp295) ;
ATSlocal (ats_ptr_type, tmp296) ;
ATSlocal (ats_ptr_type, tmp297) ;
ATSlocal (ats_ptr_type, tmp298) ;
ATSlocal (ats_ptr_type, tmp299) ;
// ATSlocal_void (tmp300) ;
ATSlocal (ats_ptr_type, tmp301) ;
// ATSlocal_void (tmp302) ;
// ATSlocal_void (tmp303) ;
ATSlocal (ats_ptr_type, tmp304) ;
ATSlocal (ats_ptr_type, tmp305) ;
// ATSlocal_void (tmp306) ;
ATSlocal (ats_ptr_type, tmp307) ;
ATSlocal (ats_ptr_type, tmp308) ;
ATSlocal (ats_ptr_type, tmp309) ;
ATSlocal (ats_ptr_type, tmp310) ;
// ATSlocal_void (tmp311) ;
ATSlocal (ats_ptr_type, tmp312) ;
// ATSlocal_void (tmp313) ;
ATSlocal (ats_ptr_type, tmp314) ;
ATSlocal (ats_ptr_type, tmp315) ;
// ATSlocal_void (tmp316) ;
ATSlocal (ats_ptr_type, tmp317) ;
ATSlocal (ats_ptr_type, tmp318) ;
ATSlocal (ats_ptr_type, tmp319) ;
ATSlocal (ats_ptr_type, tmp320) ;
ATSlocal (ats_ptr_type, tmp321) ;
ATSlocal (ats_ptr_type, tmp322) ;
ATSlocal (ats_ptr_type, tmp323) ;
// ATSlocal_void (tmp324) ;
ATSlocal (ats_ptr_type, tmp325) ;
ATSlocal (ats_ptr_type, tmp326) ;
// ATSlocal_void (tmp327) ;
ATSlocal (ats_ptr_type, tmp328) ;
// ATSlocal_void (tmp329) ;
ATSlocal (ats_ptr_type, tmp330) ;
ATSlocal (ats_ptr_type, tmp331) ;
ATSlocal (ats_ptr_type, tmp332) ;
// ATSlocal_void (tmp333) ;
// ATSlocal_void (tmp334) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardec_tr:
tmp288 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_v2ardec_loc) ;
tmp289 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_v2ardec_knd) ;
tmp290 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_v2ardec_dvar) ;
tmp291 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc (tmp290) ;
tmp292 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_v2ardec_type) ;
tmp293 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_v2ardec_init) ;
/* ats_ptr_type tmp294 ; */
tmp294 = (ats_sum_ptr_type)0 ;
do {
/* branch: __ats_lab_72 */
__ats_lab_72_0:
if (tmp292 == (ats_sum_ptr_type)0) { goto __ats_lab_75_0 ; }
__ats_lab_72_1:
tmp296 = ats_caselptrlab_mac(anairiats_sum_5, tmp292, atslab_0) ;
do {
/* branch: __ats_lab_73 */
__ats_lab_73_0:
if (tmp293 == (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; }
__ats_lab_73_1:
tmp297 = ats_caselptrlab_mac(anairiats_sum_5, tmp293, atslab_0) ;
tmp298 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp297) ;
tmp299 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp299, atslab_0, tmp298) ;
tmp294 = tmp299 ;
/* tmp300 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp298) ;
tmp301 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp298) ;
/* tmp302 = */ auxInitCK_34 (tmp288, tmp290, tmp296, tmp301) ;
tmp304 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp304, atslab_0, tmp301) ;
/* tmp303 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp290, tmp304) ;
tmp295 = tmp296 ;
break ;

/* branch: __ats_lab_74 */
__ats_lab_74_0:
// if (tmp293 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_74_1:
tmp305 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_0 (tmp296) ;
tmp307 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp307, atslab_0, tmp305) ;
/* tmp306 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp290, tmp307) ;
tmp295 = tmp296 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_75 */
__ats_lab_75_0:
// if (tmp292 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_75_1:
do {
/* branch: __ats_lab_76 */
__ats_lab_76_0:
if (tmp293 == (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; }
__ats_lab_76_1:
tmp308 = ats_caselptrlab_mac(anairiats_sum_5, tmp293, atslab_0) ;
tmp309 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp308) ;
tmp310 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp310, atslab_0, tmp309) ;
tmp294 = tmp310 ;
/* tmp311 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (tmp309) ;
tmp312 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp309) ;
tmp314 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp314, atslab_0, tmp312) ;
/* tmp313 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp290, tmp314) ;
tmp295 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_0 (tmp312) ;
break ;

/* branch: __ats_lab_77 */
__ats_lab_77_0:
// if (tmp293 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_77_1:
tmp315 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (tmp291, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_t0ype) ;
tmp317 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp317, atslab_0, tmp315) ;
/* tmp316 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp290, tmp317) ;
tmp295 = tmp315 ;
break ;
} while (0) ;
break ;
} while (0) ;
tmp319 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_v2ardec_pfat) ;
tmp318 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_mutablize (tmp291, tmp290, tmp295, tmp319) ;
tmp320 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_addr (tmp290) ;
if (tmp320 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_decl.dats: 20113(line=856, offs=5) -- 20145(line=856, offs=37)") ; }
tmp321 = ats_caselptrlab_mac(anairiats_sum_5, tmp320, atslab_0) ;
tmp322 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_topize_0 (tmp295) ;
tmp323 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_at (tmp322, tmp321) ;
tmp325 = ATS_MALLOC(sizeof(anairiats_sum_2)) ;
((ats_sum_ptr_type)tmp325)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_2, tmp325, atslab_0, tmp323) ;
/* tmp324 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_finknd (tmp318, tmp325) ;
tmp326 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_v2ardec_dvaropt) ;
do {
/* branch: __ats_lab_78 */
__ats_lab_78_0:
if (tmp326 != (ats_sum_ptr_type)0) { goto __ats_lab_79_0 ; }
__ats_lab_78_1:
break ;

/* branch: __ats_lab_79 */
__ats_lab_79_0:
// if (tmp326 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_79_1:
tmp328 = ats_caselptrlab_mac(anairiats_sum_5, tmp326, atslab_0) ;
tmp330 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (tmp290) ;
/* tmp329 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp328, tmp330) ;
tmp331 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype (tmp290) ;
/* tmp327 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_mastype (tmp328, tmp331) ;
break ;
} while (0) ;
tmp332 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__v3ardec_make (tmp288, tmp289, tmp290, tmp318, tmp295, tmp294, tmp326) ;
/* tmp333 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvar (tmp290) ;
/* tmp334 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvar (tmp290) ;
tmp287 = tmp332 ;
return (tmp287) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardec_tr] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2457(line=87, offs=7) -- 2708(line=97, offs=6)
*/
ATSstaticdec()
ats_void_type
loop_39 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp339) ;
ATSlocal (ats_ptr_type, tmp340) ;
ATSlocal (ats_ptr_type, tmp341) ;
// ATSlocal_void (tmp342) ;

__ats_lab_loop_39:
do {
/* branch: __ats_lab_80 */
__ats_lab_80_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_81_0 ; }
__ats_lab_80_1:
tmp340 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_0) ;
tmp341 = ats_caselptrlab_mac(anairiats_sum_11, arg0, atslab_1) ;
/* tmp342 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp340, arg2) ;
arg0 = tmp341 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab_loop_39 ; // tail call
break ;

/* branch: __ats_lab_81 */
__ats_lab_81_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_81_1:
break ;
} while (0) ;
return /* (tmp339) */ ;
} /* end of [loop_39] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2381(line=85, offs=20) -- 2757(line=100, offs=4)
*/
ATSstaticdec()
ats_void_type
list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp338) ;

__ats_lab_list_app_funenv_01300_ats_ptr_type:
/* tmp338 = */ loop_39 (arg0, arg1, arg2) ;
return /* (tmp338) */ ;
} /* end of [list_app_funenv_01300_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2821(line=103, offs=22) -- 3078(line=112, offs=4)
*/
ATSstaticdec()
ats_void_type
list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp337) ;

__ats_lab_list_app_fun_01301_ats_ptr_type:
/* tmp337 = */ list_app_funenv_01300_ats_ptr_type (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ;
return /* (tmp337) */ ;
} /* end of [list_app_fun_01301_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 20874(line=895, offs=3) -- 20929(line=896, offs=43)
*/
ATSstaticdec()
ats_void_type
__ats_fun_40 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp343) ;
ATSlocal (ats_ptr_type, tmp344) ;

__ats_lab___ats_fun_40:
tmp344 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_21, arg0), atslab_v2ardec_svar) ;
/* tmp343 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar (tmp344) ;
return /* (tmp343) */ ;
} /* end of [__ats_fun_40] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 20815(line=889, offs=15) -- 21045(line=902, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardeclst_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp335) ;
// ATSlocal_void (tmp336) ;
ATSlocal (ats_ptr_type, tmp345) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardeclst_tr:
/* tmp336 = */ list_app_fun_01301_ats_ptr_type (arg0, &__ats_fun_40) ;
tmp345 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardec_tr) ;
tmp335 = ats_castfn_mac(ats_ptr_type, tmp345) ;
return (tmp335) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__v2ardeclst_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 21117(line=907, offs=14) -- 21814(line=939, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardec_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp346) ;
ATSlocal (ats_ptr_type, tmp347) ;
ATSlocal (ats_ptr_type, tmp348) ;
ATSlocal (ats_ptr_type, tmp349) ;
// ATSlocal_void (tmp350) ;
ATSlocal (ats_ptr_type, tmp351) ;
ATSlocal (ats_ptr_type, tmp352) ;
ATSlocal (ats_ptr_type, tmp353) ;
ATSlocal (ats_ptr_type, tmp354) ;
ATSlocal (ats_ptr_type, tmp355) ;
ATSlocal (ats_ptr_type, tmp356) ;
ATSlocal (ats_ptr_type, tmp357) ;
ATSlocal (ats_ptr_type, tmp358) ;
ATSlocal (ats_ptr_type, tmp359) ;
// ATSlocal_void (tmp360) ;
ATSlocal (ats_ptr_type, tmp361) ;
// ATSlocal_void (tmp362) ;
// ATSlocal_void (tmp363) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardec_tr:
tmp347 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_prv2ardec_loc) ;
tmp348 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_prv2ardec_dvar) ;
tmp349 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc (tmp348) ;
/* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_linval (tmp348, 0) ;
tmp351 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_prv2ardec_type) ;
tmp353 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_22, arg0), atslab_prv2ardec_init) ;
do {
/* branch: __ats_lab_82 */
__ats_lab_82_0:
if (tmp353 == (ats_sum_ptr_type)0) { goto __ats_lab_83_0 ; }
__ats_lab_82_1:
tmp354 = ats_caselptrlab_mac(anairiats_sum_5, tmp353, atslab_0) ;
tmp352 = tmp354 ;
break ;

/* branch: __ats_lab_83 */
__ats_lab_83_0:
// if (tmp353 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_83_1:
tmp352 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2exp_empty (tmp349) ;
break ;
} while (0) ;
do {
/* branch: __ats_lab_84 */
__ats_lab_84_0:
if (tmp351 == (ats_sum_ptr_type)0) { goto __ats_lab_85_0 ; }
__ats_lab_84_1:
tmp356 = ats_caselptrlab_mac(anairiats_sum_5, tmp351, atslab_0) ;
tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trdn (tmp352, tmp356) ;
break ;

/* branch: __ats_lab_85 */
__ats_lab_85_0:
// if (tmp351 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_85_1:
tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2exp_trup (tmp352) ;
break ;
} while (0) ;
tmp357 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3exp_get_type (tmp355) ;
tmp358 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp357) ;
tmp359 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp349, tmp358) ;
tmp361 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp361, atslab_0, tmp359) ;
/* tmp360 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (tmp348, tmp361) ;
/* tmp362 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_d2varenv_add_dvar (tmp348) ;
/* tmp363 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_pfmanenv_add_dvar (tmp348) ;
tmp346 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__prv3ardec_make (tmp347, tmp348, tmp359, tmp355) ;
return (tmp346) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardec_tr] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 21867(line=942, offs=17) -- 21928(line=943, offs=53)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardeclst_tr (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp364) ;
ATSlocal (ats_ptr_type, tmp365) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardeclst_tr:
tmp365 = list_map_fun_01413_ats_ptr_type_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardec_tr) ;
tmp364 = ats_castfn_mac(ats_ptr_type, tmp365) ;
return (tmp364) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__prv2ardeclst_tr] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2024(line=63, offs=10) -- 2250(line=73, offs=2)
*/
ATSstaticdec()
ats_void_type
ptr0_set_01760_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp383) ;

__ats_lab_ptr0_set_01760_ats_ptr_type:
ats_ptrget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) = arg1 ;
return /* (tmp383) */ ;
} /* end of [ptr0_set_01760_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2472(line=83, offs=21) -- 2499(line=83, offs=48)
*/
ATSstaticdec()
ats_void_type
ptrset_01764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp382) ;

__ats_lab_ptrset_01764_ats_ptr_type:
/* tmp382 = */ ptr0_set_01760_ats_ptr_type (arg0, arg1) ;
return /* (tmp382) */ ;
} /* end of [ptrset_01764_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 22009(line=950, offs=3) -- 22723(line=977, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staload (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp366) ;
ATSlocal (ats_ptr_type, tmp367) ;
ATSlocal (ats_ptr_type, tmp368) ;
ATSlocal (ats_ptr_type, tmp369) ;
ATSlocal (ats_ptr_type, tmp370) ;
ATSlocal (ats_int_type, tmp371) ;
ATSlocal (ats_ptr_type, tmp372) ;
ATSlocal (ats_int_type, tmp373) ;
ATSlocal (ats_ptr_type, tmp374) ;
// ATSlocal_void (tmp375) ;
ATSlocal (ats_ptr_type, tmp376) ;
// ATSlocal_void (tmp377) ;
// ATSlocal_void (tmp378) ;
ATSlocal (ats_ptr_type, tmp379) ;
// ATSlocal_void (tmp380) ;
ATSlocal (ats_ptr_type, tmp381) ;
ATSlocal (ats_ptr_type, tmp384) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staload:
tmp367 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_loc) ;
tmp368 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_node) ;
if (((ats_sum_ptr_type)tmp368)->tag != 24) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_decl.dats: 22055(line=953, offs=5) -- 22124(line=955, offs=20)") ; }
tmp369 = ats_caselptrlab_mac(anairiats_sum_23, tmp368, atslab_0) ;
tmp370 = ats_caselptrlab_mac(anairiats_sum_23, tmp368, atslab_1) ;
tmp371 = ats_caselptrlab_mac(anairiats_sum_23, tmp368, atslab_2) ;
tmp372 = ats_caselptrlab_mac(anairiats_sum_23, tmp368, atslab_3) ;
tmp373 = ats_caselptrlab_mac(anairiats_sum_23, tmp368, atslab_4) ;
tmp374 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__filenv_get_d3eclistopt (tmp372) ;
do {
/* branch: __ats_lab_86 */
__ats_lab_86_0:
if (tmp374 == (ats_sum_ptr_type)0) { goto __ats_lab_87_0 ; }
__ats_lab_86_1:
break ;

/* branch: __ats_lab_87 */
__ats_lab_87_0:
// if (tmp374 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_87_1:
tmp376 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2eclist (tmp372) ;
/* tmp377 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_push () ;
/* tmp378 = ats_selsin_mac(tmp377, atslab_1) */ ;
tmp379 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (tmp376) ;
/* tmp380 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop_and_unbind () ;
tmp381 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_d3eclistopt (tmp372) ;
tmp384 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp384, atslab_0, tmp379) ;
/* tmp375 = */ ptrset_01764_ats_ptr_type (tmp381, tmp384) ;
break ;
} while (0) ;
tmp366 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_staload (tmp367, tmp369, tmp370, tmp371, tmp372, tmp373) ;
return (tmp366) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staload] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 22807(line=983, offs=3) -- 23247(line=1001, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staloadloc (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp385) ;
ATSlocal (ats_ptr_type, tmp386) ;
ATSlocal (ats_ptr_type, tmp387) ;
ATSlocal (ats_ptr_type, tmp388) ;
ATSlocal (ats_ptr_type, tmp389) ;
ATSlocal (ats_ptr_type, tmp390) ;
ATSlocal (ats_ptr_type, tmp391) ;
// ATSlocal_void (tmp392) ;
// ATSlocal_void (tmp393) ;
ATSlocal (ats_ptr_type, tmp394) ;
// ATSlocal_void (tmp395) ;
ATSlocal (ats_ptr_type, tmp396) ;
// ATSlocal_void (tmp397) ;
ATSlocal (ats_ptr_type, tmp398) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staloadloc:
tmp386 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_loc) ;
tmp387 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_node) ;
if (((ats_sum_ptr_type)tmp387)->tag != 25) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_decl.dats: 22856(line=987, offs=5) -- 22910(line=988, offs=41)") ; }
tmp388 = ats_caselptrlab_mac(anairiats_sum_10, tmp387, atslab_0) ;
tmp389 = ats_caselptrlab_mac(anairiats_sum_10, tmp387, atslab_1) ;
tmp390 = ats_caselptrlab_mac(anairiats_sum_10, tmp387, atslab_2) ;
tmp391 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_get_d2eclist (tmp390) ;
/* tmp392 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_push () ;
/* tmp393 = ats_selsin_mac(tmp392, atslab_1) */ ;
tmp394 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__d2eclist_tr (tmp391) ;
/* tmp395 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2cstbindlst_pop_and_unbind () ;
tmp396 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_d3eclistopt (tmp390) ;
tmp398 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp398, atslab_0, tmp394) ;
/* tmp397 = */ ptrset_01764_ats_ptr_type (tmp396, tmp398) ;
tmp385 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_staloadloc (tmp386, tmp388, tmp389, tmp390) ;
return (tmp385) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_staloadloc] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_decl.dats: 23331(line=1007, offs=3) -- 23451(line=1014, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_dynload (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp399) ;
ATSlocal (ats_ptr_type, tmp400) ;
ATSlocal (ats_ptr_type, tmp401) ;
ATSlocal (ats_ptr_type, tmp402) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_dynload:
tmp400 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_loc) ;
tmp401 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_d2ecl_node) ;
if (((ats_sum_ptr_type)tmp401)->tag != 26) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_decl.dats: 23377(line=1010, offs=5) -- 23412(line=1010, offs=40)") ; }
tmp402 = ats_caselptrlab_mac(anairiats_sum_2, tmp401, atslab_0) ;
tmp399 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__d3ecl_dynload (tmp400, tmp402) ;
return (tmp399) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__d2ecl_tr_dynload] */

/* 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 ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_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_effect_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_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_trans2_env_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_decl_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__staload_flag = 1 ;

// _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ;
// ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2unsafe_2edats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_errmsg_2edats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_effect_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_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_decl_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_decl_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_decl_dats.c] */
