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

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

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

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_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_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

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

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

typedef
struct {
ats_ptr_type atslab_hidecl_loc ;
ats_ptr_type atslab_hidecl_node ;
} anairiats_rec_2 ;

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

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

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

typedef
struct {
ats_ptr_type atslab_hiimpdec_loc ;
ats_int_type atslab_hiimpdec_knd ;
ats_ptr_type atslab_hiimpdec_cst ;
ats_ptr_type atslab_hiimpdec_imparg ;
ats_ptr_type atslab_hiimpdec_tmparg ;
ats_ptr_type atslab_hiimpdec_def ;
ats_ptr_type atslab_hiimpdec_funlab ;
ats_ptr_type atslab_hiimpdec_instrlst ;
} anairiats_rec_6 ;

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

typedef struct {
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_8 ;

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

typedef
struct {
ats_ptr_type atslab_hifundec_loc ;
ats_ptr_type atslab_hifundec_var ;
ats_ptr_type atslab_hifundec_imparg ;
ats_ptr_type atslab_hifundec_def ;
ats_ptr_type atslab_hifundec_hidecl ;
ats_ptr_type atslab_hifundec_funlab ;
} anairiats_rec_10 ;

typedef struct {
ats_ptr_type atslab_0 ;
} anairiats_sum_11 ;

typedef
struct {
ats_ptr_type atslab_hidexp_loc ;
ats_ptr_type atslab_hidexp_type ;
ats_ptr_type atslab_hidexp_node ;
} anairiats_rec_12 ;

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

typedef
struct {
ats_ptr_type atslab_hivaldec_loc ;
ats_ptr_type atslab_hivaldec_pat ;
ats_ptr_type atslab_hivaldec_def ;
} anairiats_rec_14 ;

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

typedef
struct {
ats_ptr_type atslab_hivardec_loc ;
ats_int_type atslab_hivardec_knd ;
ats_ptr_type atslab_hivardec_dvar_ptr ;
ats_ptr_type atslab_hivardec_dvar_view ;
ats_ptr_type atslab_hivardec_type ;
ats_ptr_type atslab_hivardec_init ;
} anairiats_rec_16 ;

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

/* 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, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__VK_val_pos_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eat_12) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEcst_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEvar_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEtmpcst_20) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDElam_47) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HDEfix_48) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDnone_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDlist_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDsaspdec_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDreassume_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextype_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextvar_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDextcode_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDexndecs_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdatdecs_8) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdcstdecs_9) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDimpdec_10) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDfundecs_11) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvaldecs_12) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvaldecs_rec_13) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDvardecs_14) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDinclude_15) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDstaload_16) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDstaloadloc_17) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDdynload_18) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__HIDlocal_19) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTnone_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTcaseof_fail_4) ;

/* external dynamic constant declarations */
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_bool1) (ats_bool_type) ;
ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_gte_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_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__test_prfkind) (ats_int_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_mutailrec) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_fun) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_get) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_kind) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_funlab) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get) () ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_hisexp) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_funclo) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_funclo) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hidexp) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_exndeclst_add) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_saspdeclst_add) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extypelst_add) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extcodelst_add) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_staloadlst_add) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynloadlst_add) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dyncstlst_add) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make_ref) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_inc_tailcal) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dcst_type) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dvar_type) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_tmpcst_type) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_tmpknd) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpret) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, patsopt_funent_set_fnxlablst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_none) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_list) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_saspdec) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_extvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_datdecs) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_exndecs) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_fundecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs_rec) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_vardecs) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_impdec) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_include) (ats_ptr_type, ats_int_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_staload) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_staloadloc) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_dynload) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_local) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpref) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_d2vfunlab) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_funlab) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_tmpdec) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_extvar) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_dcstdef) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_set_funlabopt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_funlabopt) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_set_funlabopt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_set_instrlstopt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_make) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_free) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tmplevel) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tmplevel) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tailcalenv) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv_fnx) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_localjoin) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_fundec) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_impdec) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_staload) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch2_ccomp) (ats_ptr_type, ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccompv) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_funlab_arg_body) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundeclst_ccomp) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidecl_ccomp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hisexp_typize) (ats_int_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hisaspdec_ccomp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hireassume_ccomp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextvar_ccomp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextype_ccomp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextcode_ccomp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hidatdecs_ccomp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiexndecs_ccomp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp_rec) (ats_ptr_type, ats_int_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivardeclst_ccomp) (ats_ptr_type, ats_int_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 */
int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__sasp__ccomp_instrlst_type = 0 ;

/* 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 loop_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_bool_type list_is_cons_01295_ (ats_ptr_type arg0) ;
static
ats_ptr_type auxinit_12 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) ;
static
ats_void_type prerr_errccomp_loc_02093_ (ats_ptr_type arg0) ;
static
ats_void_type auxmain_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) ;
static
ats_void_type loop_18 (ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type aux_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ;
static
ats_void_type auxlst_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ;
static
ats_ptr_type auxinit_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) ;
static
ats_void_type auxmain_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_void_type aux_25 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) ;
static
ats_void_type auxlst_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type auxlam_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ;
static
ats_ptr_type auxlam2_29 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ;
static
ats_ptr_type auxfix_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ;
static
ats_ptr_type auxmain_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) ;

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

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 1729(line=56, offs=17) -- 1757(line=56, offs=45)
*/
ATSstaticdec()
ats_void_type
prerr_FILENAME_02085_ () {
/* local vardec */
// ATSlocal_void (tmp0) ;

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

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 3668(line=171, offs=3) -- 7516(line=343, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidecl_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) {
/* 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_int_type, tmp8) ;
// ATSlocal_void (tmp9) ;
ATSlocal (ats_ptr_type, tmp10) ;
ATSlocal (ats_ptr_type, tmp11) ;
ATSlocal (ats_ptr_type, tmp12) ;
ATSlocal (ats_int_type, tmp13) ;
// ATSlocal_void (tmp14) ;
ATSlocal (ats_ptr_type, tmp15) ;
ATSlocal (ats_ptr_type, tmp16) ;
ATSlocal (ats_int_type, tmp17) ;
ATSlocal (ats_ptr_type, tmp18) ;
ATSlocal (ats_ptr_type, tmp19) ;
ATSlocal (ats_ptr_type, tmp20) ;
ATSlocal (ats_int_type, tmp21) ;
ATSlocal (ats_ptr_type, tmp22) ;
ATSlocal (ats_ptr_type, tmp23) ;
ATSlocal (ats_int_type, tmp24) ;
ATSlocal (ats_ptr_type, tmp25) ;
ATSlocal (ats_int_type, tmp26) ;
ATSlocal (ats_ptr_type, tmp27) ;
ATSlocal (ats_ptr_type, tmp28) ;
ATSlocal (ats_ptr_type, tmp29) ;
// ATSlocal_void (tmp30) ;
// ATSlocal_void (tmp31) ;
ATSlocal (ats_ptr_type, tmp32) ;
ATSlocal (ats_ptr_type, tmp33) ;
ATSlocal (ats_ptr_type, tmp34) ;
// ATSlocal_void (tmp35) ;
// ATSlocal_void (tmp36) ;
ATSlocal (ats_ptr_type, tmp37) ;
// ATSlocal_void (tmp38) ;
// ATSlocal_void (tmp39) ;
ATSlocal (ats_ptr_type, tmp40) ;
ATSlocal (ats_ptr_type, tmp41) ;
// ATSlocal_void (tmp42) ;
// ATSlocal_void (tmp43) ;
ATSlocal (ats_ptr_type, tmp44) ;
// ATSlocal_void (tmp45) ;
// ATSlocal_void (tmp46) ;
ATSlocal (ats_ptr_type, tmp47) ;
// ATSlocal_void (tmp48) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidecl_ccomp:
tmp2 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_loc) ;
tmp3 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_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_ccomp_2esats__primdec_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_3, tmp3, atslab_0) ;
tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp (arg0, tmp4) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_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_ccomp_decl_2edats__hisaspdec_ccomp (arg0, arg1) ;
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_ccomp_decl_2edats__hireassume_ccomp (arg0, arg1) ;
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_ccomp_decl_2edats__hiextype_ccomp (arg0, arg1) ;
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_ccomp_decl_2edats__hiextvar_ccomp (arg0, arg1) ;
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_ccomp_decl_2edats__hiextcode_ccomp (arg0, arg1) ;
break ;

/* branch: __ats_lab_7 */
__ats_lab_7_0:
if (((ats_sum_ptr_type)tmp3)->tag != 8) { goto __ats_lab_8_0 ; }
__ats_lab_7_1:
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hidatdecs_ccomp (arg0, arg1) ;
break ;

/* branch: __ats_lab_8 */
__ats_lab_8_0:
if (((ats_sum_ptr_type)tmp3)->tag != 7) { goto __ats_lab_9_0 ; }
__ats_lab_8_1:
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiexndecs_ccomp (arg0, arg1) ;
break ;

/* branch: __ats_lab_9 */
__ats_lab_9_0:
if (((ats_sum_ptr_type)tmp3)->tag != 9) { goto __ats_lab_10_0 ; }
__ats_lab_9_1:
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_none (tmp2) ;
break ;

/* branch: __ats_lab_10 */
__ats_lab_10_0:
if (((ats_sum_ptr_type)tmp3)->tag != 10) { goto __ats_lab_11_0 ; }
__ats_lab_10_1:
tmp6 = ats_caselptrlab_mac(anairiats_sum_5, tmp3, atslab_1) ;
tmp7 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, tmp6), atslab_hiimpdec_cst) ;
tmp8 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ;
/* tmp9 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp (arg0, tmp8, tmp6, 0) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_impdec (tmp2, tmp6) ;
break ;

/* branch: __ats_lab_11 */
__ats_lab_11_0:
if (((ats_sum_ptr_type)tmp3)->tag != 11) { goto __ats_lab_12_0 ; }
__ats_lab_11_1:
tmp10 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_0) ;
tmp11 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_1) ;
tmp12 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_2) ;
tmp13 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ;
/* tmp14 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundeclst_ccomp (arg0, tmp13, tmp10, tmp11, tmp12) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_fundecs (tmp2, tmp10, tmp11, tmp12) ;
break ;

/* branch: __ats_lab_12 */
__ats_lab_12_0:
if (((ats_sum_ptr_type)tmp3)->tag != 12) { goto __ats_lab_13_0 ; }
__ats_lab_12_1:
tmp15 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_0) ;
tmp16 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_1) ;
tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ;
tmp18 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp (arg0, tmp17, tmp15, tmp16) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs (tmp2, tmp15, tmp16, tmp18) ;
break ;

