packages feed

fast-combinatorics-0.1.0.4: cbits/numerics-ffi.c

/*
**
** The C code is generated by [ATS/Postiats-0-3-8]
** The starting compilation time is: 2017-12-30: 23h:56m
**
*/

/*
** include runtime header files
*/
#ifndef _ATS_CCOMP_HEADER_NONE_
#include "pats_ccomp_config.h"
#include "pats_ccomp_basics.h"
#include "pats_ccomp_typedefs.h"
#include "pats_ccomp_instrset.h"
#include "pats_ccomp_memalloc.h"
#ifndef _ATS_CCOMP_EXCEPTION_NONE_
#include "pats_ccomp_memalloca.h"
#include "pats_ccomp_exception.h"
#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
#endif /* _ATS_CCOMP_HEADER_NONE_ */


/*
** include prelude cats files
*/
#ifndef _ATS_CCOMP_PRELUDE_NONE_
//
#include "prelude/CATS/basics.cats"
#include "prelude/CATS/integer.cats"
#include "prelude/CATS/pointer.cats"
#include "prelude/CATS/integer_long.cats"
#include "prelude/CATS/integer_size.cats"
#include "prelude/CATS/integer_short.cats"
#include "prelude/CATS/bool.cats"
#include "prelude/CATS/char.cats"
#include "prelude/CATS/float.cats"
#include "prelude/CATS/integer_ptr.cats"
#include "prelude/CATS/integer_fixed.cats"
#include "prelude/CATS/memory.cats"
#include "prelude/CATS/string.cats"
#include "prelude/CATS/strptr.cats"
//
#include "prelude/CATS/fprintf.cats"
//
#include "prelude/CATS/filebas.cats"
//
#include "prelude/CATS/list.cats"
#include "prelude/CATS/option.cats"
#include "prelude/CATS/array.cats"
#include "prelude/CATS/arrayptr.cats"
#include "prelude/CATS/arrayref.cats"
#include "prelude/CATS/matrix.cats"
#include "prelude/CATS/matrixptr.cats"
//
#endif /* _ATS_CCOMP_PRELUDE_NONE_ */
/*
** for user-supplied prelude
*/
#ifdef _ATS_CCOMP_PRELUDE_USER_
//
#include _ATS_CCOMP_PRELUDE_USER_
//
#endif /* _ATS_CCOMP_PRELUDE_USER_ */
/*
** for user2-supplied prelude
*/
#ifdef _ATS_CCOMP_PRELUDE_USER2_
//
#include _ATS_CCOMP_PRELUDE_USER2_
//
#endif /* _ATS_CCOMP_PRELUDE_USER2_ */

/*
staload-prologues(beg)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/basics.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 1533(line=44, offs=1) -- 1572(line=44, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_long.dats: 1602(line=49, offs=1) -- 1641(line=49, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_size.dats: 1597(line=49, offs=1) -- 1636(line=49, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_short.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/char.dats: 1610(line=48, offs=1) -- 1649(line=48, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/float.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/string.dats: 1631(line=50, offs=1) -- 1670(line=50, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1629(line=50, offs=1) -- 1668(line=50, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1691(line=54, offs=1) -- 1738(line=54, offs=48)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_ptr.dats: 1601(line=49, offs=1) -- 1640(line=49, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_fixed.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/memory.dats: 1410(line=38, offs=1) -- 1449(line=39, offs=32)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1613(line=49, offs=1) -- 1652(line=50, offs=32)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1675(line=54, offs=1) -- 1721(line=55, offs=39)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1744(line=59, offs=1) -- 1789(line=60, offs=38)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
*/

#include \
"libats/libc/CATS/stdio.cats"
/*
/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
*/

#include \
"libats/libc/CATS/sys/types.cats"
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1871(line=66, offs=1) -- 1918(line=66, offs=48)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1390(line=36, offs=1) -- 1440(line=39, offs=3)
*/

#include \
"libats/libc/CATS/sys/stat.cats"
/*
/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1756(line=58, offs=1) -- 1805(line=60, offs=34)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
*/

#include \
"libats/libc/CATS/sys/types.cats"
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 15552(line=879, offs=1) -- 15589(line=880, offs=30)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
*/

#include \
"libats/libc/CATS/stdio.cats"
/*
/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
*/

