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

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

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

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

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

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

typedef
struct {
ats_ptr_type atslab_s2qua_svs ;
ats_ptr_type atslab_s2qua_sps ;
} anairiats_rec_2 ;

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

typedef
struct {
ats_ptr_type atslab_c3nstr_loc ;
ats_ptr_type atslab_c3nstr_kind ;
ats_ptr_type atslab_c3nstr_node ;
} anairiats_rec_4 ;

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

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

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

typedef
struct {
ats_ptr_type atslab_c3nstroptref_loc ;
ats_ptr_type atslab_c3nstroptref_ref ;
} anairiats_rec_8 ;

typedef
struct {
ats_ptr_type atslab_h3ypo_loc ;
ats_ptr_type atslab_h3ypo_node ;
} anairiats_rec_9 ;

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

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

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

typedef struct {
ats_int_type atslab_0 ;
} anairiats_sum_13 ;

typedef
struct {
ats_ptr_type atslab_s2exparg_loc ;
ats_ptr_type atslab_s2exparg_node ;
} anairiats_rec_14 ;

typedef struct {
anairiats_rec_2 atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_15 ;

typedef
struct {
ats_ptr_type atslab_t2mpmarg_loc ;
ats_ptr_type atslab_t2mpmarg_arg ;
} anairiats_rec_16 ;

typedef struct {
ats_ptr_type atslab_0 ;
} anairiats_sum_17 ;

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

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

typedef
struct {
ats_ptr_type atslab_sp2at_loc ;
ats_ptr_type atslab_sp2at_exp ;
ats_ptr_type atslab_sp2at_node ;
} anairiats_rec_20 ;

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

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

typedef struct {
ats_char_type atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_23 ;

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

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

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

typedef
struct {
ats_bool_type atslab_0 ;
ats_ptr_type atslab_1 ;
ats_ptr_type atslab_2 ;
} anairiats_rec_27 ;

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

/* external typedefs */
/* external dynamic constructor declarations */
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_cons_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_nil_1) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_1) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__lcons_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats__lnil_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_none_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_invar_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTcons_trans_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SLABELED_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextype_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eextkind_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Evar_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Edatcontyp_10) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Esizeof_13) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eeqeq_15) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eapp_17) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Elam_18) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Efun_19) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Emetfun_20) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Etyrec_25) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Einvar_26) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Eexi_27) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Euni_28) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Erefarg_29) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2Ewthtype_31) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Tcon_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__SP2Terr_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGone_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGall_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__S2EXPARGseq_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__LABP2ATCST_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCany_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCcon_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCempty_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCint_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCintc_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCbool_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCchar_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCcharc_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCfloat_8) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCstring_9) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__P2TCrec_10) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2varlst_instantiate_nabs_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2varlst_instantiate_napp_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2varlst_instantiate_arity_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_s2varlst_instantiate_srtck_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__T3E_cp2atcstlst_arity_87) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKmain_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKcase_exhaustiveness_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isnat_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isdec_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsolverify_10) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPOprop_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPObind_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__H3YPOeqeq_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRprop_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRitmlst_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3NSTRsolverify_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsvar_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMhypo_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsVar_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMcnstr_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMcnstr_ref_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMdisj_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__S3ITMsolassert_6) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_void_type, atspre_assert_errmsg) (ats_bool_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_print_newline) () ;
ATSextern_fun(ats_void_type, atspre_prerr_newline) () ;
ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_sub_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_neq_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_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_listize) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, patsopt_prerrf_ifdebug) (ats_ptr_type, ...) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_srt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_var) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_add) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_d2con_d2con) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int) (ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char) (ats_char_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_Var) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eqeq) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metdec) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refarg) (ats_int_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__uns2exp_exiuni) (ats_int_type, ats_ptr_type, ats_ref_type, ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_wthtype) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add) (ats_ref_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst) (ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp) (ats_ptr_type) ;
ATSextern_fun(anairiats_rec_3, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_absuni) (ats_ptr_type) ;
ATSextern_fun(anairiats_rec_3, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_opnexi) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst) (ats_ptr_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_t0ype) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_bool_t0ype) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0int_t0ype) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1int_int_t0ype) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0uint_t0ype) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1uint_int_t0ype) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_t0ype) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_int_t0ype) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_t0ype) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_int_t0ype) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_t0ype) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_int_t0ype) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_int_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_addr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool) (ats_bool_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_bool_index_t0ype) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bneg) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intgte) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intneq) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1int_index_t0ype) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_char_index_t0ype) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, patsopt_d3exp_set_type) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d2con_instantiate) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_d3eclistopt) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_prop) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_itmlst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_case_exhaustiveness) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_solverify) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_prop) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_bind) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_eqeq) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlstlst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_var) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_all) (ats_ptr_type, ats_ptr_type, ats_ref_type) ;
ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all) (ats_ptr_type, ats_ptr_type, ats_ref_type) ;
ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exiuni_instantiate_all) (ats_int_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_termet_instantiate) (ats_ptr_type, ats_int_type, ats_ptr_type) ;
ATSextern_fun(anairiats_rec_1, patsopt_s2exp_tmp_instantiate_rest) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squa) (anairiats_rec_2) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVar) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_prop) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst_vt) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_labpatcstlst) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_pop) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_push) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_search) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_insert) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_push) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_pop) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_get) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_add) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explstlst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2var) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_push) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_pop) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add) (ats_ptr_type) ;

/* external dynamic terminating constant declarations */
#ifdef _ATS_PROOFCHECK
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2basics_dyn_2esats__unit_v_elim_prfck () ;
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_trans3_env_2esats__sasp__trans3_env_push_v = 0 ;

/* sum constructor declarations */
/* exn constructor declarations */
/* global dynamic (non-functional) constant declarations */
/* internal function declarations */
static
ats_void_type prerr_FILENAME_02164_ () ;
static
ats_ptr_type ptr0_get_01759_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type ptrget_01763_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type loop_9 (ats_ptr_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type list_copy_01322_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type list_vt_copy_01498_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type ref_01088_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type loop_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_void_type stasub_s2varlst_instantiate_none_22 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ;
static
ats_void_type prerr_error3_loc_02170_ (ats_ptr_type arg0) ;
static
ats_void_type auxerr1_24 (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_void_type auxerr2_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type stasub_s2varlst_instantiate_some_23 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ;
static
ats_ptr_type revapp_30 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type stasub_s2varlst_instcollect_27 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type loop_32 (ats_int_type env0, ats_ptr_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) ;
static
ats_clo_ptr_type loop_32_closure_make (ats_int_type env0, ats_ptr_type env1) ;
static
ats_ptr_type loop_32_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) ;
static
ats_void_type loop_37 (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type auxerr_39 (ats_ptr_type arg0) ;
static
ats_void_type auxerr_41 (ats_ptr_type arg0) ;
static
ats_ptr_type loop_42 (ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ;
static
ats_bool_type list_is_nil_01294_ (ats_ptr_type arg0) ;
static
ats_ptr_type loop_44 (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ;
static
ats_void_type auxerr_47 (ats_ptr_type arg0) ;
static
ats_ptr_type auxsome_48 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) ;
static
ats_void_type loop_50 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) ;
static
ats_ptr_type list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type loop_71 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type list_app_funenv_01300_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type list_app_fun_01301_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type loop_76 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type list_app_funenv_01300_anairiats_rec_2 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type list_app_fun_01301_anairiats_rec_2 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type loop_86 (ats_ptr_type arg0) ;
static
ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type loop_89 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0) ;
static
ats_clo_ptr_type loop_89_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) ;
static
ats_void_type loop_89_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_void_type loop_98 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type aux_99 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ;
static
ats_clo_ptr_type aux_99_closure_make (ats_ptr_type env0, ats_ptr_type env1) ;
static
ats_void_type aux_99_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_void_type aux_100 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ;
static
ats_clo_ptr_type aux_100_closure_make (ats_ptr_type env0, ats_ptr_type env1) ;
static
ats_void_type aux_100_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_int_type loop_102 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ;
static
ats_clo_ptr_type loop_102_closure_make (ats_ptr_type env0) ;
static
ats_int_type loop_102_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ;
static
ats_int_type cmp_104 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type aux2_01343_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type aux3_01354_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type aux4_01361_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type aux1_01334_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type list_mergesort_01452_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_void_type aux_110 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_clo_ptr_type aux_110_closure_make (ats_ptr_type env0) ;
static
ats_void_type aux_110_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type trans3_env_hypadd_disj_111 (ats_ptr_type arg0) ;
static
ats_ptr_type aux_113 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) ;
static
ats_clo_ptr_type aux_113_closure_make (ats_ptr_type env0, ats_ptr_type env1) ;
static
ats_ptr_type aux_113_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) ;
static
ats_ptr_type auxres_123 (ats_ptr_type arg0) ;
static
ats_ptr_type auxarg_124 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;

/* partial value template declarations */
/* static temporary variable declarations */
ATSstatic (ats_ptr_type, statmp310) ;
ATSstatic (ats_ptr_type, statmp311) ;
ATSstatic (ats_ptr_type, statmp313) ;
ATSstatic (ats_ptr_type, statmp314) ;
ATSstatic (ats_ptr_type, statmp366) ;
ATSstatic (ats_ptr_type, statmp367) ;
ATSstatic (ats_ptr_type, statmp368) ;
ATSstatic (ats_ptr_type, statmp369) ;

/* external value variable declarations */

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 2012(line=68, offs=28) -- 2040(line=68, offs=56)
*/
ATSstaticdec()
ats_void_type
prerr_FILENAME_02164_ () {
/* local vardec */
// ATSlocal_void (tmp0) ;

__ats_lab_prerr_FILENAME_02164_:
/* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_trans3_env")) ;
return /* (tmp0) */ ;
} /* end of [prerr_FILENAME_02164_] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 1763(line=50, offs=10) -- 1979(line=60, offs=2)
*/
ATSstaticdec()
ats_ptr_type
ptr0_get_01759_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp4) ;

__ats_lab_ptr0_get_01759_ats_ptr_type:
tmp4 = ats_ptrget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ;
return (tmp4) ;
} /* end of [ptr0_get_01759_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/unsafe.dats: 2430(line=82, offs=21) -- 2450(line=82, offs=41)
*/
ATSstaticdec()
ats_ptr_type
ptrget_01763_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp3) ;

__ats_lab_ptrget_01763_ats_ptr_type:
tmp3 = ptr0_get_01759_ats_ptr_type (arg0) ;
return (tmp3) ;
} /* end of [ptrget_01763_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 2622(line=103, offs=24) -- 2720(line=105, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__filenv_get_d3eclistopt (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1) ;
ATSlocal (ats_ptr_type, tmp2) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__filenv_get_d3eclistopt:
tmp2 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__filenv_getref_d3eclistopt (arg0) ;
tmp1 = ptrget_01763_ats_ptr_type (tmp2) ;
return (tmp1) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__filenv_get_d3eclistopt] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 2802(line=111, offs=3) -- 2894(line=115, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_prop (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp5) ;
ATSlocal (ats_ptr_type, tmp6) ;
ATSlocal (ats_ptr_type, tmp7) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_prop:
tmp6 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKmain_0) ;
tmp7 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp7)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_5, tmp7, atslab_0, arg1) ;
tmp5 = ATS_MALLOC(sizeof(anairiats_rec_4)) ;
ats_selptrset_mac(anairiats_rec_4, tmp5, atslab_c3nstr_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_4, tmp5, atslab_c3nstr_kind, tmp6) ;
ats_selptrset_mac(anairiats_rec_4, tmp5, atslab_c3nstr_node, tmp7) ;

return (tmp5) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_prop] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 2946(line=119, offs=3) -- 3041(line=123, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_itmlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp8) ;
ATSlocal (ats_ptr_type, tmp9) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_itmlst:
tmp9 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp9)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp9, atslab_0, arg2) ;
tmp8 = ATS_MALLOC(sizeof(anairiats_rec_4)) ;
ats_selptrset_mac(anairiats_rec_4, tmp8, atslab_c3nstr_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_4, tmp8, atslab_c3nstr_kind, arg1) ;
ats_selptrset_mac(anairiats_rec_4, tmp8, atslab_c3nstr_node, tmp9) ;

return (tmp8) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_itmlst] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 12687(line=466, offs=7) -- 13058(line=477, offs=43)
*/
ATSstaticdec()
ats_void_type
loop_9 (ats_ptr_type arg0, ats_ref_type arg1) {
/* local vardec */
// ATSlocal_void (tmp14) ;
ATSlocal (ats_ptr_type, tmp15) ;
ATSlocal (ats_ptr_type, tmp16) ;
ATSlocal (ats_ptr_type, tmp17) ;
ATSlocal (ats_ptr_type, tmp18) ;
ATSlocal (ats_ptr_type, tmp19) ;

__ats_lab_loop_9:
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_1_0 ; }
__ats_lab_0_1:
tmp15 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp16 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp17 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp17, atslab_0, tmp15) ;
ats_ptrget_mac(ats_ptr_type, arg1) = tmp17 ;
// if (ats_ptrget_mac(ats_ptr_type, arg1) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp18 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg1), atslab_1) ;
arg0 = tmp16 ;
arg1 = tmp18 ;
goto __ats_lab_loop_9 ; // tail call
break ;

/* branch: __ats_lab_1 */
__ats_lab_1_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_1_1:
tmp19 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg1) = tmp19 ;
break ;
} while (0) ;
return /* (tmp14) */ ;
} /* end of [loop_9] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-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, tmp13) ;
ATSlocal (ats_ptr_type, tmp20) ;
// ATSlocal_void (tmp21) ;

__ats_lab_list_copy_01322_ats_ptr_type:
/* ats_ptr_type tmp20 ; */
/* tmp21 = */ loop_9 (arg0, (&tmp20)) ;
tmp13 = tmp20 ;
return (tmp13) ;
} /* end of [list_copy_01322_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4725(line=167, offs=18) -- 4776(line=168, offs=44)
*/
ATSstaticdec()
ats_ptr_type
list_vt_copy_01498_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp12) ;

__ats_lab_list_vt_copy_01498_ats_ptr_type:
tmp12 = list_copy_01322_ats_ptr_type (ats_castfn_mac(ats_ptr_type, arg0)) ;
return (tmp12) ;
} /* end of [list_vt_copy_01498_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 3108(line=127, offs=3) -- 3325(line=135, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_case_exhaustiveness (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp10) ;
ATSlocal (ats_ptr_type, tmp11) ;
ATSlocal (ats_ptr_type, tmp22) ;
ATSlocal (ats_ptr_type, tmp23) ;
ATSlocal (ats_ptr_type, tmp24) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_case_exhaustiveness:
tmp11 = list_vt_copy_01498_ats_ptr_type (arg2) ;
tmp22 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp22)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_7, tmp22, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_7, tmp22, atslab_1, ats_castfn_mac(ats_ptr_type, tmp11)) ;
tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (ats_false_bool) ;
tmp23 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp23)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_5, tmp23, atslab_0, tmp24) ;
tmp10 = ATS_MALLOC(sizeof(anairiats_rec_4)) ;
ats_selptrset_mac(anairiats_rec_4, tmp10, atslab_c3nstr_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_4, tmp10, atslab_c3nstr_kind, tmp22) ;
ats_selptrset_mac(anairiats_rec_4, tmp10, atslab_c3nstr_node, tmp23) ;

return (tmp10) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_case_exhaustiveness] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 3398(line=139, offs=3) -- 3553(line=145, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isnat (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp25) ;
ATSlocal (ats_ptr_type, tmp26) ;
ATSlocal (ats_ptr_type, tmp27) ;
ATSlocal (ats_ptr_type, tmp28) ;
ATSlocal (ats_ptr_type, tmp29) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isnat:
tmp26 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isnat_2) ;
tmp29 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int (0) ;
tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intgte (arg1, tmp29) ;
tmp27 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp27)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_5, tmp27, atslab_0, tmp28) ;
tmp25 = ATS_MALLOC(sizeof(anairiats_rec_4)) ;
ats_selptrset_mac(anairiats_rec_4, tmp25, atslab_c3nstr_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_4, tmp25, atslab_c3nstr_kind, tmp26) ;
ats_selptrset_mac(anairiats_rec_4, tmp25, atslab_c3nstr_node, tmp27) ;

return (tmp25) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isnat] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 3619(line=149, offs=3) -- 3741(line=153, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isdec (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp30) ;
ATSlocal (ats_ptr_type, tmp31) ;
ATSlocal (ats_ptr_type, tmp32) ;
ATSlocal (ats_ptr_type, tmp33) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isdec:
tmp31 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKtermet_isdec_3) ;
tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_metdec (arg1, arg2) ;
tmp32 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp32)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_5, tmp32, atslab_0, tmp33) ;
tmp30 = ATS_MALLOC(sizeof(anairiats_rec_4)) ;
ats_selptrset_mac(anairiats_rec_4, tmp30, atslab_c3nstr_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_4, tmp30, atslab_c3nstr_kind, tmp31) ;
ats_selptrset_mac(anairiats_rec_4, tmp30, atslab_c3nstr_node, tmp32) ;

return (tmp30) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_termet_isdec] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 3825(line=159, offs=3) -- 3947(line=164, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_solverify (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp34) ;
ATSlocal (ats_ptr_type, tmp35) ;
ATSlocal (ats_ptr_type, tmp36) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_solverify:
tmp35 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsolverify_10) ;
tmp36 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp36)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_5, tmp36, atslab_0, arg1) ;
tmp34 = ATS_MALLOC(sizeof(anairiats_rec_4)) ;
ats_selptrset_mac(anairiats_rec_4, tmp34, atslab_c3nstr_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_4, tmp34, atslab_c3nstr_kind, tmp35) ;
ats_selptrset_mac(anairiats_rec_4, tmp34, atslab_c3nstr_node, tmp36) ;

return (tmp34) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_solverify] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1828(line=57, offs=18) -- 1902(line=59, offs=4)
*/
ATSstaticdec()
ats_ptr_type
ref_01088_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp39) ;
ATSlocal (ats_ptr_type, tmp40) ;

__ats_lab_ref_01088_ats_ptr_type:
/* ats_ptr_type tmp40 ; */
tmp40 = arg0 ;
tmp39 = atspre_ref_make_elt_tsz ((&tmp40), sizeof(ats_ptr_type)) ;
return (tmp39) ;
} /* end of [ref_01088_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 4034(line=170, offs=3) -- 4138(line=174, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp37) ;
ATSlocal (ats_ptr_type, tmp38) ;
ATSlocal (ats_ptr_type, tmp41) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none:
tmp41 = (ats_sum_ptr_type)0 ;
tmp38 = ref_01088_ats_ptr_type (tmp41) ;
tmp37 = ATS_MALLOC(sizeof(anairiats_rec_8)) ;
ats_selptrset_mac(anairiats_rec_8, tmp37, atslab_c3nstroptref_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_8, tmp37, atslab_c3nstroptref_ref, tmp38) ;

return (tmp37) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstroptref_make_none] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 4219(line=180, offs=3) -- 4283(line=182, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_prop (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp42) ;
ATSlocal (ats_ptr_type, tmp43) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_prop:
tmp43 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp43)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_5, tmp43, atslab_0, arg1) ;
tmp42 = ATS_MALLOC(sizeof(anairiats_rec_9)) ;
ats_selptrset_mac(anairiats_rec_9, tmp42, atslab_h3ypo_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_9, tmp42, atslab_h3ypo_node, tmp43) ;

return (tmp42) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_prop] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 4331(line=186, offs=3) -- 4450(line=189, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_bind (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp44) ;
ATSlocal (ats_ptr_type, tmp45) ;
ATSlocal (ats_ptr_type, tmp46) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_bind:
tmp45 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ;
tmp46 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp46)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_7, tmp46, atslab_0, arg1) ;
ats_selptrset_mac(anairiats_sum_7, tmp46, atslab_1, tmp45) ;
tmp44 = ATS_MALLOC(sizeof(anairiats_rec_9)) ;
ats_selptrset_mac(anairiats_rec_9, tmp44, atslab_h3ypo_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_9, tmp44, atslab_h3ypo_node, tmp46) ;

return (tmp44) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_bind] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 4498(line=193, offs=3) -- 4647(line=197, offs=6)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_eqeq (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp47) ;
ATSlocal (ats_ptr_type, tmp48) ;
ATSlocal (ats_ptr_type, tmp49) ;
ATSlocal (ats_ptr_type, tmp50) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_eqeq:
tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ;
tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ;
tmp50 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp50)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_7, tmp50, atslab_0, tmp48) ;
ats_selptrset_mac(anairiats_sum_7, tmp50, atslab_1, tmp49) ;
tmp47 = ATS_MALLOC(sizeof(anairiats_rec_9)) ;
ats_selptrset_mac(anairiats_rec_9, tmp47, atslab_h3ypo_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_9, tmp47, atslab_h3ypo_node, tmp50) ;

return (tmp47) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_eqeq] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 4724(line=203, offs=3) -- 4840(line=208, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp51) ;
ATSlocal (ats_ptr_type, tmp52) ;
// ATSlocal_void (tmp53) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt:
tmp52 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_srt (arg0, arg1) ;
/* tmp53 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVar (tmp52) ;
tmp51 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_Var (tmp52) ;
return (tmp51) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_srt] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 4902(line=211, offs=20) -- 5256(line=226, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_var (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp54) ;
ATSlocal (ats_ptr_type, tmp55) ;
// ATSlocal_void (tmp56) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_var:
tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Var_make_var (arg0, arg1) ;
/* tmp56 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVar (tmp55) ;
tmp54 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_Var (tmp55) ;
return (tmp54) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_var] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 5481(line=239, offs=5) -- 5798(line=251, offs=22)
*/
ATSstaticdec()
ats_void_type
loop_21 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
// ATSlocal_void (tmp58) ;
ATSlocal (ats_ptr_type, tmp59) ;
ATSlocal (ats_ptr_type, tmp60) ;
ATSlocal (ats_ptr_type, tmp61) ;
// ATSlocal_void (tmp62) ;