/* branch: __ats_lab_13 */
__ats_lab_13_0:
if (((ats_sum_ptr_type)tmp3)->tag != 13) { goto __ats_lab_14_0 ; }
__ats_lab_13_1:
tmp19 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_0) ;
tmp20 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_1) ;
tmp21 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ;
tmp22 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp_rec (arg0, tmp21, tmp19, tmp20) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_valdecs_rec (tmp2, tmp19, tmp20, tmp22) ;
break ;

/* branch: __ats_lab_14 */
__ats_lab_14_0:
if (((ats_sum_ptr_type)tmp3)->tag != 14) { goto __ats_lab_15_0 ; }
__ats_lab_14_1:
tmp23 = ats_caselptrlab_mac(anairiats_sum_3, tmp3, atslab_0) ;
tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__the_d2varlev_get () ;
tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivardeclst_ccomp (arg0, tmp24, tmp23) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_vardecs (tmp2, tmp23, tmp25) ;
break ;

/* branch: __ats_lab_15 */
__ats_lab_15_0:
if (((ats_sum_ptr_type)tmp3)->tag != 15) { goto __ats_lab_16_0 ; }
__ats_lab_15_1:
tmp26 = ats_caselptrlab_mac(anairiats_sum_5, tmp3, atslab_0) ;
tmp27 = ats_caselptrlab_mac(anairiats_sum_5, tmp3, atslab_1) ;
tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp (arg0, tmp27) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_include (tmp2, tmp26, tmp28) ;
break ;