#include \
"libats/libc/CATS/sys/types.cats"
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1529(line=44, offs=1) -- 1568(line=45, offs=32)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1569(line=46, offs=1) -- 1615(line=47, offs=39)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1538(line=44, offs=1) -- 1577(line=45, offs=32)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1578(line=46, offs=1) -- 1624(line=47, offs=39)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_mergesort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_quicksort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1534(line=44, offs=1) -- 1573(line=44, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1574(line=45, offs=1) -- 1616(line=45, offs=43)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_bsearch.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_quicksort.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayptr.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayref.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrix.dats: 1535(line=44, offs=1) -- 1574(line=44, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixptr.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixref.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream_vt.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/tostring.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/checkast.dats: 1531(line=44, offs=1) -- 1570(line=45, offs=32)
*/
/*
/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/math.sats: 1380(line=35, offs=1) -- 1426(line=38, offs=3)
*/

#include \
"libats/libc/CATS/math.cats"
/*
staload-prologues(end)
*/
/*
typedefs-for-tyrecs-and-tysums(beg)
*/
/*
typedefs-for-tyrecs-and-tysums(end)
*/
/*
dynconlst-declaration(beg)
*/
/*
dynconlst-declaration(end)
*/
/*
dyncstlst-declaration(beg)
*/
ATSdyncst_mac(atspre_g1int2int_int_int)
ATSdyncst_mac(atspre_g1int_gt_int)
ATSdyncst_mac(atspre_g1int_half_int)
ATSdyncst_mac(atspre_g0int_mod_int)
ATSdyncst_mac(atspre_g0int2int_int_int)
ATSdyncst_mac(atspre_g0int_eq_int)
ATSdyncst_mac(atspre_g0int_mul_int)
ATSdyncst_mac(atspre_g0float2int_float_int)
ATSdyncst_mac(atslib_libats_libc_sqrt_float)
ATSdyncst_mac(atspre_g0int2float_int_float)
ATSdyncst_mac(atspre_g1int_add_int)
ATSdyncst_mac(atspre_g0int_sub_int)
ATSdyncst_mac(atspre_g1int_lt_int)
ATSdyncst_mac(atspre_g1int_eq_int)
/*
dyncstlst-declaration(end)
*/
/*
dynvalist-implementation(beg)
*/
/*
dynvalist-implementation(end)
*/
/*
exnconlst-declaration(beg)
*/
#ifndef _ATS_CCOMP_EXCEPTION_NONE_
ATSextern()
atsvoid_t0ype
the_atsexncon_initize
(
  atstype_exnconptr d2c, atstype_string exnmsg
) ;
#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
/*
exnconlst-declaration(end)
*/
/*
extypelst-declaration(beg)
*/
/*
extypelst-declaration(end)
*/
/*
assumelst-declaration(beg)
*/
#ifndef _ATS_CCOMP_ASSUME_CHECK_NONE_
#endif // #ifndef(_ATS_CCOMP_ASSUME_CHECK_NONE_)
/*
assumelst-declaration(end)
*/
ATSstatic()
atstkind_t0ype(atstype_int)
exp_0(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;

#if(0)
#if(0)
ATSextern()
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__gt_g1int_int__1(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
#endif // end of [QUALIFIED]
#endif // end of [TEMPLATE]

ATSstatic()
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__gt_g1int_int__1__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;

#if(0)
#if(0)
ATSextern()
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__eq_g0int_int__7(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
#endif // end of [QUALIFIED]
#endif // end of [TEMPLATE]

ATSstatic()
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__eq_g0int_int__7__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;

ATSstatic()
atstkind_t0ype(atstype_int)
sqrt_bad_12(atstkind_t0ype(atstype_int)) ;

ATSstatic()
atstkind_t0ype(atstype_int)
__patsfun_14(atstkind_t0ype(atstype_int)) ;

ATSstatic()
atstkind_t0ype(atstype_bool)
is_prime_17(atstkind_t0ype(atstype_int)) ;

ATSstatic()
atstkind_t0ype(atstype_bool)
loop_18(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;

#if(0)
#if(0)
ATSextern()
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__lt_g1int_int__19(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
#endif // end of [QUALIFIED]
#endif // end of [TEMPLATE]

ATSstatic()
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__lt_g1int_int__19__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;

ATSstatic()
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__eq_g0int_int__7__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;

#if(0)
#if(0)
ATSextern()
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__eq_g1int_int__23(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
#endif // end of [QUALIFIED]
#endif // end of [TEMPLATE]

ATSstatic()
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__eq_g1int_int__23__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;

ATSstatic()
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__eq_g0int_int__7__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;

#if(0)
ATSextern()
atstkind_t0ype(atstype_bool)
is_prime_ats(atstkind_t0ype(atstype_int)) ;
#endif // end of [QUALIFIED]

#if(0)
ATSextern()
atstkind_t0ype(atstype_int)
exp_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
#endif // end of [QUALIFIED]

ATSclosurerize_beg(__patsfun_14, (), (atstkind_t0ype(atstype_int)), atstkind_t0ype(atstype_int))
typedef
ATSstruct {
atstype_funptr cfun ;
} __patsfun_14__closure_t0ype ;
ATSstatic()
atstkind_t0ype(atstype_int)
__patsfun_14__cfun
(
__patsfun_14__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) arg0
)
{
ATSFCreturn(__patsfun_14(arg0)) ;
} /* end of [cfun] */
ATSstatic()
atstype_cloptr
__patsfun_14__closureinit
(
__patsfun_14__closure_t0ype *p_cenv
)
{
p_cenv->cfun = __patsfun_14__cfun ;
return p_cenv ;
} /* end of [closureinit] */
ATSclosurerize_end()
/*
/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 108(line=7, offs=5) -- 467(line=24, offs=10)
*/
/*
local: exp_0$0(level=0)
global: exp_0$0(level=0)
local: 
global: 
*/
ATSstatic()
atstkind_t0ype(atstype_int)
exp_0(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
{
/* tmpvardeclst(beg) */
ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
ATStmpdec(tmpret0, atstkind_t0ype(atstype_int)) ;
ATStmpdec(tmp1, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp6, atstkind_t0ype(atstype_int)) ;
ATStmpdec(tmp7, atstkind_t0ype(atstype_int)) ;
ATStmpdec(tmp8, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp13, atstkind_t0ype(atstype_int)) ;
ATStmpdec(tmp14, atstkind_t0ype(atstype_int)) ;
ATStmpdec(tmp15, atstkind_t0ype(atstype_int)) ;
/* tmpvardeclst(end) */
ATSfunbody_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 108(line=7, offs=5) -- 467(line=24, offs=10)
*/
ATSINSflab(__patsflab_exp_0):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 160(line=8, offs=3) -- 467(line=24, offs=10)
*/
ATScaseof_beg()
/*
** ibranchlst-beg
*/
ATSbranch_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 177(line=9, offs=7) -- 178(line=9, offs=8)
*/
ATSINSlab(__atstmplab0):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 129(line=7, offs=26) -- 130(line=7, offs=27)
*/
ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 178(line=9, offs=8) -- 178(line=9, offs=8)
*/
ATSINSlab(__atstmplab1):
/*
emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
*/
/*
ibranch-mbody:
*/
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 182(line=9, offs=12) -- 183(line=9, offs=13)
*/
ATSINSmove(tmpret0, ATSPMVi0nt(0)) ;
ATSbranch_end()

ATSbranch_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 191(line=10, offs=8) -- 191(line=10, offs=8)
*/
ATSINSlab(__atstmplab2):
/*
emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
*/
/*
ibranch-mbody:
*/
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 219(line=12, offs=12) -- 224(line=12, offs=17)
*/
ATSINSmove(tmp1, ATSLIB_056_prelude__gt_g1int_int__1__1(arg1, ATSPMVi0nt(0))) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 216(line=12, offs=9) -- 457(line=23, offs=12)
*/
ATSif(
tmp1
) ATSthen() {
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 240(line=13, offs=11) -- 432(line=21, offs=14)
*/
/*
letpush(beg)
*/
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 265(line=14, offs=22) -- 271(line=14, offs=28)
*/
ATSINSmove(tmp6, atspre_g1int_half_int(arg1)) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 294(line=15, offs=22) -- 299(line=15, offs=27)
*/
ATSINSmove(tmp7, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;

/*
letpush(end)
*/

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 328(line=17, offs=16) -- 334(line=17, offs=22)
*/
ATSINSmove(tmp8, ATSLIB_056_prelude__eq_g0int_int__7__1(tmp7, ATSPMVi0nt(0))) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 325(line=17, offs=13) -- 418(line=20, offs=33)
*/
ATSif(
tmp8
) ATSthen() {
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 358(line=18, offs=19) -- 363(line=18, offs=24)
*/
ATSINSmove(tmp13, atspre_g0int_mul_int(arg0, arg0)) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 354(line=18, offs=15) -- 368(line=18, offs=29)
*/
ATStailcal_beg()
ATSINSmove_tlcal(apy0, tmp13) ;
ATSINSmove_tlcal(apy1, tmp6) ;
ATSINSargmove_tlcal(arg0, apy0) ;
ATSINSargmove_tlcal(arg1, apy1) ;
ATSINSfgoto(__patsflab_exp_0) ;
ATStailcal_end()

} ATSelse() {
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 408(line=20, offs=23) -- 413(line=20, offs=28)
*/
ATSINSmove(tmp15, atspre_g0int_mul_int(arg0, arg0)) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 404(line=20, offs=19) -- 418(line=20, offs=33)
*/
ATSINSmove(tmp14, exp_0(tmp15, tmp6)) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 400(line=20, offs=15) -- 418(line=20, offs=33)
*/
ATSINSmove(tmpret0, atspre_g0int_mul_int(arg0, tmp14)) ;

} /* ATSendif */
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 240(line=13, offs=11) -- 432(line=21, offs=14)
*/
/*
INSletpop()
*/
} ATSelse() {
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 456(line=23, offs=11) -- 457(line=23, offs=12)
*/
ATSINSmove(tmpret0, ATSPMVi0nt(1)) ;
} /* ATSendif */
ATSbranch_end()

/*
** ibranchlst-end
*/
ATScaseof_end()

ATSfunbody_end()
ATSreturn(tmpret0) ;
} /* end of [exp_0] */

#if(0)
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
*/
/*
local: 
global: gt_g1int_int$1$0(level=0)
local: 
global: 
*/
ATSextern()
/*
imparg = tk(4703)
tmparg = S2Evar(tk(4703))
tmpsub = None()
*/
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__gt_g1int_int__1(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
{
/* tmpvardeclst(beg) */
ATStmpdec(tmpret2, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp3, atstkind_t0ype(atstyvar_type(tk))) ;
/* tmpvardeclst(end) */
ATSfunbody_beg()
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12664(line=658, offs=1) -- 12718(line=659, offs=42)
*/
ATSINSflab(__patsflab_gt_g1int_int):
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
*/
ATSINSmove(tmp3, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4703))>)(arg1)) ;

/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
*/
ATSINSmove(tmpret2, PMVtmpltcst(g1int_gt<S2Evar(tk(4703))>)(arg0, tmp3)) ;

ATSfunbody_end()
ATSreturn(tmpret2) ;
} /* end of [ATSLIB_056_prelude__gt_g1int_int__1] */
#endif // end of [TEMPLATE]

/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
*/
/*
local: 
global: gt_g1int_int$1$1(level=1)
local: 
global: 
*/
ATSstatic()
/*
imparg = tk(4703)
tmparg = S2Evar(tk(4703))
tmpsub = Some(tk(4703) -> S2Eextkind(atstype_int))
*/
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__gt_g1int_int__1__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
{
/* tmpvardeclst(beg) */
ATStmpdec(tmpret2__1, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp3__1, atstkind_t0ype(atstype_int)) ;
/* tmpvardeclst(end) */
ATSfunbody_beg()
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12664(line=658, offs=1) -- 12718(line=659, offs=42)
*/
ATSINSflab(__patsflab_gt_g1int_int):
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
*/
ATSINSmove(tmp3__1, atspre_g1int2int_int_int(arg1)) ;

/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
*/
ATSINSmove(tmpret2__1, atspre_g1int_gt_int(arg0, tmp3__1)) ;

ATSfunbody_end()
ATSreturn(tmpret2__1) ;
} /* end of [ATSLIB_056_prelude__gt_g1int_int__1__1] */

#if(0)
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
*/
/*
local: 
global: eq_g0int_int$7$0(level=0)
local: 
global: 
*/
ATSextern()
/*
imparg = tk(4694)
tmparg = S2Evar(tk(4694))
tmpsub = None()
*/
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__eq_g0int_int__7(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
{
/* tmpvardeclst(beg) */
ATStmpdec(tmpret9, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp10, atstkind_t0ype(atstyvar_type(tk))) ;
/* tmpvardeclst(end) */
ATSfunbody_beg()
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
*/
ATSINSflab(__patsflab_eq_g0int_int):
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
*/
ATSINSmove(tmp10, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4694))>)(arg1)) ;

/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
*/
ATSINSmove(tmpret9, PMVtmpltcst(g0int_eq<S2Evar(tk(4694))>)(arg0, tmp10)) ;

ATSfunbody_end()
ATSreturn(tmpret9) ;
} /* end of [ATSLIB_056_prelude__eq_g0int_int__7] */
#endif // end of [TEMPLATE]

/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
*/
/*
local: 
global: eq_g0int_int$7$1(level=1)
local: 
global: 
*/
ATSstatic()
/*
imparg = tk(4694)
tmparg = S2Evar(tk(4694))
tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
*/
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__eq_g0int_int__7__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
{
/* tmpvardeclst(beg) */
ATStmpdec(tmpret9__1, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp10__1, atstkind_t0ype(atstype_int)) ;
/* tmpvardeclst(end) */
ATSfunbody_beg()
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
*/
ATSINSflab(__patsflab_eq_g0int_int):
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
*/
ATSINSmove(tmp10__1, atspre_g0int2int_int_int(arg1)) ;

/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
*/
ATSINSmove(tmpret9__1, atspre_g0int_eq_int(arg0, tmp10__1)) ;

ATSfunbody_end()
ATSreturn(tmpret9__1) ;
} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__1] */

/*
/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 473(line=26, offs=5) -- 778(line=35, offs=6)
*/
/*
local: 
global: sqrt_bad_12$0(level=0)
local: 
global: 
*/
ATSstatic()
atstkind_t0ype(atstype_int)
sqrt_bad_12(atstkind_t0ype(atstype_int) arg0)
{
/* tmpvardeclst(beg) */
ATStmpdec(tmpret16, atstkind_t0ype(atstype_int)) ;
ATStmpdec(tmpref17, atstkind_t0ype(atstype_int)) ;
ATStmpdec(tmp18, atstkind_t0ype(atstype_float)) ;
ATStmpdec(tmp19, atstkind_t0ype(atstype_float)) ;
ATStmpdec(tmpref20, atstyclo_type(__patsfun_14)) ;
ATStmpdec(tmpref24, atstkind_t0ype(atstype_int)) ;
/* tmpvardeclst(end) */
ATSfunbody_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 473(line=26, offs=5) -- 778(line=35, offs=6)
*/
ATSINSflab(__patsflab_sqrt_bad_12):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 521(line=27, offs=3) -- 778(line=35, offs=6)
*/
/*
letpush(beg)
*/
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 533(line=28, offs=9) -- 542(line=28, offs=18)
*/
/*
ATSINStmpdec(tmpref17) ;
*/
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 573(line=28, offs=49) -- 596(line=28, offs=72)
*/
ATSINSmove(tmp19, atspre_g0int2float_int_float(arg0)) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 562(line=28, offs=38) -- 598(line=28, offs=74)
*/
ATSINSmove(tmp18, atslib_libats_libc_sqrt_float(tmp19)) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 550(line=28, offs=26) -- 599(line=28, offs=75)
*/
ATSINSmove(tmpref17, atspre_g0float2int_float_int(tmp18)) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 608(line=29, offs=9) -- 611(line=29, offs=12)
*/
/*
ATSINStmpdec(tmpref20) ;
*/
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 614(line=29, offs=15) -- 706(line=31, offs=26)
*/
ATSINSclosure_initize(__patsfun_14, ((__patsfun_14__closure_t0ype*)(&tmpref20))) ;
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 715(line=32, offs=9) -- 720(line=32, offs=14)
*/
/*
ATSINStmpdec(tmpref24) ;
*/
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 743(line=32, offs=37) -- 756(line=32, offs=50)
*/
ATSINSmove(tmpref24, ATSfunclo_clo(ATSPMVrefarg1(ATSPMVptrof(tmpref20)), (atstype_cloptr, atstkind_t0ype(atstype_int)), atstkind_t0ype(atstype_int))(ATSPMVrefarg1(ATSPMVptrof(tmpref20)), tmpref17)) ;

/*
letpush(end)
*/

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 767(line=34, offs=5) -- 772(line=34, offs=10)
*/
ATSINSmove(tmpret16, tmpref24) ;
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 521(line=27, offs=3) -- 778(line=35, offs=6)
*/
/*
INSletpop()
*/
ATSfunbody_end()
ATSreturn(tmpret16) ;
} /* end of [sqrt_bad_12] */

/*
/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 614(line=29, offs=15) -- 706(line=31, offs=26)
*/
/*
local: __patsfun_14$0(level=1)
global: __patsfun_14$0(level=1)
local: 
global: 
*/
ATSstatic()
atstkind_t0ype(atstype_int)
__patsfun_14(atstkind_t0ype(atstype_int) arg0)
{
/* tmpvardeclst(beg) */
ATStmpdec(tmpret21, atstkind_t0ype(atstype_int)) ;
ATStmpdec(tmp22, atstkind_t0ype(atstype_int)) ;
ATStmpdec(tmp23, atstkind_t0ype(atstype_int)) ;
/* tmpvardeclst(end) */
ATSfunbody_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 614(line=29, offs=15) -- 706(line=31, offs=26)
*/
ATSINSflab(__patsflab___patsfun_14):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 655(line=29, offs=56) -- 706(line=31, offs=26)
*/
ATScaseof_beg()
/*
** ibranchlst-beg
*/
ATSbranch_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 674(line=30, offs=9) -- 675(line=30, offs=10)
*/
ATSINSlab(__atstmplab3):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 622(line=29, offs=23) -- 623(line=29, offs=24)
*/
ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab5) ; } ;
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 675(line=30, offs=10) -- 675(line=30, offs=10)
*/
ATSINSlab(__atstmplab4):
/*
emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
*/
/*
ibranch-mbody:
*/
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 679(line=30, offs=14) -- 680(line=30, offs=15)
*/
ATSINSmove(tmpret21, ATSPMVi0nt(0)) ;
ATSbranch_end()

ATSbranch_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 690(line=31, offs=10) -- 690(line=31, offs=10)
*/
ATSINSlab(__atstmplab5):
/*
emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
*/
/*
ibranch-mbody:
*/
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 700(line=31, offs=20) -- 705(line=31, offs=25)
*/
ATSINSmove(tmp23, atspre_g0int_sub_int(arg0, ATSPMVi0nt(1))) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 698(line=31, offs=18) -- 706(line=31, offs=26)
*/
ATSINSmove(tmp22, __patsfun_14(tmp23)) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 694(line=31, offs=14) -- 706(line=31, offs=26)
*/
ATSINSmove(tmpret21, atspre_g1int_add_int(ATSPMVi0nt(1), tmp22)) ;

ATSbranch_end()

/*
** ibranchlst-end
*/
ATScaseof_end()

ATSfunbody_end()
ATSreturn(tmpret21) ;
} /* end of [__patsfun_14] */

/*
/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 784(line=37, offs=5) -- 1375(line=60, offs=10)
*/
/*
local: sqrt_bad_12$0(level=0)
global: sqrt_bad_12$0(level=0), is_prime_17$0(level=0)
local: 
global: 
*/
ATSstatic()
atstkind_t0ype(atstype_bool)
is_prime_17(atstkind_t0ype(atstype_int) arg0)
{
/* tmpvardeclst(beg) */
ATStmpdec(tmpret25, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp46, atstkind_t0ype(atstype_int)) ;
/* tmpvardeclst(end) */
ATSfunbody_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 784(line=37, offs=5) -- 1375(line=60, offs=10)
*/
ATSINSflab(__patsflab_is_prime_17):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 818(line=38, offs=3) -- 1375(line=60, offs=10)
*/
ATScaseof_beg()
/*
** ibranchlst-beg
*/
ATSbranch_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 835(line=39, offs=7) -- 836(line=39, offs=8)
*/
ATSINSlab(__atstmplab6):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 793(line=37, offs=14) -- 794(line=37, offs=15)
*/
ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab8) ; } ;
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 836(line=39, offs=8) -- 836(line=39, offs=8)
*/
ATSINSlab(__atstmplab7):
/*
emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
*/
/*
ibranch-mbody:
*/
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 840(line=39, offs=12) -- 845(line=39, offs=17)
*/
ATSINSmove(tmpret25, ATSPMVbool_false()) ;
ATSbranch_end()

ATSbranch_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 853(line=40, offs=8) -- 853(line=40, offs=8)
*/
ATSINSlab(__atstmplab8):
/*
emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
*/
/*
ibranch-mbody:
*/
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 878(line=42, offs=9) -- 1365(line=59, offs=12)
*/
/*
letpush(beg)
*/
/*
letpush(end)
*/

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1341(line=58, offs=19) -- 1351(line=58, offs=29)
*/
ATSINSmove(tmp46, sqrt_bad_12(arg0)) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1333(line=58, offs=11) -- 1353(line=58, offs=31)
*/
ATSINSmove(tmpret25, loop_18(arg0, ATSPMVi0nt(2), tmp46)) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 878(line=42, offs=9) -- 1365(line=59, offs=12)
*/
/*
INSletpop()
*/
ATSbranch_end()

/*
** ibranchlst-end
*/
ATScaseof_end()

ATSfunbody_end()
ATSreturn(tmpret25) ;
} /* end of [is_prime_17] */

