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

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

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

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

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

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

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

#include "pats_location.cats"

#include "libc/CATS/gmp.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_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

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

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_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"
/* external codes at top */

#include "pats_lintprgm_myint.cats"

/* 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_0 ;
ats_int_type atslab_1 ;
} anairiats_rec_2 ;

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

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

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

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

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

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

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

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

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

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

typedef struct {
ats_ptr_type atslab_0 ;
} anairiats_sum_13 ;

/* 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, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_pos_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__CK_case_neg_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_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__C3TKsome_fin_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_lvar_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsome_vbox_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKlstate_var_8) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKloop_9) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__C3TKsolverify_10) ;
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) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__ICvec_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__ICveclst_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__ICerr_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Evar_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Enull_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eunit_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebool_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebvar_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebneg_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebadd_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebmul_8) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebeq_9) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebneq_10) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebineq_11) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Ebdom_12) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eicff_14) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eisum_15) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__S3Eerr_19) ;
ATSextern_val(ats_exn_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__Finished) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVLSTnil_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVLSTcons_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVLSTmark_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVEQLSTnil_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVEQLSTcons_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVEQLSTmark_2) ;

/* 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_fprint_newline) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_prerr_newline) () ;
ATSextern_fun(ats_ptr_type, atspre_string_append) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_neg_bool) (ats_bool_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_neq_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_int_type, atspre_compare_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_void_type, atspre_fprint_char) (ats_ptr_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ;
ATSextern_fun(ats_char_type, atspre_char_toupper) (ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_int_type, atspre_neg_int) (ats_int_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_int_type, atspre_mul_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_div_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_mod_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_gcd_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_gte_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_neq_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_compare_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_void_type, atspre_fprint_int) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_uint_type, atspre_add_uint_uint) (ats_uint_type, ats_uint_type) ;
ATSextern_fun(ats_bool_type, atspre_lte_uint_uint) (ats_uint_type, ats_uint_type) ;
ATSextern_fun(ats_bool_type, atspre_gte_uint_uint) (ats_uint_type, ats_uint_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_uint_uint) (ats_uint_type, ats_uint_type) ;
ATSextern_fun(ats_int_type, atspre_ineg) (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_ilte) (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_bool_type, atspre_ieq) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_ineq) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_imax) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_llint_type, atspre_llint_of_int) (ats_int_type) ;
ATSextern_fun(ats_llint_type, atspre_mul_llint_llint) (ats_llint_type, ats_llint_type) ;
ATSextern_fun(ats_size_type, atspre_size_of_int1) (ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_add_size_size) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_size_type, atspre_sub_size_size) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_gte_size_size) (ats_size_type, ats_size_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_sub_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_size_type, atspre_mul_size1_size1) (ats_size_type, ats_size_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_gt_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, ats_malloc_gc) (ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_ptr_free) (ats_ptr_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_bytes_strbuf_trans) (ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_string_string) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_fprint_string) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_prerr_string) (ats_ptr_type) ;
ATSextern_fun(ats_char_type, atspre_string_get_char_at) (ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_char_type, atspre_string_get_char_at__intsz) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, atspre_string_copy) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ;
ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ;
ATSextern_fun(ats_size_type, atspre_string_length) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_string_isnot_empty) (ats_ptr_type) ;
ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ;
ATSextern_val(ats_ptr_type, atspre_stropt_none) ;
ATSextern_fun(ats_bool_type, atspre_stropt_is_some) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_tostringf) (ats_ptr_type, ...) ;
ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ;
ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__fprint_stropt) (ats_ptr_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, patsopt_file2strptr) (ats_int_type) ;
ATSextern_fun(ats_size_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_cap) (ats_ref_type) ;
ATSextern_fun(ats_size_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_size) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_empty) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_empty) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_full) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_full) (ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_initialize_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_uninitialize) (ats_ref_type) ;
ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_uninitialize_vt) (ats_ref_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_takeout_tsz) (ats_ref_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_insert_end_many_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_remove_beg_many_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_void_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_clear_all) (ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_copyout_tsz) (ats_ref_type, ats_size_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_update_capacity_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_varet_type, _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__intinf_get_int) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__compare_s2var_s2var) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_listize_free) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2exp) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcst) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__prerr_c3nstr) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_freetop) () ;
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_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvec0_free) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_nil) () ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_is_member) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_add) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_get_fvs) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__prerr_s3exp) (ats_ptr_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_false) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_nil) () ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_free) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_pop) (ats_ref_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_push) (ats_ref_type) ;
ATSextern_fun(anairiats_rec_1, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_extract) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_svar) (ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_sbexp) (ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make) (ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make_h3ypo) (ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_solve_s2exp) (ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_lintize) (ats_ref_type, ats_ptr_type) ;
ATSextern_fun(anairiats_rec_2, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_make) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_free) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_find) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atslib_mpz_neg1) (ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_mpz_add2_mpz) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_mpz_sub2_mpz) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_mpz_mul2_mpz) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_fprint_mpz) (ats_ptr_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_make) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_free) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_choose) (ats_ref_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_errmsg) (ats_ptr_type, ats_uint_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_main) (ats_ref_type, ats_ptr_type, ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_prop) (ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ref_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst) (ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_cnstr) (ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_disj) (ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ptr_type, ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_solverify) (ats_ptr_type, ats_ref_type, ats_ptr_type, ats_ref_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__prerr_case_exhaustiveness_errmsg) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;

/* external dynamic terminating constant declarations */
#ifdef _ATS_PROOFCHECK
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
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_2libats_2ngc_2SATS_2deque_arr_2esats__lemma_deque_param_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_encode_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_decode_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_clear_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_insert_beg_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_insert_end_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_remove_beg_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_remove_end_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ;
extern
ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ;
extern
ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout_addback_prfck () ;
extern
ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout0_addback_prfck () ;
#endif /* _ATS_PROOFCHECK */

/* assuming abstract types */
/* sum constructor declarations */
/* exn constructor declarations */
/* global dynamic (non-functional) constant declarations */
/* internal function declarations */
static
ats_void_type prerr_FILENAME_02435_ () ;
static
ats_void_type fprint_myint_04720_gmpknd (ats_ptr_type arg0, gmpknd arg1) ;
static
ats_void_type print_myint_04721_gmpknd (gmpknd arg0) ;
static
ats_void_type prerr_myint_04722_gmpknd (gmpknd arg0) ;
static
gmpknd myint_make_int_04723_gmpknd (ats_int_type arg0) ;
static
gmpknd myint_make_intinf_04724_gmpknd (ats_ptr_type arg0) ;
static
gmpknd myint_copy_04726_gmpknd (gmpknd arg0) ;
static
ats_void_type myint_free_04725_gmpknd (gmpknd arg0) ;
static
gmpknd neg_myint_04727_gmpknd (gmpknd arg0) ;
static
gmpknd neg1_myint_04728_gmpknd (gmpknd arg0) ;
static
gmpknd add01_myint_myint_04730_gmpknd (gmpknd arg0, gmpknd arg1) ;
static
gmpknd sub01_myint_myint_04731_gmpknd (gmpknd arg0, gmpknd arg1) ;
static
gmpknd add_myint_int_04729_gmpknd (gmpknd arg0, ats_int_type arg1) ;
static
gmpknd mul01_myint_myint_04732_gmpknd (gmpknd arg0, gmpknd arg1) ;
static
gmpknd mul10_myint_myint_04733_gmpknd (gmpknd arg0, gmpknd arg1) ;
static
gmpknd mul11_myint_myint_04734_gmpknd (gmpknd arg0, gmpknd arg1) ;
static
gmpknd div01_myint_myint_04735_gmpknd (gmpknd arg0, gmpknd arg1) ;
static
gmpknd ediv01_myint_myint_04737_gmpknd (gmpknd arg0, gmpknd arg1) ;
static
gmpknd mod01_myint_myint_04738_gmpknd (gmpknd arg0, gmpknd arg1) ;
static
gmpknd mod11_myint_myint_04739_gmpknd (gmpknd arg0, gmpknd arg1) ;
static
gmpknd gcd01_myint_myint_04740_gmpknd (gmpknd arg0, gmpknd arg1) ;
static
ats_int_type compare_myint_int_04747_gmpknd (gmpknd arg0, ats_int_type arg1) ;
static
ats_int_type compare_myint_myint_04752_gmpknd (gmpknd arg0, gmpknd arg1) ;
static
ats_void_type prerr_warning3_loc_02446_ (ats_ptr_type arg0) ;
static
ats_void_type loop_29 (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_ptr_type array_ptr_alloc_01563_gmpknd (ats_size_type arg0) ;
static
ats_ptr_type myintvec0_make_04764_gmpknd (ats_int_type arg0) ;
static
ats_ptr_type myintvec_make_04766_gmpknd (ats_int_type arg0) ;
static
ats_ptr_type array_ptr_takeout_01586_gmpknd (ats_ptr_type arg0, ats_size_type arg1) ;
static
ats_void_type myintvec_addby_cffvar_05291_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, gmpknd arg2, ats_ptr_type arg3, ats_ref_type arg4) ;
static
ats_void_type myintvec_add_int_04762_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_void_type clear_37 (ats_ptr_type arg0, ats_size_type arg1, ats_ptr_type arg2, ats_size_type arg3) ;
static
ats_void_type array_ptr_clear_fun_01576_gmpknd (ats_ref_type arg0, ats_size_type arg1, ats_ptr_type arg2) ;
static
ats_void_type __ats_fun_38 (ats_ref_type arg0) ;
static
ats_void_type myintvec_free_04767_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_ptr_type icnstrlst_negate_04778_gmpknd (ats_ptr_type arg0) ;
static
ats_ptr_type icnstr_negate_04777_gmpknd (ats_ptr_type arg0) ;
static
ats_void_type loop_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ;
static
ats_ptr_type myintvec_copy_04790_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_ptr_type icnstrlst_copy_04776_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_ptr_type icnstr_copy_04775_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_void_type myintvec_addby_const_05290_gmpknd (ats_ptr_type arg0, gmpknd arg1) ;
static
ats_void_type myintvec_addby_s3exp_05050_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ;
static
ats_void_type myintvec_addby_s3explst_05063_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ;
static
ats_ptr_type s3exp2myintvec_04877_gmpknd (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3) ;
static
ats_void_type prerr_error3_loc_02441_ (ats_ptr_type arg0) ;
static
ats_ptr_type s3exp2icnstr_04876_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type loop_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ;
static
ats_ptr_type loop_51 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type indexset_make_s3exp_05084_ats_abs_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type loop_57 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type myiveqlst_get_last_05248_gmpknd (ats_ptr_type arg0) ;
static
ats_int_type myintvec_compare_at_04763_gmpknd (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) ;
static
gmpknd myintvec_get_at_04760_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_void_type loop_63 (gmpknd arg0, ats_ptr_type arg1, ats_int_type arg2) ;
static
ats_void_type myintvec_scale_04794_gmpknd (gmpknd arg0, ats_ptr_type arg1, ats_int_type arg2) ;
static
ats_void_type loop_65 (ats_ptr_type arg0, gmpknd arg1, ats_ptr_type arg2, ats_int_type arg3) ;
static
ats_void_type myintvec_addby_cff_04797_gmpknd (ats_ptr_type arg0, gmpknd arg1, ats_ptr_type arg2, ats_int_type arg3) ;
static
ats_void_type myintvec_elimeq_at_05237_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) ;
static
ats_void_type myintvec_elimeqlst_rev_04571_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ;
static
ats_void_type myintvec_elimeqlst_05249_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ;
static
ats_bool_type eq_myint_int_04745_gmpknd (gmpknd arg0, ats_int_type arg1) ;
static
ats_bool_type loop_68 (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_bool_type gte_myint_int_04744_gmpknd (gmpknd arg0, ats_int_type arg1) ;
static
ats_bool_type lt_myint_int_04741_gmpknd (gmpknd arg0, ats_int_type arg1) ;
static
ats_bool_type neq_myint_int_04746_gmpknd (gmpknd arg0, ats_int_type arg1) ;
static
ats_int_type myintvec_inspect_04781_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2) ;
static
ats_int_type myintvec_inspect_lt_04782_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_void_type loop_74 (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_void_type myintvec_negate_04793_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_void_type loop_77 (gmpknd arg0, ats_ptr_type arg1, ats_int_type arg2) ;
static
gmpknd ptr0_get_01759_gmpknd (ats_ptr_type arg0) ;
static
ats_void_type loop_80 (ats_int_type env0, ats_ptr_type env1, ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_clo_ptr_type loop_80_closure_make (ats_int_type env0, ats_ptr_type env1) ;
static
ats_void_type loop_80_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_void_type myintvec_cffgcd_main_04131_gmpknd (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) ;
static
gmpknd myintvec_cffgcd_04787_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_bool_type gt_myint_int_04743_gmpknd (gmpknd arg0, ats_int_type arg1) ;
static
ats_int_type myintvec_normalize_05217_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2) ;
static
ats_void_type myintvec_normalize_gte_04788_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_int_type auxlt_04604_gmpknd (ats_int_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_int_type arg4) ;
static
ats_void_type loop_85 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ref_type arg3) ;
static
ats_ptr_type myivlst_elimeqlst_05254_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ;
static
ats_int_type myintvec_inspect_gte_04783_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_int_type myintveclst_inspect_gte_04786_gmpknd (ats_ref_type arg0, ats_int_type arg1) ;
static
ats_void_type myintveclst_normalize_gte_04789_gmpknd (ats_ref_type arg0, ats_int_type arg1) ;
static
ats_void_type auxbeg_92 (ats_ptr_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4) ;
static
ats_void_type loop_96 (gmpknd arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) ;
static
ats_ptr_type myintvec_copy_cff_04791_gmpknd (gmpknd arg0, ats_ptr_type arg1, ats_int_type arg2) ;
static
ats_ptr_type myintvec_combine_at_05230_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) ;
static
ats_int_type auxcomb_93 (ats_int_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ptr_type arg4) ;
static
ats_void_type myintveclst_free_04770_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_int_type auxcomblst_97 (ats_int_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ptr_type arg4) ;
static
ats_int_type myintveclst_split_at_05231_gmpknd (ats_ref_type arg0, ats_int_type arg1, ats_int_type arg2) ;
static
ats_int_type solve_90 (ats_ref_type arg0, ats_ref_type arg1, ats_int_type arg2) ;
static
ats_int_type myintveclst_solve_05236_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) ;
static
ats_int_type auxcont_04626_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_int_type arg4, ats_ref_type arg5, ats_int_type arg6) ;
static
ats_int_type auxgte_04611_gmpknd (ats_int_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_int_type arg4) ;
static
ats_int_type myintvec_inspect_eq_04784_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_bool_type lt_myint_myint_04748_gmpknd (gmpknd arg0, gmpknd arg1) ;
static
ats_void_type loop_103 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_bool_type arg3, ats_ref_type arg4, ats_ref_type arg5) ;
static
ats_int_type myintvec_get_index_of_absmincff_05232_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_ptr_type myiveqlst_get_prev_04542_gmpknd (ats_ptr_type arg0) ;
static
ats_void_type ptr0_set_01760_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_void_type ptrset_01764_ats_ptr_type (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type myiveqlst_cons_05245_gmpknd (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) ;
static
ats_int_type auxeq_04618_gmpknd (ats_int_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_int_type arg4) ;
static
ats_int_type myintvec_inspect_neq_04785_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_ptr_type auxneq_04636_gmpknd (ats_int_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ref_type arg5) ;
static
ats_int_type loop_113 (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_int_type list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type loop_115 (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 loop_117 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ;
static
ats_ptr_type list_vt_split_at_01505_ats_ptr_type (ats_ref_type arg0, ats_int_type arg1) ;
static
ats_int_type auxmain_conj_05256_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_int_type arg4, ats_ref_type arg5, ats_ref_type arg6) ;
static
ats_ptr_type myivlst_mark_05240_gmpknd (ats_ptr_type arg0) ;
static
ats_ptr_type myiveqlst_mark_05246_gmpknd (ats_ptr_type arg0) ;
static
ats_ptr_type myivlst_unmark_05241_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_ptr_type myiveqlst_unmark_05247_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_void_type icnstr_free_04779_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_void_type icnstrlst_free_04780_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_ptr_type revapp_126 (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_int_type auxmain_disj_05257_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_int_type arg4, ats_ref_type arg5, ats_ref_type arg6, ats_ptr_type arg7) ;
static
ats_int_type auxmain_05255_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_int_type arg4, ats_ref_type arg5) ;
static
ats_void_type myivlst_free_05239_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_void_type myiveqlst_free_05243_gmpknd (ats_ptr_type arg0, ats_int_type arg1) ;
static
ats_int_type icnstrlst_solve_04801_gmpknd (ats_ptr_type arg0, ats_ref_type arg1, ats_int_type arg2) ;
static
ats_int_type auxsolve_05097_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ;
static
ats_void_type loop_131 (ats_ptr_type arg0) ;
static
ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_void_type prlst_133 (ats_ptr_type arg0) ;
static
ats_void_type prerr_c3nstr_if_135 (ats_uint_type arg0, ats_ptr_type arg1) ;
static
ats_void_type loop_142 (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) ;

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

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 1882(line=66, offs=18) -- 1917(line=66, offs=53)
*/
ATSstaticdec()
ats_void_type
prerr_FILENAME_02435_ () {
/* local vardec */
// ATSlocal_void (tmp0) ;

__ats_lab_prerr_FILENAME_02435_:
/* tmp0 = */ atspre_prerr_string (ATSstrcst("pats_constraint3_solve")) ;
return /* (tmp0) */ ;
} /* end of [prerr_FILENAME_02435_] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 2251(line=82, offs=3) -- 2419(line=90, offs=4)
*/
ATSstaticdec()
ats_void_type
fprint_myint_04720_gmpknd (ats_ptr_type arg0, gmpknd arg1) {
/* local vardec */
// ATSlocal_void (tmp1) ;
ATSlocal (ats_ptr_type, tmp2) ;

__ats_lab_fprint_myint_04720_gmpknd:
tmp2 = ats_varget_mac(ats_ptr_type, arg1) ;
/* tmp1 = */ atslib_fprint_mpz (arg0, tmp2) ;
return /* (tmp1) */ ;
} /* end of [fprint_myint_04720_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 2486(line=93, offs=21) -- 2528(line=93, offs=63)
*/
ATSstaticdec()
ats_void_type
print_myint_04721_gmpknd (gmpknd arg0) {
/* local vardec */
// ATSlocal_void (tmp3) ;

__ats_lab_print_myint_04721_gmpknd:
/* tmp3 = */ fprint_myint_04720_gmpknd (stdout, arg0) ;
return /* (tmp3) */ ;
} /* end of [print_myint_04721_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 2559(line=95, offs=21) -- 2601(line=95, offs=63)
*/
ATSstaticdec()
ats_void_type
prerr_myint_04722_gmpknd (gmpknd arg0) {
/* local vardec */
// ATSlocal_void (tmp4) ;

__ats_lab_prerr_myint_04722_gmpknd:
/* tmp4 = */ fprint_myint_04720_gmpknd (stderr, arg0) ;
return /* (tmp4) */ ;
} /* end of [prerr_myint_04722_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 2659(line=100, offs=24) -- 2814(line=107, offs=4)
*/
ATSstaticdec()
gmpknd
myint_make_int_04723_gmpknd (ats_int_type arg0) {
/* local vardec */
ATSlocal (gmpknd, tmp5) ;
ATSlocal (ats_ptr_type, tmp6) ;
ATSlocal (ats_ptr_type, tmp7) ;
// ATSlocal_void (tmp8) ;
ATSlocal (ats_ptr_type, tmp9) ;

__ats_lab_myint_make_int_04723_gmpknd:
tmp6 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ;
tmp7 = ats_selsin_mac(tmp6, atslab_2) ;
/* tmp8 = */ atslib_mpz_init_set_int (tmp7, arg0) ;
tmp9 = tmp7 ;
tmp5 = ats_castfn_mac(gmpknd, tmp9) ;
return (tmp5) ;
} /* end of [myint_make_int_04723_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 3094(line=126, offs=27) -- 3321(line=135, offs=4)
*/
ATSstaticdec()
gmpknd
myint_make_intinf_04724_gmpknd (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (gmpknd, tmp10) ;
ATSlocal (ats_ptr_type, tmp11) ;
ATSlocal (ats_ptr_type, tmp12) ;
ATSlocal (ats_ptr_type, tmp13) ;
// ATSlocal_void (tmp14) ;
ATSlocal (ats_ptr_type, tmp15) ;

__ats_lab_myint_make_intinf_04724_gmpknd:
tmp11 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ;
tmp12 = ats_selsin_mac(tmp11, atslab_2) ;
tmp13 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ;
/* tmp14 = */ atslib_mpz_init_set_mpz (tmp12, tmp13) ;
tmp15 = tmp12 ;
tmp10 = ats_castfn_mac(gmpknd, tmp15) ;
return (tmp10) ;
} /* end of [myint_make_intinf_04724_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 3424(line=142, offs=20) -- 3667(line=151, offs=4)
*/
ATSstaticdec()
gmpknd
myint_copy_04726_gmpknd (gmpknd arg0) {
/* local vardec */
ATSlocal (gmpknd, tmp16) ;
ATSlocal (ats_ptr_type, tmp17) ;
ATSlocal (ats_ptr_type, tmp18) ;
// ATSlocal_void (tmp19) ;
ATSlocal (ats_ptr_type, tmp20) ;
ATSlocal (ats_ptr_type, tmp21) ;

__ats_lab_myint_copy_04726_gmpknd:
tmp17 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ;
tmp18 = ats_selsin_mac(tmp17, atslab_2) ;
tmp20 = ats_varget_mac(ats_ptr_type, arg0) ;
/* tmp19 = */ atslib_mpz_init_set_mpz (tmp18, tmp20) ;
tmp21 = tmp18 ;
tmp16 = ats_castfn_mac(gmpknd, tmp21) ;
return (tmp16) ;
} /* end of [myint_copy_04726_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 3750(line=156, offs=20) -- 3877(line=162, offs=4)
*/
ATSstaticdec()
ats_void_type
myint_free_04725_gmpknd (gmpknd arg0) {
/* local vardec */
// ATSlocal_void (tmp22) ;
// ATSlocal_void (tmp23) ;
ATSlocal (ats_ptr_type, tmp24) ;
ATSlocal (ats_ptr_type, tmp25) ;

__ats_lab_myint_free_04725_gmpknd:
tmp24 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ;
/* tmp23 = */ atslib_mpz_clear (tmp24) ;
tmp25 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ;
/* tmp22 = */ atspre_ptr_free (tmp25) ;
return /* (tmp22) */ ;
} /* end of [myint_free_04725_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 3961(line=168, offs=3) -- 4079(line=173, offs=2)
*/
ATSstaticdec()
gmpknd
neg_myint_04727_gmpknd (gmpknd arg0) {
/* local vardec */
ATSlocal (gmpknd, tmp26) ;
// ATSlocal_void (tmp27) ;
ATSlocal (ats_ptr_type, tmp28) ;

__ats_lab_neg_myint_04727_gmpknd:
tmp28 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ;
/* tmp27 = */ atslib_mpz_neg1 (tmp28) ;
tmp26 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ;
return (tmp26) ;
} /* end of [neg_myint_04727_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 4163(line=179, offs=3) -- 4417(line=187, offs=2)
*/
ATSstaticdec()
gmpknd
neg1_myint_04728_gmpknd (gmpknd arg0) {
/* local vardec */
ATSlocal (gmpknd, tmp29) ;
ATSlocal (ats_ptr_type, tmp30) ;
ATSlocal (ats_ptr_type, tmp31) ;
// ATSlocal_void (tmp32) ;
// ATSlocal_void (tmp33) ;
ATSlocal (ats_ptr_type, tmp34) ;
ATSlocal (ats_ptr_type, tmp35) ;

__ats_lab_neg1_myint_04728_gmpknd:
tmp30 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ;
tmp31 = ats_selsin_mac(tmp30, atslab_2) ;
/* tmp32 = */ atslib_mpz_init (tmp31) ;
tmp34 = ats_varget_mac(ats_ptr_type, arg0) ;
/* tmp33 = */ atslib_mpz_neg2 (tmp31, tmp34) ;
tmp35 = tmp31 ;
tmp29 = ats_castfn_mac(gmpknd, tmp35) ;
return (tmp29) ;
} /* end of [neg1_myint_04728_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 4509(line=193, offs=3) -- 4734(line=199, offs=2)
*/
ATSstaticdec()
gmpknd
add01_myint_myint_04730_gmpknd (gmpknd arg0, gmpknd arg1) {
/* local vardec */
ATSlocal (gmpknd, tmp36) ;
// ATSlocal_void (tmp37) ;
ATSlocal (ats_ptr_type, tmp38) ;
ATSlocal (ats_ptr_type, tmp39) ;

__ats_lab_add01_myint_myint_04730_gmpknd:
tmp38 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ;
tmp39 = ats_varget_mac(ats_ptr_type, arg1) ;
/* tmp37 = */ atslib_mpz_add2_mpz (tmp38, tmp39) ;
tmp36 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ;
return (tmp36) ;
} /* end of [add01_myint_myint_04730_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 4831(line=205, offs=3) -- 5056(line=211, offs=2)
*/
ATSstaticdec()
gmpknd
sub01_myint_myint_04731_gmpknd (gmpknd arg0, gmpknd arg1) {
/* local vardec */
ATSlocal (gmpknd, tmp40) ;
// ATSlocal_void (tmp41) ;
ATSlocal (ats_ptr_type, tmp42) ;
ATSlocal (ats_ptr_type, tmp43) ;

__ats_lab_sub01_myint_myint_04731_gmpknd:
tmp42 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ;
tmp43 = ats_varget_mac(ats_ptr_type, arg1) ;
/* tmp41 = */ atslib_mpz_sub2_mpz (tmp42, tmp43) ;
tmp40 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ;
return (tmp40) ;
} /* end of [sub01_myint_myint_04731_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 5149(line=217, offs=3) -- 5278(line=222, offs=2)
*/
ATSstaticdec()
gmpknd
add_myint_int_04729_gmpknd (gmpknd arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (gmpknd, tmp44) ;
// ATSlocal_void (tmp45) ;
ATSlocal (ats_ptr_type, tmp46) ;

__ats_lab_add_myint_int_04729_gmpknd:
tmp46 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ;
/* tmp45 = */ atslib_mpz_add2_int (tmp46, arg1) ;
tmp44 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ;
return (tmp44) ;
} /* end of [add_myint_int_04729_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 5373(line=228, offs=3) -- 5599(line=235, offs=2)
*/
ATSstaticdec()
gmpknd
mul01_myint_myint_04732_gmpknd (gmpknd arg0, gmpknd arg1) {
/* local vardec */
ATSlocal (gmpknd, tmp47) ;
// ATSlocal_void (tmp48) ;
ATSlocal (ats_ptr_type, tmp49) ;
ATSlocal (ats_ptr_type, tmp50) ;

__ats_lab_mul01_myint_myint_04732_gmpknd:
tmp49 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ;
tmp50 = ats_varget_mac(ats_ptr_type, arg1) ;
/* tmp48 = */ atslib_mpz_mul2_mpz (tmp49, tmp50) ;
tmp47 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ;
return (tmp47) ;
} /* end of [mul01_myint_myint_04732_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 5677(line=239, offs=3) -- 6142(line=254, offs=2)
*/
ATSstaticdec()
gmpknd
mul10_myint_myint_04733_gmpknd (gmpknd arg0, gmpknd arg1) {
/* local vardec */
ATSlocal (gmpknd, tmp51) ;
ATSlocal (ats_ptr_type, tmp52) ;
ATSlocal (ats_ptr_type, tmp53) ;
// ATSlocal_void (tmp54) ;
ATSlocal (ats_ptr_type, tmp55) ;
ATSlocal (ats_ptr_type, tmp56) ;

__ats_lab_mul10_myint_myint_04733_gmpknd:
tmp52 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg1)) ;
tmp53 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp52), atslab_2) ;
tmp55 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg1)) ;
tmp56 = ats_varget_mac(ats_ptr_type, arg0) ;
/* tmp54 = */ atslib_mpz_mul3_mpz (tmp55, tmp56, tmp53) ;
tmp51 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg1)) ;
return (tmp51) ;
} /* end of [mul10_myint_myint_04733_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 6220(line=258, offs=3) -- 6574(line=268, offs=4)
*/
ATSstaticdec()
gmpknd
mul11_myint_myint_04734_gmpknd (gmpknd arg0, gmpknd arg1) {
/* local vardec */
ATSlocal (gmpknd, tmp57) ;
ATSlocal (ats_ptr_type, tmp58) ;
ATSlocal (ats_ptr_type, tmp59) ;
// ATSlocal_void (tmp60) ;
// ATSlocal_void (tmp61) ;
ATSlocal (ats_ptr_type, tmp62) ;
ATSlocal (ats_ptr_type, tmp63) ;
ATSlocal (ats_ptr_type, tmp64) ;

__ats_lab_mul11_myint_myint_04734_gmpknd:
tmp58 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ;
tmp59 = ats_selsin_mac(tmp58, atslab_2) ;
/* tmp60 = */ atslib_mpz_init (tmp59) ;
tmp62 = ats_varget_mac(ats_ptr_type, arg0) ;
tmp63 = ats_varget_mac(ats_ptr_type, arg1) ;
/* tmp61 = */ atslib_mpz_mul3_mpz (tmp59, tmp62, tmp63) ;
tmp64 = tmp59 ;
tmp57 = ats_castfn_mac(gmpknd, tmp64) ;
return (tmp57) ;
} /* end of [mul11_myint_myint_04734_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 6673(line=274, offs=3) -- 7138(line=288, offs=2)
*/
ATSstaticdec()
gmpknd
div01_myint_myint_04735_gmpknd (gmpknd arg0, gmpknd arg1) {
/* local vardec */
ATSlocal (gmpknd, tmp65) ;
ATSlocal (ats_ptr_type, tmp66) ;
ATSlocal (ats_ptr_type, tmp67) ;
// ATSlocal_void (tmp68) ;
ATSlocal (ats_ptr_type, tmp69) ;
ATSlocal (ats_ptr_type, tmp70) ;

__ats_lab_div01_myint_myint_04735_gmpknd:
tmp66 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ;
tmp67 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp66), atslab_2) ;
tmp69 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ;
tmp70 = ats_varget_mac(ats_ptr_type, arg1) ;
/* tmp68 = */ atslib_mpz_tdiv3_q_mpz (tmp67, tmp69, tmp70) ;
tmp65 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ;
return (tmp65) ;
} /* end of [div01_myint_myint_04735_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 7238(line=294, offs=3) -- 7701(line=308, offs=2)
*/
ATSstaticdec()
gmpknd
ediv01_myint_myint_04737_gmpknd (gmpknd arg0, gmpknd arg1) {
/* local vardec */
ATSlocal (gmpknd, tmp71) ;
ATSlocal (ats_ptr_type, tmp72) ;
ATSlocal (ats_ptr_type, tmp73) ;
// ATSlocal_void (tmp74) ;
ATSlocal (ats_ptr_type, tmp75) ;
ATSlocal (ats_ptr_type, tmp76) ;

__ats_lab_ediv01_myint_myint_04737_gmpknd:
tmp72 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ;
tmp73 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp72), atslab_2) ;
tmp75 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ;
tmp76 = ats_varget_mac(ats_ptr_type, arg1) ;
/* tmp74 = */ atslib_mpz_divexact3 (tmp73, tmp75, tmp76) ;
tmp71 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ;
return (tmp71) ;
} /* end of [ediv01_myint_myint_04737_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 7801(line=314, offs=3) -- 8263(line=328, offs=2)
*/
ATSstaticdec()
gmpknd
mod01_myint_myint_04738_gmpknd (gmpknd arg0, gmpknd arg1) {
/* local vardec */
ATSlocal (gmpknd, tmp77) ;
ATSlocal (ats_ptr_type, tmp78) ;
ATSlocal (ats_ptr_type, tmp79) ;
// ATSlocal_void (tmp80) ;
ATSlocal (ats_ptr_type, tmp81) ;
ATSlocal (ats_ptr_type, tmp82) ;

__ats_lab_mod01_myint_myint_04738_gmpknd:
tmp78 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ;
tmp79 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp78), atslab_2) ;
tmp81 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ;
tmp82 = ats_varget_mac(ats_ptr_type, arg1) ;
/* tmp80 = */ atslib_mpz_mod3_mpz (tmp79, tmp81, tmp82) ;
tmp77 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ;
return (tmp77) ;
} /* end of [mod01_myint_myint_04738_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 8341(line=332, offs=3) -- 8695(line=342, offs=4)
*/
ATSstaticdec()
gmpknd
mod11_myint_myint_04739_gmpknd (gmpknd arg0, gmpknd arg1) {
/* local vardec */
ATSlocal (gmpknd, tmp83) ;
ATSlocal (ats_ptr_type, tmp84) ;
ATSlocal (ats_ptr_type, tmp85) ;
// ATSlocal_void (tmp86) ;
// ATSlocal_void (tmp87) ;
ATSlocal (ats_ptr_type, tmp88) ;
ATSlocal (ats_ptr_type, tmp89) ;
ATSlocal (ats_ptr_type, tmp90) ;

__ats_lab_mod11_myint_myint_04739_gmpknd:
tmp84 = atspre_ptr_alloc_tsz (sizeof(ats_mpz_viewt0ype)) ;
tmp85 = ats_selsin_mac(tmp84, atslab_2) ;
/* tmp86 = */ atslib_mpz_init (tmp85) ;
tmp88 = ats_varget_mac(ats_ptr_type, arg0) ;
tmp89 = ats_varget_mac(ats_ptr_type, arg1) ;
/* tmp87 = */ atslib_mpz_mod3_mpz (tmp85, tmp88, tmp89) ;
tmp90 = tmp85 ;
tmp83 = ats_castfn_mac(gmpknd, tmp90) ;
return (tmp83) ;
} /* end of [mod11_myint_myint_04739_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 8794(line=348, offs=3) -- 9256(line=362, offs=2)
*/
ATSstaticdec()
gmpknd
gcd01_myint_myint_04740_gmpknd (gmpknd arg0, gmpknd arg1) {
/* local vardec */
ATSlocal (gmpknd, tmp91) ;
ATSlocal (ats_ptr_type, tmp92) ;
ATSlocal (ats_ptr_type, tmp93) ;
// ATSlocal_void (tmp94) ;
ATSlocal (ats_ptr_type, tmp95) ;
ATSlocal (ats_ptr_type, tmp96) ;

__ats_lab_gcd01_myint_myint_04740_gmpknd:
tmp92 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ;
tmp93 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp92), atslab_2) ;
tmp95 = ats_varget_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)) ;
tmp96 = ats_varget_mac(ats_ptr_type, arg1) ;
/* tmp94 = */ atslib_mpz_gcd3_mpz (tmp93, tmp95, tmp96) ;
tmp91 = ats_castfn_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ;
return (tmp91) ;
} /* end of [gcd01_myint_myint_04740_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 9355(line=368, offs=3) -- 9509(line=374, offs=2)
*/
ATSstaticdec()
ats_int_type
compare_myint_int_04747_gmpknd (gmpknd arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp97) ;
ATSlocal (ats_ptr_type, tmp98) ;