/* branch: __ats_lab_16 */
__ats_lab_16_0:
if (((ats_sum_ptr_type)tmp3)->tag != 16) { goto __ats_lab_17_0 ; }
__ats_lab_16_1:
tmp29 = ats_caselptrlab_mac(anairiats_sum_8, tmp3, atslab_3) ;
/* tmp30 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_staloadlst_add (arg1) ;
/* tmp31 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_staload (arg0, tmp29) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_staload (tmp2, arg1) ;
break ;

/* branch: __ats_lab_17 */
__ats_lab_17_0:
if (((ats_sum_ptr_type)tmp3)->tag != 17) { goto __ats_lab_18_0 ; }
__ats_lab_17_1:
tmp32 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_0) ;
tmp33 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_1) ;
tmp34 = ats_caselptrlab_mac(anairiats_sum_7, tmp3, atslab_2) ;
/* tmp35 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push (arg0) ;
/* tmp36 = ats_selsin_mac(tmp35, atslab_1) */ ;
tmp37 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp (arg0, tmp34) ;
/* tmp38 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_pop (arg0) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_staloadloc (tmp2, tmp32, tmp33, tmp37) ;
break ;

/* branch: __ats_lab_18 */
__ats_lab_18_0:
if (((ats_sum_ptr_type)tmp3)->tag != 18) { goto __ats_lab_19_0 ; }
__ats_lab_18_1:
/* tmp39 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dynloadlst_add (arg1) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_dynload (tmp2, arg1) ;
break ;

/* branch: __ats_lab_19 */
__ats_lab_19_0:
// if (((ats_sum_ptr_type)tmp3)->tag != 19) { ats_deadcode_failure_handle () ; }
__ats_lab_19_1:
tmp40 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_0) ;
tmp41 = ats_caselptrlab_mac(anairiats_sum_4, tmp3, atslab_1) ;
/* tmp42 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push (arg0) ;
/* tmp43 = ats_selsin_mac(tmp42, atslab_1) */ ;
tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp (arg0, tmp40) ;
/* tmp45 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_push (arg0) ;
/* tmp46 = ats_selsin_mac(tmp45, atslab_1) */ ;
tmp47 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp (arg0, tmp41) ;
/* tmp48 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_localjoin (arg0) ;
tmp1 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_local (tmp2, tmp44, tmp47) ;
break ;
} while (0) ;
return (tmp1) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidecl_ccomp] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 7617(line=351, offs=5) -- 8130(line=375, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_3 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
// ATSlocal_void (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) ;

__ats_lab_loop_3:
do {
/* branch: __ats_lab_20 */
__ats_lab_20_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; }
__ats_lab_20_1:
tmp51 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_0) ;
tmp52 = ats_caselptrlab_mac(anairiats_sum_9, arg1, atslab_1) ;
tmp53 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidecl_ccomp (arg0, tmp51) ;
tmp54 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp54, atslab_0, tmp53) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp54 ;
if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 7875(line=365, offs=9) -- 7908(line=365, offs=42)") ; }
tmp55 = &ats_caselptrlab_mac(anairiats_sum_9, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
arg0 = arg0 ;
arg1 = tmp52 ;
arg2 = tmp55 ;
goto __ats_lab_loop_3 ; // tail call
break ;

/* branch: __ats_lab_21 */
__ats_lab_21_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_21_1:
tmp56 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp56 ;
break ;
} while (0) ;
return /* (tmp50) */ ;
} /* end of [loop_3] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 7592(line=349, offs=3) -- 8245(line=384, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp49) ;
ATSlocal (ats_ptr_type, tmp57) ;
// ATSlocal_void (tmp58) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp:
/* ats_ptr_type tmp57 ; */
/* tmp58 = */ loop_3 (arg0, arg1, (&tmp57)) ;
tmp49 = ats_castfn_mac(ats_ptr_type, tmp57) ;
return (tmp49) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 8325(line=390, offs=3) -- 8452(line=398, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp0 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp59) ;
ATSlocal (ats_ptr_type, tmp60) ;
ATSlocal (ats_ptr_type, tmp61) ;
// ATSlocal_void (tmp62) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp0:
tmp60 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_make () ;
tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp (tmp60, arg0) ;
/* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_free (tmp60) ;
tmp59 = tmp61 ;
return (tmp59) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hideclist_ccomp0] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 8532(line=404, offs=3) -- 8702(line=413, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hisaspdec_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp63) ;
ATSlocal (ats_ptr_type, tmp64) ;
ATSlocal (ats_ptr_type, tmp65) ;
ATSlocal (ats_ptr_type, tmp66) ;
// ATSlocal_void (tmp67) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hisaspdec_ccomp:
tmp64 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_loc) ;
tmp65 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_node) ;
if (((ats_sum_ptr_type)tmp65)->tag != 2) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 8584(line=407, offs=5) -- 8618(line=407, offs=39)") ; }
tmp66 = ats_caselptrlab_mac(anairiats_sum_3, tmp65, atslab_0) ;
/* tmp67 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_saspdeclst_add (arg1) ;
tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_saspdec (tmp64, tmp66) ;
return (tmp63) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hisaspdec_ccomp] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 8784(line=419, offs=3) -- 8828(line=420, offs=31)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hireassume_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp68) ;
ATSlocal (ats_ptr_type, tmp69) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hireassume_ccomp:
tmp69 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_loc) ;
tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_none (tmp69) ;
return (tmp68) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hireassume_ccomp] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 8881(line=426, offs=3) -- 9093(line=435, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextype_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp70) ;
ATSlocal (ats_ptr_type, tmp71) ;
ATSlocal (ats_ptr_type, tmp72) ;
ATSlocal (ats_ptr_type, tmp73) ;
ATSlocal (ats_ptr_type, tmp74) ;
// ATSlocal_void (tmp75) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextype_ccomp:
tmp71 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_loc) ;
tmp72 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_node) ;
if (((ats_sum_ptr_type)tmp72)->tag != 4) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 8933(line=429, offs=5) -- 8977(line=429, offs=49)") ; }
tmp73 = ats_caselptrlab_mac(anairiats_sum_4, tmp72, atslab_1) ;
tmp74 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hisexp_typize (0, tmp73) ;
/* tmp75 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extypelst_add (arg1) ;
tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_none (tmp71) ;
return (tmp70) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextype_ccomp] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 9170(line=441, offs=3) -- 9614(line=461, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextvar_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp76) ;
ATSlocal (ats_ptr_type, tmp77) ;
ATSlocal (ats_ptr_type, tmp78) ;
ATSlocal (ats_ptr_type, tmp79) ;
ATSlocal (ats_ptr_type, tmp80) ;
ATSlocal (ats_ptr_type, tmp81) ;
ATSlocal (ats_ptr_type, tmp82) ;
// ATSlocal_void (tmp83) ;
ATSlocal (ats_ptr_type, tmp84) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextvar_ccomp:
tmp77 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_loc) ;
tmp78 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_node) ;
if (((ats_sum_ptr_type)tmp78)->tag != 5) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 9222(line=444, offs=5) -- 9266(line=444, offs=49)") ; }
tmp79 = ats_caselptrlab_mac(anairiats_sum_4, tmp78, atslab_0) ;
tmp80 = ats_caselptrlab_mac(anairiats_sum_4, tmp78, atslab_1) ;
/* ats_ptr_type tmp81 ; */
tmp81 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ;
tmp82 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, tmp81, tmp80) ;
/* tmp83 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_extvar (tmp81, tmp77, tmp79, tmp82) ;
tmp84 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp81) ;
tmp76 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_extvar (tmp77, tmp79, tmp84) ;
return (tmp76) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextvar_ccomp] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 9692(line=467, offs=3) -- 9806(line=474, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextcode_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp85) ;
ATSlocal (ats_ptr_type, tmp86) ;
// ATSlocal_void (tmp87) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextcode_ccomp:
tmp86 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_loc) ;
/* tmp87 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_extcodelst_add (arg1) ;
tmp85 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_none (tmp86) ;
return (tmp85) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiextcode_ccomp] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 9885(line=480, offs=3) -- 10112(line=493, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hidatdecs_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp88) ;
ATSlocal (ats_ptr_type, tmp89) ;
ATSlocal (ats_ptr_type, tmp90) ;
ATSlocal (ats_int_type, tmp91) ;
ATSlocal (ats_ptr_type, tmp92) ;
ATSlocal (ats_bool_type, tmp93) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hidatdecs_ccomp:
tmp89 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_loc) ;
tmp90 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_node) ;
if (((ats_sum_ptr_type)tmp90)->tag != 8) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 9937(line=483, offs=5) -- 9978(line=483, offs=46)") ; }
tmp91 = ats_caselptrlab_mac(anairiats_sum_5, tmp90, atslab_0) ;
tmp92 = ats_caselptrlab_mac(anairiats_sum_5, tmp90, atslab_1) ;
tmp93 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__test_prfkind (tmp91) ;
if (tmp93) {
tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_none (tmp89) ;
} else {
tmp88 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_datdecs (tmp89, tmp92) ;
} /* end of [if] */
return (tmp88) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hidatdecs_ccomp] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 10191(line=499, offs=3) -- 10357(line=508, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiexndecs_ccomp (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp94) ;
ATSlocal (ats_ptr_type, tmp95) ;
ATSlocal (ats_ptr_type, tmp96) ;
ATSlocal (ats_ptr_type, tmp97) ;
// ATSlocal_void (tmp98) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiexndecs_ccomp:
tmp95 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_loc) ;
tmp96 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_2, arg1), atslab_hidecl_node) ;
if (((ats_sum_ptr_type)tmp96)->tag != 7) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 10243(line=502, offs=5) -- 10279(line=502, offs=41)") ; }
tmp97 = ats_caselptrlab_mac(anairiats_sum_3, tmp96, atslab_0) ;
/* tmp98 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_exndeclst_add (arg1) ;
tmp94 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primdec_exndecs (tmp95, tmp97) ;
return (tmp94) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hiexndecs_ccomp] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 50559(line=1787, offs=18) -- 50622(line=1789, offs=4)
*/
ATSstaticdec()
ats_bool_type
list_is_cons_01295_ (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp117) ;

__ats_lab_list_is_cons_01295_:
do {
/* branch: __ats_lab_24 */
__ats_lab_24_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_25_0 ; }
__ats_lab_24_1:
tmp117 = ats_true_bool ;
break ;