__ats_lab_loop_21:
do {
/* branch: __ats_lab_2 */
__ats_lab_2_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_3_0 ; }
__ats_lab_2_1:
tmp59 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ;
tmp60 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
tmp61 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_var (arg0, tmp59) ;
/* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg2, tmp59, tmp61) ;
arg0 = arg0 ;
arg1 = tmp60 ;
arg2 = arg2 ;
goto __ats_lab_loop_21 ; // tail call
break ;

/* branch: __ats_lab_3 */
__ats_lab_3_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_3_1:
break ;
} while (0) ;
return /* (tmp58) */ ;
} /* end of [loop_21] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 5342(line=232, offs=3) -- 5894(line=259, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp57) ;
ATSlocal (ats_ptr_type, tmp63) ;
// ATSlocal_void (tmp64) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst:
/* ats_ptr_type tmp63 ; */
tmp63 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ;
/* tmp64 = */ loop_21 (arg0, arg1, (&tmp63)) ;
tmp57 = tmp63 ;
return (tmp57) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__stasub_make_svarlst] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 5960(line=266, offs=1) -- 6428(line=288, offs=4)
*/
ATSstaticdec()
ats_void_type
stasub_s2varlst_instantiate_none_22 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) {
/* local vardec */
// ATSlocal_void (tmp65) ;
ATSlocal (ats_ptr_type, tmp66) ;
ATSlocal (ats_ptr_type, tmp67) ;
ATSlocal (ats_ptr_type, tmp68) ;
// ATSlocal_void (tmp69) ;

__ats_lab_stasub_s2varlst_instantiate_none_22:
do {
/* branch: __ats_lab_4 */
__ats_lab_4_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; }
__ats_lab_4_1:
tmp66 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ;
tmp67 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ;
tmp68 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_var (arg1, tmp66) ;
/* tmp69 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg0, tmp66, tmp68) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp67 ;
arg3 = arg3 ;
goto __ats_lab_stasub_s2varlst_instantiate_none_22 ; // tail call
break ;

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

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

__ats_lab_prerr_error3_loc_02170_:
/* tmp74 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ;
/* tmp73 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ;
return /* (tmp73) */ ;
} /* end of [prerr_error3_loc_02170_] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 6664(line=301, offs=1) -- 7110(line=313, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr1_24 (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp71) ;
// ATSlocal_void (tmp72) ;
// ATSlocal_void (tmp75) ;
// ATSlocal_void (tmp76) ;
// ATSlocal_void (tmp77) ;
ATSlocal (ats_bool_type, tmp78) ;
// ATSlocal_void (tmp79) ;
ATSlocal (ats_bool_type, tmp80) ;
// ATSlocal_void (tmp81) ;
ATSlocal (ats_ptr_type, tmp82) ;

__ats_lab_auxerr1_24:
/* tmp72 = */ prerr_error3_loc_02170_ (arg0) ;
/* tmp75 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_env.dats"), ATSstrcst("stasub_s2varlst_instantiate_some")) ;
/* tmp76 = */ atspre_prerr_string (ATSstrcst(": static arity mismatch")) ;
tmp78 = atspre_gt_int_int (arg1, 0) ;
if (tmp78) {
/* tmp77 = */ atspre_prerr_string (ATSstrcst(": more arguments are expected.")) ;
} else {
/* empty */
} /* end of [if] */
tmp80 = atspre_lt_int_int (arg1, 0) ;
if (tmp80) {
/* tmp79 = */ atspre_prerr_string (ATSstrcst(": fewer arguments are expected.")) ;
} else {
/* empty */
} /* end of [if] */
/* tmp81 = */ atspre_prerr_newline () ;
tmp82 = ATS_MALLOC(sizeof(anairiats_sum_10)) ;
((ats_sum_ptr_type)tmp82)->tag = 4 ;
ats_selptrset_mac(anairiats_sum_10, tmp82, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_10, tmp82, atslab_1, arg1) ;
/* tmp71 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp82) ;
return /* (tmp71) */ ;
} /* end of [auxerr1_24] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 7135(line=315, offs=1) -- 7542(line=326, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr2_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp83) ;
// ATSlocal_void (tmp84) ;
// ATSlocal_void (tmp85) ;
// ATSlocal_void (tmp86) ;
// ATSlocal_void (tmp87) ;
// ATSlocal_void (tmp88) ;
// ATSlocal_void (tmp89) ;
// ATSlocal_void (tmp90) ;
// ATSlocal_void (tmp91) ;
// ATSlocal_void (tmp92) ;
// ATSlocal_void (tmp93) ;
// ATSlocal_void (tmp94) ;
ATSlocal (ats_ptr_type, tmp95) ;

__ats_lab_auxerr2_26:
/* tmp84 = */ prerr_error3_loc_02170_ (arg0) ;
/* tmp85 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_env.dats"), ATSstrcst("stasub_s2varlst_instantiate_some")) ;
/* tmp86 = */ atspre_prerr_string (ATSstrcst(": mismatch of sorts:\n")) ;
/* tmp87 = */ atspre_prerr_string (ATSstrcst("the needed sort is [")) ;
/* tmp88 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg1) ;
/* tmp89 = */ atspre_prerr_string (ATSstrcst("];")) ;
/* tmp90 = */ atspre_prerr_newline () ;
/* tmp91 = */ atspre_prerr_string (ATSstrcst("the actual sort is [")) ;
/* tmp92 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__prerr_s2rt (arg2) ;
/* tmp93 = */ atspre_prerr_string (ATSstrcst("].")) ;
/* tmp94 = */ atspre_prerr_newline () ;
tmp95 = ATS_MALLOC(sizeof(anairiats_sum_11)) ;
((ats_sum_ptr_type)tmp95)->tag = 5 ;
ats_selptrset_mac(anairiats_sum_11, tmp95, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_11, tmp95, atslab_1, arg1) ;
ats_selptrset_mac(anairiats_sum_11, tmp95, atslab_2, arg2) ;
/* tmp83 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp95) ;
return /* (tmp83) */ ;
} /* end of [auxerr2_26] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 6479(line=291, offs=1) -- 8632(line=368, offs=4)
*/
ATSstaticdec()
ats_void_type
stasub_s2varlst_instantiate_some_23 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) {
/* local vardec */
// ATSlocal_void (tmp70) ;
ATSlocal (ats_ptr_type, tmp96) ;
ATSlocal (ats_ptr_type, tmp97) ;
ATSlocal (ats_ptr_type, tmp98) ;
ATSlocal (ats_ptr_type, tmp99) ;
ATSlocal (ats_ptr_type, tmp100) ;
ATSlocal (ats_ptr_type, tmp101) ;
ATSlocal (ats_bool_type, tmp102) ;
// ATSlocal_void (tmp103) ;
ATSlocal (ats_int_type, tmp104) ;
// ATSlocal_void (tmp105) ;
// ATSlocal_void (tmp106) ;
ATSlocal (ats_ptr_type, tmp107) ;
ATSlocal (ats_int_type, tmp108) ;
ATSlocal (ats_int_type, tmp109) ;

__ats_lab_stasub_s2varlst_instantiate_some_23:
do {
/* branch: __ats_lab_6 */
__ats_lab_6_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_9_0 ; }
__ats_lab_6_1:
tmp96 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ;
tmp97 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ;
do {
/* branch: __ats_lab_7 */
__ats_lab_7_0:
if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_8_0 ; }
__ats_lab_7_1:
tmp98 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ;
tmp99 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_1) ;
tmp100 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2var_get_srt (tmp96) ;
tmp101 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp98), atslab_s2exp_srt) ;
tmp102 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2rt_ltmat1 (tmp101, tmp100) ;
if (tmp102) {
/* tmp103 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg0, tmp96, tmp98) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp97 ;
arg3 = tmp99 ;
arg4 = arg4 ;
goto __ats_lab_stasub_s2varlst_instantiate_some_23 ; // tail call
} else {
tmp104 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ;
ats_ptrget_mac(ats_int_type, arg4) = tmp104 ;
/* tmp105 = */ auxerr2_26 (arg1, tmp100, tmp101) ;
tmp107 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_errexp (tmp100) ;
/* tmp106 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg0, tmp96, tmp107) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp97 ;
arg3 = tmp99 ;
arg4 = arg4 ;
goto __ats_lab_stasub_s2varlst_instantiate_some_23 ; // tail call
} /* end of [if] */
break ;

/* branch: __ats_lab_8 */
__ats_lab_8_0:
// if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_8_1:
tmp108 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ;
ats_ptrget_mac(ats_int_type, arg4) = tmp108 ;
/* tmp70 = */ auxerr1_24 (arg1, 1) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_9 */
__ats_lab_9_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_9_1:
do {
/* branch: __ats_lab_10 */
__ats_lab_10_0:
if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; }
__ats_lab_10_1:
tmp109 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ;
ats_ptrget_mac(ats_int_type, arg4) = tmp109 ;
/* tmp70 = */ auxerr1_24 (arg1, -1) ;
break ;

/* branch: __ats_lab_11 */
__ats_lab_11_0:
// if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_11_1:
break ;
} while (0) ;
break ;
} while (0) ;
return /* (tmp70) */ ;
} /* end of [stasub_s2varlst_instantiate_some_23] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7889(line=308, offs=7) -- 8174(line=317, offs=28)
*/
ATSstaticdec()
ats_ptr_type
revapp_30 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp118) ;
ATSlocal (ats_ptr_type, tmp119) ;
ATSlocal (ats_ptr_type, tmp120) ;
ATSlocal (ats_ptr_type, tmp121) ;

__ats_lab_revapp_30:
do {
/* branch: __ats_lab_14 */
__ats_lab_14_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_15_0 ; }
__ats_lab_14_1:
tmp119 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp120 = ats_ptrget_mac(ats_ptr_type, tmp119) ;
ats_ptrget_mac(ats_ptr_type, tmp119) = arg1 ;
tmp121 = arg0 ;
arg0 = tmp120 ;
arg1 = tmp121 ;
goto __ats_lab_revapp_30 ; // tail call
break ;

/* branch: __ats_lab_15 */
__ats_lab_15_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_15_1:
tmp118 = arg1 ;
break ;
} while (0) ;
return (tmp118) ;
} /* end of [revapp_30] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7770(line=303, offs=24) -- 8220(line=321, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_vt_reverse_append_01507_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp117) ;

__ats_lab_list_vt_reverse_append_01507_ats_ptr_type:
tmp117 = revapp_30 (arg0, arg1) ;
return (tmp117) ;
} /* end of [list_vt_reverse_append_01507_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7652(line=298, offs=17) -- 7704(line=299, offs=46)
*/
ATSstaticdec()
ats_ptr_type
list_vt_reverse_01506_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp116) ;
ATSlocal (ats_ptr_type, tmp122) ;

__ats_lab_list_vt_reverse_01506_ats_ptr_type:
tmp122 = (ats_sum_ptr_type)0 ;
tmp116 = list_vt_reverse_append_01507_ats_ptr_type (arg0, tmp122) ;
return (tmp116) ;
} /* end of [list_vt_reverse_01506_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 8683(line=371, offs=1) -- 9279(line=398, offs=4)
*/
ATSstaticdec()
ats_ptr_type
stasub_s2varlst_instcollect_27 (ats_ref_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp110) ;
ATSlocal (ats_ptr_type, tmp111) ;
ATSlocal (ats_ptr_type, tmp112) ;
ATSlocal (ats_ptr_type, tmp113) ;
// ATSlocal_void (tmp114) ;
ATSlocal (ats_ptr_type, tmp115) ;

__ats_lab_stasub_s2varlst_instcollect_27:
do {
/* branch: __ats_lab_12 */
__ats_lab_12_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; }
__ats_lab_12_1:
tmp111 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ;
tmp112 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_1) ;
tmp113 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_Var_make_var (arg1, tmp111) ;
/* tmp114 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_add (arg0, tmp111, tmp113) ;
tmp115 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp115, atslab_0, tmp113) ;
ats_selptrset_mac(anairiats_sum_6, tmp115, atslab_1, arg3) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp112 ;
arg3 = tmp115 ;
goto __ats_lab_stasub_s2varlst_instcollect_27 ; // tail call
break ;

/* branch: __ats_lab_13 */
__ats_lab_13_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_13_1:
tmp110 = list_vt_reverse_01506_ats_ptr_type (arg3) ;
break ;
} while (0) ;
return (tmp110) ;
} /* end of [stasub_s2varlst_instcollect_27] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 9449(line=406, offs=5) -- 10109(line=431, offs=4)
*/
ATSstaticdec()
ats_ptr_type
loop_32 (ats_int_type env0, ats_ptr_type env1, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) {
/* local vardec */
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_bool_type, tmp129) ;
// ATSlocal_void (tmp130) ;
ATSlocal (ats_ptr_type, tmp131) ;
ATSlocal (ats_ptr_type, tmp132) ;
ATSlocal (ats_ptr_type, tmp133) ;

__ats_lab_loop_32:
tmp125 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ;
/* ats_ptr_type tmp126 ; */
/* ats_ptr_type tmp127 ; */
/* ats_ptr_type tmp128 ; */
tmp129 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__uns2exp_exiuni (env0, tmp125, (&tmp126), (&tmp127), (&tmp128)) ;
if (tmp129) {
/* tmp130 = */ stasub_s2varlst_instantiate_none_22 (arg0, env1, tmp126, arg3) ;
tmp131 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (ats_ptrget_mac(ats_ptr_type, arg0), tmp127) ;
tmp132 = list_vt_reverse_append_01507_ats_ptr_type (tmp131, ats_ptrget_mac(ats_ptr_type, arg2)) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp132 ;
tmp133 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp128) ;
arg0 = arg0 ;
arg1 = tmp133 ;
arg2 = arg2 ;
arg3 = arg3 ;
goto __ats_lab_loop_32 ; // tail call
} else {
tmp124 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (ats_ptrget_mac(ats_ptr_type, arg0), tmp125) ;
} /* end of [if] */
return (tmp124) ;
} /* end of [loop_32] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_int_type closure_env_0 ;
ats_ptr_type closure_env_1 ;
} loop_32_closure_type ;

ats_ptr_type
loop_32_clofun (ats_clo_ptr_type cloptr, ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) {
return loop_32 (((loop_32_closure_type*)cloptr)->closure_env_0, ((loop_32_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2, arg3) ;
} /* end of function */

ATSinline()
ats_void_type
loop_32_closure_init (loop_32_closure_type *p_clo, ats_int_type env0, ats_ptr_type env1) {
p_clo->closure_fun = (ats_fun_ptr_type)&loop_32_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
return ;
} /* end of function */

ats_clo_ptr_type
loop_32_closure_make (ats_int_type env0, ats_ptr_type env1) {
loop_32_closure_type *p_clo = ATS_MALLOC(sizeof(loop_32_closure_type)) ;
loop_32_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 9386(line=404, offs=3) -- 10403(line=444, offs=4)
*/
ATSglobaldec()
anairiats_rec_1
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exiuni_instantiate_all (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) {
/* local vardec */
ATSlocal (anairiats_rec_1, tmp123) ;
ATSlocal (ats_ptr_type, tmp134) ;
ATSlocal (ats_ptr_type, tmp135) ;
ATSlocal (ats_ptr_type, tmp136) ;
ATSlocal (ats_ptr_type, tmp137) ;
// ATSlocal_void (tmp138) ;
ATSlocal (ats_ptr_type, tmp139) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exiuni_instantiate_all:
/* ats_ptr_type tmp134 ; */
tmp134 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ;
tmp135 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ;
/* ats_ptr_type tmp136 ; */
tmp136 = (ats_sum_ptr_type)0 ;
tmp137 = loop_32 (arg0, arg2, (&tmp134), tmp135, (&tmp136), arg3) ;
/* tmp138 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp134) ;
tmp139 = list_vt_reverse_01506_ats_ptr_type (tmp136) ;
tmp123.atslab_0 = tmp137 ;
tmp123.atslab_1 = tmp139 ;

return (tmp123) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exiuni_instantiate_all] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 10484(line=448, offs=3) -- 10559(line=449, offs=54)
*/
ATSglobaldec()
anairiats_rec_1
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_all (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (anairiats_rec_1, tmp140) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_all:
tmp140 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exiuni_instantiate_all (0, arg0, arg1, arg2) ;
return (tmp140) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_all] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 10637(line=454, offs=3) -- 10712(line=455, offs=54)
*/
ATSglobaldec()
anairiats_rec_1
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (anairiats_rec_1, tmp141) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all:
tmp141 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exiuni_instantiate_all (1, arg0, arg1, arg2) ;
return (tmp141) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6702(line=253, offs=5) -- 6923(line=259, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_37 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp160) ;
ATSlocal (ats_ptr_type, tmp161) ;

__ats_lab_loop_37:
do {
/* branch: __ats_lab_19 */
__ats_lab_19_0:
if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; }
__ats_lab_19_1:
tmp161 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ;
arg0 = tmp161 ;
arg1 = arg1 ;
goto __ats_lab_loop_37 ; // tail call
break ;

/* branch: __ats_lab_20 */
__ats_lab_20_0:
// if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_20_1:
ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ;
break ;
} while (0) ;
return /* (tmp160) */ ;
} /* end of [loop_37] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 6567(line=247, offs=16) -- 6970(line=262, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_vt_append_01504_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp158) ;
ATSlocal (ats_ptr_type, tmp159) ;
// ATSlocal_void (tmp162) ;

__ats_lab_list_vt_append_01504_ats_ptr_type:
/* ats_ptr_type tmp159 ; */
tmp159 = arg0 ;
/* tmp162 = */ loop_37 ((&tmp159), arg1) ;
tmp158 = tmp159 ;
return (tmp158) ;
} /* end of [list_vt_append_01504_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 10793(line=460, offs=3) -- 11617(line=488, offs=4)
*/
ATSglobaldec()
anairiats_rec_1
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_unimet_instantiate_all (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (anairiats_rec_1, tmp142) ;
ATSlocal (anairiats_rec_1, tmp143) ;
ATSlocal (ats_ptr_type, tmp144) ;
ATSlocal (ats_ptr_type, tmp145) ;
ATSlocal (ats_ptr_type, tmp146) ;
ATSlocal (ats_ptr_type, tmp147) ;
ATSlocal (ats_ptr_type, tmp148) ;
ATSlocal (ats_ptr_type, tmp149) ;
ATSlocal (ats_ptr_type, tmp150) ;
ATSlocal (ats_ptr_type, tmp151) ;
ATSlocal (ats_int_type, tmp152) ;
// ATSlocal_void (tmp153) ;
ATSlocal (anairiats_rec_1, tmp154) ;
ATSlocal (ats_ptr_type, tmp155) ;
ATSlocal (ats_ptr_type, tmp156) ;
ATSlocal (ats_ptr_type, tmp157) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_unimet_instantiate_all:
tmp143 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all (arg0, arg1, arg2) ;
tmp144 = ats_select_mac(tmp143, atslab_0) ;
tmp145 = ats_select_mac(tmp143, atslab_1) ;
tmp146 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp144) ;
tmp147 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp146) ;
tmp148 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp147), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_16 */
__ats_lab_16_0:
if (((ats_sum_ptr_type)tmp148)->tag != 20) { goto __ats_lab_23_0 ; }
__ats_lab_16_1:
tmp149 = ats_caselptrlab_mac(anairiats_sum_11, tmp148, atslab_0) ;
tmp150 = ats_caselptrlab_mac(anairiats_sum_11, tmp148, atslab_1) ;
tmp151 = ats_caselptrlab_mac(anairiats_sum_11, tmp148, atslab_2) ;
do {
/* branch: __ats_lab_17 */
__ats_lab_17_0:
if (tmp149 == (ats_sum_ptr_type)0) { goto __ats_lab_22_0 ; }
__ats_lab_17_1:
tmp152 = ats_caselptrlab_mac(anairiats_sum_13, tmp149, atslab_0) ;
/* tmp153 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_termet_instantiate (arg1, tmp152, tmp150) ;
tmp154 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_all (tmp151, arg1, arg2) ;
tmp155 = ats_select_mac(tmp154, atslab_0) ;
tmp156 = ats_select_mac(tmp154, atslab_1) ;
do {
/* branch: __ats_lab_18 */
__ats_lab_18_0:
if (tmp156 == (ats_sum_ptr_type)0) { goto __ats_lab_21_0 ; }
__ats_lab_18_1:
tmp157 = list_vt_append_01504_ats_ptr_type (tmp145, tmp156) ;
break ;

/* branch: __ats_lab_21 */
__ats_lab_21_0:
// if (tmp156 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_21_1:
tmp157 = tmp145 ;
break ;
} while (0) ;
tmp142.atslab_0 = tmp155 ;
tmp142.atslab_1 = tmp157 ;