__ats_lab_compare_myint_int_04747_gmpknd:
tmp98 = ats_varget_mac(ats_ptr_type, arg0) ;
tmp97 = atslib_mpz_cmp_int (tmp98, arg1) ;
return (tmp97) ;
} /* end of [compare_myint_int_04747_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_myint_gmp.dats: 9603(line=380, offs=3) -- 9841(line=386, offs=2)
*/
ATSstaticdec()
ats_int_type
compare_myint_myint_04752_gmpknd (gmpknd arg0, gmpknd arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp99) ;
ATSlocal (ats_ptr_type, tmp100) ;
ATSlocal (ats_ptr_type, tmp101) ;

__ats_lab_compare_myint_myint_04752_gmpknd:
tmp100 = ats_varget_mac(ats_ptr_type, arg0) ;
tmp101 = ats_varget_mac(ats_ptr_type, arg1) ;
tmp99 = atslib_mpz_cmp_mpz (tmp100, tmp101) ;
return (tmp99) ;
} /* end of [compare_myint_myint_04752_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_errmsg.dats: 2997(line=122, offs=20) -- 3058(line=125, offs=2)
*/
ATSstaticdec()
ats_void_type
prerr_warning3_loc_02446_ (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp106) ;
// ATSlocal_void (tmp107) ;

__ats_lab_prerr_warning3_loc_02446_:
/* tmp107 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ;
/* tmp106 = */ atspre_prerr_string (ATSstrcst(": warning(3)")) ;
return /* (tmp106) */ ;
} /* end of [prerr_warning3_loc_02446_] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 15120(line=664, offs=1) -- 15566(line=682, offs=6)
*/
ATSstaticdec()
ats_void_type
loop_29 (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp138) ;
ATSlocal (ats_bool_type, tmp139) ;
ATSlocal (gmpknd, tmp140) ;
ATSlocal (ats_ptr_type, tmp141) ;
ATSlocal (ats_int_type, tmp142) ;

__ats_lab_loop_29:
tmp139 = atspre_igt (arg1, 0) ;
if (tmp139) {
tmp140 = myint_make_int_04723_gmpknd (0) ;
ats_ptrget_mac(gmpknd, arg0) = tmp140 ;
tmp141 = atspre_padd_size (arg0, sizeof(gmpknd)) ;
tmp142 = atspre_isub (arg1, 1) ;
arg0 = tmp141 ;
arg1 = tmp142 ;
goto __ats_lab_loop_29 ; // tail call
} else {
/* empty */
} /* end of [if] */
return /* (tmp138) */ ;
} /* end of [loop_29] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 3612(line=123, offs=17) -- 3660(line=123, offs=65)
*/
ATSstaticdec()
ats_ptr_type
array_ptr_alloc_01563_gmpknd (ats_size_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp147) ;

__ats_lab_array_ptr_alloc_01563_gmpknd:
tmp147 = atspre_array_ptr_alloc_tsz (arg0, sizeof(gmpknd)) ;
return (tmp147) ;
} /* end of [array_ptr_alloc_01563_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 14751(line=645, offs=7) -- 14994(line=653, offs=4)
*/
ATSstaticdec()
ats_ptr_type
myintvec0_make_04764_gmpknd (ats_int_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp144) ;
ATSlocal (ats_size_type, tmp145) ;
ATSlocal (ats_ptr_type, tmp146) ;
ATSlocal (ats_ptr_type, tmp148) ;

__ats_lab_myintvec0_make_04764_gmpknd:
tmp145 = atspre_size1_of_int1 (arg0) ;
tmp146 = array_ptr_alloc_01563_gmpknd (tmp145) ;
tmp148 = ats_selsin_mac(tmp146, atslab_2) ;
tmp144 = ats_castfn_mac(ats_ptr_type, tmp148) ;
return (tmp144) ;
} /* end of [myintvec0_make_04764_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 15077(line=659, offs=7) -- 15780(line=692, offs=4)
*/
ATSstaticdec()
ats_ptr_type
myintvec_make_04766_gmpknd (ats_int_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp137) ;
ATSlocal (ats_ptr_type, tmp143) ;
ATSlocal (ats_ptr_type, tmp149) ;
// ATSlocal_void (tmp150) ;

__ats_lab_myintvec_make_04766_gmpknd:
tmp143 = myintvec0_make_04764_gmpknd (arg0) ;
tmp149 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp143), atslab_1) ;
/* tmp150 = */ loop_29 (tmp149, arg0) ;
tmp137 = tmp143 ;
return (tmp137) ;
} /* end of [myintvec_make_04766_gmpknd] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 10493(line=364, offs=19) -- 10557(line=365, offs=51)
*/
ATSstaticdec()
ats_ptr_type
array_ptr_takeout_01586_gmpknd (ats_ptr_type arg0, ats_size_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp160) ;

__ats_lab_array_ptr_takeout_01586_gmpknd:
tmp160 = atspre_array_ptr_takeout_tsz (arg0, arg1, sizeof(gmpknd)) ;
return (tmp160) ;
} /* end of [array_ptr_takeout_01586_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 4159(line=168, offs=3) -- 4633(line=186, offs=4)
*/
ATSstaticdec()
ats_void_type
myintvec_addby_cffvar_05291_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, gmpknd arg2, ats_ptr_type arg3, ats_ref_type arg4) {
/* local vardec */
// ATSlocal_void (tmp154) ;
ATSlocal (ats_int_type, tmp155) ;
ATSlocal (ats_bool_type, tmp156) ;
ATSlocal (ats_ptr_type, tmp157) ;
ATSlocal (ats_size_type, tmp158) ;
ATSlocal (ats_ptr_type, tmp159) ;
ATSlocal (ats_ptr_type, tmp161) ;
ATSlocal (gmpknd, tmp162) ;
ATSlocal (gmpknd, tmp163) ;
// ATSlocal_void (tmp164) ;
ATSlocal (ats_int_type, tmp165) ;

__ats_lab_myintvec_addby_cffvar_05291_gmpknd:
tmp155 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_find (arg1, arg3) ;
tmp156 = atspre_igt (tmp155, 0) ;
if (tmp156) {
tmp157 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp158 = atspre_size1_of_int1 (tmp155) ;
tmp159 = array_ptr_takeout_01586_gmpknd (tmp157, tmp158) ;
tmp161 = ats_selsin_mac(tmp159, atslab_2) ;
tmp163 = ats_ptrget_mac(gmpknd, tmp161) ;
tmp162 = add01_myint_myint_04730_gmpknd (tmp163, arg2) ;
ats_ptrget_mac(gmpknd, tmp161) = tmp162 ;
/* tmp154 = */ myint_free_04725_gmpknd (arg2) ;
} else {
/* tmp164 = */ myint_free_04725_gmpknd (arg2) ;
tmp165 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg4), 1) ;
ats_ptrget_mac(ats_int_type, arg4) = tmp165 ;
} /* end of [if] */
return /* (tmp154) */ ;
} /* end of [myintvec_addby_cffvar_05291_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 3019(line=107, offs=3) -- 3293(line=116, offs=4)
*/
ATSstaticdec()
ats_void_type
myintvec_add_int_04762_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp167) ;
ATSlocal (ats_ptr_type, tmp168) ;
ATSlocal (gmpknd, tmp169) ;
ATSlocal (gmpknd, tmp170) ;

__ats_lab_myintvec_add_int_04762_gmpknd:
tmp168 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp170 = ats_ptrget_mac(gmpknd, tmp168) ;
tmp169 = add_myint_int_04729_gmpknd (tmp170, arg1) ;
ats_ptrget_mac(gmpknd, tmp168) = tmp169 ;
return /* (tmp167) */ ;
} /* end of [myintvec_add_int_04762_gmpknd] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 9652(line=333, offs=7) -- 10175(line=348, offs=8)
*/
ATSstaticdec()
ats_void_type
clear_37 (ats_ptr_type arg0, ats_size_type arg1, ats_ptr_type arg2, ats_size_type arg3) {
/* local vardec */
// ATSlocal_void (tmp178) ;
ATSlocal (ats_bool_type, tmp179) ;
// ATSlocal_void (tmp180) ;
ATSlocal (ats_ptr_type, tmp181) ;
ATSlocal (ats_size_type, tmp182) ;

__ats_lab_clear_37:
tmp179 = atspre_gt_size1_int1 (arg1, 0) ;
if (tmp179) {
/* tmp180 = */ ((ats_void_type(*)(ats_ref_type))arg2) (arg0) ;
tmp181 = atspre_padd_size (arg0, arg3) ;
tmp182 = atspre_sub_size1_int1 (arg1, 1) ;
arg0 = tmp181 ;
arg1 = tmp182 ;
arg2 = arg2 ;
arg3 = arg3 ;
goto __ats_lab_clear_37 ; // tail call
} else {
/* empty */
} /* end of [if] */
return /* (tmp178) */ ;
} /* end of [clear_37] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 9569(line=329, offs=15) -- 10265(line=352, offs=4)
*/
ATSstaticdec()
ats_void_type
array_ptr_clear_fun_01576_gmpknd (ats_ref_type arg0, ats_size_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp177) ;

__ats_lab_array_ptr_clear_fun_01576_gmpknd:
/* tmp177 = */ clear_37 (arg0, arg1, arg2, sizeof(gmpknd)) ;
return /* (tmp177) */ ;
} /* end of [array_ptr_clear_fun_01576_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 3893(line=139, offs=45) -- 3923(line=139, offs=75)
*/
ATSstaticdec()
ats_void_type
__ats_fun_38 (ats_ref_type arg0) {
/* local vardec */
// ATSlocal_void (tmp183) ;

__ats_lab___ats_fun_38:
/* tmp183 = */ myint_free_04725_gmpknd (ats_ptrget_mac(gmpknd, arg0)) ;
return /* (tmp183) */ ;
} /* end of [__ats_fun_38] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 3699(line=134, offs=15) -- 4007(line=143, offs=4)
*/
ATSstaticdec()
ats_void_type
myintvec_free_04767_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp173) ;
ATSlocal (ats_ptr_type, tmp174) ;
ATSlocal (ats_size_type, tmp175) ;
// ATSlocal_void (tmp176) ;

__ats_lab_myintvec_free_04767_gmpknd:
tmp174 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp175 = atspre_size1_of_int1 (arg1) ;
/* tmp176 = */ array_ptr_clear_fun_01576_gmpknd (tmp174, tmp175, &__ats_fun_38) ;
/* tmp173 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvec0_free (arg0, arg1) ;
return /* (tmp173) */ ;
} /* end of [myintvec_free_04767_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 5305(line=194, offs=18) -- 5568(line=202, offs=41)
*/
ATSstaticdec()
ats_ptr_type
icnstrlst_negate_04778_gmpknd (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp195) ;
ATSlocal (ats_ptr_type, tmp196) ;
ATSlocal (ats_ptr_type, tmp197) ;
ATSlocal (ats_ptr_type, tmp198) ;
ATSlocal (ats_ptr_type, tmp199) ;
ATSlocal (ats_ptr_type, tmp200) ;
ATSlocal (ats_ptr_type, tmp201) ;

__ats_lab_icnstrlst_negate_04778_gmpknd:
do {
/* branch: __ats_lab_11 */
__ats_lab_11_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_12_0 ; }
__ats_lab_11_1:
tmp196 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ;
tmp197 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ;
tmp199 = ats_ptrget_mac(ats_ptr_type, tmp196) ;
tmp198 = icnstr_negate_04777_gmpknd (tmp199) ;
ats_ptrget_mac(ats_ptr_type, tmp196) = tmp198 ;
tmp201 = ats_ptrget_mac(ats_ptr_type, tmp197) ;
tmp200 = icnstrlst_negate_04778_gmpknd (tmp201) ;
ats_ptrget_mac(ats_ptr_type, tmp197) = tmp200 ;
tmp195 = arg0 ;
break ;

/* branch: __ats_lab_12 */
__ats_lab_12_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_12_1:
tmp195 = arg0 ;
break ;
} while (0) ;
return (tmp195) ;
} /* end of [icnstrlst_negate_04778_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 4962(line=182, offs=15) -- 5247(line=190, offs=32)
*/
ATSstaticdec()
ats_ptr_type
icnstr_negate_04777_gmpknd (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp186) ;
ATSlocal (ats_ptr_type, tmp187) ;
ATSlocal (ats_int_type, tmp188) ;
ATSlocal (ats_int_type, tmp189) ;
ATSlocal (ats_ptr_type, tmp190) ;
ATSlocal (ats_ptr_type, tmp191) ;
ATSlocal (ats_int_type, tmp192) ;
ATSlocal (ats_int_type, tmp193) ;
ATSlocal (ats_ptr_type, tmp194) ;
ATSlocal (ats_ptr_type, tmp202) ;

__ats_lab_icnstr_negate_04777_gmpknd:
do {
/* branch: __ats_lab_9 */
__ats_lab_9_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_10_0 ; }
__ats_lab_9_1:
tmp187 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp189 = ats_ptrget_mac(ats_int_type, tmp187) ;
tmp188 = atspre_ineg (tmp189) ;
ats_ptrget_mac(ats_int_type, tmp187) = tmp188 ;
tmp186 = arg0 ;
break ;

/* branch: __ats_lab_10 */
__ats_lab_10_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_13_0 ; }
__ats_lab_10_1:
tmp190 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp191 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp193 = ats_ptrget_mac(ats_int_type, tmp190) ;
tmp192 = atspre_isub (1, tmp193) ;
ats_ptrget_mac(ats_int_type, tmp190) = tmp192 ;
tmp202 = ats_ptrget_mac(ats_ptr_type, tmp191) ;
tmp194 = icnstrlst_negate_04778_gmpknd (tmp202) ;
ats_ptrget_mac(ats_ptr_type, tmp191) = tmp194 ;
tmp186 = arg0 ;
break ;

/* branch: __ats_lab_13 */
__ats_lab_13_0:
// if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_13_1:
tmp186 = arg0 ;
break ;
} while (0) ;
return (tmp186) ;
} /* end of [icnstr_negate_04777_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 15952(line=704, offs=5) -- 16565(line=722, offs=6)
*/
ATSstaticdec()
ats_void_type
loop_43 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) {
/* local vardec */
// ATSlocal_void (tmp229) ;
ATSlocal (ats_bool_type, tmp230) ;
ATSlocal (gmpknd, tmp231) ;
ATSlocal (gmpknd, tmp232) ;
ATSlocal (ats_ptr_type, tmp233) ;
ATSlocal (ats_ptr_type, tmp234) ;
ATSlocal (ats_int_type, tmp235) ;

__ats_lab_loop_43:
tmp230 = atspre_igt (arg2, 0) ;
if (tmp230) {
tmp232 = ats_ptrget_mac(gmpknd, arg0) ;
tmp231 = myint_copy_04726_gmpknd (tmp232) ;
ats_ptrget_mac(gmpknd, arg1) = tmp231 ;
tmp233 = atspre_padd_size (arg0, sizeof(gmpknd)) ;
tmp234 = atspre_padd_size (arg1, sizeof(gmpknd)) ;
tmp235 = atspre_isub (arg2, 1) ;
arg0 = tmp233 ;
arg1 = tmp234 ;
arg2 = tmp235 ;
goto __ats_lab_loop_43 ; // tail call
} else {
/* empty */
} /* end of [if] */
return /* (tmp229) */ ;
} /* end of [loop_43] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 15861(line=698, offs=6) -- 16845(line=732, offs=4)
*/
ATSstaticdec()
ats_ptr_type
myintvec_copy_04790_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp228) ;
ATSlocal (ats_ptr_type, tmp236) ;
ATSlocal (ats_ptr_type, tmp237) ;
ATSlocal (ats_ptr_type, tmp238) ;
// ATSlocal_void (tmp239) ;

__ats_lab_myintvec_copy_04790_gmpknd:
tmp236 = myintvec0_make_04764_gmpknd (arg1) ;
tmp237 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp238 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp236), atslab_1) ;
/* tmp239 = */ loop_43 (tmp237, tmp238, arg1) ;
tmp228 = tmp236 ;
return (tmp228) ;
} /* end of [myintvec_copy_04790_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 4520(line=164, offs=16) -- 4861(line=176, offs=8)
*/
ATSstaticdec()
ats_ptr_type
icnstrlst_copy_04776_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp244) ;
ATSlocal (ats_ptr_type, tmp245) ;
ATSlocal (ats_ptr_type, tmp246) ;
ATSlocal (ats_ptr_type, tmp247) ;
ATSlocal (ats_ptr_type, tmp248) ;
ATSlocal (ats_ptr_type, tmp249) ;
ATSlocal (ats_ptr_type, tmp250) ;

__ats_lab_icnstrlst_copy_04776_gmpknd:
do {
/* branch: __ats_lab_19 */
__ats_lab_19_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_20_0 ; }
__ats_lab_19_1:
tmp245 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ;
tmp246 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ;
tmp248 = ats_ptrget_mac(ats_ptr_type, tmp245) ;
tmp247 = icnstr_copy_04775_gmpknd (tmp248, arg1) ;
tmp250 = ats_ptrget_mac(ats_ptr_type, tmp246) ;
tmp249 = icnstrlst_copy_04776_gmpknd (tmp250, arg1) ;
tmp244 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp244, atslab_0, tmp247) ;
ats_selptrset_mac(anairiats_sum_4, tmp244, atslab_1, tmp249) ;
break ;

/* branch: __ats_lab_20 */
__ats_lab_20_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_20_1:
tmp244 = (ats_sum_ptr_type)0 ;
break ;
} while (0) ;
return (tmp244) ;
} /* end of [icnstrlst_copy_04776_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 4081(line=148, offs=13) -- 4466(line=160, offs=55)
*/
ATSstaticdec()
ats_ptr_type
icnstr_copy_04775_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp224) ;
ATSlocal (ats_int_type, tmp225) ;
ATSlocal (ats_ptr_type, tmp226) ;
ATSlocal (ats_ptr_type, tmp227) ;
ATSlocal (ats_ptr_type, tmp240) ;
ATSlocal (ats_int_type, tmp241) ;
ATSlocal (ats_ptr_type, tmp242) ;
ATSlocal (ats_ptr_type, tmp243) ;
ATSlocal (ats_ptr_type, tmp251) ;
ATSlocal (ats_ptr_type, tmp252) ;
ATSlocal (ats_ptr_type, tmp253) ;

__ats_lab_icnstr_copy_04775_gmpknd:
do {
/* branch: __ats_lab_17 */
__ats_lab_17_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_18_0 ; }
__ats_lab_17_1:
tmp225 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp226 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp240 = ats_ptrget_mac(ats_ptr_type, tmp226) ;
tmp227 = myintvec_copy_04790_gmpknd (tmp240, arg1) ;
tmp224 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp224)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_5, tmp224, atslab_0, tmp225) ;
ats_selptrset_mac(anairiats_sum_5, tmp224, atslab_1, tmp227) ;
break ;

/* branch: __ats_lab_18 */
__ats_lab_18_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_21_0 ; }
__ats_lab_18_1:
tmp241 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_0) ;
tmp242 = &ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
tmp251 = ats_ptrget_mac(ats_ptr_type, tmp242) ;
tmp243 = icnstrlst_copy_04776_gmpknd (tmp251, arg1) ;
tmp224 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp224)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp224, atslab_0, tmp241) ;
ats_selptrset_mac(anairiats_sum_5, tmp224, atslab_1, tmp243) ;
break ;

/* branch: __ats_lab_21 */
__ats_lab_21_0:
// if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_21_1:
tmp252 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ;
tmp253 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ;
tmp224 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp224)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_7, tmp224, atslab_0, tmp252) ;
ats_selptrset_mac(anairiats_sum_7, tmp224, atslab_1, tmp253) ;
break ;
} while (0) ;
return (tmp224) ;
} /* end of [icnstr_copy_04775_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 3802(line=157, offs=3) -- 4087(line=164, offs=2)
*/
ATSstaticdec()
ats_void_type
myintvec_addby_const_05290_gmpknd (ats_ptr_type arg0, gmpknd arg1) {
/* local vardec */
// ATSlocal_void (tmp299) ;
ATSlocal (ats_ptr_type, tmp300) ;
ATSlocal (gmpknd, tmp301) ;
ATSlocal (gmpknd, tmp302) ;

__ats_lab_myintvec_addby_const_05290_gmpknd:
tmp300 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp302 = ats_ptrget_mac(gmpknd, tmp300) ;
tmp301 = add01_myint_myint_04730_gmpknd (tmp302, arg1) ;
ats_ptrget_mac(gmpknd, tmp300) = tmp301 ;
/* tmp299 = */ myint_free_04725_gmpknd (arg1) ;
return /* (tmp299) */ ;
} /* end of [myintvec_addby_const_05290_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 8460(line=326, offs=11) -- 9350(line=361, offs=4)
*/
ATSstaticdec()
ats_void_type
myintvec_addby_s3exp_05050_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) {
/* local vardec */
// ATSlocal_void (tmp317) ;
ATSlocal (ats_ptr_type, tmp318) ;
ATSlocal (gmpknd, tmp319) ;
ATSlocal (gmpknd, tmp320) ;
ATSlocal (ats_ptr_type, tmp321) ;
ATSlocal (ats_ptr_type, tmp322) ;
ATSlocal (ats_ptr_type, tmp323) ;
ATSlocal (gmpknd, tmp324) ;
ATSlocal (gmpknd, tmp325) ;
ATSlocal (ats_int_type, tmp326) ;
ATSlocal (ats_int_type, tmp327) ;

__ats_lab_myintvec_addby_s3exp_05050_gmpknd:
do {
/* branch: __ats_lab_33 */
__ats_lab_33_0:
if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_34_0 ; }
__ats_lab_33_1:
tmp318 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ;
tmp319 = myint_make_int_04723_gmpknd (1) ;
/* tmp317 = */ myintvec_addby_cffvar_05291_gmpknd (arg0, arg1, tmp319, tmp318, arg3) ;
break ;

/* branch: __ats_lab_34 */
__ats_lab_34_0:
if (((ats_sum_ptr_type)arg2)->tag != 3) { goto __ats_lab_35_0 ; }
__ats_lab_34_1:
tmp320 = myint_make_int_04723_gmpknd (1) ;
/* tmp317 = */ myintvec_addby_const_05290_gmpknd (arg0, tmp320) ;
break ;

/* branch: __ats_lab_35 */
__ats_lab_35_0:
if (((ats_sum_ptr_type)arg2)->tag != 14) { goto __ats_lab_39_0 ; }
__ats_lab_35_1:
tmp321 = ats_caselptrlab_mac(anairiats_sum_7, arg2, atslab_0) ;
tmp322 = ats_caselptrlab_mac(anairiats_sum_7, arg2, atslab_1) ;
do {
/* branch: __ats_lab_36 */
__ats_lab_36_0:
if (((ats_sum_ptr_type)tmp322)->tag != 0) { goto __ats_lab_37_0 ; }
__ats_lab_36_1:
tmp323 = ats_caselptrlab_mac(anairiats_sum_6, tmp322, atslab_0) ;
tmp324 = myint_make_intinf_04724_gmpknd (tmp321) ;
/* tmp317 = */ myintvec_addby_cffvar_05291_gmpknd (arg0, arg1, tmp324, tmp323, arg3) ;
break ;

/* branch: __ats_lab_37 */
__ats_lab_37_0:
if (((ats_sum_ptr_type)tmp322)->tag != 3) { goto __ats_lab_38_0 ; }
__ats_lab_37_1:
tmp325 = myint_make_intinf_04724_gmpknd (tmp321) ;
/* tmp317 = */ myintvec_addby_const_05290_gmpknd (arg0, tmp325) ;
break ;

/* branch: __ats_lab_38 */
__ats_lab_38_0:
__ats_lab_38_1:
tmp326 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ;
ats_ptrget_mac(ats_int_type, arg3) = tmp326 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_39 */
__ats_lab_39_0:
__ats_lab_39_1:
tmp327 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ;
ats_ptrget_mac(ats_int_type, arg3) = tmp327 ;
break ;
} while (0) ;
return /* (tmp317) */ ;
} /* end of [myintvec_addby_s3exp_05050_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 9432(line=365, offs=11) -- 9766(line=377, offs=22)
*/
ATSstaticdec()
ats_void_type
myintvec_addby_s3explst_05063_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_ref_type arg3) {
/* local vardec */
// ATSlocal_void (tmp313) ;
ATSlocal (ats_ptr_type, tmp314) ;
ATSlocal (ats_ptr_type, tmp315) ;
// ATSlocal_void (tmp316) ;

__ats_lab_myintvec_addby_s3explst_05063_gmpknd:
do {
/* branch: __ats_lab_32 */
__ats_lab_32_0:
if (arg2 == (ats_sum_ptr_type)0) { goto __ats_lab_40_0 ; }
__ats_lab_32_1:
tmp314 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_0) ;
tmp315 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_1) ;
/* tmp316 = */ myintvec_addby_s3exp_05050_gmpknd (arg0, arg1, tmp314, arg3) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp315 ;
arg3 = arg3 ;
goto __ats_lab_myintvec_addby_s3explst_05063_gmpknd ; // tail call
break ;