/* branch: __ats_lab_25 */
__ats_lab_25_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_25_1:
tmp117 = ats_false_bool ;
break ;
} while (0) ;
return (tmp117) ;
} /* end of [list_is_cons_01295_] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 10419(line=515, offs=1) -- 12038(line=588, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxinit_12 (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp99) ;
ATSlocal (ats_ptr_type, tmp100) ;
ATSlocal (ats_ptr_type, tmp101) ;
ATSlocal (ats_ptr_type, tmp102) ;
ATSlocal (ats_ptr_type, tmp103) ;
// ATSlocal_void (tmp104) ;
ATSlocal (ats_ptr_type, tmp105) ;
ATSlocal (ats_ptr_type, tmp106) ;
ATSlocal (ats_ptr_type, tmp107) ;
ATSlocal (ats_ptr_type, tmp108) ;
// ATSlocal_void (tmp109) ;
ATSlocal (ats_bool_type, tmp110) ;
ATSlocal (ats_int_type, tmp111) ;
ATSlocal (ats_ptr_type, tmp112) ;
ATSlocal (ats_bool_type, tmp113) ;
// ATSlocal_void (tmp114) ;
ATSlocal (ats_bool_type, tmp115) ;
ATSlocal (ats_bool_type, tmp116) ;
// ATSlocal_void (tmp118) ;
// ATSlocal_void (tmp119) ;
ATSlocal (ats_int_type, tmp120) ;
ATSlocal (ats_bool_type, tmp121) ;
ATSlocal (ats_ptr_type, tmp122) ;

__ats_lab_auxinit_12:
do {
/* branch: __ats_lab_22 */
__ats_lab_22_0:
if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_23_0 ; }
__ats_lab_22_1:
tmp99 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_23 */
__ats_lab_23_0:
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_23_1:
tmp100 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_0) ;
tmp101 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_1) ;
tmp102 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp100), atslab_hifundec_loc) ;
tmp103 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp100), atslab_hifundec_var) ;
/* tmp104 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level (tmp103, arg1) ;
tmp105 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_hisexp (tmp103) ;
if (tmp105 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 10904(line=542, offs=9) -- 10938(line=542, offs=43)") ; }
tmp106 = ats_caselptrlab_mac(anairiats_sum_11, tmp105, atslab_0) ;
tmp107 = (ats_sum_ptr_type)0 ;
tmp108 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dvar_type (tmp103, tmp106, tmp107) ;
tmp110 = atspre_lte_int_int (arg4, 1) ;
if (tmp110) {
/* tmp109 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add (tmp108) ;
} else {
/* empty */
} /* end of [if] */
tmp111 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel (arg0) ;
tmp113 = atspre_eq_int_int (tmp111, 0) ;
if (tmp113) {
tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab (tmp102, tmp108) ;
} else {
tmp112 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_d2vfunlab (tmp102, tmp103, tmp108) ;
} /* end of [if] */
/* tmp114 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp103, tmp112) ;
tmp116 = atspre_gt_int_int (tmp111, 0) ;
if (tmp116) {
tmp115 = ats_true_bool ;
} else {
tmp115 = list_is_cons_01295_ (arg2) ;
} /* end of [if] */
if (tmp115) {
/* tmp118 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_tmpknd (tmp108, 1) ;
} else {
/* empty */
} /* end of [if] */
do {
/* branch: __ats_lab_26 */
__ats_lab_26_0:
if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_27_0 ; }
__ats_lab_26_1:
break ;

/* branch: __ats_lab_27 */
__ats_lab_27_0:
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_27_1:
/* tmp119 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_fundec (arg0, tmp100) ;
break ;
} while (0) ;
tmp121 = atspre_gte_int_int (arg4, 1) ;
if (tmp121) {
tmp120 = atspre_add_int_int (arg4, 1) ;
} else {
tmp120 = arg4 ;
} /* end of [if] */
tmp122 = auxinit_12 (arg0, arg1, arg2, tmp101, tmp120) ;
tmp99 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp99, atslab_0, tmp108) ;
ats_selptrset_mac(anairiats_sum_9, tmp99, atslab_1, tmp122) ;
break ;
} while (0) ;
return (tmp99) ;
} /* end of [auxinit_12] */

/*
// /tmp/ATS-Postiats/src/pats_errmsg.dats: 2599(line=102, offs=20) -- 2662(line=105, offs=2)
*/
ATSstaticdec()
ats_void_type
prerr_errccomp_loc_02093_ (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp133) ;
// ATSlocal_void (tmp134) ;

__ats_lab_prerr_errccomp_loc_02093_:
/* tmp134 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ;
/* tmp133 = */ atspre_prerr_string (ATSstrcst(": error(ccomp)")) ;
return /* (tmp133) */ ;
} /* end of [prerr_errccomp_loc_02093_] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 12085(line=593, offs=1) -- 14143(line=686, offs=4)
*/
ATSstaticdec()
ats_void_type
auxmain_14 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_int_type arg4) {
/* local vardec */
// ATSlocal_void (tmp123) ;
ATSlocal (ats_ptr_type, tmp124) ;
ATSlocal (ats_ptr_type, tmp125) ;
ATSlocal (ats_ptr_type, tmp126) ;
ATSlocal (ats_ptr_type, tmp127) ;
ATSlocal (ats_ptr_type, tmp128) ;
ATSlocal (ats_ptr_type, tmp129) ;
// ATSlocal_void (tmp130) ;
ATSlocal (ats_ptr_type, tmp131) ;
// ATSlocal_void (tmp132) ;
// ATSlocal_void (tmp135) ;
// ATSlocal_void (tmp136) ;
ATSlocal (ats_ptr_type, tmp137) ;
ATSlocal (ats_ptr_type, tmp138) ;
ATSlocal (ats_ptr_type, tmp139) ;
ATSlocal (ats_ptr_type, tmp140) ;
ATSlocal (ats_ptr_type, tmp141) ;
ATSlocal (ats_ptr_type, tmp142) ;
// ATSlocal_void (tmp143) ;
ATSlocal (ats_bool_type, tmp144) ;
ATSlocal (ats_bool_type, tmp145) ;
// ATSlocal_void (tmp146) ;
ATSlocal (ats_ptr_type, tmp147) ;
ATSlocal (ats_ptr_type, tmp148) ;
ATSlocal (ats_ptr_type, tmp149) ;
ATSlocal (ats_ptr_type, tmp150) ;
ATSlocal (ats_ptr_type, tmp151) ;
// ATSlocal_void (tmp152) ;
// ATSlocal_void (tmp153) ;
ATSlocal (ats_bool_type, tmp154) ;
// ATSlocal_void (tmp155) ;
ATSlocal (ats_bool_type, tmp156) ;
ATSlocal (ats_ptr_type, tmp157) ;
// ATSlocal_void (tmp158) ;
ATSlocal (ats_ptr_type, tmp159) ;
// ATSlocal_void (tmp160) ;
ATSlocal (ats_ptr_type, tmp161) ;
ATSlocal (ats_int_type, tmp162) ;
ATSlocal (ats_bool_type, tmp163) ;

__ats_lab_auxmain_14:
do {
/* branch: __ats_lab_28 */
__ats_lab_28_0:
if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_29_0 ; }
__ats_lab_28_1:
// if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
break ;

/* branch: __ats_lab_29 */
__ats_lab_29_0:
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_29_1:
tmp124 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_0) ;
tmp125 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_1) ;
tmp126 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp124), atslab_hifundec_loc) ;
tmp127 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp124), atslab_hifundec_var) ;
tmp128 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp124), atslab_hifundec_imparg) ;
tmp129 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, tmp124), atslab_hifundec_def) ;
tmp131 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp129), atslab_hidexp_node) ;
do {
/* branch: __ats_lab_30 */
__ats_lab_30_0:
if (((ats_sum_ptr_type)tmp131)->tag != 47) { goto __ats_lab_31_0 ; }
__ats_lab_30_1:
break ;

/* branch: __ats_lab_31 */
__ats_lab_31_0:
__ats_lab_31_1:
/* tmp132 = */ prerr_errccomp_loc_02093_ (tmp126) ;
/* tmp135 = */ atspre_prerr_string (ATSstrcst(": non-lambda function definition is not supported.")) ;
/* tmp136 = */ atspre_prerr_newline () ;
tmp137 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 12912(line=629, offs=26) -- 12921(line=629, offs=35)", ATSstrcst("\n")) ;
/* tmp130 = */ ats_exit_errmsg (1, tmp137) ;
break ;
} while (0) ;
tmp138 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp129), atslab_hidexp_node) ;
if (((ats_sum_ptr_type)tmp138)->tag != 47) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 12973(line=633, offs=5) -- 13041(line=636, offs=28)") ; }
tmp139 = ats_caselptrlab_mac(anairiats_sum_13, tmp138, atslab_1) ;
tmp140 = ats_caselptrlab_mac(anairiats_sum_13, tmp138, atslab_2) ;
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp141 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_0) ;
tmp142 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_1) ;
tmp144 = atspre_eq_int_int (arg4, 0) ;
if (tmp144) {
/* tmp143 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv (arg0, tmp141) ;
} else {
/* empty */
} /* end of [if] */
tmp145 = list_is_cons_01295_ (arg1) ;
if (tmp145) {
/* tmp146 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tmplevel (arg0) ;
} else {
/* empty */
} /* end of [if] */
tmp147 = (ats_sum_ptr_type)0 ;
tmp149 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_funlab (tmp126, tmp141) ;
tmp150 = (ats_sum_ptr_type)0 ;
tmp148 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp148, atslab_0, tmp149) ;
ats_selptrset_mac(anairiats_sum_9, tmp148, atslab_1, tmp150) ;
tmp151 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_funlab_arg_body (arg0, tmp141, tmp128, tmp147, tmp148, tmp126, tmp139, tmp140) ;
if (tmp145) {
/* tmp152 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tmplevel (arg0) ;
} else {
/* empty */
} /* end of [if] */
tmp154 = atspre_eq_int_int (arg4, 0) ;
if (tmp154) {
/* tmp153 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tailcalenv (arg0) ;
} else {
/* empty */
} /* end of [if] */
tmp156 = atspre_gt_int_int (arg4, 0) ;
if (tmp156) {
tmp157 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funent_get_tmpret (tmp151) ;
/* tmp155 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_inc_tailcal (tmp157) ;
} else {
/* empty */
} /* end of [if] */
tmp159 = ATS_MALLOC(sizeof(anairiats_sum_11)) ;
ats_selptrset_mac(anairiats_sum_11, tmp159, atslab_0, tmp141) ;
/* tmp158 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundec_set_funlabopt (tmp124, tmp159) ;
tmp161 = ATS_MALLOC(sizeof(anairiats_sum_11)) ;
ats_selptrset_mac(anairiats_sum_11, tmp161, atslab_0, tmp151) ;
/* tmp160 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent (tmp141, tmp161) ;
tmp163 = atspre_gte_int_int (arg4, 1) ;
if (tmp163) {
tmp162 = atspre_add_int_int (arg4, 1) ;
} else {
tmp162 = arg4 ;
} /* end of [if] */
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp125 ;
arg3 = tmp142 ;
arg4 = tmp162 ;
goto __ats_lab_auxmain_14 ; // tail call
break ;
} while (0) ;
return /* (tmp123) */ ;
} /* end of [auxmain_14] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 12687(line=466, offs=7) -- 13058(line=477, offs=43)
*/
ATSstaticdec()
ats_void_type
loop_18 (ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
// ATSlocal_void (tmp173) ;
ATSlocal (ats_ptr_type, tmp174) ;
ATSlocal (ats_ptr_type, tmp175) ;
ATSlocal (ats_ptr_type, tmp176) ;
ATSlocal (ats_ptr_type, tmp177) ;
ATSlocal (ats_ptr_type, tmp178) ;

__ats_lab_loop_18:
do {
/* branch: __ats_lab_32 */
__ats_lab_32_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_33_0 ; }
__ats_lab_32_1:
tmp174 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ;
tmp175 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ;
tmp176 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp176, atslab_0, tmp174) ;
ats_ptrget_mac(ats_ptr_type, arg1) = tmp176 ;
// if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp177 = &ats_caselptrlab_mac(anairiats_sum_9, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ;
arg0 = tmp175 ;
arg1 = tmp177 ;
goto __ats_lab_loop_18 ; // tail call
break ;

