diff --git a/ats-src/numerics-ffi.dats b/ats-src/numerics-ffi.dats
--- a/ats-src/numerics-ffi.dats
+++ b/ats-src/numerics-ffi.dats
@@ -11,15 +11,11 @@
   "mac#"
 
 extern
-fun is_even_ats { n : nat | n > 0 } : int(n) -> bool =
-  "mac#"
-
-extern
 fun exp_ats {m : nat} : ([ n : nat ] int(n), int(m)) -> int =
   "mac#"
 
 extern
-fun is_odd_ats { n : nat | n > 0 } : int(n) -> bool =
+fun fib_ats : intGte(0) -> Intinf =
   "mac#"
 
 implement is_prime_ats (n) =
@@ -27,3 +23,6 @@
 
 implement exp_ats (m, n) =
   exp(m, n)
+
+implement fib_ats (m) =
+  fib_gmp(m)
diff --git a/ats-src/numerics.dats b/ats-src/numerics.dats
--- a/ats-src/numerics.dats
+++ b/ats-src/numerics.dats
@@ -2,6 +2,7 @@
 
 #include "share/atspre_staload.hats"
 #include "contrib/atscntrb-hx-intinf/mylibies.hats"
+#include "contrib/atscntrb-libgmp/mylibies.hats"
 
 staload "contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats"
 staload "libats/libc/SATS/math.sats"
@@ -9,6 +10,17 @@
 
 fn witness(n : int) :<> [ m : nat ] int(m) =
   $UN.cast(n)
+
+// Fast computation of Fibonacci numbers via GMP bindings.
+fun fib_gmp(n : intGte(0)) : Intinf =
+  let
+    val z = ptr_alloc()
+    val x: ulint = g0int2uint_int_ulint(n + 1)
+    val () = $GMP.mpz_init(!(z.2))
+    val () = $GMP.mpz_fib_uint(!(z.2), x)
+  in
+    $UN.castvwtp0(z)
+  end
 
 // Fast integer exponentiation. Modified from an example in the manual.
 fun exp {n : nat} .<n>. (x : int, n : int(n)) : int =
diff --git a/bench/Bench.hs b/bench/Bench.hs
--- a/bench/Bench.hs
+++ b/bench/Bench.hs
@@ -40,4 +40,8 @@
                       [ bench "catalan" $ nfIO (catalan 300)
                       , bench "hsCatalan" $ nf (hsCatalan :: Int -> Integer) 300
                       ]
+                , bgroup "fibonacci"
+                      [ bench "fibonacci" $ nfIO (fibonacci 200)
+                      , bench "hsFibonacci" $ nf (hsFibonacci :: Int -> Integer) 200
+                      ]
                 ]
diff --git a/cbits/combinatorics.c b/cbits/combinatorics.c
--- a/cbits/combinatorics.c
+++ b/cbits/combinatorics.c
@@ -1,7 +1,7 @@
 /*
 **
 ** The C code is generated by [ATS/Postiats-0-3-8]
-** The starting compilation time is: 2018-1-9: 23h:38m
+** The starting compilation time is: 2018-1-10:  0h:16m
 **
 */
 
