diff --git a/ats-src/number-theory-ffi.dats b/ats-src/number-theory-ffi.dats
--- a/ats-src/number-theory-ffi.dats
+++ b/ats-src/number-theory-ffi.dats
@@ -20,6 +20,10 @@
   "mac#"
 
 extern
+fun jacobi_ats : (intGte(0), intGt(0)) -> int =
+  "mac#"
+
+extern
 fun is_perfect_ats : intGte(1) -> bool =
   "mac#"
 
@@ -37,3 +41,6 @@
 
 implement is_perfect_ats (n) =
   is_perfect(n)
+
+implement jacobi_ats (m, n) =
+  jacobi(m, n)
diff --git a/ats-src/number-theory.dats b/ats-src/number-theory.dats
--- a/ats-src/number-theory.dats
+++ b/ats-src/number-theory.dats
@@ -2,6 +2,7 @@
 #include "ats-src/numerics.dats"
 #include "contrib/atscntrb-hx-intinf/mylibies.hats"
 
+staload "prelude/SATS/integer.sats"
 staload UN = "prelude/SATS/unsafe.sats"
 staload "contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats"
 
@@ -9,9 +10,8 @@
 
 // Existential types for even and odd numbers. These are only usable with the
 // ATS library.
-typedef Even = [ n : nat ] int(2 * n)
-
-typedef Odd = [ n : nat ] int(2 * n+1)
+typedef Even = [ n : nat ] int(2*n)
+typedef Odd = [ n : nat ] int(2*n+1)
 
 // TODO jacobi symbol
 // fn legendre(a: int, p: int) : int =
@@ -44,19 +44,92 @@
     loop(n, 1)
   end
 
+// stream_vt_filter_cloptr
 // stream all prime divisors of an integer (without multiplicity)
-fn prime_divisors(n : intGte(1)) :<> stream_vt(int) =
+fn prime_divisors(n : intGte(1)) :<> stream_vt(intGte(2)) =
   let
     fun loop {k : nat}{ m : nat | m > 0 && k >= m } .<k-m>. (n : int(k), acc : int(m)) :<> stream_vt(int) =
       if acc >= n then
         $ldelay(stream_vt_cons(acc, $ldelay(stream_vt_nil)))
       else
-        if n % acc = 0 && is_prime(n) then
-          $ldelay(stream_vt_cons(n, loop(n, acc + 1)))
+        if n % acc = 0 then
+          if is_prime(n) then
+            $ldelay(stream_vt_cons(n, loop(n, acc + 1)))
+          else
+            loop(n, acc + 1)
         else
           $ldelay(stream_vt_nil)
   in
-    loop(n, 1)
+    $UN.castvwtp0(loop(n, 1))
+  end
+
+typedef gprime(tk : tk, p : int) = { m, n : nat | m < 1 && m <= n && n < p && m*n != p && p > 1 } g1int(tk, p)
+typedef prime(p : int) = gprime(int_kind, p)
+typedef Prime = [ p : nat ] prime(p)
+
+fn div_gt_zero(n : intGte(0), p : intGt(1)) : intGte(0) =
+  $UN.cast(n / p)
+
+// FIXME require that it be prime.
+fun exp_mod_prime(a : intGte(0), n : intGte(0), p : intGt(1)) : int =
+  let
+    var a1 = a % p
+    var n1 = n % (p - 1)
+  in
+    case+ a of
+      | 0 => 0
+      | x =>> 
+        begin
+          if n > 0 then
+            let
+              var n2: intGte(0) = $UN.cast(half(n1))
+              var i2 = n1 % 2
+              var sq_a: intGte(0) = $UN.cast(a * a % p)
+            in
+              if i2 = 0 then
+                exp_mod_prime(sq_a, n2, p)
+              else
+                let
+                  val y = a * exp_mod_prime(sq_a, n2, p)
+                in
+                  y
+                end
+            end
+          else
+            1
+        end
+  end
+
+// Jacobi symbol for positive integers. See here: http://mathworld.wolfram.com/JacobiSymbol.html
+fun jacobi { n : int | n > 0 } (a : intGte(0), n : int(n)) : int =
+  let
+    fun legendre { p : int | p >= 2 } (a : intGte(0), p : int(p)) : int =
+      case+ p % a of
+        | 0 => 0
+        | _ => let
+          var i = exp_mod_prime(a, (p - 1) / 2, p)
+        in
+          case+ i of
+            | i when i % (p - 1) = 0 => ~1
+            | i when i % p = 0 => 0
+            | _ => 1
+        end
+    
+    fun get_multiplicity(n : intGte(0), p : intGt(1)) : intGte(0) =
+      case+ n % p of
+        | 0 => 1 + get_multiplicity(div_gt_zero(n, p), p)
+        | _ => 0
+    
+    fun loop { m : int | m > 1 } (acc : int(m)) : int =
+      if acc > n then
+        1
+      else
+        if a % acc = 0 && is_prime(acc) then
+          loop(acc + 1) * exp(legendre(acc, n), get_multiplicity(a, acc))
+        else
+          loop(acc + 1)
+  in
+    loop(2)
   end
 
 fn count_divisors(n : intGte(1)) :<> int =
diff --git a/ats-src/numerics.dats b/ats-src/numerics.dats
--- a/ats-src/numerics.dats
+++ b/ats-src/numerics.dats
@@ -37,7 +37,7 @@
               exp(x * x, n2)
             else
               let
-                val y = exp(x * x, n2)
+                var y = x * exp(x * x, n2)
               in
                 y
               end
diff --git a/bench/Bench.hs b/bench/Bench.hs
--- a/bench/Bench.hs
+++ b/bench/Bench.hs
@@ -44,6 +44,10 @@
                       [ bench "catalan" $ nfIO (catalan 300)
                       , bench "hsCatalan" $ nf hsCatalan (300 :: Integer)
                       ]
+                , bgroup "jacobi"
+                      [ bench "jacobi" $ nf (jacobi 80) 111
+                      , bench "hsJacobi" $ nf (hsJacobi 80) (111 :: Int)
+                      ]
                 , 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-11: 12h:57m
+** The starting compilation time is: 2018-1-11: 14h: 3m
 **
 */
 