break ;

/* branch: __ats_lab_22 */
__ats_lab_22_0:
// if (tmp149 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_22_1:
tmp142.atslab_0 = tmp151 ;
tmp142.atslab_1 = tmp145 ;

break ;
} while (0) ;
break ;

/* branch: __ats_lab_23 */
__ats_lab_23_0:
__ats_lab_23_1:
tmp142.atslab_0 = tmp147 ;
tmp142.atslab_1 = tmp145 ;

break ;
} while (0) ;
return (tmp142) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_unimet_instantiate_all] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 11786(line=499, offs=1) -- 12065(line=511, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_39 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp165) ;
// ATSlocal_void (tmp166) ;
// ATSlocal_void (tmp167) ;
// ATSlocal_void (tmp168) ;
// ATSlocal_void (tmp169) ;
ATSlocal (ats_ptr_type, tmp170) ;

__ats_lab_auxerr_39:
/* tmp166 = */ prerr_error3_loc_02170_ (arg0) ;
/* tmp167 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_env.dats"), ATSstrcst("s2exp_exi_instantiate_sexparg")) ;
/* tmp168 = */ atspre_prerr_string (ATSstrcst(": the static abstraction is overly done.")) ;
/* tmp169 = */ atspre_prerr_newline () ;
tmp170 = ATS_MALLOC(sizeof(anairiats_sum_10)) ;
((ats_sum_ptr_type)tmp170)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_10, tmp170, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_10, tmp170, atslab_1, 1) ;
/* tmp165 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp170) ;
return /* (tmp165) */ ;
} /* end of [auxerr_39] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 11723(line=494, offs=3) -- 13532(line=569, offs=4)
*/
ATSglobaldec()
anairiats_rec_1
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_sexparg (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (anairiats_rec_1, tmp163) ;
ATSlocal (ats_ptr_type, tmp164) ;
ATSlocal (ats_ptr_type, tmp171) ;
ATSlocal (ats_ptr_type, tmp172) ;
ATSlocal (ats_ptr_type, tmp173) ;
ATSlocal (ats_ptr_type, tmp174) ;
ATSlocal (ats_ptr_type, tmp175) ;
ATSlocal (ats_ptr_type, tmp176) ;
ATSlocal (ats_ptr_type, tmp177) ;
// ATSlocal_void (tmp178) ;
ATSlocal (ats_ptr_type, tmp179) ;
ATSlocal (ats_ptr_type, tmp180) ;
// ATSlocal_void (tmp181) ;
ATSlocal (ats_int_type, tmp182) ;
// ATSlocal_void (tmp183) ;
ATSlocal (ats_ptr_type, tmp184) ;
ATSlocal (ats_ptr_type, tmp185) ;
ATSlocal (ats_ptr_type, tmp186) ;
ATSlocal (ats_ptr_type, tmp187) ;
ATSlocal (ats_ptr_type, tmp188) ;
ATSlocal (ats_ptr_type, tmp189) ;
ATSlocal (ats_ptr_type, tmp190) ;
ATSlocal (ats_ptr_type, tmp191) ;
// ATSlocal_void (tmp192) ;
ATSlocal (ats_ptr_type, tmp193) ;
ATSlocal (ats_ptr_type, tmp194) ;
// ATSlocal_void (tmp195) ;
ATSlocal (ats_int_type, tmp196) ;
// ATSlocal_void (tmp197) ;
ATSlocal (ats_ptr_type, tmp198) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_sexparg:
tmp164 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_s2exparg_loc) ;
tmp171 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, arg1), atslab_s2exparg_node) ;
do {
/* branch: __ats_lab_24 */
__ats_lab_24_0:
if (((ats_sum_ptr_type)tmp171)->tag != 1) { goto __ats_lab_25_0 ; }
__ats_lab_24_1:
tmp163 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_all (arg0, tmp164, arg2) ;
break ;

/* branch: __ats_lab_25 */
__ats_lab_25_0:
if (((ats_sum_ptr_type)tmp171)->tag != 0) { goto __ats_lab_28_0 ; }
__ats_lab_25_1:
tmp172 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (arg0) ;
tmp173 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp172), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_26 */
__ats_lab_26_0:
if (((ats_sum_ptr_type)tmp173)->tag != 27) { goto __ats_lab_27_0 ; }
__ats_lab_26_1:
tmp174 = ats_caselptrlab_mac(anairiats_sum_11, tmp173, atslab_0) ;
tmp175 = ats_caselptrlab_mac(anairiats_sum_11, tmp173, atslab_1) ;
tmp176 = ats_caselptrlab_mac(anairiats_sum_11, tmp173, atslab_2) ;
/* ats_ptr_type tmp177 ; */
tmp177 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ;
/* tmp178 = */ stasub_s2varlst_instantiate_none_22 ((&tmp177), tmp164, tmp174, arg2) ;
tmp179 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp177, tmp176) ;
tmp180 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (tmp177, tmp175) ;
/* tmp181 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp177) ;
tmp163.atslab_0 = tmp179 ;
tmp163.atslab_1 = tmp180 ;

break ;

/* branch: __ats_lab_27 */
__ats_lab_27_0:
__ats_lab_27_1:
tmp182 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ;
ats_ptrget_mac(ats_int_type, arg2) = tmp182 ;
/* tmp183 = */ auxerr_39 (tmp164) ;
tmp184 = (ats_sum_ptr_type)0 ;
tmp163.atslab_0 = tmp172 ;
tmp163.atslab_1 = tmp184 ;

break ;
} while (0) ;
break ;

/* branch: __ats_lab_28 */
__ats_lab_28_0:
// if (((ats_sum_ptr_type)tmp171)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_28_1:
tmp185 = ats_caselptrlab_mac(anairiats_sum_5, tmp171, atslab_0) ;
tmp186 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (arg0) ;
tmp187 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp186), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_29 */
__ats_lab_29_0:
if (((ats_sum_ptr_type)tmp187)->tag != 27) { goto __ats_lab_30_0 ; }
__ats_lab_29_1:
tmp188 = ats_caselptrlab_mac(anairiats_sum_11, tmp187, atslab_0) ;
tmp189 = ats_caselptrlab_mac(anairiats_sum_11, tmp187, atslab_1) ;
tmp190 = ats_caselptrlab_mac(anairiats_sum_11, tmp187, atslab_2) ;
/* ats_ptr_type tmp191 ; */
tmp191 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ;
/* tmp192 = */ stasub_s2varlst_instantiate_some_23 ((&tmp191), tmp164, tmp188, tmp185, arg2) ;
tmp193 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp191, tmp190) ;
tmp194 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (tmp191, tmp189) ;
/* tmp195 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp191) ;
tmp163.atslab_0 = tmp193 ;
tmp163.atslab_1 = tmp194 ;

break ;

/* branch: __ats_lab_30 */
__ats_lab_30_0:
__ats_lab_30_1:
tmp196 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ;
ats_ptrget_mac(ats_int_type, arg2) = tmp196 ;
/* tmp197 = */ auxerr_39 (tmp164) ;
tmp198 = (ats_sum_ptr_type)0 ;
tmp163.atslab_0 = tmp186 ;
tmp163.atslab_1 = tmp198 ;

break ;
} while (0) ;
break ;
} while (0) ;
return (tmp163) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_sexparg] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 13673(line=578, offs=1) -- 13985(line=588, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_41 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp200) ;
// ATSlocal_void (tmp201) ;
// ATSlocal_void (tmp202) ;
// ATSlocal_void (tmp203) ;
// ATSlocal_void (tmp204) ;
ATSlocal (ats_ptr_type, tmp205) ;

__ats_lab_auxerr_41:
/* tmp201 = */ prerr_error3_loc_02170_ (arg0) ;
/* tmp202 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_env.dats"), ATSstrcst("s2exp_uni_instantiate_sexparglst")) ;
/* tmp203 = */ atspre_prerr_string (ATSstrcst(": the static application is overly done.")) ;
/* tmp204 = */ atspre_prerr_newline () ;
tmp205 = ATS_MALLOC(sizeof(anairiats_sum_10)) ;
((ats_sum_ptr_type)tmp205)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_10, tmp205, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_10, tmp205, atslab_1, 1) ;
/* tmp200 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp205) ;
return /* (tmp200) */ ;
} /* end of [auxerr_41] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 14015(line=590, offs=5) -- 16342(line=660, offs=4)
*/
ATSstaticdec()
ats_ptr_type
loop_42 (ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_ref_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp206) ;
ATSlocal (ats_ptr_type, tmp207) ;
ATSlocal (ats_ptr_type, tmp208) ;
ATSlocal (ats_ptr_type, tmp209) ;
ATSlocal (ats_ptr_type, tmp210) ;
ATSlocal (ats_ptr_type, tmp211) ;
ATSlocal (ats_ptr_type, tmp212) ;
ATSlocal (ats_ptr_type, tmp213) ;
ATSlocal (ats_ptr_type, tmp214) ;
ATSlocal (ats_ptr_type, tmp215) ;
// ATSlocal_void (tmp216) ;
ATSlocal (ats_ptr_type, tmp217) ;
ATSlocal (ats_ptr_type, tmp218) ;
ATSlocal (ats_ptr_type, tmp219) ;
ATSlocal (ats_ptr_type, tmp220) ;
ATSlocal (ats_ptr_type, tmp221) ;
ATSlocal (ats_ptr_type, tmp222) ;
ATSlocal (ats_ptr_type, tmp223) ;
// ATSlocal_void (tmp224) ;
ATSlocal (ats_ptr_type, tmp225) ;
ATSlocal (ats_ptr_type, tmp226) ;
ATSlocal (ats_ptr_type, tmp227) ;
ATSlocal (ats_int_type, tmp228) ;
// ATSlocal_void (tmp229) ;
ATSlocal (ats_ptr_type, tmp230) ;
ATSlocal (ats_ptr_type, tmp231) ;
ATSlocal (ats_ptr_type, tmp232) ;
ATSlocal (ats_ptr_type, tmp233) ;
ATSlocal (ats_ptr_type, tmp234) ;
// ATSlocal_void (tmp235) ;
ATSlocal (ats_ptr_type, tmp236) ;
ATSlocal (ats_ptr_type, tmp237) ;
ATSlocal (ats_ptr_type, tmp238) ;
ATSlocal (ats_int_type, tmp239) ;
// ATSlocal_void (tmp240) ;
ATSlocal (ats_ptr_type, tmp241) ;

__ats_lab_loop_42:
tmp207 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ;
do {
/* branch: __ats_lab_31 */
__ats_lab_31_0:
if (arg3 == (ats_sum_ptr_type)0) { goto __ats_lab_41_0 ; }
__ats_lab_31_1:
tmp208 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ;
tmp209 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_1) ;
tmp210 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp208), atslab_s2exparg_loc) ;
tmp211 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_14, tmp208), atslab_s2exparg_node) ;
do {
/* branch: __ats_lab_32 */
__ats_lab_32_0:
if (((ats_sum_ptr_type)tmp211)->tag != 1) { goto __ats_lab_35_0 ; }
__ats_lab_32_1:
tmp212 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp207), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_33 */
__ats_lab_33_0:
if (((ats_sum_ptr_type)tmp212)->tag != 28) { goto __ats_lab_34_0 ; }
__ats_lab_33_1:
tmp213 = ats_caselptrlab_mac(anairiats_sum_11, tmp212, atslab_0) ;
tmp214 = ats_caselptrlab_mac(anairiats_sum_11, tmp212, atslab_1) ;
tmp215 = ats_caselptrlab_mac(anairiats_sum_11, tmp212, atslab_2) ;
/* tmp216 = */ stasub_s2varlst_instantiate_none_22 (arg0, tmp210, tmp213, arg4) ;
tmp217 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (ats_ptrget_mac(ats_ptr_type, arg0), tmp214) ;
tmp218 = list_vt_reverse_append_01507_ats_ptr_type (tmp217, ats_ptrget_mac(ats_ptr_type, arg2)) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp218 ;
tmp219 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp215) ;
arg0 = arg0 ;
arg1 = tmp219 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = arg4 ;
goto __ats_lab_loop_42 ; // tail call
break ;

/* branch: __ats_lab_34 */
__ats_lab_34_0:
__ats_lab_34_1:
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp209 ;
arg4 = arg4 ;
goto __ats_lab_loop_42 ; // tail call
break ;
} while (0) ;
break ;

/* branch: __ats_lab_35 */
__ats_lab_35_0:
if (((ats_sum_ptr_type)tmp211)->tag != 0) { goto __ats_lab_38_0 ; }
__ats_lab_35_1:
tmp220 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp207), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_36 */
__ats_lab_36_0:
if (((ats_sum_ptr_type)tmp220)->tag != 28) { goto __ats_lab_37_0 ; }
__ats_lab_36_1:
tmp221 = ats_caselptrlab_mac(anairiats_sum_11, tmp220, atslab_0) ;
tmp222 = ats_caselptrlab_mac(anairiats_sum_11, tmp220, atslab_1) ;
tmp223 = ats_caselptrlab_mac(anairiats_sum_11, tmp220, atslab_2) ;
/* tmp224 = */ stasub_s2varlst_instantiate_none_22 (arg0, tmp210, tmp221, arg4) ;
tmp225 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (ats_ptrget_mac(ats_ptr_type, arg0), tmp222) ;
tmp226 = list_vt_reverse_append_01507_ats_ptr_type (tmp225, ats_ptrget_mac(ats_ptr_type, arg2)) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp226 ;
tmp227 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp223) ;
arg0 = arg0 ;
arg1 = tmp227 ;
arg2 = arg2 ;
arg3 = tmp209 ;
arg4 = arg4 ;
goto __ats_lab_loop_42 ; // tail call
break ;

/* branch: __ats_lab_37 */
__ats_lab_37_0:
__ats_lab_37_1:
tmp228 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ;
ats_ptrget_mac(ats_int_type, arg4) = tmp228 ;
/* tmp229 = */ auxerr_41 (tmp210) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp209 ;
arg4 = arg4 ;
goto __ats_lab_loop_42 ; // tail call
break ;
} while (0) ;
break ;

/* branch: __ats_lab_38 */
__ats_lab_38_0:
// if (((ats_sum_ptr_type)tmp211)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_38_1:
tmp230 = ats_caselptrlab_mac(anairiats_sum_5, tmp211, atslab_0) ;
tmp231 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp207), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_39 */
__ats_lab_39_0:
if (((ats_sum_ptr_type)tmp231)->tag != 28) { goto __ats_lab_40_0 ; }
__ats_lab_39_1:
tmp232 = ats_caselptrlab_mac(anairiats_sum_11, tmp231, atslab_0) ;
tmp233 = ats_caselptrlab_mac(anairiats_sum_11, tmp231, atslab_1) ;
tmp234 = ats_caselptrlab_mac(anairiats_sum_11, tmp231, atslab_2) ;
/* tmp235 = */ stasub_s2varlst_instantiate_some_23 (arg0, tmp210, tmp232, tmp230, arg4) ;
tmp236 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (ats_ptrget_mac(ats_ptr_type, arg0), tmp233) ;
tmp237 = list_vt_reverse_append_01507_ats_ptr_type (tmp236, ats_ptrget_mac(ats_ptr_type, arg2)) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp237 ;
tmp238 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp234) ;
arg0 = arg0 ;
arg1 = tmp238 ;
arg2 = arg2 ;
arg3 = tmp209 ;
arg4 = arg4 ;
goto __ats_lab_loop_42 ; // tail call
break ;

/* branch: __ats_lab_40 */
__ats_lab_40_0:
__ats_lab_40_1:
tmp239 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ;
ats_ptrget_mac(ats_int_type, arg4) = tmp239 ;
/* tmp240 = */ auxerr_41 (tmp210) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp209 ;
arg4 = arg4 ;
goto __ats_lab_loop_42 ; // tail call
break ;
} while (0) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_41 */
__ats_lab_41_0:
// if (arg3 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_41_1:
tmp241 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ;
tmp206 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (ats_ptrget_mac(ats_ptr_type, arg0), tmp241) ;
break ;
} while (0) ;
return (tmp206) ;
} /* end of [loop_42] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 13642(line=575, offs=3) -- 16642(line=673, offs=4)
*/
ATSglobaldec()
anairiats_rec_1
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_sexparglst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (anairiats_rec_1, tmp199) ;
ATSlocal (ats_ptr_type, tmp242) ;
ATSlocal (ats_ptr_type, tmp243) ;
ATSlocal (ats_ptr_type, tmp244) ;
ATSlocal (ats_ptr_type, tmp245) ;
// ATSlocal_void (tmp246) ;
ATSlocal (ats_ptr_type, tmp247) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_sexparglst:
/* ats_ptr_type tmp242 ; */
tmp242 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ;
tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg0) ;
/* ats_ptr_type tmp244 ; */
tmp244 = (ats_sum_ptr_type)0 ;
tmp245 = loop_42 ((&tmp242), tmp243, (&tmp244), arg1, arg2) ;
/* tmp246 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp242) ;
tmp247 = list_vt_reverse_01506_ats_ptr_type (tmp244) ;
tmp199.atslab_0 = tmp245 ;
tmp199.atslab_1 = tmp247 ;

return (tmp199) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_uni_instantiate_sexparglst] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 50443(line=1783, offs=17) -- 50505(line=1785, offs=4)
*/
ATSstaticdec()
ats_bool_type
list_is_nil_01294_ (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp255) ;

__ats_lab_list_is_nil_01294_:
do {
/* branch: __ats_lab_44 */
__ats_lab_44_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_45_0 ; }
__ats_lab_44_1:
tmp255 = ats_false_bool ;
break ;

/* branch: __ats_lab_45 */
__ats_lab_45_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_45_1:
tmp255 = ats_true_bool ;
break ;
} while (0) ;
return (tmp255) ;
} /* end of [list_is_nil_01294_] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 16792(line=681, offs=5) -- 17429(line=710, offs=4)
*/
ATSstaticdec()
ats_ptr_type
loop_44 (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp249) ;
ATSlocal (anairiats_rec_2, tmp250) ;
ATSlocal (ats_ptr_type, tmp251) ;
ATSlocal (ats_ptr_type, tmp252) ;
// ATSlocal_void (tmp253) ;
ATSlocal (ats_bool_type, tmp254) ;
ATSlocal (ats_ptr_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) ;

__ats_lab_loop_44:
do {
/* branch: __ats_lab_42 */
__ats_lab_42_0:
if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; }
__ats_lab_42_1:
tmp249 = list_vt_reverse_01506_ats_ptr_type (arg3) ;
break ;