/* branch: __ats_lab_33 */
__ats_lab_33_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_33_1:
tmp178 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg1) = tmp178 ;
break ;
} while (0) ;
return /* (tmp173) */ ;
} /* end of [loop_18] */

/*
// /home/ats-lang-anairiats-0.2.12/prelude/DATS/list.dats: 12658(line=464, offs=3) -- 13177(line=483, offs=2)
*/
ATSstaticdec()
ats_ptr_type
list_copy_01322_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp172) ;
ATSlocal (ats_ptr_type, tmp179) ;
// ATSlocal_void (tmp180) ;

__ats_lab_list_copy_01322_ats_ptr_type:
/* ats_ptr_type tmp179 ; */
/* tmp180 = */ loop_18 (arg0, (&tmp179)) ;
tmp172 = tmp179 ;
return (tmp172) ;
} /* end of [list_copy_01322_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 14217(line=692, offs=1) -- 14936(line=730, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundeclst_ccomp (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
// ATSlocal_void (tmp164) ;
ATSlocal (ats_int_type, tmp165) ;
ATSlocal (ats_bool_type, tmp166) ;
ATSlocal (ats_bool_type, tmp167) ;
ATSlocal (ats_int_type, tmp168) ;
ATSlocal (ats_ptr_type, tmp169) ;
// ATSlocal_void (tmp170) ;
ATSlocal (ats_ptr_type, tmp171) ;
// ATSlocal_void (tmp181) ;
ATSlocal (ats_ptr_type, tmp182) ;
ATSlocal (ats_ptr_type, tmp183) ;
ATSlocal (ats_ptr_type, tmp184) ;
// ATSlocal_void (tmp185) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundeclst_ccomp:
tmp165 = _2tmp_2ATS_2dPostiats_2src_2pats_global_2esats__the_CCOMPATS_tlcalopt_get () ;
tmp167 = atspre_gt_int_int (tmp165, 0) ;
if (tmp167) {
tmp166 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__funkind_is_mutailrec (arg2) ;
} else {
tmp166 = ats_false_bool ;
} /* end of [if] */
if (tmp166) {
tmp168 = 1 ;
} else {
tmp168 = 0 ;
} /* end of [if] */
tmp169 = auxinit_12 (arg0, arg1, arg3, arg4, tmp168) ;
if (tmp166) {
tmp171 = list_copy_01322_ats_ptr_type (tmp169) ;
/* tmp170 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv_fnx (arg0, tmp171) ;
} else {
/* empty */
} /* end of [if] */
/* tmp181 = */ auxmain_14 (arg0, arg3, arg4, tmp169, tmp168) ;
if (tmp166) {
if (tmp169 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 14740(line=721, offs=7) -- 14766(line=721, offs=33)") ; }
tmp182 = ats_caselptrlab_mac(anairiats_sum_9, tmp169, atslab_0) ;
tmp183 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_get_funent (tmp182) ;
if (tmp183 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 14773(line=722, offs=7) -- 14810(line=722, offs=44)") ; }
tmp184 = ats_caselptrlab_mac(anairiats_sum_11, tmp183, atslab_0) ;
/* tmp185 = */ patsopt_funent_set_fnxlablst (tmp184, tmp169) ;
/* tmp164 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tailcalenv (arg0) ;
} else {
/* empty */
} /* end of [if] */
return /* (tmp164) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hifundeclst_ccomp] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 15023(line=738, offs=5) -- 15650(line=766, offs=4)
*/
ATSstaticdec()
ats_void_type
aux_19 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
// ATSlocal_void (tmp186) ;
ATSlocal (ats_ptr_type, tmp187) ;
ATSlocal (ats_ptr_type, tmp188) ;
ATSlocal (ats_ptr_type, tmp189) ;
ATSlocal (ats_ptr_type, tmp190) ;
ATSlocal (ats_ptr_type, tmp191) ;
// ATSlocal_void (tmp192) ;

__ats_lab_aux_19:
tmp187 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg4), atslab_hivaldec_loc) ;
tmp188 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg4), atslab_hivaldec_def) ;
tmp189 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccompv (arg0, arg1, tmp188) ;
tmp190 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg4), atslab_hivaldec_pat) ;
do {
/* branch: __ats_lab_34 */
__ats_lab_34_0:
if (((ats_sum_ptr_type)arg3)->tag != 1) { goto __ats_lab_35_0 ; }
__ats_lab_34_1:
tmp191 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__PTCKNTnone_0) ;
break ;

/* branch: __ats_lab_35 */
__ats_lab_35_0:
__ats_lab_35_1:
tmp191 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
((ats_sum_ptr_type)tmp191)->tag = 4 ;
ats_selptrset_mac(anairiats_sum_3, tmp191, atslab_0, tmp187) ;
break ;
} while (0) ;
/* tmp192 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hipatck_ccomp (arg0, arg1, tmp191, tmp190, tmp189) ;
/* tmp186 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch2_ccomp (arg0, arg1, arg2, tmp190, tmp189) ;
return /* (tmp186) */ ;
} /* end of [aux_19] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 15672(line=768, offs=5) -- 16031(line=788, offs=4)
*/
ATSstaticdec()
ats_void_type
auxlst_20 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
// ATSlocal_void (tmp193) ;
ATSlocal (ats_ptr_type, tmp194) ;
ATSlocal (ats_ptr_type, tmp195) ;
// ATSlocal_void (tmp196) ;