/* branch: __ats_lab_40 */
__ats_lab_40_0:
// if (arg2 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_40_1:
break ;
} while (0) ;
return /* (tmp313) */ ;
} /* end of [myintvec_addby_s3explst_05063_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 9859(line=384, offs=1) -- 10793(line=421, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s3exp2myintvec_04877_gmpknd (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ref_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp291) ;
ATSlocal (ats_ptr_type, tmp292) ;
ATSlocal (ats_int_type, tmp293) ;
ATSlocal (ats_ptr_type, tmp294) ;
ATSlocal (gmpknd, tmp295) ;
// ATSlocal_void (tmp296) ;
ATSlocal (gmpknd, tmp297) ;
// ATSlocal_void (tmp298) ;
ATSlocal (ats_ptr_type, tmp303) ;
ATSlocal (ats_ptr_type, tmp304) ;
ATSlocal (ats_ptr_type, tmp305) ;
ATSlocal (gmpknd, tmp306) ;
// ATSlocal_void (tmp307) ;
ATSlocal (gmpknd, tmp308) ;
// ATSlocal_void (tmp309) ;
ATSlocal (ats_int_type, tmp310) ;
ATSlocal (ats_ptr_type, tmp311) ;
// ATSlocal_void (tmp312) ;
ATSlocal (ats_int_type, tmp328) ;

__ats_lab_s3exp2myintvec_04877_gmpknd:
tmp293 = atspre_iadd (arg1, 1) ;
tmp292 = myintvec_make_04766_gmpknd (tmp293) ;
do {
/* branch: __ats_lab_24 */
__ats_lab_24_0:
if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_25_0 ; }
__ats_lab_24_1:
tmp294 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ;
tmp295 = myint_make_int_04723_gmpknd (1) ;
/* tmp296 = */ myintvec_addby_cffvar_05291_gmpknd (tmp292, arg0, tmp295, tmp294, arg3) ;
tmp291 = tmp292 ;
break ;

/* branch: __ats_lab_25 */
__ats_lab_25_0:
if (((ats_sum_ptr_type)arg2)->tag != 2) { goto __ats_lab_26_0 ; }
__ats_lab_25_1:
tmp291 = tmp292 ;
break ;

/* branch: __ats_lab_26 */
__ats_lab_26_0:
if (((ats_sum_ptr_type)arg2)->tag != 3) { goto __ats_lab_27_0 ; }
__ats_lab_26_1:
tmp297 = myint_make_int_04723_gmpknd (1) ;
/* tmp298 = */ myintvec_addby_const_05290_gmpknd (tmp292, tmp297) ;
tmp291 = tmp292 ;
break ;

/* branch: __ats_lab_27 */
__ats_lab_27_0:
if (((ats_sum_ptr_type)arg2)->tag != 14) { goto __ats_lab_31_0 ; }
__ats_lab_27_1:
tmp303 = ats_caselptrlab_mac(anairiats_sum_7, arg2, atslab_0) ;
tmp304 = ats_caselptrlab_mac(anairiats_sum_7, arg2, atslab_1) ;
do {
/* branch: __ats_lab_28 */
__ats_lab_28_0:
if (((ats_sum_ptr_type)tmp304)->tag != 0) { goto __ats_lab_29_0 ; }
__ats_lab_28_1:
tmp305 = ats_caselptrlab_mac(anairiats_sum_6, tmp304, atslab_0) ;
tmp306 = myint_make_intinf_04724_gmpknd (tmp303) ;
/* tmp307 = */ myintvec_addby_cffvar_05291_gmpknd (tmp292, arg0, tmp306, tmp305, arg3) ;
tmp291 = tmp292 ;
break ;

/* branch: __ats_lab_29 */
__ats_lab_29_0:
if (((ats_sum_ptr_type)tmp304)->tag != 3) { goto __ats_lab_30_0 ; }
__ats_lab_29_1:
tmp308 = myint_make_intinf_04724_gmpknd (tmp303) ;
/* tmp309 = */ myintvec_addby_const_05290_gmpknd (tmp292, tmp308) ;
tmp291 = tmp292 ;
break ;

/* branch: __ats_lab_30 */
__ats_lab_30_0:
__ats_lab_30_1:
tmp310 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ;
ats_ptrget_mac(ats_int_type, arg3) = tmp310 ;
tmp291 = tmp292 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_31 */
__ats_lab_31_0:
if (((ats_sum_ptr_type)arg2)->tag != 15) { goto __ats_lab_41_0 ; }
__ats_lab_31_1:
tmp311 = ats_caselptrlab_mac(anairiats_sum_6, arg2, atslab_0) ;
/* tmp312 = */ myintvec_addby_s3explst_05063_gmpknd (tmp292, arg0, tmp311, arg3) ;
tmp291 = tmp292 ;
break ;

/* branch: __ats_lab_41 */
__ats_lab_41_0:
__ats_lab_41_1:
tmp328 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg3), 1) ;
ats_ptrget_mac(ats_int_type, arg3) = tmp328 ;
tmp291 = tmp292 ;
break ;
} while (0) ;
return (tmp291) ;
} /* end of [s3exp2myintvec_04877_gmpknd] */

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

__ats_lab_prerr_error3_loc_02441_:
/* tmp335 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__prerr_location (arg0) ;
/* tmp334 = */ atspre_prerr_string (ATSstrcst(": error(3)")) ;
return /* (tmp334) */ ;
} /* end of [prerr_error3_loc_02441_] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_icnstr.dats: 4722(line=192, offs=7) -- 8361(line=318, offs=4)
*/
ATSstaticdec()
ats_ptr_type
s3exp2icnstr_04876_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp130) ;
ATSlocal (ats_bool_type, tmp131) ;
ATSlocal (ats_ptr_type, tmp132) ;
ATSlocal (ats_ptr_type, tmp133) ;
ATSlocal (ats_ptr_type, tmp134) ;
ATSlocal (ats_int_type, tmp135) ;
ATSlocal (ats_ptr_type, tmp136) ;
ATSlocal (gmpknd, tmp151) ;
ATSlocal (ats_int_type, tmp152) ;
// ATSlocal_void (tmp153) ;
// ATSlocal_void (tmp166) ;
ATSlocal (ats_bool_type, tmp171) ;
// ATSlocal_void (tmp172) ;
ATSlocal (ats_ptr_type, tmp184) ;
ATSlocal (ats_ptr_type, tmp185) ;
ATSlocal (ats_ptr_type, tmp203) ;
ATSlocal (ats_ptr_type, tmp204) ;
ATSlocal (ats_ptr_type, tmp205) ;
ATSlocal (ats_ptr_type, tmp206) ;
ATSlocal (ats_ptr_type, tmp207) ;
ATSlocal (ats_ptr_type, tmp208) ;
ATSlocal (ats_ptr_type, tmp209) ;
ATSlocal (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 (ats_ptr_type, tmp216) ;
ATSlocal (ats_ptr_type, tmp217) ;
ATSlocal (ats_ptr_type, tmp218) ;
ATSlocal (ats_int_type, tmp219) ;
ATSlocal (ats_ptr_type, tmp220) ;
ATSlocal (ats_ptr_type, tmp221) ;
ATSlocal (ats_ptr_type, tmp222) ;
ATSlocal (ats_ptr_type, tmp223) ;
ATSlocal (ats_ptr_type, tmp254) ;
ATSlocal (ats_ptr_type, tmp255) ;
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) ;
ATSlocal (ats_ptr_type, tmp262) ;
ATSlocal (ats_ptr_type, tmp263) ;
ATSlocal (ats_ptr_type, tmp264) ;
ATSlocal (ats_ptr_type, tmp265) ;
ATSlocal (ats_ptr_type, tmp266) ;
ATSlocal (ats_ptr_type, tmp267) ;
ATSlocal (ats_ptr_type, tmp268) ;
ATSlocal (ats_int_type, tmp269) ;
ATSlocal (ats_ptr_type, tmp270) ;
ATSlocal (ats_ptr_type, tmp271) ;
ATSlocal (ats_ptr_type, tmp272) ;
ATSlocal (ats_ptr_type, tmp273) ;
ATSlocal (ats_ptr_type, tmp274) ;
ATSlocal (ats_ptr_type, tmp275) ;
ATSlocal (ats_ptr_type, tmp276) ;
ATSlocal (ats_ptr_type, tmp277) ;
ATSlocal (ats_ptr_type, tmp278) ;
ATSlocal (ats_ptr_type, tmp279) ;
ATSlocal (ats_ptr_type, tmp280) ;
ATSlocal (ats_ptr_type, tmp281) ;
ATSlocal (ats_ptr_type, tmp282) ;
ATSlocal (ats_ptr_type, tmp283) ;
ATSlocal (ats_ptr_type, tmp284) ;
ATSlocal (ats_ptr_type, tmp285) ;
ATSlocal (ats_ptr_type, tmp286) ;
ATSlocal (ats_int_type, tmp287) ;
ATSlocal (ats_ptr_type, tmp288) ;
ATSlocal (ats_int_type, tmp289) ;
ATSlocal (ats_ptr_type, tmp290) ;
ATSlocal (ats_bool_type, tmp329) ;
// ATSlocal_void (tmp330) ;
ATSlocal (ats_int_type, tmp331) ;
ATSlocal (ats_ptr_type, tmp332) ;
// ATSlocal_void (tmp333) ;
// ATSlocal_void (tmp336) ;
// ATSlocal_void (tmp337) ;
// ATSlocal_void (tmp338) ;
// ATSlocal_void (tmp339) ;

__ats_lab_s3exp2icnstr_04876_gmpknd:
do {
/* branch: __ats_lab_6 */
__ats_lab_6_0:
if (((ats_sum_ptr_type)arg3)->tag != 4) { goto __ats_lab_7_0 ; }
__ats_lab_6_1:
tmp131 = ats_caselptrlab_mac(anairiats_sum_3, arg3, atslab_0) ;
if (tmp131) {
tmp132 = (ats_sum_ptr_type)0 ;
tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp130)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp132) ;
} else {
tmp133 = (ats_sum_ptr_type)0 ;
tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp130)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp133) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_7 */
__ats_lab_7_0:
if (((ats_sum_ptr_type)arg3)->tag != 5) { goto __ats_lab_8_0 ; }
__ats_lab_7_1:
tmp134 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ;
tmp135 = atspre_iadd (arg2, 1) ;
tmp136 = myintvec_make_04766_gmpknd (tmp135) ;
tmp151 = myint_make_int_04723_gmpknd (1) ;
/* ats_int_type tmp152 ; */
tmp152 = 0 ;
/* tmp153 = */ myintvec_addby_cffvar_05291_gmpknd (tmp136, arg1, tmp151, tmp134, (&tmp152)) ;
/* tmp166 = */ myintvec_add_int_04762_gmpknd (tmp136, -1) ;
tmp171 = atspre_gt_int_int (tmp152, 0) ;
if (tmp171) {
/* tmp172 = */ myintvec_free_04767_gmpknd (tmp136, tmp135) ;
tmp130 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp130)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_7, tmp130, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_7, tmp130, atslab_1, ats_castfn_mac(ats_ptr_type, arg3)) ;
} else {
tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp130)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp136) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_8 */
__ats_lab_8_0:
if (((ats_sum_ptr_type)arg3)->tag != 6) { goto __ats_lab_14_0 ; }
__ats_lab_8_1:
tmp184 = ats_caselptrlab_mac(anairiats_sum_6, arg3, atslab_0) ;
tmp185 = s3exp2icnstr_04876_gmpknd (arg0, arg1, arg2, tmp184) ;
tmp130 = icnstr_negate_04777_gmpknd (tmp185) ;
break ;

/* branch: __ats_lab_14 */
__ats_lab_14_0:
if (((ats_sum_ptr_type)arg3)->tag != 7) { goto __ats_lab_15_0 ; }
__ats_lab_14_1:
tmp203 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_0) ;
tmp204 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_1) ;
tmp205 = s3exp2icnstr_04876_gmpknd (arg0, arg1, arg2, tmp203) ;
tmp206 = s3exp2icnstr_04876_gmpknd (arg0, arg1, arg2, tmp204) ;
tmp209 = (ats_sum_ptr_type)0 ;
tmp208 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp208, atslab_0, tmp206) ;
ats_selptrset_mac(anairiats_sum_4, tmp208, atslab_1, tmp209) ;
tmp207 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp207, atslab_0, tmp205) ;
ats_selptrset_mac(anairiats_sum_4, tmp207, atslab_1, tmp208) ;
tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp130)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp207) ;
break ;

/* branch: __ats_lab_15 */
__ats_lab_15_0:
if (((ats_sum_ptr_type)arg3)->tag != 8) { goto __ats_lab_16_0 ; }
__ats_lab_15_1:
tmp210 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_0) ;
tmp211 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_1) ;
tmp212 = s3exp2icnstr_04876_gmpknd (arg0, arg1, arg2, tmp210) ;
tmp213 = s3exp2icnstr_04876_gmpknd (arg0, arg1, arg2, tmp211) ;
tmp216 = (ats_sum_ptr_type)0 ;
tmp215 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp215, atslab_0, tmp213) ;
ats_selptrset_mac(anairiats_sum_4, tmp215, atslab_1, tmp216) ;
tmp214 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp214, atslab_0, tmp212) ;
ats_selptrset_mac(anairiats_sum_4, tmp214, atslab_1, tmp215) ;
tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp130)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp214) ;
break ;

/* branch: __ats_lab_16 */
__ats_lab_16_0:
if (((ats_sum_ptr_type)arg3)->tag != 9) { goto __ats_lab_22_0 ; }
__ats_lab_16_1:
tmp217 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_0) ;
tmp218 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_1) ;
tmp219 = atspre_iadd (arg2, 1) ;
tmp220 = s3exp2icnstr_04876_gmpknd (arg0, arg1, arg2, tmp217) ;
tmp221 = s3exp2icnstr_04876_gmpknd (arg0, arg1, arg2, tmp218) ;
tmp223 = icnstr_copy_04775_gmpknd (tmp220, tmp219) ;
tmp222 = icnstr_negate_04777_gmpknd (tmp223) ;
tmp255 = icnstr_copy_04775_gmpknd (tmp221, tmp219) ;
tmp254 = icnstr_negate_04777_gmpknd (tmp255) ;
tmp259 = (ats_sum_ptr_type)0 ;
tmp258 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp258, atslab_0, tmp221) ;
ats_selptrset_mac(anairiats_sum_4, tmp258, atslab_1, tmp259) ;
tmp257 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp257, atslab_0, tmp220) ;
ats_selptrset_mac(anairiats_sum_4, tmp257, atslab_1, tmp258) ;
tmp256 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp256)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp256, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_5, tmp256, atslab_1, tmp257) ;
tmp263 = (ats_sum_ptr_type)0 ;
tmp262 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp262, atslab_0, tmp254) ;
ats_selptrset_mac(anairiats_sum_4, tmp262, atslab_1, tmp263) ;
tmp261 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp261, atslab_0, tmp222) ;
ats_selptrset_mac(anairiats_sum_4, tmp261, atslab_1, tmp262) ;
tmp260 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp260)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp260, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_5, tmp260, atslab_1, tmp261) ;
tmp266 = (ats_sum_ptr_type)0 ;
tmp265 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp265, atslab_0, tmp260) ;
ats_selptrset_mac(anairiats_sum_4, tmp265, atslab_1, tmp266) ;
tmp264 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp264, atslab_0, tmp256) ;
ats_selptrset_mac(anairiats_sum_4, tmp264, atslab_1, tmp265) ;
tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp130)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp264) ;
break ;

/* branch: __ats_lab_22 */
__ats_lab_22_0:
if (((ats_sum_ptr_type)arg3)->tag != 10) { goto __ats_lab_23_0 ; }
__ats_lab_22_1:
tmp267 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_0) ;
tmp268 = ats_caselptrlab_mac(anairiats_sum_7, arg3, atslab_1) ;
tmp269 = atspre_iadd (arg2, 1) ;
tmp270 = s3exp2icnstr_04876_gmpknd (arg0, arg1, arg2, tmp267) ;
tmp271 = s3exp2icnstr_04876_gmpknd (arg0, arg1, arg2, tmp268) ;
tmp273 = icnstr_copy_04775_gmpknd (tmp270, tmp269) ;
tmp272 = icnstr_negate_04777_gmpknd (tmp273) ;
tmp275 = icnstr_copy_04775_gmpknd (tmp271, tmp269) ;
tmp274 = icnstr_negate_04777_gmpknd (tmp275) ;
tmp279 = (ats_sum_ptr_type)0 ;
tmp278 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp278, atslab_0, tmp274) ;
ats_selptrset_mac(anairiats_sum_4, tmp278, atslab_1, tmp279) ;
tmp277 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp277, atslab_0, tmp270) ;
ats_selptrset_mac(anairiats_sum_4, tmp277, atslab_1, tmp278) ;
tmp276 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp276)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp276, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_5, tmp276, atslab_1, tmp277) ;
tmp283 = (ats_sum_ptr_type)0 ;
tmp282 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp282, atslab_0, tmp271) ;
ats_selptrset_mac(anairiats_sum_4, tmp282, atslab_1, tmp283) ;
tmp281 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp281, atslab_0, tmp272) ;
ats_selptrset_mac(anairiats_sum_4, tmp281, atslab_1, tmp282) ;
tmp280 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp280)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp280, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_5, tmp280, atslab_1, tmp281) ;
tmp286 = (ats_sum_ptr_type)0 ;
tmp285 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp285, atslab_0, tmp280) ;
ats_selptrset_mac(anairiats_sum_4, tmp285, atslab_1, tmp286) ;
tmp284 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp284, atslab_0, tmp276) ;
ats_selptrset_mac(anairiats_sum_4, tmp284, atslab_1, tmp285) ;
tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp130)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp284) ;
break ;

/* branch: __ats_lab_23 */
__ats_lab_23_0:
if (((ats_sum_ptr_type)arg3)->tag != 11) { goto __ats_lab_42_0 ; }
__ats_lab_23_1:
tmp287 = ats_caselptrlab_mac(anairiats_sum_5, arg3, atslab_0) ;
tmp288 = ats_caselptrlab_mac(anairiats_sum_5, arg3, atslab_1) ;
/* ats_int_type tmp289 ; */
tmp289 = 0 ;
tmp290 = s3exp2myintvec_04877_gmpknd (arg1, arg2, tmp288, (&tmp289)) ;
tmp329 = atspre_gt_int_int (tmp289, 0) ;
if (tmp329) {
tmp331 = atspre_iadd (arg2, 1) ;
/* tmp330 = */ myintvec_free_04767_gmpknd (tmp290, tmp331) ;
tmp130 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp130)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_7, tmp130, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_7, tmp130, atslab_1, ats_castfn_mac(ats_ptr_type, arg3)) ;
} else {
tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp130)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, tmp287) ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp290) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_42 */
__ats_lab_42_0:
if (((ats_sum_ptr_type)arg3)->tag != 12) { goto __ats_lab_43_0 ; }
__ats_lab_42_1:
tmp332 = (ats_sum_ptr_type)0 ;
tmp130 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp130)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_0, 0) ;
ats_selptrset_mac(anairiats_sum_5, tmp130, atslab_1, tmp332) ;
break ;

/* branch: __ats_lab_43 */
__ats_lab_43_0:
__ats_lab_43_1:
/* tmp333 = */ prerr_error3_loc_02441_ (arg0) ;
/* tmp336 = */ atspre_prerr_string (ATSstrcst(": this constraint cannot be s3exp2icnstr-handled: s3e0 = ")) ;
/* tmp337 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__prerr_s3exp (arg3) ;
/* tmp338 = */ atspre_prerr_newline () ;
/* tmp339 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ;
tmp130 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp130)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_7, tmp130, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_7, tmp130, atslab_1, ats_castfn_mac(ats_ptr_type, arg3)) ;
break ;
} while (0) ;
return (tmp130) ;
} /* end of [s3exp2icnstr_04876_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 3429(line=144, offs=1) -- 3981(line=168, offs=4)
*/
ATSstaticdec()
ats_ptr_type
loop_26 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp126) ;
ATSlocal (ats_ptr_type, tmp127) ;
ATSlocal (ats_ptr_type, tmp128) ;
ATSlocal (ats_ptr_type, tmp129) ;
ATSlocal (ats_ptr_type, tmp340) ;

__ats_lab_loop_26:
do {
/* branch: __ats_lab_4 */
__ats_lab_4_0:
if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_5_0 ; }
__ats_lab_4_1:
tmp126 = arg4 ;
break ;

/* branch: __ats_lab_5 */
__ats_lab_5_0:
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_5_1:
tmp127 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_0) ;
tmp128 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_1) ;
tmp129 = s3exp2icnstr_04876_gmpknd (arg0, arg1, arg2, tmp127) ;
tmp340 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp340, atslab_0, tmp129) ;
ats_selptrset_mac(anairiats_sum_4, tmp340, atslab_1, arg4) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp128 ;
arg4 = tmp340 ;
goto __ats_lab_loop_26 ; // tail call
break ;
} while (0) ;
return (tmp126) ;
} /* end of [loop_26] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 2594(line=104, offs=7) -- 2980(line=117, offs=29)
*/
ATSstaticdec()
ats_ptr_type
loop_51 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp347) ;
ATSlocal (ats_ptr_type, tmp348) ;
ATSlocal (ats_ptr_type, tmp349) ;
ATSlocal (ats_int_type, tmp350) ;
ATSlocal (ats_ptr_type, tmp351) ;
ATSlocal (ats_bool_type, tmp352) ;

__ats_lab_loop_51:
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:
tmp348 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ;
tmp349 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ;
ATS_FREE(arg0) ;
tmp350 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_find (arg1, tmp348) ;
tmp352 = atspre_igt (tmp350, 0) ;
if (tmp352) {
tmp351 = _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_add (arg2, tmp350) ;
} else {
tmp351 = arg2 ;
} /* end of [if] */
arg0 = tmp349 ;
arg1 = arg1 ;
arg2 = tmp351 ;
goto __ats_lab_loop_51 ; // tail call
break ;

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

/*
// /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 2461(line=99, offs=11) -- 3120(line=123, offs=4)
*/
ATSstaticdec()
ats_ptr_type
indexset_make_s3exp_05084_ats_abs_type (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp346) ;
ATSlocal (ats_ptr_type, tmp353) ;
ATSlocal (ats_ptr_type, tmp354) ;
ATSlocal (ats_ptr_type, tmp355) ;

__ats_lab_indexset_make_s3exp_05084_ats_abs_type:
tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_get_fvs (arg1) ;
tmp354 = _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__s2varset_vt_listize_free (tmp353) ;
tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__indexset_nil () ;
tmp346 = loop_51 (tmp354, arg0, tmp355) ;
return (tmp346) ;
} /* end of [indexset_make_s3exp_05084_ats_abs_type] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 18069(line=882, offs=5) -- 18503(line=900, offs=4)
*/
ATSstaticdec()
ats_ptr_type
loop_57 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* 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) ;

__ats_lab_loop_57:
do {
/* branch: __ats_lab_49 */
__ats_lab_49_0:
if (((ats_sum_ptr_type)arg1)->tag != 0) { goto __ats_lab_50_0 ; }
__ats_lab_49_1:
tmp377 = arg0 ;
break ;

/* branch: __ats_lab_50 */
__ats_lab_50_0:
if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_51_0 ; }
__ats_lab_50_1:
tmp378 = &ats_caselptrlab_mac(anairiats_sum_8, arg1, atslab_4) ;
tmp379 = ats_ptrget_mac(ats_ptr_type, tmp378) ;
tmp380 = ats_castfn_mac(ats_ptr_type, arg1) ;
arg0 = tmp380 ;
arg1 = tmp379 ;
goto __ats_lab_loop_57 ; // tail call
break ;

/* branch: __ats_lab_51 */
__ats_lab_51_0:
// if (((ats_sum_ptr_type)arg1)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_51_1:
tmp381 = &ats_caselptrlab_mac(anairiats_sum_7, arg1, atslab_1) ;
tmp382 = ats_ptrget_mac(ats_ptr_type, tmp381) ;
tmp383 = ats_castfn_mac(ats_ptr_type, arg1) ;
arg0 = tmp383 ;
arg1 = tmp382 ;
goto __ats_lab_loop_57 ; // tail call
break ;
} while (0) ;
return (tmp377) ;
} /* end of [loop_57] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 18014(line=878, offs=6) -- 18548(line=904, offs=4)
*/
ATSstaticdec()
ats_ptr_type
myiveqlst_get_last_05248_gmpknd (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp376) ;

__ats_lab_myiveqlst_get_last_05248_gmpknd:
tmp376 = loop_57 (atspre_null_ptr, arg0) ;
return (tmp376) ;
} /* end of [myiveqlst_get_last_05248_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 2670(line=94, offs=3) -- 2932(line=101, offs=2)
*/
ATSstaticdec()
ats_int_type
myintvec_compare_at_04763_gmpknd (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp395) ;
ATSlocal (ats_ptr_type, tmp396) ;
ATSlocal (ats_size_type, tmp397) ;
ATSlocal (ats_ptr_type, tmp398) ;
ATSlocal (ats_ptr_type, tmp399) ;
ATSlocal (gmpknd, tmp400) ;

__ats_lab_myintvec_compare_at_04763_gmpknd:
tmp396 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp397 = atspre_size1_of_int1 (arg1) ;
tmp398 = array_ptr_takeout_01586_gmpknd (tmp396, tmp397) ;
tmp399 = ats_selsin_mac(tmp398, atslab_2) ;
tmp400 = ats_ptrget_mac(gmpknd, tmp399) ;
tmp395 = compare_myint_int_04747_gmpknd (tmp400, arg2) ;
return (tmp395) ;
} /* end of [myintvec_compare_at_04763_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 2339(line=81, offs=3) -- 2584(line=88, offs=2)
*/
ATSstaticdec()
gmpknd
myintvec_get_at_04760_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (gmpknd, tmp403) ;
ATSlocal (ats_ptr_type, tmp404) ;
ATSlocal (ats_size_type, tmp405) ;
ATSlocal (ats_ptr_type, tmp406) ;
ATSlocal (ats_ptr_type, tmp407) ;
ATSlocal (gmpknd, tmp408) ;