diff --git a/cbits/number-theory.c b/cbits/number-theory.c
--- a/cbits/number-theory.c
+++ b/cbits/number-theory.c
@@ -1,4408 +1,4537 @@
 /*
 **
 ** The C code is generated by [ATS/Postiats-0-3-8]
-** The starting compilation time is: 2018-1-9: 23h:38m
-**
-*/
-
-/*
-** 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/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/mydepies.hats: 192(line=16, offs=1) -- 232(line=16, offs=41)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1233(line=43, offs=3)
-*/
-
-//
-#include \
-"atscntrb-libgmp/CATS/gmp.cats"
-//
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/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"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/mydepies.hats: 192(line=16, offs=1) -- 232(line=16, offs=41)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1233(line=43, offs=3)
-*/
-
-//
-#include \
-"atscntrb-libgmp/CATS/gmp.cats"
-//
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-staload-prologues(end)
-*/
-/*
-typedefs-for-tyrecs-and-tysums(beg)
-*/
-typedef
-ATSstruct {
-#if(0)
-int contag ;
-#endif
-atstkind_t0ype(atstype_int) atslab__0 ;
-atstkind_type(atstype_ptrk) atslab__1 ;
-} postiats_tysum_0 ;
-/*
-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_lt_int)
-ATSdyncst_mac(atspre_g1int_add_int)
-ATSdyncst_mac(atspre_g1int_eq_int)
-ATSdyncst_mac(atspre_g0int_div_int)
-ATSdyncst_mac(atspre_g1int_gte_int)
-ATSdyncst_mac(atspre_g0int_add_int)
-ATSdyncst_mac(atspre_g1int_sub_int)
-ATSdyncst_mac(atspre_g1int_neq_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_add2_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_init_set_int)
-ATSdyncst_mac(atspre_ptr_alloc_tsz)
-/*
-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)
-witness_0(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-exp_1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__2(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__2__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__8(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__8__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-sqrt_int_13(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_prime_16(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-loop_17(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__18(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__18__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__8__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__8__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-divides_27(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__8__4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-gcd_29(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__2__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-lcm_31(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-divisors_33(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_34(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35(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__gte_g1int_int__35__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_38(atstkind_t0ype(atstype_int), atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_39(atstype_bool) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__8__5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_41(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_42(atstype_bool) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-count_divisors_43(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_44(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__8__6(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-sum_divisors_48(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_49(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__8__7(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_perfect_52(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__8__8(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-little_omega_54(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_55(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__8__9(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-totient_58(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_59(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__8__10(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__63(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__neq_g1int_int__63__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-totient_sum_66(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_67(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__18__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69__1(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71__1(atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__73() ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__73__1() ;
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-sum_divisors_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-count_divisors_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-totient_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-little_omega_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-is_perfect_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-ATSclosurerize_beg(__patsfun_38, (atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-atstkind_t0ype(atstype_int) env0 ;
-} __patsfun_38__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_38__cfun
-(
-__patsfun_38__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_38(p_cenv->env0, arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_38__closureinit
-(
-__patsfun_38__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0
-)
-{
-p_cenv->env0 = env0 ;
-p_cenv->cfun = __patsfun_38__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_38__closurerize
-(
-atstkind_t0ype(atstype_int) env0
-)
-{
-return __patsfun_38__closureinit(ATS_MALLOC(sizeof(__patsfun_38__closure_t0ype)), env0) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_39, (), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-} __patsfun_39__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_39__cfun
-(
-__patsfun_39__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_39(arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_39__closureinit
-(
-__patsfun_39__closure_t0ype *p_cenv
-)
-{
-p_cenv->cfun = __patsfun_39__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_39__closurerize
-(
-// argumentless
-)
-{
-return __patsfun_39__closureinit(ATS_MALLOC(sizeof(__patsfun_39__closure_t0ype))) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_41, (atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-atstkind_t0ype(atstype_int) env0 ;
-atstkind_t0ype(atstype_int) env1 ;
-} __patsfun_41__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_41__cfun
-(
-__patsfun_41__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_41(p_cenv->env0, p_cenv->env1, arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_41__closureinit
-(
-__patsfun_41__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1
-)
-{
-p_cenv->env0 = env0 ;
-p_cenv->env1 = env1 ;
-p_cenv->cfun = __patsfun_41__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_41__closurerize
-(
-atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1
-)
-{
-return __patsfun_41__closureinit(ATS_MALLOC(sizeof(__patsfun_41__closure_t0ype)), env0, env1) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_42, (), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-} __patsfun_42__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_42__cfun
-(
-__patsfun_42__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_42(arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_42__closureinit
-(
-__patsfun_42__closure_t0ype *p_cenv
-)
-{
-p_cenv->cfun = __patsfun_42__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_42__closurerize
-(
-// argumentless
-)
-{
-return __patsfun_42__closureinit(ATS_MALLOC(sizeof(__patsfun_42__closure_t0ype))) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 256(line=10, offs=4) -- 311(line=11, offs=14)
-*/
-/*
-local: 
-global: witness_0$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-witness_0(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret0, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 256(line=10, offs=4) -- 311(line=11, offs=14)
-*/
-ATSINSflab(__patsflab_witness_0):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 300(line=11, offs=3) -- 310(line=11, offs=13)
-*/
-ATSINSmove(tmpret0, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), arg0)) ;
-ATSfunbody_end()
-ATSreturn(tmpret0) ;
-} /* end of [witness_0] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 389(line=14, offs=5) -- 826(line=35, offs=10)
-*/
-/*
-local: exp_1$0(level=0)
-global: exp_1$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-exp_1(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(tmpret1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmpref7, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref8, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp9, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp14, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp15, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 389(line=14, offs=5) -- 826(line=35, offs=10)
-*/
-ATSINSflab(__patsflab_exp_1):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 441(line=15, offs=3) -- 826(line=35, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 458(line=16, offs=7) -- 459(line=16, offs=8)
-*/
-ATSINSlab(__atstmplab0):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 410(line=14, offs=26) -- 411(line=14, offs=27)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 459(line=16, offs=8) -- 459(line=16, 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/done/fast-arithmetic/ats-src/numerics.dats: 463(line=16, offs=12) -- 464(line=16, offs=13)
-*/
-ATSINSmove(tmpret1, ATSPMVi0nt(0)) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 472(line=17, offs=8) -- 472(line=17, 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/done/fast-arithmetic/ats-src/numerics.dats: 501(line=19, offs=12) -- 506(line=19, offs=17)
-*/
-ATSINSmove(tmp2, ATSLIB_056_prelude__gt_g1int_int__2__1(arg1, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 498(line=19, offs=9) -- 816(line=34, offs=12)
-*/
-ATSif(
-tmp2
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 522(line=20, offs=11) -- 791(line=32, offs=14)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 542(line=21, offs=17) -- 544(line=21, offs=19)
-*/
-/*
-ATSINStmpdec(tmpref7) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 547(line=21, offs=22) -- 553(line=21, offs=28)
-*/
-ATSINSmove(tmpref7, atspre_g1int_half_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 571(line=22, offs=17) -- 573(line=22, offs=19)
-*/
-/*
-ATSINStmpdec(tmpref8) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 576(line=22, offs=22) -- 581(line=22, offs=27)
-*/
-ATSINSmove(tmpref8, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 610(line=24, offs=16) -- 616(line=24, offs=22)
-*/
-ATSINSmove(tmp9, ATSLIB_056_prelude__eq_g0int_int__8__1(tmpref8, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 607(line=24, offs=13) -- 777(line=31, offs=18)
-*/
-ATSif(
-tmp9
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 640(line=25, offs=19) -- 645(line=25, offs=24)
-*/
-ATSINSmove(tmp14, atspre_g0int_mul_int(arg0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 636(line=25, offs=15) -- 650(line=25, offs=29)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp14) ;
-ATSINSmove_tlcal(apy1, tmpref7) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_exp_1) ;
-ATStailcal_end()
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 682(line=27, offs=15) -- 777(line=31, offs=18)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 714(line=28, offs=29) -- 719(line=28, offs=34)
-*/
-ATSINSmove(tmp15, atspre_g0int_mul_int(arg0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 710(line=28, offs=25) -- 724(line=28, offs=39)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp15) ;
-ATSINSmove_tlcal(apy1, tmpref7) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_exp_1) ;
-ATStailcal_end()
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 682(line=27, offs=15) -- 777(line=31, offs=18)
-*/
-/*
-INSletpop()
-*/
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 522(line=20, offs=11) -- 791(line=32, offs=14)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 815(line=34, offs=11) -- 816(line=34, offs=12)
-*/
-ATSINSmove(tmpret1, ATSPMVi0nt(1)) ;
-} /* ATSendif */
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret1) ;
-} /* end of [exp_1] */
-
-#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$2$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__2(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp4, 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(tmp4, 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(tmpret3, PMVtmpltcst(g1int_gt<S2Evar(tk(4703))>)(arg0, tmp4)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret3) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__2] */
-#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$2$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__2__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret3__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp4__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(tmp4__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(tmpret3__1, atspre_g1int_gt_int(arg0, tmp4__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret3__1) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__2__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$8$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__8(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11, 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(tmp11, 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(tmpret10, PMVtmpltcst(g0int_eq<S2Evar(tk(4694))>)(arg0, tmp11)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__8] */
-#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$8$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__8__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__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(tmp11__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(tmpret10__1, atspre_g0int_eq_int(arg0, tmp11__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__1) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__1] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 831(line=37, offs=4) -- 975(line=42, offs=6)
-*/
-/*
-local: witness_0$0(level=0)
-global: witness_0$0(level=0), sqrt_int_13$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-sqrt_int_13(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)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 831(line=37, offs=4) -- 975(line=42, offs=6)
-*/
-ATSINSflab(__patsflab_sqrt_int_13):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 881(line=38, offs=3) -- 975(line=42, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 893(line=39, offs=9) -- 898(line=39, offs=14)
-*/
-/*
-ATSINStmpdec(tmpref17) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 929(line=39, offs=45) -- 942(line=39, offs=58)
-*/
-ATSINSmove(tmp19, atspre_g0int2float_int_float(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 918(line=39, offs=34) -- 944(line=39, offs=60)
-*/
-ATSINSmove(tmp18, atslib_libats_libc_sqrt_float(tmp19)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 906(line=39, offs=22) -- 945(line=39, offs=61)
-*/
-ATSINSmove(tmpref17, atspre_g0float2int_float_int(tmp18)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 955(line=41, offs=5) -- 968(line=41, offs=18)
-*/
-ATSINSmove(tmpret16, witness_0(tmpref17)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 881(line=38, offs=3) -- 975(line=42, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret16) ;
-} /* end of [sqrt_int_13] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1011(line=45, offs=4) -- 1596(line=68, offs=10)
-*/
-/*
-local: sqrt_int_13$0(level=0)
-global: witness_0$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_prime_16(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret20, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp41, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1011(line=45, offs=4) -- 1596(line=68, offs=10)
-*/
-ATSINSflab(__patsflab_is_prime_16):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1047(line=46, offs=3) -- 1596(line=68, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1064(line=47, offs=7) -- 1065(line=47, offs=8)
-*/
-ATSINSlab(__atstmplab3):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1020(line=45, offs=13) -- 1021(line=45, offs=14)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab5) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1065(line=47, offs=8) -- 1065(line=47, offs=8)
-*/
-ATSINSlab(__atstmplab4):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1069(line=47, offs=12) -- 1074(line=47, offs=17)
-*/
-ATSINSmove(tmpret20, ATSPMVbool_false()) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1082(line=48, offs=8) -- 1082(line=48, offs=8)
-*/
-ATSINSlab(__atstmplab5):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1107(line=50, offs=9) -- 1586(line=67, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1562(line=66, offs=19) -- 1572(line=66, offs=29)
-*/
-ATSINSmove(tmp41, sqrt_int_13(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1554(line=66, offs=11) -- 1574(line=66, offs=31)
-*/
-ATSINSmove(tmpret20, loop_17(arg0, ATSPMVi0nt(2), tmp41)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1107(line=50, offs=9) -- 1586(line=67, offs=12)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret20) ;
-} /* end of [is_prime_16] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1125(line=51, offs=15) -- 1532(line=64, offs=21)
-*/
-/*
-local: loop_17$0(level=1)
-global: loop_17$0(level=1)
-local: k$5102(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: k$5102(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-loop_17(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(tmpret21, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp22, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp27, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp30, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp31, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp32, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp37, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp40, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-/*
-emit_funent_fnxdeclst:
-*/
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1125(line=51, offs=15) -- 1532(line=64, offs=21)
-*/
-ATSINSflab(__patsflab_loop_17):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1219(line=52, offs=16) -- 1228(line=52, offs=25)
-*/
-ATSINSmove(tmp22, ATSLIB_056_prelude__lt_g1int_int__18__1(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1216(line=52, offs=13) -- 1532(line=64, offs=21)
-*/
-ATSif(
-tmp22
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1251(line=53, offs=18) -- 1256(line=53, offs=23)
-*/
-ATSINSmove(tmp30, atspre_g0int_mod_int(env0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1251(line=53, offs=18) -- 1260(line=53, offs=27)
-*/
-ATSINSmove(tmp27, ATSLIB_056_prelude__eq_g0int_int__8__2(tmp30, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1248(line=53, offs=15) -- 1341(line=56, offs=35)
-*/
-ATSif(
-tmp27
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1282(line=54, offs=17) -- 1287(line=54, offs=22)
-*/
-ATSINSmove(tmpret21, ATSPMVbool_false()) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1328(line=56, offs=22) -- 1333(line=56, offs=27)
-*/
-ATSINSmove(tmp31, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1323(line=56, offs=17) -- 1341(line=56, offs=35)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp31) ;
-ATSINSmove_tlcal(apy1, arg1) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_17) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1376(line=58, offs=18) -- 1385(line=58, offs=27)
-*/
-ATSINSmove(tmp32, ATSLIB_056_prelude__eq_g1int_int__23__1(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1373(line=58, offs=15) -- 1532(line=64, offs=21)
-*/
-ATSif(
-tmp32
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1410(line=59, offs=20) -- 1415(line=59, offs=25)
-*/
-ATSINSmove(tmp40, atspre_g0int_mod_int(env0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1410(line=59, offs=20) -- 1419(line=59, offs=29)
-*/
-ATSINSmove(tmp37, ATSLIB_056_prelude__eq_g0int_int__8__3(tmp40, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1407(line=59, offs=17) -- 1492(line=62, offs=23)
-*/
-ATSif(
-tmp37
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1443(line=60, offs=19) -- 1448(line=60, offs=24)
-*/
-ATSINSmove(tmpret21, ATSPMVbool_false()) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1488(line=62, offs=19) -- 1492(line=62, offs=23)
-*/
-ATSINSmove(tmpret21, ATSPMVbool_true()) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1528(line=64, offs=17) -- 1532(line=64, offs=21)
-*/
-ATSINSmove(tmpret21, ATSPMVbool_true()) ;
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret21) ;
-/*
-emit_funent_fnxbodylst:
-*/
-} /* end of [loop_17] */
-
-#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$18$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__18(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret23, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp24, 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(tmp24, 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(tmpret23, PMVtmpltcst(g1int_lt<S2Evar(tk(4697))>)(arg0, tmp24)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret23) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__18] */
-#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$18$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__18__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret23__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp24__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(tmp24__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(tmpret23__1, atspre_g1int_lt_int(arg0, tmp24__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret23__1) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__18__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$8$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__8__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__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(tmp11__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(tmpret10__2, atspre_g0int_eq_int(arg0, tmp11__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__2) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__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(tmpret33, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp34, 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(tmp34, 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(tmpret33, PMVtmpltcst(g1int_eq<S2Evar(tk(4709))>)(arg0, tmp34)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret33) ;
-} /* 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(tmpret33__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp34__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(tmp34__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(tmpret33__1, atspre_g1int_eq_int(arg0, tmp34__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret33__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$8$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__8__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__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(tmp11__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(tmpret10__3, atspre_g0int_eq_int(arg0, tmp11__3)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__3) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__3] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 519(line=20, offs=4) -- 567(line=21, offs=12)
-*/
-/*
-local: 
-global: divides_27$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-divides_27(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret42, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp45, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 519(line=20, offs=4) -- 567(line=21, offs=12)
-*/
-ATSINSflab(__patsflab_divides_27):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 558(line=21, offs=3) -- 563(line=21, offs=8)
-*/
-ATSINSmove(tmp45, atspre_g0int_mod_int(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 558(line=21, offs=3) -- 567(line=21, offs=12)
-*/
-ATSINSmove(tmpret42, ATSLIB_056_prelude__eq_g0int_int__8__4(tmp45, ATSPMVi0nt(0))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret42) ;
-} /* end of [divides_27] */
-
-/*
-/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$8$4(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__8__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__4, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__4, 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(tmp11__4, 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(tmpret10__4, atspre_g0int_eq_int(arg0, tmp11__4)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__4) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__4] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 573(line=23, offs=5) -- 684(line=27, offs=6)
-*/
-/*
-local: witness_0$0(level=0), gcd_29$0(level=0)
-global: witness_0$0(level=0), gcd_29$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-gcd_29(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(tmpret46, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp47, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp50, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp51, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-/*
-emit_funent_fnxdeclst:
-*/
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 573(line=23, offs=5) -- 684(line=27, offs=6)
-*/
-ATSINSflab(__patsflab_gcd_29):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 634(line=24, offs=6) -- 639(line=24, offs=11)
-*/
-ATSINSmove(tmp47, ATSLIB_056_prelude__gt_g1int_int__2__2(arg1, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 631(line=24, offs=3) -- 684(line=27, offs=6)
-*/
-ATSif(
-tmp47
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 664(line=25, offs=20) -- 669(line=25, offs=25)
-*/
-ATSINSmove(tmp51, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 656(line=25, offs=12) -- 670(line=25, offs=26)
-*/
-ATSINSmove(tmp50, witness_0(tmp51)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 649(line=25, offs=5) -- 671(line=25, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg1) ;
-ATSINSmove_tlcal(apy1, tmp50) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_gcd_29) ;
-ATStailcal_end()
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 683(line=27, offs=5) -- 684(line=27, offs=6)
-*/
-ATSINSmove(tmpret46, arg0) ;
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret46) ;
-/*
-emit_funent_fnxbodylst:
-*/
-} /* end of [gcd_29] */
-
-/*
-/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$2$2(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__2__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret3__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp4__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): 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(tmp4__2, 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(tmpret3__2, atspre_g1int_gt_int(arg0, tmp4__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret3__2) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__2__2] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 689(line=29, offs=4) -- 766(line=30, offs=22)
-*/
-/*
-local: gcd_29$0(level=0)
-global: witness_0$0(level=0), gcd_29$0(level=0), lcm_31$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-lcm_31(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret52, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp53, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp54, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 689(line=29, offs=4) -- 766(line=30, offs=22)
-*/
-ATSINSflab(__patsflab_lcm_31):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 752(line=30, offs=8) -- 761(line=30, offs=17)
-*/
-ATSINSmove(tmp54, gcd_29(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 748(line=30, offs=4) -- 761(line=30, offs=17)
-*/
-ATSINSmove(tmp53, atspre_g0int_div_int(arg0, tmp54)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 747(line=30, offs=3) -- 766(line=30, offs=22)
-*/
-ATSINSmove(tmpret52, atspre_g0int_mul_int(tmp53, arg1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret52) ;
-} /* end of [lcm_31] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 809(line=33, offs=4) -- 1217(line=45, offs=6)
-*/
-/*
-local: 
-global: divisors_33$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-divisors_33(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret55, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 809(line=33, offs=4) -- 1217(line=45, offs=6)
-*/
-ATSINSflab(__patsflab_divisors_33):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 856(line=34, offs=3) -- 1217(line=45, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1201(line=44, offs=5) -- 1211(line=44, offs=15)
-*/
-ATSINSmove(tmpret55, loop_34(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 856(line=34, offs=3) -- 1217(line=45, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret55) ;
-} /* end of [divisors_33] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 868(line=35, offs=9) -- 1191(line=42, offs=33)
-*/
-/*
-local: loop_34$0(level=1)
-global: loop_34$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_34(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret56, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp57, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp65, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp68, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 868(line=35, offs=9) -- 1191(line=42, offs=33)
-*/
-ATSINSflab(__patsflab_loop_34):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 977(line=36, offs=10) -- 985(line=36, offs=18)
-*/
-ATSINSmove(tmp57, ATSLIB_056_prelude__gte_g1int_int__35__1(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 974(line=36, offs=7) -- 1191(line=42, offs=33)
-*/
-ATSif(
-tmp57
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 999(line=37, offs=9) -- 1051(line=37, offs=61)
-*/
-ATSINSmove_ldelay(tmpret56, atstype_boxed, ATSPMVcfunlab(1, __patsfun_38, (arg1))) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1074(line=39, offs=12) -- 1081(line=39, offs=19)
-*/
-ATSINSmove(tmp68, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1074(line=39, offs=12) -- 1085(line=39, offs=23)
-*/
-ATSINSmove(tmp65, ATSLIB_056_prelude__eq_g0int_int__8__5(tmp68, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1071(line=39, offs=9) -- 1191(line=42, offs=33)
-*/
-ATSif(
-tmp65
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1101(line=40, offs=11) -- 1145(line=40, offs=55)
-*/
-ATSINSmove_ldelay(tmpret56, atstype_boxed, ATSPMVcfunlab(1, __patsfun_41, (arg0, arg1))) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1169(line=42, offs=11) -- 1191(line=42, offs=33)
-*/
-ATSINSmove_ldelay(tmpret56, atstype_boxed, ATSPMVcfunlab(1, __patsfun_42, ())) ;
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret56) ;
-} /* end of [loop_34] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$35$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret58, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp59, 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): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
-*/
-ATSINSflab(__patsflab_gte_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
-*/
-ATSINSmove(tmp59, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4706))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
-*/
-ATSINSmove(tmpret58, PMVtmpltcst(g1int_gte<S2Evar(tk(4706))>)(arg0, tmp59)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret58) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__35] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$35$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret58__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp59__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): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
-*/
-ATSINSflab(__patsflab_gte_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
-*/
-ATSINSmove(tmp59__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): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
-*/
-ATSINSmove(tmpret58__1, atspre_g1int_gte_int(arg0, tmp59__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret58__1) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__35__1] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 999(line=37, offs=9) -- 1051(line=37, offs=61)
-*/
-/*
-local: 
-global: __patsfun_38$0(level=2)
-local: acc$5119(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: acc$5119(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_38(atstkind_t0ype(atstype_int) env0, atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret62, atstype_boxed) ;
-ATStmpdec(tmp63, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 999(line=37, offs=9) -- 1051(line=37, offs=61)
-*/
-ATSINSflab(__patsflab___patsfun_38):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 999(line=37, offs=9) -- 1051(line=37, offs=61)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1027(line=37, offs=37) -- 1049(line=37, offs=59)
-*/
-ATSINSmove_ldelay(tmp63, atstype_boxed, ATSPMVcfunlab(1, __patsfun_39, ())) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1007(line=37, offs=17) -- 1050(line=37, offs=60)
-*/
-
-/*
-#LINCONSTATUS==0
-*/
-ATSINSmove_con1_beg()
-ATSINSmove_con1_new(tmpret62, postiats_tysum_0) ;
-#if(0)
-ATSINSstore_con1_tag(tmpret62, 1) ;
-#endif
-ATSINSstore_con1_ofs(tmpret62, postiats_tysum_0, atslab__0, env0) ;
-ATSINSstore_con1_ofs(tmpret62, postiats_tysum_0, atslab__1, tmp63) ;
-ATSINSmove_con1_end()
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret62) ;
-} /* end of [__patsfun_38] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1027(line=37, offs=37) -- 1049(line=37, offs=59)
-*/
-/*
-local: 
-global: __patsfun_39$0(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_39(atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret64, atstype_boxed) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1027(line=37, offs=37) -- 1049(line=37, offs=59)
-*/
-ATSINSflab(__patsflab___patsfun_39):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1027(line=37, offs=37) -- 1049(line=37, offs=59)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1035(line=37, offs=45) -- 1048(line=37, offs=58)
-*/
-
-ATSINSmove_nil(tmpret64) ;
-
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret64) ;
-} /* end of [__patsfun_39] */
-
-/*
-/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$8$5(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__8__5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__5, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__5, 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(tmp11__5, 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(tmpret10__5, atspre_g0int_eq_int(arg0, tmp11__5)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__5) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__5] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1101(line=40, offs=11) -- 1145(line=40, offs=55)
-*/
-/*
-local: loop_34$0(level=1)
-global: loop_34$0(level=1), __patsfun_41$0(level=2)
-local: n$5118(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5119(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: n$5118(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5119(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_41(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret69, atstype_boxed) ;
-ATStmpdec(tmp70, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp71, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1101(line=40, offs=11) -- 1145(line=40, offs=55)
-*/
-ATSINSflab(__patsflab___patsfun_41):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1101(line=40, offs=11) -- 1145(line=40, offs=55)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1135(line=40, offs=45) -- 1142(line=40, offs=52)
-*/
-ATSINSmove(tmp71, atspre_g1int_add_int(env1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1127(line=40, offs=37) -- 1143(line=40, offs=53)
-*/
-ATSINSmove(tmp70, loop_34(env0, tmp71)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1109(line=40, offs=19) -- 1144(line=40, offs=54)
-*/
-
-/*
-#LINCONSTATUS==0
-*/
-ATSINSmove_con1_beg()
-ATSINSmove_con1_new(tmpret69, postiats_tysum_0) ;
-#if(0)
-ATSINSstore_con1_tag(tmpret69, 1) ;
-#endif
-ATSINSstore_con1_ofs(tmpret69, postiats_tysum_0, atslab__0, env0) ;
-ATSINSstore_con1_ofs(tmpret69, postiats_tysum_0, atslab__1, tmp70) ;
-ATSINSmove_con1_end()
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret69) ;
-} /* end of [__patsfun_41] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1169(line=42, offs=11) -- 1191(line=42, offs=33)
-*/
-/*
-local: 
-global: __patsfun_42$0(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_42(atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret72, atstype_boxed) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1169(line=42, offs=11) -- 1191(line=42, offs=33)
-*/
-ATSINSflab(__patsflab___patsfun_42):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1169(line=42, offs=11) -- 1191(line=42, offs=33)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1177(line=42, offs=19) -- 1190(line=42, offs=32)
-*/
-
-ATSINSmove_nil(tmpret72) ;
-
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret72) ;
-} /* end of [__patsfun_42] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1222(line=47, offs=4) -- 1533(line=59, offs=6)
-*/
-/*
-local: 
-global: count_divisors_43$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-count_divisors_43(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret73, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1222(line=47, offs=4) -- 1533(line=59, offs=6)
-*/
-ATSINSflab(__patsflab_count_divisors_43):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1264(line=48, offs=3) -- 1533(line=59, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1517(line=58, offs=5) -- 1527(line=58, offs=15)
-*/
-ATSINSmove(tmpret73, loop_44(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1264(line=48, offs=3) -- 1533(line=59, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret73) ;
-} /* end of [count_divisors_43] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1276(line=49, offs=9) -- 1507(line=56, offs=27)
-*/
-/*
-local: loop_44$0(level=1)
-global: loop_44$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_44(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(tmpret74, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp75, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp78, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp81, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp82, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp83, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp84, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1276(line=49, offs=9) -- 1507(line=56, offs=27)
-*/
-ATSINSflab(__patsflab_loop_44):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1374(line=50, offs=10) -- 1382(line=50, offs=18)
-*/
-ATSINSmove(tmp75, ATSLIB_056_prelude__gte_g1int_int__35__2(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1371(line=50, offs=7) -- 1507(line=56, offs=27)
-*/
-ATSif(
-tmp75
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1396(line=51, offs=9) -- 1397(line=51, offs=10)
-*/
-ATSINSmove(tmpret74, ATSPMVi0nt(1)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1420(line=53, offs=12) -- 1427(line=53, offs=19)
-*/
-ATSINSmove(tmp81, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1420(line=53, offs=12) -- 1431(line=53, offs=23)
-*/
-ATSINSmove(tmp78, ATSLIB_056_prelude__eq_g0int_int__8__6(tmp81, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1417(line=53, offs=9) -- 1507(line=56, offs=27)
-*/
-ATSif(
-tmp78
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1459(line=54, offs=23) -- 1466(line=54, offs=30)
-*/
-ATSINSmove(tmp83, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1451(line=54, offs=15) -- 1467(line=54, offs=31)
-*/
-ATSINSmove(tmp82, loop_44(arg0, tmp83)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1447(line=54, offs=11) -- 1467(line=54, offs=31)
-*/
-ATSINSmove(tmpret74, atspre_g0int_add_int(ATSPMVi0nt(1), tmp82)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1499(line=56, offs=19) -- 1506(line=56, offs=26)
-*/
-ATSINSmove(tmp84, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1491(line=56, offs=11) -- 1507(line=56, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg0) ;
-ATSINSmove_tlcal(apy1, tmp84) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_44) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret74) ;
-} /* end of [loop_44] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$35$2(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret58__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp59__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): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
-*/
-ATSINSflab(__patsflab_gte_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
-*/
-ATSINSmove(tmp59__2, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
-*/
-ATSINSmove(tmpret58__2, atspre_g1int_gte_int(arg0, tmp59__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret58__2) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__35__2] */
-
-/*
-/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$8$6(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__8__6(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__6, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__6, 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(tmp11__6, 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(tmpret10__6, atspre_g0int_eq_int(arg0, tmp11__6)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__6) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__6] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1538(line=61, offs=4) -- 1849(line=73, offs=6)
-*/
-/*
-local: 
-global: sum_divisors_48$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-sum_divisors_48(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret85, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1538(line=61, offs=4) -- 1849(line=73, offs=6)
-*/
-ATSINSflab(__patsflab_sum_divisors_48):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1578(line=62, offs=3) -- 1849(line=73, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1833(line=72, offs=5) -- 1843(line=72, offs=15)
-*/
-ATSINSmove(tmpret85, loop_49(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1578(line=62, offs=3) -- 1849(line=73, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret85) ;
-} /* end of [sum_divisors_48] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1590(line=63, offs=9) -- 1823(line=70, offs=27)
-*/
-/*
-local: loop_49$0(level=1)
-global: loop_49$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_49(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(tmpret86, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp87, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp90, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp93, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp94, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp95, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp96, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1590(line=63, offs=9) -- 1823(line=70, offs=27)
-*/
-ATSINSflab(__patsflab_loop_49):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1688(line=64, offs=10) -- 1696(line=64, offs=18)
-*/
-ATSINSmove(tmp87, ATSLIB_056_prelude__gte_g1int_int__35__3(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1685(line=64, offs=7) -- 1823(line=70, offs=27)
-*/
-ATSif(
-tmp87
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1710(line=65, offs=9) -- 1711(line=65, offs=10)
-*/
-ATSINSmove(tmpret86, ATSPMVi0nt(0)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1734(line=67, offs=12) -- 1741(line=67, offs=19)
-*/
-ATSINSmove(tmp93, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1734(line=67, offs=12) -- 1745(line=67, offs=23)
-*/
-ATSINSmove(tmp90, ATSLIB_056_prelude__eq_g0int_int__8__7(tmp93, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1731(line=67, offs=9) -- 1823(line=70, offs=27)
-*/
-ATSif(
-tmp90
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1775(line=68, offs=25) -- 1782(line=68, offs=32)
-*/
-ATSINSmove(tmp95, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1767(line=68, offs=17) -- 1783(line=68, offs=33)
-*/
-ATSINSmove(tmp94, loop_49(arg0, tmp95)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1761(line=68, offs=11) -- 1783(line=68, offs=33)
-*/
-ATSINSmove(tmpret86, atspre_g0int_add_int(arg1, tmp94)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1815(line=70, offs=19) -- 1822(line=70, offs=26)
-*/
-ATSINSmove(tmp96, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1807(line=70, offs=11) -- 1823(line=70, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg0) ;
-ATSINSmove_tlcal(apy1, tmp96) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_49) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret86) ;
-} /* end of [loop_49] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$35$3(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret58__3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp59__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): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
-*/
-ATSINSflab(__patsflab_gte_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
-*/
-ATSINSmove(tmp59__3, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
-*/
-ATSINSmove(tmpret58__3, atspre_g1int_gte_int(arg0, tmp59__3)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret58__3) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__35__3] */
-
-/*
-/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$8$7(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__8__7(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__7, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__7, 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(tmp11__7, 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(tmpret10__7, atspre_g0int_eq_int(arg0, tmp11__7)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__7) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__7] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1854(line=75, offs=4) -- 1912(line=76, offs=22)
-*/
-/*
-local: sum_divisors_48$0(level=0)
-global: sum_divisors_48$0(level=0), is_perfect_52$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_perfect_52(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret97, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp100, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1854(line=75, offs=4) -- 1912(line=76, offs=22)
-*/
-ATSINSflab(__patsflab_is_perfect_52):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1893(line=76, offs=3) -- 1907(line=76, offs=17)
-*/
-ATSINSmove(tmp100, sum_divisors_48(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1893(line=76, offs=3) -- 1912(line=76, offs=22)
-*/
-ATSINSmove(tmpret97, ATSLIB_056_prelude__eq_g0int_int__8__8(tmp100, arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret97) ;
-} /* end of [is_perfect_52] */
-
-/*
-/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$8$8(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__8__8(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__8, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__8, 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(tmp11__8, 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(tmpret10__8, atspre_g0int_eq_int(arg0, tmp11__8)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__8) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__8] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1944(line=79, offs=4) -- 2325(line=94, offs=6)
-*/
-/*
-local: is_prime_16$0(level=0)
-global: witness_0$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), little_omega_54$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-little_omega_54(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret101, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1944(line=79, offs=4) -- 2325(line=94, offs=6)
-*/
-ATSINSflab(__patsflab_little_omega_54):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1984(line=80, offs=3) -- 2325(line=94, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2309(line=93, offs=5) -- 2319(line=93, offs=15)
-*/
-ATSINSmove(tmpret101, loop_55(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1984(line=80, offs=3) -- 2325(line=94, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret101) ;
-} /* end of [little_omega_54] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1996(line=81, offs=9) -- 2299(line=91, offs=27)
-*/
-/*
-local: is_prime_16$0(level=0), loop_55$0(level=1)
-global: is_prime_16$0(level=0), loop_55$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_55(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(tmpret102, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp103, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp106, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp107, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp108, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp111, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp112, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp113, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp114, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1996(line=81, offs=9) -- 2299(line=91, offs=27)
-*/
-ATSINSflab(__patsflab_loop_55):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2094(line=82, offs=10) -- 2102(line=82, offs=18)
-*/
-ATSINSmove(tmp103, ATSLIB_056_prelude__gte_g1int_int__35__4(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2091(line=82, offs=7) -- 2299(line=91, offs=27)
-*/
-ATSif(
-tmp103
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2119(line=83, offs=12) -- 2129(line=83, offs=22)
-*/
-ATSINSmove(tmp106, is_prime_16(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2116(line=83, offs=9) -- 2172(line=86, offs=12)
-*/
-ATSif(
-tmp106
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2146(line=84, offs=11) -- 2147(line=84, offs=12)
-*/
-ATSINSmove(tmpret102, ATSPMVi0nt(1)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2171(line=86, offs=11) -- 2172(line=86, offs=12)
-*/
-ATSINSmove(tmpret102, ATSPMVi0nt(0)) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
-*/
-ATSINSmove(tmp111, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
-*/
-ATSINSmove(tmp108, ATSLIB_056_prelude__eq_g0int_int__8__9(tmp111, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
-*/
-ATSif(
-tmp108
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
-*/
-ATSINSmove(tmp107, is_prime_16(arg1)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
-*/
-ATSINSmove(tmp107, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2192(line=88, offs=9) -- 2299(line=91, offs=27)
-*/
-ATSif(
-tmp107
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2251(line=89, offs=23) -- 2258(line=89, offs=30)
-*/
-ATSINSmove(tmp113, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2243(line=89, offs=15) -- 2259(line=89, offs=31)
-*/
-ATSINSmove(tmp112, loop_55(arg0, tmp113)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2239(line=89, offs=11) -- 2259(line=89, offs=31)
-*/
-ATSINSmove(tmpret102, atspre_g0int_add_int(ATSPMVi0nt(1), tmp112)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2291(line=91, offs=19) -- 2298(line=91, offs=26)
-*/
-ATSINSmove(tmp114, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2283(line=91, offs=11) -- 2299(line=91, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg0) ;
-ATSINSmove_tlcal(apy1, tmp114) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_55) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret102) ;
-} /* end of [loop_55] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$35$4(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret58__4, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp59__4, 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): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
-*/
-ATSINSflab(__patsflab_gte_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
-*/
-ATSINSmove(tmp59__4, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
-*/
-ATSINSmove(tmpret58__4, atspre_g1int_gte_int(arg0, tmp59__4)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret58__4) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__35__4] */
-
-/*
-/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$8$9(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__8__9(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__9, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__9, 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(tmp11__9, 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(tmpret10__9, atspre_g0int_eq_int(arg0, tmp11__9)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__9) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__9] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2359(line=97, offs=4) -- 2907(line=117, offs=10)
-*/
-/*
-local: is_prime_16$0(level=0)
-global: witness_0$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), totient_58$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-totient_58(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret115, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2359(line=97, offs=4) -- 2907(line=117, offs=10)
-*/
-ATSINSflab(__patsflab_totient_58):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2392(line=98, offs=3) -- 2907(line=117, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2409(line=99, offs=7) -- 2410(line=99, offs=8)
-*/
-ATSINSlab(__atstmplab6):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2367(line=97, offs=12) -- 2368(line=97, offs=13)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab8) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2410(line=99, offs=8) -- 2410(line=99, 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/done/fast-arithmetic/ats-src/number-theory.dats: 2414(line=99, offs=12) -- 2415(line=99, offs=13)
-*/
-ATSINSmove(tmpret115, ATSPMVi0nt(1)) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2423(line=100, offs=8) -- 2423(line=100, 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/done/fast-arithmetic/ats-src/number-theory.dats: 2449(line=102, offs=9) -- 2897(line=116, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2875(line=115, offs=11) -- 2885(line=115, offs=21)
-*/
-ATSINSmove(tmpret115, loop_59(ATSPMVi0nt(1), arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2449(line=102, offs=9) -- 2897(line=116, offs=12)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret115) ;
-} /* end of [totient_58] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2467(line=103, offs=15) -- 2853(line=113, offs=31)
-*/
-/*
-local: is_prime_16$0(level=0), loop_59$0(level=1)
-global: is_prime_16$0(level=0), loop_59$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_59(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(tmpret116, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp117, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp120, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp121, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp122, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp123, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp126, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp131, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp132, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp133, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp134, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp135, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-/*
-emit_funent_fnxdeclst:
-*/
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2467(line=103, offs=15) -- 2853(line=113, offs=31)
-*/
-ATSINSflab(__patsflab_loop_59):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2578(line=104, offs=16) -- 2584(line=104, offs=22)
-*/
-ATSINSmove(tmp117, ATSLIB_056_prelude__gte_g1int_int__35__5(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2575(line=104, offs=13) -- 2853(line=113, offs=31)
-*/
-ATSif(
-tmp117
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2607(line=105, offs=18) -- 2617(line=105, offs=28)
-*/
-ATSINSmove(tmp120, is_prime_16(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2604(line=105, offs=15) -- 2682(line=108, offs=18)
-*/
-ATSif(
-tmp120
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2640(line=106, offs=17) -- 2645(line=106, offs=22)
-*/
-ATSINSmove(tmpret116, atspre_g1int_sub_int(arg1, ATSPMVi0nt(1))) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2681(line=108, offs=17) -- 2682(line=108, offs=18)
-*/
-ATSINSmove(tmpret116, arg1) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
-*/
-ATSINSmove(tmp126, atspre_g0int_mod_int(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
-*/
-ATSINSmove(tmp123, ATSLIB_056_prelude__eq_g0int_int__8__10(tmp126, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
-*/
-ATSif(
-tmp123
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
-*/
-ATSINSmove(tmp122, is_prime_16(arg0)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
-*/
-ATSINSmove(tmp122, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
-*/
-ATSif(
-tmp122
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
-*/
-ATSINSmove(tmp121, ATSLIB_056_prelude__neq_g1int_int__63__1(arg0, arg1)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
-*/
-ATSINSmove(tmp121, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2714(line=110, offs=15) -- 2853(line=113, offs=31)
-*/
-ATSif(
-tmp121
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2779(line=111, offs=23) -- 2784(line=111, offs=28)
-*/
-ATSINSmove(tmp133, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2774(line=111, offs=18) -- 2788(line=111, offs=32)
-*/
-ATSINSmove(tmp132, loop_59(tmp133, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2774(line=111, offs=18) -- 2792(line=111, offs=36)
-*/
-ATSINSmove(tmp131, atspre_g0int_div_int(tmp132, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2797(line=111, offs=41) -- 2802(line=111, offs=46)
-*/
-ATSINSmove(tmp134, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2773(line=111, offs=17) -- 2803(line=111, offs=47)
-*/
-ATSINSmove(tmpret116, atspre_g0int_mul_int(tmp131, tmp134)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2844(line=113, offs=22) -- 2849(line=113, offs=27)
-*/
-ATSINSmove(tmp135, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2839(line=113, offs=17) -- 2853(line=113, offs=31)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp135) ;
-ATSINSmove_tlcal(apy1, arg1) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_59) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret116) ;
-/*
-emit_funent_fnxbodylst:
-*/
-} /* end of [loop_59] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$35$5(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret58__5, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp59__5, 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): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
-*/
-ATSINSflab(__patsflab_gte_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
-*/
-ATSINSmove(tmp59__5, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
-*/
-ATSINSmove(tmpret58__5, atspre_g1int_gte_int(arg0, tmp59__5)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret58__5) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__35__5] */
-
-/*
-/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$8$10(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__8__10(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__10, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__10, 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(tmp11__10, 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(tmpret10__10, atspre_g0int_eq_int(arg0, tmp11__10)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret10__10) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__10] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12916(line=672, offs=3) -- 12956(line=672, offs=43)
-*/
-/*
-local: 
-global: neq_g1int_int$63$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4712)
-tmparg = S2Evar(tk(4712))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__63(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret127, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp128, 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): 12900(line=671, offs=1) -- 12956(line=672, offs=43)
-*/
-ATSINSflab(__patsflab_neq_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12943(line=672, offs=30) -- 12954(line=672, offs=41)
-*/
-ATSINSmove(tmp128, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4712))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12925(line=672, offs=12) -- 12956(line=672, offs=43)
-*/
-ATSINSmove(tmpret127, PMVtmpltcst(g1int_neq<S2Evar(tk(4712))>)(arg0, tmp128)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret127) ;
-} /* end of [ATSLIB_056_prelude__neq_g1int_int__63] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12916(line=672, offs=3) -- 12956(line=672, offs=43)
-*/
-/*
-local: 
-global: neq_g1int_int$63$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4712)
-tmparg = S2Evar(tk(4712))
-tmpsub = Some(tk(4712) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__63__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret127__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp128__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): 12900(line=671, offs=1) -- 12956(line=672, offs=43)
-*/
-ATSINSflab(__patsflab_neq_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12943(line=672, offs=30) -- 12954(line=672, offs=41)
-*/
-ATSINSmove(tmp128__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): 12925(line=672, offs=12) -- 12956(line=672, offs=43)
-*/
-ATSINSmove(tmpret127__1, atspre_g1int_neq_int(arg0, tmp128__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret127__1) ;
-} /* end of [ATSLIB_056_prelude__neq_g1int_int__63__1] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2991(line=121, offs=5) -- 3379(line=135, offs=6)
-*/
-/*
-local: witness_0$0(level=0), totient_58$0(level=0)
-global: witness_0$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), totient_58$0(level=0), totient_sum_66$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-totient_sum_66(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret136, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2991(line=121, offs=5) -- 3379(line=135, offs=6)
-*/
-ATSINSflab(__patsflab_totient_sum_66):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3031(line=122, offs=3) -- 3379(line=135, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3363(line=134, offs=5) -- 3373(line=134, offs=15)
-*/
-ATSINSmove(tmpret136, loop_67(ATSPMVi0nt(1), arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3031(line=122, offs=3) -- 3379(line=135, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret136) ;
-} /* end of [totient_sum_66] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3043(line=123, offs=9) -- 3353(line=132, offs=40)
-*/
-/*
-local: witness_0$0(level=0), totient_58$0(level=0), loop_67$0(level=1)
-global: witness_0$0(level=0), totient_58$0(level=0), loop_67$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_67(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(tmpret137, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp138, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp141, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp142, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp147, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp148, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp157, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp158, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-/*
-emit_funent_fnxdeclst:
-*/
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3043(line=123, offs=9) -- 3353(line=132, offs=40)
-*/
-ATSINSflab(__patsflab_loop_67):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3146(line=124, offs=10) -- 3155(line=124, offs=19)
-*/
-ATSINSmove(tmp138, ATSLIB_056_prelude__lt_g1int_int__18__2(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3143(line=124, offs=7) -- 3353(line=132, offs=40)
-*/
-ATSif(
-tmp138
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3169(line=125, offs=9) -- 3302(line=130, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3196(line=126, offs=24) -- 3201(line=126, offs=29)
-*/
-ATSINSmove(tmp142, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3191(line=126, offs=19) -- 3209(line=126, offs=37)
-*/
-ATSINSmove(tmp141, loop_67(tmp142, arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3255(line=127, offs=46) -- 3264(line=127, offs=55)
-*/
-ATSINSmove(tmp148, totient_58(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3247(line=127, offs=38) -- 3266(line=127, offs=57)
-*/
-ATSINSmove(tmp147, witness_0(tmp148)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3228(line=127, offs=19) -- 3267(line=127, offs=58)
-*/
-ATSINSmove(tmpret137, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69__1(tmp141, tmp147)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3169(line=125, offs=9) -- 3302(line=130, offs=12)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3322(line=132, offs=9) -- 3353(line=132, offs=40)
-*/
-ATSINSmove(tmp158, totient_58(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3322(line=132, offs=9) -- 3353(line=132, offs=40)
-*/
-ATSINSmove(tmp157, witness_0(tmp158)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3322(line=132, offs=9) -- 3353(line=132, offs=40)
-*/
-ATSINSmove(tmpret137, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71__1(tmp157)) ;
-
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret137) ;
-/*
-emit_funent_fnxbodylst:
-*/
-} /* end of [loop_67] */
-
-/*
-/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$18$2(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__18__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret23__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp24__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): 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(tmp24__2, 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(tmpret23__2, atspre_g1int_lt_int(arg0, tmp24__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret23__2) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__18__2] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5151(line=274, offs=3) -- 5217(line=279, offs=2)
-*/
-/*
-local: 
-global: add_intinf0_int$69$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret143, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp144) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5133(line=273, offs=1) -- 5217(line=279, offs=2)
-*/
-ATSINSflab(__patsflab_add_intinf0_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5184(line=277, offs=10) -- 5212(line=277, offs=38)
-*/
-ATSINSmove_void(tmp144, atscntrb_gmp_mpz_add2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5161(line=274, offs=13) -- 5162(line=274, offs=14)
-*/
-ATSINSmove(tmpret143, arg0) ;
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret143) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5151(line=274, offs=3) -- 5217(line=279, offs=2)
-*/
-/*
-local: 
-global: add_intinf0_int$69$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69__1(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret143__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp144__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5133(line=273, offs=1) -- 5217(line=279, offs=2)
-*/
-ATSINSflab(__patsflab_add_intinf0_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5184(line=277, offs=10) -- 5212(line=277, offs=38)
-*/
-ATSINSmove_void(tmp144__1, atscntrb_gmp_mpz_add2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5161(line=274, offs=13) -- 5162(line=274, offs=14)
-*/
-ATSINSmove(tmpret143__1, arg0) ;
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret143__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69__1] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$71$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret149, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp150, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp151) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2191(line=73, offs=1) -- 2301(line=80, offs=2)
-*/
-ATSINSflab(__patsflab_intinf_make_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp150, PMVtmpltcst(ptr_alloc<S2Ecst(mpz_vt0ype)>)()) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp151, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp150, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret149, tmp150) ;
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret149) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$71$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71__1(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret149__1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp150__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp151__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2191(line=73, offs=1) -- 2301(line=80, offs=2)
-*/
-ATSINSflab(__patsflab_intinf_make_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp150__1, ATSLIB_056_prelude__ptr_alloc__73__1()) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp151__1, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp150__1, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret149__1, tmp150__1) ;
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret149__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71__1] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$73$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = a(4806)
-tmparg = S2Evar(a(4806))
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__73()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret155, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3708(line=184, offs=1) -- 3749(line=184, offs=42)
-*/
-ATSINSflab(__patsflab_ptr_alloc):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret155, atspre_ptr_alloc_tsz(ATSPMVsizeof(atstyvar_type(a)))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret155) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__73] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$73$1(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4806)
-tmparg = S2Evar(a(4806))
-tmpsub = Some(a(4806) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__73__1()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret155__1, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3708(line=184, offs=1) -- 3749(line=184, offs=42)
-*/
-ATSINSflab(__patsflab_ptr_alloc):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret155__1, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret155__1) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__73__1] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 491(line=26, offs=28) -- 513(line=27, offs=17)
-*/
-/*
-local: sum_divisors_48$0(level=0)
-global: sum_divisors_48$0(level=0), sum_divisors_ats$75$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-sum_divisors_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret159, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 474(line=26, offs=11) -- 514(line=27, offs=18)
-*/
-ATSINSflab(__patsflab_sum_divisors_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 499(line=27, offs=3) -- 513(line=27, offs=17)
-*/
-ATSINSmove(tmpret159, sum_divisors_48(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret159) ;
-} /* end of [sum_divisors_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 545(line=29, offs=30) -- 569(line=30, offs=19)
-*/
-/*
-local: count_divisors_43$0(level=0)
-global: count_divisors_43$0(level=0), count_divisors_ats$76$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-count_divisors_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret160, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 526(line=29, offs=11) -- 570(line=30, offs=20)
-*/
-ATSINSflab(__patsflab_count_divisors_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 553(line=30, offs=3) -- 569(line=30, offs=19)
-*/
-ATSINSmove(tmpret160, count_divisors_43(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret160) ;
-} /* end of [count_divisors_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 594(line=32, offs=23) -- 611(line=33, offs=12)
-*/
-/*
-local: totient_58$0(level=0)
-global: witness_0$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), totient_58$0(level=0), totient_ats$77$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-totient_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret161, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 582(line=32, offs=11) -- 612(line=33, offs=13)
-*/
-ATSINSflab(__patsflab_totient_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 602(line=33, offs=3) -- 611(line=33, offs=12)
-*/
-ATSINSmove(tmpret161, totient_58(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret161) ;
-} /* end of [totient_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 641(line=35, offs=28) -- 663(line=36, offs=17)
-*/
-/*
-local: little_omega_54$0(level=0)
-global: witness_0$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), little_omega_54$0(level=0), little_omega_ats$78$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-little_omega_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret162, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 624(line=35, offs=11) -- 664(line=36, offs=18)
-*/
-ATSINSflab(__patsflab_little_omega_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 649(line=36, offs=3) -- 663(line=36, offs=17)
-*/
-ATSINSmove(tmpret162, little_omega_54(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret162) ;
-} /* end of [little_omega_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 691(line=38, offs=26) -- 711(line=39, offs=15)
-*/
-/*
-local: is_perfect_52$0(level=0)
-global: sum_divisors_48$0(level=0), is_perfect_52$0(level=0), is_perfect_ats$79$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_bool)
-is_perfect_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret163, atstkind_t0ype(atstype_bool)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 676(line=38, offs=11) -- 712(line=39, offs=16)
-*/
-ATSINSflab(__patsflab_is_perfect_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 699(line=39, offs=3) -- 711(line=39, offs=15)
-*/
-ATSINSmove(tmpret163, is_perfect_52(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret163) ;
+** The starting compilation time is: 2018-1-10:  0h:16m
+**
+*/
+
+/*
+** 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/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/mydepies.hats: 192(line=16, offs=1) -- 232(line=16, offs=41)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1233(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-libgmp/CATS/gmp.cats"
+//
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1233(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-libgmp/CATS/gmp.cats"
+//
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/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"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/mydepies.hats: 192(line=16, offs=1) -- 232(line=16, offs=41)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1233(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-libgmp/CATS/gmp.cats"
+//
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+staload-prologues(end)
+*/
+/*
+typedefs-for-tyrecs-and-tysums(beg)
+*/
+typedef
+ATSstruct {
+#if(0)
+int contag ;
+#endif
+atstkind_t0ype(atstype_int) atslab__0 ;
+atstkind_type(atstype_ptrk) atslab__1 ;
+} postiats_tysum_0 ;
+/*
+typedefs-for-tyrecs-and-tysums(end)
+*/
+/*
+dynconlst-declaration(beg)
+*/
+/*
+dynconlst-declaration(end)
+*/
+/*
+dyncstlst-declaration(beg)
+*/
+ATSdyncst_mac(atspre_ptr_alloc_tsz)
+ATSdyncst_mac(atspre_g0int2uint_int_ulint)
+ATSdyncst_mac(atspre_g1int_add_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_init)
+ATSdyncst_mac(atscntrb_gmp_mpz_fib_uint)
+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_lt_int)
+ATSdyncst_mac(atspre_g1int_eq_int)
+ATSdyncst_mac(atspre_g0int_div_int)
+ATSdyncst_mac(atspre_g1int_gte_int)
+ATSdyncst_mac(atspre_g0int_add_int)
+ATSdyncst_mac(atspre_g1int_sub_int)
+ATSdyncst_mac(atspre_g1int_neq_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_add2_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_init_set_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)
+witness_0(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+fib_gmp_1(atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__2() ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__2__1() ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+exp_5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__6(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__6__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__12(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__12__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+sqrt_int_17(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+is_prime_20(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+loop_21(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__22(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__22__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__12__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__26(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__26__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__12__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+divides_30(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__12__4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+gcd_32(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__6__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+lcm_34(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+divisors_36(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_37(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__38(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__gte_g1int_int__38__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_41(atstkind_t0ype(atstype_int), atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_42(atstype_bool) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__12__5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_44(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_45(atstype_bool) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+count_divisors_46(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_47(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__38__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__12__6(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+sum_divisors_51(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_52(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__38__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__12__7(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+is_perfect_55(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__12__8(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+little_omega_57(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_58(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__38__4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__12__9(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+totient_61(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_62(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__38__5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__12__10(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g1int_int__66(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__neq_g1int_int__66__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+totient_sum_69(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_70(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__22__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__72(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__72__1(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__74(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__74__1(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__2__2() ;
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+sum_divisors_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+count_divisors_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+totient_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+little_omega_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+is_perfect_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+ATSclosurerize_beg(__patsfun_41, (atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+atstkind_t0ype(atstype_int) env0 ;
+} __patsfun_41__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_41__cfun
+(
+__patsfun_41__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_41(p_cenv->env0, arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_41__closureinit
+(
+__patsfun_41__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0
+)
+{
+p_cenv->env0 = env0 ;
+p_cenv->cfun = __patsfun_41__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_41__closurerize
+(
+atstkind_t0ype(atstype_int) env0
+)
+{
+return __patsfun_41__closureinit(ATS_MALLOC(sizeof(__patsfun_41__closure_t0ype)), env0) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_42, (), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+} __patsfun_42__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_42__cfun
+(
+__patsfun_42__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_42(arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_42__closureinit
+(
+__patsfun_42__closure_t0ype *p_cenv
+)
+{
+p_cenv->cfun = __patsfun_42__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_42__closurerize
+(
+// argumentless
+)
+{
+return __patsfun_42__closureinit(ATS_MALLOC(sizeof(__patsfun_42__closure_t0ype))) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_44, (atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+atstkind_t0ype(atstype_int) env0 ;
+atstkind_t0ype(atstype_int) env1 ;
+} __patsfun_44__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_44__cfun
+(
+__patsfun_44__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_44(p_cenv->env0, p_cenv->env1, arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_44__closureinit
+(
+__patsfun_44__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1
+)
+{
+p_cenv->env0 = env0 ;
+p_cenv->env1 = env1 ;
+p_cenv->cfun = __patsfun_44__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_44__closurerize
+(
+atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1
+)
+{
+return __patsfun_44__closureinit(ATS_MALLOC(sizeof(__patsfun_44__closure_t0ype)), env0, env1) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_45, (), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+} __patsfun_45__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_45__cfun
+(
+__patsfun_45__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_45(arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_45__closureinit
+(
+__patsfun_45__closure_t0ype *p_cenv
+)
+{
+p_cenv->cfun = __patsfun_45__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_45__closurerize
+(
+// argumentless
+)
+{
+return __patsfun_45__closureinit(ATS_MALLOC(sizeof(__patsfun_45__closure_t0ype))) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 305(line=11, offs=4) -- 360(line=12, offs=14)
+*/
+/*
+local: 
+global: witness_0$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+witness_0(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret0, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 305(line=11, offs=4) -- 360(line=12, offs=14)
+*/
+ATSINSflab(__patsflab_witness_0):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 349(line=12, offs=3) -- 359(line=12, offs=13)
+*/
+ATSINSmove(tmpret0, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), arg0)) ;
+ATSfunbody_end()
+ATSreturn(tmpret0) ;
+} /* end of [witness_0] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 425(line=15, offs=5) -- 644(line=23, offs=6)
+*/
+/*
+local: 
+global: fib_gmp_1$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+fib_gmp_1(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp2, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp5, atstkind_t0ype(atstype_ulint)) ;
+ATStmpdec(tmp6, atstkind_t0ype(atstype_int)) ;
+// ATStmpdec_void(tmp7) ;
+// ATStmpdec_void(tmp8) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 425(line=15, offs=5) -- 644(line=23, offs=6)
+*/
+ATSINSflab(__patsflab_fib_gmp_1):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 461(line=16, offs=3) -- 644(line=23, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 477(line=17, offs=13) -- 488(line=17, offs=24)
+*/
+ATSINSmove(tmp2, ATSLIB_056_prelude__ptr_alloc__2__1()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 529(line=18, offs=41) -- 534(line=18, offs=46)
+*/
+ATSINSmove(tmp6, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 508(line=18, offs=20) -- 535(line=18, offs=47)
+*/
+ATSINSmove(tmp5, atspre_g0int2uint_int_ulint(tmp6)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 549(line=19, offs=14) -- 570(line=19, offs=35)
+*/
+ATSINSmove_void(tmp7, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp2, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 584(line=20, offs=14) -- 612(line=20, offs=42)
+*/
+ATSINSmove_void(tmp8, atscntrb_gmp_mpz_fib_uint(ATSPMVrefarg1(ATSSELrecsin(tmp2, atstkind_type(atstype_ptrk), atslab__2)), tmp5)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 622(line=22, offs=5) -- 637(line=22, offs=20)
+*/
+ATSINSmove(tmpret1, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp2)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 461(line=16, offs=3) -- 644(line=23, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret1) ;
+} /* end of [fib_gmp_1] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$2$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = a(4806)
+tmparg = S2Evar(a(4806))
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__2()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret3, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3708(line=184, offs=1) -- 3749(line=184, offs=42)
+*/
+ATSINSflab(__patsflab_ptr_alloc):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret3, atspre_ptr_alloc_tsz(ATSPMVsizeof(atstyvar_type(a)))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret3) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__2] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$2$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4806)
+tmparg = S2Evar(a(4806))
+tmpsub = Some(a(4806) -> S2EVar(5569))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__2__1()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret3__1, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3708(line=184, offs=1) -- 3749(line=184, offs=42)
+*/
+ATSINSflab(__patsflab_ptr_alloc):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret3__1, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret3__1) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__2__1] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 722(line=26, offs=5) -- 1159(line=47, offs=10)
+*/
+/*
+local: exp_5$0(level=0)
+global: exp_5$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+exp_5(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(tmpret9, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp10, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpref15, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref16, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp17, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp22, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp23, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 722(line=26, offs=5) -- 1159(line=47, offs=10)
+*/
+ATSINSflab(__patsflab_exp_5):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 774(line=27, offs=3) -- 1159(line=47, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 791(line=28, offs=7) -- 792(line=28, offs=8)
+*/
+ATSINSlab(__atstmplab0):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 743(line=26, offs=26) -- 744(line=26, offs=27)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 792(line=28, offs=8) -- 792(line=28, 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/done/fast-arithmetic/ats-src/numerics.dats: 796(line=28, offs=12) -- 797(line=28, offs=13)
+*/
+ATSINSmove(tmpret9, ATSPMVi0nt(0)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 805(line=29, offs=8) -- 805(line=29, 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/done/fast-arithmetic/ats-src/numerics.dats: 834(line=31, offs=12) -- 839(line=31, offs=17)
+*/
+ATSINSmove(tmp10, ATSLIB_056_prelude__gt_g1int_int__6__1(arg1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 831(line=31, offs=9) -- 1149(line=46, offs=12)
+*/
+ATSif(
+tmp10
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 855(line=32, offs=11) -- 1124(line=44, offs=14)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 875(line=33, offs=17) -- 877(line=33, offs=19)
+*/
+/*
+ATSINStmpdec(tmpref15) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 880(line=33, offs=22) -- 886(line=33, offs=28)
+*/
+ATSINSmove(tmpref15, atspre_g1int_half_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 904(line=34, offs=17) -- 906(line=34, offs=19)
+*/
+/*
+ATSINStmpdec(tmpref16) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 909(line=34, offs=22) -- 914(line=34, offs=27)
+*/
+ATSINSmove(tmpref16, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 943(line=36, offs=16) -- 949(line=36, offs=22)
+*/
+ATSINSmove(tmp17, ATSLIB_056_prelude__eq_g0int_int__12__1(tmpref16, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 940(line=36, offs=13) -- 1110(line=43, offs=18)
+*/
+ATSif(
+tmp17
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 973(line=37, offs=19) -- 978(line=37, offs=24)
+*/
+ATSINSmove(tmp22, atspre_g0int_mul_int(arg0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 969(line=37, offs=15) -- 983(line=37, offs=29)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp22) ;
+ATSINSmove_tlcal(apy1, tmpref15) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_exp_5) ;
+ATStailcal_end()
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1015(line=39, offs=15) -- 1110(line=43, offs=18)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1047(line=40, offs=29) -- 1052(line=40, offs=34)
+*/
+ATSINSmove(tmp23, atspre_g0int_mul_int(arg0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1043(line=40, offs=25) -- 1057(line=40, offs=39)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp23) ;
+ATSINSmove_tlcal(apy1, tmpref15) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_exp_5) ;
+ATStailcal_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1015(line=39, offs=15) -- 1110(line=43, offs=18)
+*/
+/*
+INSletpop()
+*/
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 855(line=32, offs=11) -- 1124(line=44, offs=14)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1148(line=46, offs=11) -- 1149(line=46, offs=12)
+*/
+ATSINSmove(tmpret9, ATSPMVi0nt(1)) ;
+} /* ATSendif */
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret9) ;
+} /* end of [exp_5] */
+
+#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$6$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__6(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret11, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp12, 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(tmp12, 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(tmpret11, PMVtmpltcst(g1int_gt<S2Evar(tk(4703))>)(arg0, tmp12)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret11) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__6] */
+#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$6$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__6__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret11__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp12__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(tmp12__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(tmpret11__1, atspre_g1int_gt_int(arg0, tmp12__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret11__1) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__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$12$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__12(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret18, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19, 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(tmp19, 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(tmpret18, PMVtmpltcst(g0int_eq<S2Evar(tk(4694))>)(arg0, tmp19)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret18) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12] */
+#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$12$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__12__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret18__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__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(tmp19__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(tmpret18__1, atspre_g0int_eq_int(arg0, tmp19__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret18__1) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__1] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1164(line=49, offs=4) -- 1308(line=54, offs=6)
+*/
+/*
+local: witness_0$0(level=0)
+global: witness_0$0(level=0), sqrt_int_17$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+sqrt_int_17(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret24, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref25, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp26, atstkind_t0ype(atstype_float)) ;
+ATStmpdec(tmp27, atstkind_t0ype(atstype_float)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1164(line=49, offs=4) -- 1308(line=54, offs=6)
+*/
+ATSINSflab(__patsflab_sqrt_int_17):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1214(line=50, offs=3) -- 1308(line=54, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1226(line=51, offs=9) -- 1231(line=51, offs=14)
+*/
+/*
+ATSINStmpdec(tmpref25) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1262(line=51, offs=45) -- 1275(line=51, offs=58)
+*/
+ATSINSmove(tmp27, atspre_g0int2float_int_float(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1251(line=51, offs=34) -- 1277(line=51, offs=60)
+*/
+ATSINSmove(tmp26, atslib_libats_libc_sqrt_float(tmp27)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1239(line=51, offs=22) -- 1278(line=51, offs=61)
+*/
+ATSINSmove(tmpref25, atspre_g0float2int_float_int(tmp26)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1288(line=53, offs=5) -- 1301(line=53, offs=18)
+*/
+ATSINSmove(tmpret24, witness_0(tmpref25)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1214(line=50, offs=3) -- 1308(line=54, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret24) ;
+} /* end of [sqrt_int_17] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1344(line=57, offs=4) -- 1929(line=80, offs=10)
+*/
+/*
+local: sqrt_int_17$0(level=0)
+global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+is_prime_20(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret28, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp49, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1344(line=57, offs=4) -- 1929(line=80, offs=10)
+*/
+ATSINSflab(__patsflab_is_prime_20):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1380(line=58, offs=3) -- 1929(line=80, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1397(line=59, offs=7) -- 1398(line=59, offs=8)
+*/
+ATSINSlab(__atstmplab3):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1353(line=57, offs=13) -- 1354(line=57, offs=14)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab5) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1398(line=59, offs=8) -- 1398(line=59, offs=8)
+*/
+ATSINSlab(__atstmplab4):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1402(line=59, offs=12) -- 1407(line=59, offs=17)
+*/
+ATSINSmove(tmpret28, ATSPMVbool_false()) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1415(line=60, offs=8) -- 1415(line=60, offs=8)
+*/
+ATSINSlab(__atstmplab5):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1440(line=62, offs=9) -- 1919(line=79, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1895(line=78, offs=19) -- 1905(line=78, offs=29)
+*/
+ATSINSmove(tmp49, sqrt_int_17(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1887(line=78, offs=11) -- 1907(line=78, offs=31)
+*/
+ATSINSmove(tmpret28, loop_21(arg0, ATSPMVi0nt(2), tmp49)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1440(line=62, offs=9) -- 1919(line=79, offs=12)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret28) ;
+} /* end of [is_prime_20] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1458(line=63, offs=15) -- 1865(line=76, offs=21)
+*/
+/*
+local: loop_21$0(level=1)
+global: loop_21$0(level=1)
+local: k$5106(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: k$5106(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+loop_21(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(tmpret29, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp30, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp35, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp38, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp39, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp40, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp45, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp48, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+/*
+emit_funent_fnxdeclst:
+*/
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1458(line=63, offs=15) -- 1865(line=76, offs=21)
+*/
+ATSINSflab(__patsflab_loop_21):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1552(line=64, offs=16) -- 1561(line=64, offs=25)
+*/
+ATSINSmove(tmp30, ATSLIB_056_prelude__lt_g1int_int__22__1(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1549(line=64, offs=13) -- 1865(line=76, offs=21)
+*/
+ATSif(
+tmp30
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1584(line=65, offs=18) -- 1589(line=65, offs=23)
+*/
+ATSINSmove(tmp38, atspre_g0int_mod_int(env0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1584(line=65, offs=18) -- 1593(line=65, offs=27)
+*/
+ATSINSmove(tmp35, ATSLIB_056_prelude__eq_g0int_int__12__2(tmp38, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1581(line=65, offs=15) -- 1674(line=68, offs=35)
+*/
+ATSif(
+tmp35
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1615(line=66, offs=17) -- 1620(line=66, offs=22)
+*/
+ATSINSmove(tmpret29, ATSPMVbool_false()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1661(line=68, offs=22) -- 1666(line=68, offs=27)
+*/
+ATSINSmove(tmp39, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1656(line=68, offs=17) -- 1674(line=68, offs=35)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp39) ;
+ATSINSmove_tlcal(apy1, arg1) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_21) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1709(line=70, offs=18) -- 1718(line=70, offs=27)
+*/
+ATSINSmove(tmp40, ATSLIB_056_prelude__eq_g1int_int__26__1(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1706(line=70, offs=15) -- 1865(line=76, offs=21)
+*/
+ATSif(
+tmp40
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1743(line=71, offs=20) -- 1748(line=71, offs=25)
+*/
+ATSINSmove(tmp48, atspre_g0int_mod_int(env0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1743(line=71, offs=20) -- 1752(line=71, offs=29)
+*/
+ATSINSmove(tmp45, ATSLIB_056_prelude__eq_g0int_int__12__3(tmp48, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1740(line=71, offs=17) -- 1825(line=74, offs=23)
+*/
+ATSif(
+tmp45
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1776(line=72, offs=19) -- 1781(line=72, offs=24)
+*/
+ATSINSmove(tmpret29, ATSPMVbool_false()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1821(line=74, offs=19) -- 1825(line=74, offs=23)
+*/
+ATSINSmove(tmpret29, ATSPMVbool_true()) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1861(line=76, offs=17) -- 1865(line=76, offs=21)
+*/
+ATSINSmove(tmpret29, ATSPMVbool_true()) ;
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret29) ;
+/*
+emit_funent_fnxbodylst:
+*/
+} /* end of [loop_21] */
+
+#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$22$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__22(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret31, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp32, 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(tmp32, 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(tmpret31, PMVtmpltcst(g1int_lt<S2Evar(tk(4697))>)(arg0, tmp32)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret31) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__22] */
+#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$22$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__22__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret31__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp32__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(tmp32__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(tmpret31__1, atspre_g1int_lt_int(arg0, tmp32__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret31__1) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__22__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$12$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__12__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret18__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__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(tmp19__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(tmpret18__2, atspre_g0int_eq_int(arg0, tmp19__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret18__2) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__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$26$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__26(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret41, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp42, 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(tmp42, 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(tmpret41, PMVtmpltcst(g1int_eq<S2Evar(tk(4709))>)(arg0, tmp42)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret41) ;
+} /* end of [ATSLIB_056_prelude__eq_g1int_int__26] */
+#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$26$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__26__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret41__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp42__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(tmp42__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(tmpret41__1, atspre_g1int_eq_int(arg0, tmp42__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret41__1) ;
+} /* end of [ATSLIB_056_prelude__eq_g1int_int__26__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$12$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__12__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret18__3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__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(tmp19__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(tmpret18__3, atspre_g0int_eq_int(arg0, tmp19__3)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret18__3) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__3] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 519(line=20, offs=4) -- 567(line=21, offs=12)
+*/
+/*
+local: 
+global: divides_30$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+divides_30(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret50, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp53, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 519(line=20, offs=4) -- 567(line=21, offs=12)
+*/
+ATSINSflab(__patsflab_divides_30):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 558(line=21, offs=3) -- 563(line=21, offs=8)
+*/
+ATSINSmove(tmp53, atspre_g0int_mod_int(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 558(line=21, offs=3) -- 567(line=21, offs=12)
+*/
+ATSINSmove(tmpret50, ATSLIB_056_prelude__eq_g0int_int__12__4(tmp53, ATSPMVi0nt(0))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret50) ;
+} /* end of [divides_30] */
+
+/*
+/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$12$4(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__12__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret18__4, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__4, 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(tmp19__4, 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(tmpret18__4, atspre_g0int_eq_int(arg0, tmp19__4)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret18__4) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__4] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 573(line=23, offs=5) -- 684(line=27, offs=6)
+*/
+/*
+local: witness_0$0(level=0), gcd_32$0(level=0)
+global: witness_0$0(level=0), gcd_32$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+gcd_32(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(tmpret54, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp55, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp58, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp59, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+/*
+emit_funent_fnxdeclst:
+*/
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 573(line=23, offs=5) -- 684(line=27, offs=6)
+*/
+ATSINSflab(__patsflab_gcd_32):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 634(line=24, offs=6) -- 639(line=24, offs=11)
+*/
+ATSINSmove(tmp55, ATSLIB_056_prelude__gt_g1int_int__6__2(arg1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 631(line=24, offs=3) -- 684(line=27, offs=6)
+*/
+ATSif(
+tmp55
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 664(line=25, offs=20) -- 669(line=25, offs=25)
+*/
+ATSINSmove(tmp59, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 656(line=25, offs=12) -- 670(line=25, offs=26)
+*/
+ATSINSmove(tmp58, witness_0(tmp59)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 649(line=25, offs=5) -- 671(line=25, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg1) ;
+ATSINSmove_tlcal(apy1, tmp58) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_gcd_32) ;
+ATStailcal_end()
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 683(line=27, offs=5) -- 684(line=27, offs=6)
+*/
+ATSINSmove(tmpret54, arg0) ;
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret54) ;
+/*
+emit_funent_fnxbodylst:
+*/
+} /* end of [gcd_32] */
+
+/*
+/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$6$2(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__6__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret11__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp12__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): 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(tmp12__2, 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(tmpret11__2, atspre_g1int_gt_int(arg0, tmp12__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret11__2) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__2] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 689(line=29, offs=4) -- 766(line=30, offs=22)
+*/
+/*
+local: gcd_32$0(level=0)
+global: witness_0$0(level=0), gcd_32$0(level=0), lcm_34$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+lcm_34(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret60, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp61, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp62, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 689(line=29, offs=4) -- 766(line=30, offs=22)
+*/
+ATSINSflab(__patsflab_lcm_34):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 752(line=30, offs=8) -- 761(line=30, offs=17)
+*/
+ATSINSmove(tmp62, gcd_32(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 748(line=30, offs=4) -- 761(line=30, offs=17)
+*/
+ATSINSmove(tmp61, atspre_g0int_div_int(arg0, tmp62)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 747(line=30, offs=3) -- 766(line=30, offs=22)
+*/
+ATSINSmove(tmpret60, atspre_g0int_mul_int(tmp61, arg1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret60) ;
+} /* end of [lcm_34] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 809(line=33, offs=4) -- 1217(line=45, offs=6)
+*/
+/*
+local: 
+global: divisors_36$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+divisors_36(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret63, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 809(line=33, offs=4) -- 1217(line=45, offs=6)
+*/
+ATSINSflab(__patsflab_divisors_36):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 856(line=34, offs=3) -- 1217(line=45, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1201(line=44, offs=5) -- 1211(line=44, offs=15)
+*/
+ATSINSmove(tmpret63, loop_37(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 856(line=34, offs=3) -- 1217(line=45, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret63) ;
+} /* end of [divisors_36] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 868(line=35, offs=9) -- 1191(line=42, offs=33)
+*/
+/*
+local: loop_37$0(level=1)
+global: loop_37$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_37(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret64, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp65, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp73, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp76, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 868(line=35, offs=9) -- 1191(line=42, offs=33)
+*/
+ATSINSflab(__patsflab_loop_37):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 977(line=36, offs=10) -- 985(line=36, offs=18)
+*/
+ATSINSmove(tmp65, ATSLIB_056_prelude__gte_g1int_int__38__1(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 974(line=36, offs=7) -- 1191(line=42, offs=33)
+*/
+ATSif(
+tmp65
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 999(line=37, offs=9) -- 1051(line=37, offs=61)
+*/
+ATSINSmove_ldelay(tmpret64, atstype_boxed, ATSPMVcfunlab(1, __patsfun_41, (arg1))) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1074(line=39, offs=12) -- 1081(line=39, offs=19)
+*/
+ATSINSmove(tmp76, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1074(line=39, offs=12) -- 1085(line=39, offs=23)
+*/
+ATSINSmove(tmp73, ATSLIB_056_prelude__eq_g0int_int__12__5(tmp76, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1071(line=39, offs=9) -- 1191(line=42, offs=33)
+*/
+ATSif(
+tmp73
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1101(line=40, offs=11) -- 1145(line=40, offs=55)
+*/
+ATSINSmove_ldelay(tmpret64, atstype_boxed, ATSPMVcfunlab(1, __patsfun_44, (arg0, arg1))) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1169(line=42, offs=11) -- 1191(line=42, offs=33)
+*/
+ATSINSmove_ldelay(tmpret64, atstype_boxed, ATSPMVcfunlab(1, __patsfun_45, ())) ;
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret64) ;
+} /* end of [loop_37] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
+*/
+/*
+local: 
+global: gte_g1int_int$38$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4706)
+tmparg = S2Evar(tk(4706))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__38(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret66, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp67, 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): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
+*/
+ATSINSflab(__patsflab_gte_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
+*/
+ATSINSmove(tmp67, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4706))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
+*/
+ATSINSmove(tmpret66, PMVtmpltcst(g1int_gte<S2Evar(tk(4706))>)(arg0, tmp67)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret66) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__38] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
+*/
+/*
+local: 
+global: gte_g1int_int$38$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4706)
+tmparg = S2Evar(tk(4706))
+tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__38__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret66__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp67__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): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
+*/
+ATSINSflab(__patsflab_gte_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
+*/
+ATSINSmove(tmp67__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): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
+*/
+ATSINSmove(tmpret66__1, atspre_g1int_gte_int(arg0, tmp67__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret66__1) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__38__1] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 999(line=37, offs=9) -- 1051(line=37, offs=61)
+*/
+/*
+local: 
+global: __patsfun_41$0(level=2)
+local: acc$5123(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: acc$5123(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_41(atstkind_t0ype(atstype_int) env0, atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret70, atstype_boxed) ;
+ATStmpdec(tmp71, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 999(line=37, offs=9) -- 1051(line=37, offs=61)
+*/
+ATSINSflab(__patsflab___patsfun_41):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 999(line=37, offs=9) -- 1051(line=37, offs=61)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1027(line=37, offs=37) -- 1049(line=37, offs=59)
+*/
+ATSINSmove_ldelay(tmp71, atstype_boxed, ATSPMVcfunlab(1, __patsfun_42, ())) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1007(line=37, offs=17) -- 1050(line=37, offs=60)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret70, postiats_tysum_0) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret70, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret70, postiats_tysum_0, atslab__0, env0) ;
+ATSINSstore_con1_ofs(tmpret70, postiats_tysum_0, atslab__1, tmp71) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret70) ;
+} /* end of [__patsfun_41] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1027(line=37, offs=37) -- 1049(line=37, offs=59)
+*/
+/*
+local: 
+global: __patsfun_42$0(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_42(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret72, atstype_boxed) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1027(line=37, offs=37) -- 1049(line=37, offs=59)
+*/
+ATSINSflab(__patsflab___patsfun_42):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1027(line=37, offs=37) -- 1049(line=37, offs=59)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1035(line=37, offs=45) -- 1048(line=37, offs=58)
+*/
+
+ATSINSmove_nil(tmpret72) ;
+
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret72) ;
+} /* end of [__patsfun_42] */
+
+/*
+/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$12$5(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__12__5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret18__5, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__5, 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(tmp19__5, 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(tmpret18__5, atspre_g0int_eq_int(arg0, tmp19__5)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret18__5) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__5] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1101(line=40, offs=11) -- 1145(line=40, offs=55)
+*/
+/*
+local: loop_37$0(level=1)
+global: loop_37$0(level=1), __patsfun_44$0(level=2)
+local: n$5122(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5123(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: n$5122(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5123(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_44(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret77, atstype_boxed) ;
+ATStmpdec(tmp78, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp79, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1101(line=40, offs=11) -- 1145(line=40, offs=55)
+*/
+ATSINSflab(__patsflab___patsfun_44):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1101(line=40, offs=11) -- 1145(line=40, offs=55)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1135(line=40, offs=45) -- 1142(line=40, offs=52)
+*/
+ATSINSmove(tmp79, atspre_g1int_add_int(env1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1127(line=40, offs=37) -- 1143(line=40, offs=53)
+*/
+ATSINSmove(tmp78, loop_37(env0, tmp79)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1109(line=40, offs=19) -- 1144(line=40, offs=54)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret77, postiats_tysum_0) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret77, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret77, postiats_tysum_0, atslab__0, env0) ;
+ATSINSstore_con1_ofs(tmpret77, postiats_tysum_0, atslab__1, tmp78) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret77) ;
+} /* end of [__patsfun_44] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1169(line=42, offs=11) -- 1191(line=42, offs=33)
+*/
+/*
+local: 
+global: __patsfun_45$0(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_45(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret80, atstype_boxed) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1169(line=42, offs=11) -- 1191(line=42, offs=33)
+*/
+ATSINSflab(__patsflab___patsfun_45):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1169(line=42, offs=11) -- 1191(line=42, offs=33)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1177(line=42, offs=19) -- 1190(line=42, offs=32)
+*/
+
+ATSINSmove_nil(tmpret80) ;
+
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret80) ;
+} /* end of [__patsfun_45] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1222(line=47, offs=4) -- 1533(line=59, offs=6)
+*/
+/*
+local: 
+global: count_divisors_46$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+count_divisors_46(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret81, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1222(line=47, offs=4) -- 1533(line=59, offs=6)
+*/
+ATSINSflab(__patsflab_count_divisors_46):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1264(line=48, offs=3) -- 1533(line=59, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1517(line=58, offs=5) -- 1527(line=58, offs=15)
+*/
+ATSINSmove(tmpret81, loop_47(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1264(line=48, offs=3) -- 1533(line=59, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret81) ;
+} /* end of [count_divisors_46] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1276(line=49, offs=9) -- 1507(line=56, offs=27)
+*/
+/*
+local: loop_47$0(level=1)
+global: loop_47$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_47(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(tmpret82, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp83, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp86, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp89, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp90, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp91, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp92, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1276(line=49, offs=9) -- 1507(line=56, offs=27)
+*/
+ATSINSflab(__patsflab_loop_47):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1374(line=50, offs=10) -- 1382(line=50, offs=18)
+*/
+ATSINSmove(tmp83, ATSLIB_056_prelude__gte_g1int_int__38__2(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1371(line=50, offs=7) -- 1507(line=56, offs=27)
+*/
+ATSif(
+tmp83
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1396(line=51, offs=9) -- 1397(line=51, offs=10)
+*/
+ATSINSmove(tmpret82, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1420(line=53, offs=12) -- 1427(line=53, offs=19)
+*/
+ATSINSmove(tmp89, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1420(line=53, offs=12) -- 1431(line=53, offs=23)
+*/
+ATSINSmove(tmp86, ATSLIB_056_prelude__eq_g0int_int__12__6(tmp89, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1417(line=53, offs=9) -- 1507(line=56, offs=27)
+*/
+ATSif(
+tmp86
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1459(line=54, offs=23) -- 1466(line=54, offs=30)
+*/
+ATSINSmove(tmp91, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1451(line=54, offs=15) -- 1467(line=54, offs=31)
+*/
+ATSINSmove(tmp90, loop_47(arg0, tmp91)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1447(line=54, offs=11) -- 1467(line=54, offs=31)
+*/
+ATSINSmove(tmpret82, atspre_g0int_add_int(ATSPMVi0nt(1), tmp90)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1499(line=56, offs=19) -- 1506(line=56, offs=26)
+*/
+ATSINSmove(tmp92, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1491(line=56, offs=11) -- 1507(line=56, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp92) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_47) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret82) ;
+} /* end of [loop_47] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
+*/
+/*
+local: 
+global: gte_g1int_int$38$2(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4706)
+tmparg = S2Evar(tk(4706))
+tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__38__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret66__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp67__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): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
+*/
+ATSINSflab(__patsflab_gte_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
+*/
+ATSINSmove(tmp67__2, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
+*/
+ATSINSmove(tmpret66__2, atspre_g1int_gte_int(arg0, tmp67__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret66__2) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__38__2] */
+
+/*
+/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$12$6(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__12__6(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret18__6, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__6, 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(tmp19__6, 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(tmpret18__6, atspre_g0int_eq_int(arg0, tmp19__6)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret18__6) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__6] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1538(line=61, offs=4) -- 1849(line=73, offs=6)
+*/
+/*
+local: 
+global: sum_divisors_51$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+sum_divisors_51(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret93, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1538(line=61, offs=4) -- 1849(line=73, offs=6)
+*/
+ATSINSflab(__patsflab_sum_divisors_51):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1578(line=62, offs=3) -- 1849(line=73, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1833(line=72, offs=5) -- 1843(line=72, offs=15)
+*/
+ATSINSmove(tmpret93, loop_52(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1578(line=62, offs=3) -- 1849(line=73, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret93) ;
+} /* end of [sum_divisors_51] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1590(line=63, offs=9) -- 1823(line=70, offs=27)
+*/
+/*
+local: loop_52$0(level=1)
+global: loop_52$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_52(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(tmpret94, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp95, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp98, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp101, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp102, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp103, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp104, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1590(line=63, offs=9) -- 1823(line=70, offs=27)
+*/
+ATSINSflab(__patsflab_loop_52):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1688(line=64, offs=10) -- 1696(line=64, offs=18)
+*/
+ATSINSmove(tmp95, ATSLIB_056_prelude__gte_g1int_int__38__3(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1685(line=64, offs=7) -- 1823(line=70, offs=27)
+*/
+ATSif(
+tmp95
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1710(line=65, offs=9) -- 1711(line=65, offs=10)
+*/
+ATSINSmove(tmpret94, ATSPMVi0nt(0)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1734(line=67, offs=12) -- 1741(line=67, offs=19)
+*/
+ATSINSmove(tmp101, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1734(line=67, offs=12) -- 1745(line=67, offs=23)
+*/
+ATSINSmove(tmp98, ATSLIB_056_prelude__eq_g0int_int__12__7(tmp101, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1731(line=67, offs=9) -- 1823(line=70, offs=27)
+*/
+ATSif(
+tmp98
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1775(line=68, offs=25) -- 1782(line=68, offs=32)
+*/
+ATSINSmove(tmp103, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1767(line=68, offs=17) -- 1783(line=68, offs=33)
+*/
+ATSINSmove(tmp102, loop_52(arg0, tmp103)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1761(line=68, offs=11) -- 1783(line=68, offs=33)
+*/
+ATSINSmove(tmpret94, atspre_g0int_add_int(arg1, tmp102)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1815(line=70, offs=19) -- 1822(line=70, offs=26)
+*/
+ATSINSmove(tmp104, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1807(line=70, offs=11) -- 1823(line=70, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp104) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_52) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret94) ;
+} /* end of [loop_52] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
+*/
+/*
+local: 
+global: gte_g1int_int$38$3(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4706)
+tmparg = S2Evar(tk(4706))
+tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__38__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret66__3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp67__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): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
+*/
+ATSINSflab(__patsflab_gte_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
+*/
+ATSINSmove(tmp67__3, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
+*/
+ATSINSmove(tmpret66__3, atspre_g1int_gte_int(arg0, tmp67__3)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret66__3) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__38__3] */
+
+/*
+/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$12$7(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__12__7(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret18__7, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__7, 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(tmp19__7, 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(tmpret18__7, atspre_g0int_eq_int(arg0, tmp19__7)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret18__7) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__7] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1854(line=75, offs=4) -- 1912(line=76, offs=22)
+*/
+/*
+local: sum_divisors_51$0(level=0)
+global: sum_divisors_51$0(level=0), is_perfect_55$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+is_perfect_55(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret105, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp108, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1854(line=75, offs=4) -- 1912(line=76, offs=22)
+*/
+ATSINSflab(__patsflab_is_perfect_55):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1893(line=76, offs=3) -- 1907(line=76, offs=17)
+*/
+ATSINSmove(tmp108, sum_divisors_51(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1893(line=76, offs=3) -- 1912(line=76, offs=22)
+*/
+ATSINSmove(tmpret105, ATSLIB_056_prelude__eq_g0int_int__12__8(tmp108, arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret105) ;
+} /* end of [is_perfect_55] */
+
+/*
+/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$12$8(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__12__8(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret18__8, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__8, 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(tmp19__8, 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(tmpret18__8, atspre_g0int_eq_int(arg0, tmp19__8)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret18__8) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__8] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1944(line=79, offs=4) -- 2325(line=94, offs=6)
+*/
+/*
+local: is_prime_20$0(level=0)
+global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), little_omega_57$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+little_omega_57(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret109, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1944(line=79, offs=4) -- 2325(line=94, offs=6)
+*/
+ATSINSflab(__patsflab_little_omega_57):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1984(line=80, offs=3) -- 2325(line=94, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2309(line=93, offs=5) -- 2319(line=93, offs=15)
+*/
+ATSINSmove(tmpret109, loop_58(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1984(line=80, offs=3) -- 2325(line=94, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret109) ;
+} /* end of [little_omega_57] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1996(line=81, offs=9) -- 2299(line=91, offs=27)
+*/
+/*
+local: is_prime_20$0(level=0), loop_58$0(level=1)
+global: is_prime_20$0(level=0), loop_58$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_58(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(tmpret110, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp111, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp114, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp115, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp116, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp119, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp120, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp121, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp122, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1996(line=81, offs=9) -- 2299(line=91, offs=27)
+*/
+ATSINSflab(__patsflab_loop_58):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2094(line=82, offs=10) -- 2102(line=82, offs=18)
+*/
+ATSINSmove(tmp111, ATSLIB_056_prelude__gte_g1int_int__38__4(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2091(line=82, offs=7) -- 2299(line=91, offs=27)
+*/
+ATSif(
+tmp111
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2119(line=83, offs=12) -- 2129(line=83, offs=22)
+*/
+ATSINSmove(tmp114, is_prime_20(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2116(line=83, offs=9) -- 2172(line=86, offs=12)
+*/
+ATSif(
+tmp114
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2146(line=84, offs=11) -- 2147(line=84, offs=12)
+*/
+ATSINSmove(tmpret110, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2171(line=86, offs=11) -- 2172(line=86, offs=12)
+*/
+ATSINSmove(tmpret110, ATSPMVi0nt(0)) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
+*/
+ATSINSmove(tmp119, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
+*/
+ATSINSmove(tmp116, ATSLIB_056_prelude__eq_g0int_int__12__9(tmp119, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
+*/
+ATSif(
+tmp116
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
+*/
+ATSINSmove(tmp115, is_prime_20(arg1)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
+*/
+ATSINSmove(tmp115, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2192(line=88, offs=9) -- 2299(line=91, offs=27)
+*/
+ATSif(
+tmp115
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2251(line=89, offs=23) -- 2258(line=89, offs=30)
+*/
+ATSINSmove(tmp121, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2243(line=89, offs=15) -- 2259(line=89, offs=31)
+*/
+ATSINSmove(tmp120, loop_58(arg0, tmp121)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2239(line=89, offs=11) -- 2259(line=89, offs=31)
+*/
+ATSINSmove(tmpret110, atspre_g0int_add_int(ATSPMVi0nt(1), tmp120)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2291(line=91, offs=19) -- 2298(line=91, offs=26)
+*/
+ATSINSmove(tmp122, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2283(line=91, offs=11) -- 2299(line=91, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp122) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_58) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret110) ;
+} /* end of [loop_58] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
+*/
+/*
+local: 
+global: gte_g1int_int$38$4(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4706)
+tmparg = S2Evar(tk(4706))
+tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__38__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret66__4, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp67__4, 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): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
+*/
+ATSINSflab(__patsflab_gte_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
+*/
+ATSINSmove(tmp67__4, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
+*/
+ATSINSmove(tmpret66__4, atspre_g1int_gte_int(arg0, tmp67__4)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret66__4) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__38__4] */
+
+/*
+/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$12$9(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__12__9(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret18__9, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__9, 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(tmp19__9, 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(tmpret18__9, atspre_g0int_eq_int(arg0, tmp19__9)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret18__9) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__9] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2359(line=97, offs=4) -- 2907(line=117, offs=10)
+*/
+/*
+local: is_prime_20$0(level=0)
+global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), totient_61$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+totient_61(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret123, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2359(line=97, offs=4) -- 2907(line=117, offs=10)
+*/
+ATSINSflab(__patsflab_totient_61):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2392(line=98, offs=3) -- 2907(line=117, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2409(line=99, offs=7) -- 2410(line=99, offs=8)
+*/
+ATSINSlab(__atstmplab6):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2367(line=97, offs=12) -- 2368(line=97, offs=13)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab8) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2410(line=99, offs=8) -- 2410(line=99, 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/done/fast-arithmetic/ats-src/number-theory.dats: 2414(line=99, offs=12) -- 2415(line=99, offs=13)
+*/
+ATSINSmove(tmpret123, ATSPMVi0nt(1)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2423(line=100, offs=8) -- 2423(line=100, 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/done/fast-arithmetic/ats-src/number-theory.dats: 2449(line=102, offs=9) -- 2897(line=116, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2875(line=115, offs=11) -- 2885(line=115, offs=21)
+*/
+ATSINSmove(tmpret123, loop_62(ATSPMVi0nt(1), arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2449(line=102, offs=9) -- 2897(line=116, offs=12)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret123) ;
+} /* end of [totient_61] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2467(line=103, offs=15) -- 2853(line=113, offs=31)
+*/
+/*
+local: is_prime_20$0(level=0), loop_62$0(level=1)
+global: is_prime_20$0(level=0), loop_62$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_62(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(tmpret124, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp125, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp128, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp129, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp130, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp131, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp134, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp139, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp140, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp141, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp142, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp143, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+/*
+emit_funent_fnxdeclst:
+*/
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2467(line=103, offs=15) -- 2853(line=113, offs=31)
+*/
+ATSINSflab(__patsflab_loop_62):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2578(line=104, offs=16) -- 2584(line=104, offs=22)
+*/
+ATSINSmove(tmp125, ATSLIB_056_prelude__gte_g1int_int__38__5(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2575(line=104, offs=13) -- 2853(line=113, offs=31)
+*/
+ATSif(
+tmp125
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2607(line=105, offs=18) -- 2617(line=105, offs=28)
+*/
+ATSINSmove(tmp128, is_prime_20(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2604(line=105, offs=15) -- 2682(line=108, offs=18)
+*/
+ATSif(
+tmp128
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2640(line=106, offs=17) -- 2645(line=106, offs=22)
+*/
+ATSINSmove(tmpret124, atspre_g1int_sub_int(arg1, ATSPMVi0nt(1))) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2681(line=108, offs=17) -- 2682(line=108, offs=18)
+*/
+ATSINSmove(tmpret124, arg1) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
+*/
+ATSINSmove(tmp134, atspre_g0int_mod_int(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
+*/
+ATSINSmove(tmp131, ATSLIB_056_prelude__eq_g0int_int__12__10(tmp134, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
+*/
+ATSif(
+tmp131
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
+*/
+ATSINSmove(tmp130, is_prime_20(arg0)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
+*/
+ATSINSmove(tmp130, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
+*/
+ATSif(
+tmp130
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
+*/
+ATSINSmove(tmp129, ATSLIB_056_prelude__neq_g1int_int__66__1(arg0, arg1)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
+*/
+ATSINSmove(tmp129, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2714(line=110, offs=15) -- 2853(line=113, offs=31)
+*/
+ATSif(
+tmp129
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2779(line=111, offs=23) -- 2784(line=111, offs=28)
+*/
+ATSINSmove(tmp141, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2774(line=111, offs=18) -- 2788(line=111, offs=32)
+*/
+ATSINSmove(tmp140, loop_62(tmp141, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2774(line=111, offs=18) -- 2792(line=111, offs=36)
+*/
+ATSINSmove(tmp139, atspre_g0int_div_int(tmp140, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2797(line=111, offs=41) -- 2802(line=111, offs=46)
+*/
+ATSINSmove(tmp142, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2773(line=111, offs=17) -- 2803(line=111, offs=47)
+*/
+ATSINSmove(tmpret124, atspre_g0int_mul_int(tmp139, tmp142)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2844(line=113, offs=22) -- 2849(line=113, offs=27)
+*/
+ATSINSmove(tmp143, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2839(line=113, offs=17) -- 2853(line=113, offs=31)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp143) ;
+ATSINSmove_tlcal(apy1, arg1) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_62) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret124) ;
+/*
+emit_funent_fnxbodylst:
+*/
+} /* end of [loop_62] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
+*/
+/*
+local: 
+global: gte_g1int_int$38$5(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4706)
+tmparg = S2Evar(tk(4706))
+tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__38__5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret66__5, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp67__5, 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): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
+*/
+ATSINSflab(__patsflab_gte_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
+*/
+ATSINSmove(tmp67__5, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
+*/
+ATSINSmove(tmpret66__5, atspre_g1int_gte_int(arg0, tmp67__5)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret66__5) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__38__5] */
+
+/*
+/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$12$10(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__12__10(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret18__10, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__10, 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(tmp19__10, 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(tmpret18__10, atspre_g0int_eq_int(arg0, tmp19__10)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret18__10) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__10] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12916(line=672, offs=3) -- 12956(line=672, offs=43)
+*/
+/*
+local: 
+global: neq_g1int_int$66$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4712)
+tmparg = S2Evar(tk(4712))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g1int_int__66(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret135, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp136, 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): 12900(line=671, offs=1) -- 12956(line=672, offs=43)
+*/
+ATSINSflab(__patsflab_neq_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12943(line=672, offs=30) -- 12954(line=672, offs=41)
+*/
+ATSINSmove(tmp136, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4712))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12925(line=672, offs=12) -- 12956(line=672, offs=43)
+*/
+ATSINSmove(tmpret135, PMVtmpltcst(g1int_neq<S2Evar(tk(4712))>)(arg0, tmp136)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret135) ;
+} /* end of [ATSLIB_056_prelude__neq_g1int_int__66] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12916(line=672, offs=3) -- 12956(line=672, offs=43)
+*/
+/*
+local: 
+global: neq_g1int_int$66$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4712)
+tmparg = S2Evar(tk(4712))
+tmpsub = Some(tk(4712) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g1int_int__66__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret135__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp136__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): 12900(line=671, offs=1) -- 12956(line=672, offs=43)
+*/
+ATSINSflab(__patsflab_neq_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12943(line=672, offs=30) -- 12954(line=672, offs=41)
+*/
+ATSINSmove(tmp136__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): 12925(line=672, offs=12) -- 12956(line=672, offs=43)
+*/
+ATSINSmove(tmpret135__1, atspre_g1int_neq_int(arg0, tmp136__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret135__1) ;
+} /* end of [ATSLIB_056_prelude__neq_g1int_int__66__1] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2991(line=121, offs=5) -- 3379(line=135, offs=6)
+*/
+/*
+local: witness_0$0(level=0), totient_61$0(level=0)
+global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), totient_61$0(level=0), totient_sum_69$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+totient_sum_69(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret144, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2991(line=121, offs=5) -- 3379(line=135, offs=6)
+*/
+ATSINSflab(__patsflab_totient_sum_69):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3031(line=122, offs=3) -- 3379(line=135, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3363(line=134, offs=5) -- 3373(line=134, offs=15)
+*/
+ATSINSmove(tmpret144, loop_70(ATSPMVi0nt(1), arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3031(line=122, offs=3) -- 3379(line=135, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret144) ;
+} /* end of [totient_sum_69] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3043(line=123, offs=9) -- 3353(line=132, offs=40)
+*/
+/*
+local: witness_0$0(level=0), totient_61$0(level=0), loop_70$0(level=1)
+global: witness_0$0(level=0), totient_61$0(level=0), loop_70$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_70(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(tmpret145, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp146, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp149, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp150, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp155, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp156, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp164, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp165, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+/*
+emit_funent_fnxdeclst:
+*/
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3043(line=123, offs=9) -- 3353(line=132, offs=40)
+*/
+ATSINSflab(__patsflab_loop_70):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3146(line=124, offs=10) -- 3155(line=124, offs=19)
+*/
+ATSINSmove(tmp146, ATSLIB_056_prelude__lt_g1int_int__22__2(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3143(line=124, offs=7) -- 3353(line=132, offs=40)
+*/
+ATSif(
+tmp146
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3169(line=125, offs=9) -- 3302(line=130, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3196(line=126, offs=24) -- 3201(line=126, offs=29)
+*/
+ATSINSmove(tmp150, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3191(line=126, offs=19) -- 3209(line=126, offs=37)
+*/
+ATSINSmove(tmp149, loop_70(tmp150, arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3255(line=127, offs=46) -- 3264(line=127, offs=55)
+*/
+ATSINSmove(tmp156, totient_61(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3247(line=127, offs=38) -- 3266(line=127, offs=57)
+*/
+ATSINSmove(tmp155, witness_0(tmp156)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3228(line=127, offs=19) -- 3267(line=127, offs=58)
+*/
+ATSINSmove(tmpret145, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__72__1(tmp149, tmp155)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3169(line=125, offs=9) -- 3302(line=130, offs=12)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3322(line=132, offs=9) -- 3353(line=132, offs=40)
+*/
+ATSINSmove(tmp165, totient_61(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3322(line=132, offs=9) -- 3353(line=132, offs=40)
+*/
+ATSINSmove(tmp164, witness_0(tmp165)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3322(line=132, offs=9) -- 3353(line=132, offs=40)
+*/
+ATSINSmove(tmpret145, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__74__1(tmp164)) ;
+
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret145) ;
+/*
+emit_funent_fnxbodylst:
+*/
+} /* end of [loop_70] */
+
+/*
+/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$22$2(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__22__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret31__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp32__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): 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(tmp32__2, 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(tmpret31__2, atspre_g1int_lt_int(arg0, tmp32__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret31__2) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__22__2] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5151(line=274, offs=3) -- 5217(line=279, offs=2)
+*/
+/*
+local: 
+global: add_intinf0_int$72$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__72(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret151, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp152) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5133(line=273, offs=1) -- 5217(line=279, offs=2)
+*/
+ATSINSflab(__patsflab_add_intinf0_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5184(line=277, offs=10) -- 5212(line=277, offs=38)
+*/
+ATSINSmove_void(tmp152, atscntrb_gmp_mpz_add2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5161(line=274, offs=13) -- 5162(line=274, offs=14)
+*/
+ATSINSmove(tmpret151, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret151) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__72] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5151(line=274, offs=3) -- 5217(line=279, offs=2)
+*/
+/*
+local: 
+global: add_intinf0_int$72$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__72__1(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret151__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp152__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5133(line=273, offs=1) -- 5217(line=279, offs=2)
+*/
+ATSINSflab(__patsflab_add_intinf0_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5184(line=277, offs=10) -- 5212(line=277, offs=38)
+*/
+ATSINSmove_void(tmp152__1, atscntrb_gmp_mpz_add2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5161(line=274, offs=13) -- 5162(line=274, offs=14)
+*/
+ATSINSmove(tmpret151__1, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret151__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__72__1] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$74$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__74(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret157, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp158, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp159) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2191(line=73, offs=1) -- 2301(line=80, offs=2)
+*/
+ATSINSflab(__patsflab_intinf_make_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp158, PMVtmpltcst(ptr_alloc<S2Ecst(mpz_vt0ype)>)()) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp159, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp158, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret157, tmp158) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret157) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__74] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$74$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__74__1(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret157__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp158__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp159__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2191(line=73, offs=1) -- 2301(line=80, offs=2)
+*/
+ATSINSflab(__patsflab_intinf_make_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp158__1, ATSLIB_056_prelude__ptr_alloc__2__2()) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp159__1, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp158__1, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret157__1, tmp158__1) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret157__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__74__1] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$2$2(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4806)
+tmparg = S2Evar(a(4806))
+tmpsub = Some(a(4806) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__2__2()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret3__2, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3708(line=184, offs=1) -- 3749(line=184, offs=42)
+*/
+ATSINSflab(__patsflab_ptr_alloc):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret3__2, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret3__2) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__2__2] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 491(line=26, offs=28) -- 513(line=27, offs=17)
+*/
+/*
+local: sum_divisors_51$0(level=0)
+global: sum_divisors_51$0(level=0), sum_divisors_ats$77$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+sum_divisors_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret166, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 474(line=26, offs=11) -- 514(line=27, offs=18)
+*/
+ATSINSflab(__patsflab_sum_divisors_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 499(line=27, offs=3) -- 513(line=27, offs=17)
+*/
+ATSINSmove(tmpret166, sum_divisors_51(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret166) ;
+} /* end of [sum_divisors_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 545(line=29, offs=30) -- 569(line=30, offs=19)
+*/
+/*
+local: count_divisors_46$0(level=0)
+global: count_divisors_46$0(level=0), count_divisors_ats$78$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+count_divisors_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret167, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 526(line=29, offs=11) -- 570(line=30, offs=20)
+*/
+ATSINSflab(__patsflab_count_divisors_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 553(line=30, offs=3) -- 569(line=30, offs=19)
+*/
+ATSINSmove(tmpret167, count_divisors_46(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret167) ;
+} /* end of [count_divisors_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 594(line=32, offs=23) -- 611(line=33, offs=12)
+*/
+/*
+local: totient_61$0(level=0)
+global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), totient_61$0(level=0), totient_ats$79$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+totient_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret168, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 582(line=32, offs=11) -- 612(line=33, offs=13)
+*/
+ATSINSflab(__patsflab_totient_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 602(line=33, offs=3) -- 611(line=33, offs=12)
+*/
+ATSINSmove(tmpret168, totient_61(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret168) ;
+} /* end of [totient_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 641(line=35, offs=28) -- 663(line=36, offs=17)
+*/
+/*
+local: little_omega_57$0(level=0)
+global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), little_omega_57$0(level=0), little_omega_ats$80$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+little_omega_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret169, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 624(line=35, offs=11) -- 664(line=36, offs=18)
+*/
+ATSINSflab(__patsflab_little_omega_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 649(line=36, offs=3) -- 663(line=36, offs=17)
+*/
+ATSINSmove(tmpret169, little_omega_57(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret169) ;
+} /* end of [little_omega_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 691(line=38, offs=26) -- 711(line=39, offs=15)
+*/
+/*
+local: is_perfect_55$0(level=0)
+global: sum_divisors_51$0(level=0), is_perfect_55$0(level=0), is_perfect_ats$81$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_bool)
+is_perfect_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret170, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 676(line=38, offs=11) -- 712(line=39, offs=16)
+*/
+ATSINSflab(__patsflab_is_perfect_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 699(line=39, offs=3) -- 711(line=39, offs=15)
+*/
+ATSINSmove(tmpret170, is_perfect_55(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret170) ;
 } /* end of [is_perfect_ats] */
 
 /*
diff --git a/cbits/numerics.c b/cbits/numerics.c
--- a/cbits/numerics.c
+++ b/cbits/numerics.c
@@ -1,7 +1,7 @@
 /*
 **
 ** The C code is generated by [ATS/Postiats-0-3-8]
-** The starting compilation time is: 2018-1-9: 23h:38m
+** The starting compilation time is: 2018-1-10:  0h:16m
 **
 */
 
@@ -305,6 +305,14 @@
 /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
 */
 /*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1233(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-libgmp/CATS/gmp.cats"
+//
+/*
 /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
 */
 /*
@@ -390,6 +398,11 @@
 /*
 dyncstlst-declaration(beg)
 */
+ATSdyncst_mac(atspre_ptr_alloc_tsz)
+ATSdyncst_mac(atspre_g0int2uint_int_ulint)
+ATSdyncst_mac(atspre_g1int_add_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_init)
+ATSdyncst_mac(atscntrb_gmp_mpz_fib_uint)
 ATSdyncst_mac(atspre_g1int2int_int_int)
 ATSdyncst_mac(atspre_g1int_gt_int)
 ATSdyncst_mac(atspre_g1int_half_int)
@@ -401,7 +414,6 @@
 ATSdyncst_mac(atslib_libats_libc_sqrt_float)
 ATSdyncst_mac(atspre_g0int2float_int_float)
 ATSdyncst_mac(atspre_g1int_lt_int)
-ATSdyncst_mac(atspre_g1int_add_int)
 ATSdyncst_mac(atspre_g1int_eq_int)
 /*
 dyncstlst-declaration(end)
@@ -445,76 +457,92 @@
 witness_0(atstkind_t0ype(atstype_int)) ;
 
 ATSstatic()
+atstkind_type(atstype_ptrk)
+fib_gmp_1(atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__2() ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__2__1() ;
+
+ATSstatic()
 atstkind_t0ype(atstype_int)
-exp_1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+exp_5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
 
 #if(0)
 #if(0)
 ATSextern()
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__2(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
+ATSLIB_056_prelude__gt_g1int_int__6(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__2__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+ATSLIB_056_prelude__gt_g1int_int__6__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
 
 #if(0)
 #if(0)
 ATSextern()
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__8(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
+ATSLIB_056_prelude__eq_g0int_int__12(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__8__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+ATSLIB_056_prelude__eq_g0int_int__12__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
 
 ATSstatic()
 atstkind_t0ype(atstype_int)
-sqrt_int_13(atstkind_t0ype(atstype_int)) ;
+sqrt_int_17(atstkind_t0ype(atstype_int)) ;
 
 ATSstatic()
 atstkind_t0ype(atstype_bool)
-is_prime_16(atstkind_t0ype(atstype_int)) ;
+is_prime_20(atstkind_t0ype(atstype_int)) ;
 
 ATSstatic()
 atstkind_t0ype(atstype_bool)
-loop_17(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+loop_21(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__18(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
+ATSLIB_056_prelude__lt_g1int_int__22(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__18__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+ATSLIB_056_prelude__lt_g1int_int__22__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
 
 ATSstatic()
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__8__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+ATSLIB_056_prelude__eq_g0int_int__12__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)) ;
+ATSLIB_056_prelude__eq_g1int_int__26(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)) ;
+ATSLIB_056_prelude__eq_g1int_int__26__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
 
 ATSstatic()
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__8__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+ATSLIB_056_prelude__eq_g0int_int__12__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
 
 #if(0)
 ATSextern()
@@ -528,8 +556,14 @@
 exp_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
 #endif // end of [QUALIFIED]
 
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+fib_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 256(line=10, offs=4) -- 311(line=11, offs=14)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 305(line=11, offs=4) -- 360(line=12, offs=14)
 */
 /*
 local: 
@@ -546,11 +580,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 256(line=10, offs=4) -- 311(line=11, offs=14)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 305(line=11, offs=4) -- 360(line=12, offs=14)
 */
 ATSINSflab(__patsflab_witness_0):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 300(line=11, offs=3) -- 310(line=11, offs=13)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 349(line=12, offs=3) -- 359(line=12, offs=13)
 */
 ATSINSmove(tmpret0, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), arg0)) ;
 ATSfunbody_end()
@@ -558,36 +592,183 @@
 } /* end of [witness_0] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 389(line=14, offs=5) -- 826(line=35, offs=10)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 425(line=15, offs=5) -- 644(line=23, offs=6)
 */
 /*
-local: exp_1$0(level=0)
-global: exp_1$0(level=0)
 local: 
+global: fib_gmp_1$0(level=0)
+local: 
 global: 
 */
 ATSstatic()
+atstkind_type(atstype_ptrk)
+fib_gmp_1(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp2, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp5, atstkind_t0ype(atstype_ulint)) ;
+ATStmpdec(tmp6, atstkind_t0ype(atstype_int)) ;
+// ATStmpdec_void(tmp7) ;
+// ATStmpdec_void(tmp8) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 425(line=15, offs=5) -- 644(line=23, offs=6)
+*/
+ATSINSflab(__patsflab_fib_gmp_1):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 461(line=16, offs=3) -- 644(line=23, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 477(line=17, offs=13) -- 488(line=17, offs=24)
+*/
+ATSINSmove(tmp2, ATSLIB_056_prelude__ptr_alloc__2__1()) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 529(line=18, offs=41) -- 534(line=18, offs=46)
+*/
+ATSINSmove(tmp6, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 508(line=18, offs=20) -- 535(line=18, offs=47)
+*/
+ATSINSmove(tmp5, atspre_g0int2uint_int_ulint(tmp6)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 549(line=19, offs=14) -- 570(line=19, offs=35)
+*/
+ATSINSmove_void(tmp7, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp2, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 584(line=20, offs=14) -- 612(line=20, offs=42)
+*/
+ATSINSmove_void(tmp8, atscntrb_gmp_mpz_fib_uint(ATSPMVrefarg1(ATSSELrecsin(tmp2, atstkind_type(atstype_ptrk), atslab__2)), tmp5)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 622(line=22, offs=5) -- 637(line=22, offs=20)
+*/
+ATSINSmove(tmpret1, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp2)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 461(line=16, offs=3) -- 644(line=23, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret1) ;
+} /* end of [fib_gmp_1] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$2$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = a(4806)
+tmparg = S2Evar(a(4806))
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__2()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret3, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3708(line=184, offs=1) -- 3749(line=184, offs=42)
+*/
+ATSINSflab(__patsflab_ptr_alloc):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret3, atspre_ptr_alloc_tsz(ATSPMVsizeof(atstyvar_type(a)))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret3) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__2] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$2$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4806)
+tmparg = S2Evar(a(4806))
+tmpsub = Some(a(4806) -> S2EVar(5569))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__2__1()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret3__1, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3708(line=184, offs=1) -- 3749(line=184, offs=42)
+*/
+ATSINSflab(__patsflab_ptr_alloc):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret3__1, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret3__1) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__2__1] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 722(line=26, offs=5) -- 1159(line=47, offs=10)
+*/
+/*
+local: exp_5$0(level=0)
+global: exp_5$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
 atstkind_t0ype(atstype_int)
-exp_1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+exp_5(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(tmpret1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmpref7, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref8, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp9, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp14, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp15, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret9, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp10, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpref15, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref16, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp17, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp22, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp23, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 389(line=14, offs=5) -- 826(line=35, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 722(line=26, offs=5) -- 1159(line=47, offs=10)
 */
-ATSINSflab(__patsflab_exp_1):
+ATSINSflab(__patsflab_exp_5):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 441(line=15, offs=3) -- 826(line=35, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 774(line=27, offs=3) -- 1159(line=47, offs=10)
 */
 ATScaseof_beg()
 /*
@@ -595,15 +776,15 @@
 */
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 458(line=16, offs=7) -- 459(line=16, offs=8)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 791(line=28, offs=7) -- 792(line=28, offs=8)
 */
 ATSINSlab(__atstmplab0):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 410(line=14, offs=26) -- 411(line=14, offs=27)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 743(line=26, offs=26) -- 744(line=26, offs=27)
 */
 ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 459(line=16, offs=8) -- 459(line=16, offs=8)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 792(line=28, offs=8) -- 792(line=28, offs=8)
 */
 ATSINSlab(__atstmplab1):
 /*
@@ -613,14 +794,14 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 463(line=16, offs=12) -- 464(line=16, offs=13)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 796(line=28, offs=12) -- 797(line=28, offs=13)
 */
-ATSINSmove(tmpret1, ATSPMVi0nt(0)) ;
+ATSINSmove(tmpret9, ATSPMVi0nt(0)) ;
 ATSbranch_end()
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 472(line=17, offs=8) -- 472(line=17, offs=8)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 805(line=29, offs=8) -- 805(line=29, offs=8)
 */
 ATSINSlab(__atstmplab2):
 /*
@@ -630,78 +811,78 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 501(line=19, offs=12) -- 506(line=19, offs=17)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 834(line=31, offs=12) -- 839(line=31, offs=17)
 */
-ATSINSmove(tmp2, ATSLIB_056_prelude__gt_g1int_int__2__1(arg1, ATSPMVi0nt(0))) ;
+ATSINSmove(tmp10, ATSLIB_056_prelude__gt_g1int_int__6__1(arg1, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 498(line=19, offs=9) -- 816(line=34, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 831(line=31, offs=9) -- 1149(line=46, offs=12)
 */
 ATSif(
-tmp2
+tmp10
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 522(line=20, offs=11) -- 791(line=32, offs=14)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 855(line=32, offs=11) -- 1124(line=44, offs=14)
 */
 /*
 letpush(beg)
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 542(line=21, offs=17) -- 544(line=21, offs=19)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 875(line=33, offs=17) -- 877(line=33, offs=19)
 */
 /*
-ATSINStmpdec(tmpref7) ;
+ATSINStmpdec(tmpref15) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 547(line=21, offs=22) -- 553(line=21, offs=28)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 880(line=33, offs=22) -- 886(line=33, offs=28)
 */
-ATSINSmove(tmpref7, atspre_g1int_half_int(arg1)) ;
+ATSINSmove(tmpref15, atspre_g1int_half_int(arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 571(line=22, offs=17) -- 573(line=22, offs=19)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 904(line=34, offs=17) -- 906(line=34, offs=19)
 */
 /*
-ATSINStmpdec(tmpref8) ;
+ATSINStmpdec(tmpref16) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 576(line=22, offs=22) -- 581(line=22, offs=27)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 909(line=34, offs=22) -- 914(line=34, offs=27)
 */
-ATSINSmove(tmpref8, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;
+ATSINSmove(tmpref16, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;
 
 /*
 letpush(end)
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 610(line=24, offs=16) -- 616(line=24, offs=22)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 943(line=36, offs=16) -- 949(line=36, offs=22)
 */
-ATSINSmove(tmp9, ATSLIB_056_prelude__eq_g0int_int__8__1(tmpref8, ATSPMVi0nt(0))) ;
+ATSINSmove(tmp17, ATSLIB_056_prelude__eq_g0int_int__12__1(tmpref16, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 607(line=24, offs=13) -- 777(line=31, offs=18)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 940(line=36, offs=13) -- 1110(line=43, offs=18)
 */
 ATSif(
-tmp9
+tmp17
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 640(line=25, offs=19) -- 645(line=25, offs=24)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 973(line=37, offs=19) -- 978(line=37, offs=24)
 */
-ATSINSmove(tmp14, atspre_g0int_mul_int(arg0, arg0)) ;
+ATSINSmove(tmp22, atspre_g0int_mul_int(arg0, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 636(line=25, offs=15) -- 650(line=25, offs=29)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 969(line=37, offs=15) -- 983(line=37, offs=29)
 */
 ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp14) ;
-ATSINSmove_tlcal(apy1, tmpref7) ;
+ATSINSmove_tlcal(apy0, tmp22) ;
+ATSINSmove_tlcal(apy1, tmpref15) ;
 ATSINSargmove_tlcal(arg0, apy0) ;
 ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_exp_1) ;
+ATSINSfgoto(__patsflab_exp_5) ;
 ATStailcal_end()
 
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 682(line=27, offs=15) -- 777(line=31, offs=18)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1015(line=39, offs=15) -- 1110(line=43, offs=18)
 */
 /*
 letpush(beg)
@@ -711,39 +892,39 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 714(line=28, offs=29) -- 719(line=28, offs=34)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1047(line=40, offs=29) -- 1052(line=40, offs=34)
 */
-ATSINSmove(tmp15, atspre_g0int_mul_int(arg0, arg0)) ;
+ATSINSmove(tmp23, atspre_g0int_mul_int(arg0, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 710(line=28, offs=25) -- 724(line=28, offs=39)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1043(line=40, offs=25) -- 1057(line=40, offs=39)
 */
 ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp15) ;
-ATSINSmove_tlcal(apy1, tmpref7) ;
+ATSINSmove_tlcal(apy0, tmp23) ;
+ATSINSmove_tlcal(apy1, tmpref15) ;
 ATSINSargmove_tlcal(arg0, apy0) ;
 ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_exp_1) ;
+ATSINSfgoto(__patsflab_exp_5) ;
 ATStailcal_end()
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 682(line=27, offs=15) -- 777(line=31, offs=18)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1015(line=39, offs=15) -- 1110(line=43, offs=18)
 */
 /*
 INSletpop()
 */
 } /* ATSendif */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 522(line=20, offs=11) -- 791(line=32, offs=14)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 855(line=32, offs=11) -- 1124(line=44, offs=14)
 */
 /*
 INSletpop()
 */
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 815(line=34, offs=11) -- 816(line=34, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1148(line=46, offs=11) -- 1149(line=46, offs=12)
 */
-ATSINSmove(tmpret1, ATSPMVi0nt(1)) ;
+ATSINSmove(tmpret9, ATSPMVi0nt(1)) ;
 } /* ATSendif */
 ATSbranch_end()
 
@@ -753,8 +934,8 @@
 ATScaseof_end()
 
 ATSfunbody_end()
-ATSreturn(tmpret1) ;
-} /* end of [exp_1] */
+ATSreturn(tmpret9) ;
+} /* end of [exp_5] */
 
 #if(0)
 /*
@@ -762,7 +943,7 @@
 */
 /*
 local: 
-global: gt_g1int_int$2$0(level=0)
+global: gt_g1int_int$6$0(level=0)
 local: 
 global: 
 */
@@ -773,11 +954,11 @@
 tmpsub = None()
 */
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__2(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+ATSLIB_056_prelude__gt_g1int_int__6(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp4, atstkind_t0ype(atstyvar_type(tk))) ;
+ATStmpdec(tmpret11, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp12, atstkind_t0ype(atstyvar_type(tk))) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -787,16 +968,16 @@
 /*
 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(tmp4, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4703))>)(arg1)) ;
+ATSINSmove(tmp12, 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(tmpret3, PMVtmpltcst(g1int_gt<S2Evar(tk(4703))>)(arg0, tmp4)) ;
+ATSINSmove(tmpret11, PMVtmpltcst(g1int_gt<S2Evar(tk(4703))>)(arg0, tmp12)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret3) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__2] */
+ATSreturn(tmpret11) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__6] */
 #endif // end of [TEMPLATE]
 
 /*
@@ -804,7 +985,7 @@
 */
 /*
 local: 
-global: gt_g1int_int$2$1(level=1)
+global: gt_g1int_int$6$1(level=1)
 local: 
 global: 
 */
@@ -815,11 +996,11 @@
 tmpsub = Some(tk(4703) -> S2Eextkind(atstype_int))
 */
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__2__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+ATSLIB_056_prelude__gt_g1int_int__6__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret3__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp4__1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret11__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp12__1, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -829,16 +1010,16 @@
 /*
 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(tmp4__1, atspre_g1int2int_int_int(arg1)) ;
+ATSINSmove(tmp12__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(tmpret3__1, atspre_g1int_gt_int(arg0, tmp4__1)) ;
+ATSINSmove(tmpret11__1, atspre_g1int_gt_int(arg0, tmp12__1)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret3__1) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__2__1] */
+ATSreturn(tmpret11__1) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__1] */
 
 #if(0)
 /*
@@ -846,7 +1027,7 @@
 */
 /*
 local: 
-global: eq_g0int_int$8$0(level=0)
+global: eq_g0int_int$12$0(level=0)
 local: 
 global: 
 */
@@ -857,11 +1038,11 @@
 tmpsub = None()
 */
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__8(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+ATSLIB_056_prelude__eq_g0int_int__12(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret10, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11, atstkind_t0ype(atstyvar_type(tk))) ;
+ATStmpdec(tmpret18, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19, atstkind_t0ype(atstyvar_type(tk))) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -871,16 +1052,16 @@
 /*
 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(tmp11, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4694))>)(arg1)) ;
+ATSINSmove(tmp19, 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(tmpret10, PMVtmpltcst(g0int_eq<S2Evar(tk(4694))>)(arg0, tmp11)) ;
+ATSINSmove(tmpret18, PMVtmpltcst(g0int_eq<S2Evar(tk(4694))>)(arg0, tmp19)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret10) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__8] */
+ATSreturn(tmpret18) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12] */
 #endif // end of [TEMPLATE]
 
 /*
@@ -888,7 +1069,7 @@
 */
 /*
 local: 
-global: eq_g0int_int$8$1(level=1)
+global: eq_g0int_int$12$1(level=1)
 local: 
 global: 
 */
@@ -899,11 +1080,11 @@
 tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
 */
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__8__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+ATSLIB_056_prelude__eq_g0int_int__12__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret18__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__1, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -913,111 +1094,111 @@
 /*
 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(tmp11__1, atspre_g0int2int_int_int(arg1)) ;
+ATSINSmove(tmp19__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(tmpret10__1, atspre_g0int_eq_int(arg0, tmp11__1)) ;
+ATSINSmove(tmpret18__1, atspre_g0int_eq_int(arg0, tmp19__1)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret10__1) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__1] */
+ATSreturn(tmpret18__1) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__1] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 831(line=37, offs=4) -- 975(line=42, offs=6)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1164(line=49, offs=4) -- 1308(line=54, offs=6)
 */
 /*
 local: witness_0$0(level=0)
-global: witness_0$0(level=0), sqrt_int_13$0(level=0)
+global: witness_0$0(level=0), sqrt_int_17$0(level=0)
 local: 
 global: 
 */
 ATSstatic()
 atstkind_t0ype(atstype_int)
-sqrt_int_13(atstkind_t0ype(atstype_int) arg0)
+sqrt_int_17(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(tmpret24, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref25, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp26, atstkind_t0ype(atstype_float)) ;
+ATStmpdec(tmp27, atstkind_t0ype(atstype_float)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 831(line=37, offs=4) -- 975(line=42, offs=6)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1164(line=49, offs=4) -- 1308(line=54, offs=6)
 */
-ATSINSflab(__patsflab_sqrt_int_13):
+ATSINSflab(__patsflab_sqrt_int_17):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 881(line=38, offs=3) -- 975(line=42, offs=6)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1214(line=50, offs=3) -- 1308(line=54, offs=6)
 */
 /*
 letpush(beg)
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 893(line=39, offs=9) -- 898(line=39, offs=14)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1226(line=51, offs=9) -- 1231(line=51, offs=14)
 */
 /*
-ATSINStmpdec(tmpref17) ;
+ATSINStmpdec(tmpref25) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 929(line=39, offs=45) -- 942(line=39, offs=58)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1262(line=51, offs=45) -- 1275(line=51, offs=58)
 */
-ATSINSmove(tmp19, atspre_g0int2float_int_float(arg0)) ;
+ATSINSmove(tmp27, atspre_g0int2float_int_float(arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 918(line=39, offs=34) -- 944(line=39, offs=60)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1251(line=51, offs=34) -- 1277(line=51, offs=60)
 */
-ATSINSmove(tmp18, atslib_libats_libc_sqrt_float(tmp19)) ;
+ATSINSmove(tmp26, atslib_libats_libc_sqrt_float(tmp27)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 906(line=39, offs=22) -- 945(line=39, offs=61)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1239(line=51, offs=22) -- 1278(line=51, offs=61)
 */
-ATSINSmove(tmpref17, atspre_g0float2int_float_int(tmp18)) ;
+ATSINSmove(tmpref25, atspre_g0float2int_float_int(tmp26)) ;
 
 /*
 letpush(end)
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 955(line=41, offs=5) -- 968(line=41, offs=18)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1288(line=53, offs=5) -- 1301(line=53, offs=18)
 */
-ATSINSmove(tmpret16, witness_0(tmpref17)) ;
+ATSINSmove(tmpret24, witness_0(tmpref25)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 881(line=38, offs=3) -- 975(line=42, offs=6)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1214(line=50, offs=3) -- 1308(line=54, offs=6)
 */
 /*
 INSletpop()
 */
 ATSfunbody_end()
-ATSreturn(tmpret16) ;
-} /* end of [sqrt_int_13] */
+ATSreturn(tmpret24) ;
+} /* end of [sqrt_int_17] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1011(line=45, offs=4) -- 1596(line=68, offs=10)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1344(line=57, offs=4) -- 1929(line=80, offs=10)
 */
 /*
-local: sqrt_int_13$0(level=0)
-global: witness_0$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0)
+local: sqrt_int_17$0(level=0)
+global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0)
 local: 
 global: 
 */
 ATSstatic()
 atstkind_t0ype(atstype_bool)
-is_prime_16(atstkind_t0ype(atstype_int) arg0)
+is_prime_20(atstkind_t0ype(atstype_int) arg0)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret20, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp41, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret28, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp49, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1011(line=45, offs=4) -- 1596(line=68, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1344(line=57, offs=4) -- 1929(line=80, offs=10)
 */
-ATSINSflab(__patsflab_is_prime_16):
+ATSINSflab(__patsflab_is_prime_20):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1047(line=46, offs=3) -- 1596(line=68, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1380(line=58, offs=3) -- 1929(line=80, offs=10)
 */
 ATScaseof_beg()
 /*
@@ -1025,15 +1206,15 @@
 */
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1064(line=47, offs=7) -- 1065(line=47, offs=8)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1397(line=59, offs=7) -- 1398(line=59, offs=8)
 */
 ATSINSlab(__atstmplab3):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1020(line=45, offs=13) -- 1021(line=45, offs=14)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1353(line=57, offs=13) -- 1354(line=57, offs=14)
 */
 ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab5) ; } ;
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1065(line=47, offs=8) -- 1065(line=47, offs=8)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1398(line=59, offs=8) -- 1398(line=59, offs=8)
 */
 ATSINSlab(__atstmplab4):
 /*
@@ -1043,14 +1224,14 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1069(line=47, offs=12) -- 1074(line=47, offs=17)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1402(line=59, offs=12) -- 1407(line=59, offs=17)
 */
-ATSINSmove(tmpret20, ATSPMVbool_false()) ;
+ATSINSmove(tmpret28, ATSPMVbool_false()) ;
 ATSbranch_end()
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1082(line=48, offs=8) -- 1082(line=48, offs=8)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1415(line=60, offs=8) -- 1415(line=60, offs=8)
 */
 ATSINSlab(__atstmplab5):
 /*
@@ -1060,7 +1241,7 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1107(line=50, offs=9) -- 1586(line=67, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1440(line=62, offs=9) -- 1919(line=79, offs=12)
 */
 /*
 letpush(beg)
@@ -1070,17 +1251,17 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1562(line=66, offs=19) -- 1572(line=66, offs=29)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1895(line=78, offs=19) -- 1905(line=78, offs=29)
 */
-ATSINSmove(tmp41, sqrt_int_13(arg0)) ;
+ATSINSmove(tmp49, sqrt_int_17(arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1554(line=66, offs=11) -- 1574(line=66, offs=31)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1887(line=78, offs=11) -- 1907(line=78, offs=31)
 */
-ATSINSmove(tmpret20, loop_17(arg0, ATSPMVi0nt(2), tmp41)) ;
+ATSINSmove(tmpret28, loop_21(arg0, ATSPMVi0nt(2), tmp49)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1107(line=50, offs=9) -- 1586(line=67, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1440(line=62, offs=9) -- 1919(line=79, offs=12)
 */
 /*
 INSletpop()
@@ -1093,142 +1274,142 @@
 ATScaseof_end()
 
 ATSfunbody_end()
-ATSreturn(tmpret20) ;
-} /* end of [is_prime_16] */
+ATSreturn(tmpret28) ;
+} /* end of [is_prime_20] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1125(line=51, offs=15) -- 1532(line=64, offs=21)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1458(line=63, offs=15) -- 1865(line=76, offs=21)
 */
 /*
-local: loop_17$0(level=1)
-global: loop_17$0(level=1)
-local: k$5102(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: k$5102(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+local: loop_21$0(level=1)
+global: loop_21$0(level=1)
+local: k$5106(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: k$5106(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
 */
 ATSstatic()
 atstkind_t0ype(atstype_bool)
-loop_17(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+loop_21(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(tmpret21, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp22, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp27, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp30, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp31, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp32, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp37, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp40, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret29, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp30, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp35, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp38, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp39, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp40, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp45, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp48, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 /*
 emit_funent_fnxdeclst:
 */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1125(line=51, offs=15) -- 1532(line=64, offs=21)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1458(line=63, offs=15) -- 1865(line=76, offs=21)
 */
-ATSINSflab(__patsflab_loop_17):
+ATSINSflab(__patsflab_loop_21):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1219(line=52, offs=16) -- 1228(line=52, offs=25)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1552(line=64, offs=16) -- 1561(line=64, offs=25)
 */
-ATSINSmove(tmp22, ATSLIB_056_prelude__lt_g1int_int__18__1(arg0, arg1)) ;
+ATSINSmove(tmp30, ATSLIB_056_prelude__lt_g1int_int__22__1(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1216(line=52, offs=13) -- 1532(line=64, offs=21)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1549(line=64, offs=13) -- 1865(line=76, offs=21)
 */
 ATSif(
-tmp22
+tmp30
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1251(line=53, offs=18) -- 1256(line=53, offs=23)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1584(line=65, offs=18) -- 1589(line=65, offs=23)
 */
-ATSINSmove(tmp30, atspre_g0int_mod_int(env0, arg0)) ;
+ATSINSmove(tmp38, atspre_g0int_mod_int(env0, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1251(line=53, offs=18) -- 1260(line=53, offs=27)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1584(line=65, offs=18) -- 1593(line=65, offs=27)
 */
-ATSINSmove(tmp27, ATSLIB_056_prelude__eq_g0int_int__8__2(tmp30, ATSPMVi0nt(0))) ;
+ATSINSmove(tmp35, ATSLIB_056_prelude__eq_g0int_int__12__2(tmp38, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1248(line=53, offs=15) -- 1341(line=56, offs=35)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1581(line=65, offs=15) -- 1674(line=68, offs=35)
 */
 ATSif(
-tmp27
+tmp35
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1282(line=54, offs=17) -- 1287(line=54, offs=22)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1615(line=66, offs=17) -- 1620(line=66, offs=22)
 */
-ATSINSmove(tmpret21, ATSPMVbool_false()) ;
+ATSINSmove(tmpret29, ATSPMVbool_false()) ;
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1328(line=56, offs=22) -- 1333(line=56, offs=27)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1661(line=68, offs=22) -- 1666(line=68, offs=27)
 */
-ATSINSmove(tmp31, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+ATSINSmove(tmp39, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1323(line=56, offs=17) -- 1341(line=56, offs=35)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1656(line=68, offs=17) -- 1674(line=68, offs=35)
 */
 ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp31) ;
+ATSINSmove_tlcal(apy0, tmp39) ;
 ATSINSmove_tlcal(apy1, arg1) ;
 ATSINSargmove_tlcal(arg0, apy0) ;
 ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_17) ;
+ATSINSfgoto(__patsflab_loop_21) ;
 ATStailcal_end()
 
 } /* ATSendif */
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1376(line=58, offs=18) -- 1385(line=58, offs=27)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1709(line=70, offs=18) -- 1718(line=70, offs=27)
 */
-ATSINSmove(tmp32, ATSLIB_056_prelude__eq_g1int_int__23__1(arg0, arg1)) ;
+ATSINSmove(tmp40, ATSLIB_056_prelude__eq_g1int_int__26__1(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1373(line=58, offs=15) -- 1532(line=64, offs=21)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1706(line=70, offs=15) -- 1865(line=76, offs=21)
 */
 ATSif(
-tmp32
+tmp40
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1410(line=59, offs=20) -- 1415(line=59, offs=25)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1743(line=71, offs=20) -- 1748(line=71, offs=25)
 */
-ATSINSmove(tmp40, atspre_g0int_mod_int(env0, arg0)) ;
+ATSINSmove(tmp48, atspre_g0int_mod_int(env0, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1410(line=59, offs=20) -- 1419(line=59, offs=29)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1743(line=71, offs=20) -- 1752(line=71, offs=29)
 */
-ATSINSmove(tmp37, ATSLIB_056_prelude__eq_g0int_int__8__3(tmp40, ATSPMVi0nt(0))) ;
+ATSINSmove(tmp45, ATSLIB_056_prelude__eq_g0int_int__12__3(tmp48, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1407(line=59, offs=17) -- 1492(line=62, offs=23)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1740(line=71, offs=17) -- 1825(line=74, offs=23)
 */
 ATSif(
-tmp37
+tmp45
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1443(line=60, offs=19) -- 1448(line=60, offs=24)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1776(line=72, offs=19) -- 1781(line=72, offs=24)
 */
-ATSINSmove(tmpret21, ATSPMVbool_false()) ;
+ATSINSmove(tmpret29, ATSPMVbool_false()) ;
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1488(line=62, offs=19) -- 1492(line=62, offs=23)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1821(line=74, offs=19) -- 1825(line=74, offs=23)
 */
-ATSINSmove(tmpret21, ATSPMVbool_true()) ;
+ATSINSmove(tmpret29, ATSPMVbool_true()) ;
 } /* ATSendif */
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1528(line=64, offs=17) -- 1532(line=64, offs=21)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1861(line=76, offs=17) -- 1865(line=76, offs=21)
 */
-ATSINSmove(tmpret21, ATSPMVbool_true()) ;
+ATSINSmove(tmpret29, ATSPMVbool_true()) ;
 } /* ATSendif */
 } /* ATSendif */
 ATSfunbody_end()
-ATSreturn(tmpret21) ;
+ATSreturn(tmpret29) ;
 /*
 emit_funent_fnxbodylst:
 */
-} /* end of [loop_17] */
+} /* end of [loop_21] */
 
 #if(0)
 /*
@@ -1236,7 +1417,7 @@
 */
 /*
 local: 
-global: lt_g1int_int$18$0(level=0)
+global: lt_g1int_int$22$0(level=0)
 local: 
 global: 
 */
@@ -1247,11 +1428,11 @@
 tmpsub = None()
 */
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__18(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+ATSLIB_056_prelude__lt_g1int_int__22(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret23, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp24, atstkind_t0ype(atstyvar_type(tk))) ;
+ATStmpdec(tmpret31, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp32, atstkind_t0ype(atstyvar_type(tk))) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1261,16 +1442,16 @@
 /*
 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(tmp24, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4697))>)(arg1)) ;
+ATSINSmove(tmp32, 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(tmpret23, PMVtmpltcst(g1int_lt<S2Evar(tk(4697))>)(arg0, tmp24)) ;
+ATSINSmove(tmpret31, PMVtmpltcst(g1int_lt<S2Evar(tk(4697))>)(arg0, tmp32)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret23) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__18] */
+ATSreturn(tmpret31) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__22] */
 #endif // end of [TEMPLATE]
 
 /*
@@ -1278,7 +1459,7 @@
 */
 /*
 local: 
-global: lt_g1int_int$18$1(level=2)
+global: lt_g1int_int$22$1(level=2)
 local: 
 global: 
 */
@@ -1289,11 +1470,11 @@
 tmpsub = Some(tk(4697) -> S2Eextkind(atstype_int))
 */
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__18__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+ATSLIB_056_prelude__lt_g1int_int__22__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret23__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp24__1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret31__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp32__1, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1303,23 +1484,23 @@
 /*
 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(tmp24__1, atspre_g1int2int_int_int(arg1)) ;
+ATSINSmove(tmp32__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(tmpret23__1, atspre_g1int_lt_int(arg0, tmp24__1)) ;
+ATSINSmove(tmpret31__1, atspre_g1int_lt_int(arg0, tmp32__1)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret23__1) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__18__1] */
+ATSreturn(tmpret31__1) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__22__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$8$2(level=2)
+global: eq_g0int_int$12$2(level=2)
 local: 
 global: 
 */
@@ -1330,11 +1511,11 @@
 tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
 */
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__8__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+ATSLIB_056_prelude__eq_g0int_int__12__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__2, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret18__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__2, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1344,16 +1525,16 @@
 /*
 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(tmp11__2, atspre_g0int2int_int_int(arg1)) ;
+ATSINSmove(tmp19__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(tmpret10__2, atspre_g0int_eq_int(arg0, tmp11__2)) ;
+ATSINSmove(tmpret18__2, atspre_g0int_eq_int(arg0, tmp19__2)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret10__2) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__2] */
+ATSreturn(tmpret18__2) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__2] */
 
 #if(0)
 /*
@@ -1361,7 +1542,7 @@
 */
 /*
 local: 
-global: eq_g1int_int$23$0(level=0)
+global: eq_g1int_int$26$0(level=0)
 local: 
 global: 
 */
@@ -1372,11 +1553,11 @@
 tmpsub = None()
 */
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__23(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+ATSLIB_056_prelude__eq_g1int_int__26(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret33, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp34, atstkind_t0ype(atstyvar_type(tk))) ;
+ATStmpdec(tmpret41, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp42, atstkind_t0ype(atstyvar_type(tk))) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1386,16 +1567,16 @@
 /*
 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(tmp34, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4709))>)(arg1)) ;
+ATSINSmove(tmp42, 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(tmpret33, PMVtmpltcst(g1int_eq<S2Evar(tk(4709))>)(arg0, tmp34)) ;
+ATSINSmove(tmpret41, PMVtmpltcst(g1int_eq<S2Evar(tk(4709))>)(arg0, tmp42)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret33) ;
-} /* end of [ATSLIB_056_prelude__eq_g1int_int__23] */
+ATSreturn(tmpret41) ;
+} /* end of [ATSLIB_056_prelude__eq_g1int_int__26] */
 #endif // end of [TEMPLATE]
 
 /*
@@ -1403,7 +1584,7 @@
 */
 /*
 local: 
-global: eq_g1int_int$23$1(level=2)
+global: eq_g1int_int$26$1(level=2)
 local: 
 global: 
 */
@@ -1414,11 +1595,11 @@
 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)
+ATSLIB_056_prelude__eq_g1int_int__26__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret33__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp34__1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret41__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp42__1, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1428,23 +1609,23 @@
 /*
 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(tmp34__1, atspre_g1int2int_int_int(arg1)) ;
+ATSINSmove(tmp42__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(tmpret33__1, atspre_g1int_eq_int(arg0, tmp34__1)) ;
+ATSINSmove(tmpret41__1, atspre_g1int_eq_int(arg0, tmp42__1)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret33__1) ;
-} /* end of [ATSLIB_056_prelude__eq_g1int_int__23__1] */
+ATSreturn(tmpret41__1) ;
+} /* end of [ATSLIB_056_prelude__eq_g1int_int__26__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$8$3(level=2)
+global: eq_g0int_int$12$3(level=2)
 local: 
 global: 
 */
@@ -1455,11 +1636,11 @@
 tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
 */
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__8__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+ATSLIB_056_prelude__eq_g0int_int__12__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret10__3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp11__3, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret18__3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__3, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1469,23 +1650,23 @@
 /*
 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(tmp11__3, atspre_g0int2int_int_int(arg1)) ;
+ATSINSmove(tmp19__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(tmpret10__3, atspre_g0int_eq_int(arg0, tmp11__3)) ;
+ATSINSmove(tmpret18__3, atspre_g0int_eq_int(arg0, tmp19__3)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret10__3) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__3] */
+ATSreturn(tmpret18__3) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__3] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 527(line=25, offs=24) -- 545(line=26, offs=13)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 437(line=21, offs=24) -- 455(line=22, offs=13)
 */
 /*
-local: is_prime_16$0(level=0)
-global: witness_0$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), is_prime_ats$27$0(level=0)
+local: is_prime_20$0(level=0)
+global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), is_prime_ats$30$0(level=0)
 local: 
 global: 
 */
@@ -1494,28 +1675,28 @@
 is_prime_ats(atstkind_t0ype(atstype_int) arg0)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret42, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpret50, atstkind_t0ype(atstype_bool)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 514(line=25, offs=11) -- 546(line=26, offs=14)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 424(line=21, offs=11) -- 456(line=22, offs=14)
 */
 ATSINSflab(__patsflab_is_prime_ats):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 535(line=26, offs=3) -- 545(line=26, offs=13)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 445(line=22, offs=3) -- 455(line=22, offs=13)
 */
-ATSINSmove(tmpret42, is_prime_16(arg0)) ;
+ATSINSmove(tmpret50, is_prime_20(arg0)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret42) ;
+ATSreturn(tmpret50) ;
 } /* end of [is_prime_ats] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 566(line=28, offs=19) -- 586(line=29, offs=12)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 476(line=24, offs=19) -- 496(line=25, offs=12)
 */
 /*
-local: exp_1$0(level=0)
-global: exp_1$0(level=0), exp_ats$28$0(level=0)
+local: exp_5$0(level=0)
+global: exp_5$0(level=0), exp_ats$31$0(level=0)
 local: 
 global: 
 */
@@ -1524,21 +1705,51 @@
 exp_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret43, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret51, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 558(line=28, offs=11) -- 586(line=29, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 468(line=24, offs=11) -- 496(line=25, offs=12)
 */
 ATSINSflab(__patsflab_exp_ats):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 577(line=29, offs=3) -- 586(line=29, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 487(line=25, offs=3) -- 496(line=25, offs=12)
 */
-ATSINSmove(tmpret43, exp_1(arg0, arg1)) ;
+ATSINSmove(tmpret51, exp_5(arg0, arg1)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret43) ;
+ATSreturn(tmpret51) ;
 } /* end of [exp_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 516(line=27, offs=19) -- 533(line=28, offs=12)
+*/
+/*
+local: fib_gmp_1$0(level=0)
+global: fib_gmp_1$0(level=0), fib_ats$32$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+fib_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret52, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 508(line=27, offs=11) -- 534(line=28, offs=13)
+*/
+ATSINSflab(__patsflab_fib_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 524(line=28, offs=3) -- 533(line=28, offs=12)
+*/
+ATSINSmove(tmpret52, fib_gmp_1(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret52) ;
+} /* end of [fib_ats] */
 
 /*
 ** for initialization(dynloading)
diff --git a/fast-arithmetic.cabal b/fast-arithmetic.cabal
--- a/fast-arithmetic.cabal
+++ b/fast-arithmetic.cabal
@@ -1,5 +1,5 @@
 name:                fast-arithmetic
-version:             0.2.2.1
+version:             0.2.2.2
 synopsis:            Fast functions on integers.
 description:         Fast functions for number theory and combinatorics with a high level of safety guaranteed by [ATS](http://www.ats-lang.org/). This package also provides a
                      'Storable' instance for GMP's @mpz@ type.
@@ -54,6 +54,7 @@
   build-depends:       base >= 4.7 && < 5
                      , composition-prelude
                      , recursion-schemes
+                     , foundation < 0.0.18
   default-language:    Haskell2010
   if flag(development)
     if impl(ghc >= 8.0)
diff --git a/shake.hs b/shake.hs
--- a/shake.hs
+++ b/shake.hs
@@ -28,7 +28,9 @@
         need ["cbits/number-theory.c", "cbits/numerics.c", "cbits/combinatorics.c"]
         cmd_ ["cabal", "new-build"]
         cmd_ ["cabal", "new-test"]
-        cmd_ ["cabal", "new-haddock"]
+        cmd_ ["cabal", "new-build", "-w", "ghc-8.0.2"]
+        cmd_ ["cabal", "new-build", "-w", "ghc-7.10.3"]
+        cmd_ ["cabal", "new-build", "-w", "ghc-7.8.4"]
         cmd_ ["hlint", "bench", "src", "test/", "Setup.hs"]
         cmd_ ["tomlcheck", "--file", ".atsfmt.toml"]
         cmd_ ["yamllint", ".travis.yml"]
@@ -36,6 +38,7 @@
         cmd_ ["yamllint", ".stylish-haskell.yaml"]
         cmd_ ["yamllint", ".yamllint"]
         cmd_ ["stack", "build", "--test", "--bench", "--no-run-tests", "--no-run-benchmarks"]
+        cmd_ ["cabal", "new-haddock"]
         cmd_ ["weeder"]
 
     "build" %> \_ -> do
diff --git a/src/Numeric/Integer.hs b/src/Numeric/Integer.hs
--- a/src/Numeric/Integer.hs
+++ b/src/Numeric/Integer.hs
@@ -8,9 +8,12 @@
 -}
 
 module Numeric.Integer ( isPrime
+                       , fibonacci
                        ) where
 
+import           Data.GMP
 import           Foreign.C
+import           Foreign.Ptr
 import           Numeric.Common
 
 #if __GLASGOW_HASKELL__ >= 820
@@ -18,6 +21,12 @@
 #else
 foreign import ccall unsafe is_prime_ats :: CInt -> CUChar
 #endif
+foreign import ccall unsafe fib_ats :: CInt -> Ptr GMPInt
+
+-- | Indexed starting at @0@. This function is slower on small values but faster
+-- on large values.
+fibonacci :: Int -> IO Integer
+fibonacci = conjugateGMP fib_ats
 
 -- | O(√n)
 isPrime :: Int -> Bool
diff --git a/src/Numeric/Pure.hs b/src/Numeric/Pure.hs
--- a/src/Numeric/Pure.hs
+++ b/src/Numeric/Pure.hs
@@ -15,6 +15,7 @@
                     , hsIsPerfect
                     , hsSumDivisors
                     , hsCatalan
+                    , hsFibonacci
                     ) where
 
 #if __GLASGOW_HASKELL__ <= 784
@@ -89,3 +90,9 @@
 
 hsChoose :: (Integral a) => a -> Int -> a
 hsChoose n k = product [ n + 1 - i | i <- [1..(fromIntegral k)] ] `div` factorial k
+
+fibs :: (Integral a) => [a]
+fibs = 1 : 1 : zipWith (+) fibs (tail fibs)
+
+hsFibonacci :: (Integral a) => Int -> a
+hsFibonacci = (fibs !!)
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -55,7 +55,7 @@
 
     -- TODO property test w/ recurrence relations?
     sequence_ $ zipWith4 check
-        ["choose 101", "doubleFactorial", "catalan"]
-        [choose 101, doubleFactorial, catalan]
-        [hsChoose 101 . fromIntegral, hsDoubleFactorial, hsCatalan . fromIntegral]
-        [16, 79, 300]
+        ["choose 101", "doubleFactorial", "catalan", "fibonacci"]
+        [choose 101, doubleFactorial, catalan, fibonacci]
+        [hsChoose 101 . fromIntegral, hsDoubleFactorial, hsCatalan . fromIntegral, hsFibonacci . fromIntegral]
+        [16, 79, 300, 121]