/* branch: __ats_lab_43 */
__ats_lab_43_0:
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_43_1:
tmp250 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ;
tmp251 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_1) ;
tmp252 = ats_select_mac(tmp250, atslab_s2qua_svs) ;
tmp256 = ats_select_mac(tmp250, atslab_s2qua_sps) ;
tmp254 = list_is_nil_01294_ (tmp256) ;
tmp257 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans3_env.dats: 17111(line=698, offs=7) -- 17146(line=698, offs=42)", ATSstrcst("\n")) ;
/* tmp253 = */ atspre_assert_errmsg (tmp254, tmp257) ;
tmp259 = (ats_sum_ptr_type)0 ;
tmp258 = stasub_s2varlst_instcollect_27 (arg1, arg0, tmp252, tmp259) ;
tmp260 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__t2mpmarg_make (arg0, ats_castfn_mac(ats_ptr_type, tmp258)) ;
tmp261 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp261, atslab_0, tmp260) ;
ats_selptrset_mac(anairiats_sum_6, tmp261, atslab_1, arg3) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp251 ;
arg3 = tmp261 ;
arg4 = arg4 ;
goto __ats_lab_loop_44 ; // tail call
break ;
} while (0) ;
return (tmp249) ;
} /* end of [loop_44] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 16749(line=679, offs=3) -- 17704(line=728, offs=4)
*/
ATSglobaldec()
anairiats_rec_1
patsopt_s2exp_tmp_instantiate_rest (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) {
/* local vardec */
ATSlocal (anairiats_rec_1, tmp248) ;
ATSlocal (ats_ptr_type, tmp262) ;
ATSlocal (ats_ptr_type, tmp263) ;
ATSlocal (ats_ptr_type, tmp264) ;
ATSlocal (ats_ptr_type, tmp265) ;
// ATSlocal_void (tmp266) ;

__ats_lab_patsopt_s2exp_tmp_instantiate_rest:
/* ats_ptr_type tmp262 ; */
tmp262 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ;
tmp264 = (ats_sum_ptr_type)0 ;
tmp263 = loop_44 (arg1, (&tmp262), arg2, tmp264, arg3) ;
tmp265 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp262, arg0) ;
/* tmp266 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp262) ;
tmp248.atslab_0 = tmp265 ;
tmp248.atslab_1 = ats_castfn_mac(ats_ptr_type, tmp263) ;

return (tmp248) ;
} /* end of [patsopt_s2exp_tmp_instantiate_rest] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 17861(line=737, offs=1) -- 18148(line=749, offs=4)
*/
ATSstaticdec()
ats_void_type
auxerr_47 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp268) ;
// ATSlocal_void (tmp269) ;
// ATSlocal_void (tmp270) ;
// ATSlocal_void (tmp271) ;
// ATSlocal_void (tmp272) ;
ATSlocal (ats_ptr_type, tmp273) ;

__ats_lab_auxerr_47:
/* tmp269 = */ prerr_error3_loc_02170_ (arg0) ;
/* tmp270 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_env.dats"), ATSstrcst("s2exp_tmp_instantiate_tmpmarglst")) ;
/* tmp271 = */ atspre_prerr_string (ATSstrcst(": the template instantiation is overly done.")) ;
/* tmp272 = */ atspre_prerr_newline () ;
tmp273 = ATS_MALLOC(sizeof(anairiats_sum_10)) ;
((ats_sum_ptr_type)tmp273)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_10, tmp273, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_10, tmp273, atslab_1, 1) ;
/* tmp268 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp273) ;
return /* (tmp268) */ ;
} /* end of [auxerr_47] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 18211(line=754, offs=1) -- 19165(line=798, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxsome_48 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp275) ;
ATSlocal (ats_ptr_type, tmp276) ;
ATSlocal (ats_ptr_type, tmp277) ;
ATSlocal (ats_int_type, tmp278) ;
ATSlocal (ats_ptr_type, tmp279) ;
// ATSlocal_void (tmp280) ;
ATSlocal (anairiats_rec_2, tmp281) ;
ATSlocal (ats_ptr_type, tmp282) ;
ATSlocal (ats_ptr_type, tmp283) ;
ATSlocal (ats_ptr_type, tmp284) ;
ATSlocal (ats_ptr_type, tmp285) ;
// ATSlocal_void (tmp286) ;
ATSlocal (ats_bool_type, tmp287) ;
ATSlocal (ats_ptr_type, tmp288) ;
ATSlocal (ats_ptr_type, tmp289) ;
ATSlocal (ats_ptr_type, tmp290) ;
ATSlocal (ats_ptr_type, tmp291) ;
// ATSlocal_void (tmp292) ;

__ats_lab_auxsome_48:
do {
/* branch: __ats_lab_46 */
__ats_lab_46_0:
if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_49_0 ; }
__ats_lab_46_1:
do {
/* branch: __ats_lab_47 */
__ats_lab_47_0:
if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_48_0 ; }
__ats_lab_47_1:
tmp275 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_48 */
__ats_lab_48_0:
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_48_1:
tmp276 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ;
tmp277 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_1) ;
tmp278 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ;
ats_ptrget_mac(ats_int_type, arg4) = tmp278 ;
tmp279 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, tmp276), atslab_t2mpmarg_loc) ;
ats_ptrget_mac(ats_ptr_type, arg1) = tmp279 ;
/* tmp280 = */ auxerr_47 (ats_ptrget_mac(ats_ptr_type, arg1)) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp277 ;
arg4 = arg4 ;
goto __ats_lab_auxsome_48 ; // tail call
break ;
} while (0) ;
break ;

/* branch: __ats_lab_49 */
__ats_lab_49_0:
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_49_1:
tmp281 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_0) ;
tmp282 = ats_caselptrlab_mac(anairiats_sum_15, arg2, atslab_1) ;
do {
/* branch: __ats_lab_50 */
__ats_lab_50_0:
if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_51_0 ; }
__ats_lab_50_1:
tmp275 = arg2 ;
break ;

/* branch: __ats_lab_51 */
__ats_lab_51_0:
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_51_1:
tmp283 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ;
tmp284 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_1) ;
tmp285 = ats_select_mac(tmp281, atslab_s2qua_svs) ;
tmp288 = ats_select_mac(tmp281, atslab_s2qua_sps) ;
tmp287 = list_is_nil_01294_ (tmp288) ;
tmp289 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_trans3_env.dats: 18828(line=784, offs=7) -- 18863(line=784, offs=42)", ATSstrcst("\n")) ;
/* tmp286 = */ atspre_assert_errmsg (tmp287, tmp289) ;
tmp290 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, tmp283), atslab_t2mpmarg_arg) ;
tmp291 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_16, tmp283), atslab_t2mpmarg_loc) ;
ats_ptrget_mac(ats_ptr_type, arg1) = tmp291 ;
/* tmp292 = */ stasub_s2varlst_instantiate_some_23 (arg0, ats_ptrget_mac(ats_ptr_type, arg1), tmp285, tmp290, arg4) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp282 ;
arg3 = tmp284 ;
arg4 = arg4 ;
goto __ats_lab_auxsome_48 ; // tail call
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp275) ;
} /* end of [auxsome_48] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7739(line=275, offs=5) -- 8080(line=290, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_50 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
// ATSlocal_void (tmp304) ;
ATSlocal (ats_ptr_type, tmp305) ;
ATSlocal (ats_ptr_type, tmp306) ;
ATSlocal (ats_ptr_type, tmp307) ;
ATSlocal (ats_ptr_type, tmp308) ;

__ats_lab_loop_50:
do {
/* branch: __ats_lab_54 */
__ats_lab_54_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_55_0 ; }
__ats_lab_54_1:
tmp305 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp306 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp307 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp307, atslab_0, tmp305) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp307 ;
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp308 = &ats_caselptrlab_mac(anairiats_sum_6, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
arg0 = tmp306 ;
arg1 = arg1 ;
arg2 = tmp308 ;
goto __ats_lab_loop_50 ; // tail call
break ;

/* branch: __ats_lab_55 */
__ats_lab_55_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_55_1:
ats_ptrget_mac(ats_ptr_type, arg2) = arg1 ;
break ;
} while (0) ;
return /* (tmp304) */ ;
} /* end of [loop_50] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 7684(line=272, offs=13) -- 8222(line=297, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_append_01312_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp302) ;
ATSlocal (ats_ptr_type, tmp303) ;
// ATSlocal_void (tmp309) ;

__ats_lab_list_append_01312_ats_ptr_type:
/* ats_ptr_type tmp303 ; */
/* tmp309 = */ loop_50 (arg0, arg1, (&tmp303)) ;
tmp302 = tmp303 ;
return (tmp302) ;
} /* end of [list_append_01312_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 17811(line=734, offs=3) -- 19716(line=830, offs=4)
*/
ATSglobaldec()
anairiats_rec_1
patsopt_s2exp_tmp_instantiate_tmpmarglst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4) {
/* local vardec */
ATSlocal (anairiats_rec_1, tmp267) ;
ATSlocal (ats_ptr_type, tmp274) ;
ATSlocal (ats_ptr_type, tmp293) ;
ATSlocal (ats_ptr_type, tmp294) ;
ATSlocal (ats_ptr_type, tmp295) ;
// ATSlocal_void (tmp296) ;
ATSlocal (ats_ptr_type, tmp297) ;
ATSlocal (anairiats_rec_1, tmp298) ;
ATSlocal (ats_ptr_type, tmp299) ;
ATSlocal (ats_ptr_type, tmp300) ;
ATSlocal (ats_ptr_type, tmp301) ;

__ats_lab_patsopt_s2exp_tmp_instantiate_tmpmarglst:
/* ats_ptr_type tmp274 ; */
tmp274 = arg1 ;
/* ats_ptr_type tmp293 ; */
tmp293 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ;
tmp294 = auxsome_48 ((&tmp293), (&tmp274), arg2, arg3, arg4) ;
tmp295 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp293, arg0) ;
/* tmp296 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp293) ;
do {
/* branch: __ats_lab_52 */
__ats_lab_52_0:
if (tmp294 != (ats_sum_ptr_type)0) { goto __ats_lab_53_0 ; }
__ats_lab_52_1:
tmp267.atslab_0 = tmp295 ;
tmp267.atslab_1 = arg3 ;

break ;

/* branch: __ats_lab_53 */
__ats_lab_53_0:
// if (tmp294 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_53_1:
tmp297 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_rightmost (tmp274) ;
tmp298 = patsopt_s2exp_tmp_instantiate_rest (tmp295, tmp297, tmp294, arg4) ;
tmp299 = ats_select_mac(tmp298, atslab_0) ;
tmp300 = ats_select_mac(tmp298, atslab_1) ;
tmp301 = list_append_01312_ats_ptr_type (arg3, tmp300) ;
tmp267.atslab_0 = tmp299 ;
tmp267.atslab_1 = tmp301 ;

break ;
} while (0) ;
return (tmp267) ;
} /* end of [patsopt_s2exp_tmp_instantiate_tmpmarglst] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/reference.dats: 1994(line=62, offs=27) -- 2009(line=62, offs=42)
*/
ATSstaticdec()
ats_ptr_type
ref_make_elt_01089_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp312) ;

__ats_lab_ref_make_elt_01089_ats_ptr_type:
tmp312 = ref_01088_ats_ptr_type (arg0) ;
return (tmp312) ;
} /* end of [ref_make_elt_01089_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 20263(line=857, offs=22) -- 20281(line=857, offs=40)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_get () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp315) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_get:
tmp315 = ats_ptrget_mac(ats_ptr_type, statmp311) ;
return (tmp315) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_get] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 20314(line=860, offs=22) -- 20380(line=862, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_add (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp316) ;
ATSlocal (ats_ptr_type, tmp317) ;
ATSlocal (ats_ptr_type, tmp318) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_add:
tmp318 = ats_ptrget_mac(ats_ptr_type, statmp311) ;
tmp317 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_add (tmp318, arg0) ;
ats_ptrget_mac(ats_ptr_type, statmp311) = tmp317 ;
return /* (tmp316) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_add] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 20447(line=865, offs=23) -- 20599(line=871, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_push () {
/* local vardec */
// ATSlocal_void (tmp319) ;
ATSlocal (ats_ptr_type, tmp320) ;
ATSlocal (ats_ptr_type, tmp321) ;
ATSlocal (ats_ptr_type, tmp322) ;
ATSlocal (ats_ptr_type, tmp323) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_push:
tmp320 = ats_ptrget_mac(ats_ptr_type, statmp311) ;
tmp321 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp313), atslab_1) ;
tmp323 = ats_ptrget_mac(ats_ptr_type, tmp321) ;
tmp322 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp322, atslab_0, tmp320) ;
ats_selptrset_mac(anairiats_sum_6, tmp322, atslab_1, tmp323) ;
ats_ptrget_mac(ats_ptr_type, tmp321) = tmp322 ;
return /* (tmp319) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_push] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 20666(line=874, offs=22) -- 20998(line=886, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_pop () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp324) ;
ATSlocal (ats_ptr_type, tmp325) ;
ATSlocal (ats_ptr_type, tmp326) ;
ATSlocal (ats_ptr_type, tmp327) ;
ATSlocal (ats_ptr_type, tmp328) ;
ATSlocal (ats_ptr_type, tmp329) ;
ATSlocal (ats_ptr_type, tmp330) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_pop:
tmp325 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp313), atslab_1) ;
tmp327 = ats_ptrget_mac(ats_ptr_type, tmp325) ;
do {
/* branch: __ats_lab_56 */
__ats_lab_56_0:
if (tmp327 == (ats_sum_ptr_type)0) { goto __ats_lab_57_0 ; }
__ats_lab_56_1:
tmp328 = ats_caselptrlab_mac(anairiats_sum_6, tmp327, atslab_0) ;
tmp329 = ats_caselptrlab_mac(anairiats_sum_6, tmp327, atslab_1) ;
ATS_FREE(tmp327) ;
ats_ptrget_mac(ats_ptr_type, tmp325) = tmp329 ;
tmp326 = tmp328 ;
break ;

/* branch: __ats_lab_57 */
__ats_lab_57_0:
// if (tmp327 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_57_1:
tmp326 = statmp310 ;
break ;
} while (0) ;
tmp330 = ats_ptrget_mac(ats_ptr_type, statmp311) ;
ats_ptrget_mac(ats_ptr_type, statmp311) = tmp326 ;
tmp324 = tmp330 ;
return (tmp324) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_pop] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 21170(line=897, offs=3) -- 21476(line=916, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize_flag_svar (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp331) ;
ATSlocal (ats_ptr_type, tmp332) ;
ATSlocal (ats_ptr_type, tmp333) ;
ATSlocal (ats_int_type, tmp334) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize_flag_svar:
tmp332 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_search (arg1) ;
do {
/* branch: __ats_lab_58 */
__ats_lab_58_0:
if (tmp332 != (ats_sum_ptr_type)0) { goto __ats_lab_59_0 ; }
__ats_lab_58_1:
tmp331 = arg0 ;
break ;

/* branch: __ats_lab_59 */
__ats_lab_59_0:
// if (tmp332 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_59_1:
tmp333 = ats_caselptrlab_mac(anairiats_sum_17, tmp332, atslab_0) ;
ATS_FREE(tmp332) ;
tmp334 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ;
ats_ptrget_mac(ats_int_type, arg2) = tmp334 ;
tmp331 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize (tmp333) ;
break ;
} while (0) ;
return (tmp331) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_hnfize_flag_svar] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 21813(line=940, offs=3) -- 23032(line=1006, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp335) ;
ATSlocal (ats_ptr_type, tmp336) ;
ATSlocal (ats_ptr_type, tmp337) ;
ATSlocal (ats_bool_type, tmp338) ;
ATSlocal (ats_ptr_type, tmp339) ;
ATSlocal (ats_ptr_type, tmp340) ;
ATSlocal (ats_bool_type, tmp341) ;
ATSlocal (ats_ptr_type, tmp342) ;
ATSlocal (ats_ptr_type, tmp343) ;
ATSlocal (ats_ptr_type, tmp344) ;
ATSlocal (ats_ptr_type, tmp345) ;
ATSlocal (ats_ptr_type, tmp346) ;
ATSlocal (ats_bool_type, tmp347) ;
ATSlocal (ats_ptr_type, tmp348) ;
ATSlocal (ats_ptr_type, tmp349) ;
ATSlocal (ats_ptr_type, tmp350) ;
ATSlocal (ats_ptr_type, tmp351) ;
ATSlocal (ats_ptr_type, tmp352) ;
ATSlocal (ats_bool_type, tmp353) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp:
tmp336 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg1), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_60 */
__ats_lab_60_0:
if (((ats_sum_ptr_type)tmp336)->tag != 7) { goto __ats_lab_61_0 ; }
__ats_lab_60_1:
tmp337 = ats_caselptrlab_mac(anairiats_sum_5, tmp336, atslab_0) ;
tmp338 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__eq_s2var_s2var (arg0, tmp337) ;
if (tmp338) {
tmp335 = ats_true_bool ;
} else {
tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2var (arg0, tmp337) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_61 */
__ats_lab_61_0:
if (((ats_sum_ptr_type)tmp336)->tag != 17) { goto __ats_lab_62_0 ; }
__ats_lab_61_1:
tmp339 = ats_caselptrlab_mac(anairiats_sum_7, tmp336, atslab_0) ;
tmp340 = ats_caselptrlab_mac(anairiats_sum_7, tmp336, atslab_1) ;
tmp341 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp (arg0, tmp339) ;
if (tmp341) {
tmp335 = ats_true_bool ;
} else {
tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explst (arg0, tmp340) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_62 */
__ats_lab_62_0:
if (((ats_sum_ptr_type)tmp336)->tag != 5) { goto __ats_lab_63_0 ; }
__ats_lab_62_1:
tmp342 = ats_caselptrlab_mac(anairiats_sum_7, tmp336, atslab_1) ;
tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explstlst (arg0, tmp342) ;
break ;

/* branch: __ats_lab_63 */
__ats_lab_63_0:
if (((ats_sum_ptr_type)tmp336)->tag != 6) { goto __ats_lab_64_0 ; }
__ats_lab_63_1:
tmp343 = ats_caselptrlab_mac(anairiats_sum_7, tmp336, atslab_1) ;
tmp335 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explstlst (arg0, tmp343) ;
break ;

/* branch: __ats_lab_64 */
__ats_lab_64_0:
if (((ats_sum_ptr_type)tmp336)->tag != 13) { goto __ats_lab_65_0 ; }
__ats_lab_64_1:
tmp344 = ats_caselptrlab_mac(anairiats_sum_5, tmp336, atslab_0) ;
arg0 = arg0 ;
arg1 = tmp344 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp ; // tail call
break ;

/* branch: __ats_lab_65 */
__ats_lab_65_0:
if (((ats_sum_ptr_type)tmp336)->tag != 15) { goto __ats_lab_66_0 ; }
__ats_lab_65_1:
tmp345 = ats_caselptrlab_mac(anairiats_sum_7, tmp336, atslab_0) ;
tmp346 = ats_caselptrlab_mac(anairiats_sum_7, tmp336, atslab_1) ;
tmp347 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp (arg0, tmp345) ;
if (tmp347) {
tmp335 = ats_true_bool ;
} else {
arg0 = arg0 ;
arg1 = tmp346 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp ; // tail call
} /* end of [if] */
break ;

/* branch: __ats_lab_66 */
__ats_lab_66_0:
if (((ats_sum_ptr_type)tmp336)->tag != 26) { goto __ats_lab_67_0 ; }
__ats_lab_66_1:
tmp348 = ats_caselptrlab_mac(anairiats_sum_5, tmp336, atslab_0) ;
arg0 = arg0 ;
arg1 = tmp348 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp ; // tail call
break ;

/* branch: __ats_lab_67 */
__ats_lab_67_0:
if (((ats_sum_ptr_type)tmp336)->tag != 29) { goto __ats_lab_68_0 ; }
__ats_lab_67_1:
tmp349 = ats_caselptrlab_mac(anairiats_sum_18, tmp336, atslab_1) ;
arg0 = arg0 ;
arg1 = tmp349 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp ; // tail call
break ;

/* branch: __ats_lab_68 */
__ats_lab_68_0:
if (((ats_sum_ptr_type)tmp336)->tag != 18) { goto __ats_lab_69_0 ; }
__ats_lab_68_1:
tmp350 = ats_caselptrlab_mac(anairiats_sum_7, tmp336, atslab_1) ;
arg0 = arg0 ;
arg1 = tmp350 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp ; // tail call
break ;

/* branch: __ats_lab_69 */
__ats_lab_69_0:
if (((ats_sum_ptr_type)tmp336)->tag != 19) { goto __ats_lab_70_0 ; }
__ats_lab_69_1:
tmp351 = ats_caselptrlab_mac(anairiats_sum_19, tmp336, atslab_4) ;
tmp352 = ats_caselptrlab_mac(anairiats_sum_19, tmp336, atslab_5) ;
tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explst (arg0, tmp351) ;
if (tmp353) {
tmp335 = ats_true_bool ;
} else {
arg0 = arg0 ;
arg1 = tmp352 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp ; // tail call
} /* end of [if] */
break ;

/* branch: __ats_lab_70 */
__ats_lab_70_0:
__ats_lab_70_1:
tmp335 = ats_false_bool ;
break ;
} while (0) ;
return (tmp335) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 23083(line=1010, offs=3) -- 23233(line=1016, offs=45)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp354) ;
ATSlocal (ats_ptr_type, tmp355) ;
ATSlocal (ats_ptr_type, tmp356) ;
ATSlocal (ats_bool_type, tmp357) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explst:
do {
/* branch: __ats_lab_71 */
__ats_lab_71_0:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_72_0 ; }
__ats_lab_71_1:
tmp354 = ats_false_bool ;
break ;