/*
/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 896(line=43, offs=15) -- 1311(line=56, offs=21)
*/
/*
local: loop_18$0(level=1)
global: loop_18$0(level=1)
local: k$4743(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
global: k$4743(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
*/
ATSstatic()
atstkind_t0ype(atstype_bool)
loop_18(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
{
/* tmpvardeclst(beg) */
ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
ATStmpdec(tmpret26, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp27, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp32, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp35, atstkind_t0ype(atstype_int)) ;
ATStmpdec(tmp36, atstkind_t0ype(atstype_int)) ;
ATStmpdec(tmp37, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp42, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp45, atstkind_t0ype(atstype_int)) ;
/* tmpvardeclst(end) */
ATSfunbody_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 896(line=43, offs=15) -- 1311(line=56, offs=21)
*/
ATSINSflab(__patsflab_loop_18):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 990(line=44, offs=16) -- 999(line=44, offs=25)
*/
ATSINSmove(tmp27, ATSLIB_056_prelude__lt_g1int_int__19__1(arg0, arg1)) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 987(line=44, offs=13) -- 1311(line=56, offs=21)
*/
ATSif(
tmp27
) ATSthen() {
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1022(line=45, offs=18) -- 1027(line=45, offs=23)
*/
ATSINSmove(tmp35, atspre_g0int_mod_int(env0, arg0)) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1022(line=45, offs=18) -- 1031(line=45, offs=27)
*/
ATSINSmove(tmp32, ATSLIB_056_prelude__eq_g0int_int__7__2(tmp35, ATSPMVi0nt(0))) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1019(line=45, offs=15) -- 1120(line=48, offs=43)
*/
ATSif(
tmp32
) ATSthen() {
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1053(line=46, offs=17) -- 1058(line=46, offs=22)
*/
ATSINSmove(tmpret26, ATSPMVbool_false()) ;
} ATSelse() {
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1094(line=48, offs=17) -- 1120(line=48, offs=43)
*/
ATSif(
ATSPMVbool_true()
) ATSthen() {
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1094(line=48, offs=17) -- 1120(line=48, offs=43)
*/
ATSINSmove(tmp36, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1094(line=48, offs=17) -- 1120(line=48, offs=43)
*/
ATStailcal_beg()
ATSINSmove_tlcal(apy0, tmp36) ;
ATSINSmove_tlcal(apy1, arg1) ;
ATSINSargmove_tlcal(arg0, apy0) ;
ATSINSargmove_tlcal(arg1, apy1) ;
ATSINSfgoto(__patsflab_loop_18) ;
ATStailcal_end()

} ATSelse() {
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1094(line=48, offs=17) -- 1120(line=48, offs=43)
*/
ATSINSmove(tmpret26, ATSPMVbool_false()) ;
} /* ATSendif */
} /* ATSendif */
} ATSelse() {
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1155(line=50, offs=18) -- 1164(line=50, offs=27)
*/
ATSINSmove(tmp37, ATSLIB_056_prelude__eq_g1int_int__23__1(arg0, arg1)) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1152(line=50, offs=15) -- 1311(line=56, offs=21)
*/
ATSif(
tmp37
) ATSthen() {
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1189(line=51, offs=20) -- 1194(line=51, offs=25)
*/
ATSINSmove(tmp45, atspre_g0int_mod_int(env0, arg0)) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1189(line=51, offs=20) -- 1198(line=51, offs=29)
*/
ATSINSmove(tmp42, ATSLIB_056_prelude__eq_g0int_int__7__3(tmp45, ATSPMVi0nt(0))) ;

/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1186(line=51, offs=17) -- 1271(line=54, offs=23)
*/
ATSif(
tmp42
) ATSthen() {
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1222(line=52, offs=19) -- 1227(line=52, offs=24)
*/
ATSINSmove(tmpret26, ATSPMVbool_false()) ;
} ATSelse() {
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1267(line=54, offs=19) -- 1271(line=54, offs=23)
*/
ATSINSmove(tmpret26, ATSPMVbool_true()) ;
} /* ATSendif */
} ATSelse() {
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 1307(line=56, offs=17) -- 1311(line=56, offs=21)
*/
ATSINSmove(tmpret26, ATSPMVbool_true()) ;
} /* ATSendif */
} /* ATSendif */
ATSfunbody_end()
ATSreturn(tmpret26) ;
} /* end of [loop_18] */

#if(0)
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
*/
/*
local: 
global: lt_g1int_int$19$0(level=0)
local: 
global: 
*/
ATSextern()
/*
imparg = tk(4697)
tmparg = S2Evar(tk(4697))
tmpsub = None()
*/
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__lt_g1int_int__19(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
{
/* tmpvardeclst(beg) */
ATStmpdec(tmpret28, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp29, atstkind_t0ype(atstyvar_type(tk))) ;
/* tmpvardeclst(end) */
ATSfunbody_beg()
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12505(line=649, offs=1) -- 12559(line=650, offs=42)
*/
ATSINSflab(__patsflab_lt_g1int_int):
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
*/
ATSINSmove(tmp29, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4697))>)(arg1)) ;

/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
*/
ATSINSmove(tmpret28, PMVtmpltcst(g1int_lt<S2Evar(tk(4697))>)(arg0, tmp29)) ;

ATSfunbody_end()
ATSreturn(tmpret28) ;
} /* end of [ATSLIB_056_prelude__lt_g1int_int__19] */
#endif // end of [TEMPLATE]