__ats_lab_myintvec_get_at_04760_gmpknd:
tmp404 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp405 = atspre_size1_of_int1 (arg1) ;
tmp406 = array_ptr_takeout_01586_gmpknd (tmp404, tmp405) ;
tmp407 = ats_selsin_mac(tmp406, atslab_2) ;
tmp408 = ats_ptrget_mac(gmpknd, tmp407) ;
tmp403 = myint_copy_04726_gmpknd (tmp408) ;
return (tmp403) ;
} /* end of [myintvec_get_at_04760_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 18874(line=831, offs=5) -- 19225(line=844, offs=6)
*/
ATSstaticdec()
ats_void_type
loop_63 (gmpknd arg0, ats_ptr_type arg1, ats_int_type arg2) {
/* local vardec */
// ATSlocal_void (tmp415) ;
ATSlocal (ats_bool_type, tmp416) ;
ATSlocal (gmpknd, tmp417) ;
ATSlocal (gmpknd, tmp418) ;
ATSlocal (ats_ptr_type, tmp419) ;
ATSlocal (ats_int_type, tmp420) ;

__ats_lab_loop_63:
tmp416 = atspre_igt (arg2, 0) ;
if (tmp416) {
tmp418 = ats_ptrget_mac(gmpknd, arg1) ;
tmp417 = mul10_myint_myint_04733_gmpknd (arg0, tmp418) ;
ats_ptrget_mac(gmpknd, arg1) = tmp417 ;
tmp419 = atspre_padd_size (arg1, sizeof(gmpknd)) ;
tmp420 = atspre_isub (arg2, 1) ;
arg0 = arg0 ;
arg1 = tmp419 ;
arg2 = tmp420 ;
goto __ats_lab_loop_63 ; // tail call
} else {
/* empty */
} /* end of [if] */
return /* (tmp415) */ ;
} /* end of [loop_63] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 18746(line=822, offs=7) -- 19380(line=851, offs=4)
*/
ATSstaticdec()
ats_void_type
myintvec_scale_04794_gmpknd (gmpknd arg0, ats_ptr_type arg1, ats_int_type arg2) {
/* local vardec */
// ATSlocal_void (tmp414) ;
ATSlocal (ats_ptr_type, tmp421) ;

__ats_lab_myintvec_scale_04794_gmpknd:
tmp421 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg1), atslab_1) ;
/* tmp414 = */ loop_63 (arg0, tmp421, arg2) ;
return /* (tmp414) */ ;
} /* end of [myintvec_scale_04794_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 21591(line=948, offs=5) -- 22169(line=966, offs=6)
*/
ATSstaticdec()
ats_void_type
loop_65 (ats_ptr_type arg0, gmpknd arg1, ats_ptr_type arg2, ats_int_type arg3) {
/* local vardec */
// ATSlocal_void (tmp424) ;
ATSlocal (ats_bool_type, tmp425) ;
ATSlocal (gmpknd, tmp426) ;
ATSlocal (gmpknd, tmp427) ;
ATSlocal (gmpknd, tmp428) ;
ATSlocal (gmpknd, tmp429) ;
// ATSlocal_void (tmp430) ;
ATSlocal (ats_ptr_type, tmp431) ;
ATSlocal (ats_ptr_type, tmp432) ;
ATSlocal (ats_int_type, tmp433) ;

__ats_lab_loop_65:
tmp425 = atspre_igt (arg3, 0) ;
if (tmp425) {
tmp427 = ats_ptrget_mac(gmpknd, arg2) ;
tmp426 = mul11_myint_myint_04734_gmpknd (arg1, tmp427) ;
tmp429 = ats_ptrget_mac(gmpknd, arg0) ;
tmp428 = add01_myint_myint_04730_gmpknd (tmp429, tmp426) ;
ats_ptrget_mac(gmpknd, arg0) = tmp428 ;
/* tmp430 = */ myint_free_04725_gmpknd (tmp426) ;
tmp431 = atspre_padd_size (arg0, sizeof(gmpknd)) ;
tmp432 = atspre_padd_size (arg2, sizeof(gmpknd)) ;
tmp433 = atspre_isub (arg3, 1) ;
arg0 = tmp431 ;
arg1 = arg1 ;
arg2 = tmp432 ;
arg3 = tmp433 ;
goto __ats_lab_loop_65 ; // tail call
} else {
/* empty */
} /* end of [if] */
return /* (tmp424) */ ;
} /* end of [loop_65] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 21425(line=937, offs=7) -- 22433(line=975, offs=4)
*/
ATSstaticdec()
ats_void_type
myintvec_addby_cff_04797_gmpknd (ats_ptr_type arg0, gmpknd arg1, ats_ptr_type arg2, ats_int_type arg3) {
/* local vardec */
// ATSlocal_void (tmp423) ;
ATSlocal (ats_ptr_type, tmp434) ;
ATSlocal (ats_ptr_type, tmp435) ;

__ats_lab_myintvec_addby_cff_04797_gmpknd:
tmp434 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp435 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg2), atslab_1) ;
/* tmp423 = */ loop_65 (tmp434, arg1, tmp435, arg3) ;
return /* (tmp423) */ ;
} /* end of [myintvec_addby_cff_04797_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 11181(line=515, offs=3) -- 12112(line=549, offs=4)
*/
ATSstaticdec()
ats_void_type
myintvec_elimeq_at_05237_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) {
/* local vardec */
// ATSlocal_void (tmp393) ;
ATSlocal (ats_int_type, tmp394) ;
ATSlocal (ats_bool_type, tmp401) ;
ATSlocal (gmpknd, tmp402) ;
ATSlocal (gmpknd, tmp409) ;
ATSlocal (ats_int_type, tmp410) ;
ATSlocal (ats_bool_type, tmp411) ;
ATSlocal (gmpknd, tmp412) ;
// ATSlocal_void (tmp413) ;
// ATSlocal_void (tmp422) ;
// ATSlocal_void (tmp436) ;
// ATSlocal_void (tmp437) ;
ATSlocal (gmpknd, tmp438) ;
// ATSlocal_void (tmp439) ;
// ATSlocal_void (tmp440) ;
// ATSlocal_void (tmp441) ;
// ATSlocal_void (tmp442) ;

__ats_lab_myintvec_elimeq_at_05237_gmpknd:
tmp394 = myintvec_compare_at_04763_gmpknd (arg0, arg3, 0) ;
tmp401 = atspre_neq_int_int (tmp394, 0) ;
if (tmp401) {
/* gmpknd tmp402 ; */
tmp402 = myintvec_get_at_04760_gmpknd (arg0, arg3) ;
/* gmpknd tmp409 ; */
tmp409 = myintvec_get_at_04760_gmpknd (arg1, arg3) ;
tmp410 = compare_myint_int_04747_gmpknd (tmp409, 0) ;
tmp411 = atspre_gte_int_int (tmp410, 0) ;
if (tmp411) {
tmp412 = neg_myint_04727_gmpknd (tmp402) ;
tmp402 = tmp412 ;
/* tmp413 = */ myintvec_scale_04794_gmpknd (tmp409, arg0, arg2) ;
/* tmp422 = */ myintvec_addby_cff_04797_gmpknd (arg0, tmp402, arg1, arg2) ;
/* tmp436 = */ myint_free_04725_gmpknd (tmp402) ;
/* tmp437 = */ myint_free_04725_gmpknd (tmp409) ;
} else {
tmp438 = neg_myint_04727_gmpknd (tmp409) ;
tmp409 = tmp438 ;
/* tmp439 = */ myintvec_scale_04794_gmpknd (tmp409, arg0, arg2) ;
/* tmp440 = */ myintvec_addby_cff_04797_gmpknd (arg0, tmp402, arg1, arg2) ;
/* tmp441 = */ myint_free_04725_gmpknd (tmp402) ;
/* tmp442 = */ myint_free_04725_gmpknd (tmp409) ;
} /* end of [if] */
} else {
/* empty */
} /* end of [if] */
return /* (tmp393) */ ;
} /* end of [myintvec_elimeq_at_05237_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 18828(line=921, offs=32) -- 19936(line=971, offs=4)
*/
ATSstaticdec()
ats_void_type
myintvec_elimeqlst_rev_04571_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) {
/* local vardec */
// ATSlocal_void (tmp385) ;
ATSlocal (ats_ptr_type, tmp386) ;
ATSlocal (ats_int_type, tmp387) ;
ATSlocal (ats_ptr_type, tmp388) ;
ATSlocal (ats_int_type, tmp389) ;
ATSlocal (ats_ptr_type, tmp390) ;
// ATSlocal_void (tmp391) ;
ATSlocal (ats_bool_type, tmp392) ;
ATSlocal (ats_ptr_type, tmp443) ;
ATSlocal (ats_ptr_type, tmp444) ;
ATSlocal (ats_bool_type, tmp445) ;
ATSlocal (ats_ptr_type, tmp446) ;

__ats_lab_myintvec_elimeqlst_rev_04571_gmpknd:
do {
/* branch: __ats_lab_52 */
__ats_lab_52_0:
if (((ats_sum_ptr_type)arg2)->tag != 0) { goto __ats_lab_53_0 ; }
__ats_lab_52_1:
tmp386 = atspre_null_ptr ;
break ;

/* branch: __ats_lab_53 */
__ats_lab_53_0:
if (((ats_sum_ptr_type)arg2)->tag != 1) { goto __ats_lab_54_0 ; }
__ats_lab_53_1:
tmp387 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_0) ;
tmp388 = &ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_1) ;
tmp389 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_2) ;
tmp390 = ats_caselptrlab_mac(anairiats_sum_8, arg2, atslab_3) ;
tmp392 = atspre_lte_int_int (arg0, tmp387) ;
if (tmp392) {
tmp443 = ats_ptrget_mac(ats_ptr_type, tmp388) ;
/* tmp391 = */ myintvec_elimeq_at_05237_gmpknd (arg1, tmp443, arg3, tmp389) ;
} else {
/* empty */
} /* end of [if] */
tmp386 = tmp390 ;
break ;

/* branch: __ats_lab_54 */
__ats_lab_54_0:
// if (((ats_sum_ptr_type)arg2)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_54_1:
tmp444 = ats_caselptrlab_mac(anairiats_sum_7, arg2, atslab_0) ;
tmp386 = tmp444 ;
break ;
} while (0) ;
tmp445 = atspre_pgt (tmp386, atspre_null_ptr) ;
if (tmp445) {
tmp446 = ats_castfn_mac(ats_ptr_type, tmp386) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp446 ;
arg3 = arg3 ;
goto __ats_lab_myintvec_elimeqlst_rev_04571_gmpknd ; // tail call
} else {
/* empty */
} /* end of [if] */
return /* (tmp385) */ ;
} /* end of [myintvec_elimeqlst_rev_04571_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 20033(line=977, offs=7) -- 20438(line=991, offs=4)
*/
ATSstaticdec()
ats_void_type
myintvec_elimeqlst_05249_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) {
/* local vardec */
// ATSlocal_void (tmp374) ;
ATSlocal (ats_ptr_type, tmp375) ;
ATSlocal (ats_bool_type, tmp384) ;

__ats_lab_myintvec_elimeqlst_05249_gmpknd:
tmp375 = myiveqlst_get_last_05248_gmpknd (arg2) ;
tmp384 = atspre_pgt (tmp375, atspre_null_ptr) ;
if (tmp384) {
/* tmp374 = */ myintvec_elimeqlst_rev_04571_gmpknd (arg0, arg1, ats_castfn_mac(ats_ptr_type, tmp375), arg3) ;
} else {
/* empty */
} /* end of [if] */
return /* (tmp374) */ ;
} /* end of [myintvec_elimeqlst_05249_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 1855(line=61, offs=14) -- 1893(line=61, offs=52)
*/
ATSstaticdec()
ats_bool_type
eq_myint_int_04745_gmpknd (gmpknd arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp453) ;
ATSlocal (ats_int_type, tmp454) ;

__ats_lab_eq_myint_int_04745_gmpknd:
tmp454 = compare_myint_int_04747_gmpknd (arg0, arg1) ;
tmp453 = atspre_eq_int_int (tmp454, 0) ;
return (tmp453) ;
} /* end of [eq_myint_int_04745_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 6610(line=256, offs=1) -- 7074(line=277, offs=4)
*/
ATSstaticdec()
ats_bool_type
loop_68 (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp450) ;
ATSlocal (ats_bool_type, tmp451) ;
ATSlocal (ats_bool_type, tmp452) ;
ATSlocal (gmpknd, tmp455) ;
ATSlocal (ats_ptr_type, tmp456) ;
ATSlocal (ats_int_type, tmp457) ;

__ats_lab_loop_68:
tmp451 = atspre_igt (arg1, 0) ;
if (tmp451) {
tmp455 = ats_ptrget_mac(gmpknd, arg0) ;
tmp452 = eq_myint_int_04745_gmpknd (tmp455, 0) ;
if (tmp452) {
tmp456 = atspre_padd_size (arg0, sizeof(gmpknd)) ;
tmp457 = atspre_isub (arg1, 1) ;
arg0 = tmp456 ;
arg1 = tmp457 ;
goto __ats_lab_loop_68 ; // tail call
} else {
tmp450 = ats_false_bool ;
} /* end of [if] */
} else {
tmp450 = ats_true_bool ;
} /* end of [if] */
return (tmp450) ;
} /* end of [loop_68] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 1787(line=58, offs=15) -- 1826(line=58, offs=54)
*/
ATSstaticdec()
ats_bool_type
gte_myint_int_04744_gmpknd (gmpknd arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp465) ;
ATSlocal (ats_int_type, tmp466) ;

__ats_lab_gte_myint_int_04744_gmpknd:
tmp466 = compare_myint_int_04747_gmpknd (arg0, arg1) ;
tmp465 = atspre_gte_int_int (tmp466, 0) ;
return (tmp465) ;
} /* end of [gte_myint_int_04744_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 1585(line=51, offs=14) -- 1623(line=51, offs=52)
*/
ATSstaticdec()
ats_bool_type
lt_myint_int_04741_gmpknd (gmpknd arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp469) ;
ATSlocal (ats_int_type, tmp470) ;

__ats_lab_lt_myint_int_04741_gmpknd:
tmp470 = compare_myint_int_04747_gmpknd (arg0, arg1) ;
tmp469 = atspre_lt_int_int (tmp470, 0) ;
return (tmp469) ;
} /* end of [lt_myint_int_04741_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 1922(line=63, offs=15) -- 1961(line=63, offs=54)
*/
ATSstaticdec()
ats_bool_type
neq_myint_int_04746_gmpknd (gmpknd arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp475) ;
ATSlocal (ats_int_type, tmp476) ;

__ats_lab_neq_myint_int_04746_gmpknd:
tmp476 = compare_myint_int_04747_gmpknd (arg0, arg1) ;
tmp475 = atspre_neq_int_int (tmp476, 0) ;
return (tmp475) ;
} /* end of [neq_myint_int_04746_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 6558(line=251, offs=6) -- 7907(line=310, offs=4)
*/
ATSstaticdec()
ats_int_type
myintvec_inspect_04781_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp449) ;
ATSlocal (ats_ptr_type, tmp458) ;
ATSlocal (ats_bool_type, tmp459) ;
ATSlocal (ats_ptr_type, tmp460) ;
ATSlocal (ats_int_type, tmp461) ;
ATSlocal (ats_int_type, tmp462) ;
ATSlocal (ats_bool_type, tmp464) ;
ATSlocal (gmpknd, tmp467) ;
ATSlocal (ats_bool_type, tmp468) ;
ATSlocal (gmpknd, tmp471) ;
ATSlocal (ats_bool_type, tmp472) ;
ATSlocal (gmpknd, tmp473) ;
ATSlocal (ats_bool_type, tmp474) ;
ATSlocal (gmpknd, tmp477) ;

__ats_lab_myintvec_inspect_04781_gmpknd:
tmp458 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg1), atslab_1) ;
tmp460 = atspre_padd_size (tmp458, sizeof(gmpknd)) ;
tmp461 = atspre_isub (arg2, 1) ;
tmp459 = loop_68 (tmp460, tmp461) ;
/* ats_int_type tmp462 ; */
tmp462 = 0 ;
if (tmp459) {
do {
/* branch: __ats_lab_55 */
__ats_lab_55_0:
if (arg0 != 2) { goto __ats_lab_56_0 ; }
__ats_lab_55_1:
tmp467 = ats_ptrget_mac(gmpknd, tmp458) ;
tmp464 = gte_myint_int_04744_gmpknd (tmp467, 0) ;
if (tmp464) {
tmp462 = 1 ;
} else {
tmp462 = -1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_56 */
__ats_lab_56_0:
if (arg0 != -2) { goto __ats_lab_57_0 ; }
__ats_lab_56_1:
tmp471 = ats_ptrget_mac(gmpknd, tmp458) ;
tmp468 = lt_myint_int_04741_gmpknd (tmp471, 0) ;
if (tmp468) {
tmp462 = 1 ;
} else {
tmp462 = -1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_57 */
__ats_lab_57_0:
if (arg0 != 1) { goto __ats_lab_58_0 ; }
__ats_lab_57_1:
tmp473 = ats_ptrget_mac(gmpknd, tmp458) ;
tmp472 = eq_myint_int_04745_gmpknd (tmp473, 0) ;
if (tmp472) {
tmp462 = 1 ;
} else {
tmp462 = -1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_58 */
__ats_lab_58_0:
if (arg0 != -1) { goto __ats_lab_59_0 ; }
__ats_lab_58_1:
tmp477 = ats_ptrget_mac(gmpknd, tmp458) ;
tmp474 = neq_myint_int_04746_gmpknd (tmp477, 0) ;
if (tmp474) {
tmp462 = 1 ;
} else {
tmp462 = -1 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_59 */
__ats_lab_59_0:
__ats_lab_59_1:
break ;
} while (0) ;
} else {
/* empty */
} /* end of [if] */
tmp449 = tmp462 ;
return (tmp449) ;
} /* end of [myintvec_inspect_04781_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 7973(line=314, offs=3) -- 8017(line=314, offs=47)
*/
ATSstaticdec()
ats_int_type
myintvec_inspect_lt_04782_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp448) ;

__ats_lab_myintvec_inspect_lt_04782_gmpknd:
tmp448 = myintvec_inspect_04781_gmpknd (-2, arg0, arg1) ;
return (tmp448) ;
} /* end of [myintvec_inspect_lt_04782_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 18175(line=790, offs=1) -- 18502(line=804, offs=6)
*/
ATSstaticdec()
ats_void_type
loop_74 (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp481) ;
ATSlocal (ats_bool_type, tmp482) ;
ATSlocal (gmpknd, tmp483) ;
ATSlocal (gmpknd, tmp484) ;
ATSlocal (ats_ptr_type, tmp485) ;
ATSlocal (ats_int_type, tmp486) ;

__ats_lab_loop_74:
tmp482 = atspre_igt (arg1, 0) ;
if (tmp482) {
tmp484 = ats_ptrget_mac(gmpknd, arg0) ;
tmp483 = neg_myint_04727_gmpknd (tmp484) ;
ats_ptrget_mac(gmpknd, arg0) = tmp483 ;
tmp485 = atspre_padd_size (arg0, sizeof(gmpknd)) ;
tmp486 = atspre_isub (arg1, 1) ;
arg0 = tmp485 ;
arg1 = tmp486 ;
goto __ats_lab_loop_74 ; // tail call
} else {
/* empty */
} /* end of [if] */
return /* (tmp481) */ ;
} /* end of [loop_74] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 18060(line=781, offs=7) -- 18661(line=816, offs=4)
*/
ATSstaticdec()
ats_void_type
myintvec_negate_04793_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp480) ;
ATSlocal (ats_ptr_type, tmp487) ;

__ats_lab_myintvec_negate_04793_gmpknd:
tmp487 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
/* tmp480 = */ loop_74 (tmp487, arg1) ;
return /* (tmp480) */ ;
} /* end of [myintvec_negate_04793_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 12558(line=552, offs=1) -- 12938(line=569, offs=6)
*/
ATSstaticdec()
ats_void_type
loop_77 (gmpknd arg0, ats_ptr_type arg1, ats_int_type arg2) {
/* local vardec */
// ATSlocal_void (tmp493) ;
ATSlocal (ats_bool_type, tmp494) ;
ATSlocal (gmpknd, tmp495) ;
ATSlocal (gmpknd, tmp496) ;
ATSlocal (ats_ptr_type, tmp497) ;
ATSlocal (ats_int_type, tmp498) ;

__ats_lab_loop_77:
tmp494 = atspre_igt (arg2, 0) ;
if (tmp494) {
tmp496 = ats_ptrget_mac(gmpknd, arg1) ;
tmp495 = ediv01_myint_myint_04737_gmpknd (tmp496, arg0) ;
ats_ptrget_mac(gmpknd, arg1) = tmp495 ;
tmp497 = atspre_padd_size (arg1, sizeof(gmpknd)) ;
tmp498 = atspre_isub (arg2, 1) ;
arg0 = arg0 ;
arg1 = tmp497 ;
arg2 = tmp498 ;
goto __ats_lab_loop_77 ; // tail call
} else {
/* empty */
} /* end of [if] */
return /* (tmp493) */ ;
} /* end of [loop_77] */

/*
// /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()
gmpknd
ptr0_get_01759_gmpknd (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (gmpknd, tmp508) ;

__ats_lab_ptr0_get_01759_gmpknd:
tmp508 = ats_ptrget_mac(gmpknd, ats_castfn_mac(ats_ptr_type, arg0)) ;
return (tmp508) ;
} /* end of [ptr0_get_01759_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 10322(line=428, offs=1) -- 11020(line=470, offs=2)
*/
ATSstaticdec()
ats_void_type
loop_80 (ats_int_type env0, ats_ptr_type env1, ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp505) ;
ATSlocal (ats_bool_type, tmp506) ;
ATSlocal (gmpknd, tmp507) ;
ATSlocal (ats_bool_type, tmp509) ;
ATSlocal (ats_bool_type, tmp510) ;
ATSlocal (gmpknd, tmp511) ;
ATSlocal (gmpknd, tmp512) ;
ATSlocal (ats_ptr_type, tmp513) ;
ATSlocal (ats_int_type, tmp514) ;
// ATSlocal_void (tmp515) ;
ATSlocal (gmpknd, tmp516) ;
ATSlocal (gmpknd, tmp517) ;
ATSlocal (ats_ptr_type, tmp518) ;
ATSlocal (ats_int_type, tmp519) ;

__ats_lab_loop_80:
tmp506 = atspre_lt_int_int (arg1, env0) ;
if (tmp506) {
tmp507 = ptr0_get_01759_gmpknd (arg0) ;
tmp509 = neq_myint_int_04746_gmpknd (tmp507, 0) ;
if (tmp509) {
tmp510 = neq_myint_int_04746_gmpknd (tmp507, 1) ;
if (tmp510) {
tmp512 = ats_ptrget_mac(gmpknd, env1) ;
tmp511 = gcd01_myint_myint_04740_gmpknd (tmp512, tmp507) ;
ats_ptrget_mac(gmpknd, env1) = tmp511 ;
tmp513 = atspre_padd_size (arg0, sizeof(gmpknd)) ;
tmp514 = atspre_add_int_int (arg1, 1) ;
arg0 = tmp513 ;
arg1 = tmp514 ;
goto __ats_lab_loop_80 ; // tail call
} else {
tmp516 = ats_ptrget_mac(gmpknd, env1) ;
/* tmp515 = */ myint_free_04725_gmpknd (tmp516) ;
tmp517 = myint_make_int_04723_gmpknd (1) ;
ats_ptrget_mac(gmpknd, env1) = tmp517 ;
} /* end of [if] */
} else {
tmp518 = atspre_padd_size (arg0, sizeof(gmpknd)) ;
tmp519 = atspre_add_int_int (arg1, 1) ;
arg0 = tmp518 ;
arg1 = tmp519 ;
goto __ats_lab_loop_80 ; // tail call
} /* end of [if] */
} else {
/* empty */
} /* end of [if] */
return /* (tmp505) */ ;
} /* end of [loop_80] */

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

ats_void_type
loop_80_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_int_type arg1) {
loop_80 (((loop_80_closure_type*)cloptr)->closure_env_0, ((loop_80_closure_type*)cloptr)->closure_env_1, arg0, arg1) ; return ;
} /* end of function */

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

ats_clo_ptr_type
loop_80_closure_make (ats_int_type env0, ats_ptr_type env1) {
loop_80_closure_type *p_clo = ATS_MALLOC(sizeof(loop_80_closure_type)) ;
loop_80_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 9501(line=388, offs=12) -- 11209(line=479, offs=4)
*/
ATSstaticdec()
ats_void_type
myintvec_cffgcd_main_04131_gmpknd (ats_ptr_type arg0, ats_int_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp504) ;
ATSlocal (ats_ptr_type, tmp520) ;
ATSlocal (ats_ptr_type, tmp521) ;

__ats_lab_myintvec_cffgcd_main_04131_gmpknd:
tmp520 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp521 = atspre_padd_size (tmp520, sizeof(gmpknd)) ;
/* tmp504 = */ loop_80 (arg1, arg2, tmp521, 1) ;
return /* (tmp504) */ ;
} /* end of [myintvec_cffgcd_main_04131_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 11302(line=485, offs=6) -- 12298(line=535, offs=4)
*/
ATSstaticdec()
gmpknd
myintvec_cffgcd_04787_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (gmpknd, tmp500) ;
ATSlocal (gmpknd, tmp501) ;
// ATSlocal_void (tmp502) ;
// ATSlocal_void (tmp503) ;
ATSlocal (ats_ptr_type, tmp522) ;

__ats_lab_myintvec_cffgcd_04787_gmpknd:
/* gmpknd tmp501 ; */
tmp501 = myint_make_int_04723_gmpknd (0) ;
ATS_TRYWITH_TRY(tmp522)
/* tmp503 = */ myintvec_cffgcd_main_04131_gmpknd (ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, arg0)), arg1, (&tmp501)) ;
/* tmp502 = tmp503 */ ;
ATS_TRYWITH_WITH(tmp522)
do {
/* branch: __ats_lab_60 */
__ats_lab_60_0:
if (tmp522 != &_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__Finished) { ats_raise_exn (tmp522) ; }
__ats_lab_60_1:
break ;
} while (0) ;
ATS_TRYWITH_END() ;

tmp500 = tmp501 ;
return (tmp500) ;
} /* end of [myintvec_cffgcd_04787_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 1720(line=56, offs=14) -- 1758(line=56, offs=52)
*/
ATSstaticdec()
ats_bool_type
gt_myint_int_04743_gmpknd (gmpknd arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp524) ;
ATSlocal (ats_int_type, tmp525) ;

__ats_lab_gt_myint_int_04743_gmpknd:
tmp525 = compare_myint_int_04747_gmpknd (arg0, arg1) ;
tmp524 = atspre_gt_int_int (tmp525, 0) ;
return (tmp524) ;
} /* end of [gt_myint_int_04743_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 12407(line=543, offs=7) -- 14127(line=613, offs=4)
*/
ATSstaticdec()
ats_int_type
myintvec_normalize_05217_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_int_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp492) ;
ATSlocal (gmpknd, tmp499) ;
ATSlocal (ats_bool_type, tmp523) ;
ATSlocal (ats_ptr_type, tmp526) ;
ATSlocal (ats_int_type, tmp527) ;
// ATSlocal_void (tmp528) ;
ATSlocal (ats_ptr_type, tmp529) ;
ATSlocal (ats_int_type, tmp530) ;
// ATSlocal_void (tmp531) ;
ATSlocal (ats_bool_type, tmp532) ;
ATSlocal (ats_bool_type, tmp533) ;
ATSlocal (gmpknd, tmp534) ;
ATSlocal (gmpknd, tmp535) ;
ATSlocal (gmpknd, tmp536) ;
ATSlocal (gmpknd, tmp537) ;
ATSlocal (gmpknd, tmp538) ;
ATSlocal (gmpknd, tmp539) ;
ATSlocal (gmpknd, tmp540) ;
ATSlocal (gmpknd, tmp541) ;
ATSlocal (gmpknd, tmp542) ;
ATSlocal (ats_bool_type, tmp543) ;
ATSlocal (gmpknd, tmp544) ;
ATSlocal (gmpknd, tmp545) ;
ATSlocal (ats_bool_type, tmp547) ;
ATSlocal (gmpknd, tmp548) ;
ATSlocal (gmpknd, tmp549) ;
// ATSlocal_void (tmp550) ;
ATSlocal (ats_ptr_type, tmp551) ;
// ATSlocal_void (tmp552) ;
// ATSlocal_void (tmp553) ;