__ats_lab_auxlst_20:
do {
/* branch: __ats_lab_36 */
__ats_lab_36_0:
if (arg4 != (ats_sum_ptr_type)0) { goto __ats_lab_37_0 ; }
__ats_lab_36_1:
break ;

/* branch: __ats_lab_37 */
__ats_lab_37_0:
// if (arg4 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_37_1:
tmp194 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_0) ;
tmp195 = ats_caselptrlab_mac(anairiats_sum_9, arg4, atslab_1) ;
/* tmp196 = */ aux_19 (arg0, arg1, arg2, arg3, tmp194) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = tmp195 ;
goto __ats_lab_auxlst_20 ; // tail call
break ;
} while (0) ;
return /* (tmp193) */ ;
} /* end of [auxlst_20] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 16104(line=794, offs=1) -- 16272(line=806, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp197) ;
ATSlocal (ats_ptr_type, tmp198) ;
// ATSlocal_void (tmp199) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp:
/* ats_ptr_type tmp198 ; */
tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ;
/* tmp199 = */ auxlst_20 (arg0, tmp198, arg1, arg2, arg3) ;
tmp197 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp198) ;
return (tmp197) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 16359(line=815, offs=1) -- 16972(line=844, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxinit_22 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp200) ;
ATSlocal (ats_ptr_type, tmp201) ;
ATSlocal (ats_ptr_type, tmp202) ;
ATSlocal (ats_ptr_type, tmp203) ;
ATSlocal (ats_ptr_type, tmp204) ;
ATSlocal (ats_ptr_type, tmp205) ;
ATSlocal (ats_ptr_type, tmp206) ;
// ATSlocal_void (tmp207) ;
ATSlocal (ats_ptr_type, tmp208) ;
// ATSlocal_void (tmp209) ;
ATSlocal (ats_ptr_type, tmp210) ;

__ats_lab_auxinit_22:
do {
/* branch: __ats_lab_38 */
__ats_lab_38_0:
if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; }
__ats_lab_38_1:
tmp200 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_39 */
__ats_lab_39_0:
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_39_1:
tmp201 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_0) ;
tmp202 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_1) ;
tmp203 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp201), atslab_hivaldec_pat) ;
tmp204 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp203), atslab_hipat_loc) ;
tmp205 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_15, tmp203), atslab_hipat_type) ;
tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make (tmp204, tmp205) ;
/* tmp207 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_tmpdec (arg1, tmp204, tmp206) ;
tmp208 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmp (tmp204, tmp205, tmp206) ;
/* tmp209 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__himatch2_ccomp (arg0, arg1, arg2, tmp203, tmp208) ;
tmp210 = auxinit_22 (arg0, arg1, arg2, tmp202) ;
tmp200 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp200, atslab_0, tmp206) ;
ats_selptrset_mac(anairiats_sum_9, tmp200, atslab_1, tmp210) ;
break ;
} while (0) ;
return (tmp200) ;
} /* end of [auxinit_22] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 16998(line=847, offs=1) -- 17495(line=873, offs=4)
*/
ATSstaticdec()
ats_void_type
auxmain_23 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp211) ;
ATSlocal (ats_ptr_type, tmp212) ;
ATSlocal (ats_ptr_type, tmp213) ;
ATSlocal (ats_ptr_type, tmp214) ;
ATSlocal (ats_ptr_type, tmp215) ;
ATSlocal (ats_ptr_type, tmp216) ;
// ATSlocal_void (tmp217) ;

__ats_lab_auxmain_23:
do {
/* branch: __ats_lab_40 */
__ats_lab_40_0:
if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; }
__ats_lab_40_1:
// if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
break ;

/* branch: __ats_lab_41 */
__ats_lab_41_0:
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_41_1:
tmp212 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_0) ;
tmp213 = ats_caselptrlab_mac(anairiats_sum_9, arg2, atslab_1) ;
tmp214 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp212), atslab_hivaldec_def) ;
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp215 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_0) ;
tmp216 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_1) ;
ATS_FREE(arg3) ;
/* tmp217 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret (arg0, arg1, tmp215, tmp214) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp213 ;
arg3 = tmp216 ;
goto __ats_lab_auxmain_23 ; // tail call
break ;
} while (0) ;
return /* (tmp211) */ ;
} /* end of [auxmain_23] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 17575(line=879, offs=3) -- 17788(line=891, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp_rec (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp218) ;
ATSlocal (ats_ptr_type, tmp219) ;
ATSlocal (ats_ptr_type, tmp220) ;
// ATSlocal_void (tmp221) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp_rec:
/* ats_ptr_type tmp219 ; */
tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ;
tmp220 = auxinit_22 (arg0, tmp219, arg1, arg3) ;
/* tmp221 = */ auxmain_23 (arg0, tmp219, arg3, tmp220) ;
tmp218 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp219) ;
return (tmp218) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivaldeclst_ccomp_rec] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 17879(line=899, offs=5) -- 18713(line=934, offs=4)
*/
ATSstaticdec()
ats_void_type
aux_25 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp222) ;
ATSlocal (ats_ptr_type, tmp223) ;
ATSlocal (ats_ptr_type, tmp224) ;
ATSlocal (ats_ptr_type, tmp225) ;
ATSlocal (ats_ptr_type, tmp226) ;
// ATSlocal_void (tmp227) ;
ATSlocal (ats_ptr_type, tmp228) ;
ATSlocal (ats_ptr_type, tmp229) ;
ATSlocal (ats_ptr_type, tmp230) ;
ATSlocal (ats_ptr_type, tmp231) ;
ATSlocal (ats_ptr_type, tmp232) ;
ATSlocal (ats_ptr_type, tmp233) ;
// ATSlocal_void (tmp234) ;
// ATSlocal_void (tmp235) ;
ATSlocal (ats_ptr_type, tmp236) ;
ATSlocal (ats_ptr_type, tmp237) ;
ATSlocal (ats_ptr_type, tmp238) ;
ATSlocal (ats_ptr_type, tmp239) ;

__ats_lab_aux_25:
tmp223 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg3), atslab_hivardec_loc) ;
tmp224 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg3), atslab_hivardec_dvar_ptr) ;
tmp225 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg3), atslab_hivardec_dvar_view) ;
tmp226 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_loc (tmp224) ;
/* tmp227 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_level (tmp224, arg2) ;
tmp228 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_mastype (tmp225) ;
if (tmp228 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 18154(line=913, offs=5) -- 18197(line=913, offs=48)") ; }
tmp229 = ats_caselptrlab_mac(anairiats_sum_11, tmp228, atslab_0) ;
tmp230 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_17, tmp229), atslab_s2exp_node) ;
if (((ats_sum_ptr_type)tmp230)->tag != 12) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 18202(line=914, offs=5) -- 18238(line=914, offs=41)") ; }
tmp231 = ats_caselptrlab_mac(anairiats_sum_4, tmp230, atslab_0) ;
tmp232 = _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__s2exp_tyer_shallow (tmp226, tmp231) ;
tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__tmpvar_make_ref (tmp226, tmp232) ;
/* tmp234 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_tmpdec (arg1, tmp226, tmp233) ;
tmp236 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, arg3), atslab_hivardec_init) ;
do {
/* branch: __ats_lab_42 */
__ats_lab_42_0:
if (tmp236 != (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; }
__ats_lab_42_1:
break ;

/* branch: __ats_lab_43 */
__ats_lab_43_0:
// if (tmp236 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_43_1:
tmp237 = ats_caselptrlab_mac(anairiats_sum_11, tmp236, atslab_0) ;
/* tmp235 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_ret (arg0, arg1, tmp233, tmp237) ;
break ;
} while (0) ;
tmp238 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_tmpref (tmp223, tmp232, tmp233) ;
tmp239 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_ptrof (tmp223, _2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__hisexp_typtr, tmp238) ;
/* tmp222 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp224, tmp239) ;
return /* (tmp222) */ ;
} /* end of [aux_25] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 18735(line=936, offs=5) -- 19031(line=953, offs=4)
*/
ATSstaticdec()
ats_void_type
auxlst_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp240) ;
ATSlocal (ats_ptr_type, tmp241) ;
ATSlocal (ats_ptr_type, tmp242) ;
// ATSlocal_void (tmp243) ;