/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
*/
/*
local: 
global: lt_g1int_int$19$1(level=2)
local: 
global: 
*/
ATSstatic()
/*
imparg = tk(4697)
tmparg = S2Evar(tk(4697))
tmpsub = Some(tk(4697) -> S2Eextkind(atstype_int))
*/
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__lt_g1int_int__19__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
{
/* tmpvardeclst(beg) */
ATStmpdec(tmpret28__1, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp29__1, atstkind_t0ype(atstype_int)) ;
/* tmpvardeclst(end) */
ATSfunbody_beg()
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12505(line=649, offs=1) -- 12559(line=650, offs=42)
*/
ATSINSflab(__patsflab_lt_g1int_int):
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
*/
ATSINSmove(tmp29__1, atspre_g1int2int_int_int(arg1)) ;

/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
*/
ATSINSmove(tmpret28__1, atspre_g1int_lt_int(arg0, tmp29__1)) ;

ATSfunbody_end()
ATSreturn(tmpret28__1) ;
} /* end of [ATSLIB_056_prelude__lt_g1int_int__19__1] */

/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
*/
/*
local: 
global: eq_g0int_int$7$2(level=2)
local: 
global: 
*/
ATSstatic()
/*
imparg = tk(4694)
tmparg = S2Evar(tk(4694))
tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
*/
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__eq_g0int_int__7__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
{
/* tmpvardeclst(beg) */
ATStmpdec(tmpret9__2, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp10__2, atstkind_t0ype(atstype_int)) ;
/* tmpvardeclst(end) */
ATSfunbody_beg()
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
*/
ATSINSflab(__patsflab_eq_g0int_int):
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
*/
ATSINSmove(tmp10__2, atspre_g0int2int_int_int(arg1)) ;

/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
*/
ATSINSmove(tmpret9__2, atspre_g0int_eq_int(arg0, tmp10__2)) ;

ATSfunbody_end()
ATSreturn(tmpret9__2) ;
} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__2] */