/* branch: __ats_lab_72 */
__ats_lab_72_0:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_72_1:
tmp355 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ;
tmp356 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
tmp357 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp (arg0, tmp355) ;
if (tmp357) {
tmp354 = ats_true_bool ;
} else {
arg0 = arg0 ;
arg1 = tmp356 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explst ; // tail call
} /* end of [if] */
break ;
} while (0) ;
return (tmp354) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explst] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 23305(line=1022, offs=3) -- 23467(line=1028, offs=49)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explstlst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp358) ;
ATSlocal (ats_ptr_type, tmp359) ;
ATSlocal (ats_ptr_type, tmp360) ;
ATSlocal (ats_bool_type, tmp361) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explstlst:
do {
/* branch: __ats_lab_73 */
__ats_lab_73_0:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_74_0 ; }
__ats_lab_73_1:
tmp358 = ats_false_bool ;
break ;

/* branch: __ats_lab_74 */
__ats_lab_74_0:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_74_1:
tmp359 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ;
tmp360 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
tmp361 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explst (arg0, tmp359) ;
if (tmp361) {
tmp358 = ats_true_bool ;
} else {
arg0 = arg0 ;
arg1 = tmp360 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explstlst ; // tail call
} /* end of [if] */
break ;
} while (0) ;
return (tmp358) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2explstlst] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 23533(line=1034, offs=3) -- 23687(line=1045, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2var (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp362) ;
ATSlocal (ats_ptr_type, tmp363) ;
ATSlocal (ats_ptr_type, tmp364) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2var:
tmp363 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_search (arg1) ;
do {
/* branch: __ats_lab_75 */
__ats_lab_75_0:
if (tmp363 != (ats_sum_ptr_type)0) { goto __ats_lab_76_0 ; }
__ats_lab_75_1:
tmp362 = ats_false_bool ;
break ;

/* branch: __ats_lab_76 */
__ats_lab_76_0:
// if (tmp363 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_76_1:
tmp364 = ats_caselptrlab_mac(anairiats_sum_17, tmp363, atslab_0) ;
ATS_FREE(tmp363) ;
tmp362 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp (arg0, tmp364) ;
break ;
} while (0) ;
return (tmp362) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2var] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 23768(line=1051, offs=3) -- 23961(line=1066, offs=4)
*/
ATSglobaldec()
ats_bool_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2var_occurcheck_s2exp (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp365) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2var_occurcheck_s2exp:
tmp365 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__aux1_s2exp (arg0, arg1) ;
return (tmp365) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2var_occurcheck_s2exp] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 24462(line=1095, offs=3) -- 24790(line=1108, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_push () {
/* local vardec */
// ATSlocal_void (tmp370) ;
ATSlocal (ats_ptr_type, tmp371) ;
ATSlocal (ats_ptr_type, tmp372) ;
ATSlocal (ats_ptr_type, tmp373) ;
ATSlocal (ats_ptr_type, tmp374) ;
ATSlocal (ats_ptr_type, tmp375) ;
ATSlocal (ats_ptr_type, tmp376) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_push:
tmp371 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp366), atslab_1) ;
tmp372 = ats_ptrget_mac(ats_ptr_type, tmp371) ;
tmp373 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, tmp371) = tmp373 ;
tmp374 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp368), atslab_1) ;
tmp376 = ats_ptrget_mac(ats_ptr_type, tmp374) ;
tmp375 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp375, atslab_0, tmp372) ;
ats_selptrset_mac(anairiats_sum_6, tmp375, atslab_1, tmp376) ;
ats_ptrget_mac(ats_ptr_type, tmp374) = tmp375 ;
return /* (tmp370) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_push] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 24857(line=1111, offs=22) -- 25293(line=1126, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_pop () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp377) ;
ATSlocal (ats_ptr_type, tmp378) ;
ATSlocal (ats_ptr_type, tmp379) ;
ATSlocal (ats_ptr_type, tmp380) ;
ATSlocal (ats_ptr_type, tmp381) ;
ATSlocal (ats_ptr_type, tmp382) ;
ATSlocal (ats_ptr_type, tmp383) ;
ATSlocal (ats_ptr_type, tmp384) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_pop:
tmp378 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp368), atslab_1) ;
tmp380 = ats_ptrget_mac(ats_ptr_type, tmp378) ;
do {
/* branch: __ats_lab_77 */
__ats_lab_77_0:
if (tmp380 == (ats_sum_ptr_type)0) { goto __ats_lab_78_0 ; }
__ats_lab_77_1:
tmp381 = ats_caselptrlab_mac(anairiats_sum_6, tmp380, atslab_0) ;
tmp382 = ats_caselptrlab_mac(anairiats_sum_6, tmp380, atslab_1) ;
ATS_FREE(tmp380) ;
ats_ptrget_mac(ats_ptr_type, tmp378) = tmp382 ;
tmp379 = tmp381 ;
break ;

/* branch: __ats_lab_78 */
__ats_lab_78_0:
// if (tmp380 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_78_1:
tmp379 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
tmp383 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp366), atslab_1) ;
tmp384 = ats_ptrget_mac(ats_ptr_type, tmp383) ;
ats_ptrget_mac(ats_ptr_type, tmp383) = tmp379 ;
tmp377 = list_vt_reverse_01506_ats_ptr_type (tmp384) ;
return (tmp377) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_pop] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 25359(line=1129, offs=22) -- 25462(line=1133, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp385) ;
ATSlocal (ats_ptr_type, tmp386) ;
ATSlocal (ats_ptr_type, tmp387) ;
ATSlocal (ats_ptr_type, tmp388) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add:
tmp386 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp366), atslab_1) ;
tmp388 = ats_ptrget_mac(ats_ptr_type, tmp386) ;
tmp387 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp387, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_6, tmp387, atslab_1, tmp388) ;
ats_ptrget_mac(ats_ptr_type, tmp386) = tmp387 ;
return /* (tmp385) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 25550(line=1139, offs=3) -- 25726(line=1149, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_s3itmlst (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp389) ;
ATSlocal (ats_ptr_type, tmp390) ;
ATSlocal (ats_ptr_type, tmp391) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_s3itmlst:
tmp390 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp366), atslab_1) ;
tmp391 = ats_ptrget_mac(ats_ptr_type, tmp390) ;
/* tmp389 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlst (arg0, ats_castfn_mac(ats_ptr_type, tmp391)) ;
return /* (tmp389) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_s3itmlst] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 25795(line=1153, offs=3) -- 25984(line=1163, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_s3itmlstlst (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp392) ;
ATSlocal (ats_ptr_type, tmp393) ;
ATSlocal (ats_ptr_type, tmp394) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_s3itmlstlst:
tmp393 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, statmp368), atslab_1) ;
tmp394 = ats_ptrget_mac(ats_ptr_type, tmp393) ;
/* tmp392 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_s3itmlstlst (arg0, ats_castfn_mac(ats_ptr_type, tmp394)) ;
return /* (tmp392) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__fprint_the_s3itmlstlst] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 26099(line=1171, offs=3) -- 26185(line=1174, offs=2)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp395) ;
ATSlocal (ats_ptr_type, tmp396) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar:
tmp396 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp396)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_5, tmp396, atslab_0, arg0) ;
/* tmp395 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp396) ;
return /* (tmp395) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar] */

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

__ats_lab_loop_71:
do {
/* branch: __ats_lab_79 */
__ats_lab_79_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_80_0 ; }
__ats_lab_79_1:
tmp401 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp402 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
/* tmp403 = */ ((ats_void_type(*)(ats_ptr_type, ats_ptr_type))arg1) (tmp401, arg2) ;
arg0 = tmp402 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab_loop_71 ; // tail call
break ;

/* branch: __ats_lab_80 */
__ats_lab_80_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_80_1:
break ;
} while (0) ;
return /* (tmp400) */ ;
} /* end of [loop_71] */

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

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

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

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

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 26252(line=1177, offs=24) -- 26310(line=1178, offs=50)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp397) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst:
/* tmp397 = */ list_app_fun_01301_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svar) ;
return /* (tmp397) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 26400(line=1185, offs=3) -- 26470(line=1187, offs=2)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squa (anairiats_rec_2 arg0) {
/* local vardec */
// ATSlocal_void (tmp404) ;
ATSlocal (ats_ptr_type, tmp405) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squa:
tmp405 = ats_select_mac(arg0, atslab_s2qua_svs) ;
/* tmp404 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (tmp405) ;
return /* (tmp404) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squa] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 2457(line=87, offs=7) -- 2708(line=97, offs=6)
*/
ATSstaticdec()
ats_void_type
loop_76 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp409) ;
ATSlocal (anairiats_rec_2, tmp410) ;
ATSlocal (ats_ptr_type, tmp411) ;
// ATSlocal_void (tmp412) ;

__ats_lab_loop_76:
do {
/* branch: __ats_lab_81 */
__ats_lab_81_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_82_0 ; }
__ats_lab_81_1:
tmp410 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_0) ;
tmp411 = ats_caselptrlab_mac(anairiats_sum_15, arg0, atslab_1) ;
/* tmp412 = */ ((ats_void_type(*)(anairiats_rec_2, ats_ptr_type))arg1) (tmp410, arg2) ;
arg0 = tmp411 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab_loop_76 ; // tail call
break ;

/* branch: __ats_lab_82 */
__ats_lab_82_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_82_1:
break ;
} while (0) ;
return /* (tmp409) */ ;
} /* end of [loop_76] */

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

__ats_lab_list_app_funenv_01300_anairiats_rec_2:
/* tmp408 = */ loop_76 (arg0, arg1, arg2) ;
return /* (tmp408) */ ;
} /* end of [list_app_funenv_01300_anairiats_rec_2] */

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

__ats_lab_list_app_fun_01301_anairiats_rec_2:
/* tmp407 = */ list_app_funenv_01300_anairiats_rec_2 (arg0, ats_castfn_mac(ats_ptr_type, arg1), atspre_null_ptr) ;
return /* (tmp407) */ ;
} /* end of [list_app_fun_01301_anairiats_rec_2] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 26537(line=1190, offs=24) -- 26595(line=1191, offs=50)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squalst (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp406) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squalst:
/* tmp406 = */ list_app_fun_01301_anairiats_rec_2 (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squa) ;
return /* (tmp406) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_squalst] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 26686(line=1198, offs=3) -- 26801(line=1201, offs=21)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sp2at (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp413) ;
ATSlocal (ats_ptr_type, tmp414) ;
ATSlocal (ats_ptr_type, tmp415) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sp2at:
tmp414 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_20, arg0), atslab_sp2at_node) ;
do {
/* branch: __ats_lab_83 */
__ats_lab_83_0:
if (tmp414 == (ats_sum_ptr_type)0) { goto __ats_lab_84_0 ; }
__ats_lab_83_1:
tmp415 = ats_caselptrlab_mac(anairiats_sum_6, tmp414, atslab_1) ;
/* tmp413 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (tmp415) ;
break ;

/* branch: __ats_lab_84 */
__ats_lab_84_0:
// if (tmp414 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_84_1:
break ;
} while (0) ;
return /* (tmp413) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sp2at] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 26891(line=1208, offs=3) -- 27024(line=1215, offs=2)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVar (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp416) ;
ATSlocal (ats_ptr_type, tmp417) ;
// ATSlocal_void (tmp418) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVar:
tmp417 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp417)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_5, tmp417, atslab_0, arg0) ;
/* tmp418 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_add (arg0) ;
/* tmp416 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp417) ;
return /* (tmp416) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVar] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 27091(line=1218, offs=24) -- 27149(line=1219, offs=50)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVarlst (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp419) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVarlst:
/* tmp419 = */ list_app_fun_01301_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVar) ;
return /* (tmp419) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_sVarlst] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 27219(line=1224, offs=3) -- 27290(line=1226, offs=2)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp420) ;
ATSlocal (ats_ptr_type, tmp421) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr:
tmp421 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp421)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp421, atslab_0, arg0) ;
/* tmp420 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp421) ;
return /* (tmp420) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 27362(line=1230, offs=3) -- 27437(line=1232, offs=2)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp422) ;
ATSlocal (ats_ptr_type, tmp423) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref:
tmp423 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp423)->tag = 4 ;
ats_selptrset_mac(anairiats_sum_5, tmp423, atslab_0, arg0) ;
/* tmp422 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp423) ;
return /* (tmp422) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr_ref] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 27529(line=1238, offs=3) -- 27655(line=1241, offs=8)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_prop (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp424) ;
ATSlocal (ats_ptr_type, tmp425) ;
ATSlocal (ats_ptr_type, tmp426) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_prop:
tmp425 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg1), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_85 */
__ats_lab_85_0:
__ats_lab_85_1:
tmp426 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_prop (arg0, arg1) ;
/* tmp424 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr (tmp426) ;
break ;
} while (0) ;
return /* (tmp424) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_prop] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 27738(line=1246, offs=3) -- 27919(line=1250, offs=22)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp427) ;
ATSlocal (ats_ptr_type, tmp428) ;
ATSlocal (ats_ptr_type, tmp429) ;
// ATSlocal_void (tmp430) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst:
do {
/* branch: __ats_lab_86 */
__ats_lab_86_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_87_0 ; }
__ats_lab_86_1:
tmp428 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ;
tmp429 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
/* tmp430 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_prop (arg0, tmp428) ;
arg0 = arg0 ;
arg1 = tmp429 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst ; // tail call
break ;

/* branch: __ats_lab_87 */
__ats_lab_87_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_87_1:
break ;
} while (0) ;
return /* (tmp427) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst] */

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

__ats_lab_loop_86:
do {
/* branch: __ats_lab_88 */
__ats_lab_88_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_89_0 ; }
__ats_lab_88_1:
tmp435 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
ATS_FREE(arg0) ;
arg0 = tmp435 ;
goto __ats_lab_loop_86 ; // tail call
break ;

/* branch: __ats_lab_89 */
__ats_lab_89_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_89_1:
break ;
} while (0) ;
return /* (tmp434) */ ;
} /* end of [loop_86] */

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

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

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 27994(line=1255, offs=3) -- 28124(line=1258, offs=2)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp431) ;
// ATSlocal_void (tmp432) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt:
/* tmp432 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst (arg0, ats_castfn_mac(ats_ptr_type, arg1)) ;
/* tmp431 = */ list_vt_free_01499_ats_ptr_type (arg1) ;
return /* (tmp431) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 28217(line=1264, offs=3) -- 28461(line=1274, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_eqeq (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp436) ;
ATSlocal (ats_ptr_type, tmp437) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_eqeq:
tmp437 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_eqeq (arg1, arg2) ;
/* tmp436 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_prop (arg0, tmp437) ;
return /* (tmp436) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_eqeq] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 28662(line=1284, offs=5) -- 29118(line=1301, offs=2)
*/
ATSstaticdec()
ats_void_type
loop_89 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2, ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp439) ;
ATSlocal (ats_ptr_type, tmp440) ;
ATSlocal (ats_ptr_type, tmp441) ;
// ATSlocal_void (tmp442) ;
// ATSlocal_void (tmp443) ;
ATSlocal (ats_ptr_type, tmp444) ;
// ATSlocal_void (tmp445) ;
// ATSlocal_void (tmp446) ;
// ATSlocal_void (tmp447) ;

__ats_lab_loop_89:
do {
/* branch: __ats_lab_90 */
__ats_lab_90_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_91_0 ; }
__ats_lab_90_1:
break ;

/* branch: __ats_lab_91 */
__ats_lab_91_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_91_1:
tmp440 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp441 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
ATS_FREE(arg0) ;
/* tmp442 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ;
/* tmp443 = ats_selsin_mac(tmp442, atslab_1) */ ;
tmp444 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_case_exhaustiveness (env0, env1, tmp440) ;
/* tmp445 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlst (env0, tmp440, env2) ;
/* tmp446 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr (tmp444) ;
/* tmp447 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (env0) ;
arg0 = tmp441 ;
goto __ats_lab_loop_89 ; // tail call
break ;
} while (0) ;
return /* (tmp439) */ ;
} /* end of [loop_89] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
ats_ptr_type closure_env_1 ;
ats_ptr_type closure_env_2 ;
} loop_89_closure_type ;

ats_void_type
loop_89_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
loop_89 (((loop_89_closure_type*)cloptr)->closure_env_0, ((loop_89_closure_type*)cloptr)->closure_env_1, ((loop_89_closure_type*)cloptr)->closure_env_2, arg0) ; return ;
} /* end of function */

ATSinline()
ats_void_type
loop_89_closure_init (loop_89_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
p_clo->closure_fun = (ats_fun_ptr_type)&loop_89_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
p_clo->closure_env_2 = env2 ;
return ;
} /* end of function */

ats_clo_ptr_type
loop_89_closure_make (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type env2) {
loop_89_closure_type *p_clo = ATS_MALLOC(sizeof(loop_89_closure_type)) ;
loop_89_closure_init (p_clo, env0, env1, env2) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 28619(line=1282, offs=3) -- 29164(line=1305, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_patcstlstlst_false (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
// ATSlocal_void (tmp438) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_patcstlstlst_false:
/* tmp438 = */ loop_89 (arg0, arg1, arg3, arg2) ;
return /* (tmp438) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_patcstlstlst_false] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 29268(line=1311, offs=3) -- 29461(line=1327, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp448) ;
ATSlocal (ats_ptr_type, tmp449) ;
ATSlocal (ats_ptr_type, tmp450) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop:
tmp449 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_prop (arg0, arg1) ;
tmp450 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp450)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp450, atslab_0, tmp449) ;
/* tmp448 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp450) ;
return /* (tmp448) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 29536(line=1331, offs=3) -- 29699(line=1335, offs=6)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp451) ;
ATSlocal (ats_ptr_type, tmp452) ;
ATSlocal (ats_ptr_type, tmp453) ;
// ATSlocal_void (tmp454) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst:
do {
/* branch: __ats_lab_92 */
__ats_lab_92_0:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_93_0 ; }
__ats_lab_92_1:
break ;

/* branch: __ats_lab_93 */
__ats_lab_93_0:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_93_1:
tmp452 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ;
tmp453 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
/* tmp454 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (arg0, tmp452) ;
arg0 = arg0 ;
arg1 = tmp453 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst ; // tail call
break ;
} while (0) ;
return /* (tmp451) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 29802(line=1340, offs=3) -- 29935(line=1343, offs=2)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst_vt (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp455) ;
// ATSlocal_void (tmp456) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst_vt:
/* tmp456 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst (arg0, ats_castfn_mac(ats_ptr_type, arg1)) ;
/* tmp455 = */ list_vt_free_01499_ats_ptr_type (arg1) ;
return /* (tmp455) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst_vt] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 30037(line=1349, offs=3) -- 30136(line=1353, offs=52)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp457) ;
ATSlocal (ats_ptr_type, tmp458) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt:
do {
/* branch: __ats_lab_94 */
__ats_lab_94_0:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_95_0 ; }
__ats_lab_94_1:
break ;

/* branch: __ats_lab_95 */
__ats_lab_95_0:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_95_1:
tmp458 = ats_caselptrlab_mac(anairiats_sum_17, arg1, atslab_0) ;
/* tmp457 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (arg0, tmp458) ;
break ;
} while (0) ;
return /* (tmp457) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 30220(line=1358, offs=3) -- 30338(line=1363, offs=53)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt_neg (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp459) ;
ATSlocal (ats_ptr_type, tmp460) ;
ATSlocal (ats_ptr_type, tmp461) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt_neg:
do {
/* branch: __ats_lab_96 */
__ats_lab_96_0:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_97_0 ; }
__ats_lab_96_1:
break ;