__ats_lab_myintvec_normalize_05217_gmpknd:
tmp499 = myintvec_cffgcd_04787_gmpknd (arg1, arg2) ;
tmp523 = gt_myint_int_04743_gmpknd (tmp499, 1) ;
if (tmp523) {
tmp526 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg1), atslab_1) ;
/* ats_int_type tmp527 ; */
tmp527 = 0 ;
tmp529 = atspre_padd_size (tmp526, sizeof(gmpknd)) ;
tmp530 = atspre_isub (arg2, 1) ;
/* tmp528 = */ loop_77 (tmp499, tmp529, tmp530) ;
do {
/* branch: __ats_lab_61 */
__ats_lab_61_0:
__ats_lab_61_1:
tmp532 = atspre_eq_int_int (arg0, 2) ;
if (!tmp532) { goto __ats_lab_62_1 ; }
tmp534 = ats_ptrget_mac(gmpknd, tmp526) ;
tmp533 = gte_myint_int_04744_gmpknd (tmp534, 0) ;
if (tmp533) {
tmp536 = ats_ptrget_mac(gmpknd, tmp526) ;
tmp535 = div01_myint_myint_04735_gmpknd (tmp536, tmp499) ;
ats_ptrget_mac(gmpknd, tmp526) = tmp535 ;
} else {
tmp538 = ats_ptrget_mac(gmpknd, tmp526) ;
tmp537 = sub01_myint_myint_04731_gmpknd (tmp538, tmp499) ;
ats_ptrget_mac(gmpknd, tmp526) = tmp537 ;
tmp540 = ats_ptrget_mac(gmpknd, tmp526) ;
tmp539 = add_myint_int_04729_gmpknd (tmp540, 1) ;
ats_ptrget_mac(gmpknd, tmp526) = tmp539 ;
tmp542 = ats_ptrget_mac(gmpknd, tmp526) ;
tmp541 = div01_myint_myint_04735_gmpknd (tmp542, tmp499) ;
ats_ptrget_mac(gmpknd, tmp526) = tmp541 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_62 */
__ats_lab_62_0:
__ats_lab_62_1:
tmp543 = atspre_eq_int_int (arg0, 1) ;
if (!tmp543) { goto __ats_lab_63_1 ; }
tmp545 = ats_ptrget_mac(gmpknd, tmp526) ;
tmp544 = mod11_myint_myint_04739_gmpknd (tmp545, tmp499) ;
tmp547 = eq_myint_int_04745_gmpknd (tmp544, 0) ;
if (tmp547) {
tmp549 = ats_ptrget_mac(gmpknd, tmp526) ;
tmp548 = ediv01_myint_myint_04737_gmpknd (tmp549, tmp499) ;
ats_ptrget_mac(gmpknd, tmp526) = tmp548 ;
} else {
tmp527 = -1 ;
} /* end of [if] */
/* tmp531 = */ myint_free_04725_gmpknd (tmp544) ;
break ;

/* branch: __ats_lab_63 */
__ats_lab_63_0:
__ats_lab_63_1:
tmp551 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_lintprgm.dats: 13818(line=601, offs=18) -- 13834(line=601, offs=34)", ATSstrcst("\n")) ;
/* tmp550 = */ atspre_assert_errmsg (ats_false_bool, tmp551) ;
tmp527 = -1 ;
break ;
} while (0) ;
/* tmp552 = */ myint_free_04725_gmpknd (tmp499) ;
tmp492 = tmp527 ;
} else {
/* tmp553 = */ myint_free_04725_gmpknd (tmp499) ;
tmp492 = 0 ;
} /* end of [if] */
return (tmp492) ;
} /* end of [myintvec_normalize_05217_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 14198(line=617, offs=3) -- 14275(line=619, offs=2)
*/
ATSstaticdec()
ats_void_type
myintvec_normalize_gte_04788_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp490) ;
ATSlocal (ats_int_type, tmp491) ;

__ats_lab_myintvec_normalize_gte_04788_gmpknd:
tmp491 = myintvec_normalize_05217_gmpknd (2, arg0, arg1) ;
return /* (tmp490) */ ;
} /* end of [myintvec_normalize_gte_04788_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 22438(line=1099, offs=17) -- 23051(line=1128, offs=4)
*/
ATSstaticdec()
ats_int_type
auxlt_04604_gmpknd (ats_int_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_int_type arg4) {
/* local vardec */
ATSlocal (ats_int_type, tmp372) ;
// ATSlocal_void (tmp373) ;
ATSlocal (ats_int_type, tmp447) ;
ATSlocal (ats_bool_type, tmp478) ;
// ATSlocal_void (tmp479) ;
// ATSlocal_void (tmp488) ;
// ATSlocal_void (tmp489) ;
ATSlocal (ats_ptr_type, tmp554) ;
// ATSlocal_void (tmp555) ;

__ats_lab_auxlt_04604_gmpknd:
/* tmp373 = */ myintvec_elimeqlst_05249_gmpknd (0, arg3, ats_ptrget_mac(ats_ptr_type, arg2), arg4) ;
tmp447 = myintvec_inspect_lt_04782_gmpknd (arg3, arg4) ;
tmp478 = atspre_ieq (tmp447, 0) ;
if (tmp478) {
/* tmp479 = */ myintvec_negate_04793_gmpknd (arg3, arg4) ;
/* tmp488 = */ myintvec_add_int_04762_gmpknd (arg3, -1) ;
/* tmp489 = */ myintvec_normalize_gte_04788_gmpknd (arg3, arg4) ;
tmp554 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp554)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_9, tmp554, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_9, tmp554, atslab_1, arg3) ;
ats_selptrset_mac(anairiats_sum_9, tmp554, atslab_2, ats_ptrget_mac(ats_ptr_type, arg1)) ;
ats_ptrget_mac(ats_ptr_type, arg1) = tmp554 ;
tmp372 = 0 ;
} else {
/* tmp555 = */ myintvec_free_04767_gmpknd (arg3, arg4) ;
tmp372 = tmp447 ;
} /* end of [if] */
return (tmp372) ;
} /* end of [auxlt_04604_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 20786(line=1009, offs=5) -- 21544(line=1042, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_85 (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ref_type arg3) {
/* local vardec */
// ATSlocal_void (tmp561) ;
ATSlocal (ats_ptr_type, tmp562) ;
ATSlocal (ats_int_type, tmp563) ;
ATSlocal (ats_ptr_type, tmp564) ;
ATSlocal (ats_ptr_type, tmp565) ;
ATSlocal (ats_ptr_type, tmp566) ;
ATSlocal (ats_ptr_type, tmp567) ;
// ATSlocal_void (tmp568) ;
ATSlocal (ats_ptr_type, tmp569) ;
ATSlocal (ats_ptr_type, tmp570) ;
ATSlocal (ats_ptr_type, tmp571) ;
ATSlocal (ats_ptr_type, tmp572) ;
ATSlocal (ats_ptr_type, tmp573) ;

__ats_lab_loop_85:
do {
/* branch: __ats_lab_67 */
__ats_lab_67_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_68_0 ; }
__ats_lab_67_1:
tmp562 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp562 ;
break ;

/* branch: __ats_lab_68 */
__ats_lab_68_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_69_0 ; }
__ats_lab_68_1:
tmp563 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_0) ;
tmp564 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ;
tmp565 = &ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_2) ;
tmp567 = ats_ptrget_mac(ats_ptr_type, tmp564) ;
tmp566 = myintvec_copy_04790_gmpknd (tmp567, arg2) ;
/* tmp568 = */ myintvec_elimeqlst_05249_gmpknd (tmp563, tmp566, arg1, arg2) ;
tmp569 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp569, atslab_0, tmp566) ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp569 ;
// if (ats_ptrget_mac(ats_ptr_type, arg3) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp570 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg3), atslab_1) ;
tmp571 = ats_ptrget_mac(ats_ptr_type, tmp565) ;
arg0 = tmp571 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp570 ;
goto __ats_lab_loop_85 ; // tail call
break ;

/* branch: __ats_lab_69 */
__ats_lab_69_0:
// if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_69_1:
tmp572 = &ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
tmp573 = ats_ptrget_mac(ats_ptr_type, tmp572) ;
arg0 = tmp573 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
goto __ats_lab_loop_85 ; // tail call
break ;
} while (0) ;
return /* (tmp561) */ ;
} /* end of [loop_85] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 20715(line=1005, offs=7) -- 21644(line=1049, offs=4)
*/
ATSstaticdec()
ats_ptr_type
myivlst_elimeqlst_05254_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp560) ;
ATSlocal (ats_ptr_type, tmp574) ;
// ATSlocal_void (tmp575) ;

__ats_lab_myivlst_elimeqlst_05254_gmpknd:
/* ats_ptr_type tmp574 ; */
/* tmp575 = */ loop_85 (arg0, arg1, arg2, (&tmp574)) ;
tmp560 = tmp574 ;
return (tmp560) ;
} /* end of [myivlst_elimeqlst_05254_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 8088(line=319, offs=3) -- 8132(line=319, offs=47)
*/
ATSstaticdec()
ats_int_type
myintvec_inspect_gte_04783_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp581) ;

__ats_lab_myintvec_inspect_gte_04783_gmpknd:
tmp581 = myintvec_inspect_04781_gmpknd (2, arg0, arg1) ;
return (tmp581) ;
} /* end of [myintvec_inspect_gte_04783_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 8581(line=342, offs=7) -- 9361(line=376, offs=4)
*/
ATSstaticdec()
ats_int_type
myintveclst_inspect_gte_04786_gmpknd (ats_ref_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp577) ;
ATSlocal (ats_ptr_type, tmp578) ;
ATSlocal (ats_ptr_type, tmp579) ;
ATSlocal (ats_int_type, tmp580) ;
ATSlocal (ats_ptr_type, tmp582) ;
ATSlocal (ats_bool_type, tmp583) ;
ATSlocal (ats_ptr_type, tmp584) ;
// ATSlocal_void (tmp585) ;
ATSlocal (ats_ptr_type, tmp586) ;
ATSlocal (ats_bool_type, tmp587) ;

__ats_lab_myintveclst_inspect_gte_04786_gmpknd:
do {
/* branch: __ats_lab_70 */
__ats_lab_70_0:
if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_71_0 ; }
__ats_lab_70_1:
tmp578 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp579 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ;
tmp582 = ats_ptrget_mac(ats_ptr_type, tmp578) ;
tmp580 = myintvec_inspect_gte_04783_gmpknd (tmp582, arg1) ;
tmp583 = atspre_ineq (tmp580, 0) ;
if (tmp583) {
tmp584 = ats_ptrget_mac(ats_ptr_type, tmp579) ;
tmp586 = ats_ptrget_mac(ats_ptr_type, tmp578) ;
/* tmp585 = */ myintvec_free_04767_gmpknd (tmp586, arg1) ;
ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg0)) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp584 ;
tmp587 = atspre_igt (tmp580, 0) ;
if (tmp587) {
arg0 = arg0 ;
arg1 = arg1 ;
goto __ats_lab_myintveclst_inspect_gte_04786_gmpknd ; // tail call
} else {
tmp577 = -1 ;
} /* end of [if] */
} else {
arg0 = tmp579 ;
arg1 = arg1 ;
goto __ats_lab_myintveclst_inspect_gte_04786_gmpknd ; // tail call
} /* end of [if] */
break ;

/* branch: __ats_lab_71 */
__ats_lab_71_0:
// if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_71_1:
tmp577 = 0 ;
break ;
} while (0) ;
return (tmp577) ;
} /* end of [myintveclst_inspect_gte_04786_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 14357(line=623, offs=7) -- 14656(line=639, offs=4)
*/
ATSstaticdec()
ats_void_type
myintveclst_normalize_gte_04789_gmpknd (ats_ref_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp591) ;
ATSlocal (ats_ptr_type, tmp592) ;
ATSlocal (ats_ptr_type, tmp593) ;
// ATSlocal_void (tmp594) ;
ATSlocal (ats_ptr_type, tmp595) ;

__ats_lab_myintveclst_normalize_gte_04789_gmpknd:
do {
/* branch: __ats_lab_72 */
__ats_lab_72_0:
if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_73_0 ; }
__ats_lab_72_1:
tmp592 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_0) ;
tmp593 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ;
tmp595 = ats_ptrget_mac(ats_ptr_type, tmp592) ;
/* tmp594 = */ myintvec_normalize_gte_04788_gmpknd (tmp595, arg1) ;
arg0 = tmp593 ;
arg1 = arg1 ;
goto __ats_lab_myintveclst_normalize_gte_04789_gmpknd ; // tail call
break ;

/* branch: __ats_lab_73 */
__ats_lab_73_0:
// if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_73_1:
break ;
} while (0) ;
return /* (tmp591) */ ;
} /* end of [myintveclst_normalize_gte_04789_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 2771(line=107, offs=1) -- 3620(line=146, offs=4)
*/
ATSstaticdec()
ats_void_type
auxbeg_92 (ats_ptr_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ref_type arg4) {
/* local vardec */
// ATSlocal_void (tmp603) ;
ATSlocal (ats_ptr_type, tmp604) ;
ATSlocal (ats_ptr_type, tmp605) ;
ATSlocal (ats_int_type, tmp606) ;
ATSlocal (ats_ptr_type, tmp607) ;
ATSlocal (ats_ptr_type, tmp608) ;
ATSlocal (ats_bool_type, tmp609) ;
ATSlocal (ats_bool_type, tmp610) ;

__ats_lab_auxbeg_92:
do {
/* branch: __ats_lab_74 */
__ats_lab_74_0:
if (arg0 != (ats_sum_ptr_type)0) { goto __ats_lab_75_0 ; }
__ats_lab_74_1:
break ;

/* branch: __ats_lab_75 */
__ats_lab_75_0:
// if (arg0 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_75_1:
tmp604 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ;
tmp605 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ;
tmp607 = ats_ptrget_mac(ats_ptr_type, tmp604) ;
tmp606 = myintvec_compare_at_04763_gmpknd (tmp607, arg1, 0) ;
tmp608 = ats_ptrget_mac(ats_ptr_type, tmp605) ;
tmp609 = atspre_gt_int_int (tmp606, 0) ;
if (tmp609) {
ats_ptrget_mac(ats_ptr_type, tmp605) = ats_ptrget_mac(ats_ptr_type, arg3) ;
ats_ptrget_mac(ats_ptr_type, arg3) = arg0 ;
arg0 = tmp608 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = arg4 ;
goto __ats_lab_auxbeg_92 ; // tail call
} else {
tmp610 = atspre_lt_int_int (tmp606, 0) ;
if (tmp610) {
ats_ptrget_mac(ats_ptr_type, tmp605) = ats_ptrget_mac(ats_ptr_type, arg4) ;
ats_ptrget_mac(ats_ptr_type, arg4) = arg0 ;
arg0 = tmp608 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = arg4 ;
goto __ats_lab_auxbeg_92 ; // tail call
} else {
ats_ptrget_mac(ats_ptr_type, tmp605) = ats_ptrget_mac(ats_ptr_type, arg2) ;
ats_ptrget_mac(ats_ptr_type, arg2) = arg0 ;
arg0 = tmp608 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = arg4 ;
goto __ats_lab_auxbeg_92 ; // tail call
} /* end of [if] */
} /* end of [if] */
break ;
} while (0) ;
return /* (tmp603) */ ;
} /* end of [auxbeg_92] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 17061(line=747, offs=5) -- 17687(line=765, offs=6)
*/
ATSstaticdec()
ats_void_type
loop_96 (gmpknd arg0, ats_ptr_type arg1, ats_ptr_type arg2, ats_int_type arg3) {
/* local vardec */
// ATSlocal_void (tmp621) ;
ATSlocal (ats_bool_type, tmp622) ;
ATSlocal (gmpknd, tmp623) ;
ATSlocal (gmpknd, tmp624) ;
ATSlocal (ats_ptr_type, tmp625) ;
ATSlocal (ats_ptr_type, tmp626) ;
ATSlocal (ats_int_type, tmp627) ;

__ats_lab_loop_96:
tmp622 = atspre_igt (arg3, 0) ;
if (tmp622) {
tmp624 = ats_ptrget_mac(gmpknd, arg1) ;
tmp623 = mul11_myint_myint_04734_gmpknd (arg0, tmp624) ;
ats_ptrget_mac(gmpknd, arg2) = tmp623 ;
tmp625 = atspre_padd_size (arg1, sizeof(gmpknd)) ;
tmp626 = atspre_padd_size (arg2, sizeof(gmpknd)) ;
tmp627 = atspre_isub (arg3, 1) ;
arg0 = arg0 ;
arg1 = tmp625 ;
arg2 = tmp626 ;
arg3 = tmp627 ;
goto __ats_lab_loop_96 ; // tail call
} else {
/* empty */
} /* end of [if] */
return /* (tmp621) */ ;
} /* end of [loop_96] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 16931(line=738, offs=7) -- 17972(line=775, offs=4)
*/
ATSstaticdec()
ats_ptr_type
myintvec_copy_cff_04791_gmpknd (gmpknd arg0, ats_ptr_type arg1, ats_int_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp620) ;
ATSlocal (ats_ptr_type, tmp628) ;
ATSlocal (ats_ptr_type, tmp629) ;
ATSlocal (ats_ptr_type, tmp630) ;
// ATSlocal_void (tmp631) ;

__ats_lab_myintvec_copy_cff_04791_gmpknd:
tmp628 = myintvec0_make_04764_gmpknd (arg2) ;
tmp629 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg1), atslab_1) ;
tmp630 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, tmp628), atslab_1) ;
/* tmp631 = */ loop_96 (arg0, tmp629, tmp630, arg2) ;
tmp620 = tmp628 ;
return (tmp620) ;
} /* end of [myintvec_copy_cff_04791_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 2067(line=76, offs=3) -- 2376(line=85, offs=4)
*/
ATSstaticdec()
ats_ptr_type
myintvec_combine_at_05230_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_int_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp615) ;
ATSlocal (gmpknd, tmp616) ;
ATSlocal (gmpknd, tmp617) ;
ATSlocal (gmpknd, tmp618) ;
ATSlocal (ats_ptr_type, tmp619) ;
// ATSlocal_void (tmp632) ;
// ATSlocal_void (tmp633) ;
// ATSlocal_void (tmp634) ;

__ats_lab_myintvec_combine_at_05230_gmpknd:
tmp616 = myintvec_get_at_04760_gmpknd (arg0, arg3) ;
tmp618 = myintvec_get_at_04760_gmpknd (arg1, arg3) ;
tmp617 = neg_myint_04727_gmpknd (tmp618) ;
tmp619 = myintvec_copy_cff_04791_gmpknd (tmp616, arg1, arg2) ;
/* tmp632 = */ myintvec_addby_cff_04797_gmpknd (tmp619, tmp617, arg0, arg2) ;
/* tmp633 = */ myint_free_04725_gmpknd (tmp616) ;
/* tmp634 = */ myint_free_04725_gmpknd (tmp617) ;
tmp615 = tmp619 ;
return (tmp615) ;
} /* end of [myintvec_combine_at_05230_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 3647(line=149, offs=1) -- 4609(line=190, offs=4)
*/
ATSstaticdec()
ats_int_type
auxcomb_93 (ats_int_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_int_type, tmp611) ;
ATSlocal (ats_ptr_type, tmp612) ;
ATSlocal (ats_ptr_type, tmp613) ;
ATSlocal (ats_ptr_type, tmp614) ;
ATSlocal (ats_ptr_type, tmp635) ;
ATSlocal (ats_int_type, tmp636) ;
// ATSlocal_void (tmp637) ;
ATSlocal (ats_bool_type, tmp638) ;
// ATSlocal_void (tmp639) ;
ATSlocal (ats_ptr_type, tmp640) ;
ATSlocal (ats_bool_type, tmp641) ;

__ats_lab_auxcomb_93:
do {
/* branch: __ats_lab_76 */
__ats_lab_76_0:
if (ats_ptrget_mac(ats_ptr_type, arg3) != (ats_sum_ptr_type)0) { goto __ats_lab_77_0 ; }
__ats_lab_76_1:
tmp611 = 0 ;
break ;

/* branch: __ats_lab_77 */
__ats_lab_77_0:
// if (ats_ptrget_mac(ats_ptr_type, arg3) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_77_1:
tmp612 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg3), atslab_0) ;
tmp613 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg3), atslab_1) ;
tmp635 = ats_ptrget_mac(ats_ptr_type, tmp612) ;
tmp614 = myintvec_combine_at_05230_gmpknd (tmp635, arg4, arg0, arg1) ;
tmp636 = myintvec_inspect_gte_04783_gmpknd (tmp614, arg0) ;
tmp638 = atspre_ineq (tmp636, 0) ;
if (tmp638) {
/* tmp637 = */ myintvec_free_04767_gmpknd (tmp614, arg0) ;
} else {
/* tmp639 = */ myintvec_normalize_gte_04788_gmpknd (tmp614, arg0) ;
tmp640 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp640, atslab_0, tmp614) ;
ats_selptrset_mac(anairiats_sum_4, tmp640, atslab_1, ats_ptrget_mac(ats_ptr_type, arg2)) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp640 ;
} /* end of [if] */
tmp641 = atspre_igte (tmp636, 0) ;
if (tmp641) {
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp613 ;
arg4 = arg4 ;
goto __ats_lab_auxcomb_93 ; // tail call
} else {
tmp611 = -1 ;
} /* end of [if] */
break ;
} while (0) ;
return (tmp611) ;
} /* end of [auxcomb_93] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 5650(line=208, offs=18) -- 5789(line=212, offs=26)
*/
ATSstaticdec()
ats_void_type
myintveclst_free_04770_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp649) ;
ATSlocal (ats_ptr_type, tmp650) ;
ATSlocal (ats_ptr_type, tmp651) ;
// ATSlocal_void (tmp652) ;

__ats_lab_myintveclst_free_04770_gmpknd:
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:
tmp650 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ;
tmp651 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ;
ATS_FREE(arg0) ;
/* tmp652 = */ myintvec_free_04767_gmpknd (tmp650, arg1) ;
arg0 = tmp651 ;
arg1 = arg1 ;
goto __ats_lab_myintveclst_free_04770_gmpknd ; // 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 /* (tmp649) */ ;
} /* end of [myintveclst_free_04770_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 4692(line=195, offs=1) -- 5195(line=218, offs=4)
*/
ATSstaticdec()
ats_int_type
auxcomblst_97 (ats_int_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_int_type, tmp642) ;
ATSlocal (ats_ptr_type, tmp643) ;
ATSlocal (ats_ptr_type, tmp644) ;
ATSlocal (ats_int_type, tmp645) ;
// ATSlocal_void (tmp646) ;
ATSlocal (ats_bool_type, tmp647) ;
// ATSlocal_void (tmp648) ;

__ats_lab_auxcomblst_97:
do {
/* branch: __ats_lab_78 */
__ats_lab_78_0:
if (arg4 == (ats_sum_ptr_type)0) { goto __ats_lab_81_0 ; }
__ats_lab_78_1:
tmp643 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_0) ;
tmp644 = ats_caselptrlab_mac(anairiats_sum_4, arg4, atslab_1) ;
ATS_FREE(arg4) ;
tmp645 = auxcomb_93 (arg0, arg1, arg2, arg3, tmp643) ;
/* tmp646 = */ myintvec_free_04767_gmpknd (tmp643, arg0) ;
tmp647 = atspre_gte_int_int (tmp645, 0) ;
if (tmp647) {
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = tmp644 ;
goto __ats_lab_auxcomblst_97 ; // tail call
} else {
/* tmp648 = */ myintveclst_free_04770_gmpknd (tmp644, arg0) ;
tmp642 = -1 ;
} /* end of [if] */
break ;

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

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 2683(line=101, offs=7) -- 5491(line=233, offs=4)
*/
ATSstaticdec()
ats_int_type
myintveclst_split_at_05231_gmpknd (ats_ref_type arg0, ats_int_type arg1, ats_int_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp602) ;
ATSlocal (ats_ptr_type, tmp653) ;
ATSlocal (ats_ptr_type, tmp654) ;
ATSlocal (ats_ptr_type, tmp655) ;
// ATSlocal_void (tmp656) ;
ATSlocal (ats_int_type, tmp657) ;
// ATSlocal_void (tmp658) ;

__ats_lab_myintveclst_split_at_05231_gmpknd:
/* ats_ptr_type tmp653 ; */
tmp653 = (ats_sum_ptr_type)0 ;
/* ats_ptr_type tmp654 ; */
tmp654 = (ats_sum_ptr_type)0 ;
/* ats_ptr_type tmp655 ; */
tmp655 = (ats_sum_ptr_type)0 ;
/* tmp656 = */ auxbeg_92 (ats_ptrget_mac(ats_ptr_type, arg0), arg2, (&tmp653), (&tmp654), (&tmp655)) ;
tmp657 = auxcomblst_97 (arg1, arg2, (&tmp653), (&tmp654), tmp655) ;
/* tmp658 = */ myintveclst_free_04770_gmpknd (tmp654, arg1) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp653 ;
tmp602 = tmp657 ;
return (tmp602) ;
} /* end of [myintveclst_split_at_05231_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 9818(line=454, offs=5) -- 10328(line=473, offs=4)
*/
ATSstaticdec()
ats_int_type
solve_90 (ats_ref_type arg0, ats_ref_type arg1, ats_int_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp598) ;
ATSlocal (ats_int_type, tmp599) ;
ATSlocal (ats_bool_type, tmp600) ;
ATSlocal (ats_int_type, tmp601) ;
ATSlocal (ats_bool_type, tmp659) ;

__ats_lab_solve_90:
tmp599 = _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_choose (arg1) ;
tmp600 = atspre_igt (tmp599, 0) ;
if (tmp600) {
tmp601 = myintveclst_split_at_05231_gmpknd (arg0, arg2, tmp599) ;
tmp659 = atspre_gte_int_int (tmp601, 0) ;
if (tmp659) {
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab_solve_90 ; // tail call
} else {
tmp598 = -1 ;
} /* end of [if] */
} else {
tmp598 = 0 ;
} /* end of [if] */
return (tmp598) ;
} /* end of [solve_90] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 9625(line=445, offs=6) -- 10615(line=488, offs=4)
*/
ATSstaticdec()
ats_int_type
myintveclst_solve_05236_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp597) ;
ATSlocal (ats_ptr_type, tmp660) ;
ATSlocal (ats_ptr_type, tmp661) ;
ATSlocal (ats_int_type, tmp662) ;
// ATSlocal_void (tmp663) ;
// ATSlocal_void (tmp664) ;