#if(0)
/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
*/
/*
local: 
global: eq_g1int_int$23$0(level=0)
local: 
global: 
*/
ATSextern()
/*
imparg = tk(4709)
tmparg = S2Evar(tk(4709))
tmpsub = None()
*/
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__eq_g1int_int__23(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
{
/* tmpvardeclst(beg) */
ATStmpdec(tmpret38, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp39, atstkind_t0ype(atstyvar_type(tk))) ;
/* tmpvardeclst(end) */
ATSfunbody_beg()
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12823(line=667, offs=1) -- 12877(line=668, offs=42)
*/
ATSINSflab(__patsflab_eq_g1int_int):
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
*/
ATSINSmove(tmp39, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4709))>)(arg1)) ;

/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
*/
ATSINSmove(tmpret38, PMVtmpltcst(g1int_eq<S2Evar(tk(4709))>)(arg0, tmp39)) ;

ATSfunbody_end()
ATSreturn(tmpret38) ;
} /* end of [ATSLIB_056_prelude__eq_g1int_int__23] */
#endif // end of [TEMPLATE]

/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
*/
/*
local: 
global: eq_g1int_int$23$1(level=2)
local: 
global: 
*/
ATSstatic()
/*
imparg = tk(4709)
tmparg = S2Evar(tk(4709))
tmpsub = Some(tk(4709) -> S2Eextkind(atstype_int))
*/
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__eq_g1int_int__23__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
{
/* tmpvardeclst(beg) */
ATStmpdec(tmpret38__1, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp39__1, atstkind_t0ype(atstype_int)) ;
/* tmpvardeclst(end) */
ATSfunbody_beg()
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12823(line=667, offs=1) -- 12877(line=668, offs=42)
*/
ATSINSflab(__patsflab_eq_g1int_int):
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
*/
ATSINSmove(tmp39__1, atspre_g1int2int_int_int(arg1)) ;

/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
*/
ATSINSmove(tmpret38__1, atspre_g1int_eq_int(arg0, tmp39__1)) ;

ATSfunbody_end()
ATSreturn(tmpret38__1) ;
} /* end of [ATSLIB_056_prelude__eq_g1int_int__23__1] */