/* branch: __ats_lab_97 */
__ats_lab_97_0:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_97_1:
tmp460 = ats_caselptrlab_mac(anairiats_sum_17, arg1, atslab_0) ;
tmp461 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bneg (tmp460) ;
/* tmp459 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (arg0, tmp461) ;
break ;
} while (0) ;
return /* (tmp459) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_propopt_neg] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 30457(line=1371, offs=3) -- 30886(line=1392, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_bind (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp462) ;
// ATSlocal_void (tmp463) ;
ATSlocal (ats_ptr_type, tmp464) ;
ATSlocal (ats_ptr_type, tmp465) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_bind:
/* tmp463 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_insert (arg1, arg2) ;
tmp464 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_bind (arg0, arg1, arg2) ;
tmp465 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp465)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp465, atslab_0, tmp464) ;
/* tmp462 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp465) ;
return /* (tmp462) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_bind] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 30958(line=1396, offs=3) -- 31407(line=1418, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp466) ;
ATSlocal (ats_ptr_type, tmp467) ;
ATSlocal (ats_ptr_type, tmp468) ;
ATSlocal (ats_ptr_type, tmp469) ;
ATSlocal (ats_ptr_type, tmp470) ;
ATSlocal (ats_ptr_type, tmp471) ;
ATSlocal (ats_ptr_type, tmp472) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq:
tmp467 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ;
tmp468 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg2) ;
tmp469 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp467), atslab_s2exp_node) ;
tmp470 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp468), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_98 */
__ats_lab_98_0:
__ats_lab_98_1:
__ats_lab_98_2:
tmp471 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__h3ypo_eqeq (arg0, arg1, arg2) ;
tmp472 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp472)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp472, atslab_0, tmp471) ;
/* tmp466 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp472) ;
break ;
} while (0) ;
return /* (tmp466) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_eqeq] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 32623(line=1464, offs=15) -- 33000(line=1474, offs=18)
*/
ATSstaticdec()
ats_void_type
loop_98 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp490) ;
ATSlocal (anairiats_rec_2, tmp491) ;
ATSlocal (ats_ptr_type, tmp492) ;
// ATSlocal_void (tmp493) ;
ATSlocal (ats_ptr_type, tmp494) ;
// ATSlocal_void (tmp495) ;
ATSlocal (ats_ptr_type, tmp496) ;

__ats_lab_loop_98:
do {
/* branch: __ats_lab_103 */
__ats_lab_103_0:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_104_0 ; }
__ats_lab_103_1:
break ;

/* branch: __ats_lab_104 */
__ats_lab_104_0:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_104_1:
tmp491 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_0) ;
tmp492 = ats_caselptrlab_mac(anairiats_sum_15, arg1, atslab_1) ;
tmp494 = ats_select_mac(tmp491, atslab_s2qua_svs) ;
/* tmp493 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (tmp494) ;
tmp496 = ats_select_mac(tmp491, atslab_s2qua_sps) ;
/* tmp495 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst (arg0, tmp496) ;
arg0 = arg0 ;
arg1 = tmp492 ;
goto __ats_lab_loop_98 ; // tail call
break ;
} while (0) ;
return /* (tmp490) */ ;
} /* end of [loop_98] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 33825(line=1505, offs=13) -- 34248(line=1519, offs=10)
*/
ATSstaticdec()
ats_void_type
aux_99 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp507) ;
ATSlocal (ats_ptr_type, tmp508) ;
ATSlocal (ats_ptr_type, tmp509) ;
ATSlocal (ats_ptr_type, tmp510) ;
ATSlocal (ats_ptr_type, tmp511) ;
// ATSlocal_void (tmp512) ;

__ats_lab_aux_99:
do {
/* branch: __ats_lab_112 */
__ats_lab_112_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_113_0 ; }
__ats_lab_112_1:
break ;

/* branch: __ats_lab_113 */
__ats_lab_113_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_113_1:
tmp508 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp509 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
ATS_FREE(arg0) ;
tmp511 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf (tmp508) ;
tmp510 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intneq (env1, tmp511) ;
/* tmp512 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (env0, tmp510) ;
arg0 = tmp509 ;
goto __ats_lab_aux_99 ; // tail call
break ;
} while (0) ;
return /* (tmp507) */ ;
} /* end of [aux_99] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
ats_ptr_type closure_env_1 ;
} aux_99_closure_type ;

ats_void_type
aux_99_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
aux_99 (((aux_99_closure_type*)cloptr)->closure_env_0, ((aux_99_closure_type*)cloptr)->closure_env_1, arg0) ; return ;
} /* end of function */

ATSinline()
ats_void_type
aux_99_closure_init (aux_99_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) {
p_clo->closure_fun = (ats_fun_ptr_type)&aux_99_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
return ;
} /* end of function */

ats_clo_ptr_type
aux_99_closure_make (ats_ptr_type env0, ats_ptr_type env1) {
aux_99_closure_type *p_clo = ATS_MALLOC(sizeof(aux_99_closure_type)) ;
aux_99_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 35108(line=1551, offs=13) -- 35531(line=1565, offs=10)
*/
ATSstaticdec()
ats_void_type
aux_100 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp525) ;
ATSlocal (ats_char_type, tmp526) ;
ATSlocal (ats_ptr_type, tmp527) ;
ATSlocal (ats_ptr_type, tmp528) ;
ATSlocal (ats_ptr_type, tmp529) ;
// ATSlocal_void (tmp530) ;

__ats_lab_aux_100:
do {
/* branch: __ats_lab_123 */
__ats_lab_123_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_124_0 ; }
__ats_lab_123_1:
break ;

/* branch: __ats_lab_124 */
__ats_lab_124_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_124_1:
tmp526 = ats_caselptrlab_mac(anairiats_sum_23, arg0, atslab_0) ;
tmp527 = ats_caselptrlab_mac(anairiats_sum_23, arg0, atslab_1) ;
ATS_FREE(arg0) ;
tmp529 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char (tmp526) ;
tmp528 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_intneq (env1, tmp529) ;
/* tmp530 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (env0, tmp528) ;
arg0 = tmp527 ;
goto __ats_lab_aux_100 ; // tail call
break ;
} while (0) ;
return /* (tmp525) */ ;
} /* end of [aux_100] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
ats_ptr_type closure_env_1 ;
} aux_100_closure_type ;

ats_void_type
aux_100_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
aux_100 (((aux_100_closure_type*)cloptr)->closure_env_0, ((aux_100_closure_type*)cloptr)->closure_env_1, arg0) ; return ;
} /* end of function */

ATSinline()
ats_void_type
aux_100_closure_init (aux_100_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) {
p_clo->closure_fun = (ats_fun_ptr_type)&aux_100_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
return ;
} /* end of function */

ats_clo_ptr_type
aux_100_closure_make (ats_ptr_type env0, ats_ptr_type env1) {
aux_100_closure_type *p_clo = ATS_MALLOC(sizeof(aux_100_closure_type)) ;
aux_100_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 31502(line=1424, offs=3) -- 36230(line=1596, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp473) ;
ATSlocal (ats_ptr_type, tmp474) ;
ATSlocal (ats_ptr_type, tmp475) ;
ATSlocal (ats_ptr_type, tmp476) ;
ATSlocal (ats_ptr_type, tmp477) ;
ATSlocal (ats_ptr_type, tmp478) ;
ATSlocal (ats_ptr_type, tmp479) ;
ATSlocal (ats_ptr_type, tmp480) ;
ATSlocal (ats_ptr_type, tmp481) ;
ATSlocal (ats_bool_type, tmp482) ;
ATSlocal (ats_ptr_type, tmp483) ;
ATSlocal (anairiats_rec_1, tmp484) ;
ATSlocal (ats_ptr_type, tmp485) ;
ATSlocal (ats_ptr_type, tmp486) ;
ATSlocal (ats_ptr_type, tmp487) ;
ATSlocal (ats_ptr_type, tmp488) ;
ATSlocal (ats_ptr_type, tmp489) ;
// ATSlocal_void (tmp497) ;
// ATSlocal_void (tmp498) ;
ATSlocal (ats_ptr_type, tmp499) ;
ATSlocal (ats_ptr_type, tmp500) ;
ATSlocal (ats_ptr_type, tmp501) ;
ATSlocal (ats_ptr_type, tmp502) ;
ATSlocal (ats_ptr_type, tmp503) ;
ATSlocal (ats_ptr_type, tmp504) ;
ATSlocal (ats_ptr_type, tmp505) ;
ATSlocal (ats_ptr_type, tmp506) ;
ATSlocal (ats_ptr_type, tmp513) ;
ATSlocal (ats_bool_type, tmp514) ;
ATSlocal (ats_ptr_type, tmp515) ;
ATSlocal (ats_ptr_type, tmp516) ;
ATSlocal (ats_ptr_type, tmp517) ;
ATSlocal (ats_char_type, tmp518) ;
ATSlocal (ats_ptr_type, tmp519) ;
ATSlocal (ats_ptr_type, tmp520) ;
ATSlocal (ats_ptr_type, tmp521) ;
ATSlocal (ats_ptr_type, tmp522) ;
ATSlocal (ats_ptr_type, tmp523) ;
ATSlocal (ats_ptr_type, tmp524) ;
ATSlocal (ats_ptr_type, tmp531) ;
ATSlocal (ats_ptr_type, tmp532) ;
ATSlocal (ats_ptr_type, tmp533) ;
ATSlocal (ats_ptr_type, tmp534) ;
ATSlocal (ats_ptr_type, tmp535) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcst:
tmp474 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg2) ;
tmp475 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (arg0, tmp474) ;
tmp476 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp475) ;
tmp477 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (tmp476) ;
do {
/* branch: __ats_lab_99 */
__ats_lab_99_0:
if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_100_0 ; }
__ats_lab_99_1:
break ;

/* branch: __ats_lab_100 */
__ats_lab_100_0:
if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_105_0 ; }
__ats_lab_100_1:
tmp478 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_0) ;
tmp479 = ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_1) ;
tmp480 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp477), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_101 */
__ats_lab_101_0:
if (((ats_sum_ptr_type)tmp480)->tag != 10) { goto __ats_lab_102_0 ; }
__ats_lab_101_1:
tmp481 = ats_caselptrlab_mac(anairiats_sum_7, tmp480, atslab_0) ;
tmp482 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__neq_d2con_d2con (tmp478, tmp481) ;
if (tmp482) {
tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (ats_false_bool) ;
/* tmp473 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_prop (arg0, tmp483) ;
} else {
/* empty */
} /* end of [if] */
break ;

/* branch: __ats_lab_102 */
__ats_lab_102_0:
__ats_lab_102_1:
tmp484 = _2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__d2con_instantiate (arg0, tmp478) ;
tmp485 = ats_select_mac(tmp484, atslab_0) ;
tmp486 = ats_select_mac(tmp484, atslab_1) ;
tmp487 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp486), atslab_s2exp_node) ;
if (((ats_sum_ptr_type)tmp487)->tag != 19) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env.dats: 32149(line=1455, offs=13) -- 32216(line=1455, offs=80)") ; }
tmp488 = ats_caselptrlab_mac(anairiats_sum_19, tmp487, atslab_4) ;
tmp489 = ats_caselptrlab_mac(anairiats_sum_19, tmp487, atslab_5) ;
/* tmp497 = */ loop_98 (arg0, tmp485) ;
/* tmp498 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve (arg0, tmp489, tmp477) ;
tmp499 = list_copy_01322_ats_ptr_type (tmp479) ;
/* tmp473 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlst (arg0, tmp499, tmp488) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_105 */
__ats_lab_105_0:
if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_106_0 ; }
__ats_lab_105_1:
break ;

/* branch: __ats_lab_106 */
__ats_lab_106_0:
if (((ats_sum_ptr_type)arg1)->tag != 3) { goto __ats_lab_109_0 ; }
__ats_lab_106_1:
tmp500 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ;
tmp501 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1int_index_t0ype (tmp476) ;
do {
/* branch: __ats_lab_107 */
__ats_lab_107_0:
if (tmp501 != (ats_sum_ptr_type)0) { goto __ats_lab_108_0 ; }
__ats_lab_107_1:
break ;

/* branch: __ats_lab_108 */
__ats_lab_108_0:
// if (tmp501 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_108_1:
tmp502 = ats_caselptrlab_mac(anairiats_sum_17, tmp501, atslab_0) ;
ATS_FREE(tmp501) ;
tmp503 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_intinf (tmp500) ;
/* tmp473 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve (arg0, tmp502, tmp503) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_109 */
__ats_lab_109_0:
if (((ats_sum_ptr_type)arg1)->tag != 4) { goto __ats_lab_114_0 ; }
__ats_lab_109_1:
tmp504 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ;
tmp505 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_g1int_index_t0ype (tmp476) ;
do {
/* branch: __ats_lab_110 */
__ats_lab_110_0:
if (tmp505 != (ats_sum_ptr_type)0) { goto __ats_lab_111_0 ; }
__ats_lab_110_1:
break ;

/* branch: __ats_lab_111 */
__ats_lab_111_0:
// if (tmp505 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_111_1:
tmp506 = ats_caselptrlab_mac(anairiats_sum_17, tmp505, atslab_0) ;
ATS_FREE(tmp505) ;
tmp513 = _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinfset_listize (tmp504) ;
/* tmp473 = */ aux_99 (arg0, tmp506, tmp513) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_114 */
__ats_lab_114_0:
if (((ats_sum_ptr_type)arg1)->tag != 5) { goto __ats_lab_117_0 ; }
__ats_lab_114_1:
tmp514 = ats_caselptrlab_mac(anairiats_sum_21, arg1, atslab_0) ;
tmp515 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_bool_index_t0ype (tmp476) ;
do {
/* branch: __ats_lab_115 */
__ats_lab_115_0:
if (tmp515 != (ats_sum_ptr_type)0) { goto __ats_lab_116_0 ; }
__ats_lab_115_1:
break ;

/* branch: __ats_lab_116 */
__ats_lab_116_0:
// if (tmp515 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_116_1:
tmp516 = ats_caselptrlab_mac(anairiats_sum_17, tmp515, atslab_0) ;
ATS_FREE(tmp515) ;
tmp517 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2exp_bool (tmp514) ;
/* tmp473 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve (arg0, tmp516, tmp517) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_117 */
__ats_lab_117_0:
if (((ats_sum_ptr_type)arg1)->tag != 6) { goto __ats_lab_120_0 ; }
__ats_lab_117_1:
tmp518 = ats_caselptrlab_mac(anairiats_sum_22, arg1, atslab_0) ;
tmp519 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_char_index_t0ype (tmp476) ;
do {
/* branch: __ats_lab_118 */
__ats_lab_118_0:
if (tmp519 != (ats_sum_ptr_type)0) { goto __ats_lab_119_0 ; }
__ats_lab_118_1:
break ;

/* branch: __ats_lab_119 */
__ats_lab_119_0:
// if (tmp519 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_119_1:
tmp520 = ats_caselptrlab_mac(anairiats_sum_17, tmp519, atslab_0) ;
ATS_FREE(tmp519) ;
tmp521 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_int_char (tmp518) ;
/* tmp473 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__s2exp_hypequal_solve (arg0, tmp520, tmp521) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_120 */
__ats_lab_120_0:
if (((ats_sum_ptr_type)arg1)->tag != 7) { goto __ats_lab_125_0 ; }
__ats_lab_120_1:
tmp522 = ats_caselptrlab_mac(anairiats_sum_5, arg1, atslab_0) ;
tmp523 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__un_s2exp_char_index_t0ype (tmp476) ;
do {
/* branch: __ats_lab_121 */
__ats_lab_121_0:
if (tmp523 != (ats_sum_ptr_type)0) { goto __ats_lab_122_0 ; }
__ats_lab_121_1:
break ;

/* branch: __ats_lab_122 */
__ats_lab_122_0:
// if (tmp523 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_122_1:
tmp524 = ats_caselptrlab_mac(anairiats_sum_17, tmp523, atslab_0) ;
ATS_FREE(tmp523) ;
tmp531 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__charset_listize (tmp522) ;
/* tmp473 = */ aux_100 (arg0, tmp524, tmp531) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_125 */
__ats_lab_125_0:
if (((ats_sum_ptr_type)arg1)->tag != 8) { goto __ats_lab_126_0 ; }
__ats_lab_125_1:
break ;

/* branch: __ats_lab_126 */
__ats_lab_126_0:
if (((ats_sum_ptr_type)arg1)->tag != 9) { goto __ats_lab_127_0 ; }
__ats_lab_126_1:
break ;

/* branch: __ats_lab_127 */
__ats_lab_127_0:
// if (((ats_sum_ptr_type)arg1)->tag != 10) { ats_deadcode_failure_handle () ; }
__ats_lab_127_1:
tmp532 = ats_caselptrlab_mac(anairiats_sum_18, arg1, atslab_1) ;
tmp533 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp477), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_128 */
__ats_lab_128_0:
if (((ats_sum_ptr_type)tmp533)->tag != 25) { goto __ats_lab_129_0 ; }
__ats_lab_128_1:
tmp534 = ats_caselptrlab_mac(anairiats_sum_24, tmp533, atslab_2) ;
tmp535 = list_copy_01322_ats_ptr_type (tmp532) ;
/* tmp473 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_labpatcstlst (arg0, tmp535, tmp534) ;
break ;

/* branch: __ats_lab_129 */
__ats_lab_129_0:
__ats_lab_129_1:
break ;
} while (0) ;
break ;
} while (0) ;
return /* (tmp473) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcst] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 36368(line=1605, offs=1) -- 37021(line=1633, offs=4)
*/
ATSstaticdec()
ats_int_type
loop_102 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp537) ;
ATSlocal (ats_ptr_type, tmp538) ;
ATSlocal (ats_ptr_type, tmp539) ;
ATSlocal (ats_int_type, tmp540) ;
ATSlocal (ats_ptr_type, tmp541) ;
ATSlocal (ats_ptr_type, tmp542) ;
ATSlocal (ats_ptr_type, tmp543) ;
ATSlocal (ats_ptr_type, tmp544) ;
// ATSlocal_void (tmp545) ;
ATSlocal (ats_int_type, tmp546) ;

__ats_lab_loop_102:
do {
/* branch: __ats_lab_130 */
__ats_lab_130_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_133_0 ; }
__ats_lab_130_1:
do {
/* branch: __ats_lab_131 */
__ats_lab_131_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_132_0 ; }
__ats_lab_131_1:
tmp538 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
tmp539 = (ats_sum_ptr_type)0 ;
tmp540 = atspre_sub_int_int (arg2, 1) ;
arg0 = tmp539 ;
arg1 = tmp538 ;
arg2 = tmp540 ;
goto __ats_lab_loop_102 ; // tail call
break ;

/* branch: __ats_lab_132 */
__ats_lab_132_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_132_1:
tmp537 = arg2 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_133 */
__ats_lab_133_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_133_1:
tmp541 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp542 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
ATS_FREE(arg0) ;
do {
/* branch: __ats_lab_134 */
__ats_lab_134_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_135_0 ; }
__ats_lab_134_1:
tmp543 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ;
tmp544 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
/* tmp545 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcst (env0, tmp541, tmp543) ;
arg0 = tmp542 ;
arg1 = tmp544 ;
arg2 = arg2 ;
goto __ats_lab_loop_102 ; // tail call
break ;

/* branch: __ats_lab_135 */
__ats_lab_135_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_135_1:
tmp546 = atspre_add_int_int (arg2, 1) ;
arg0 = tmp542 ;
arg1 = arg1 ;
arg2 = tmp546 ;
goto __ats_lab_loop_102 ; // tail call
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp537) ;
} /* end of [loop_102] */

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

ats_int_type
loop_102_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) {
return loop_102 (((loop_102_closure_type*)cloptr)->closure_env_0, arg0, arg1, arg2) ;
} /* end of function */

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

ats_clo_ptr_type
loop_102_closure_make (ats_ptr_type env0) {
loop_102_closure_type *p_clo = ATS_MALLOC(sizeof(loop_102_closure_type)) ;
loop_102_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 36330(line=1602, offs=3) -- 37558(line=1660, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp536) ;
ATSlocal (ats_int_type, tmp547) ;
ATSlocal (ats_bool_type, tmp548) ;
// ATSlocal_void (tmp549) ;
// ATSlocal_void (tmp550) ;
// ATSlocal_void (tmp551) ;
// ATSlocal_void (tmp552) ;
ATSlocal (ats_bool_type, tmp553) ;
// ATSlocal_void (tmp554) ;
// ATSlocal_void (tmp555) ;
ATSlocal (ats_bool_type, tmp556) ;
// ATSlocal_void (tmp557) ;
ATSlocal (ats_ptr_type, tmp558) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlst:
tmp547 = loop_102 (arg0, arg1, arg2, 0) ;
tmp548 = atspre_neq_int_int (tmp547, 0) ;
if (tmp548) {
/* tmp549 = */ prerr_error3_loc_02170_ (arg0) ;
/* tmp550 = */ patsopt_prerrf_ifdebug (ATSstrcst(": [%s]: %s"), ATSstrcst("/tmp/ATS-Postiats/src/pats_trans3_env.dats"), ATSstrcst("trans3_env_hypadd_patcstlst")) ;
/* tmp551 = */ atspre_print_string (ATSstrcst(": constructor arity mismatch")) ;
tmp553 = atspre_lt_int_int (tmp547, 0) ;
if (tmp553) {
/* tmp554 = */ atspre_print_string (ATSstrcst(": more arguments are expected")) ;
/* tmp552 = */ atspre_print_newline () ;
} else {
/* empty */
} /* end of [if] */
tmp556 = atspre_gt_int_int (tmp547, 0) ;
if (tmp556) {
/* tmp557 = */ atspre_print_string (ATSstrcst(": fewer arguments are expected")) ;
/* tmp555 = */ atspre_print_newline () ;
} else {
/* empty */
} /* end of [if] */
tmp558 = ATS_MALLOC(sizeof(anairiats_sum_10)) ;
((ats_sum_ptr_type)tmp558)->tag = 87 ;
ats_selptrset_mac(anairiats_sum_10, tmp558, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_10, tmp558, atslab_1, tmp547) ;
/* tmp536 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__the_trans3errlst_add (tmp558) ;
} else {
/* empty */
} /* end of [if] */
return /* (tmp536) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlst] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 37698(line=1668, offs=4) -- 37869(line=1675, offs=4)
*/
ATSstaticdec()
ats_int_type
cmp_104 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp560) ;
ATSlocal (ats_ptr_type, tmp561) ;
ATSlocal (ats_ptr_type, tmp562) ;