__ats_lab_myintveclst_solve_05236_gmpknd:
/* ats_ptr_type tmp660 ; */
tmp660 = arg1 ;
/* ats_ptr_type tmp661 ; */
tmp661 = _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_make (arg0, arg2) ;
tmp662 = solve_90 ((&tmp660), (&tmp661), arg2) ;
/* tmp663 = */ myintveclst_free_04770_gmpknd (tmp660, arg2) ;
/* tmp664 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__indexlst_free (tmp661) ;
tmp597 = tmp662 ;
return (tmp597) ;
} /* end of [myintveclst_solve_05236_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 24367(line=1199, offs=18) -- 25413(line=1241, offs=4)
*/
ATSstaticdec()
ats_int_type
auxcont_04626_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_int_type arg4, ats_ref_type arg5, ats_int_type arg6) {
/* local vardec */
ATSlocal (ats_int_type, tmp556) ;
ATSlocal (ats_bool_type, tmp557) ;
ATSlocal (ats_bool_type, tmp558) ;
ATSlocal (ats_ptr_type, tmp559) ;
ATSlocal (ats_int_type, tmp576) ;
// ATSlocal_void (tmp588) ;
ATSlocal (ats_bool_type, tmp589) ;
// ATSlocal_void (tmp590) ;
ATSlocal (ats_int_type, tmp596) ;
ATSlocal (ats_bool_type, tmp666) ;
ATSlocal (ats_int_type, tmp667) ;
ATSlocal (ats_int_type, tmp668) ;

__ats_lab_auxcont_04626_gmpknd:
do {
/* branch: __ats_lab_64 */
__ats_lab_64_0:
__ats_lab_64_1:
tmp557 = atspre_lt_int_int (arg6, 0) ;
if (!tmp557) { goto __ats_lab_65_1 ; }
tmp556 = -1 ;
break ;

/* branch: __ats_lab_65 */
__ats_lab_65_0:
__ats_lab_65_1:
tmp558 = atspre_gt_int_int (arg6, 0) ;
if (!tmp558) { goto __ats_lab_66_1 ; }
tmp556 = auxmain_05255_gmpknd (arg0, arg1, arg2, arg3, arg4, arg5) ;
break ;

/* branch: __ats_lab_66 */
__ats_lab_66_0:
__ats_lab_66_1:
/* ats_ptr_type tmp559 ; */
tmp559 = myivlst_elimeqlst_05254_gmpknd (ats_ptrget_mac(ats_ptr_type, arg2), ats_ptrget_mac(ats_ptr_type, arg3), arg4) ;
/* ats_int_type tmp576 ; */
tmp576 = myintveclst_inspect_gte_04786_gmpknd ((&tmp559), arg4) ;
tmp589 = atspre_igte (tmp576, 0) ;
if (tmp589) {
/* tmp590 = */ myintveclst_normalize_gte_04789_gmpknd ((&tmp559), arg4) ;
tmp596 = myintveclst_solve_05236_gmpknd (arg1, tmp559, arg4) ;
tmp576 = tmp596 ;
} else {
/* tmp588 = */ myintveclst_free_04770_gmpknd (tmp559, arg4) ;
} /* end of [if] */
tmp666 = atspre_igte (tmp576, 0) ;
if (tmp666) {
tmp668 = atspre_add_int_int (arg0, 1) ;
tmp667 = auxmain_05255_gmpknd (tmp668, arg1, arg2, arg3, arg4, arg5) ;
tmp576 = tmp667 ;
} else {
/* empty */
} /* end of [if] */
tmp556 = tmp576 ;
break ;
} while (0) ;
return (tmp556) ;
} /* end of [auxcont_04626_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 23101(line=1132, offs=18) -- 23644(line=1159, offs=4)
*/
ATSstaticdec()
ats_int_type
auxgte_04611_gmpknd (ats_int_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_int_type arg4) {
/* local vardec */
ATSlocal (ats_int_type, tmp673) ;
// ATSlocal_void (tmp674) ;
ATSlocal (ats_int_type, tmp675) ;
ATSlocal (ats_bool_type, tmp676) ;
// ATSlocal_void (tmp677) ;
ATSlocal (ats_ptr_type, tmp678) ;
// ATSlocal_void (tmp679) ;

__ats_lab_auxgte_04611_gmpknd:
/* tmp674 = */ myintvec_elimeqlst_05249_gmpknd (0, arg3, ats_ptrget_mac(ats_ptr_type, arg2), arg4) ;
tmp675 = myintvec_inspect_gte_04783_gmpknd (arg3, arg4) ;
tmp676 = atspre_ieq (tmp675, 0) ;
if (tmp676) {
/* tmp677 = */ myintvec_normalize_gte_04788_gmpknd (arg3, arg4) ;
tmp678 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp678)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_9, tmp678, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_9, tmp678, atslab_1, arg3) ;
ats_selptrset_mac(anairiats_sum_9, tmp678, atslab_2, ats_ptrget_mac(ats_ptr_type, arg1)) ;
ats_ptrget_mac(ats_ptr_type, arg1) = tmp678 ;
tmp673 = 0 ;
} else {
/* tmp679 = */ myintvec_free_04767_gmpknd (arg3, arg4) ;
tmp673 = tmp675 ;
} /* end of [if] */
return (tmp673) ;
} /* end of [auxgte_04611_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 8202(line=324, offs=3) -- 8367(line=331, offs=4)
*/
ATSstaticdec()
ats_int_type
myintvec_inspect_eq_04784_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp687) ;
ATSlocal (ats_int_type, tmp688) ;
ATSlocal (ats_bool_type, tmp689) ;

__ats_lab_myintvec_inspect_eq_04784_gmpknd:
tmp688 = myintvec_inspect_04781_gmpknd (1, arg0, arg1) ;
tmp689 = atspre_ieq (tmp688, 0) ;
if (tmp689) {
tmp687 = myintvec_normalize_05217_gmpknd (1, arg0, arg1) ;
} else {
tmp687 = tmp688 ;
} /* end of [if] */
return (tmp687) ;
} /* end of [myintvec_inspect_eq_04784_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 2013(line=68, offs=16) -- 2057(line=68, offs=60)
*/
ATSstaticdec()
ats_bool_type
lt_myint_myint_04748_gmpknd (gmpknd arg0, gmpknd arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp701) ;
ATSlocal (ats_int_type, tmp702) ;

__ats_lab_lt_myint_myint_04748_gmpknd:
tmp702 = compare_myint_myint_04752_gmpknd (arg0, arg1) ;
tmp701 = atspre_lt_int_int (tmp702, 0) ;
return (tmp701) ;
} /* end of [lt_myint_myint_04748_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 5811(line=251, offs=5) -- 7162(line=305, offs=4)
*/
ATSstaticdec()
ats_void_type
loop_103 (ats_ptr_type arg0, ats_int_type arg1, ats_int_type arg2, ats_bool_type arg3, ats_ref_type arg4, ats_ref_type arg5) {
/* local vardec */
// ATSlocal_void (tmp693) ;
ATSlocal (ats_bool_type, tmp694) ;
ATSlocal (ats_int_type, tmp695) ;
ATSlocal (gmpknd, tmp696) ;
ATSlocal (ats_bool_type, tmp698) ;
ATSlocal (ats_bool_type, tmp699) ;
ATSlocal (ats_bool_type, tmp700) ;
ATSlocal (gmpknd, tmp703) ;
ATSlocal (ats_int_type, tmp704) ;
// ATSlocal_void (tmp705) ;
ATSlocal (gmpknd, tmp706) ;
ATSlocal (gmpknd, tmp707) ;
// ATSlocal_void (tmp708) ;
ATSlocal (ats_bool_type, tmp709) ;
ATSlocal (gmpknd, tmp710) ;
ATSlocal (gmpknd, tmp711) ;
ATSlocal (ats_bool_type, tmp712) ;
ATSlocal (ats_bool_type, tmp713) ;
ATSlocal (ats_int_type, tmp714) ;
// ATSlocal_void (tmp715) ;
ATSlocal (ats_bool_type, tmp716) ;
ATSlocal (ats_ptr_type, tmp717) ;
ATSlocal (ats_int_type, tmp718) ;
ATSlocal (ats_bool_type, tmp719) ;
ATSlocal (ats_ptr_type, tmp720) ;
ATSlocal (ats_int_type, tmp721) ;

__ats_lab_loop_103:
tmp694 = atspre_igt (arg2, 0) ;
if (tmp694) {
tmp696 = ats_ptrget_mac(gmpknd, arg0) ;
tmp695 = compare_myint_int_04747_gmpknd (tmp696, 0) ;
tmp698 = atspre_gt_int_int (tmp695, 0) ;
if (tmp698) {
tmp703 = ats_ptrget_mac(gmpknd, arg0) ;
tmp700 = lt_myint_myint_04748_gmpknd (tmp703, ats_ptrget_mac(gmpknd, arg5)) ;
tmp699 = atspre_add_bool_bool (arg3, tmp700) ;
if (tmp699) {
tmp704 = atspre_isub (arg1, arg2) ;
ats_ptrget_mac(ats_int_type, arg4) = tmp704 ;
/* tmp705 = */ myint_free_04725_gmpknd (ats_ptrget_mac(gmpknd, arg5)) ;
tmp707 = ats_ptrget_mac(gmpknd, arg0) ;
tmp706 = myint_copy_04726_gmpknd (tmp707) ;
ats_ptrget_mac(gmpknd, arg5) = tmp706 ;
} else {
/* empty */
} /* end of [if] */
} else {
/* empty */
} /* end of [if] */
tmp709 = atspre_lt_int_int (tmp695, 0) ;
if (tmp709) {
tmp711 = ats_ptrget_mac(gmpknd, arg0) ;
tmp710 = neg1_myint_04728_gmpknd (tmp711) ;
tmp713 = lt_myint_myint_04748_gmpknd (tmp710, ats_ptrget_mac(gmpknd, arg5)) ;
tmp712 = atspre_add_bool_bool (arg3, tmp713) ;
if (tmp712) {
tmp714 = atspre_isub (arg1, arg2) ;
ats_ptrget_mac(ats_int_type, arg4) = tmp714 ;
/* tmp715 = */ myint_free_04725_gmpknd (ats_ptrget_mac(gmpknd, arg5)) ;
ats_ptrget_mac(gmpknd, arg5) = tmp710 ;
} else {
/* tmp708 = */ myint_free_04725_gmpknd (tmp710) ;
} /* end of [if] */
} else {
/* empty */
} /* end of [if] */
tmp716 = atspre_eq_int_int (tmp695, 0) ;
if (tmp716) {
tmp717 = atspre_padd_size (arg0, sizeof(gmpknd)) ;
tmp718 = atspre_isub (arg2, 1) ;
arg0 = tmp717 ;
arg1 = arg1 ;
arg2 = tmp718 ;
arg3 = arg3 ;
arg4 = arg4 ;
arg5 = arg5 ;
goto __ats_lab_loop_103 ; // tail call
} else {
tmp719 = gt_myint_int_04743_gmpknd (ats_ptrget_mac(gmpknd, arg5), 1) ;
if (tmp719) {
tmp720 = atspre_padd_size (arg0, sizeof(gmpknd)) ;
tmp721 = atspre_isub (arg2, 1) ;
arg0 = tmp720 ;
arg1 = arg1 ;
arg2 = tmp721 ;
arg3 = ats_false_bool ;
arg4 = arg4 ;
arg5 = arg5 ;
goto __ats_lab_loop_103 ; // tail call
} else {
/* empty */
} /* end of [if] */
} /* end of [if] */
} else {
/* empty */
} /* end of [if] */
return /* (tmp693) */ ;
} /* end of [loop_103] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 5762(line=247, offs=6) -- 7550(line=320, offs=4)
*/
ATSstaticdec()
ats_int_type
myintvec_get_index_of_absmincff_05232_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp692) ;
ATSlocal (ats_int_type, tmp722) ;
ATSlocal (gmpknd, tmp723) ;
ATSlocal (ats_ptr_type, tmp724) ;
// ATSlocal_void (tmp725) ;
ATSlocal (ats_ptr_type, tmp726) ;
ATSlocal (ats_int_type, tmp727) ;
// ATSlocal_void (tmp728) ;
// ATSlocal_void (tmp729) ;
ATSlocal (ats_bool_type, tmp730) ;
ATSlocal (ats_ptr_type, tmp731) ;

__ats_lab_myintvec_get_index_of_absmincff_05232_gmpknd:
/* ats_int_type tmp722 ; */
tmp722 = 0 ;
/* gmpknd tmp723 ; */
tmp723 = myint_make_int_04723_gmpknd (0) ;
tmp724 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_1) ;
tmp726 = atspre_padd_size (tmp724, sizeof(gmpknd)) ;
tmp727 = atspre_isub (arg1, 1) ;
/* tmp725 = */ loop_103 (tmp726, arg1, tmp727, ats_true_bool, (&tmp722), (&tmp723)) ;
/* tmp728 = */ myint_free_04725_gmpknd (tmp723) ;
tmp730 = atspre_igt (tmp722, 0) ;
tmp731 = atspre_string_append ("/tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 7515(line=316, offs=10) -- 7533(line=316, offs=28)", ATSstrcst("\n")) ;
/* tmp729 = */ atspre_assert_errmsg (tmp730, tmp731) ;
tmp692 = tmp722 ;
return (tmp692) ;
} /* end of [myintvec_get_index_of_absmincff_05232_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 15946(line=756, offs=1) -- 16215(line=767, offs=52)
*/
ATSstaticdec()
ats_ptr_type
myiveqlst_get_prev_04542_gmpknd (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp735) ;
ATSlocal (ats_ptr_type, tmp736) ;
ATSlocal (ats_ptr_type, tmp737) ;

__ats_lab_myiveqlst_get_prev_04542_gmpknd:
do {
/* branch: __ats_lab_84 */
__ats_lab_84_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_85_0 ; }
__ats_lab_84_1:
tmp735 = atspre_null_ptr ;
break ;

/* branch: __ats_lab_85 */
__ats_lab_85_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_86_0 ; }
__ats_lab_85_1:
tmp736 = &ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_3) ;
tmp735 = tmp736 ;
break ;

/* branch: __ats_lab_86 */
__ats_lab_86_0:
// if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_86_1:
tmp737 = &ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_0) ;
tmp735 = tmp737 ;
break ;
} while (0) ;
return (tmp735) ;
} /* end of [myiveqlst_get_prev_04542_gmpknd] */

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

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

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

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

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 16485(line=786, offs=1) -- 16852(line=808, offs=2)
*/
ATSstaticdec()
ats_ptr_type
myiveqlst_cons_05245_gmpknd (ats_int_type arg0, ats_int_type arg1, ats_ptr_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp733) ;
ATSlocal (ats_ptr_type, tmp734) ;
ATSlocal (ats_ptr_type, tmp738) ;
// ATSlocal_void (tmp739) ;
ATSlocal (ats_bool_type, tmp740) ;

__ats_lab_myiveqlst_cons_05245_gmpknd:
tmp734 = myiveqlst_get_prev_04542_gmpknd (arg3) ;
tmp738 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp738)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_8, tmp738, atslab_0, arg0) ;
ats_selptrset_mac(anairiats_sum_8, tmp738, atslab_1, arg2) ;
ats_selptrset_mac(anairiats_sum_8, tmp738, atslab_2, arg1) ;
ats_selptrset_mac(anairiats_sum_8, tmp738, atslab_3, atspre_null_ptr) ;
ats_selptrset_mac(anairiats_sum_8, tmp738, atslab_4, arg3) ;
tmp740 = atspre_pgt (ats_castfn_mac(ats_ptr_type, tmp734), atspre_null_ptr) ;
if (tmp740) {
/* tmp739 = */ ptrset_01764_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp734), ats_castfn_mac(ats_ptr_type, tmp738)) ;
} else {
/* empty */
} /* end of [if] */
tmp733 = tmp738 ;
return (tmp733) ;
} /* end of [myiveqlst_cons_05245_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 23694(line=1163, offs=17) -- 24307(line=1194, offs=4)
*/
ATSstaticdec()
ats_int_type
auxeq_04618_gmpknd (ats_int_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_int_type arg4) {
/* local vardec */
ATSlocal (ats_int_type, tmp684) ;
// ATSlocal_void (tmp685) ;
ATSlocal (ats_int_type, tmp686) ;
ATSlocal (ats_bool_type, tmp690) ;
ATSlocal (ats_int_type, tmp691) ;
ATSlocal (ats_ptr_type, tmp732) ;
// ATSlocal_void (tmp743) ;

__ats_lab_auxeq_04618_gmpknd:
/* tmp685 = */ myintvec_elimeqlst_05249_gmpknd (0, arg3, ats_ptrget_mac(ats_ptr_type, arg2), arg4) ;
tmp686 = myintvec_inspect_eq_04784_gmpknd (arg3, arg4) ;
tmp690 = atspre_ieq (tmp686, 0) ;
if (tmp690) {
tmp691 = myintvec_get_index_of_absmincff_05232_gmpknd (arg3, arg4) ;
tmp732 = myiveqlst_cons_05245_gmpknd (arg0, tmp691, arg3, ats_ptrget_mac(ats_ptr_type, arg2)) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp732 ;
tmp684 = 0 ;
} else {
/* tmp743 = */ myintvec_free_04767_gmpknd (arg3, arg4) ;
tmp684 = tmp686 ;
} /* end of [if] */
return (tmp684) ;
} /* end of [auxeq_04618_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 8437(line=335, offs=3) -- 8482(line=335, offs=48)
*/
ATSstaticdec()
ats_int_type
myintvec_inspect_neq_04785_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp749) ;

__ats_lab_myintvec_inspect_neq_04785_gmpknd:
tmp749 = myintvec_inspect_04781_gmpknd (-1, arg0, arg1) ;
return (tmp749) ;
} /* end of [myintvec_inspect_neq_04785_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 25463(line=1244, offs=16) -- 26584(line=1294, offs=4)
*/
ATSstaticdec()
ats_ptr_type
auxneq_04636_gmpknd (ats_int_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_ptr_type arg3, ats_int_type arg4, ats_ref_type arg5) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp746) ;
// ATSlocal_void (tmp747) ;
ATSlocal (ats_int_type, tmp748) ;
ATSlocal (ats_bool_type, tmp750) ;
ATSlocal (ats_ptr_type, tmp751) ;
// ATSlocal_void (tmp752) ;
ATSlocal (gmpknd, tmp753) ;
ATSlocal (ats_ptr_type, tmp754) ;
// ATSlocal_void (tmp755) ;
// ATSlocal_void (tmp756) ;
// ATSlocal_void (tmp757) ;
// ATSlocal_void (tmp758) ;
// ATSlocal_void (tmp759) ;
ATSlocal (ats_ptr_type, tmp760) ;
ATSlocal (ats_ptr_type, tmp761) ;
ATSlocal (ats_ptr_type, tmp762) ;
ATSlocal (ats_ptr_type, tmp763) ;
ATSlocal (ats_ptr_type, tmp764) ;
// ATSlocal_void (tmp765) ;
ATSlocal (ats_int_type, tmp766) ;
ATSlocal (ats_bool_type, tmp767) ;
ATSlocal (ats_ptr_type, tmp768) ;

__ats_lab_auxneq_04636_gmpknd:
/* tmp747 = */ myintvec_elimeqlst_05249_gmpknd (0, arg3, ats_ptrget_mac(ats_ptr_type, arg2), arg4) ;
tmp748 = myintvec_inspect_neq_04785_gmpknd (arg3, arg4) ;
ats_ptrget_mac(ats_int_type, arg5) = tmp748 ;
tmp750 = atspre_ieq (ats_ptrget_mac(ats_int_type, arg5), 0) ;
if (tmp750) {
tmp751 = myintvec_copy_04790_gmpknd (arg3, arg4) ;
/* tmp752 = */ myintvec_add_int_04762_gmpknd (tmp751, -1) ;
tmp753 = myint_make_int_04723_gmpknd (-1) ;
tmp754 = myintvec_copy_cff_04791_gmpknd (tmp753, arg3, arg4) ;
/* tmp755 = */ myint_free_04725_gmpknd (tmp753) ;
/* tmp756 = */ myintvec_add_int_04762_gmpknd (tmp754, -1) ;
/* tmp757 = */ myintvec_free_04767_gmpknd (arg3, arg4) ;
/* tmp758 = */ myintvec_normalize_gte_04788_gmpknd (tmp751, arg4) ;
/* tmp759 = */ myintvec_normalize_gte_04788_gmpknd (tmp754, arg4) ;
tmp760 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp760)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_5, tmp760, atslab_0, 2) ;
ats_selptrset_mac(anairiats_sum_5, tmp760, atslab_1, tmp751) ;
tmp761 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp761)->tag = 0 ;
ats_selptrset_mac(anairiats_sum_5, tmp761, atslab_0, 2) ;
ats_selptrset_mac(anairiats_sum_5, tmp761, atslab_1, tmp754) ;
tmp764 = (ats_sum_ptr_type)0 ;
tmp763 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp763, atslab_0, tmp761) ;
ats_selptrset_mac(anairiats_sum_4, tmp763, atslab_1, tmp764) ;
tmp762 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp762, atslab_0, tmp760) ;
ats_selptrset_mac(anairiats_sum_4, tmp762, atslab_1, tmp763) ;
tmp746 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp746)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp746, atslab_0, 1) ;
ats_selptrset_mac(anairiats_sum_5, tmp746, atslab_1, tmp762) ;
} else {
/* tmp765 = */ myintvec_free_04767_gmpknd (arg3, arg4) ;
tmp767 = atspre_igt (ats_ptrget_mac(ats_int_type, arg5), 0) ;
if (tmp767) {
tmp766 = 0 ;
} else {
tmp766 = 1 ;
} /* end of [if] */
tmp768 = (ats_sum_ptr_type)0 ;
tmp746 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
((ats_sum_ptr_type)tmp746)->tag = 1 ;
ats_selptrset_mac(anairiats_sum_5, tmp746, atslab_0, tmp766) ;
ats_selptrset_mac(anairiats_sum_5, tmp746, atslab_1, tmp768) ;
} /* end of [if] */
return (tmp746) ;
} /* end of [auxneq_04636_gmpknd] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5506(line=202, offs=7) -- 5735(line=208, offs=6)
*/
ATSstaticdec()
ats_int_type
loop_113 (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp778) ;
ATSlocal (ats_ptr_type, tmp779) ;
ATSlocal (ats_ptr_type, tmp780) ;
ATSlocal (ats_int_type, tmp781) ;

__ats_lab_loop_113:
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:
tmp779 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ;
tmp780 = ats_ptrget_mac(ats_ptr_type, tmp779) ;
tmp781 = atspre_iadd (arg1, 1) ;
arg0 = tmp780 ;
arg1 = tmp781 ;
goto __ats_lab_loop_113 ; // tail call
break ;

/* branch: __ats_lab_91 */
__ats_lab_91_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_91_1:
tmp778 = arg1 ;
break ;
} while (0) ;
return (tmp778) ;
} /* end of [loop_113] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 5439(line=200, offs=16) -- 5775(line=211, offs=4)
*/
ATSstaticdec()
ats_int_type
list_vt_length_01501_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp777) ;

__ats_lab_list_vt_length_01501_ats_ptr_type:
tmp777 = loop_113 (arg0, 0) ;
return (tmp777) ;
} /* end of [list_vt_length_01501_ats_ptr_type] */

/*
// /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_115 (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp785) ;
ATSlocal (ats_ptr_type, tmp786) ;

__ats_lab_loop_115:
do {
/* branch: __ats_lab_92 */
__ats_lab_92_0:
if (ats_ptrget_mac(ats_ptr_type, arg0) == (ats_sum_ptr_type)0) { goto __ats_lab_93_0 ; }
__ats_lab_92_1:
tmp786 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg0), atslab_1) ;
arg0 = tmp786 ;
arg1 = arg1 ;
goto __ats_lab_loop_115 ; // tail call
break ;

/* branch: __ats_lab_93 */
__ats_lab_93_0:
// if (ats_ptrget_mac(ats_ptr_type, arg0) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_93_1:
ats_ptrget_mac(ats_ptr_type, arg0) = arg1 ;
break ;
} while (0) ;
return /* (tmp785) */ ;
} /* end of [loop_115] */

/*
// /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, tmp783) ;
ATSlocal (ats_ptr_type, tmp784) ;
// ATSlocal_void (tmp787) ;

__ats_lab_list_vt_append_01504_ats_ptr_type:
/* ats_ptr_type tmp784 ; */
tmp784 = arg0 ;
/* tmp787 = */ loop_115 ((&tmp784), arg1) ;
tmp783 = tmp784 ;
return (tmp783) ;
} /* end of [list_vt_append_01504_ats_ptr_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7114(line=272, offs=5) -- 7471(line=286, offs=2)
*/
ATSstaticdec()
ats_void_type
loop_117 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) {
/* local vardec */
// ATSlocal_void (tmp791) ;
ATSlocal (ats_bool_type, tmp792) ;
ATSlocal (ats_ptr_type, tmp793) ;
ATSlocal (ats_ptr_type, tmp794) ;
ATSlocal (ats_int_type, tmp795) ;
ATSlocal (ats_ptr_type, tmp796) ;

__ats_lab_loop_117:
tmp792 = atspre_igt (arg1, 0) ;
if (tmp792) {
ats_ptrget_mac(ats_ptr_type, arg2) = ats_ptrget_mac(ats_ptr_type, arg0) ;
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp793 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
tmp794 = ats_ptrget_mac(ats_ptr_type, tmp793) ;
ats_ptrget_mac(ats_ptr_type, arg0) = tmp794 ;
tmp795 = atspre_isub (arg1, 1) ;
arg0 = arg0 ;
arg1 = tmp795 ;
arg2 = tmp793 ;
goto __ats_lab_loop_117 ; // tail call
} else {
tmp796 = (ats_sum_ptr_type)0 ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp796 ;
} /* end of [if] */
return /* (tmp791) */ ;
} /* end of [loop_117] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 7093(line=270, offs=18) -- 7571(line=293, offs=4)
*/
ATSstaticdec()
ats_ptr_type
list_vt_split_at_01505_ats_ptr_type (ats_ref_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp790) ;
ATSlocal (ats_ptr_type, tmp797) ;
// ATSlocal_void (tmp798) ;

__ats_lab_list_vt_split_at_01505_ats_ptr_type:
/* ats_ptr_type tmp797 ; */
/* tmp798 = */ loop_117 (arg0, arg1, (&tmp797)) ;
tmp790 = tmp797 ;
return (tmp790) ;
} /* end of [list_vt_split_at_01505_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 29291(line=1397, offs=21) -- 29683(line=1411, offs=4)
*/
ATSstaticdec()
ats_int_type
auxmain_conj_05256_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_int_type arg4, ats_ref_type arg5, ats_ref_type arg6) {
/* local vardec */
ATSlocal (ats_int_type, tmp775) ;
ATSlocal (ats_int_type, tmp776) ;
ATSlocal (ats_ptr_type, tmp782) ;
ATSlocal (ats_int_type, tmp788) ;
ATSlocal (ats_ptr_type, tmp789) ;

__ats_lab_auxmain_conj_05256_gmpknd:
tmp776 = list_vt_length_01501_ats_ptr_type (ats_ptrget_mac(ats_ptr_type, arg6)) ;
tmp782 = list_vt_append_01504_ats_ptr_type (ats_ptrget_mac(ats_ptr_type, arg6), ats_ptrget_mac(ats_ptr_type, arg5)) ;
ats_ptrget_mac(ats_ptr_type, arg5) = tmp782 ;
tmp788 = auxmain_05255_gmpknd (arg0, arg1, arg2, arg3, arg4, arg5) ;
tmp789 = list_vt_split_at_01505_ats_ptr_type (arg5, tmp776) ;
ats_ptrget_mac(ats_ptr_type, arg6) = tmp789 ;
tmp775 = tmp788 ;
return (tmp775) ;
} /* end of [auxmain_conj_05256_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 13422(line=613, offs=16) -- 13447(line=613, offs=41)
*/
ATSstaticdec()
ats_ptr_type
myivlst_mark_05240_gmpknd (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp805) ;

__ats_lab_myivlst_mark_05240_gmpknd:
tmp805 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
((ats_sum_ptr_type)tmp805)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_6, tmp805, atslab_0, arg0) ;
return (tmp805) ;
} /* end of [myivlst_mark_05240_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 17045(line=822, offs=6) -- 17309(line=839, offs=2)
*/
ATSstaticdec()
ats_ptr_type
myiveqlst_mark_05246_gmpknd (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp807) ;
ATSlocal (ats_ptr_type, tmp808) ;
ATSlocal (ats_ptr_type, tmp809) ;
// ATSlocal_void (tmp810) ;
ATSlocal (ats_bool_type, tmp811) ;

__ats_lab_myiveqlst_mark_05246_gmpknd:
tmp808 = myiveqlst_get_prev_04542_gmpknd (arg0) ;
tmp809 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp809)->tag = 2 ;
ats_selptrset_mac(anairiats_sum_7, tmp809, atslab_0, atspre_null_ptr) ;
ats_selptrset_mac(anairiats_sum_7, tmp809, atslab_1, arg0) ;
tmp811 = atspre_pgt (ats_castfn_mac(ats_ptr_type, tmp808), atspre_null_ptr) ;
if (tmp811) {
/* tmp810 = */ ptrset_01764_ats_ptr_type (ats_castfn_mac(ats_ptr_type, tmp808), ats_castfn_mac(ats_ptr_type, tmp809)) ;
} else {
/* empty */
} /* end of [if] */
tmp807 = tmp809 ;
return (tmp807) ;
} /* end of [myiveqlst_mark_05246_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 13619(line=624, offs=3) -- 13858(line=634, offs=31)
*/
ATSstaticdec()
ats_ptr_type
myivlst_unmark_05241_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp815) ;
ATSlocal (ats_ptr_type, tmp816) ;
ATSlocal (ats_ptr_type, tmp817) ;
// ATSlocal_void (tmp818) ;
ATSlocal (ats_ptr_type, tmp819) ;

__ats_lab_myivlst_unmark_05241_gmpknd:
do {
/* branch: __ats_lab_96 */
__ats_lab_96_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_97_0 ; }
__ats_lab_96_1:
tmp815 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVLSTnil_0) ;
break ;

/* branch: __ats_lab_97 */
__ats_lab_97_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_98_0 ; }
__ats_lab_97_1:
tmp816 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ;
tmp817 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_2) ;
ATS_FREE(arg0) ;
/* tmp818 = */ myintvec_free_04767_gmpknd (tmp816, arg1) ;
arg0 = tmp817 ;
arg1 = arg1 ;
goto __ats_lab_myivlst_unmark_05241_gmpknd ; // tail call
break ;

/* branch: __ats_lab_98 */
__ats_lab_98_0:
// if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_98_1:
tmp819 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
ATS_FREE(arg0) ;
tmp815 = tmp819 ;
break ;
} while (0) ;
return (tmp815) ;
} /* end of [myivlst_unmark_05241_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 17528(line=852, offs=3) -- 17797(line=862, offs=38)
*/
ATSstaticdec()
ats_ptr_type
myiveqlst_unmark_05247_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp821) ;
ATSlocal (ats_ptr_type, tmp822) ;
ATSlocal (ats_ptr_type, tmp823) ;
// ATSlocal_void (tmp824) ;
ATSlocal (ats_ptr_type, tmp825) ;