/*
/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
*/
/*
local: 
global: eq_g0int_int$7$3(level=2)
local: 
global: 
*/
ATSstatic()
/*
imparg = tk(4694)
tmparg = S2Evar(tk(4694))
tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
*/
atstkind_t0ype(atstype_bool)
ATSLIB_056_prelude__eq_g0int_int__7__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
{
/* tmpvardeclst(beg) */
ATStmpdec(tmpret9__3, atstkind_t0ype(atstype_bool)) ;
ATStmpdec(tmp10__3, atstkind_t0ype(atstype_int)) ;
/* tmpvardeclst(end) */
ATSfunbody_beg()
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
*/
ATSINSflab(__patsflab_eq_g0int_int):
/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
*/
ATSINSmove(tmp10__3, atspre_g0int2int_int_int(arg1)) ;

/*
emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
*/
ATSINSmove(tmpret9__3, atspre_g0int_eq_int(arg0, tmp10__3)) ;

ATSfunbody_end()
ATSreturn(tmpret9__3) ;
} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__3] */

/*
/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics-ffi.dats: 269(line=14, offs=24) -- 287(line=15, offs=13)
*/
/*
local: is_prime_17$0(level=0)
global: sqrt_bad_12$0(level=0), is_prime_17$0(level=0), is_prime_ats$27$0(level=0)
local: 
global: 
*/
ATSextern()
atstkind_t0ype(atstype_bool)
is_prime_ats(atstkind_t0ype(atstype_int) arg0)
{
/* tmpvardeclst(beg) */
ATStmpdec(tmpret47, atstkind_t0ype(atstype_bool)) ;
/* tmpvardeclst(end) */
ATSfunbody_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics-ffi.dats: 256(line=14, offs=11) -- 288(line=15, offs=14)
*/
ATSINSflab(__patsflab_is_prime_ats):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics-ffi.dats: 277(line=15, offs=3) -- 287(line=15, offs=13)
*/
ATSINSmove(tmpret47, is_prime_17(arg0)) ;

ATSfunbody_end()
ATSreturn(tmpret47) ;
} /* end of [is_prime_ats] */