__ats_lab_cmp_104:

tmp561 = ats_caselptrlab_mac(anairiats_sum_25, arg0, atslab_0) ;

tmp562 = ats_caselptrlab_mac(anairiats_sum_25, arg1, atslab_0) ;
tmp560 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label (tmp561, tmp562) ;
return (tmp560) ;
} /* end of [cmp_104] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 69930(line=2529, offs=31) -- 70720(line=2552, offs=28)
*/
ATSstaticdec()
ats_ptr_type
aux2_01343_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp578) ;
ATSlocal (ats_ptr_type, tmp579) ;
ATSlocal (ats_ptr_type, tmp580) ;
ATSlocal (ats_ptr_type, tmp581) ;
ATSlocal (ats_ptr_type, tmp582) ;
ATSlocal (ats_bool_type, tmp583) ;
ATSlocal (ats_int_type, tmp584) ;
ATSlocal (ats_ptr_type, tmp585) ;
ATSlocal (ats_ptr_type, tmp586) ;
ATSlocal (ats_ptr_type, tmp587) ;
ATSlocal (ats_ptr_type, tmp588) ;

__ats_lab_aux2_01343_ats_ptr_type:
do {
/* branch: __ats_lab_139 */
__ats_lab_139_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_142_0 ; }
__ats_lab_139_1:
tmp579 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp580 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
do {
/* branch: __ats_lab_140 */
__ats_lab_140_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_141_0 ; }
__ats_lab_140_1:
tmp581 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ;
tmp582 = &ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
tmp584 = ((ats_int_type(*)(ats_ptr_type, ats_ptr_type, ats_ptr_type))arg2) (tmp579, tmp581, arg3) ;
tmp583 = atspre_lte_int_int (tmp584, 0) ;
if (tmp583) {
tmp585 = ats_ptrget_mac(ats_ptr_type, tmp580) ;
ATS_FREE(arg0) ;
tmp586 = aux2_01343_ats_ptr_type (tmp585, arg1, arg2, arg3) ;
tmp578 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp578, atslab_0, tmp579) ;
ats_selptrset_mac(anairiats_sum_6, tmp578, atslab_1, tmp586) ;
} else {
tmp587 = ats_ptrget_mac(ats_ptr_type, tmp582) ;
ATS_FREE(arg1) ;
tmp588 = aux2_01343_ats_ptr_type (arg0, tmp587, arg2, arg3) ;
tmp578 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp578, atslab_0, tmp581) ;
ats_selptrset_mac(anairiats_sum_6, tmp578, atslab_1, tmp588) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_141 */
__ats_lab_141_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_141_1:
tmp578 = arg0 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_142 */
__ats_lab_142_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_142_1:
tmp578 = arg1 ;
break ;
} while (0) ;
return (tmp578) ;
} /* end of [aux2_01343_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 70807(line=2556, offs=47) -- 71106(line=2563, offs=16)
*/
ATSstaticdec()
ats_ptr_type
aux3_01354_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp572) ;
ATSlocal (ats_ptr_type, tmp573) ;
ATSlocal (ats_ptr_type, tmp574) ;
ATSlocal (ats_ptr_type, tmp575) ;
ATSlocal (ats_ptr_type, tmp576) ;
ATSlocal (ats_ptr_type, tmp577) ;
ATSlocal (ats_ptr_type, tmp589) ;

__ats_lab_aux3_01354_ats_ptr_type:
do {
/* branch: __ats_lab_138 */
__ats_lab_138_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_143_0 ; }
tmp573 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
if (tmp573 == (ats_sum_ptr_type)0) { goto __ats_lab_143_0 ; }
__ats_lab_138_1:
tmp574 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp575 = ats_caselptrlab_mac(anairiats_sum_6, tmp573, atslab_0) ;
tmp576 = ats_caselptrlab_mac(anairiats_sum_6, tmp573, atslab_1) ;
ATS_FREE(tmp573) ;
ATS_FREE(arg0) ;
tmp577 = aux2_01343_ats_ptr_type (tmp574, tmp575, arg1, arg2) ;
tmp589 = aux3_01354_ats_ptr_type (tmp576, arg1, arg2) ;
tmp572 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp572, atslab_0, tmp577) ;
ats_selptrset_mac(anairiats_sum_6, tmp572, atslab_1, tmp589) ;
break ;

/* branch: __ats_lab_143 */
__ats_lab_143_0:
__ats_lab_143_1:
tmp572 = arg0 ;
break ;
} while (0) ;
return (tmp572) ;
} /* end of [aux3_01354_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 71193(line=2567, offs=47) -- 71767(line=2587, offs=33)
*/
ATSstaticdec()
ats_ptr_type
aux4_01361_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp567) ;
ATSlocal (ats_ptr_type, tmp568) ;
ATSlocal (ats_ptr_type, tmp569) ;
ATSlocal (ats_ptr_type, tmp570) ;
ATSlocal (ats_ptr_type, tmp571) ;
ATSlocal (ats_ptr_type, tmp590) ;

__ats_lab_aux4_01361_ats_ptr_type:
do {
/* branch: __ats_lab_136 */
__ats_lab_136_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_145_0 ; }
__ats_lab_136_1:
tmp568 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp569 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp570 = ats_ptrget_mac(ats_ptr_type, tmp569) ;
do {
/* branch: __ats_lab_137 */
__ats_lab_137_0:
if (tmp570 == (ats_sum_ptr_type)0) { goto __ats_lab_144_0 ; }
__ats_lab_137_1:
tmp571 = aux3_01354_ats_ptr_type (arg0, arg1, arg2) ;
arg0 = tmp571 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab_aux4_01361_ats_ptr_type ; // tail call
break ;

/* branch: __ats_lab_144 */
__ats_lab_144_0:
// if (tmp570 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_144_1:
tmp590 = ats_ptrget_mac(ats_ptr_type, tmp568) ;
ATS_FREE(arg0) ;
tmp567 = tmp590 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_145 */
__ats_lab_145_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_145_1:
tmp567 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp567) ;
} /* end of [aux4_01361_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 69142(line=2506, offs=27) -- 69837(line=2524, offs=33)
*/
ATSstaticdec()
ats_ptr_type
aux1_01334_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp592) ;
ATSlocal (ats_ptr_type, tmp593) ;
ATSlocal (ats_ptr_type, tmp594) ;
ATSlocal (ats_ptr_type, tmp595) ;
ATSlocal (ats_ptr_type, tmp596) ;
ATSlocal (ats_ptr_type, tmp597) ;
ATSlocal (ats_ptr_type, tmp598) ;
ATSlocal (ats_bool_type, tmp599) ;
ATSlocal (ats_int_type, tmp600) ;
ATSlocal (ats_ptr_type, tmp601) ;
ATSlocal (ats_ptr_type, tmp602) ;
ATSlocal (ats_ptr_type, tmp603) ;
ATSlocal (ats_ptr_type, tmp604) ;
ATSlocal (ats_ptr_type, tmp605) ;
ATSlocal (ats_ptr_type, tmp606) ;

__ats_lab_aux1_01334_ats_ptr_type:
do {
/* branch: __ats_lab_146 */
__ats_lab_146_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_149_0 ; }
__ats_lab_146_1:
tmp593 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp594 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
tmp595 = ats_ptrget_mac(ats_ptr_type, tmp594) ;
do {
/* branch: __ats_lab_147 */
__ats_lab_147_0:
if (tmp595 == (ats_sum_ptr_type)0) { goto __ats_lab_148_0 ; }
__ats_lab_147_1:
tmp596 = ats_caselptrlab_mac(anairiats_sum_6, tmp595, atslab_0) ;
tmp597 = ats_caselptrlab_mac(anairiats_sum_6, tmp595, atslab_1) ;
ATS_FREE(tmp595) ;
ATS_FREE(arg0) ;
tmp600 = ((ats_int_type(*)(ats_ptr_type, ats_ptr_type, ats_ptr_type))arg1) (tmp593, tmp596, arg2) ;
tmp599 = atspre_lte_int_int (tmp600, 0) ;
if (tmp599) {
tmp602 = (ats_sum_ptr_type)0 ;
tmp601 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp601, atslab_0, tmp596) ;
ats_selptrset_mac(anairiats_sum_6, tmp601, atslab_1, tmp602) ;
tmp598 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp598, atslab_0, tmp593) ;
ats_selptrset_mac(anairiats_sum_6, tmp598, atslab_1, tmp601) ;
} else {
tmp604 = (ats_sum_ptr_type)0 ;
tmp603 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp603, atslab_0, tmp593) ;
ats_selptrset_mac(anairiats_sum_6, tmp603, atslab_1, tmp604) ;
tmp598 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp598, atslab_0, tmp596) ;
ats_selptrset_mac(anairiats_sum_6, tmp598, atslab_1, tmp603) ;
} /* end of [if] */
tmp605 = aux1_01334_ats_ptr_type (tmp597, arg1, arg2) ;
tmp592 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp592, atslab_0, tmp598) ;
ats_selptrset_mac(anairiats_sum_6, tmp592, atslab_1, tmp605) ;
break ;

/* branch: __ats_lab_148 */
__ats_lab_148_0:
// if (tmp595 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_148_1:
tmp606 = (ats_sum_ptr_type)0 ;
tmp592 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp592, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_6, tmp592, atslab_1, tmp606) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_149 */
__ats_lab_149_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_149_1:
tmp592 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp592) ;
} /* end of [aux1_01334_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list.dats: 71846(line=2594, offs=3) -- 72013(line=2603, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_mergesort_01452_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp565) ;
ATSlocal (ats_ptr_type, tmp566) ;
ATSlocal (ats_ptr_type, tmp591) ;

__ats_lab_list_mergesort_01452_ats_ptr_type:
tmp566 = list_copy_01322_ats_ptr_type (arg0) ;
tmp591 = aux1_01334_ats_ptr_type (tmp566, arg1, arg2) ;
tmp565 = aux4_01361_ats_ptr_type (tmp591, arg1, arg2) ;
return (tmp565) ;
} /* end of [list_mergesort_01452_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 37958(line=1679, offs=5) -- 38690(line=1705, offs=22)
*/
ATSstaticdec()
ats_void_type
aux_110 (ats_ptr_type env0, ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp607) ;
ATSlocal (ats_ptr_type, tmp608) ;
ATSlocal (ats_ptr_type, tmp609) ;
ATSlocal (ats_ptr_type, tmp610) ;
ATSlocal (ats_ptr_type, tmp611) ;
ATSlocal (ats_ptr_type, tmp612) ;
ATSlocal (ats_ptr_type, tmp613) ;
ATSlocal (ats_ptr_type, tmp614) ;
ATSlocal (ats_ptr_type, tmp615) ;
ATSlocal (ats_int_type, tmp616) ;
ATSlocal (ats_bool_type, tmp617) ;
ATSlocal (ats_bool_type, tmp618) ;
// ATSlocal_void (tmp619) ;

__ats_lab_aux_110:
do {
/* branch: __ats_lab_150 */
__ats_lab_150_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_153_0 ; }
__ats_lab_150_1:
tmp608 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp609 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
do {
/* branch: __ats_lab_151 */
__ats_lab_151_0:
if (arg1 == (ats_sum_ptr_type)0) { goto __ats_lab_152_0 ; }
__ats_lab_151_1:
tmp610 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ;
tmp611 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;

tmp612 = ats_caselptrlab_mac(anairiats_sum_6, tmp608, atslab_0) ;
tmp613 = ats_caselptrlab_mac(anairiats_sum_6, tmp608, atslab_1) ;

tmp614 = ats_caselptrlab_mac(anairiats_sum_25, tmp610, atslab_0) ;
tmp615 = ats_caselptrlab_mac(anairiats_sum_25, tmp610, atslab_2) ;
tmp616 = _2tmp_2ATS_2dPostiats_2src_2pats_label_2esats__compare_label_label (tmp612, tmp614) ;
tmp617 = atspre_ilt (tmp616, 0) ;
if (tmp617) {
arg0 = tmp609 ;
arg1 = arg1 ;
goto __ats_lab_aux_110 ; // tail call
} else {
tmp618 = atspre_igt (tmp616, 0) ;
if (tmp618) {
arg0 = arg0 ;
arg1 = tmp611 ;
goto __ats_lab_aux_110 ; // tail call
} else {
/* tmp619 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcst (env0, tmp613, tmp615) ;
arg0 = tmp609 ;
arg1 = tmp611 ;
goto __ats_lab_aux_110 ; // tail call
} /* end of [if] */
} /* end of [if] */
break ;

/* branch: __ats_lab_152 */
__ats_lab_152_0:
// if (arg1 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_152_1:
break ;
} while (0) ;
break ;

/* branch: __ats_lab_153 */
__ats_lab_153_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_153_1:
break ;
} while (0) ;
return /* (tmp607) */ ;
} /* end of [aux_110] */

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

ats_void_type
aux_110_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_ptr_type arg1) {
aux_110 (((aux_110_closure_type*)cloptr)->closure_env_0, arg0, arg1) ; return ;
} /* end of function */

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

ats_clo_ptr_type
aux_110_closure_make (ats_ptr_type env0) {
aux_110_closure_type *p_clo = ATS_MALLOC(sizeof(aux_110_closure_type)) ;
aux_110_closure_init (p_clo, env0) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 37664(line=1666, offs=3) -- 38946(line=1719, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_labpatcstlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp559) ;
ATSlocal (ats_ptr_type, tmp563) ;
ATSlocal (ats_ptr_type, tmp564) ;
// ATSlocal_void (tmp620) ;
// ATSlocal_void (tmp621) ;
// ATSlocal_void (tmp622) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_labpatcstlst:
/* ats_ptr_type tmp563 ; */
tmp563 = atspre_null_ptr ;
tmp564 = list_mergesort_01452_ats_ptr_type (arg2, &cmp_104, tmp563) ;
/* tmp620 = */ aux_110 (arg0, ats_castfn_mac(ats_ptr_type, arg1), ats_castfn_mac(ats_ptr_type, tmp564)) ;
/* tmp621 = */ list_vt_free_01499_ats_ptr_type (arg1) ;
/* tmp622 = */ list_vt_free_01499_ats_ptr_type (tmp564) ;
return /* (tmp559) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_labpatcstlst] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 39023(line=1726, offs=1) -- 39119(line=1730, offs=2)
*/
ATSstaticdec()
ats_void_type
trans3_env_hypadd_disj_111 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp623) ;
ATSlocal (ats_ptr_type, tmp624) ;

__ats_lab_trans3_env_hypadd_disj_111:
tmp624 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp624)->tag = 5 ;
ats_selptrset_mac(anairiats_sum_5, tmp624, atslab_0, arg0) ;
/* tmp623 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp624) ;
return /* (tmp623) */ ;
} /* end of [trans3_env_hypadd_disj_111] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 39315(line=1741, offs=1) -- 39881(line=1763, offs=2)
*/
ATSstaticdec()
ats_ptr_type
aux_113 (ats_ptr_type env0, ats_ptr_type env1, ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp626) ;
ATSlocal (ats_ptr_type, tmp627) ;
ATSlocal (ats_ptr_type, tmp628) ;
// ATSlocal_void (tmp629) ;
// ATSlocal_void (tmp630) ;
// ATSlocal_void (tmp631) ;
ATSlocal (ats_ptr_type, tmp632) ;
ATSlocal (ats_ptr_type, tmp633) ;

__ats_lab_aux_113:
do {
/* branch: __ats_lab_154 */
__ats_lab_154_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_155_0 ; }
__ats_lab_154_1:
tmp626 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_155 */
__ats_lab_155_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_155_1:
tmp627 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp628 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_1) ;
ATS_FREE(arg0) ;
/* tmp629 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () ;
/* tmp630 = ats_selsin_mac(tmp629, atslab_1) */ ;
/* tmp631 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlst (env0, tmp627, env1) ;
tmp632 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop () ;
tmp633 = aux_113 (env0, env1, tmp628) ;
tmp626 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp626, atslab_0, ats_castfn_mac(ats_ptr_type, tmp632)) ;
ats_selptrset_mac(anairiats_sum_6, tmp626, atslab_1, tmp633) ;
break ;
} while (0) ;
return (tmp626) ;
} /* end of [aux_113] */

typedef struct {
ats_fun_ptr_type closure_fun ;
ats_ptr_type closure_env_0 ;
ats_ptr_type closure_env_1 ;
} aux_113_closure_type ;

ats_ptr_type
aux_113_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0) {
return aux_113 (((aux_113_closure_type*)cloptr)->closure_env_0, ((aux_113_closure_type*)cloptr)->closure_env_1, arg0) ;
} /* end of function */

ATSinline()
ats_void_type
aux_113_closure_init (aux_113_closure_type *p_clo, ats_ptr_type env0, ats_ptr_type env1) {
p_clo->closure_fun = (ats_fun_ptr_type)&aux_113_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
return ;
} /* end of function */