__ats_lab_myiveqlst_unmark_05247_gmpknd:
do {
/* branch: __ats_lab_99 */
__ats_lab_99_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_100_0 ; }
__ats_lab_99_1:
tmp821 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVEQLSTnil_0) ;
break ;

/* branch: __ats_lab_100 */
__ats_lab_100_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_101_0 ; }
__ats_lab_100_1:
tmp822 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ;
tmp823 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_4) ;
ATS_FREE(arg0) ;
/* tmp824 = */ myintvec_free_04767_gmpknd (tmp822, arg1) ;
arg0 = tmp823 ;
arg1 = arg1 ;
goto __ats_lab_myiveqlst_unmark_05247_gmpknd ; // tail call
break ;

/* branch: __ats_lab_101 */
__ats_lab_101_0:
// if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_101_1:
tmp825 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ;
ATS_FREE(arg0) ;
tmp821 = tmp825 ;
break ;
} while (0) ;
return (tmp821) ;
} /* end of [myiveqlst_unmark_05247_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 5866(line=218, offs=13) -- 6019(line=222, offs=28)
*/
ATSstaticdec()
ats_void_type
icnstr_free_04779_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp833) ;
ATSlocal (ats_ptr_type, tmp834) ;
ATSlocal (ats_ptr_type, tmp835) ;

__ats_lab_icnstr_free_04779_gmpknd:
do {
/* branch: __ats_lab_103 */
__ats_lab_103_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_104_0 ; }
__ats_lab_103_1:
tmp834 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
ATS_FREE(arg0) ;
/* tmp833 = */ myintvec_free_04767_gmpknd (tmp834, arg1) ;
break ;

/* branch: __ats_lab_104 */
__ats_lab_104_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_105_0 ; }
__ats_lab_104_1:
tmp835 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
ATS_FREE(arg0) ;
/* tmp833 = */ icnstrlst_free_04780_gmpknd (tmp835, arg1) ;
break ;

/* branch: __ats_lab_105 */
__ats_lab_105_0:
// if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_105_1:
ATS_FREE(arg0) ;
break ;
} while (0) ;
return /* (tmp833) */ ;
} /* end of [icnstr_free_04779_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm.dats: 6073(line=226, offs=16) -- 6208(line=230, offs=26)
*/
ATSstaticdec()
ats_void_type
icnstrlst_free_04780_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp829) ;
ATSlocal (ats_ptr_type, tmp830) ;
ATSlocal (ats_ptr_type, tmp831) ;
// ATSlocal_void (tmp832) ;

__ats_lab_icnstrlst_free_04780_gmpknd:
do {
/* branch: __ats_lab_102 */
__ats_lab_102_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_106_0 ; }
__ats_lab_102_1:
tmp830 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ;
tmp831 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ;
ATS_FREE(arg0) ;
/* tmp832 = */ icnstr_free_04779_gmpknd (tmp830, arg1) ;
arg0 = tmp831 ;
arg1 = arg1 ;
goto __ats_lab_icnstrlst_free_04780_gmpknd ; // tail call
break ;

/* branch: __ats_lab_106 */
__ats_lab_106_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_106_1:
break ;
} while (0) ;
return /* (tmp829) */ ;
} /* end of [icnstrlst_free_04780_gmpknd] */

/*
// /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_126 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp840) ;
ATSlocal (ats_ptr_type, tmp841) ;
ATSlocal (ats_ptr_type, tmp842) ;
ATSlocal (ats_ptr_type, tmp843) ;

__ats_lab_revapp_126:
do {
/* branch: __ats_lab_107 */
__ats_lab_107_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_108_0 ; }
__ats_lab_107_1:
tmp841 = &ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ;
tmp842 = ats_ptrget_mac(ats_ptr_type, tmp841) ;
ats_ptrget_mac(ats_ptr_type, tmp841) = arg1 ;
tmp843 = arg0 ;
arg0 = tmp842 ;
arg1 = tmp843 ;
goto __ats_lab_revapp_126 ; // tail call
break ;

/* branch: __ats_lab_108 */
__ats_lab_108_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_108_1:
tmp840 = arg1 ;
break ;
} while (0) ;
return (tmp840) ;
} /* end of [revapp_126] */

/*
// /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, tmp839) ;

__ats_lab_list_vt_reverse_append_01507_ats_ptr_type:
tmp839 = revapp_126 (arg0, arg1) ;
return (tmp839) ;
} /* 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, tmp845) ;
ATSlocal (ats_ptr_type, tmp846) ;

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

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 29743(line=1414, offs=21) -- 30975(line=1455, offs=4)
*/
ATSstaticdec()
ats_int_type
auxmain_disj_05257_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_int_type arg4, ats_ref_type arg5, ats_ref_type arg6, ats_ptr_type arg7) {
/* local vardec */
ATSlocal (ats_int_type, tmp799) ;
ATSlocal (ats_ptr_type, tmp800) ;
ATSlocal (ats_ptr_type, tmp801) ;
ATSlocal (ats_ptr_type, tmp802) ;
ATSlocal (ats_ptr_type, tmp803) ;
ATSlocal (ats_ptr_type, tmp804) ;
ATSlocal (ats_ptr_type, tmp806) ;
ATSlocal (ats_ptr_type, tmp812) ;
ATSlocal (ats_int_type, tmp813) ;
ATSlocal (ats_ptr_type, tmp814) ;
ATSlocal (ats_ptr_type, tmp820) ;
ATSlocal (ats_ptr_type, tmp826) ;
ATSlocal (ats_ptr_type, tmp827) ;
// ATSlocal_void (tmp828) ;
ATSlocal (ats_ptr_type, tmp836) ;
ATSlocal (ats_bool_type, tmp837) ;
ATSlocal (ats_ptr_type, tmp838) ;
ATSlocal (ats_ptr_type, tmp844) ;

__ats_lab_auxmain_disj_05257_gmpknd:
do {
/* branch: __ats_lab_95 */
__ats_lab_95_0:
if (ats_ptrget_mac(ats_ptr_type, arg6) == (ats_sum_ptr_type)0) { goto __ats_lab_109_0 ; }
__ats_lab_95_1:
tmp800 = ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg6), atslab_0) ;
tmp801 = ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg6), atslab_1) ;
ATS_FREE(ats_ptrget_mac(ats_ptr_type, arg6)) ;
ats_ptrget_mac(ats_ptr_type, arg6) = tmp801 ;
tmp802 = icnstrlst_copy_04776_gmpknd (ats_ptrget_mac(ats_ptr_type, arg5), arg4) ;
tmp803 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp803, atslab_0, tmp800) ;
ats_selptrset_mac(anairiats_sum_4, tmp803, atslab_1, tmp802) ;
tmp804 = myivlst_mark_05240_gmpknd (ats_ptrget_mac(ats_ptr_type, arg2)) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp804 ;
tmp806 = myiveqlst_mark_05246_gmpknd (ats_ptrget_mac(ats_ptr_type, arg3)) ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp806 ;
/* ats_ptr_type tmp812 ; */
tmp812 = tmp803 ;
tmp813 = auxmain_05255_gmpknd (arg0, arg1, arg2, arg3, arg4, (&tmp812)) ;
tmp814 = myivlst_unmark_05241_gmpknd (ats_ptrget_mac(ats_ptr_type, arg2), arg4) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp814 ;
tmp820 = myiveqlst_unmark_05247_gmpknd (ats_ptrget_mac(ats_ptr_type, arg3), arg4) ;
ats_ptrget_mac(ats_ptr_type, arg3) = tmp820 ;
// if (tmp812 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp826 = ats_caselptrlab_mac(anairiats_sum_4, tmp812, atslab_0) ;
tmp827 = ats_caselptrlab_mac(anairiats_sum_4, tmp812, atslab_1) ;
ATS_FREE(tmp812) ;
/* tmp828 = */ icnstrlst_free_04780_gmpknd (tmp827, arg4) ;
tmp836 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp836, atslab_0, tmp826) ;
ats_selptrset_mac(anairiats_sum_4, tmp836, atslab_1, arg7) ;
tmp837 = atspre_igte (tmp813, 0) ;
if (tmp837) {
tmp838 = list_vt_reverse_append_01507_ats_ptr_type (tmp836, ats_ptrget_mac(ats_ptr_type, arg6)) ;
ats_ptrget_mac(ats_ptr_type, arg6) = tmp838 ;
tmp799 = 0 ;
} else {
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = arg4 ;
arg5 = arg5 ;
arg6 = arg6 ;
arg7 = tmp836 ;
goto __ats_lab_auxmain_disj_05257_gmpknd ; // tail call
} /* end of [if] */
break ;

/* branch: __ats_lab_109 */
__ats_lab_109_0:
// if (ats_ptrget_mac(ats_ptr_type, arg6) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_109_1:
tmp844 = list_vt_reverse_01506_ats_ptr_type (arg7) ;
ats_ptrget_mac(ats_ptr_type, arg6) = tmp844 ;
tmp799 = -1 ;
break ;
} while (0) ;
return (tmp799) ;
} /* end of [auxmain_disj_05257_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 26633(line=1297, offs=16) -- 29236(line=1394, offs=4)
*/
ATSstaticdec()
ats_int_type
auxmain_05255_gmpknd (ats_int_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3, ats_int_type arg4, ats_ref_type arg5) {
/* local vardec */
ATSlocal (ats_int_type, tmp362) ;
ATSlocal (ats_ptr_type, tmp363) ;
ATSlocal (ats_ptr_type, tmp364) ;
ATSlocal (ats_ptr_type, tmp365) ;
ATSlocal (ats_int_type, tmp366) ;
ATSlocal (ats_ptr_type, tmp367) ;
ATSlocal (ats_bool_type, tmp368) ;
ATSlocal (ats_ptr_type, tmp369) ;
ATSlocal (ats_ptr_type, tmp370) ;
ATSlocal (ats_int_type, tmp371) ;
ATSlocal (ats_bool_type, tmp669) ;
ATSlocal (ats_ptr_type, tmp670) ;
ATSlocal (ats_ptr_type, tmp671) ;
ATSlocal (ats_int_type, tmp672) ;
ATSlocal (ats_bool_type, tmp680) ;
ATSlocal (ats_ptr_type, tmp681) ;
ATSlocal (ats_ptr_type, tmp682) ;
ATSlocal (ats_int_type, tmp683) ;
ATSlocal (ats_int_type, tmp744) ;
ATSlocal (ats_ptr_type, tmp745) ;
ATSlocal (ats_ptr_type, tmp769) ;
ATSlocal (ats_ptr_type, tmp770) ;
ATSlocal (ats_bool_type, tmp771) ;
ATSlocal (ats_int_type, tmp772) ;
ATSlocal (ats_ptr_type, tmp773) ;
ATSlocal (ats_bool_type, tmp774) ;
ATSlocal (ats_ptr_type, tmp847) ;

__ats_lab_auxmain_05255_gmpknd:
do {
/* branch: __ats_lab_46 */
__ats_lab_46_0:
if (ats_ptrget_mac(ats_ptr_type, arg5) == (ats_sum_ptr_type)0) { goto __ats_lab_111_0 ; }
__ats_lab_46_1:
tmp363 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg5), atslab_0) ;
tmp364 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg5), atslab_1) ;
tmp365 = ats_ptrget_mac(ats_ptr_type, tmp363) ;
do {
/* branch: __ats_lab_47 */
__ats_lab_47_0:
if (((ats_sum_ptr_type)tmp365)->tag != 0) { goto __ats_lab_88_0 ; }
__ats_lab_47_1:
tmp366 = ats_caselptrlab_mac(anairiats_sum_5, tmp365, atslab_0) ;
tmp367 = &ats_caselptrlab_mac(anairiats_sum_5, tmp365, atslab_1) ;
do {
/* branch: __ats_lab_48 */
__ats_lab_48_0:
__ats_lab_48_1:
tmp368 = atspre_ieq (tmp366, -2) ;
if (!tmp368) { goto __ats_lab_82_1 ; }
tmp370 = ats_ptrget_mac(ats_ptr_type, tmp367) ;
tmp369 = myintvec_copy_04790_gmpknd (tmp370, arg4) ;
tmp371 = auxlt_04604_gmpknd (arg0, arg2, arg3, tmp369, arg4) ;
tmp362 = auxcont_04626_gmpknd (arg0, arg1, arg2, arg3, arg4, tmp364, tmp371) ;
break ;

/* branch: __ats_lab_82 */
__ats_lab_82_0:
__ats_lab_82_1:
tmp669 = atspre_ieq (tmp366, 2) ;
if (!tmp669) { goto __ats_lab_83_1 ; }
tmp671 = ats_ptrget_mac(ats_ptr_type, tmp367) ;
tmp670 = myintvec_copy_04790_gmpknd (tmp671, arg4) ;
tmp672 = auxgte_04611_gmpknd (arg0, arg2, arg3, tmp670, arg4) ;
tmp362 = auxcont_04626_gmpknd (arg0, arg1, arg2, arg3, arg4, tmp364, tmp672) ;
break ;

/* branch: __ats_lab_83 */
__ats_lab_83_0:
__ats_lab_83_1:
tmp680 = atspre_ieq (tmp366, 1) ;
if (!tmp680) { goto __ats_lab_87_1 ; }
tmp682 = ats_ptrget_mac(ats_ptr_type, tmp367) ;
tmp681 = myintvec_copy_04790_gmpknd (tmp682, arg4) ;
tmp683 = auxeq_04618_gmpknd (arg0, arg2, arg3, tmp681, arg4) ;
tmp362 = auxcont_04626_gmpknd (arg0, arg1, arg2, arg3, arg4, tmp364, tmp683) ;
break ;

/* branch: __ats_lab_87 */
__ats_lab_87_0:
__ats_lab_87_1:
/* ats_int_type tmp744 ; */
tmp769 = ats_ptrget_mac(ats_ptr_type, tmp367) ;
tmp745 = auxneq_04636_gmpknd (arg0, arg2, arg3, tmp769, arg4, (&tmp744)) ;
tmp770 = ats_ptrget_mac(ats_ptr_type, tmp363) ;
ATS_FREE(tmp770) ;
ats_ptrget_mac(ats_ptr_type, tmp363) = tmp745 ;
tmp771 = atspre_gte_int_int (tmp744, 0) ;
if (tmp771) {
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = arg3 ;
arg4 = arg4 ;
arg5 = arg5 ;
goto __ats_lab_auxmain_05255_gmpknd ; // tail call
} else {
tmp362 = -1 ;
} /* end of [if] */
break ;
} while (0) ;
break ;

/* branch: __ats_lab_88 */
__ats_lab_88_0:
if (((ats_sum_ptr_type)tmp365)->tag != 1) { goto __ats_lab_110_0 ; }
__ats_lab_88_1:
tmp772 = ats_caselptrlab_mac(anairiats_sum_5, tmp365, atslab_0) ;
tmp773 = &ats_caselptrlab_mac(anairiats_sum_5, tmp365, atslab_1) ;
do {
/* branch: __ats_lab_89 */
__ats_lab_89_0:
__ats_lab_89_1:
tmp774 = atspre_ieq (tmp772, 0) ;
if (!tmp774) { goto __ats_lab_94_1 ; }
tmp362 = auxmain_conj_05256_gmpknd (arg0, arg1, arg2, arg3, arg4, tmp364, tmp773) ;
break ;

/* branch: __ats_lab_94 */
__ats_lab_94_0:
__ats_lab_94_1:
tmp847 = (ats_sum_ptr_type)0 ;
tmp362 = auxmain_disj_05257_gmpknd (arg0, arg1, arg2, arg3, arg4, tmp364, tmp773, tmp847) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_110 */
__ats_lab_110_0:
// if (((ats_sum_ptr_type)tmp365)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_110_1:
tmp362 = 0 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_111 */
__ats_lab_111_0:
// if (ats_ptrget_mac(ats_ptr_type, arg5) != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_111_1:
tmp362 = 0 ;
break ;
} while (0) ;
return (tmp362) ;
} /* end of [auxmain_05255_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 12968(line=591, offs=3) -- 13225(line=600, offs=50)
*/
ATSstaticdec()
ats_void_type
myivlst_free_05239_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp849) ;
ATSlocal (ats_ptr_type, tmp850) ;
ATSlocal (ats_ptr_type, tmp851) ;
// ATSlocal_void (tmp852) ;
ATSlocal (ats_ptr_type, tmp853) ;

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

/* branch: __ats_lab_113 */
__ats_lab_113_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_114_0 ; }
__ats_lab_113_1:
tmp850 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_1) ;
tmp851 = ats_caselptrlab_mac(anairiats_sum_9, arg0, atslab_2) ;
ATS_FREE(arg0) ;
/* tmp852 = */ myintvec_free_04767_gmpknd (tmp850, arg1) ;
arg0 = tmp851 ;
arg1 = arg1 ;
goto __ats_lab_myivlst_free_05239_gmpknd ; // tail call
break ;

/* branch: __ats_lab_114 */
__ats_lab_114_0:
// if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_114_1:
tmp853 = ats_caselptrlab_mac(anairiats_sum_6, arg0, atslab_0) ;
ATS_FREE(arg0) ;
arg0 = tmp853 ;
arg1 = arg1 ;
goto __ats_lab_myivlst_free_05239_gmpknd ; // tail call
break ;
} while (0) ;
return /* (tmp849) */ ;
} /* end of [myivlst_free_05239_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 15460(line=726, offs=3) -- 15723(line=740, offs=53)
*/
ATSstaticdec()
ats_void_type
myiveqlst_free_05243_gmpknd (ats_ptr_type arg0, ats_int_type arg1) {
/* local vardec */
// ATSlocal_void (tmp855) ;
ATSlocal (ats_ptr_type, tmp856) ;
ATSlocal (ats_ptr_type, tmp857) ;
// ATSlocal_void (tmp858) ;
ATSlocal (ats_ptr_type, tmp859) ;

__ats_lab_myiveqlst_free_05243_gmpknd:
do {
/* branch: __ats_lab_115 */
__ats_lab_115_0:
if (((ats_sum_ptr_type)arg0)->tag != 0) { goto __ats_lab_116_0 ; }
__ats_lab_115_1:
break ;

/* branch: __ats_lab_116 */
__ats_lab_116_0:
if (((ats_sum_ptr_type)arg0)->tag != 1) { goto __ats_lab_117_0 ; }
__ats_lab_116_1:
tmp856 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_1) ;
tmp857 = ats_caselptrlab_mac(anairiats_sum_8, arg0, atslab_4) ;
ATS_FREE(arg0) ;
/* tmp858 = */ myintvec_free_04767_gmpknd (tmp856, arg1) ;
arg0 = tmp857 ;
arg1 = arg1 ;
goto __ats_lab_myiveqlst_free_05243_gmpknd ; // tail call
break ;

/* branch: __ats_lab_117 */
__ats_lab_117_0:
// if (((ats_sum_ptr_type)arg0)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_117_1:
tmp859 = ats_caselptrlab_mac(anairiats_sum_7, arg0, atslab_1) ;
ATS_FREE(arg0) ;
arg0 = tmp859 ;
arg1 = arg1 ;
goto __ats_lab_myiveqlst_free_05243_gmpknd ; // tail call
break ;
} while (0) ;
return /* (tmp855) */ ;
} /* end of [myiveqlst_free_05243_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_lintprgm_solve.dats: 31059(line=1461, offs=7) -- 31498(line=1484, offs=4)
*/
ATSstaticdec()
ats_int_type
icnstrlst_solve_04801_gmpknd (ats_ptr_type arg0, ats_ref_type arg1, ats_int_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp358) ;
ATSlocal (ats_ptr_type, tmp359) ;
ATSlocal (ats_ptr_type, tmp360) ;
ATSlocal (ats_int_type, tmp361) ;
// ATSlocal_void (tmp848) ;
// ATSlocal_void (tmp854) ;

__ats_lab_icnstrlst_solve_04801_gmpknd:
/* ats_ptr_type tmp359 ; */
tmp359 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVLSTnil_0) ;
/* ats_ptr_type tmp360 ; */
tmp360 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__MYIVEQLSTnil_0) ;
tmp361 = auxmain_05255_gmpknd (0, arg0, (&tmp359), (&tmp360), arg2, arg1) ;
/* tmp848 = */ myivlst_free_05239_gmpknd (tmp359, arg2) ;
/* tmp854 = */ myiveqlst_free_05243_gmpknd (tmp360, arg2) ;
tmp358 = tmp361 ;
return (tmp358) ;
} /* end of [icnstrlst_solve_04801_gmpknd] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 3206(line=130, offs=1) -- 4694(line=204, offs=4)
*/
ATSstaticdec()
ats_int_type
auxsolve_05097_gmpknd (ats_ptr_type arg0, ats_ptr_type arg1, ats_int_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_int_type, tmp125) ;
ATSlocal (ats_ptr_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, tmp356) ;
ATSlocal (ats_int_type, tmp357) ;
ATSlocal (ats_int_type, tmp860) ;
// ATSlocal_void (tmp861) ;
ATSlocal (ats_int_type, tmp862) ;

__ats_lab_auxsolve_05097_gmpknd:
tmp342 = (ats_sum_ptr_type)0 ;
tmp341 = loop_26 (arg0, arg1, arg2, arg3, tmp342) ;
tmp343 = s3exp2icnstr_04876_gmpknd (arg0, arg1, arg2, arg4) ;
tmp344 = icnstr_negate_04777_gmpknd (tmp343) ;
tmp345 = indexset_make_s3exp_05084_ats_abs_type (arg1, arg4) ;
/* ats_ptr_type tmp356 ; */
tmp356 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp356, atslab_0, tmp344) ;
ats_selptrset_mac(anairiats_sum_4, tmp356, atslab_1, tmp341) ;
tmp860 = atspre_iadd (arg2, 1) ;
tmp357 = icnstrlst_solve_04801_gmpknd (tmp345, (&tmp356), tmp860) ;
tmp862 = atspre_iadd (arg2, 1) ;
/* tmp861 = */ icnstrlst_free_04780_gmpknd (tmp356, tmp862) ;
tmp125 = tmp357 ;
return (tmp125) ;
} /* end of [auxsolve_05097_gmpknd] */

/*
// /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_131 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp866) ;
ATSlocal (ats_ptr_type, tmp867) ;

__ats_lab_loop_131:
do {
/* branch: __ats_lab_118 */
__ats_lab_118_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_119_0 ; }
__ats_lab_118_1:
tmp867 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ;
ATS_FREE(arg0) ;
arg0 = tmp867 ;
goto __ats_lab_loop_131 ; // tail call
break ;

/* branch: __ats_lab_119 */
__ats_lab_119_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_119_1:
break ;
} while (0) ;
return /* (tmp866) */ ;
} /* end of [loop_131] */

/*
// /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 (tmp865) ;

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

/*
// /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 4774(line=210, offs=3) -- 6727(line=287, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_solve_s2exp (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ref_type arg3) {
/* local vardec */
ATSlocal (ats_int_type, tmp102) ;
ATSlocal (ats_ptr_type, tmp103) ;
ATSlocal (ats_ptr_type, tmp104) ;
// ATSlocal_void (tmp105) ;
// ATSlocal_void (tmp108) ;
// ATSlocal_void (tmp109) ;
// ATSlocal_void (tmp110) ;
// ATSlocal_void (tmp111) ;
ATSlocal (ats_int_type, tmp112) ;
ATSlocal (ats_bool_type, tmp114) ;
ATSlocal (ats_bool_type, tmp116) ;
ATSlocal (ats_ptr_type, tmp117) ;
ATSlocal (anairiats_rec_1, tmp118) ;
ATSlocal (ats_ptr_type, tmp119) ;
ATSlocal (ats_ptr_type, tmp120) ;
ATSlocal (anairiats_rec_2, tmp121) ;
ATSlocal (ats_ptr_type, tmp122) ;
ATSlocal (ats_int_type, tmp123) ;
ATSlocal (ats_int_type, tmp124) ;
// ATSlocal_void (tmp863) ;
// ATSlocal_void (tmp864) ;
// ATSlocal_void (tmp868) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_solve_s2exp:
tmp103 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make (arg1, arg2) ;
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
if (((ats_sum_ptr_type)tmp103)->tag != 19) { goto __ats_lab_1_0 ; }
__ats_lab_0_1:
/* tmp105 = */ prerr_warning3_loc_02446_ (arg0) ;
/* tmp108 = */ atspre_prerr_string (ATSstrcst(": the constraint [")) ;
/* tmp109 = */ _2tmp_2ATS_2dPostiats_2src_2pats_staexp2_2esats__pprerr_s2exp (arg2) ;
/* tmp110 = */ atspre_prerr_string (ATSstrcst("] cannot be translated into a form accepted by the constraint solver.")) ;
/* tmp111 = */ atspre_prerr_newline () ;
tmp104 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_false ;
break ;

/* branch: __ats_lab_1 */
__ats_lab_1_0:
__ats_lab_1_1:
tmp104 = tmp103 ;
break ;
} while (0) ;
/* ats_int_type tmp112 ; */
tmp112 = 0 ;
do {
/* branch: __ats_lab_2 */
__ats_lab_2_0:
if (((ats_sum_ptr_type)tmp104)->tag != 4) { goto __ats_lab_3_0 ; }
tmp114 = ats_caselptrlab_mac(anairiats_sum_3, tmp104, atslab_0) ;
if (!tmp114) { goto __ats_lab_3_0 ; }
__ats_lab_2_1:
tmp112 = -1 ;
break ;

/* branch: __ats_lab_3 */
__ats_lab_3_0:
__ats_lab_3_1:
break ;
} while (0) ;
tmp116 = atspre_gte_int_int (tmp112, 0) ;
if (tmp116) {
tmp117 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_lintize (arg1, tmp104) ;
tmp118 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_extract (ats_ptrget_mac(ats_ptr_type, arg1)) ;
tmp119 = ats_select_mac(tmp118, atslab_0) ;
tmp120 = ats_select_mac(tmp118, atslab_1) ;
tmp121 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_make (tmp119) ;
tmp122 = ats_select_mac(tmp121, atslab_0) ;
tmp123 = ats_select_mac(tmp121, atslab_1) ;
tmp124 = auxsolve_05097_gmpknd (arg0, tmp122, tmp123, ats_castfn_mac(ats_ptr_type, tmp120), tmp117) ;
tmp112 = tmp124 ;
/* tmp863 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2varindmap_free (tmp122) ;
/* tmp864 = */ list_vt_free_01499_ats_ptr_type (tmp119) ;
/* tmp868 = */ list_vt_free_01499_ats_ptr_type (tmp120) ;
} else {
/* empty */
} /* end of [if] */
tmp102 = tmp112 ;
return (tmp102) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_solve_s2exp] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 8289(line=367, offs=5) -- 8597(line=382, offs=4)
*/
ATSstaticdec()
ats_void_type
prlst_133 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp870) ;
ATSlocal (ats_ptr_type, tmp871) ;
ATSlocal (ats_ptr_type, tmp872) ;
// ATSlocal_void (tmp873) ;
// ATSlocal_void (tmp874) ;

__ats_lab_prlst_133:
do {
/* branch: __ats_lab_120 */
__ats_lab_120_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_121_0 ; }
__ats_lab_120_1:
tmp871 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ;
tmp872 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ;
/* tmp873 = */ _2tmp_2ATS_2dPostiats_2src_2pats_patcst2_2esats__fprint_p2atcst (stderr, tmp871) ;
/* tmp874 = */ atspre_fprint_newline (stderr) ;
arg0 = tmp872 ;
goto __ats_lab_prlst_133 ; // tail call
break ;

/* branch: __ats_lab_121 */
__ats_lab_121_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_121_1:
break ;
} while (0) ;
return /* (tmp870) */ ;
} /* end of [prlst_133] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 8254(line=365, offs=3) -- 9105(line=405, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__prerr_case_exhaustiveness_errmsg (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp869) ;
// ATSlocal_void (tmp875) ;
// ATSlocal_void (tmp876) ;
// ATSlocal_void (tmp877) ;
// ATSlocal_void (tmp878) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__prerr_case_exhaustiveness_errmsg:
do {
/* branch: __ats_lab_122 */
__ats_lab_122_0:
if (((ats_sum_ptr_type)arg1)->tag != 1) { goto __ats_lab_123_0 ; }
__ats_lab_122_1:
/* tmp875 = */ prerr_error3_loc_02441_ (arg0) ;
/* tmp876 = */ atspre_prerr_string (ATSstrcst(": pattern match is nonexhaustive:\n")) ;
/* tmp869 = */ prlst_133 (arg2) ;
break ;

/* branch: __ats_lab_123 */
__ats_lab_123_0:
if (((ats_sum_ptr_type)arg1)->tag != 2) { goto __ats_lab_124_0 ; }
__ats_lab_123_1:
break ;