diff --git a/cbits/number-theory.c b/cbits/number-theory.c
--- a/cbits/number-theory.c
+++ b/cbits/number-theory.c
@@ -1,5124 +1,6304 @@
 /*
 **
 ** The C code is generated by [ATS/Postiats-0-3-8]
-** The starting compilation time is: 2018-1-11: 12h:57m
-**
-*/
-
-/*
-** 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: 15529(line=878, offs=1) -- 15566(line=879, 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_type(atstype_ptrk)
-prime_divisors_46(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-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()
-atstype_boxed
-__patsfun_49(atstkind_t0ype(atstype_int), atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_50(atstype_bool) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__6(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_52(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_53(atstype_bool) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-count_divisors_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__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_int)
-sum_divisors_59(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_60(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__8(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_perfect_63(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)
-little_omega_65(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_66(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)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-totient_69(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_70(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__38__6(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__11(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__74(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__74__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-totient_sum_77(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_78(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__80(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__80__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__82(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__82__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()
-ATSclosurerize_beg(__patsfun_49, (atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-atstkind_t0ype(atstype_int) env0 ;
-} __patsfun_49__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_49__cfun
-(
-__patsfun_49__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_49(p_cenv->env0, arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_49__closureinit
-(
-__patsfun_49__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0
-)
-{
-p_cenv->env0 = env0 ;
-p_cenv->cfun = __patsfun_49__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_49__closurerize
-(
-atstkind_t0ype(atstype_int) env0
-)
-{
-return __patsfun_49__closureinit(ATS_MALLOC(sizeof(__patsfun_49__closure_t0ype)), env0) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_50, (), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-} __patsfun_50__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_50__cfun
-(
-__patsfun_50__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_50(arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_50__closureinit
-(
-__patsfun_50__closure_t0ype *p_cenv
-)
-{
-p_cenv->cfun = __patsfun_50__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_50__closurerize
-(
-// argumentless
-)
-{
-return __patsfun_50__closureinit(ATS_MALLOC(sizeof(__patsfun_50__closure_t0ype))) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_52, (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_52__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_52__cfun
-(
-__patsfun_52__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_52(p_cenv->env0, p_cenv->env1, arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_52__closureinit
-(
-__patsfun_52__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_52__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_52__closurerize
-(
-atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1
-)
-{
-return __patsfun_52__closureinit(ATS_MALLOC(sizeof(__patsfun_52__closure_t0ype)), env0, env1) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_53, (), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-} __patsfun_53__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_53__cfun
-(
-__patsfun_53__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_53(arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_53__closureinit
-(
-__patsfun_53__closure_t0ype *p_cenv
-)
-{
-p_cenv->cfun = __patsfun_53__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_53__closurerize
-(
-// argumentless
-)
-{
-return __patsfun_53__closureinit(ATS_MALLOC(sizeof(__patsfun_53__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: 1288(line=48, offs=4) -- 1717(line=60, 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), prime_divisors_46$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-prime_divisors_46(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret81, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1288(line=48, offs=4) -- 1717(line=60, offs=6)
-*/
-ATSINSflab(__patsflab_prime_divisors_46):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1341(line=49, offs=3) -- 1717(line=60, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1701(line=59, offs=5) -- 1711(line=59, offs=15)
-*/
-ATSINSmove(tmpret81, loop_47(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1341(line=49, offs=3) -- 1717(line=60, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret81) ;
-} /* end of [prime_divisors_46] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1353(line=50, offs=9) -- 1691(line=57, offs=33)
-*/
-/*
-local: is_prime_20$0(level=0), loop_47$0(level=1)
-global: is_prime_20$0(level=0), loop_47$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_47(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret82, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp83, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp89, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp90, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp93, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1353(line=50, offs=9) -- 1691(line=57, offs=33)
-*/
-ATSINSflab(__patsflab_loop_47):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1462(line=51, offs=10) -- 1470(line=51, 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: 1459(line=51, offs=7) -- 1691(line=57, offs=33)
-*/
-ATSif(
-tmp83
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1484(line=52, offs=9) -- 1536(line=52, offs=61)
-*/
-ATSINSmove_ldelay(tmpret82, atstype_boxed, ATSPMVcfunlab(1, __patsfun_49, (arg1))) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1559(line=54, offs=12) -- 1584(line=54, offs=37)
-*/
-ATSINSmove(tmp93, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1559(line=54, offs=12) -- 1584(line=54, offs=37)
-*/
-ATSINSmove(tmp90, ATSLIB_056_prelude__eq_g0int_int__12__6(tmp93, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1559(line=54, offs=12) -- 1584(line=54, offs=37)
-*/
-ATSif(
-tmp90
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1559(line=54, offs=12) -- 1584(line=54, offs=37)
-*/
-ATSINSmove(tmp89, is_prime_20(arg0)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1559(line=54, offs=12) -- 1584(line=54, offs=37)
-*/
-ATSINSmove(tmp89, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1556(line=54, offs=9) -- 1691(line=57, offs=33)
-*/
-ATSif(
-tmp89
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1601(line=55, offs=11) -- 1645(line=55, offs=55)
-*/
-ATSINSmove_ldelay(tmpret82, atstype_boxed, ATSPMVcfunlab(1, __patsfun_52, (arg0, arg1))) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1669(line=57, offs=11) -- 1691(line=57, offs=33)
-*/
-ATSINSmove_ldelay(tmpret82, atstype_boxed, ATSPMVcfunlab(1, __patsfun_53, ())) ;
-} /* 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] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1484(line=52, offs=9) -- 1536(line=52, offs=61)
-*/
-/*
-local: 
-global: __patsfun_49$0(level=2)
-local: acc$5128(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: acc$5128(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_49(atstkind_t0ype(atstype_int) env0, atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret86, atstype_boxed) ;
-ATStmpdec(tmp87, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1484(line=52, offs=9) -- 1536(line=52, offs=61)
-*/
-ATSINSflab(__patsflab___patsfun_49):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1484(line=52, offs=9) -- 1536(line=52, offs=61)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1512(line=52, offs=37) -- 1534(line=52, offs=59)
-*/
-ATSINSmove_ldelay(tmp87, atstype_boxed, ATSPMVcfunlab(1, __patsfun_50, ())) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1492(line=52, offs=17) -- 1535(line=52, offs=60)
-*/
-
-/*
-#LINCONSTATUS==0
-*/
-ATSINSmove_con1_beg()
-ATSINSmove_con1_new(tmpret86, postiats_tysum_0) ;
-#if(0)
-ATSINSstore_con1_tag(tmpret86, 1) ;
-#endif
-ATSINSstore_con1_ofs(tmpret86, postiats_tysum_0, atslab__0, env0) ;
-ATSINSstore_con1_ofs(tmpret86, postiats_tysum_0, atslab__1, tmp87) ;
-ATSINSmove_con1_end()
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret86) ;
-} /* end of [__patsfun_49] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1512(line=52, offs=37) -- 1534(line=52, offs=59)
-*/
-/*
-local: 
-global: __patsfun_50$0(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_50(atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret88, atstype_boxed) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1512(line=52, offs=37) -- 1534(line=52, offs=59)
-*/
-ATSINSflab(__patsflab___patsfun_50):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1512(line=52, offs=37) -- 1534(line=52, offs=59)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1520(line=52, offs=45) -- 1533(line=52, offs=58)
-*/
-
-ATSINSmove_nil(tmpret88) ;
-
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret88) ;
-} /* end of [__patsfun_50] */
-
-/*
-/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: 1601(line=55, offs=11) -- 1645(line=55, offs=55)
-*/
-/*
-local: loop_47$0(level=1)
-global: loop_47$0(level=1), __patsfun_52$0(level=2)
-local: n$5127(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5128(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: n$5127(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5128(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_52(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret94, atstype_boxed) ;
-ATStmpdec(tmp95, atstkind_type(atstype_ptrk)) ;
-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: 1601(line=55, offs=11) -- 1645(line=55, offs=55)
-*/
-ATSINSflab(__patsflab___patsfun_52):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1601(line=55, offs=11) -- 1645(line=55, offs=55)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1635(line=55, offs=45) -- 1642(line=55, offs=52)
-*/
-ATSINSmove(tmp96, atspre_g1int_add_int(env1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1627(line=55, offs=37) -- 1643(line=55, offs=53)
-*/
-ATSINSmove(tmp95, loop_47(env0, tmp96)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1609(line=55, offs=19) -- 1644(line=55, offs=54)
-*/
-
-/*
-#LINCONSTATUS==0
-*/
-ATSINSmove_con1_beg()
-ATSINSmove_con1_new(tmpret94, postiats_tysum_0) ;
-#if(0)
-ATSINSstore_con1_tag(tmpret94, 1) ;
-#endif
-ATSINSstore_con1_ofs(tmpret94, postiats_tysum_0, atslab__0, env0) ;
-ATSINSstore_con1_ofs(tmpret94, postiats_tysum_0, atslab__1, tmp95) ;
-ATSINSmove_con1_end()
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret94) ;
-} /* end of [__patsfun_52] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1669(line=57, offs=11) -- 1691(line=57, offs=33)
-*/
-/*
-local: 
-global: __patsfun_53$0(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_53(atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret97, atstype_boxed) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1669(line=57, offs=11) -- 1691(line=57, offs=33)
-*/
-ATSINSflab(__patsflab___patsfun_53):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1669(line=57, offs=11) -- 1691(line=57, offs=33)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1677(line=57, offs=19) -- 1690(line=57, offs=32)
-*/
-
-ATSINSmove_nil(tmpret97) ;
-
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret97) ;
-} /* end of [__patsfun_53] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1722(line=62, offs=4) -- 2033(line=74, offs=6)
-*/
-/*
-local: 
-global: count_divisors_54$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-count_divisors_54(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret98, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1722(line=62, offs=4) -- 2033(line=74, offs=6)
-*/
-ATSINSflab(__patsflab_count_divisors_54):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1764(line=63, offs=3) -- 2033(line=74, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2017(line=73, offs=5) -- 2027(line=73, offs=15)
-*/
-ATSINSmove(tmpret98, loop_55(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1764(line=63, offs=3) -- 2033(line=74, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret98) ;
-} /* end of [count_divisors_54] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1776(line=64, offs=9) -- 2007(line=71, offs=27)
-*/
-/*
-local: loop_55$0(level=1)
-global: 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(tmpret99, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp100, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp103, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp106, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp107, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp108, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp109, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1776(line=64, offs=9) -- 2007(line=71, offs=27)
-*/
-ATSINSflab(__patsflab_loop_55):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1874(line=65, offs=10) -- 1882(line=65, offs=18)
-*/
-ATSINSmove(tmp100, 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: 1871(line=65, offs=7) -- 2007(line=71, offs=27)
-*/
-ATSif(
-tmp100
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1896(line=66, offs=9) -- 1897(line=66, offs=10)
-*/
-ATSINSmove(tmpret99, ATSPMVi0nt(1)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1920(line=68, offs=12) -- 1927(line=68, offs=19)
-*/
-ATSINSmove(tmp106, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1920(line=68, offs=12) -- 1931(line=68, offs=23)
-*/
-ATSINSmove(tmp103, ATSLIB_056_prelude__eq_g0int_int__12__7(tmp106, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1917(line=68, offs=9) -- 2007(line=71, offs=27)
-*/
-ATSif(
-tmp103
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1959(line=69, offs=23) -- 1966(line=69, offs=30)
-*/
-ATSINSmove(tmp108, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1951(line=69, offs=15) -- 1967(line=69, offs=31)
-*/
-ATSINSmove(tmp107, loop_55(arg0, tmp108)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1947(line=69, offs=11) -- 1967(line=69, offs=31)
-*/
-ATSINSmove(tmpret99, atspre_g0int_add_int(ATSPMVi0nt(1), tmp107)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1999(line=71, offs=19) -- 2006(line=71, offs=26)
-*/
-ATSINSmove(tmp109, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1991(line=71, offs=11) -- 2007(line=71, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg0) ;
-ATSINSmove_tlcal(apy1, tmp109) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_55) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret99) ;
-} /* 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$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: 2038(line=76, offs=4) -- 2349(line=88, offs=6)
-*/
-/*
-local: 
-global: sum_divisors_59$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-sum_divisors_59(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret110, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2038(line=76, offs=4) -- 2349(line=88, offs=6)
-*/
-ATSINSflab(__patsflab_sum_divisors_59):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2078(line=77, offs=3) -- 2349(line=88, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2333(line=87, offs=5) -- 2343(line=87, offs=15)
-*/
-ATSINSmove(tmpret110, loop_60(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2078(line=77, offs=3) -- 2349(line=88, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret110) ;
-} /* end of [sum_divisors_59] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2090(line=78, offs=9) -- 2323(line=85, offs=27)
-*/
-/*
-local: loop_60$0(level=1)
-global: loop_60$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_60(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(tmpret111, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp112, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp115, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp118, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp119, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp120, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp121, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2090(line=78, offs=9) -- 2323(line=85, offs=27)
-*/
-ATSINSflab(__patsflab_loop_60):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2188(line=79, offs=10) -- 2196(line=79, offs=18)
-*/
-ATSINSmove(tmp112, 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: 2185(line=79, offs=7) -- 2323(line=85, offs=27)
-*/
-ATSif(
-tmp112
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2210(line=80, offs=9) -- 2211(line=80, offs=10)
-*/
-ATSINSmove(tmpret111, ATSPMVi0nt(0)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2234(line=82, offs=12) -- 2241(line=82, offs=19)
-*/
-ATSINSmove(tmp118, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2234(line=82, offs=12) -- 2245(line=82, offs=23)
-*/
-ATSINSmove(tmp115, ATSLIB_056_prelude__eq_g0int_int__12__8(tmp118, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2231(line=82, offs=9) -- 2323(line=85, offs=27)
-*/
-ATSif(
-tmp115
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2275(line=83, offs=25) -- 2282(line=83, offs=32)
-*/
-ATSINSmove(tmp120, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2267(line=83, offs=17) -- 2283(line=83, offs=33)
-*/
-ATSINSmove(tmp119, loop_60(arg0, tmp120)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2261(line=83, offs=11) -- 2283(line=83, offs=33)
-*/
-ATSINSmove(tmpret111, atspre_g0int_add_int(arg1, tmp119)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2315(line=85, offs=19) -- 2322(line=85, offs=26)
-*/
-ATSINSmove(tmp121, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2307(line=85, offs=11) -- 2323(line=85, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg0) ;
-ATSINSmove_tlcal(apy1, tmp121) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_60) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret111) ;
-} /* end of [loop_60] */
-
-/*
-/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$8(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__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: 2354(line=90, offs=4) -- 2412(line=91, offs=22)
-*/
-/*
-local: sum_divisors_59$0(level=0)
-global: sum_divisors_59$0(level=0), is_perfect_63$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_perfect_63(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret122, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp125, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2354(line=90, offs=4) -- 2412(line=91, offs=22)
-*/
-ATSINSflab(__patsflab_is_perfect_63):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2393(line=91, offs=3) -- 2407(line=91, offs=17)
-*/
-ATSINSmove(tmp125, sum_divisors_59(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2393(line=91, offs=3) -- 2412(line=91, offs=22)
-*/
-ATSINSmove(tmpret122, ATSLIB_056_prelude__eq_g0int_int__12__9(tmp125, arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret122) ;
-} /* end of [is_perfect_63] */
-
-/*
-/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=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__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: 2444(line=94, offs=4) -- 2825(line=109, 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_65$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-little_omega_65(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret126, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2444(line=94, offs=4) -- 2825(line=109, offs=6)
-*/
-ATSINSflab(__patsflab_little_omega_65):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2484(line=95, offs=3) -- 2825(line=109, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2809(line=108, offs=5) -- 2819(line=108, offs=15)
-*/
-ATSINSmove(tmpret126, loop_66(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2484(line=95, offs=3) -- 2825(line=109, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret126) ;
-} /* end of [little_omega_65] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2496(line=96, offs=9) -- 2799(line=106, offs=27)
-*/
-/*
-local: is_prime_20$0(level=0), loop_66$0(level=1)
-global: is_prime_20$0(level=0), loop_66$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_66(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(tmpret127, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp128, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp131, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp132, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp133, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp136, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp137, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp138, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp139, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2496(line=96, offs=9) -- 2799(line=106, offs=27)
-*/
-ATSINSflab(__patsflab_loop_66):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2594(line=97, offs=10) -- 2602(line=97, offs=18)
-*/
-ATSINSmove(tmp128, ATSLIB_056_prelude__gte_g1int_int__38__5(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2591(line=97, offs=7) -- 2799(line=106, offs=27)
-*/
-ATSif(
-tmp128
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2619(line=98, offs=12) -- 2629(line=98, offs=22)
-*/
-ATSINSmove(tmp131, is_prime_20(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2616(line=98, offs=9) -- 2672(line=101, offs=12)
-*/
-ATSif(
-tmp131
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2646(line=99, offs=11) -- 2647(line=99, offs=12)
-*/
-ATSINSmove(tmpret127, ATSPMVi0nt(1)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2671(line=101, offs=11) -- 2672(line=101, offs=12)
-*/
-ATSINSmove(tmpret127, ATSPMVi0nt(0)) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2695(line=103, offs=12) -- 2722(line=103, offs=39)
-*/
-ATSINSmove(tmp136, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2695(line=103, offs=12) -- 2722(line=103, offs=39)
-*/
-ATSINSmove(tmp133, ATSLIB_056_prelude__eq_g0int_int__12__10(tmp136, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2695(line=103, offs=12) -- 2722(line=103, offs=39)
-*/
-ATSif(
-tmp133
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2695(line=103, offs=12) -- 2722(line=103, offs=39)
-*/
-ATSINSmove(tmp132, is_prime_20(arg1)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2695(line=103, offs=12) -- 2722(line=103, offs=39)
-*/
-ATSINSmove(tmp132, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2692(line=103, offs=9) -- 2799(line=106, offs=27)
-*/
-ATSif(
-tmp132
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2751(line=104, offs=23) -- 2758(line=104, offs=30)
-*/
-ATSINSmove(tmp138, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2743(line=104, offs=15) -- 2759(line=104, offs=31)
-*/
-ATSINSmove(tmp137, loop_66(arg0, tmp138)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2739(line=104, offs=11) -- 2759(line=104, offs=31)
-*/
-ATSINSmove(tmpret127, atspre_g0int_add_int(ATSPMVi0nt(1), tmp137)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2791(line=106, offs=19) -- 2798(line=106, offs=26)
-*/
-ATSINSmove(tmp139, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2783(line=106, offs=11) -- 2799(line=106, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg0) ;
-ATSINSmove_tlcal(apy1, tmp139) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_66) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret127) ;
-} /* end of [loop_66] */
-
-/*
-/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] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2859(line=112, offs=4) -- 3407(line=132, 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_69$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-totient_69(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret140, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2859(line=112, offs=4) -- 3407(line=132, offs=10)
-*/
-ATSINSflab(__patsflab_totient_69):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2892(line=113, offs=3) -- 3407(line=132, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2909(line=114, offs=7) -- 2910(line=114, offs=8)
-*/
-ATSINSlab(__atstmplab6):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2867(line=112, offs=12) -- 2868(line=112, 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: 2910(line=114, offs=8) -- 2910(line=114, 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: 2914(line=114, offs=12) -- 2915(line=114, offs=13)
-*/
-ATSINSmove(tmpret140, ATSPMVi0nt(1)) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2923(line=115, offs=8) -- 2923(line=115, 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: 2949(line=117, offs=9) -- 3397(line=131, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3375(line=130, offs=11) -- 3385(line=130, offs=21)
-*/
-ATSINSmove(tmpret140, loop_70(ATSPMVi0nt(1), arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2949(line=117, offs=9) -- 3397(line=131, offs=12)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret140) ;
-} /* end of [totient_69] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2967(line=118, offs=15) -- 3353(line=128, offs=31)
-*/
-/*
-local: is_prime_20$0(level=0), loop_70$0(level=1)
-global: is_prime_20$0(level=0), loop_70$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-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(tmpret141, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp142, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp145, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp146, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp147, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp148, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp151, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp156, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp157, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp158, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp159, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp160, 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: 2967(line=118, offs=15) -- 3353(line=128, offs=31)
-*/
-ATSINSflab(__patsflab_loop_70):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3078(line=119, offs=16) -- 3084(line=119, offs=22)
-*/
-ATSINSmove(tmp142, ATSLIB_056_prelude__gte_g1int_int__38__6(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3075(line=119, offs=13) -- 3353(line=128, offs=31)
-*/
-ATSif(
-tmp142
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3107(line=120, offs=18) -- 3117(line=120, offs=28)
-*/
-ATSINSmove(tmp145, is_prime_20(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3104(line=120, offs=15) -- 3182(line=123, offs=18)
-*/
-ATSif(
-tmp145
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3140(line=121, offs=17) -- 3145(line=121, offs=22)
-*/
-ATSINSmove(tmpret141, atspre_g1int_sub_int(arg1, ATSPMVi0nt(1))) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3181(line=123, offs=17) -- 3182(line=123, offs=18)
-*/
-ATSINSmove(tmpret141, arg1) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3217(line=125, offs=18) -- 3251(line=125, offs=52)
-*/
-ATSINSmove(tmp151, atspre_g0int_mod_int(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3217(line=125, offs=18) -- 3251(line=125, offs=52)
-*/
-ATSINSmove(tmp148, ATSLIB_056_prelude__eq_g0int_int__12__11(tmp151, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3217(line=125, offs=18) -- 3251(line=125, offs=52)
-*/
-ATSif(
-tmp148
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3217(line=125, offs=18) -- 3251(line=125, offs=52)
-*/
-ATSINSmove(tmp147, is_prime_20(arg0)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3217(line=125, offs=18) -- 3251(line=125, offs=52)
-*/
-ATSINSmove(tmp147, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3217(line=125, offs=18) -- 3251(line=125, offs=52)
-*/
-ATSif(
-tmp147
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3217(line=125, offs=18) -- 3251(line=125, offs=52)
-*/
-ATSINSmove(tmp146, ATSLIB_056_prelude__neq_g1int_int__74__1(arg0, arg1)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3217(line=125, offs=18) -- 3251(line=125, offs=52)
-*/
-ATSINSmove(tmp146, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3214(line=125, offs=15) -- 3353(line=128, offs=31)
-*/
-ATSif(
-tmp146
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3279(line=126, offs=23) -- 3284(line=126, offs=28)
-*/
-ATSINSmove(tmp158, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3274(line=126, offs=18) -- 3288(line=126, offs=32)
-*/
-ATSINSmove(tmp157, loop_70(tmp158, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3274(line=126, offs=18) -- 3292(line=126, offs=36)
-*/
-ATSINSmove(tmp156, atspre_g0int_div_int(tmp157, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3297(line=126, offs=41) -- 3302(line=126, offs=46)
-*/
-ATSINSmove(tmp159, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3273(line=126, offs=17) -- 3303(line=126, offs=47)
-*/
-ATSINSmove(tmpret141, atspre_g0int_mul_int(tmp156, tmp159)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3344(line=128, offs=22) -- 3349(line=128, offs=27)
-*/
-ATSINSmove(tmp160, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3339(line=128, offs=17) -- 3353(line=128, offs=31)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp160) ;
-ATSINSmove_tlcal(apy1, arg1) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_70) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret141) ;
-/*
-emit_funent_fnxbodylst:
-*/
-} /* end of [loop_70] */
-
-/*
-/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$6(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__6(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret66__6, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp67__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): 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__6, 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__6, atspre_g1int_gte_int(arg0, tmp67__6)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret66__6) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__38__6] */
-
-/*
-/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$11(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__11(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret18__11, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp19__11, 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__11, 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__11, atspre_g0int_eq_int(arg0, tmp19__11)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret18__11) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__11] */
-
-#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$74$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__74(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret152, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp153, 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(tmp153, 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(tmpret152, PMVtmpltcst(g1int_neq<S2Evar(tk(4712))>)(arg0, tmp153)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret152) ;
-} /* end of [ATSLIB_056_prelude__neq_g1int_int__74] */
-#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$74$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__74__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret152__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp153__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(tmp153__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(tmpret152__1, atspre_g1int_neq_int(arg0, tmp153__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret152__1) ;
-} /* end of [ATSLIB_056_prelude__neq_g1int_int__74__1] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3491(line=136, offs=5) -- 3879(line=150, offs=6)
-*/
-/*
-local: witness_0$0(level=0), totient_69$0(level=0)
-global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), totient_69$0(level=0), totient_sum_77$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-totient_sum_77(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret161, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3491(line=136, offs=5) -- 3879(line=150, offs=6)
-*/
-ATSINSflab(__patsflab_totient_sum_77):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3531(line=137, offs=3) -- 3879(line=150, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3863(line=149, offs=5) -- 3873(line=149, offs=15)
-*/
-ATSINSmove(tmpret161, loop_78(ATSPMVi0nt(1), arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3531(line=137, offs=3) -- 3879(line=150, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret161) ;
-} /* end of [totient_sum_77] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3543(line=138, offs=9) -- 3853(line=147, offs=40)
-*/
-/*
-local: witness_0$0(level=0), totient_69$0(level=0), loop_78$0(level=1)
-global: witness_0$0(level=0), totient_69$0(level=0), loop_78$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_78(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(tmpret162, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp163, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp166, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp167, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp172, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp173, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp181, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp182, 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: 3543(line=138, offs=9) -- 3853(line=147, offs=40)
-*/
-ATSINSflab(__patsflab_loop_78):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3646(line=139, offs=10) -- 3655(line=139, offs=19)
-*/
-ATSINSmove(tmp163, 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: 3643(line=139, offs=7) -- 3853(line=147, offs=40)
-*/
-ATSif(
-tmp163
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3669(line=140, offs=9) -- 3802(line=145, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3696(line=141, offs=24) -- 3701(line=141, offs=29)
-*/
-ATSINSmove(tmp167, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3691(line=141, offs=19) -- 3709(line=141, offs=37)
-*/
-ATSINSmove(tmp166, loop_78(tmp167, arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3755(line=142, offs=46) -- 3764(line=142, offs=55)
-*/
-ATSINSmove(tmp173, totient_69(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3747(line=142, offs=38) -- 3766(line=142, offs=57)
-*/
-ATSINSmove(tmp172, witness_0(tmp173)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3728(line=142, offs=19) -- 3767(line=142, offs=58)
-*/
-ATSINSmove(tmpret162, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__80__1(tmp166, tmp172)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3669(line=140, offs=9) -- 3802(line=145, offs=12)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3822(line=147, offs=9) -- 3853(line=147, offs=40)
-*/
-ATSINSmove(tmp182, totient_69(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3822(line=147, offs=9) -- 3853(line=147, offs=40)
-*/
-ATSINSmove(tmp181, witness_0(tmp182)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3822(line=147, offs=9) -- 3853(line=147, offs=40)
-*/
-ATSINSmove(tmpret162, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__82__1(tmp181)) ;
-
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret162) ;
-/*
-emit_funent_fnxbodylst:
-*/
-} /* end of [loop_78] */
-
-/*
-/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$80$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__80(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret168, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp169) ;
-/* 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(tmp169, 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(tmpret168, 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(tmpret168) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__80] */
-#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$80$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__80__1(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret168__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp169__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(tmp169__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(tmpret168__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(tmpret168__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__80__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$82$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__82(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret174, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp175, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp176) ;
-/* 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(tmp175, 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(tmp176, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp175, 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(tmpret174, tmp175) ;
-/*
-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(tmpret174) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__82] */
-#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$82$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__82__1(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret174__1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp175__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp176__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(tmp175__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(tmp176__1, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp175__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(tmpret174__1, tmp175__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(tmpret174__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__82__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_59$0(level=0)
-global: sum_divisors_59$0(level=0), sum_divisors_ats$85$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-sum_divisors_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret183, 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(tmpret183, sum_divisors_59(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret183) ;
-} /* 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_54$0(level=0)
-global: count_divisors_54$0(level=0), count_divisors_ats$86$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-count_divisors_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret184, 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(tmpret184, count_divisors_54(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret184) ;
-} /* 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_69$0(level=0)
-global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), totient_69$0(level=0), totient_ats$87$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-totient_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret185, 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(tmpret185, totient_69(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret185) ;
-} /* 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_65$0(level=0)
-global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), little_omega_65$0(level=0), little_omega_ats$88$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-little_omega_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret186, 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(tmpret186, little_omega_65(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret186) ;
-} /* 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_63$0(level=0)
-global: sum_divisors_59$0(level=0), is_perfect_63$0(level=0), is_perfect_ats$89$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_bool)
-is_perfect_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret187, 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(tmpret187, is_perfect_63(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret187) ;
-} /* end of [is_perfect_ats] */
+** The starting compilation time is: 2018-1-12:  0h:58m
+**
+*/
+
+/*
+** 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: 15529(line=878, offs=1) -- 15566(line=879, 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_g1int_div_int)
+ATSdyncst_mac(atspre_g1int_sub_int)
+ATSdyncst_mac(atspre_g0int_half_int)
+ATSdyncst_mac(atspre_g1int_mul_int)
+ATSdyncst_mac(atspre_g1int_neg_int)
+ATSdyncst_mac(atspre_g0int_add_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_type(atstype_ptrk)
+prime_divisors_46(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+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()
+atstype_boxed
+__patsfun_49(atstkind_t0ype(atstype_int), atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_50(atstype_bool) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__12__6(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_52(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_53(atstype_bool) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+div_gt_zero_54(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+exp_mod_prime_56(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__6__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_int)
+jacobi_62(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+legendre_63(atstkind_t0ype(atstype_int), 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_bool)
+ATSLIB_056_prelude__eq_g0int_int__12__9(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+get_multiplicity_67(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_68(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__6__4(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)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+count_divisors_71(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_72(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__11(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+sum_divisors_76(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_77(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__12(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+is_perfect_80(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__12__13(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+little_omega_82(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_83(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__14(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+totient_86(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_87(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__38__6(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__12__15(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g1int_int__90(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__90__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+totient_sum_93(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_94(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__96(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__96__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__98(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__98__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]
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+jacobi_ats(atstkind_t0ype(atstype_int), 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()
+ATSclosurerize_beg(__patsfun_49, (atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+atstkind_t0ype(atstype_int) env0 ;
+} __patsfun_49__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_49__cfun
+(
+__patsfun_49__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_49(p_cenv->env0, arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_49__closureinit
+(
+__patsfun_49__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0
+)
+{
+p_cenv->env0 = env0 ;
+p_cenv->cfun = __patsfun_49__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_49__closurerize
+(
+atstkind_t0ype(atstype_int) env0
+)
+{
+return __patsfun_49__closureinit(ATS_MALLOC(sizeof(__patsfun_49__closure_t0ype)), env0) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_50, (), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+} __patsfun_50__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_50__cfun
+(
+__patsfun_50__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_50(arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_50__closureinit
+(
+__patsfun_50__closure_t0ype *p_cenv
+)
+{
+p_cenv->cfun = __patsfun_50__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_50__closurerize
+(
+// argumentless
+)
+{
+return __patsfun_50__closureinit(ATS_MALLOC(sizeof(__patsfun_50__closure_t0ype))) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_52, (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_52__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_52__cfun
+(
+__patsfun_52__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_52(p_cenv->env0, p_cenv->env1, arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_52__closureinit
+(
+__patsfun_52__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_52__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_52__closurerize
+(
+atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1
+)
+{
+return __patsfun_52__closureinit(ATS_MALLOC(sizeof(__patsfun_52__closure_t0ype)), env0, env1) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_53, (), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+} __patsfun_53__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_53__cfun
+(
+__patsfun_53__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_53(arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_53__closureinit
+(
+__patsfun_53__closure_t0ype *p_cenv
+)
+{
+p_cenv->cfun = __patsfun_53__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_53__closurerize
+(
+// argumentless
+)
+{
+return __patsfun_53__closureinit(ATS_MALLOC(sizeof(__patsfun_53__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) -- 1163(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(tmpref23, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp24, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp25, 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) -- 1163(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) -- 1163(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) -- 1153(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) -- 1128(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) -- 1114(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) -- 1114(line=43, offs=18)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1039(line=40, offs=21) -- 1040(line=40, offs=22)
+*/
+/*
+ATSINStmpdec(tmpref23) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1051(line=40, offs=33) -- 1056(line=40, offs=38)
+*/
+ATSINSmove(tmp25, atspre_g0int_mul_int(arg0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1047(line=40, offs=29) -- 1061(line=40, offs=43)
+*/
+ATSINSmove(tmp24, exp_5(tmp25, tmpref15)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1043(line=40, offs=25) -- 1061(line=40, offs=43)
+*/
+ATSINSmove(tmpref23, atspre_g0int_mul_int(arg0, tmp24)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1095(line=42, offs=17) -- 1096(line=42, offs=18)
+*/
+ATSINSmove(tmpret9, tmpref23) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1015(line=39, offs=15) -- 1114(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) -- 1128(line=44, offs=14)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1152(line=46, offs=11) -- 1153(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: 1168(line=49, offs=4) -- 1312(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(tmpret26, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref27, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp28, atstkind_t0ype(atstype_float)) ;
+ATStmpdec(tmp29, atstkind_t0ype(atstype_float)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1168(line=49, offs=4) -- 1312(line=54, offs=6)
+*/
+ATSINSflab(__patsflab_sqrt_int_17):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1218(line=50, offs=3) -- 1312(line=54, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1230(line=51, offs=9) -- 1235(line=51, offs=14)
+*/
+/*
+ATSINStmpdec(tmpref27) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1266(line=51, offs=45) -- 1279(line=51, offs=58)
+*/
+ATSINSmove(tmp29, atspre_g0int2float_int_float(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1255(line=51, offs=34) -- 1281(line=51, offs=60)
+*/
+ATSINSmove(tmp28, atslib_libats_libc_sqrt_float(tmp29)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1243(line=51, offs=22) -- 1282(line=51, offs=61)
+*/
+ATSINSmove(tmpref27, atspre_g0float2int_float_int(tmp28)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1292(line=53, offs=5) -- 1305(line=53, offs=18)
+*/
+ATSINSmove(tmpret26, witness_0(tmpref27)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1218(line=50, offs=3) -- 1312(line=54, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret26) ;
+} /* end of [sqrt_int_17] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1348(line=57, offs=4) -- 1933(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(tmpret30, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp51, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1348(line=57, offs=4) -- 1933(line=80, offs=10)
+*/
+ATSINSflab(__patsflab_is_prime_20):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1384(line=58, offs=3) -- 1933(line=80, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1401(line=59, offs=7) -- 1402(line=59, offs=8)
+*/
+ATSINSlab(__atstmplab3):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1357(line=57, offs=13) -- 1358(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: 1402(line=59, offs=8) -- 1402(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: 1406(line=59, offs=12) -- 1411(line=59, offs=17)
+*/
+ATSINSmove(tmpret30, ATSPMVbool_false()) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1419(line=60, offs=8) -- 1419(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: 1444(line=62, offs=9) -- 1923(line=79, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1899(line=78, offs=19) -- 1909(line=78, offs=29)
+*/
+ATSINSmove(tmp51, sqrt_int_17(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1891(line=78, offs=11) -- 1911(line=78, offs=31)
+*/
+ATSINSmove(tmpret30, loop_21(arg0, ATSPMVi0nt(2), tmp51)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1444(line=62, offs=9) -- 1923(line=79, offs=12)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret30) ;
+} /* end of [is_prime_20] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1462(line=63, offs=15) -- 1869(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(tmpret31, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp32, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp37, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp40, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp41, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp42, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp47, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp50, 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: 1462(line=63, offs=15) -- 1869(line=76, offs=21)
+*/
+ATSINSflab(__patsflab_loop_21):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1556(line=64, offs=16) -- 1565(line=64, offs=25)
+*/
+ATSINSmove(tmp32, ATSLIB_056_prelude__lt_g1int_int__22__1(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1553(line=64, offs=13) -- 1869(line=76, offs=21)
+*/
+ATSif(
+tmp32
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1588(line=65, offs=18) -- 1593(line=65, offs=23)
+*/
+ATSINSmove(tmp40, atspre_g0int_mod_int(env0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1588(line=65, offs=18) -- 1597(line=65, offs=27)
+*/
+ATSINSmove(tmp37, ATSLIB_056_prelude__eq_g0int_int__12__2(tmp40, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1585(line=65, offs=15) -- 1678(line=68, offs=35)
+*/
+ATSif(
+tmp37
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1619(line=66, offs=17) -- 1624(line=66, offs=22)
+*/
+ATSINSmove(tmpret31, ATSPMVbool_false()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1665(line=68, offs=22) -- 1670(line=68, offs=27)
+*/
+ATSINSmove(tmp41, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1660(line=68, offs=17) -- 1678(line=68, offs=35)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp41) ;
+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: 1713(line=70, offs=18) -- 1722(line=70, offs=27)
+*/
+ATSINSmove(tmp42, ATSLIB_056_prelude__eq_g1int_int__26__1(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1710(line=70, offs=15) -- 1869(line=76, offs=21)
+*/
+ATSif(
+tmp42
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1747(line=71, offs=20) -- 1752(line=71, offs=25)
+*/
+ATSINSmove(tmp50, atspre_g0int_mod_int(env0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1747(line=71, offs=20) -- 1756(line=71, offs=29)
+*/
+ATSINSmove(tmp47, ATSLIB_056_prelude__eq_g0int_int__12__3(tmp50, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1744(line=71, offs=17) -- 1829(line=74, offs=23)
+*/
+ATSif(
+tmp47
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1780(line=72, offs=19) -- 1785(line=72, offs=24)
+*/
+ATSINSmove(tmpret31, ATSPMVbool_false()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1825(line=74, offs=19) -- 1829(line=74, offs=23)
+*/
+ATSINSmove(tmpret31, ATSPMVbool_true()) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1865(line=76, offs=17) -- 1869(line=76, offs=21)
+*/
+ATSINSmove(tmpret31, ATSPMVbool_true()) ;
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret31) ;
+/*
+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(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): 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(tmp34, 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(tmpret33, PMVtmpltcst(g1int_lt<S2Evar(tk(4697))>)(arg0, tmp34)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret33) ;
+} /* 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(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): 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(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): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
+*/
+ATSINSmove(tmpret33__1, atspre_g1int_lt_int(arg0, tmp34__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret33__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(tmpret43, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp44, 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(tmp44, 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(tmpret43, PMVtmpltcst(g1int_eq<S2Evar(tk(4709))>)(arg0, tmp44)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret43) ;
+} /* 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(tmpret43__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp44__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(tmp44__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(tmpret43__1, atspre_g1int_eq_int(arg0, tmp44__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret43__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: 550(line=20, offs=4) -- 598(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(tmpret52, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp55, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 550(line=20, offs=4) -- 598(line=21, offs=12)
+*/
+ATSINSflab(__patsflab_divides_30):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 589(line=21, offs=3) -- 594(line=21, offs=8)
+*/
+ATSINSmove(tmp55, atspre_g0int_mod_int(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 589(line=21, offs=3) -- 598(line=21, offs=12)
+*/
+ATSINSmove(tmpret52, ATSLIB_056_prelude__eq_g0int_int__12__4(tmp55, ATSPMVi0nt(0))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret52) ;
+} /* 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: 604(line=23, offs=5) -- 715(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(tmpret56, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp57, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp60, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp61, 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: 604(line=23, offs=5) -- 715(line=27, offs=6)
+*/
+ATSINSflab(__patsflab_gcd_32):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 665(line=24, offs=6) -- 670(line=24, offs=11)
+*/
+ATSINSmove(tmp57, 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: 662(line=24, offs=3) -- 715(line=27, offs=6)
+*/
+ATSif(
+tmp57
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 695(line=25, offs=20) -- 700(line=25, offs=25)
+*/
+ATSINSmove(tmp61, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 687(line=25, offs=12) -- 701(line=25, offs=26)
+*/
+ATSINSmove(tmp60, witness_0(tmp61)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 680(line=25, offs=5) -- 702(line=25, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg1) ;
+ATSINSmove_tlcal(apy1, tmp60) ;
+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: 714(line=27, offs=5) -- 715(line=27, offs=6)
+*/
+ATSINSmove(tmpret56, arg0) ;
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret56) ;
+/*
+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: 720(line=29, offs=4) -- 797(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(tmpret62, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp63, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp64, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 720(line=29, offs=4) -- 797(line=30, offs=22)
+*/
+ATSINSflab(__patsflab_lcm_34):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 783(line=30, offs=8) -- 792(line=30, offs=17)
+*/
+ATSINSmove(tmp64, gcd_32(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 779(line=30, offs=4) -- 792(line=30, offs=17)
+*/
+ATSINSmove(tmp63, atspre_g0int_div_int(arg0, tmp64)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 778(line=30, offs=3) -- 797(line=30, offs=22)
+*/
+ATSINSmove(tmpret62, atspre_g0int_mul_int(tmp63, arg1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret62) ;
+} /* end of [lcm_34] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 840(line=33, offs=4) -- 1248(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(tmpret65, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 840(line=33, offs=4) -- 1248(line=45, offs=6)
+*/
+ATSINSflab(__patsflab_divisors_36):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 887(line=34, offs=3) -- 1248(line=45, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1232(line=44, offs=5) -- 1242(line=44, offs=15)
+*/
+ATSINSmove(tmpret65, loop_37(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 887(line=34, offs=3) -- 1248(line=45, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret65) ;
+} /* end of [divisors_36] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 899(line=35, offs=9) -- 1222(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(tmpret66, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp67, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp75, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp78, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 899(line=35, offs=9) -- 1222(line=42, offs=33)
+*/
+ATSINSflab(__patsflab_loop_37):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1008(line=36, offs=10) -- 1016(line=36, offs=18)
+*/
+ATSINSmove(tmp67, 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: 1005(line=36, offs=7) -- 1222(line=42, offs=33)
+*/
+ATSif(
+tmp67
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1030(line=37, offs=9) -- 1082(line=37, offs=61)
+*/
+ATSINSmove_ldelay(tmpret66, atstype_boxed, ATSPMVcfunlab(1, __patsfun_41, (arg1))) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1105(line=39, offs=12) -- 1112(line=39, offs=19)
+*/
+ATSINSmove(tmp78, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1105(line=39, offs=12) -- 1116(line=39, offs=23)
+*/
+ATSINSmove(tmp75, ATSLIB_056_prelude__eq_g0int_int__12__5(tmp78, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1102(line=39, offs=9) -- 1222(line=42, offs=33)
+*/
+ATSif(
+tmp75
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1132(line=40, offs=11) -- 1176(line=40, offs=55)
+*/
+ATSINSmove_ldelay(tmpret66, atstype_boxed, ATSPMVcfunlab(1, __patsfun_44, (arg0, arg1))) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1200(line=42, offs=11) -- 1222(line=42, offs=33)
+*/
+ATSINSmove_ldelay(tmpret66, atstype_boxed, ATSPMVcfunlab(1, __patsfun_45, ())) ;
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret66) ;
+} /* 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(tmpret68, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp69, 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(tmp69, 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(tmpret68, PMVtmpltcst(g1int_gte<S2Evar(tk(4706))>)(arg0, tmp69)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret68) ;
+} /* 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(tmpret68__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp69__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(tmp69__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(tmpret68__1, atspre_g1int_gte_int(arg0, tmp69__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret68__1) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__38__1] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1030(line=37, offs=9) -- 1082(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(tmpret72, atstype_boxed) ;
+ATStmpdec(tmp73, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1030(line=37, offs=9) -- 1082(line=37, offs=61)
+*/
+ATSINSflab(__patsflab___patsfun_41):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1030(line=37, offs=9) -- 1082(line=37, offs=61)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1058(line=37, offs=37) -- 1080(line=37, offs=59)
+*/
+ATSINSmove_ldelay(tmp73, atstype_boxed, ATSPMVcfunlab(1, __patsfun_42, ())) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1038(line=37, offs=17) -- 1081(line=37, offs=60)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret72, postiats_tysum_0) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret72, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret72, postiats_tysum_0, atslab__0, env0) ;
+ATSINSstore_con1_ofs(tmpret72, postiats_tysum_0, atslab__1, tmp73) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret72) ;
+} /* end of [__patsfun_41] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1058(line=37, offs=37) -- 1080(line=37, offs=59)
+*/
+/*
+local: 
+global: __patsfun_42$0(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_42(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret74, atstype_boxed) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1058(line=37, offs=37) -- 1080(line=37, offs=59)
+*/
+ATSINSflab(__patsflab___patsfun_42):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1058(line=37, offs=37) -- 1080(line=37, offs=59)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1066(line=37, offs=45) -- 1079(line=37, offs=58)
+*/
+
+ATSINSmove_nil(tmpret74) ;
+
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret74) ;
+} /* 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: 1132(line=40, offs=11) -- 1176(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(tmpret79, atstype_boxed) ;
+ATStmpdec(tmp80, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp81, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1132(line=40, offs=11) -- 1176(line=40, offs=55)
+*/
+ATSINSflab(__patsflab___patsfun_44):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1132(line=40, offs=11) -- 1176(line=40, offs=55)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1166(line=40, offs=45) -- 1173(line=40, offs=52)
+*/
+ATSINSmove(tmp81, atspre_g1int_add_int(env1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1158(line=40, offs=37) -- 1174(line=40, offs=53)
+*/
+ATSINSmove(tmp80, loop_37(env0, tmp81)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1140(line=40, offs=19) -- 1175(line=40, offs=54)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret79, postiats_tysum_0) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret79, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret79, postiats_tysum_0, atslab__0, env0) ;
+ATSINSstore_con1_ofs(tmpret79, postiats_tysum_0, atslab__1, tmp80) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret79) ;
+} /* end of [__patsfun_44] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1200(line=42, offs=11) -- 1222(line=42, offs=33)
+*/
+/*
+local: 
+global: __patsfun_45$0(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_45(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret82, atstype_boxed) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1200(line=42, offs=11) -- 1222(line=42, offs=33)
+*/
+ATSINSflab(__patsflab___patsfun_45):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1200(line=42, offs=11) -- 1222(line=42, offs=33)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1208(line=42, offs=19) -- 1221(line=42, offs=32)
+*/
+
+ATSINSmove_nil(tmpret82) ;
+
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret82) ;
+} /* end of [__patsfun_45] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1346(line=49, offs=4) -- 1857(line=64, 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), prime_divisors_46$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+prime_divisors_46(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret83, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp101, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1346(line=49, offs=4) -- 1857(line=64, offs=6)
+*/
+ATSINSflab(__patsflab_prime_divisors_46):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1405(line=50, offs=3) -- 1857(line=64, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1840(line=63, offs=19) -- 1850(line=63, offs=29)
+*/
+ATSINSmove(tmp101, loop_47(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1826(line=63, offs=5) -- 1851(line=63, offs=30)
+*/
+ATSINSmove(tmpret83, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp101)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1405(line=50, offs=3) -- 1857(line=64, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret83) ;
+} /* end of [prime_divisors_46] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1417(line=51, offs=9) -- 1816(line=61, offs=33)
+*/
+/*
+local: is_prime_20$0(level=0), loop_47$0(level=1)
+global: is_prime_20$0(level=0), loop_47$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+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(tmpret84, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp85, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp91, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp94, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp95, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp99, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1417(line=51, offs=9) -- 1816(line=61, offs=33)
+*/
+ATSINSflab(__patsflab_loop_47):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1526(line=52, offs=10) -- 1534(line=52, offs=18)
+*/
+ATSINSmove(tmp85, 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: 1523(line=52, offs=7) -- 1816(line=61, offs=33)
+*/
+ATSif(
+tmp85
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1548(line=53, offs=9) -- 1600(line=53, offs=61)
+*/
+ATSINSmove_ldelay(tmpret84, atstype_boxed, ATSPMVcfunlab(1, __patsfun_49, (arg1))) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1623(line=55, offs=12) -- 1630(line=55, offs=19)
+*/
+ATSINSmove(tmp94, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1623(line=55, offs=12) -- 1634(line=55, offs=23)
+*/
+ATSINSmove(tmp91, ATSLIB_056_prelude__eq_g0int_int__12__6(tmp94, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1620(line=55, offs=9) -- 1816(line=61, offs=33)
+*/
+ATSif(
+tmp91
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1653(line=56, offs=14) -- 1663(line=56, offs=24)
+*/
+ATSINSmove(tmp95, is_prime_20(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1650(line=56, offs=11) -- 1770(line=59, offs=29)
+*/
+ATSif(
+tmp95
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1682(line=57, offs=13) -- 1726(line=57, offs=57)
+*/
+ATSINSmove_ldelay(tmpret84, atstype_boxed, ATSPMVcfunlab(1, __patsfun_52, (arg0, arg1))) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1762(line=59, offs=21) -- 1769(line=59, offs=28)
+*/
+ATSINSmove(tmp99, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1754(line=59, offs=13) -- 1770(line=59, offs=29)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp99) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_47) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1794(line=61, offs=11) -- 1816(line=61, offs=33)
+*/
+ATSINSmove_ldelay(tmpret84, atstype_boxed, ATSPMVcfunlab(1, __patsfun_53, ())) ;
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret84) ;
+} /* 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(tmpret68__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp69__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(tmp69__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(tmpret68__2, atspre_g1int_gte_int(arg0, tmp69__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret68__2) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__38__2] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1548(line=53, offs=9) -- 1600(line=53, offs=61)
+*/
+/*
+local: 
+global: __patsfun_49$0(level=2)
+local: acc$5128(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: acc$5128(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_49(atstkind_t0ype(atstype_int) env0, atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret88, atstype_boxed) ;
+ATStmpdec(tmp89, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1548(line=53, offs=9) -- 1600(line=53, offs=61)
+*/
+ATSINSflab(__patsflab___patsfun_49):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1548(line=53, offs=9) -- 1600(line=53, offs=61)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1576(line=53, offs=37) -- 1598(line=53, offs=59)
+*/
+ATSINSmove_ldelay(tmp89, atstype_boxed, ATSPMVcfunlab(1, __patsfun_50, ())) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1556(line=53, offs=17) -- 1599(line=53, offs=60)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret88, postiats_tysum_0) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret88, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret88, postiats_tysum_0, atslab__0, env0) ;
+ATSINSstore_con1_ofs(tmpret88, postiats_tysum_0, atslab__1, tmp89) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret88) ;
+} /* end of [__patsfun_49] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1576(line=53, offs=37) -- 1598(line=53, offs=59)
+*/
+/*
+local: 
+global: __patsfun_50$0(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_50(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret90, atstype_boxed) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1576(line=53, offs=37) -- 1598(line=53, offs=59)
+*/
+ATSINSflab(__patsflab___patsfun_50):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1576(line=53, offs=37) -- 1598(line=53, offs=59)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1584(line=53, offs=45) -- 1597(line=53, offs=58)
+*/
+
+ATSINSmove_nil(tmpret90) ;
+
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret90) ;
+} /* end of [__patsfun_50] */
+
+/*
+/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: 1682(line=57, offs=13) -- 1726(line=57, offs=57)
+*/
+/*
+local: loop_47$0(level=1)
+global: loop_47$0(level=1), __patsfun_52$0(level=2)
+local: n$5127(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5128(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: n$5127(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5128(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_52(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret96, atstype_boxed) ;
+ATStmpdec(tmp97, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp98, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1682(line=57, offs=13) -- 1726(line=57, offs=57)
+*/
+ATSINSflab(__patsflab___patsfun_52):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1682(line=57, offs=13) -- 1726(line=57, offs=57)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1716(line=57, offs=47) -- 1723(line=57, offs=54)
+*/
+ATSINSmove(tmp98, atspre_g1int_add_int(env1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1708(line=57, offs=39) -- 1724(line=57, offs=55)
+*/
+ATSINSmove(tmp97, loop_47(env0, tmp98)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1690(line=57, offs=21) -- 1725(line=57, offs=56)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret96, postiats_tysum_0) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret96, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret96, postiats_tysum_0, atslab__0, env0) ;
+ATSINSstore_con1_ofs(tmpret96, postiats_tysum_0, atslab__1, tmp97) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret96) ;
+} /* end of [__patsfun_52] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1794(line=61, offs=11) -- 1816(line=61, offs=33)
+*/
+/*
+local: 
+global: __patsfun_53$0(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_53(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret100, atstype_boxed) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1794(line=61, offs=11) -- 1816(line=61, offs=33)
+*/
+ATSINSflab(__patsflab___patsfun_53):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1794(line=61, offs=11) -- 1816(line=61, offs=33)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1802(line=61, offs=19) -- 1815(line=61, offs=32)
+*/
+
+ATSINSmove_nil(tmpret100) ;
+
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret100) ;
+} /* end of [__patsfun_53] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2056(line=70, offs=4) -- 2128(line=71, offs=18)
+*/
+/*
+local: 
+global: div_gt_zero_54$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+div_gt_zero_54(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret102, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp103, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2056(line=70, offs=4) -- 2128(line=71, offs=18)
+*/
+ATSINSflab(__patsflab_div_gt_zero_54):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2122(line=71, offs=12) -- 2127(line=71, offs=17)
+*/
+ATSINSmove(tmp103, atspre_g1int_div_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2113(line=71, offs=3) -- 2128(line=71, offs=18)
+*/
+ATSINSmove(tmpret102, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp103)) ;
+ATSfunbody_end()
+ATSreturn(tmpret102) ;
+} /* end of [div_gt_zero_54] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2169(line=74, offs=5) -- 2832(line=101, offs=6)
+*/
+/*
+local: exp_mod_prime_56$0(level=0)
+global: exp_mod_prime_56$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+exp_mod_prime_56(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1, atstkind_t0ype(atstype_int) arg2)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(apy2, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret104, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref105, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref106, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp107, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp108, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpref111, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp112, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref113, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref114, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp115, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp116, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp117, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp120, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2169(line=74, offs=5) -- 2832(line=101, offs=6)
+*/
+ATSINSflab(__patsflab_exp_mod_prime_56):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2237(line=75, offs=3) -- 2832(line=101, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2249(line=76, offs=9) -- 2251(line=76, offs=11)
+*/
+/*
+ATSINStmpdec(tmpref105) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2254(line=76, offs=14) -- 2259(line=76, offs=19)
+*/
+ATSINSmove(tmpref105, atspre_g0int_mod_int(arg0, arg2)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2268(line=77, offs=9) -- 2270(line=77, offs=11)
+*/
+/*
+ATSINStmpdec(tmpref106) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2278(line=77, offs=19) -- 2283(line=77, offs=24)
+*/
+ATSINSmove(tmp107, atspre_g1int_sub_int(arg2, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2273(line=77, offs=14) -- 2284(line=77, offs=25)
+*/
+ATSINSmove(tmpref106, atspre_g0int_mod_int(arg1, tmp107)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2294(line=79, offs=5) -- 2826(line=100, offs=12)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2313(line=80, offs=9) -- 2314(line=80, offs=10)
+*/
+ATSINSlab(__atstmplab6):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2183(line=74, offs=19) -- 2184(line=74, offs=20)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab8) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2314(line=80, offs=10) -- 2314(line=80, offs=10)
+*/
+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: 2318(line=80, offs=14) -- 2319(line=80, offs=15)
+*/
+ATSINSmove(tmpret104, ATSPMVi0nt(0)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2329(line=81, offs=10) -- 2329(line=81, offs=10)
+*/
+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: 2362(line=83, offs=14) -- 2367(line=83, offs=19)
+*/
+ATSINSmove(tmp108, ATSLIB_056_prelude__gt_g1int_int__6__3(arg1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2359(line=83, offs=11) -- 2814(line=99, offs=14)
+*/
+ATSif(
+tmp108
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2385(line=84, offs=13) -- 2785(line=97, offs=16)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2407(line=85, offs=19) -- 2409(line=85, offs=21)
+*/
+/*
+ATSINStmpdec(tmpref111) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2432(line=85, offs=44) -- 2439(line=85, offs=51)
+*/
+ATSINSmove(tmp112, atspre_g0int_half_int(tmpref106)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2423(line=85, offs=35) -- 2441(line=85, offs=53)
+*/
+ATSINSmove(tmpref111, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp112)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2460(line=86, offs=19) -- 2462(line=86, offs=21)
+*/
+/*
+ATSINStmpdec(tmpref113) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2465(line=86, offs=24) -- 2471(line=86, offs=30)
+*/
+ATSINSmove(tmpref113, atspre_g0int_mod_int(tmpref106, ATSPMVi0nt(2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2490(line=87, offs=19) -- 2494(line=87, offs=23)
+*/
+/*
+ATSINStmpdec(tmpref114) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2517(line=87, offs=46) -- 2522(line=87, offs=51)
+*/
+ATSINSmove(tmp116, atspre_g1int_mul_int(arg0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2517(line=87, offs=46) -- 2526(line=87, offs=55)
+*/
+ATSINSmove(tmp115, atspre_g0int_mod_int(tmp116, arg2)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2508(line=87, offs=37) -- 2527(line=87, offs=56)
+*/
+ATSINSmove(tmpref114, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp115)) ;
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2560(line=89, offs=18) -- 2566(line=89, offs=24)
+*/
+ATSINSmove(tmp117, ATSLIB_056_prelude__eq_g0int_int__12__7(tmpref113, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2557(line=89, offs=15) -- 2769(line=96, offs=20)
+*/
+ATSif(
+tmp117
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2588(line=90, offs=17) -- 2614(line=90, offs=43)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmpref114) ;
+ATSINSmove_tlcal(apy1, tmpref111) ;
+ATSINSmove_tlcal(apy2, arg2) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSargmove_tlcal(arg2, apy2) ;
+ATSINSfgoto(__patsflab_exp_mod_prime_56) ;
+ATStailcal_end()
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2650(line=92, offs=17) -- 2769(line=96, offs=20)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2684(line=93, offs=31) -- 2710(line=93, offs=57)
+*/
+ATSINSmove(tmp120, exp_mod_prime_56(tmpref114, tmpref111, arg2)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2680(line=93, offs=27) -- 2710(line=93, offs=57)
+*/
+ATSINSmove(tmpret104, atspre_g0int_mul_int(arg0, tmp120)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2650(line=92, offs=17) -- 2769(line=96, offs=20)
+*/
+/*
+INSletpop()
+*/
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2385(line=84, offs=13) -- 2785(line=97, offs=16)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2813(line=99, offs=13) -- 2814(line=99, offs=14)
+*/
+ATSINSmove(tmpret104, ATSPMVi0nt(1)) ;
+} /* ATSendif */
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2237(line=75, offs=3) -- 2832(line=101, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret104) ;
+} /* end of [exp_mod_prime_56] */
+
+/*
+/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$3(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__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret11__3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp12__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): 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__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): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret11__3, atspre_g1int_gt_int(arg0, tmp12__3)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret11__3) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__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=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__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: 2935(line=104, offs=5) -- 3781(line=133, offs=6)
+*/
+/*
+local: exp_5$0(level=0), is_prime_20$0(level=0), div_gt_zero_54$0(level=0), exp_mod_prime_56$0(level=0)
+global: witness_0$0(level=0), exp_5$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), div_gt_zero_54$0(level=0), exp_mod_prime_56$0(level=0), jacobi_62$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+jacobi_62(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret121, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2935(line=104, offs=5) -- 3781(line=133, offs=6)
+*/
+ATSINSflab(__patsflab_jacobi_62):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3000(line=105, offs=3) -- 3781(line=133, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3768(line=132, offs=5) -- 3775(line=132, offs=12)
+*/
+ATSINSmove(tmpret121, loop_68(arg0, arg1, ATSPMVi0nt(2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3000(line=105, offs=3) -- 3781(line=133, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret121) ;
+} /* end of [jacobi_62] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3012(line=106, offs=9) -- 3329(line=116, offs=12)
+*/
+/*
+local: exp_mod_prime_56$0(level=0)
+global: exp_mod_prime_56$0(level=0), legendre_63$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+legendre_63(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret122, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp123, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref124, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp125, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp126, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp127, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp128, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp131, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp132, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp133, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp136, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3012(line=106, offs=9) -- 3329(line=116, offs=12)
+*/
+ATSINSflab(__patsflab_legendre_63):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3090(line=107, offs=13) -- 3095(line=107, offs=18)
+*/
+ATSINSmove(tmp123, atspre_g0int_mod_int(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3084(line=107, offs=7) -- 3329(line=116, offs=12)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3109(line=108, offs=11) -- 3110(line=108, offs=12)
+*/
+ATSINSlab(__atstmplab9):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3090(line=107, offs=13) -- 3095(line=107, offs=18)
+*/
+ATSifnthen(ATSCKpat_int(tmp123, ATSPMVint(0))) { ATSINSgoto(__atstmplab11) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3110(line=108, offs=12) -- 3110(line=108, offs=12)
+*/
+ATSINSlab(__atstmplab10):
+/*
+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: 3114(line=108, offs=16) -- 3115(line=108, offs=17)
+*/
+ATSINSmove(tmpret122, ATSPMVi0nt(0)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3127(line=109, offs=12) -- 3127(line=109, offs=12)
+*/
+ATSINSlab(__atstmplab11):
+/*
+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: 3131(line=109, offs=16) -- 3329(line=116, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3149(line=110, offs=15) -- 3150(line=110, offs=16)
+*/
+/*
+ATSINStmpdec(tmpref124) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3171(line=110, offs=37) -- 3176(line=110, offs=42)
+*/
+ATSINSmove(tmp126, atspre_g1int_sub_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3170(line=110, offs=36) -- 3181(line=110, offs=47)
+*/
+ATSINSmove(tmp125, atspre_g1int_div_int(tmp126, ATSPMVi0nt(2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3153(line=110, offs=19) -- 3185(line=110, offs=51)
+*/
+ATSINSmove(tmpref124, exp_mod_prime_56(arg0, tmp125, arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3213(line=112, offs=17) -- 3214(line=112, offs=18)
+*/
+ATSINSmove(tmp127, tmpref124) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3207(line=112, offs=11) -- 3317(line=115, offs=21)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3233(line=113, offs=16) -- 3233(line=113, offs=16)
+*/
+ATSINSlab(__atstmplab12):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-guard:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3244(line=113, offs=27) -- 3249(line=113, offs=32)
+*/
+ATSINSmove(tmp132, atspre_g1int_sub_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3239(line=113, offs=22) -- 3250(line=113, offs=33)
+*/
+ATSINSmove(tmp131, atspre_g0int_mod_int(tmp127, tmp132)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3239(line=113, offs=22) -- 3254(line=113, offs=37)
+*/
+ATSINSmove(tmp128, ATSLIB_056_prelude__eq_g0int_int__12__8(tmp131, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3239(line=113, offs=22) -- 3254(line=113, offs=37)
+*/
+ATSifnthen(ATSCKpat_bool(tmp128, ATSPMVbool_true())) { ATSINSgoto(__atstmplab13) ; } ;
+/*
+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: 3258(line=113, offs=41) -- 3260(line=113, offs=43)
+*/
+ATSINSmove(tmpret122, atspre_g1int_neg_int(ATSPMVi0nt(1))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3276(line=114, offs=16) -- 3276(line=114, offs=16)
+*/
+ATSINSlab(__atstmplab13):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-guard:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3282(line=114, offs=22) -- 3287(line=114, offs=27)
+*/
+ATSINSmove(tmp136, atspre_g0int_mod_int(tmp127, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3282(line=114, offs=22) -- 3291(line=114, offs=31)
+*/
+ATSINSmove(tmp133, ATSLIB_056_prelude__eq_g0int_int__12__9(tmp136, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3282(line=114, offs=22) -- 3291(line=114, offs=31)
+*/
+ATSifnthen(ATSCKpat_bool(tmp133, ATSPMVbool_true())) { ATSINSgoto(__atstmplab14) ; } ;
+/*
+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: 3295(line=114, offs=35) -- 3296(line=114, offs=36)
+*/
+ATSINSmove(tmpret122, ATSPMVi0nt(0)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3312(line=115, offs=16) -- 3312(line=115, offs=16)
+*/
+ATSINSlab(__atstmplab14):
+/*
+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: 3316(line=115, offs=20) -- 3317(line=115, offs=21)
+*/
+ATSINSmove(tmpret122, ATSPMVi0nt(1)) ;
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3131(line=109, offs=16) -- 3329(line=116, offs=12)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret122) ;
+} /* end of [legendre_63] */
+
+/*
+/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=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__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] */
+
+/*
+/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: 3343(line=118, offs=9) -- 3498(line=121, offs=17)
+*/
+/*
+local: div_gt_zero_54$0(level=0), get_multiplicity_67$0(level=1)
+global: div_gt_zero_54$0(level=0), get_multiplicity_67$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+get_multiplicity_67(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret137, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp138, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp139, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp140, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3343(line=118, offs=9) -- 3498(line=121, offs=17)
+*/
+ATSINSflab(__patsflab_get_multiplicity_67):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3415(line=119, offs=13) -- 3420(line=119, offs=18)
+*/
+ATSINSmove(tmp138, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3409(line=119, offs=7) -- 3498(line=121, offs=17)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3434(line=120, offs=11) -- 3435(line=120, offs=12)
+*/
+ATSINSlab(__atstmplab15):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3415(line=119, offs=13) -- 3420(line=119, offs=18)
+*/
+ATSifnthen(ATSCKpat_int(tmp138, ATSPMVint(0))) { ATSINSgoto(__atstmplab17) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3435(line=120, offs=12) -- 3435(line=120, offs=12)
+*/
+ATSINSlab(__atstmplab16):
+/*
+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: 3460(line=120, offs=37) -- 3477(line=120, offs=54)
+*/
+ATSINSmove(tmp140, div_gt_zero_54(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3443(line=120, offs=20) -- 3481(line=120, offs=58)
+*/
+ATSINSmove(tmp139, get_multiplicity_67(tmp140, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3439(line=120, offs=16) -- 3481(line=120, offs=58)
+*/
+ATSINSmove(tmpret137, atspre_g1int_add_int(ATSPMVi0nt(1), tmp139)) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3493(line=121, offs=12) -- 3493(line=121, offs=12)
+*/
+ATSINSlab(__atstmplab17):
+/*
+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: 3497(line=121, offs=16) -- 3498(line=121, offs=17)
+*/
+ATSINSmove(tmpret137, ATSPMVi0nt(0)) ;
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret137) ;
+} /* end of [get_multiplicity_67] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3512(line=123, offs=9) -- 3758(line=130, offs=24)
+*/
+/*
+local: exp_5$0(level=0), is_prime_20$0(level=0), legendre_63$0(level=1), get_multiplicity_67$0(level=1), loop_68$0(level=1)
+global: exp_5$0(level=0), is_prime_20$0(level=0), div_gt_zero_54$0(level=0), exp_mod_prime_56$0(level=0), legendre_63$0(level=1), get_multiplicity_67$0(level=1), loop_68$0(level=1)
+local: a$5144(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), n$5145(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: a$5144(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), n$5145(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_68(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret141, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp142, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp145, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp146, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp149, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp150, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp151, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp152, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp153, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp154, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp155, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3512(line=123, offs=9) -- 3758(line=130, offs=24)
+*/
+ATSINSflab(__patsflab_loop_68):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3569(line=124, offs=10) -- 3576(line=124, offs=17)
+*/
+ATSINSmove(tmp142, ATSLIB_056_prelude__gt_g1int_int__6__4(arg0, env1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3566(line=124, offs=7) -- 3758(line=130, offs=24)
+*/
+ATSif(
+tmp142
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3590(line=125, offs=9) -- 3591(line=125, offs=10)
+*/
+ATSINSmove(tmpret141, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3614(line=127, offs=12) -- 3641(line=127, offs=39)
+*/
+ATSINSmove(tmp149, atspre_g0int_mod_int(env0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3614(line=127, offs=12) -- 3641(line=127, offs=39)
+*/
+ATSINSmove(tmp146, ATSLIB_056_prelude__eq_g0int_int__12__10(tmp149, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3614(line=127, offs=12) -- 3641(line=127, offs=39)
+*/
+ATSif(
+tmp146
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3614(line=127, offs=12) -- 3641(line=127, offs=39)
+*/
+ATSINSmove(tmp145, is_prime_20(arg0)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3614(line=127, offs=12) -- 3641(line=127, offs=39)
+*/
+ATSINSmove(tmp145, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3611(line=127, offs=9) -- 3758(line=130, offs=24)
+*/
+ATSif(
+tmp145
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3663(line=128, offs=16) -- 3670(line=128, offs=23)
+*/
+ATSINSmove(tmp151, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3658(line=128, offs=11) -- 3671(line=128, offs=24)
+*/
+ATSINSmove(tmp150, loop_68(env0, env1, tmp151)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3678(line=128, offs=31) -- 3694(line=128, offs=47)
+*/
+ATSINSmove(tmp153, legendre_63(arg0, env1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3696(line=128, offs=49) -- 3720(line=128, offs=73)
+*/
+ATSINSmove(tmp154, get_multiplicity_67(env0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3674(line=128, offs=27) -- 3721(line=128, offs=74)
+*/
+ATSINSmove(tmp152, exp_5(tmp153, tmp154)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3658(line=128, offs=11) -- 3721(line=128, offs=74)
+*/
+ATSINSmove(tmpret141, atspre_g0int_mul_int(tmp150, tmp152)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3750(line=130, offs=16) -- 3757(line=130, offs=23)
+*/
+ATSINSmove(tmp155, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3745(line=130, offs=11) -- 3758(line=130, offs=24)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp155) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSfgoto(__patsflab_loop_68) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret141) ;
+} /* end of [loop_68] */
+
+/*
+/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$4(level=2)
+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__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret11__4, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp12__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): 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__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): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret11__4, atspre_g1int_gt_int(arg0, tmp12__4)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret11__4) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__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$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] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3786(line=135, offs=4) -- 4097(line=147, offs=6)
+*/
+/*
+local: 
+global: count_divisors_71$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+count_divisors_71(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret156, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3786(line=135, offs=4) -- 4097(line=147, offs=6)
+*/
+ATSINSflab(__patsflab_count_divisors_71):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3828(line=136, offs=3) -- 4097(line=147, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4081(line=146, offs=5) -- 4091(line=146, offs=15)
+*/
+ATSINSmove(tmpret156, loop_72(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3828(line=136, offs=3) -- 4097(line=147, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret156) ;
+} /* end of [count_divisors_71] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3840(line=137, offs=9) -- 4071(line=144, offs=27)
+*/
+/*
+local: loop_72$0(level=1)
+global: loop_72$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_72(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(tmpret157, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp158, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp161, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp164, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp165, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp166, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp167, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3840(line=137, offs=9) -- 4071(line=144, offs=27)
+*/
+ATSINSflab(__patsflab_loop_72):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3938(line=138, offs=10) -- 3946(line=138, offs=18)
+*/
+ATSINSmove(tmp158, 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: 3935(line=138, offs=7) -- 4071(line=144, offs=27)
+*/
+ATSif(
+tmp158
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3960(line=139, offs=9) -- 3961(line=139, offs=10)
+*/
+ATSINSmove(tmpret157, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3984(line=141, offs=12) -- 3991(line=141, offs=19)
+*/
+ATSINSmove(tmp164, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3984(line=141, offs=12) -- 3995(line=141, offs=23)
+*/
+ATSINSmove(tmp161, ATSLIB_056_prelude__eq_g0int_int__12__11(tmp164, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3981(line=141, offs=9) -- 4071(line=144, offs=27)
+*/
+ATSif(
+tmp161
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4023(line=142, offs=23) -- 4030(line=142, offs=30)
+*/
+ATSINSmove(tmp166, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4015(line=142, offs=15) -- 4031(line=142, offs=31)
+*/
+ATSINSmove(tmp165, loop_72(arg0, tmp166)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4011(line=142, offs=11) -- 4031(line=142, offs=31)
+*/
+ATSINSmove(tmpret157, atspre_g0int_add_int(ATSPMVi0nt(1), tmp165)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4063(line=144, offs=19) -- 4070(line=144, offs=26)
+*/
+ATSINSmove(tmp167, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4055(line=144, offs=11) -- 4071(line=144, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp167) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_72) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret157) ;
+} /* end of [loop_72] */
+
+/*
+/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(tmpret68__3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp69__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(tmp69__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(tmpret68__3, atspre_g1int_gte_int(arg0, tmp69__3)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret68__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$11(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__11(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret18__11, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__11, 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__11, 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__11, atspre_g0int_eq_int(arg0, tmp19__11)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret18__11) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__11] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4102(line=149, offs=4) -- 4413(line=161, offs=6)
+*/
+/*
+local: 
+global: sum_divisors_76$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+sum_divisors_76(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.dats: 4102(line=149, offs=4) -- 4413(line=161, offs=6)
+*/
+ATSINSflab(__patsflab_sum_divisors_76):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4142(line=150, offs=3) -- 4413(line=161, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4397(line=160, offs=5) -- 4407(line=160, offs=15)
+*/
+ATSINSmove(tmpret168, loop_77(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4142(line=150, offs=3) -- 4413(line=161, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret168) ;
+} /* end of [sum_divisors_76] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4154(line=151, offs=9) -- 4387(line=158, offs=27)
+*/
+/*
+local: loop_77$0(level=1)
+global: loop_77$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_77(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(tmpret169, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp170, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp173, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp176, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp177, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp178, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp179, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4154(line=151, offs=9) -- 4387(line=158, offs=27)
+*/
+ATSINSflab(__patsflab_loop_77):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4252(line=152, offs=10) -- 4260(line=152, offs=18)
+*/
+ATSINSmove(tmp170, 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: 4249(line=152, offs=7) -- 4387(line=158, offs=27)
+*/
+ATSif(
+tmp170
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4274(line=153, offs=9) -- 4275(line=153, offs=10)
+*/
+ATSINSmove(tmpret169, ATSPMVi0nt(0)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4298(line=155, offs=12) -- 4305(line=155, offs=19)
+*/
+ATSINSmove(tmp176, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4298(line=155, offs=12) -- 4309(line=155, offs=23)
+*/
+ATSINSmove(tmp173, ATSLIB_056_prelude__eq_g0int_int__12__12(tmp176, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4295(line=155, offs=9) -- 4387(line=158, offs=27)
+*/
+ATSif(
+tmp173
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4339(line=156, offs=25) -- 4346(line=156, offs=32)
+*/
+ATSINSmove(tmp178, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4331(line=156, offs=17) -- 4347(line=156, offs=33)
+*/
+ATSINSmove(tmp177, loop_77(arg0, tmp178)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4325(line=156, offs=11) -- 4347(line=156, offs=33)
+*/
+ATSINSmove(tmpret169, atspre_g0int_add_int(arg1, tmp177)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4379(line=158, offs=19) -- 4386(line=158, offs=26)
+*/
+ATSINSmove(tmp179, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4371(line=158, offs=11) -- 4387(line=158, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp179) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_77) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret169) ;
+} /* end of [loop_77] */
+
+/*
+/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(tmpret68__4, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp69__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(tmp69__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(tmpret68__4, atspre_g1int_gte_int(arg0, tmp69__4)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret68__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$12(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__12(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret18__12, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__12, 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__12, 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__12, atspre_g0int_eq_int(arg0, tmp19__12)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret18__12) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__12] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4418(line=163, offs=4) -- 4476(line=164, offs=22)
+*/
+/*
+local: sum_divisors_76$0(level=0)
+global: sum_divisors_76$0(level=0), is_perfect_80$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+is_perfect_80(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret180, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp183, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4418(line=163, offs=4) -- 4476(line=164, offs=22)
+*/
+ATSINSflab(__patsflab_is_perfect_80):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4457(line=164, offs=3) -- 4471(line=164, offs=17)
+*/
+ATSINSmove(tmp183, sum_divisors_76(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4457(line=164, offs=3) -- 4476(line=164, offs=22)
+*/
+ATSINSmove(tmpret180, ATSLIB_056_prelude__eq_g0int_int__12__13(tmp183, arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret180) ;
+} /* end of [is_perfect_80] */
+
+/*
+/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$13(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__13(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret18__13, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__13, 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__13, 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__13, atspre_g0int_eq_int(arg0, tmp19__13)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret18__13) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__13] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4508(line=167, offs=4) -- 4889(line=182, 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_82$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+little_omega_82(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret184, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4508(line=167, offs=4) -- 4889(line=182, offs=6)
+*/
+ATSINSflab(__patsflab_little_omega_82):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4548(line=168, offs=3) -- 4889(line=182, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4873(line=181, offs=5) -- 4883(line=181, offs=15)
+*/
+ATSINSmove(tmpret184, loop_83(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4548(line=168, offs=3) -- 4889(line=182, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret184) ;
+} /* end of [little_omega_82] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4560(line=169, offs=9) -- 4863(line=179, offs=27)
+*/
+/*
+local: is_prime_20$0(level=0), loop_83$0(level=1)
+global: is_prime_20$0(level=0), loop_83$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_83(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(tmpret185, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp186, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp189, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp190, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp191, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp194, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp195, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp196, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp197, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4560(line=169, offs=9) -- 4863(line=179, offs=27)
+*/
+ATSINSflab(__patsflab_loop_83):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4658(line=170, offs=10) -- 4666(line=170, offs=18)
+*/
+ATSINSmove(tmp186, ATSLIB_056_prelude__gte_g1int_int__38__5(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4655(line=170, offs=7) -- 4863(line=179, offs=27)
+*/
+ATSif(
+tmp186
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4683(line=171, offs=12) -- 4693(line=171, offs=22)
+*/
+ATSINSmove(tmp189, is_prime_20(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4680(line=171, offs=9) -- 4736(line=174, offs=12)
+*/
+ATSif(
+tmp189
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4710(line=172, offs=11) -- 4711(line=172, offs=12)
+*/
+ATSINSmove(tmpret185, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4735(line=174, offs=11) -- 4736(line=174, offs=12)
+*/
+ATSINSmove(tmpret185, ATSPMVi0nt(0)) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4759(line=176, offs=12) -- 4786(line=176, offs=39)
+*/
+ATSINSmove(tmp194, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4759(line=176, offs=12) -- 4786(line=176, offs=39)
+*/
+ATSINSmove(tmp191, ATSLIB_056_prelude__eq_g0int_int__12__14(tmp194, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4759(line=176, offs=12) -- 4786(line=176, offs=39)
+*/
+ATSif(
+tmp191
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4759(line=176, offs=12) -- 4786(line=176, offs=39)
+*/
+ATSINSmove(tmp190, is_prime_20(arg1)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4759(line=176, offs=12) -- 4786(line=176, offs=39)
+*/
+ATSINSmove(tmp190, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4756(line=176, offs=9) -- 4863(line=179, offs=27)
+*/
+ATSif(
+tmp190
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4815(line=177, offs=23) -- 4822(line=177, offs=30)
+*/
+ATSINSmove(tmp196, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4807(line=177, offs=15) -- 4823(line=177, offs=31)
+*/
+ATSINSmove(tmp195, loop_83(arg0, tmp196)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4803(line=177, offs=11) -- 4823(line=177, offs=31)
+*/
+ATSINSmove(tmpret185, atspre_g0int_add_int(ATSPMVi0nt(1), tmp195)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4855(line=179, offs=19) -- 4862(line=179, offs=26)
+*/
+ATSINSmove(tmp197, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4847(line=179, offs=11) -- 4863(line=179, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp197) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_83) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret185) ;
+} /* end of [loop_83] */
+
+/*
+/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(tmpret68__5, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp69__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(tmp69__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(tmpret68__5, atspre_g1int_gte_int(arg0, tmp69__5)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret68__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$14(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__14(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret18__14, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__14, 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__14, 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__14, atspre_g0int_eq_int(arg0, tmp19__14)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret18__14) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__14] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4923(line=185, offs=4) -- 5471(line=205, 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_86$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+totient_86(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret198, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4923(line=185, offs=4) -- 5471(line=205, offs=10)
+*/
+ATSINSflab(__patsflab_totient_86):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4956(line=186, offs=3) -- 5471(line=205, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4973(line=187, offs=7) -- 4974(line=187, offs=8)
+*/
+ATSINSlab(__atstmplab18):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4931(line=185, offs=12) -- 4932(line=185, offs=13)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab20) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4974(line=187, offs=8) -- 4974(line=187, offs=8)
+*/
+ATSINSlab(__atstmplab19):
+/*
+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: 4978(line=187, offs=12) -- 4979(line=187, offs=13)
+*/
+ATSINSmove(tmpret198, ATSPMVi0nt(1)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 4987(line=188, offs=8) -- 4987(line=188, offs=8)
+*/
+ATSINSlab(__atstmplab20):
+/*
+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: 5013(line=190, offs=9) -- 5461(line=204, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5439(line=203, offs=11) -- 5449(line=203, offs=21)
+*/
+ATSINSmove(tmpret198, loop_87(ATSPMVi0nt(1), arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5013(line=190, offs=9) -- 5461(line=204, offs=12)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret198) ;
+} /* end of [totient_86] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5031(line=191, offs=15) -- 5417(line=201, offs=31)
+*/
+/*
+local: is_prime_20$0(level=0), loop_87$0(level=1)
+global: is_prime_20$0(level=0), loop_87$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_87(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(tmpret199, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp200, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp203, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp204, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp205, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp206, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp209, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp214, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp215, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp216, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp217, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp218, 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: 5031(line=191, offs=15) -- 5417(line=201, offs=31)
+*/
+ATSINSflab(__patsflab_loop_87):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5142(line=192, offs=16) -- 5148(line=192, offs=22)
+*/
+ATSINSmove(tmp200, ATSLIB_056_prelude__gte_g1int_int__38__6(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5139(line=192, offs=13) -- 5417(line=201, offs=31)
+*/
+ATSif(
+tmp200
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5171(line=193, offs=18) -- 5181(line=193, offs=28)
+*/
+ATSINSmove(tmp203, is_prime_20(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5168(line=193, offs=15) -- 5246(line=196, offs=18)
+*/
+ATSif(
+tmp203
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5204(line=194, offs=17) -- 5209(line=194, offs=22)
+*/
+ATSINSmove(tmpret199, atspre_g1int_sub_int(arg1, ATSPMVi0nt(1))) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5245(line=196, offs=17) -- 5246(line=196, offs=18)
+*/
+ATSINSmove(tmpret199, arg1) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5281(line=198, offs=18) -- 5315(line=198, offs=52)
+*/
+ATSINSmove(tmp209, atspre_g0int_mod_int(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5281(line=198, offs=18) -- 5315(line=198, offs=52)
+*/
+ATSINSmove(tmp206, ATSLIB_056_prelude__eq_g0int_int__12__15(tmp209, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5281(line=198, offs=18) -- 5315(line=198, offs=52)
+*/
+ATSif(
+tmp206
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5281(line=198, offs=18) -- 5315(line=198, offs=52)
+*/
+ATSINSmove(tmp205, is_prime_20(arg0)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5281(line=198, offs=18) -- 5315(line=198, offs=52)
+*/
+ATSINSmove(tmp205, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5281(line=198, offs=18) -- 5315(line=198, offs=52)
+*/
+ATSif(
+tmp205
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5281(line=198, offs=18) -- 5315(line=198, offs=52)
+*/
+ATSINSmove(tmp204, ATSLIB_056_prelude__neq_g1int_int__90__1(arg0, arg1)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5281(line=198, offs=18) -- 5315(line=198, offs=52)
+*/
+ATSINSmove(tmp204, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5278(line=198, offs=15) -- 5417(line=201, offs=31)
+*/
+ATSif(
+tmp204
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5343(line=199, offs=23) -- 5348(line=199, offs=28)
+*/
+ATSINSmove(tmp216, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5338(line=199, offs=18) -- 5352(line=199, offs=32)
+*/
+ATSINSmove(tmp215, loop_87(tmp216, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5338(line=199, offs=18) -- 5356(line=199, offs=36)
+*/
+ATSINSmove(tmp214, atspre_g0int_div_int(tmp215, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5361(line=199, offs=41) -- 5366(line=199, offs=46)
+*/
+ATSINSmove(tmp217, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5337(line=199, offs=17) -- 5367(line=199, offs=47)
+*/
+ATSINSmove(tmpret199, atspre_g0int_mul_int(tmp214, tmp217)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5408(line=201, offs=22) -- 5413(line=201, offs=27)
+*/
+ATSINSmove(tmp218, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5403(line=201, offs=17) -- 5417(line=201, offs=31)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp218) ;
+ATSINSmove_tlcal(apy1, arg1) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_87) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret199) ;
+/*
+emit_funent_fnxbodylst:
+*/
+} /* end of [loop_87] */
+
+/*
+/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$6(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__6(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret68__6, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp69__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): 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(tmp69__6, 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(tmpret68__6, atspre_g1int_gte_int(arg0, tmp69__6)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret68__6) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__38__6] */
+
+/*
+/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$15(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__15(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret18__15, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp19__15, 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__15, 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__15, atspre_g0int_eq_int(arg0, tmp19__15)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret18__15) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__15] */
+
+#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$90$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__90(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret210, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp211, 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(tmp211, 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(tmpret210, PMVtmpltcst(g1int_neq<S2Evar(tk(4712))>)(arg0, tmp211)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret210) ;
+} /* end of [ATSLIB_056_prelude__neq_g1int_int__90] */
+#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$90$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__90__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret210__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp211__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(tmp211__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(tmpret210__1, atspre_g1int_neq_int(arg0, tmp211__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret210__1) ;
+} /* end of [ATSLIB_056_prelude__neq_g1int_int__90__1] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5555(line=209, offs=5) -- 5943(line=223, offs=6)
+*/
+/*
+local: witness_0$0(level=0), totient_86$0(level=0)
+global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), totient_86$0(level=0), totient_sum_93$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+totient_sum_93(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret219, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5555(line=209, offs=5) -- 5943(line=223, offs=6)
+*/
+ATSINSflab(__patsflab_totient_sum_93):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5595(line=210, offs=3) -- 5943(line=223, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5927(line=222, offs=5) -- 5937(line=222, offs=15)
+*/
+ATSINSmove(tmpret219, loop_94(ATSPMVi0nt(1), arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5595(line=210, offs=3) -- 5943(line=223, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret219) ;
+} /* end of [totient_sum_93] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5607(line=211, offs=9) -- 5917(line=220, offs=40)
+*/
+/*
+local: witness_0$0(level=0), totient_86$0(level=0), loop_94$0(level=1)
+global: witness_0$0(level=0), totient_86$0(level=0), loop_94$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_94(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(tmpret220, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp221, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp224, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp225, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp230, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp231, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp239, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp240, 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: 5607(line=211, offs=9) -- 5917(line=220, offs=40)
+*/
+ATSINSflab(__patsflab_loop_94):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5710(line=212, offs=10) -- 5719(line=212, offs=19)
+*/
+ATSINSmove(tmp221, 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: 5707(line=212, offs=7) -- 5917(line=220, offs=40)
+*/
+ATSif(
+tmp221
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5733(line=213, offs=9) -- 5866(line=218, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5760(line=214, offs=24) -- 5765(line=214, offs=29)
+*/
+ATSINSmove(tmp225, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5755(line=214, offs=19) -- 5773(line=214, offs=37)
+*/
+ATSINSmove(tmp224, loop_94(tmp225, arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5819(line=215, offs=46) -- 5828(line=215, offs=55)
+*/
+ATSINSmove(tmp231, totient_86(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5811(line=215, offs=38) -- 5830(line=215, offs=57)
+*/
+ATSINSmove(tmp230, witness_0(tmp231)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5792(line=215, offs=19) -- 5831(line=215, offs=58)
+*/
+ATSINSmove(tmpret220, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__96__1(tmp224, tmp230)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5733(line=213, offs=9) -- 5866(line=218, offs=12)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5886(line=220, offs=9) -- 5917(line=220, offs=40)
+*/
+ATSINSmove(tmp240, totient_86(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5886(line=220, offs=9) -- 5917(line=220, offs=40)
+*/
+ATSINSmove(tmp239, witness_0(tmp240)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 5886(line=220, offs=9) -- 5917(line=220, offs=40)
+*/
+ATSINSmove(tmpret220, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__98__1(tmp239)) ;
+
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret220) ;
+/*
+emit_funent_fnxbodylst:
+*/
+} /* end of [loop_94] */
+
+/*
+/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(tmpret33__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp34__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(tmp34__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(tmpret33__2, atspre_g1int_lt_int(arg0, tmp34__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret33__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$96$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__96(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret226, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp227) ;
+/* 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(tmp227, 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(tmpret226, 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(tmpret226) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__96] */
+#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$96$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__96__1(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret226__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp227__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(tmp227__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(tmpret226__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(tmpret226__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__96__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$98$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__98(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret232, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp233, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp234) ;
+/* 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(tmp233, 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(tmp234, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp233, 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(tmpret232, tmp233) ;
+/*
+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(tmpret232) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__98] */
+#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$98$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__98__1(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret232__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp233__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp234__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(tmp233__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(tmp234__1, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp233__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(tmpret232__1, tmp233__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(tmpret232__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__98__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: 556(line=30, offs=28) -- 578(line=31, offs=17)
+*/
+/*
+local: sum_divisors_76$0(level=0)
+global: sum_divisors_76$0(level=0), sum_divisors_ats$101$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+sum_divisors_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret241, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 539(line=30, offs=11) -- 579(line=31, offs=18)
+*/
+ATSINSflab(__patsflab_sum_divisors_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 564(line=31, offs=3) -- 578(line=31, offs=17)
+*/
+ATSINSmove(tmpret241, sum_divisors_76(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret241) ;
+} /* end of [sum_divisors_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 610(line=33, offs=30) -- 634(line=34, offs=19)
+*/
+/*
+local: count_divisors_71$0(level=0)
+global: count_divisors_71$0(level=0), count_divisors_ats$102$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+count_divisors_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret242, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 591(line=33, offs=11) -- 635(line=34, offs=20)
+*/
+ATSINSflab(__patsflab_count_divisors_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 618(line=34, offs=3) -- 634(line=34, offs=19)
+*/
+ATSINSmove(tmpret242, count_divisors_71(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret242) ;
+} /* end of [count_divisors_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 659(line=36, offs=23) -- 676(line=37, offs=12)
+*/
+/*
+local: totient_86$0(level=0)
+global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), totient_86$0(level=0), totient_ats$103$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+totient_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret243, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 647(line=36, offs=11) -- 677(line=37, offs=13)
+*/
+ATSINSflab(__patsflab_totient_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 667(line=37, offs=3) -- 676(line=37, offs=12)
+*/
+ATSINSmove(tmpret243, totient_86(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret243) ;
+} /* end of [totient_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 706(line=39, offs=28) -- 728(line=40, offs=17)
+*/
+/*
+local: little_omega_82$0(level=0)
+global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), little_omega_82$0(level=0), little_omega_ats$104$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+little_omega_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret244, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 689(line=39, offs=11) -- 729(line=40, offs=18)
+*/
+ATSINSflab(__patsflab_little_omega_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 714(line=40, offs=3) -- 728(line=40, offs=17)
+*/
+ATSINSmove(tmpret244, little_omega_82(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret244) ;
+} /* end of [little_omega_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 756(line=42, offs=26) -- 776(line=43, offs=15)
+*/
+/*
+local: is_perfect_80$0(level=0)
+global: sum_divisors_76$0(level=0), is_perfect_80$0(level=0), is_perfect_ats$105$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_bool)
+is_perfect_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret245, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 741(line=42, offs=11) -- 777(line=43, offs=16)
+*/
+ATSINSflab(__patsflab_is_perfect_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 764(line=43, offs=3) -- 776(line=43, offs=15)
+*/
+ATSINSmove(tmpret245, is_perfect_80(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret245) ;
+} /* end of [is_perfect_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 800(line=45, offs=22) -- 823(line=46, offs=15)
+*/
+/*
+local: jacobi_62$0(level=0)
+global: witness_0$0(level=0), exp_5$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), div_gt_zero_54$0(level=0), exp_mod_prime_56$0(level=0), jacobi_62$0(level=0), jacobi_ats$106$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+jacobi_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret246, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 789(line=45, offs=11) -- 823(line=46, offs=15)
+*/
+ATSINSflab(__patsflab_jacobi_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 811(line=46, offs=3) -- 823(line=46, offs=15)
+*/
+ATSINSmove(tmpret246, jacobi_62(arg0, arg1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret246) ;
+} /* end of [jacobi_ats] */
 
 /*
 ** for initialization(dynloading)
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-11: 12h:57m
+** The starting compilation time is: 2018-1-11: 15h:33m
 **
 */
 
@@ -739,7 +739,7 @@
 } /* 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)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 722(line=26, offs=5) -- 1163(line=47, offs=10)
 */
 /*
 local: exp_5$0(level=0)
@@ -760,15 +760,17 @@
 ATStmpdec(tmpref16, atstkind_t0ype(atstype_int)) ;
 ATStmpdec(tmp17, atstkind_t0ype(atstype_bool)) ;
 ATStmpdec(tmp22, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp23, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref23, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp24, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp25, 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 722(line=26, offs=5) -- 1163(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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 774(line=27, offs=3) -- 1163(line=47, offs=10)
 */
 ATScaseof_beg()
 /*
@@ -816,13 +818,13 @@
 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 831(line=31, offs=9) -- 1153(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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 855(line=32, offs=11) -- 1128(line=44, offs=14)
 */
 /*
 letpush(beg)
@@ -859,7 +861,7 @@
 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 940(line=36, offs=13) -- 1114(line=43, offs=18)
 */
 ATSif(
 tmp17
@@ -882,47 +884,56 @@
 
 } 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1015(line=39, offs=15) -- 1114(line=43, offs=18)
 */
 /*
 letpush(beg)
 */
 /*
-letpush(end)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1039(line=40, offs=21) -- 1040(line=40, offs=22)
 */
+/*
+ATSINStmpdec(tmpref23) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1051(line=40, offs=33) -- 1056(line=40, offs=38)
+*/
+ATSINSmove(tmp25, atspre_g0int_mul_int(arg0, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1047(line=40, offs=29) -- 1052(line=40, offs=34)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1047(line=40, offs=29) -- 1061(line=40, offs=43)
 */
-ATSINSmove(tmp23, atspre_g0int_mul_int(arg0, arg0)) ;
+ATSINSmove(tmp24, exp_5(tmp25, tmpref15)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1043(line=40, offs=25) -- 1057(line=40, offs=39)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1043(line=40, offs=25) -- 1061(line=40, offs=43)
 */
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp23) ;
-ATSINSmove_tlcal(apy1, tmpref15) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_exp_5) ;
-ATStailcal_end()
+ATSINSmove(tmpref23, atspre_g0int_mul_int(arg0, tmp24)) ;
 
 /*
-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(end)
 */
+
 /*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1095(line=42, offs=17) -- 1096(line=42, offs=18)
+*/
+ATSINSmove(tmpret9, tmpref23) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1015(line=39, offs=15) -- 1114(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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 855(line=32, offs=11) -- 1128(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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1152(line=46, offs=11) -- 1153(line=46, offs=12)
 */
 ATSINSmove(tmpret9, ATSPMVi0nt(1)) ;
 } /* ATSendif */
@@ -1106,7 +1117,7 @@
 } /* 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)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1168(line=49, offs=4) -- 1312(line=54, offs=6)
 */
 /*
 local: witness_0$0(level=0)
@@ -1119,64 +1130,64 @@
 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)) ;
+ATStmpdec(tmpret26, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref27, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp28, atstkind_t0ype(atstype_float)) ;
+ATStmpdec(tmp29, 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1168(line=49, offs=4) -- 1312(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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1218(line=50, offs=3) -- 1312(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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1230(line=51, offs=9) -- 1235(line=51, offs=14)
 */
 /*
-ATSINStmpdec(tmpref25) ;
+ATSINStmpdec(tmpref27) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1262(line=51, offs=45) -- 1275(line=51, offs=58)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1266(line=51, offs=45) -- 1279(line=51, offs=58)
 */
-ATSINSmove(tmp27, atspre_g0int2float_int_float(arg0)) ;
+ATSINSmove(tmp29, 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1255(line=51, offs=34) -- 1281(line=51, offs=60)
 */
-ATSINSmove(tmp26, atslib_libats_libc_sqrt_float(tmp27)) ;
+ATSINSmove(tmp28, atslib_libats_libc_sqrt_float(tmp29)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1239(line=51, offs=22) -- 1278(line=51, offs=61)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1243(line=51, offs=22) -- 1282(line=51, offs=61)
 */
-ATSINSmove(tmpref25, atspre_g0float2int_float_int(tmp26)) ;
+ATSINSmove(tmpref27, atspre_g0float2int_float_int(tmp28)) ;
 
 /*
 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1292(line=53, offs=5) -- 1305(line=53, offs=18)
 */
-ATSINSmove(tmpret24, witness_0(tmpref25)) ;
+ATSINSmove(tmpret26, witness_0(tmpref27)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1214(line=50, offs=3) -- 1308(line=54, offs=6)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1218(line=50, offs=3) -- 1312(line=54, offs=6)
 */
 /*
 INSletpop()
 */
 ATSfunbody_end()
-ATSreturn(tmpret24) ;
+ATSreturn(tmpret26) ;
 } /* 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)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1348(line=57, offs=4) -- 1933(line=80, offs=10)
 */
 /*
 local: sqrt_int_17$0(level=0)
@@ -1189,16 +1200,16 @@
 is_prime_20(atstkind_t0ype(atstype_int) arg0)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret28, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp49, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret30, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp51, 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1348(line=57, offs=4) -- 1933(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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1384(line=58, offs=3) -- 1933(line=80, offs=10)
 */
 ATScaseof_beg()
 /*
@@ -1206,15 +1217,15 @@
 */
 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1401(line=59, offs=7) -- 1402(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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1357(line=57, offs=13) -- 1358(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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1402(line=59, offs=8) -- 1402(line=59, offs=8)
 */
 ATSINSlab(__atstmplab4):
 /*
@@ -1224,14 +1235,14 @@
 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1406(line=59, offs=12) -- 1411(line=59, offs=17)
 */
-ATSINSmove(tmpret28, ATSPMVbool_false()) ;
+ATSINSmove(tmpret30, 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1419(line=60, offs=8) -- 1419(line=60, offs=8)
 */
 ATSINSlab(__atstmplab5):
 /*
@@ -1241,7 +1252,7 @@
 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1444(line=62, offs=9) -- 1923(line=79, offs=12)
 */
 /*
 letpush(beg)
@@ -1251,17 +1262,17 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1895(line=78, offs=19) -- 1905(line=78, offs=29)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1899(line=78, offs=19) -- 1909(line=78, offs=29)
 */
-ATSINSmove(tmp49, sqrt_int_17(arg0)) ;
+ATSINSmove(tmp51, 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1891(line=78, offs=11) -- 1911(line=78, offs=31)
 */
-ATSINSmove(tmpret28, loop_21(arg0, ATSPMVi0nt(2), tmp49)) ;
+ATSINSmove(tmpret30, loop_21(arg0, ATSPMVi0nt(2), tmp51)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1440(line=62, offs=9) -- 1919(line=79, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1444(line=62, offs=9) -- 1923(line=79, offs=12)
 */
 /*
 INSletpop()
@@ -1274,11 +1285,11 @@
 ATScaseof_end()
 
 ATSfunbody_end()
-ATSreturn(tmpret28) ;
+ATSreturn(tmpret30) ;
 } /* 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)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1462(line=63, offs=15) -- 1869(line=76, offs=21)
 */
 /*
 local: loop_21$0(level=1)
@@ -1293,65 +1304,65 @@
 /* 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)) ;
+ATStmpdec(tmpret31, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp32, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp37, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp40, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp41, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp42, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp47, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp50, 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1462(line=63, offs=15) -- 1869(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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1556(line=64, offs=16) -- 1565(line=64, offs=25)
 */
-ATSINSmove(tmp30, ATSLIB_056_prelude__lt_g1int_int__22__1(arg0, arg1)) ;
+ATSINSmove(tmp32, 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1553(line=64, offs=13) -- 1869(line=76, offs=21)
 */
 ATSif(
-tmp30
+tmp32
 ) 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1588(line=65, offs=18) -- 1593(line=65, offs=23)
 */
-ATSINSmove(tmp38, atspre_g0int_mod_int(env0, arg0)) ;
+ATSINSmove(tmp40, 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1588(line=65, offs=18) -- 1597(line=65, offs=27)
 */
-ATSINSmove(tmp35, ATSLIB_056_prelude__eq_g0int_int__12__2(tmp38, ATSPMVi0nt(0))) ;
+ATSINSmove(tmp37, ATSLIB_056_prelude__eq_g0int_int__12__2(tmp40, 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1585(line=65, offs=15) -- 1678(line=68, offs=35)
 */
 ATSif(
-tmp35
+tmp37
 ) 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1619(line=66, offs=17) -- 1624(line=66, offs=22)
 */
-ATSINSmove(tmpret29, ATSPMVbool_false()) ;
+ATSINSmove(tmpret31, 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1665(line=68, offs=22) -- 1670(line=68, offs=27)
 */
-ATSINSmove(tmp39, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+ATSINSmove(tmp41, 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1660(line=68, offs=17) -- 1678(line=68, offs=35)
 */
 ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp39) ;
+ATSINSmove_tlcal(apy0, tmp41) ;
 ATSINSmove_tlcal(apy1, arg1) ;
 ATSINSargmove_tlcal(arg0, apy0) ;
 ATSINSargmove_tlcal(arg1, apy1) ;
@@ -1361,51 +1372,51 @@
 } /* 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1713(line=70, offs=18) -- 1722(line=70, offs=27)
 */
-ATSINSmove(tmp40, ATSLIB_056_prelude__eq_g1int_int__26__1(arg0, arg1)) ;
+ATSINSmove(tmp42, 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1710(line=70, offs=15) -- 1869(line=76, offs=21)
 */
 ATSif(
-tmp40
+tmp42
 ) 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1747(line=71, offs=20) -- 1752(line=71, offs=25)
 */
-ATSINSmove(tmp48, atspre_g0int_mod_int(env0, arg0)) ;
+ATSINSmove(tmp50, 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1747(line=71, offs=20) -- 1756(line=71, offs=29)
 */
-ATSINSmove(tmp45, ATSLIB_056_prelude__eq_g0int_int__12__3(tmp48, ATSPMVi0nt(0))) ;
+ATSINSmove(tmp47, ATSLIB_056_prelude__eq_g0int_int__12__3(tmp50, 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1744(line=71, offs=17) -- 1829(line=74, offs=23)
 */
 ATSif(
-tmp45
+tmp47
 ) 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1780(line=72, offs=19) -- 1785(line=72, offs=24)
 */
-ATSINSmove(tmpret29, ATSPMVbool_false()) ;
+ATSINSmove(tmpret31, 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1825(line=74, offs=19) -- 1829(line=74, offs=23)
 */
-ATSINSmove(tmpret29, ATSPMVbool_true()) ;
+ATSINSmove(tmpret31, 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)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1865(line=76, offs=17) -- 1869(line=76, offs=21)
 */
-ATSINSmove(tmpret29, ATSPMVbool_true()) ;
+ATSINSmove(tmpret31, ATSPMVbool_true()) ;
 } /* ATSendif */
 } /* ATSendif */
 ATSfunbody_end()
-ATSreturn(tmpret29) ;
+ATSreturn(tmpret31) ;
 /*
 emit_funent_fnxbodylst:
 */
@@ -1431,8 +1442,8 @@
 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))) ;
+ATStmpdec(tmpret33, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp34, atstkind_t0ype(atstyvar_type(tk))) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1442,15 +1453,15 @@
 /*
 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)) ;
+ATSINSmove(tmp34, 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)) ;
+ATSINSmove(tmpret33, PMVtmpltcst(g1int_lt<S2Evar(tk(4697))>)(arg0, tmp34)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret31) ;
+ATSreturn(tmpret33) ;
 } /* end of [ATSLIB_056_prelude__lt_g1int_int__22] */
 #endif // end of [TEMPLATE]
 
@@ -1473,8 +1484,8 @@
 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)) ;
+ATStmpdec(tmpret33__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp34__1, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1484,15 +1495,15 @@
 /*
 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)) ;
+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): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
 */
-ATSINSmove(tmpret31__1, atspre_g1int_lt_int(arg0, tmp32__1)) ;
+ATSINSmove(tmpret33__1, atspre_g1int_lt_int(arg0, tmp34__1)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret31__1) ;
+ATSreturn(tmpret33__1) ;
 } /* end of [ATSLIB_056_prelude__lt_g1int_int__22__1] */
 
 /*
@@ -1556,8 +1567,8 @@
 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))) ;
+ATStmpdec(tmpret43, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp44, atstkind_t0ype(atstyvar_type(tk))) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1567,15 +1578,15 @@
 /*
 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)) ;
+ATSINSmove(tmp44, 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)) ;
+ATSINSmove(tmpret43, PMVtmpltcst(g1int_eq<S2Evar(tk(4709))>)(arg0, tmp44)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret41) ;
+ATSreturn(tmpret43) ;
 } /* end of [ATSLIB_056_prelude__eq_g1int_int__26] */
 #endif // end of [TEMPLATE]
 
@@ -1598,8 +1609,8 @@
 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)) ;
+ATStmpdec(tmpret43__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp44__1, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1609,15 +1620,15 @@
 /*
 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)) ;
+ATSINSmove(tmp44__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)) ;
+ATSINSmove(tmpret43__1, atspre_g1int_eq_int(arg0, tmp44__1)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret41__1) ;
+ATSreturn(tmpret43__1) ;
 } /* end of [ATSLIB_056_prelude__eq_g1int_int__26__1] */
 
 /*
@@ -1675,7 +1686,7 @@
 is_prime_ats(atstkind_t0ype(atstype_int) arg0)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret50, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpret52, atstkind_t0ype(atstype_bool)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1685,10 +1696,10 @@
 /*
 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(tmpret50, is_prime_20(arg0)) ;
+ATSINSmove(tmpret52, is_prime_20(arg0)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret50) ;
+ATSreturn(tmpret52) ;
 } /* end of [is_prime_ats] */
 
 /*
@@ -1705,7 +1716,7 @@
 exp_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret51, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret53, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1715,10 +1726,10 @@
 /*
 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(tmpret51, exp_5(arg0, arg1)) ;
+ATSINSmove(tmpret53, exp_5(arg0, arg1)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret51) ;
+ATSreturn(tmpret53) ;
 } /* end of [exp_ats] */
 
 /*
@@ -1735,7 +1746,7 @@
 fib_ats(atstkind_t0ype(atstype_int) arg0)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret52, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpret54, atstkind_type(atstype_ptrk)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1745,10 +1756,10 @@
 /*
 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)) ;
+ATSINSmove(tmpret54, fib_gmp_1(arg0)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret52) ;
+ATSreturn(tmpret54) ;
 } /* end of [fib_ats] */
 
 /*
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.3.0
+version:             0.2.3.1
 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.
diff --git a/shake.hs b/shake.hs
--- a/shake.hs
+++ b/shake.hs
@@ -41,11 +41,6 @@
         cmd_ ["cabal", "new-haddock"]
         cmd_ ["weeder"]
 
-    {- "dist-newstyle/build/x86_64-linux/ghc-8.2.2/fast-arithmetic-0.2.3.0/opt/build/fast-arithmetic-test/fast-arithmetic-test" %> \_ -> do -}
-        {- c <- getDirectoryFiles "cbits" ["//*.c"] -}
-        {- hs <- getDirectoryFiles "" ["//*.hs"] -}
-        {- need ("cabal.project.local" : "fast-arithmetic.cabal" : (("cbits/" ++ c) ++ hs)) -}
-
     "build" %> \_ -> do
         need ["shake.hs"]
         cmd_ ["sn", "c"]
diff --git a/src/Numeric/NumberTheory.hs b/src/Numeric/NumberTheory.hs
--- a/src/Numeric/NumberTheory.hs
+++ b/src/Numeric/NumberTheory.hs
@@ -12,6 +12,7 @@
                             , littleOmega
                             , isPerfect
                             , sumDivisors
+                            , jacobi
                             ) where
 
 import           Foreign.C
@@ -21,11 +22,22 @@
 foreign import ccall unsafe count_divisors_ats :: CInt -> CInt
 foreign import ccall unsafe sum_divisors_ats :: CInt -> CInt
 foreign import ccall unsafe little_omega_ats :: CInt -> CInt
+foreign import ccall unsafe jacobi_ats :: CInt -> CInt -> CInt
 #if __GLASGOW_HASKELL__ >= 820
 foreign import ccall unsafe is_perfect_ats :: CInt -> CBool
 #else
 foreign import ccall unsafe is_perfect_ats :: CInt -> CUChar
 #endif
+
+-- | The Jacobi symbol (a/n) (see
+-- [here](http://mathworld.wolfram.com/JacobiSymbol.html)) for more.
+--
+-- This function is somewhat experimental, and future improvements to
+-- performance are expected.
+jacobi :: Int -- ^ a
+       -> Int -- ^ n
+       -> Int
+jacobi m n = fromIntegral $ jacobi_ats (fromIntegral m) (fromIntegral n)
 
 -- | See [here](http://mathworld.wolfram.com/PerfectNumber.html)
 isPerfect :: Int -> Bool
diff --git a/src/Numeric/Pure.hs b/src/Numeric/Pure.hs
--- a/src/Numeric/Pure.hs
+++ b/src/Numeric/Pure.hs
@@ -17,19 +17,40 @@
                     , hsCatalan
                     , hsFibonacci
                     , hsFactorial
+                    , hsJacobi
                     ) where
 
 #if __GLASGOW_HASKELL__ <= 784
 import           Control.Applicative
 #endif
+import           Data.Bool
 
 {-# SPECIALIZE hsLittleOmega :: Int -> Int #-}
 {-# SPECIALIZE hsTau :: Int -> Int #-}
 {-# SPECIALIZE hsTotient :: Int -> Int #-}
 {-# SPECIALIZE hsIsPrime :: Int -> Bool #-}
 {-# SPECIALIZE hsChoose :: Int -> Int -> Int #-}
+{-# SPECIALIZE hsJacobi :: Int -> Int -> Int #-}
 {-# SPECIALIZE hsDoubleFactorial :: Int -> Int #-}
 
+hsLegendre :: (Integral a) => a -> a -> a
+hsLegendre _ 1 = 1
+hsLegendre a p | a `mod` p == 0 = 0
+hsLegendre a p = bool 1 (-1) (a' == p - 1)
+    where a' = (a ^ ((p - 1) `div` 2)) `rem` p
+
+hsMultiplicity :: (Integral a) => a -> a -> a
+hsMultiplicity n p
+    | n `mod` p == 0 = 1 + hsMultiplicity (n `div` p) p
+    | otherwise = 0
+
+-- N.B. n must be odd.
+hsJacobi :: (Integral a) => a -> a -> a
+hsJacobi a n
+    | a `mod` n == 0 = 0
+    | hsIsPrime n = foldr (\k l -> l * (hsLegendre a k ^ hsMultiplicity n k)) 1 $ primeDivisors n
+    | otherwise = foldr (\k l -> l * (hsLegendre a k ^ hsMultiplicity n k)) 1 $ primeDivisors n
+
 -- | See [here](http://mathworld.wolfram.com/Derangement.html).
 --
 -- > λ:> fmap derangement [0..10] :: [Integer]
@@ -44,8 +65,11 @@
 divisors :: (Integral a) => a -> [a]
 divisors n = filter ((== 0) . (n `mod`)) [1..n]
 
+primeDivisors :: (Integral a) => a -> [a]
+primeDivisors = filter hsIsPrime . divisors
+
 hsLittleOmega :: (Integral a) => a -> Int
-hsLittleOmega = length . filter hsIsPrime . divisors
+hsLittleOmega = length . primeDivisors
 
 hsTau :: (Integral a) => a -> Int
 hsTau = length . divisors
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -36,6 +36,9 @@
         [isPrime, isPerfect]
         [hsIsPrime, hsIsPerfect]
 
+    describe "jacobi" $
+        prop "should be equal to the pure Haskell function" $
+            \m n -> m < 0 || n `mod` 2 == 0 || n < 2 || m > 40 || n > 40 || jacobi m n == hsJacobi m n
     describe "totient" $
         prop "should be equal to m-1 for m prime" $
             \m -> m < 1 || not (isPrime m) || totient m == m - 1
@@ -47,7 +50,7 @@
             \a m -> a < 1 || m < 2 || gcd a m /= 1 || tooBig a m || (a ^ totient m) `mod` m == 1
 
     sequence_ $ zipWith4 check
-        ["choose 101", "doubleFactorial", "catalan", "fibonacci", "factorial"]
+        ["choose 101", "doubleFactorial", "catalan", "fibonacci", "factorial", "jacobi"]
         [choose 101, doubleFactorial, catalan, fibonacci, factorial]
         [hsChoose 101 . fromIntegral, hsDoubleFactorial, hsCatalan . fromIntegral, hsFibonacci . fromIntegral, hsFactorial]
         [16, 79, 300, 121, 231]