__ats_lab_auxlst_26:
do {
/* branch: __ats_lab_44 */
__ats_lab_44_0:
if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; }
__ats_lab_44_1:
tmp241 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_0) ;
tmp242 = ats_caselptrlab_mac(anairiats_sum_9, arg3, atslab_1) ;
/* tmp243 = */ aux_25 (arg0, arg1, arg2, tmp241) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp242 ;
goto __ats_lab_auxlst_26 ; // tail call
break ;

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

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 19106(line=959, offs=3) -- 19251(line=967, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivardeclst_ccomp (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp244) ;
ATSlocal (ats_ptr_type, tmp245) ;
// ATSlocal_void (tmp246) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivardeclst_ccomp:
/* ats_ptr_type tmp245 ; */
tmp245 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ;
/* tmp246 = */ auxlst_26 (arg0, tmp245, arg1, arg2) ;
tmp244 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp245) ;
return (tmp244) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__hivardeclst_ccomp] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 19338(line=975, offs=5) -- 19697(line=992, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxlam_28 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp247) ;
ATSlocal (ats_ptr_type, tmp248) ;
ATSlocal (ats_ptr_type, tmp249) ;
ATSlocal (ats_ptr_type, tmp250) ;
// ATSlocal_void (tmp251) ;

__ats_lab_auxlam_28:
tmp248 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg5), atslab_hidexp_type) ;
tmp249 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_funclo (arg2) ;
tmp250 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dcst_type (arg2, tmp248, tmp249) ;
/* tmp251 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add (tmp250) ;
tmp247 = auxlam2_29 (arg0, arg1, tmp250, arg3, arg4, arg5) ;
return (tmp247) ;
} /* end of [auxlam_28] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 19726(line=994, offs=5) -- 20632(line=1038, offs=2)
*/
ATSstaticdec()
ats_ptr_type
auxlam2_29 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp252) ;
// ATSlocal_void (tmp253) ;
ATSlocal (ats_int_type, tmp254) ;
// ATSlocal_void (tmp255) ;
ATSlocal (ats_bool_type, tmp256) ;
ATSlocal (ats_ptr_type, tmp257) ;
ATSlocal (ats_ptr_type, tmp258) ;
ATSlocal (ats_ptr_type, tmp259) ;
ATSlocal (ats_ptr_type, tmp260) ;
ATSlocal (ats_ptr_type, tmp261) ;
ATSlocal (ats_ptr_type, tmp262) ;
ATSlocal (ats_ptr_type, tmp263) ;
ATSlocal (ats_ptr_type, tmp264) ;
ATSlocal (ats_ptr_type, tmp265) ;
// ATSlocal_void (tmp266) ;
ATSlocal (ats_ptr_type, tmp267) ;
// ATSlocal_void (tmp268) ;

__ats_lab_auxlam2_29:
/* tmp253 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tailcalenv (arg0, arg2) ;
tmp254 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_get_tmplevel (arg0) ;
tmp256 = atspre_gt_int_int (tmp254, 0) ;
if (tmp256) {
/* tmp255 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_tmpknd (arg2, 1) ;
} else {
/* empty */
} /* end of [if] */
tmp257 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab (arg1, arg2) ;
tmp258 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg5), atslab_hidexp_loc) ;
tmp259 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg5), atslab_hidexp_node) ;
if (((ats_sum_ptr_type)tmp259)->tag != 47) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 20136(line=1016, offs=5) -- 20189(line=1016, offs=58)") ; }
tmp260 = ats_caselptrlab_mac(anairiats_sum_13, tmp259, atslab_1) ;
tmp261 = ats_caselptrlab_mac(anairiats_sum_13, tmp259, atslab_2) ;
tmp262 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instr_funlab (arg1, arg2) ;
tmp264 = (ats_sum_ptr_type)0 ;
tmp263 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
ats_selptrset_mac(anairiats_sum_9, tmp263, atslab_0, tmp262) ;
ats_selptrset_mac(anairiats_sum_9, tmp263, atslab_1, tmp264) ;
tmp265 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp_funlab_arg_body (arg0, arg2, arg3, arg4, tmp263, tmp258, tmp260, tmp261) ;
tmp267 = ATS_MALLOC(sizeof(anairiats_sum_11)) ;
ats_selptrset_mac(anairiats_sum_11, tmp267, atslab_0, tmp265) ;
/* tmp266 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_set_funent (arg2, tmp267) ;
/* tmp268 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tailcalenv (arg0) ;
tmp252 = arg2 ;
return (tmp252) ;
} /* end of [auxlam2_29] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 20682(line=1042, offs=5) -- 21329(line=1083, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxfix_30 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp269) ;
ATSlocal (ats_ptr_type, tmp270) ;
ATSlocal (ats_ptr_type, tmp271) ;
ATSlocal (ats_ptr_type, tmp272) ;
ATSlocal (ats_ptr_type, tmp273) ;
ATSlocal (ats_ptr_type, tmp274) ;
ATSlocal (ats_ptr_type, tmp275) ;
ATSlocal (ats_ptr_type, tmp276) ;
// ATSlocal_void (tmp277) ;
// ATSlocal_void (tmp278) ;

__ats_lab_auxfix_30:
tmp270 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg5), atslab_hidexp_node) ;
if (((ats_sum_ptr_type)tmp270)->tag != 48) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 20823(line=1053, offs=1) -- 20877(line=1056, offs=24)") ; }
tmp271 = ats_caselptrlab_mac(anairiats_sum_13, tmp270, atslab_1) ;
tmp272 = ats_caselptrlab_mac(anairiats_sum_13, tmp270, atslab_2) ;
tmp273 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_funclo (arg2) ;
tmp274 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp272), atslab_hidexp_type) ;
tmp275 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dcst_type (arg2, tmp274, tmp273) ;
tmp276 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__primval_make_funlab (arg1, tmp275) ;
/* tmp277 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_funlablst_add (tmp275) ;
/* tmp278 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_vbindmapenvall (arg0, tmp271, tmp276) ;
tmp269 = auxlam2_29 (arg0, arg1, tmp275, arg3, arg4, tmp272) ;
return (tmp269) ;
} /* end of [auxfix_30] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 21375(line=1087, offs=5) -- 22510(line=1145, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxmain_31 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4, ats_ptr_type arg5) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp279) ;
ATSlocal (ats_ptr_type, tmp280) ;
ATSlocal (ats_ptr_type, tmp281) ;
ATSlocal (ats_ptr_type, tmp282) ;
// ATSlocal_void (tmp283) ;
ATSlocal (ats_ptr_type, tmp284) ;
ATSlocal (ats_ptr_type, tmp285) ;
ATSlocal (ats_ptr_type, tmp286) ;
ATSlocal (ats_ptr_type, tmp287) ;
ATSlocal (ats_ptr_type, tmp288) ;
ATSlocal (ats_ptr_type, tmp289) ;
// ATSlocal_void (tmp290) ;
// ATSlocal_void (tmp291) ;
// ATSlocal_void (tmp292) ;
ATSlocal (ats_ptr_type, tmp293) ;

__ats_lab_auxmain_31:
tmp280 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg5), atslab_hidexp_type) ;
tmp281 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg5), atslab_hidexp_node) ;
do {
/* branch: __ats_lab_46 */
__ats_lab_46_0:
if (((ats_sum_ptr_type)tmp281)->tag != 0) { goto __ats_lab_47_0 ; }
__ats_lab_46_1:
tmp282 = ats_caselptrlab_mac(anairiats_sum_3, tmp281, atslab_0) ;
/* tmp283 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__the_dyncstlst_add (tmp282) ;
tmp284 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_funclo (tmp282) ;
tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dcst_type (tmp282, tmp280, tmp284) ;
break ;

/* branch: __ats_lab_47 */
__ats_lab_47_0:
if (((ats_sum_ptr_type)tmp281)->tag != 1) { goto __ats_lab_48_0 ; }
__ats_lab_47_1:
tmp285 = ats_caselptrlab_mac(anairiats_sum_3, tmp281, atslab_0) ;
tmp286 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2var_get2_funclo (tmp285) ;
tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_dvar_type (tmp285, tmp280, tmp286) ;
break ;