/*
/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics-ffi.dats: 308(line=17, offs=19) -- 328(line=18, offs=12)
*/
/*
local: exp_0$0(level=0)
global: exp_0$0(level=0), exp_ats$28$0(level=0)
local: 
global: 
*/
ATSextern()
atstkind_t0ype(atstype_int)
exp_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
{
/* tmpvardeclst(beg) */
ATStmpdec(tmpret48, atstkind_t0ype(atstype_int)) ;
/* tmpvardeclst(end) */
ATSfunbody_beg()
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics-ffi.dats: 300(line=17, offs=11) -- 328(line=18, offs=12)
*/
ATSINSflab(__patsflab_exp_ats):
/*
emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics-ffi.dats: 319(line=18, offs=3) -- 328(line=18, offs=12)
*/
ATSINSmove(tmpret48, exp_0(arg0, arg1)) ;

ATSfunbody_end()
ATSreturn(tmpret48) ;
} /* end of [exp_ats] */

/*
** for initialization(dynloading)
*/
ATSdynloadflag_minit(_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_numerics_055_ffi_056_dats__dynloadflag) ;
ATSextern()
atsvoid_t0ype
_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_numerics_055_ffi_056_dats__dynload()
{
ATSfunbody_beg()
ATSdynload(/*void*/)
ATSdynloadflag_sta(
_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_numerics_055_ffi_056_dats__dynloadflag
) ;
ATSif(
ATSCKiseqz(
_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_numerics_055_ffi_056_dats__dynloadflag
)
) ATSthen() {
ATSdynloadset(_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_numerics_055_ffi_056_dats__dynloadflag) ;
/*
dynexnlst-initize(beg)
*/
/*
dynexnlst-initize(end)
*/
} /* ATSendif */
ATSfunbody_end()
ATSreturn_void(tmpret_void) ;
} /* end of [*_dynload] */

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

/* end-of-compilation-unit */