ats_clo_ptr_type
aux_113_closure_make (ats_ptr_type env0, ats_ptr_type env1) {
aux_113_closure_type *p_clo = ATS_MALLOC(sizeof(aux_113_closure_type)) ;
aux_113_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 39276(line=1738, offs=3) -- 40114(line=1775, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlstlst (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp625) ;
ATSlocal (ats_ptr_type, tmp634) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlstlst:
tmp634 = aux_113 (arg0, arg2, arg1) ;
/* tmp625 = */ trans3_env_hypadd_disj_111 (tmp634) ;
return /* (tmp625) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_patcstlstlst] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 40241(line=1783, offs=3) -- 40408(line=1797, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_solver_assert (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp635) ;
ATSlocal (ats_ptr_type, tmp636) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_solver_assert:
tmp636 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp636)->tag = 6 ;
ats_selptrset_mac(anairiats_sum_5, tmp636, atslab_0, arg1) ;
/* tmp635 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp636) ;
return /* (tmp635) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_solver_assert] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 40505(line=1803, offs=3) -- 40705(line=1817, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_solver_verify (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp637) ;
ATSlocal (ats_ptr_type, tmp638) ;
ATSlocal (ats_ptr_type, tmp639) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_solver_verify:
tmp638 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_solverify (arg0, arg1) ;
tmp639 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp639)->tag = 3 ;
ats_selptrset_mac(anairiats_sum_5, tmp639, atslab_0, tmp638) ;
/* tmp637 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_add (tmp639) ;
return /* (tmp637) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_solver_verify] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 40858(line=1830, offs=3) -- 41137(line=1839, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp640) ;
ATSlocal (ats_ptr_type, tmp641) ;
// ATSlocal_void (tmp642) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop:
tmp641 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_pop () ;
/* tmp642 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_pop () ;
tmp640 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_pop () ;
return (tmp640) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 41201(line=1843, offs=3) -- 41350(line=1848, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp643) ;
ATSlocal (ats_ptr_type, tmp644) ;
ATSlocal (ats_ptr_type, tmp645) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add:
tmp644 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop () ;
tmp645 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_itmlst (arg0, arg1, ats_castfn_mac(ats_ptr_type, tmp644)) ;
/* tmp643 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_cnstr (tmp645) ;
return /* (tmp643) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 41427(line=1852, offs=3) -- 41487(line=1853, offs=48)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp646) ;
ATSlocal (ats_ptr_type, tmp647) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main:
tmp647 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKmain_0) ;
/* tmp646 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add (arg0, tmp647) ;
return /* (tmp646) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_pop_and_add_main] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 41555(line=1857, offs=17) -- 41817(line=1870, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push () {
/* local vardec */
// ATSlocal_void (tmp648) ;
// ATSlocal_void (tmp649) ;
// ATSlocal_void (tmp650) ;
// ATSlocal_void (tmp651) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push:
/* tmp649 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_push () ;
/* tmp650 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_push () ;
/* tmp651 = ats_selsin_mac(tmp650, atslab_1) */ ;
/* tmp648 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_push () ;
return /* (tmp648) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_push] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 41924(line=1878, offs=3) -- 42668(line=1920, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_absuni_and_add (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp652) ;
ATSlocal (ats_ptr_type, tmp653) ;
ATSlocal (anairiats_rec_3, tmp654) ;
ATSlocal (ats_ptr_type, tmp655) ;
ATSlocal (ats_ptr_type, tmp656) ;
// ATSlocal_void (tmp657) ;
// ATSlocal_void (tmp658) ;
// ATSlocal_void (tmp659) ;
ATSlocal (ats_ptr_type, tmp660) ;
// ATSlocal_void (tmp661) ;
// ATSlocal_void (tmp662) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_absuni_and_add:
tmp653 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ;
tmp654 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_absuni (tmp653) ;
tmp655 = ats_select_mac(tmp654, atslab_1) ;
tmp656 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_get () ;
/* tmp657 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset (ats_castfn_mac(ats_ptr_type, tmp655), tmp656) ;
/* tmp658 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (ats_castfn_mac(ats_ptr_type, tmp655)) ;
/* tmp659 = */ list_vt_free_01499_ats_ptr_type (tmp655) ;
tmp660 = ats_select_mac(tmp654, atslab_2) ;
/* tmp661 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst (arg0, ats_castfn_mac(ats_ptr_type, tmp660)) ;
/* tmp662 = */ list_vt_free_01499_ats_ptr_type (tmp660) ;
tmp652 = ats_select_mac(tmp654, atslab_0) ;
return (tmp652) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_absuni_and_add] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 42757(line=1926, offs=3) -- 43418(line=1964, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp663) ;
ATSlocal (ats_ptr_type, tmp664) ;
ATSlocal (anairiats_rec_3, tmp665) ;
ATSlocal (ats_ptr_type, tmp666) ;
ATSlocal (ats_ptr_type, tmp667) ;
// ATSlocal_void (tmp668) ;
// ATSlocal_void (tmp669) ;
// ATSlocal_void (tmp670) ;
// ATSlocal_void (tmp671) ;
ATSlocal (ats_ptr_type, tmp672) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add:
tmp664 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ;
tmp665 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_opnexi (tmp664) ;
tmp666 = ats_select_mac(tmp665, atslab_1) ;
tmp667 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_get () ;
/* tmp668 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset (ats_castfn_mac(ats_ptr_type, tmp666), tmp667) ;
/* tmp669 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (ats_castfn_mac(ats_ptr_type, tmp666)) ;
/* tmp670 = */ list_vt_free_01499_ats_ptr_type (tmp666) ;
tmp672 = ats_select_mac(tmp665, atslab_2) ;
/* tmp671 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst_vt (arg0, tmp672) ;
tmp663 = ats_select_mac(tmp665, atslab_0) ;
return (tmp663) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 43508(line=1970, offs=3) -- 44325(line=2004, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opn1exi_and_add (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp673) ;
ATSlocal (ats_ptr_type, tmp674) ;
ATSlocal (ats_ptr_type, tmp675) ;
ATSlocal (ats_ptr_type, tmp676) ;
ATSlocal (ats_ptr_type, tmp677) ;
ATSlocal (ats_ptr_type, tmp678) ;
ATSlocal (ats_ptr_type, tmp679) ;
ATSlocal (ats_ptr_type, tmp680) ;
ATSlocal (ats_ptr_type, tmp681) ;
ATSlocal (ats_ptr_type, tmp682) ;
// ATSlocal_void (tmp683) ;
ATSlocal (ats_ptr_type, tmp684) ;
// ATSlocal_void (tmp685) ;
// ATSlocal_void (tmp686) ;
// ATSlocal_void (tmp687) ;
// ATSlocal_void (tmp688) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opn1exi_and_add:
tmp674 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2hnf2exp (arg1) ;
tmp675 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp674), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_156 */
__ats_lab_156_0:
if (((ats_sum_ptr_type)tmp675)->tag != 27) { goto __ats_lab_157_0 ; }
__ats_lab_156_1:
tmp676 = ats_caselptrlab_mac(anairiats_sum_11, tmp675, atslab_0) ;
tmp677 = ats_caselptrlab_mac(anairiats_sum_11, tmp675, atslab_1) ;
tmp678 = ats_caselptrlab_mac(anairiats_sum_11, tmp675, atslab_2) ;
/* ats_ptr_type tmp679 ; */
tmp679 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_make_nil () ;
tmp680 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_extend_svarlst ((&tmp679), tmp676) ;
tmp681 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2explst_subst_vt (tmp679, tmp677) ;
tmp682 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_subst (tmp679, tmp678) ;
/* tmp683 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__stasub_free (tmp679) ;
tmp684 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s2Varset_env_get () ;
/* tmp685 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varlst_set_sVarset (ats_castfn_mac(ats_ptr_type, tmp680), tmp684) ;
/* tmp686 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_svarlst (ats_castfn_mac(ats_ptr_type, tmp680)) ;
/* tmp687 = */ list_vt_free_01499_ats_ptr_type (tmp680) ;
/* tmp688 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_hypadd_proplst_vt (arg0, tmp681) ;
tmp673 = tmp682 ;
break ;

/* branch: __ats_lab_157 */
__ats_lab_157_0:
__ats_lab_157_1:
tmp673 = tmp674 ;
break ;
} while (0) ;
return (tmp673) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opn1exi_and_add] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 44443(line=2013, offs=5) -- 44685(line=2028, offs=2)
*/
ATSstaticdec()
ats_ptr_type
auxres_123 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp689) ;
ATSlocal (ats_ptr_type, tmp690) ;
ATSlocal (ats_ptr_type, tmp691) ;
ATSlocal (ats_ptr_type, tmp692) ;

__ats_lab_auxres_123:
tmp690 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, arg0), atslab_s2exp_node) ;
do {
/* branch: __ats_lab_158 */
__ats_lab_158_0:
if (((ats_sum_ptr_type)tmp690)->tag != 27) { goto __ats_lab_159_0 ; }
__ats_lab_158_1:
tmp691 = ats_caselptrlab_mac(anairiats_sum_11, tmp690, atslab_2) ;
arg0 = tmp691 ;
goto __ats_lab_auxres_123 ; // tail call
break ;

/* branch: __ats_lab_159 */
__ats_lab_159_0:
if (((ats_sum_ptr_type)tmp690)->tag != 31) { goto __ats_lab_160_0 ; }
__ats_lab_159_1:
tmp692 = ats_caselptrlab_mac(anairiats_sum_7, tmp690, atslab_1) ;
tmp689 = ATS_MALLOC(sizeof(anairiats_sum_17)) ;
ats_selptrset_mac(anairiats_sum_17, tmp689, atslab_0, tmp692) ;
break ;

/* branch: __ats_lab_160 */
__ats_lab_160_0:
__ats_lab_160_1:
tmp689 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp689) ;
} /* end of [auxres_123] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 44713(line=2030, offs=5) -- 45574(line=2064, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxarg_124 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp693) ;
ATSlocal (ats_ptr_type, tmp694) ;
ATSlocal (ats_ptr_type, tmp695) ;
ATSlocal (ats_ptr_type, tmp696) ;
ATSlocal (ats_ptr_type, tmp697) ;
ATSlocal (ats_int_type, tmp698) ;
ATSlocal (ats_ptr_type, tmp699) ;
ATSlocal (ats_int_type, tmp700) ;
ATSlocal (anairiats_rec_1, tmp701) ;
ATSlocal (ats_ptr_type, tmp702) ;
ATSlocal (ats_ptr_type, tmp703) ;
// ATSlocal_void (tmp704) ;
ATSlocal (ats_ptr_type, tmp705) ;
ATSlocal (ats_ptr_type, tmp706) ;
ATSlocal (ats_ptr_type, tmp707) ;
ATSlocal (ats_ptr_type, tmp708) ;
ATSlocal (ats_ptr_type, tmp709) ;
ATSlocal (ats_ptr_type, tmp710) ;

__ats_lab_auxarg_124:
do {
/* branch: __ats_lab_161 */
__ats_lab_161_0:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_162_0 ; }
__ats_lab_161_1:
tmp693 = (ats_sum_ptr_type)0 ;
break ;

/* branch: __ats_lab_162 */
__ats_lab_162_0:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_162_1:
tmp694 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_0) ;
tmp695 = ats_caselptrlab_mac(anairiats_sum_6, arg1, atslab_1) ;
do {
/* branch: __ats_lab_163 */
__ats_lab_163_0:
if (((ats_sum_ptr_type)arg2)->tag != 2) { goto __ats_lab_164_0 ; }
__ats_lab_163_1:
tmp696 = ats_caselptrlab_mac(anairiats_sum_26, arg2, atslab_2) ;
tmp697 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp694), atslab_s2exp_node) ;
if (((ats_sum_ptr_type)tmp697)->tag != 29) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env.dats: 44971(line=2046, offs=11) -- 45016(line=2047, offs=36)") ; }
tmp698 = ats_caselptrlab_mac(anairiats_sum_18, tmp697, atslab_0) ;
tmp699 = ats_caselptrlab_mac(anairiats_sum_18, tmp697, atslab_1) ;
/* ats_int_type tmp700 ; */
tmp700 = 0 ;
tmp701 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2exp_exi_instantiate_all (tmp699, arg0, (&tmp700)) ;
tmp702 = ats_select_mac(tmp701, atslab_0) ;
tmp703 = ats_select_mac(tmp701, atslab_1) ;
/* tmp704 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__trans3_env_add_proplst_vt (arg0, tmp703) ;
tmp705 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2exp_refarg (tmp698, tmp702) ;
tmp706 = auxarg_124 (arg0, tmp695, tmp696) ;
tmp693 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp693, atslab_0, tmp705) ;
ats_selptrset_mac(anairiats_sum_6, tmp693, atslab_1, tmp706) ;
break ;

/* branch: __ats_lab_164 */
__ats_lab_164_0:
if (((ats_sum_ptr_type)arg2)->tag != 3) { goto __ats_lab_165_0 ; }
__ats_lab_164_1:
tmp707 = ats_caselptrlab_mac(anairiats_sum_26, arg2, atslab_2) ;
tmp708 = auxarg_124 (arg0, tmp695, tmp707) ;
tmp693 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp693, atslab_0, tmp694) ;
ats_selptrset_mac(anairiats_sum_6, tmp693, atslab_1, tmp708) ;
break ;

/* branch: __ats_lab_165 */
__ats_lab_165_0:
if (((ats_sum_ptr_type)arg2)->tag != 1) { goto __ats_lab_166_0 ; }
__ats_lab_165_1:
tmp709 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ;
tmp710 = auxarg_124 (arg0, tmp695, tmp709) ;
tmp693 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
ats_selptrset_mac(anairiats_sum_6, tmp693, atslab_0, tmp694) ;
ats_selptrset_mac(anairiats_sum_6, tmp693, atslab_1, tmp710) ;
break ;

/* branch: __ats_lab_166 */
__ats_lab_166_0:
// if (((ats_sum_ptr_type)arg2)->tag != 0) { ats_deadcode_failure_handle () ; }
__ats_lab_166_1:
tmp693 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp693) ;
} /* end of [auxarg_124] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 45652(line=2070, offs=3) -- 45827(line=2077, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2fun_opninv_and_add (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp711) ;
ATSlocal (ats_ptr_type, tmp712) ;
ATSlocal (ats_ptr_type, tmp713) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2fun_opninv_and_add:
tmp712 = auxres_123 (arg2) ;
do {
/* branch: __ats_lab_167 */
__ats_lab_167_0:
if (tmp712 == (ats_sum_ptr_type)0) { goto __ats_lab_168_0 ; }
__ats_lab_167_1:
tmp713 = ats_caselptrlab_mac(anairiats_sum_17, tmp712, atslab_0) ;
ATS_FREE(tmp712) ;
tmp711 = auxarg_124 (arg0, arg1, tmp713) ;
break ;

/* branch: __ats_lab_168 */
__ats_lab_168_0:
// if (tmp712 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_168_1:
tmp711 = arg1 ;
break ;
} while (0) ;
return (tmp711) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2fun_opninv_and_add] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 45947(line=2085, offs=3) -- 46230(line=2100, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_opnset_and_add (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp714) ;
ATSlocal (ats_ptr_type, tmp715) ;
ATSlocal (ats_ptr_type, tmp716) ;
ATSlocal (ats_ptr_type, tmp717) ;
ATSlocal (ats_ptr_type, tmp718) ;
ATSlocal (ats_ptr_type, tmp719) ;
ATSlocal (ats_ptr_type, tmp720) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_opnset_and_add:
tmp715 = _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_get_type (arg1) ;
do {
/* branch: __ats_lab_169 */
__ats_lab_169_0:
if (tmp715 == (ats_sum_ptr_type)0) { goto __ats_lab_170_0 ; }
__ats_lab_169_1:
tmp716 = ats_caselptrlab_mac(anairiats_sum_17, tmp715, atslab_0) ;
tmp717 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp716) ;
tmp718 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (arg0, tmp717) ;
tmp719 = ATS_MALLOC(sizeof(anairiats_sum_17)) ;
ats_selptrset_mac(anairiats_sum_17, tmp719, atslab_0, tmp718) ;
/* tmp714 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg1, tmp719) ;
break ;

/* branch: __ats_lab_170 */
__ats_lab_170_0:
// if (tmp715 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_170_1:
tmp720 = (ats_sum_ptr_type)0 ;
/* tmp714 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__d2var_set_type (arg1, tmp720) ;
break ;
} while (0) ;
return /* (tmp714) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d2var_opnset_and_add] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 46315(line=2106, offs=3) -- 46700(line=2125, offs=4)
*/
ATSglobaldec()
anairiats_rec_27
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__un_s2exp_wthtype (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (anairiats_rec_27, tmp721) ;
ATSlocal (ats_ptr_type, tmp722) ;
ATSlocal (ats_ptr_type, tmp723) ;
ATSlocal (ats_bool_type, tmp724) ;
ATSlocal (ats_ptr_type, tmp726) ;
ATSlocal (ats_ptr_type, tmp727) ;
ATSlocal (ats_ptr_type, tmp728) ;
ATSlocal (ats_ptr_type, tmp729) ;
ATSlocal (ats_ptr_type, tmp730) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__un_s2exp_wthtype:
/* ats_ptr_type tmp722 ; */
tmp722 = arg1 ;
/* ats_ptr_type tmp723 ; */
tmp723 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__WTHS2EXPLSTnil_0) ;
tmp724 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp_is_wthtype (arg1) ;
if (tmp724) {
tmp726 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (arg1) ;
tmp727 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (arg0, tmp726) ;
tmp728 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp727), atslab_s2exp_node) ;
if (((ats_sum_ptr_type)tmp728)->tag != 31) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_trans3_env.dats: 46551(line=2118, offs=7) -- 46594(line=2118, offs=50)") ; }
tmp729 = ats_caselptrlab_mac(anairiats_sum_7, tmp728, atslab_0) ;
tmp730 = ats_caselptrlab_mac(anairiats_sum_7, tmp728, atslab_1) ;
tmp722 = tmp729 ;
tmp723 = tmp730 ;
} else {
/* empty */
} /* end of [if] */
tmp721.atslab_0 = tmp724 ;
tmp721.atslab_1 = tmp722 ;
tmp721.atslab_2 = tmp723 ;

return (tmp721) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__un_s2exp_wthtype] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 46783(line=2131, offs=3) -- 47091(line=2156, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp731) ;
ATSlocal (ats_ptr_type, tmp732) ;
ATSlocal (ats_ptr_type, tmp733) ;
ATSlocal (ats_ptr_type, tmp734) ;
ATSlocal (ats_ptr_type, tmp735) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add:
tmp732 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_d3exp_type) ;
tmp733 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__s2exp2hnf (tmp732) ;
tmp735 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_28, arg0), atslab_d3exp_loc) ;
tmp734 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__s2hnf_opnexi_and_add (tmp735, tmp733) ;
/* tmp731 = */ patsopt_d3exp_set_type (arg0, tmp734) ;
return /* (tmp731) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 47158(line=2160, offs=3) -- 47206(line=2160, offs=51)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3explst_open_and_add (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp736) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3explst_open_and_add:
/* tmp736 = */ list_app_fun_01301_ats_ptr_type (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3exp_open_and_add) ;
return /* (tmp736) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__d3explst_open_and_add] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 47301(line=2167, offs=3) -- 48650(line=2217, offs=2)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_env_initialize () {
/* local vardec */
// ATSlocal_void (tmp737) ;
ATSlocal (ats_ptr_type, tmp738) ;
ATSlocal (ats_ptr_type, tmp739) ;
// ATSlocal_void (tmp740) ;
ATSlocal (ats_ptr_type, tmp741) ;
ATSlocal (ats_ptr_type, tmp742) ;
// ATSlocal_void (tmp743) ;
ATSlocal (ats_ptr_type, tmp744) ;
ATSlocal (ats_ptr_type, tmp745) ;
// ATSlocal_void (tmp746) ;
ATSlocal (ats_ptr_type, tmp747) ;
ATSlocal (ats_ptr_type, tmp748) ;
// ATSlocal_void (tmp749) ;
ATSlocal (ats_ptr_type, tmp750) ;
ATSlocal (ats_ptr_type, tmp751) ;
// ATSlocal_void (tmp752) ;
ATSlocal (ats_ptr_type, tmp753) ;
ATSlocal (ats_ptr_type, tmp754) ;
// ATSlocal_void (tmp755) ;
ATSlocal (ats_ptr_type, tmp756) ;
ATSlocal (ats_ptr_type, tmp757) ;
// ATSlocal_void (tmp758) ;
ATSlocal (ats_ptr_type, tmp759) ;
ATSlocal (ats_ptr_type, tmp760) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_env_initialize:
tmp738 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_t0ype) ;
tmp739 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_bool_bool_t0ype) ;
/* tmp740 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (tmp739, tmp738) ;
tmp741 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_t0ype) ;
tmp742 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_char_int_t0ype) ;
/* tmp743 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (tmp742, tmp741) ;
tmp744 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_t0ype) ;
tmp745 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_schar_int_t0ype) ;
/* tmp746 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (tmp745, tmp744) ;
tmp747 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_t0ype) ;
tmp748 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_uchar_int_t0ype) ;
/* tmp749 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (tmp748, tmp747) ;
tmp750 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0int_t0ype) ;
tmp751 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1int_int_t0ype) ;
/* tmp752 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (tmp751, tmp750) ;
tmp753 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g0uint_t0ype) ;
tmp754 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_g1uint_int_t0ype) ;
/* tmp755 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (tmp754, tmp753) ;
tmp756 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_type) ;
tmp757 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_ptr_addr_type) ;
/* tmp758 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (tmp757, tmp756) ;
tmp759 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_type) ;
tmp760 = _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__s2cstref_get_cst (_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__the_string_int_type) ;
/* tmp737 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2cst_add_sup (tmp760, tmp759) ;
return /* (tmp737) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_env_initialize] */

/*
// /tmp/ATS-Postiats/src/pats_trans3_env.dats: 48752(line=2223, offs=3) -- 49019(line=2239, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_finget_constraint () {
/* local vardec */
ATSlocal (ats_ptr_type, tmp761) ;
ATSlocal (ats_ptr_type, tmp762) ;
ATSlocal (ats_ptr_type, tmp763) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_finget_constraint:
tmp762 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__the_s3itmlst_env_pop () ;
tmp763 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKmain_0) ;
tmp761 = _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__c3nstr_itmlst (_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_dummy, tmp763, ats_castfn_mac(ats_ptr_type, tmp762)) ;
return (tmp761) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_trans3_finget_constraint] */

/* 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_utils_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__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_staexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans2_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_staexp2_solve_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_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_utils_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__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_staexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_util_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_stacst2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp3_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans2_env_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_staexp2_solve_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ;

return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2edats__staload () ;

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

/* marking static variables for GC */
ATS_GC_MARKROOT(&statmp310, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp311, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp313, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp314, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp366, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp367, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp368, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp369, sizeof(ats_ptr_type)) ;

/* marking external values for GC */

/* code for dynamic loading */
statmp310 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2Varset_nil () ;
statmp311 = ref_make_elt_01089_ats_ptr_type (statmp310) ;
statmp314 = (ats_sum_ptr_type)0 ;
statmp313 = ref_make_elt_01089_ats_ptr_type (statmp314) ;
statmp367 = (ats_sum_ptr_type)0 ;
statmp366 = ref_make_elt_01089_ats_ptr_type (statmp367) ;
statmp369 = (ats_sum_ptr_type)0 ;
statmp368 = ref_make_elt_01089_ats_ptr_type (statmp369) ;
return ;
} /* end of [dynload function] */

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

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

/* end of [pats_trans3_env_dats.c] */