/* branch: __ats_lab_48 */
__ats_lab_48_0:
if (((ats_sum_ptr_type)tmp281)->tag != 20) { goto __ats_lab_49_0 ; }
__ats_lab_48_1:
tmp287 = ats_caselptrlab_mac(anairiats_sum_4, tmp281, atslab_0) ;
tmp288 = ats_caselptrlab_mac(anairiats_sum_4, tmp281, atslab_1) ;
tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__d2cst_get2_funclo (tmp287) ;
tmp279 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__funlab_make_tmpcst_type (tmp287, tmp288, tmp280, tmp289) ;
break ;

/* branch: __ats_lab_49 */
__ats_lab_49_0:
if (((ats_sum_ptr_type)tmp281)->tag != 47) { goto __ats_lab_50_0 ; }
__ats_lab_49_1:
tmp279 = auxlam_28 (arg0, arg1, arg2, arg3, arg4, arg5) ;
break ;

/* branch: __ats_lab_50 */
__ats_lab_50_0:
if (((ats_sum_ptr_type)tmp281)->tag != 48) { goto __ats_lab_51_0 ; }
__ats_lab_50_1:
tmp279 = auxfix_30 (arg0, arg1, arg2, arg3, arg4, arg5) ;
break ;

/* branch: __ats_lab_51 */
__ats_lab_51_0:
__ats_lab_51_1:
/* tmp290 = */ atspre_print_string (ATSstrcst("hiimpdec_ccomp: auxmain: hde_def = ")) ;
/* tmp291 = */ _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__print_hidexp (arg5) ;
/* tmp292 = */ atspre_print_newline () ;
tmp293 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 22414(line=1142, offs=5) -- 22423(line=1142, offs=14)", ATSstrcst("\n")) ;
/* tmp279 = */ ats_exit_errmsg (1, tmp293) ;
break ;
} while (0) ;
return (tmp279) ;
} /* end of [auxmain_31] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 22584(line=1151, offs=1) -- 24208(line=1229, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3) {
/* local vardec */
// ATSlocal_void (tmp294) ;
ATSlocal (ats_ptr_type, tmp295) ;
ATSlocal (ats_ptr_type, tmp296) ;
ATSlocal (ats_bool_type, tmp297) ;
ATSlocal (ats_ptr_type, tmp298) ;
ATSlocal (ats_ptr_type, tmp299) ;
ATSlocal (ats_ptr_type, tmp300) ;
ATSlocal (ats_ptr_type, tmp301) ;
ATSlocal (ats_bool_type, tmp302) ;
// ATSlocal_void (tmp303) ;
ATSlocal (ats_ptr_type, tmp304) ;
// ATSlocal_void (tmp305) ;
// ATSlocal_void (tmp306) ;
ATSlocal (ats_bool_type, tmp307) ;
ATSlocal (ats_ptr_type, tmp308) ;
// ATSlocal_void (tmp309) ;
ATSlocal (ats_bool_type, tmp310) ;
ATSlocal (ats_ptr_type, tmp311) ;
ATSlocal (ats_ptr_type, tmp312) ;
ATSlocal (ats_ptr_type, tmp313) ;
// ATSlocal_void (tmp314) ;
ATSlocal (ats_ptr_type, tmp315) ;
ATSlocal (ats_ptr_type, tmp316) ;
ATSlocal (ats_ptr_type, tmp317) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp:
tmp295 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_hiimpdec_cst) ;
tmp296 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_get_kind (tmp295) ;
do {
/* branch: __ats_lab_52 */
__ats_lab_52_0:
__ats_lab_52_1:
tmp297 = _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__dcstkind_is_fun (tmp296) ;
if (!tmp297) { goto __ats_lab_53_1 ; }
tmp298 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_hiimpdec_loc) ;
tmp299 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_hiimpdec_imparg) ;
tmp300 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_hiimpdec_tmparg) ;
tmp301 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_hiimpdec_def) ;
tmp302 = list_is_cons_01295_ (tmp300) ;
if (tmp302) {
/* tmp303 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_inc_tmplevel (arg0) ;
} else {
/* empty */
} /* end of [if] */
tmp304 = auxmain_31 (arg0, tmp298, tmp295, tmp299, tmp300, tmp301) ;
if (tmp302) {
/* tmp305 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_dec_tmplevel (arg0) ;
} else {
/* empty */
} /* end of [if] */
tmp307 = atspre_eq_int_int (arg3, 0) ;
if (tmp307) {
if (tmp302) {
/* tmp306 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__ccompenv_add_impdec (arg0, arg2) ;
} else {
/* empty */
} /* end of [if] */
} else {
/* empty */
} /* end of [if] */
tmp308 = ATS_MALLOC(sizeof(anairiats_sum_11)) ;
ats_selptrset_mac(anairiats_sum_11, tmp308, atslab_0, tmp304) ;
/* tmp309 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_set_funlabopt (arg2, tmp308) ;
tmp310 = atspre_neg_bool1 (tmp302) ;
if (tmp310) {
/* tmp294 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2cst_set_funlab (tmp295, ats_castfn_mac(ats_ptr_type, tmp308)) ;
} else {
/* empty */
} /* end of [if] */
break ;

/* branch: __ats_lab_53 */
__ats_lab_53_0:
__ats_lab_53_1:
/* ats_ptr_type tmp311 ; */
tmp311 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_make_nil () ;
tmp313 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_hiimpdec_def) ;
tmp312 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hidexp_ccomp (arg0, tmp311, tmp313) ;
tmp315 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_6, arg2), atslab_hiimpdec_loc) ;
/* tmp314 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_add_dcstdef (tmp311, tmp315, tmp295, tmp312) ;
tmp316 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__instrseq_get_free (tmp311) ;
tmp317 = ATS_MALLOC(sizeof(anairiats_sum_11)) ;
ats_selptrset_mac(anairiats_sum_11, tmp317, atslab_0, tmp316) ;
/* tmp294 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_set_instrlstopt (arg2, tmp317) ;
break ;
} while (0) ;
return /* (tmp294) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp] */

/*
// /tmp/ATS-Postiats/src/pats_ccomp_decl.dats: 24311(line=1237, offs=3) -- 24482(line=1248, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp_if (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_int_type arg3) {
/* local vardec */
// ATSlocal_void (tmp318) ;
ATSlocal (ats_ptr_type, tmp319) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp_if:
tmp319 = _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_get_funlabopt (arg2) ;
do {
/* branch: __ats_lab_54 */
__ats_lab_54_0:
if (tmp319 == (ats_sum_ptr_type)0) { goto __ats_lab_55_0 ; }
__ats_lab_54_1:
break ;

/* branch: __ats_lab_55 */
__ats_lab_55_0:
// if (tmp319 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_55_1:
/* tmp318 = */ _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp (arg0, arg1, arg2, arg3) ;
break ;
} while (0) ;
return /* (tmp318) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__hiimpdec_ccomp_if] */

/* 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_global_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_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_histaexp_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_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_global_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_histaexp_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_hidynexp_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_typerase_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_2esats__staload () ;

return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_decl_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_ccomp_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_ccomp_decl_dats.c] */