/* branch: __ats_lab_124 */
__ats_lab_124_0:
// if (((ats_sum_ptr_type)arg1)->tag != 0) { ats_deadcode_failure_handle () ; }
__ats_lab_124_1:
/* tmp877 = */ prerr_warning3_loc_02446_ (arg0) ;
/* tmp878 = */ atspre_prerr_string (ATSstrcst(": pattern match is nonexhaustive:\n")) ;
/* tmp869 = */ prlst_133 (arg2) ;
break ;
} while (0) ;
return /* (tmp869) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__prerr_case_exhaustiveness_errmsg] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 9290(line=417, offs=1) -- 9405(line=421, offs=57)
*/
ATSstaticdec()
ats_void_type
prerr_c3nstr_if_135 (ats_uint_type arg0, ats_ptr_type arg1) {
/* local vardec */
// ATSlocal_void (tmp882) ;
ATSlocal (ats_bool_type, tmp883) ;
// ATSlocal_void (tmp884) ;

__ats_lab_prerr_c3nstr_if_135:
tmp883 = atspre_eq_uint_uint (arg0, 0u) ;
if (tmp883) {
/* tmp884 = */ atspre_prerr_string (ATSstrcst(": ")) ;
/* tmp882 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__prerr_c3nstr (arg1) ;
} else {
/* empty */
} /* end of [if] */
return /* (tmp882) */ ;
} /* end of [prerr_c3nstr_if_135] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 9205(line=411, offs=3) -- 12279(line=530, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_errmsg (ats_ptr_type arg0, ats_uint_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp879) ;
ATSlocal (ats_ptr_type, tmp880) ;
ATSlocal (ats_ptr_type, tmp881) ;
ATSlocal (ats_bool_type, tmp885) ;
// ATSlocal_void (tmp886) ;
// ATSlocal_void (tmp887) ;
// ATSlocal_void (tmp888) ;
// ATSlocal_void (tmp889) ;
ATSlocal (ats_ptr_type, tmp890) ;
ATSlocal (ats_ptr_type, tmp891) ;
// ATSlocal_void (tmp892) ;
// ATSlocal_void (tmp893) ;
// ATSlocal_void (tmp894) ;
// ATSlocal_void (tmp895) ;
// ATSlocal_void (tmp896) ;
// ATSlocal_void (tmp897) ;
// ATSlocal_void (tmp898) ;
// ATSlocal_void (tmp899) ;
// ATSlocal_void (tmp900) ;
// ATSlocal_void (tmp901) ;
// ATSlocal_void (tmp902) ;
// ATSlocal_void (tmp903) ;
// ATSlocal_void (tmp904) ;
// ATSlocal_void (tmp905) ;
// ATSlocal_void (tmp906) ;
// ATSlocal_void (tmp907) ;
// ATSlocal_void (tmp908) ;
// ATSlocal_void (tmp909) ;
// ATSlocal_void (tmp910) ;
// ATSlocal_void (tmp911) ;
// ATSlocal_void (tmp912) ;
ATSlocal (ats_ptr_type, tmp913) ;
// ATSlocal_void (tmp914) ;
// ATSlocal_void (tmp915) ;
// ATSlocal_void (tmp916) ;
// ATSlocal_void (tmp917) ;
// ATSlocal_void (tmp918) ;
ATSlocal (ats_int_type, tmp919) ;
// ATSlocal_void (tmp920) ;
// ATSlocal_void (tmp921) ;
ATSlocal (ats_bool_type, tmp922) ;
// ATSlocal_void (tmp923) ;
ATSlocal (ats_bool_type, tmp924) ;
// ATSlocal_void (tmp925) ;
ATSlocal (ats_bool_type, tmp926) ;
// ATSlocal_void (tmp927) ;
// ATSlocal_void (tmp928) ;
// ATSlocal_void (tmp929) ;
// ATSlocal_void (tmp930) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_errmsg:
tmp880 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_c3nstr_loc) ;
tmp881 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg0), atslab_c3nstr_kind) ;
do {
/* branch: __ats_lab_125 */
__ats_lab_125_0:
if (((ats_sum_ptr_type)tmp881)->tag != 0) { goto __ats_lab_126_0 ; }
__ats_lab_125_1:
tmp885 = atspre_eq_uint_uint (arg1, 0u) ;
if (tmp885) {
/* tmp886 = */ prerr_error3_loc_02441_ (tmp880) ;
/* tmp887 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint: ")) ;
/* tmp888 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__prerr_c3nstr (arg0) ;
/* tmp889 = */ atspre_prerr_newline () ;
tmp879 = 0 ;
} else {
tmp879 = 0 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_126 */
__ats_lab_126_0:
if (((ats_sum_ptr_type)tmp881)->tag != 1) { goto __ats_lab_130_0 ; }
__ats_lab_126_1:
tmp890 = ats_caselptrlab_mac(anairiats_sum_7, tmp881, atslab_0) ;
tmp891 = ats_caselptrlab_mac(anairiats_sum_7, tmp881, atslab_1) ;
/* tmp892 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__prerr_case_exhaustiveness_errmsg (tmp880, tmp890, tmp891) ;
do {
/* branch: __ats_lab_127 */
__ats_lab_127_0:
if (((ats_sum_ptr_type)tmp890)->tag != 0) { goto __ats_lab_128_0 ; }
__ats_lab_127_1:
tmp879 = 1 ;
break ;

/* branch: __ats_lab_128 */
__ats_lab_128_0:
if (((ats_sum_ptr_type)tmp890)->tag != 1) { goto __ats_lab_129_0 ; }
__ats_lab_128_1:
tmp879 = 0 ;
break ;

/* branch: __ats_lab_129 */
__ats_lab_129_0:
// if (((ats_sum_ptr_type)tmp890)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_129_1:
tmp879 = 0 ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_130 */
__ats_lab_130_0:
if (((ats_sum_ptr_type)tmp881)->tag != 2) { goto __ats_lab_131_0 ; }
__ats_lab_130_1:
/* tmp893 = */ prerr_error3_loc_02441_ (tmp880) ;
/* tmp894 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for termetric being well-founded")) ;
/* tmp895 = */ prerr_c3nstr_if_135 (arg1, arg0) ;
/* tmp896 = */ atspre_prerr_newline () ;
tmp879 = 0 ;
break ;

/* branch: __ats_lab_131 */
__ats_lab_131_0:
if (((ats_sum_ptr_type)tmp881)->tag != 3) { goto __ats_lab_132_0 ; }
__ats_lab_131_1:
/* tmp897 = */ prerr_error3_loc_02441_ (tmp880) ;
/* tmp898 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for termetric being strictly decreasing")) ;
/* tmp899 = */ prerr_c3nstr_if_135 (arg1, arg0) ;
/* tmp900 = */ atspre_prerr_newline () ;
tmp879 = 0 ;
break ;

/* branch: __ats_lab_132 */
__ats_lab_132_0:
if (((ats_sum_ptr_type)tmp881)->tag != 4) { goto __ats_lab_133_0 ; }
__ats_lab_132_1:
/* tmp901 = */ prerr_error3_loc_02441_ (tmp880) ;
/* tmp902 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for var preservation")) ;
/* tmp903 = */ atspre_prerr_newline () ;
tmp879 = 0 ;
break ;

/* branch: __ats_lab_133 */
__ats_lab_133_0:
if (((ats_sum_ptr_type)tmp881)->tag != 5) { goto __ats_lab_134_0 ; }
__ats_lab_133_1:
/* tmp904 = */ prerr_error3_loc_02441_ (tmp880) ;
/* tmp905 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for lvar preservation")) ;
/* tmp906 = */ atspre_prerr_newline () ;
tmp879 = 0 ;
break ;

/* branch: __ats_lab_134 */
__ats_lab_134_0:
if (((ats_sum_ptr_type)tmp881)->tag != 6) { goto __ats_lab_135_0 ; }
__ats_lab_134_1:
/* tmp907 = */ prerr_error3_loc_02441_ (tmp880) ;
/* tmp908 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for vbox preservation")) ;
/* tmp909 = */ atspre_prerr_newline () ;
tmp879 = 0 ;
break ;

/* branch: __ats_lab_135 */
__ats_lab_135_0:
if (((ats_sum_ptr_type)tmp881)->tag != 7) { goto __ats_lab_136_0 ; }
__ats_lab_135_1:
/* tmp910 = */ prerr_error3_loc_02441_ (tmp880) ;
/* tmp911 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for lstate merging")) ;
/* tmp912 = */ atspre_prerr_newline () ;
tmp879 = 0 ;
break ;

/* branch: __ats_lab_136 */
__ats_lab_136_0:
if (((ats_sum_ptr_type)tmp881)->tag != 8) { goto __ats_lab_137_0 ; }
__ats_lab_136_1:
tmp913 = ats_caselptrlab_mac(anairiats_sum_6, tmp881, atslab_0) ;
/* tmp914 = */ prerr_error3_loc_02441_ (tmp880) ;
/* tmp915 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for merging the lstate of [")) ;
/* tmp916 = */ _2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__prerr_d2var (tmp913) ;
/* tmp917 = */ atspre_prerr_string (ATSstrcst("]")) ;
/* tmp918 = */ atspre_prerr_newline () ;
tmp879 = 0 ;
break ;

/* branch: __ats_lab_137 */
__ats_lab_137_0:
if (((ats_sum_ptr_type)tmp881)->tag != 9) { goto __ats_lab_138_0 ; }
__ats_lab_137_1:
tmp919 = ats_caselptrlab_mac(anairiats_sum_11, tmp881, atslab_0) ;
/* tmp920 = */ prerr_error3_loc_02441_ (tmp880) ;
tmp922 = atspre_lt_int_int (tmp919, 0) ;
if (tmp922) {
/* tmp921 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for loop(enter)")) ;
} else {
/* empty */
} /* end of [if] */
tmp924 = atspre_eq_int_int (tmp919, 0) ;
if (tmp924) {
/* tmp923 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for loop(break)")) ;
} else {
/* empty */
} /* end of [if] */
tmp926 = atspre_gt_int_int (tmp919, 0) ;
if (tmp926) {
/* tmp925 = */ atspre_prerr_string (ATSstrcst(": unsolved constraint for loop(continue)")) ;
} else {
/* empty */
} /* end of [if] */
/* tmp927 = */ atspre_prerr_newline () ;
tmp879 = 0 ;
break ;

/* branch: __ats_lab_138 */
__ats_lab_138_0:
// if (((ats_sum_ptr_type)tmp881)->tag != 10) { ats_deadcode_failure_handle () ; }
__ats_lab_138_1:
/* tmp928 = */ prerr_error3_loc_02441_ (tmp880) ;
/* tmp929 = */ atspre_prerr_string (ATSstrcst(": the constraint is expected to be verified externally.")) ;
/* tmp930 = */ atspre_prerr_newline () ;
tmp879 = 0 ;
break ;
} while (0) ;
return (tmp879) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_errmsg] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 12362(line=536, offs=1) -- 13255(line=593, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_main (ats_ref_type arg0, ats_ptr_type arg1, ats_ref_type arg2, ats_ref_type arg3) {
/* local vardec */
ATSlocal (ats_int_type, tmp931) ;
ATSlocal (ats_ptr_type, tmp932) ;
ATSlocal (ats_int_type, tmp933) ;
ATSlocal (ats_ptr_type, tmp934) ;
ATSlocal (ats_ptr_type, tmp935) ;
ATSlocal (ats_ptr_type, tmp936) ;
ATSlocal (ats_ptr_type, tmp937) ;
ATSlocal (ats_bool_type, tmp939) ;
ATSlocal (ats_int_type, tmp940) ;
ATSlocal (ats_bool_type, tmp941) ;
ATSlocal (ats_bool_type, tmp943) ;
ATSlocal (ats_uint_type, tmp944) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_main:
tmp932 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg1), atslab_c3nstr_loc) ;
/* ats_int_type tmp933 ; */
tmp934 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_10, arg1), atslab_c3nstr_node) ;
do {
/* branch: __ats_lab_139 */
__ats_lab_139_0:
if (((ats_sum_ptr_type)tmp934)->tag != 0) { goto __ats_lab_140_0 ; }
__ats_lab_139_1:
tmp935 = ats_caselptrlab_mac(anairiats_sum_6, tmp934, atslab_0) ;
tmp933 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_prop (tmp932, arg0, tmp935, arg3) ;
break ;

/* branch: __ats_lab_140 */
__ats_lab_140_0:
if (((ats_sum_ptr_type)tmp934)->tag != 1) { goto __ats_lab_141_0 ; }
__ats_lab_140_1:
tmp936 = ats_caselptrlab_mac(anairiats_sum_6, tmp934, atslab_0) ;
tmp933 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst (tmp932, arg0, tmp936, arg2, arg3) ;
break ;

/* branch: __ats_lab_141 */
__ats_lab_141_0:
// if (((ats_sum_ptr_type)tmp934)->tag != 2) { ats_deadcode_failure_handle () ; }
__ats_lab_141_1:
tmp937 = ats_caselptrlab_mac(anairiats_sum_6, tmp934, atslab_0) ;
tmp933 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_solverify (tmp932, arg0, tmp937, arg3) ;
break ;
} while (0) ;
tmp939 = atspre_gte_int_int (tmp933, 0) ;
if (tmp939) {
tmp940 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_errmsg (arg1, ats_ptrget_mac(ats_uint_type, arg2)) ;
tmp941 = atspre_gt_int_int (tmp940, 0) ;
if (tmp941) {
tmp933 = -1 ;
} else {
/* empty */
} /* end of [if] */
} else {
/* empty */
} /* end of [if] */
tmp943 = atspre_gte_int_int (tmp933, 0) ;
if (tmp943) {
tmp944 = atspre_add_uint_uint (ats_ptrget_mac(ats_uint_type, arg2), 1u) ;
ats_ptrget_mac(ats_uint_type, arg2) = tmp944 ;
} else {
/* empty */
} /* end of [if] */
tmp931 = tmp933 ;
return (tmp931) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_main] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 13338(line=599, offs=3) -- 13543(line=608, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_prop (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ref_type arg3) {
/* local vardec */
ATSlocal (ats_int_type, tmp945) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_prop:
tmp945 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3explst_solve_s2exp (arg0, arg1, arg2, arg3) ;
return (tmp945) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_prop] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 13626(line=614, offs=1) -- 15638(line=690, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ref_type arg3, ats_ref_type arg4) {
/* local vardec */
ATSlocal (ats_int_type, tmp946) ;
ATSlocal (ats_ptr_type, tmp947) ;
ATSlocal (ats_ptr_type, tmp948) ;
ATSlocal (ats_ptr_type, tmp949) ;
// ATSlocal_void (tmp950) ;
ATSlocal (ats_ptr_type, tmp951) ;
ATSlocal (ats_ptr_type, tmp952) ;
// ATSlocal_void (tmp953) ;
ATSlocal (ats_ptr_type, tmp954) ;
ATSlocal (ats_ptr_type, tmp955) ;
ATSlocal (ats_ptr_type, tmp956) ;
ATSlocal (ats_ptr_type, tmp957) ;
ATSlocal (ats_ptr_type, tmp958) ;
ATSlocal (ats_ptr_type, tmp959) ;
ATSlocal (ats_ptr_type, tmp960) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst:
do {
/* branch: __ats_lab_142 */
__ats_lab_142_0:
if (arg2 != (ats_sum_ptr_type)0) { goto __ats_lab_143_0 ; }
__ats_lab_142_1:
tmp946 = -1 ;
break ;

/* branch: __ats_lab_143 */
__ats_lab_143_0:
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_143_1:
tmp947 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_0) ;
tmp948 = ats_caselptrlab_mac(anairiats_sum_4, arg2, atslab_1) ;
do {
/* branch: __ats_lab_144 */
__ats_lab_144_0:
if (((ats_sum_ptr_type)tmp947)->tag != 0) { goto __ats_lab_145_0 ; }
__ats_lab_144_1:
tmp949 = ats_caselptrlab_mac(anairiats_sum_6, tmp947, atslab_0) ;
/* tmp950 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_svar (arg1, tmp949) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp948 ;
arg3 = arg3 ;
arg4 = arg4 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst ; // tail call
break ;

/* branch: __ats_lab_145 */
__ats_lab_145_0:
if (((ats_sum_ptr_type)tmp947)->tag != 1) { goto __ats_lab_148_0 ; }
__ats_lab_145_1:
tmp951 = ats_caselptrlab_mac(anairiats_sum_6, tmp947, atslab_0) ;
tmp952 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_make_h3ypo (arg1, tmp951) ;
do {
/* branch: __ats_lab_146 */
__ats_lab_146_0:
if (((ats_sum_ptr_type)tmp952)->tag != 19) { goto __ats_lab_147_0 ; }
__ats_lab_146_1:
break ;

/* branch: __ats_lab_147 */
__ats_lab_147_0:
__ats_lab_147_1:
tmp954 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s3exp_lintize (arg1, tmp952) ;
/* tmp953 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_add_sbexp (arg1, tmp954) ;
break ;
} while (0) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp948 ;
arg3 = arg3 ;
arg4 = arg4 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst ; // tail call
break ;

/* branch: __ats_lab_148 */
__ats_lab_148_0:
if (((ats_sum_ptr_type)tmp947)->tag != 2) { goto __ats_lab_149_0 ; }
__ats_lab_148_1:
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp948 ;
arg3 = arg3 ;
arg4 = arg4 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst ; // tail call
break ;

/* branch: __ats_lab_149 */
__ats_lab_149_0:
if (((ats_sum_ptr_type)tmp947)->tag != 3) { goto __ats_lab_150_0 ; }
__ats_lab_149_1:
tmp955 = ats_caselptrlab_mac(anairiats_sum_6, tmp947, atslab_0) ;
tmp946 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_cnstr (arg0, arg1, tmp948, tmp955, arg3, arg4) ;
break ;

/* branch: __ats_lab_150 */
__ats_lab_150_0:
if (((ats_sum_ptr_type)tmp947)->tag != 4) { goto __ats_lab_153_0 ; }
__ats_lab_150_1:
tmp956 = ats_caselptrlab_mac(anairiats_sum_6, tmp947, atslab_0) ;
tmp957 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_12, tmp956), atslab_c3nstroptref_ref) ;
tmp958 = ats_ptrget_mac(ats_ptr_type, tmp957) ;
do {
/* branch: __ats_lab_151 */
__ats_lab_151_0:
if (tmp958 != (ats_sum_ptr_type)0) { goto __ats_lab_152_0 ; }
__ats_lab_151_1:
tmp946 = -1 ;
break ;

/* branch: __ats_lab_152 */
__ats_lab_152_0:
// if (tmp958 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_152_1:
tmp959 = ats_caselptrlab_mac(anairiats_sum_13, tmp958, atslab_0) ;
tmp946 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_cnstr (arg0, arg1, tmp948, tmp959, arg3, arg4) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_153 */
__ats_lab_153_0:
if (((ats_sum_ptr_type)tmp947)->tag != 5) { goto __ats_lab_154_0 ; }
__ats_lab_153_1:
tmp960 = ats_caselptrlab_mac(anairiats_sum_6, tmp947, atslab_0) ;
tmp946 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_disj (arg0, arg1, tmp948, tmp960, arg3, arg4) ;
break ;

/* branch: __ats_lab_154 */
__ats_lab_154_0:
// if (((ats_sum_ptr_type)tmp947)->tag != 6) { ats_deadcode_failure_handle () ; }
__ats_lab_154_1:
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp948 ;
arg3 = arg3 ;
arg4 = arg4 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst ; // tail call
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp946) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 15729(line=696, offs=1) -- 16164(line=711, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_cnstr (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ref_type arg5) {
/* local vardec */
ATSlocal (ats_int_type, tmp961) ;
// ATSlocal_void (tmp962) ;
// ATSlocal_void (tmp963) ;
// ATSlocal_void (tmp964) ;
// ATSlocal_void (tmp965) ;
ATSlocal (ats_int_type, tmp966) ;
// ATSlocal_void (tmp967) ;
// ATSlocal_void (tmp968) ;
ATSlocal (ats_int_type, tmp969) ;
ATSlocal (ats_bool_type, tmp970) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_cnstr:
/* tmp962 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_push (arg1) ;
/* tmp963 = ats_selsin_mac(tmp962, atslab_1) */ ;
/* tmp964 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_push () ;
/* tmp965 = ats_selsin_mac(tmp964, atslab_1) */ ;
tmp966 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_main (arg1, arg3, arg4, arg5) ;
/* tmp967 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_pop () ;
/* tmp968 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_pop (arg1) ;
tmp969 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst (arg0, arg1, arg2, arg4, arg5) ;
tmp970 = atspre_gte_int_int (tmp966, 0) ;
if (tmp970) {
tmp961 = 0 ;
} else {
tmp961 = tmp969 ;
} /* end of [if] */
return (tmp961) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_cnstr] */

/*
// /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_142 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ref_type arg2) {
/* local vardec */
// ATSlocal_void (tmp981) ;
ATSlocal (ats_ptr_type, tmp982) ;
ATSlocal (ats_ptr_type, tmp983) ;
ATSlocal (ats_ptr_type, tmp984) ;
ATSlocal (ats_ptr_type, tmp985) ;

__ats_lab_loop_142:
do {
/* branch: __ats_lab_157 */
__ats_lab_157_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_158_0 ; }
__ats_lab_157_1:
tmp982 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_0) ;
tmp983 = ats_caselptrlab_mac(anairiats_sum_4, arg0, atslab_1) ;
tmp984 = ATS_MALLOC(sizeof(anairiats_sum_4)) ;
ats_selptrset_mac(anairiats_sum_4, tmp984, atslab_0, tmp982) ;
ats_ptrget_mac(ats_ptr_type, arg2) = tmp984 ;
// if (ats_ptrget_mac(ats_ptr_type, arg2) == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp985 = &ats_caselptrlab_mac(anairiats_sum_4, ats_ptrget_mac(ats_ptr_type, arg2), atslab_1) ;
arg0 = tmp983 ;
arg1 = arg1 ;
arg2 = tmp985 ;
goto __ats_lab_loop_142 ; // tail call
break ;

/* branch: __ats_lab_158 */
__ats_lab_158_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_158_1:
ats_ptrget_mac(ats_ptr_type, arg2) = arg1 ;
break ;
} while (0) ;
return /* (tmp981) */ ;
} /* end of [loop_142] */

/*
// /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, tmp979) ;
ATSlocal (ats_ptr_type, tmp980) ;
// ATSlocal_void (tmp986) ;

__ats_lab_list_append_01312_ats_ptr_type:
/* ats_ptr_type tmp980 ; */
/* tmp986 = */ loop_142 (arg0, arg1, (&tmp980)) ;
tmp979 = tmp980 ;
return (tmp979) ;
} /* end of [list_append_01312_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 16260(line=717, offs=1) -- 16956(line=746, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_disj (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ref_type arg4, ats_ref_type arg5) {
/* local vardec */
ATSlocal (ats_int_type, tmp971) ;
ATSlocal (ats_ptr_type, tmp972) ;
ATSlocal (ats_ptr_type, tmp973) ;
// ATSlocal_void (tmp974) ;
// ATSlocal_void (tmp975) ;
// ATSlocal_void (tmp976) ;
// ATSlocal_void (tmp977) ;
ATSlocal (ats_ptr_type, tmp978) ;
ATSlocal (ats_int_type, tmp987) ;
// ATSlocal_void (tmp988) ;
// ATSlocal_void (tmp989) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_disj:
do {
/* branch: __ats_lab_155 */
__ats_lab_155_0:
if (arg3 != (ats_sum_ptr_type)0) { goto __ats_lab_156_0 ; }
__ats_lab_155_1:
tmp971 = -1 ;
break ;

/* branch: __ats_lab_156 */
__ats_lab_156_0:
// if (arg3 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_156_1:
tmp972 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_0) ;
tmp973 = ats_caselptrlab_mac(anairiats_sum_4, arg3, atslab_1) ;
/* tmp974 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_push (arg1) ;
/* tmp975 = ats_selsin_mac(tmp974, atslab_1) */ ;
/* tmp976 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_push () ;
/* tmp977 = ats_selsin_mac(tmp976, atslab_1) */ ;
tmp978 = list_append_01312_ats_ptr_type (tmp972, arg2) ;
tmp987 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst (arg0, arg1, tmp978, arg4, arg5) ;
/* tmp988 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_pop () ;
/* tmp989 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_pop (arg1) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp973 ;
arg4 = arg4 ;
arg5 = arg5 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_disj ; // tail call
break ;
} while (0) ;
return (tmp971) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_itmlst_disj] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 17051(line=752, offs=3) -- 17204(line=763, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_solverify (ats_ptr_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ref_type arg3) {
/* local vardec */
ATSlocal (ats_int_type, tmp990) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_solverify:
tmp990 = 0 ;
return (tmp990) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_solverify] */

/*
// /tmp/ATS-Postiats/src/pats_constraint3_solve.dats: 17290(line=768, offs=19) -- 18406(line=819, offs=4)
*/
ATSglobaldec()
ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_ats2_solve (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp991) ;
ATSlocal (ats_ptr_type, tmp992) ;
// ATSlocal_void (tmp993) ;
ATSlocal (ats_uint_type, tmp994) ;
ATSlocal (ats_int_type, tmp995) ;
ATSlocal (ats_int_type, tmp996) ;
// ATSlocal_void (tmp997) ;
ATSlocal (ats_bool_type, tmp998) ;
// ATSlocal_void (tmp999) ;
// ATSlocal_void (tmp1000) ;
ATSlocal (ats_bool_type, tmp1001) ;
// ATSlocal_void (tmp1002) ;
ATSlocal (ats_bool_type, tmp1003) ;
// ATSlocal_void (tmp1004) ;
// ATSlocal_void (tmp1005) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_ats2_solve:
/* ats_ptr_type tmp992 ; */
tmp992 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_nil () ;
/* tmp993 = */ _2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__the_s2varbindmap_freetop () ;
/* ats_uint_type tmp994 ; */
tmp994 = 0u ;
/* ats_int_type tmp995 ; */
tmp995 = 0 ;
tmp996 = _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__c3nstr_solve_main ((&tmp992), arg0, (&tmp994), (&tmp995)) ;
/* tmp997 = */ _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__s2vbcfenv_free (tmp992) ;
do {
/* branch: __ats_lab_159 */
__ats_lab_159_0:
__ats_lab_159_1:
tmp998 = atspre_eq_uint_uint (tmp994, 0u) ;
if (!tmp998) { goto __ats_lab_160_1 ; }
break ;

/* branch: __ats_lab_160 */
__ats_lab_160_0:
__ats_lab_160_1:
/* tmp999 = */ atspre_prerr_string (ATSstrcst("typechecking has failed")) ;
tmp1001 = atspre_lte_uint_uint (tmp994, 1u) ;
if (tmp1001) {
/* tmp1000 = */ atspre_prerr_string (ATSstrcst(": there is one unsolved constraint")) ;
} else {
/* empty */
} /* end of [if] */
tmp1003 = atspre_gte_uint_uint (tmp994, 2u) ;
if (tmp1003) {
/* tmp1002 = */ atspre_prerr_string (ATSstrcst(": there are some unsolved constraints")) ;
} else {
/* empty */
} /* end of [if] */
/* tmp1004 = */ atspre_prerr_string (ATSstrcst(": please inspect the above reported error message(s) for information.")) ;
/* tmp1005 = */ atspre_prerr_newline () ;
/* tmp991 = */ _2tmp_2ATS_2dPostiats_2src_2pats_error_2esats__abort () ;
break ;
} while (0) ;
return /* (tmp991) */ ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__c3nstr_ats2_solve] */

/* static load function */

// extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_error_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_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_trans3_env_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload (void) ;
extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_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_lintprgm_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_2edats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__staload_flag = 1 ;

// _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ;
// ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_basics_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_error_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_patcst2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_dynexp2_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_trans3_env_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_2esats__staload () ;
ATS_2d0_2e2_2e12_2libc_2SATS_2gmp_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_intinf_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2edats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_solve_2edats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_icnstr_2edats__staload () ;

return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_constraint3_solve_2edats__staload () ;

#ifdef _ATS_PROOFCHECK
ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
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_2libats_2ngc_2SATS_2deque_arr_2esats__lemma_deque_param_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_encode_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_decode_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_clear_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_insert_beg_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_insert_end_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_remove_beg_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_remove_end_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
_2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ;
_2tmp_2ATS_2dPostiats_2src_2pats_utils_2edats____assert_prfck () ;
_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout_addback_prfck () ;
_2tmp_2ATS_2dPostiats_2src_2pats_lintprgm_2esats__myintvecout0_addback_prfck () ;
#endif /* _ATS_PROOFCHECK */

/* marking static variables for GC */

/* marking external values for GC */

/* code for dynamic loading */
return ;
} /* end of [dynload function] */

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

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

/* end of [pats_constraint3_solve_dats.c] */
