diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -47,5 +47,5 @@
 
 You can find documentation for the Haskell library on 
 [Hackage](https://hackage.haskell.org/package/fast-arithmetic/).
-Unfortunately, there is no documentation for the ATS library, however, you may
-find the bundled source code informative.
+Unfortunately, there is no documentation for the ATS library, however,
+the bundled source code is commented.
diff --git a/ats-src/combinatorics-ffi.dats b/ats-src/combinatorics-ffi.dats
--- a/ats-src/combinatorics-ffi.dats
+++ b/ats-src/combinatorics-ffi.dats
@@ -22,6 +22,10 @@
   "mac#"
 
 extern
+fun factorial_ats {n : nat} : int(n) -> Intinf =
+  "mac#"
+
+extern
 fun catalan_ats {n : nat} : int(n) -> Intinf =
   "mac#"
 
@@ -33,6 +37,9 @@
 
 implement double_factorial_ats (m) =
   dfact(m)
+
+implement factorial_ats (m) =
+  fact(m)
 
 implement catalan_ats (n) =
   catalan(n)
diff --git a/ats-src/combinatorics.dats b/ats-src/combinatorics.dats
--- a/ats-src/combinatorics.dats
+++ b/ats-src/combinatorics.dats
@@ -6,7 +6,7 @@
 staload "contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats"
 staload UN = "prelude/SATS/unsafe.sats"
 
-// see [here](http://mathworld.wolfram.com/Derangement.html)
+// See [here](http://mathworld.wolfram.com/Derangement.html)
 fn derangements {n : nat} .<n>. (n : int(n)) : Intinf =
   let
     fnx loop { n : nat | n > 1 }{ i : nat | i <= n } .<n-i>. (n : int(n), i : int(i), n1 : Intinf, n2 : Intinf) : Intinf =
@@ -39,7 +39,7 @@
     | 1 => int2intinf(1)
     | k =>> $UN.castvwtp0(mul_intinf0_int(fact(k - 1), k))
 
-// double factorial http://mathworld.wolfram.com/DoubleFactorial.html
+// Double factorial http://mathworld.wolfram.com/DoubleFactorial.html
 fnx dfact {n : nat} .<n>. (k : int(n)) : Intinf =
   case+ k of
     | 0 => int2intinf(1)
@@ -62,6 +62,7 @@
     z
   end
 
+// Catalan numbers, indexing starting at zero.
 fn catalan {n : nat} (n : int(n)) : Intinf =
   let
     fun numerator_loop { i : nat | i > 1 } .<i>. (i : int(i)) : [ n : nat | n > 0 ] intinf(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
@@ -44,6 +44,21 @@
     loop(n, 1)
   end
 
+// stream all prime divisors of an integer (without multiplicity)
+fn prime_divisors(n : intGte(1)) :<> stream_vt(int) =
+  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)))
+        else
+          $ldelay(stream_vt_nil)
+  in
+    loop(n, 1)
+  end
+
 fn count_divisors(n : intGte(1)) :<> int =
   let
     fun loop {k : nat}{ m : nat | m > 0 && k >= m } .<k-m>. (n : int(k), acc : int(m)) :<> int =
diff --git a/bench/Bench.hs b/bench/Bench.hs
--- a/bench/Bench.hs
+++ b/bench/Bench.hs
@@ -28,17 +28,21 @@
                       [ bench "isPerfect" $ nf isPerfect 318
                       , bench "hsIsPerfect" $ nf hsIsPerfect (318 :: Int)
                       ]
+                , bgroup "factorial"
+                      [ bench "factorial" $ nfIO (factorial 160)
+                      , bench "hsFactorial" $ nf hsFactorial (160 :: Integer)
+                      ]
                 , bgroup "doubleFactorial"
                       [ bench "doubleFactorial" $ nfIO (doubleFactorial 79)
                       , bench "hsDoubleFactorial" $ nf hsDoubleFactorial (79 :: Integer)
                       ]
                 , bgroup "choose"
                       [ bench "choose" $ nfIO (choose 322 16)
-                      , bench "hsChoose" $ nf (hsChoose 322 :: Int -> Integer) 16
+                      , bench "hsChoose" $ nf (hsChoose 322) (16 :: Integer)
                       ]
                 , bgroup "catalan"
                       [ bench "catalan" $ nfIO (catalan 300)
-                      , bench "hsCatalan" $ nf (hsCatalan :: Int -> Integer) 300
+                      , bench "hsCatalan" $ nf hsCatalan (300 :: Integer)
                       ]
                 , bgroup "fibonacci"
                       [ bench "fibonacci" $ nfIO (fibonacci 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-10:  0h:16m
+** The starting compilation time is: 2018-1-11: 12h:57m
 **
 */
 
@@ -165,7 +165,7 @@
 #include \
 "libats/libc/CATS/sys/types.cats"
 /*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 15552(line=879, offs=1) -- 15589(line=880, offs=30)
+/usr/local/lib/ats2-postiats-0.3.8/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)
@@ -687,6 +687,12 @@
 #if(0)
 ATSextern()
 atstkind_type(atstype_ptrk)
+factorial_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
 catalan_ats(atstkind_t0ype(atstype_int)) ;
 #endif // end of [QUALIFIED]
 
@@ -3166,7 +3172,7 @@
 } /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__2] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1722(line=65, offs=4) -- 2342(line=88, offs=6)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1769(line=66, offs=4) -- 2389(line=89, offs=6)
 */
 /*
 local: fact_28$0(level=0)
@@ -3187,11 +3193,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1722(line=65, offs=4) -- 2342(line=88, offs=6)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1769(line=66, offs=4) -- 2389(line=89, offs=6)
 */
 ATSINSflab(__patsflab_catalan_44):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1766(line=66, offs=3) -- 2342(line=88, offs=6)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1813(line=67, offs=3) -- 2389(line=89, offs=6)
 */
 /*
 letpush(beg)
@@ -3201,7 +3207,7 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2079(line=77, offs=5) -- 2336(line=87, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2126(line=78, offs=5) -- 2383(line=88, offs=10)
 */
 ATScaseof_beg()
 /*
@@ -3209,15 +3215,15 @@
 */
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2098(line=78, offs=9) -- 2099(line=78, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2145(line=79, offs=9) -- 2146(line=79, offs=10)
 */
 ATSINSlab(__atstmplab20):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1741(line=65, offs=23) -- 1742(line=65, offs=24)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1788(line=66, offs=23) -- 1789(line=66, offs=24)
 */
 ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab22) ; } ;
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2099(line=78, offs=10) -- 2099(line=78, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2146(line=79, offs=10) -- 2146(line=79, offs=10)
 */
 ATSINSlab(__atstmplab21):
 /*
@@ -3227,7 +3233,7 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2103(line=78, offs=14) -- 2116(line=78, offs=27)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2150(line=79, offs=14) -- 2163(line=79, offs=27)
 */
 ATSINSmove(tmpret95, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__11(ATSPMVi0nt(1))) ;
 
@@ -3235,15 +3241,15 @@
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2125(line=79, offs=9) -- 2126(line=79, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2172(line=80, offs=9) -- 2173(line=80, offs=10)
 */
 ATSINSlab(__atstmplab22):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1741(line=65, offs=23) -- 1742(line=65, offs=24)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1788(line=66, offs=23) -- 1789(line=66, offs=24)
 */
 ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab24) ; } ;
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2126(line=79, offs=10) -- 2126(line=79, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2173(line=80, offs=10) -- 2173(line=80, offs=10)
 */
 ATSINSlab(__atstmplab23):
 /*
@@ -3253,7 +3259,7 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2130(line=79, offs=14) -- 2143(line=79, offs=27)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2177(line=80, offs=14) -- 2190(line=80, offs=27)
 */
 ATSINSmove(tmpret95, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__12(ATSPMVi0nt(1))) ;
 
@@ -3261,7 +3267,7 @@
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2153(line=80, offs=10) -- 2153(line=80, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2200(line=81, offs=10) -- 2200(line=81, offs=10)
 */
 ATSINSlab(__atstmplab24):
 /*
@@ -3271,28 +3277,28 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2158(line=80, offs=15) -- 2336(line=87, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2205(line=81, offs=15) -- 2383(line=88, offs=10)
 */
 /*
 letpush(beg)
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2178(line=81, offs=17) -- 2194(line=81, offs=33)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2225(line=82, offs=17) -- 2241(line=82, offs=33)
 */
 ATSINSmove(tmp116, numerator_loop_45(arg0, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2212(line=82, offs=17) -- 2218(line=82, offs=23)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2259(line=83, offs=17) -- 2265(line=83, offs=23)
 */
 ATSINSmove(tmp117, fact_28(arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2236(line=83, offs=17) -- 2261(line=83, offs=42)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2283(line=84, offs=17) -- 2308(line=84, offs=42)
 */
 ATSINSmove(tmp118, ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__41__2(tmp116, ATSPMVrefarg0(tmp117))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2278(line=84, offs=17) -- 2291(line=84, offs=30)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2325(line=85, offs=17) -- 2338(line=85, offs=30)
 */
 ATSINSmove_void(tmp121, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__3(tmp117)) ;
 
@@ -3301,11 +3307,11 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2310(line=86, offs=9) -- 2325(line=86, offs=24)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2357(line=87, offs=9) -- 2372(line=87, offs=24)
 */
 ATSINSmove(tmpret95, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp118)) ;
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2158(line=80, offs=15) -- 2336(line=87, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2205(line=81, offs=15) -- 2383(line=88, offs=10)
 */
 /*
 INSletpop()
@@ -3318,7 +3324,7 @@
 ATScaseof_end()
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1766(line=66, offs=3) -- 2342(line=88, offs=6)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1813(line=67, offs=3) -- 2389(line=89, offs=6)
 */
 /*
 INSletpop()
@@ -3328,7 +3334,7 @@
 } /* end of [catalan_44] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1778(line=67, offs=9) -- 2069(line=75, offs=12)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1825(line=68, offs=9) -- 2116(line=76, offs=12)
 */
 /*
 local: numerator_loop_45$0(level=1)
@@ -3350,11 +3356,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1778(line=67, offs=9) -- 2069(line=75, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1825(line=68, offs=9) -- 2116(line=76, offs=12)
 */
 ATSINSflab(__patsflab_numerator_loop_45):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1872(line=68, offs=7) -- 2069(line=75, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1919(line=69, offs=7) -- 2116(line=76, offs=12)
 */
 ATScaseof_beg()
 /*
@@ -3362,15 +3368,15 @@
 */
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1893(line=69, offs=11) -- 1894(line=69, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1940(line=70, offs=11) -- 1941(line=70, offs=12)
 */
 ATSINSlab(__atstmplab17):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1820(line=67, offs=51) -- 1821(line=67, offs=52)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1867(line=68, offs=51) -- 1868(line=68, offs=52)
 */
 ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(2))) { ATSINSgoto(__atstmplab19) ; } ;
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1894(line=69, offs=12) -- 1894(line=69, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1941(line=70, offs=12) -- 1941(line=70, offs=12)
 */
 ATSINSlab(__atstmplab18):
 /*
@@ -3380,12 +3386,12 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1898(line=69, offs=16) -- 1915(line=69, offs=33)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1945(line=70, offs=16) -- 1962(line=70, offs=33)
 */
 ATSINSmove(tmp101, atspre_g1int_add_int(env0, ATSPMVi0nt(2))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1898(line=69, offs=16) -- 1915(line=69, offs=33)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1945(line=70, offs=16) -- 1962(line=70, offs=33)
 */
 ATSINSmove(tmpret96, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__10(tmp101)) ;
 
@@ -3393,7 +3399,7 @@
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1927(line=70, offs=12) -- 1927(line=70, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1974(line=71, offs=12) -- 1974(line=71, offs=12)
 */
 ATSINSlab(__atstmplab19):
 /*
@@ -3403,28 +3409,28 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1932(line=70, offs=17) -- 2069(line=75, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1979(line=71, offs=17) -- 2116(line=76, offs=12)
 */
 /*
 letpush(beg)
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1969(line=71, offs=34) -- 1974(line=71, offs=39)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2016(line=72, offs=34) -- 2021(line=72, offs=39)
 */
 ATSINSmove(tmp103, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1954(line=71, offs=19) -- 1975(line=71, offs=40)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2001(line=72, offs=19) -- 2022(line=72, offs=40)
 */
 ATSINSmove(tmp102, numerator_loop_45(env0, tmp103)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2013(line=72, offs=38) -- 2018(line=72, offs=43)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2060(line=73, offs=38) -- 2065(line=73, offs=43)
 */
 ATSINSmove(tmp107, atspre_g1int_add_int(env0, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1994(line=72, offs=19) -- 2019(line=72, offs=44)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2041(line=73, offs=19) -- 2066(line=73, offs=44)
 */
 ATSINSmove(tmp104, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__5(tmp102, tmp107)) ;
 
@@ -3433,11 +3439,11 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2041(line=74, offs=11) -- 2056(line=74, offs=26)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2088(line=75, offs=11) -- 2103(line=75, offs=26)
 */
 ATSINSmove(tmpret96, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp104)) ;
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1932(line=70, offs=17) -- 2069(line=75, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1979(line=71, offs=17) -- 2116(line=76, offs=12)
 */
 /*
 INSletpop()
@@ -3915,7 +3921,7 @@
 } /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__3] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2405(line=91, offs=4) -- 3110(line=115, offs=6)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2452(line=92, offs=4) -- 3157(line=116, offs=6)
 */
 /*
 local: fact_28$0(level=0)
@@ -3936,11 +3942,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2405(line=91, offs=4) -- 3110(line=115, offs=6)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2452(line=92, offs=4) -- 3157(line=116, offs=6)
 */
 ATSINSflab(__patsflab_choose_55):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2480(line=92, offs=3) -- 3110(line=115, offs=6)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2527(line=93, offs=3) -- 3157(line=116, offs=6)
 */
 /*
 letpush(beg)
@@ -3950,7 +3956,7 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2847(line=104, offs=5) -- 3104(line=114, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2894(line=105, offs=5) -- 3151(line=115, offs=10)
 */
 ATScaseof_beg()
 /*
@@ -3958,15 +3964,15 @@
 */
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2866(line=105, offs=9) -- 2867(line=105, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2913(line=106, offs=9) -- 2914(line=106, offs=10)
 */
 ATSINSlab(__atstmplab30):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2455(line=91, offs=54) -- 2456(line=91, offs=55)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2502(line=92, offs=54) -- 2503(line=92, offs=55)
 */
 ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(0))) { ATSINSgoto(__atstmplab32) ; } ;
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2867(line=105, offs=10) -- 2867(line=105, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2914(line=106, offs=10) -- 2914(line=106, offs=10)
 */
 ATSINSlab(__atstmplab31):
 /*
@@ -3976,7 +3982,7 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2871(line=105, offs=14) -- 2884(line=105, offs=27)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2918(line=106, offs=14) -- 2931(line=106, offs=27)
 */
 ATSINSmove(tmpret124, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__15(ATSPMVi0nt(1))) ;
 
@@ -3984,15 +3990,15 @@
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2893(line=106, offs=9) -- 2894(line=106, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2940(line=107, offs=9) -- 2941(line=107, offs=10)
 */
 ATSINSlab(__atstmplab32):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2455(line=91, offs=54) -- 2456(line=91, offs=55)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2502(line=92, offs=54) -- 2503(line=92, offs=55)
 */
 ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(1))) { ATSINSgoto(__atstmplab34) ; } ;
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2894(line=106, offs=10) -- 2894(line=106, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2941(line=107, offs=10) -- 2941(line=107, offs=10)
 */
 ATSINSlab(__atstmplab33):
 /*
@@ -4002,7 +4008,7 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2898(line=106, offs=14) -- 2910(line=106, offs=26)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2945(line=107, offs=14) -- 2957(line=107, offs=26)
 */
 ATSINSmove(tmpret124, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__16(arg0)) ;
 
@@ -4010,7 +4016,7 @@
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2921(line=107, offs=10) -- 2921(line=107, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2968(line=108, offs=10) -- 2968(line=108, offs=10)
 */
 ATSINSlab(__atstmplab34):
 /*
@@ -4020,28 +4026,28 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2926(line=107, offs=15) -- 3104(line=114, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2973(line=108, offs=15) -- 3151(line=115, offs=10)
 */
 /*
 letpush(beg)
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2946(line=108, offs=17) -- 2962(line=108, offs=33)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2993(line=109, offs=17) -- 3009(line=109, offs=33)
 */
 ATSINSmove(tmp152, numerator_loop_56(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2980(line=109, offs=17) -- 2986(line=109, offs=23)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 3027(line=110, offs=17) -- 3033(line=110, offs=23)
 */
 ATSINSmove(tmp153, fact_28(arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 3004(line=110, offs=17) -- 3029(line=110, offs=42)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 3051(line=111, offs=17) -- 3076(line=111, offs=42)
 */
 ATSINSmove(tmp154, ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__41__3(tmp152, ATSPMVrefarg0(tmp153))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 3046(line=111, offs=17) -- 3059(line=111, offs=30)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 3093(line=112, offs=17) -- 3106(line=112, offs=30)
 */
 ATSINSmove_void(tmp157, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__4(tmp153)) ;
 
@@ -4050,11 +4056,11 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 3078(line=113, offs=9) -- 3093(line=113, offs=24)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 3125(line=114, offs=9) -- 3140(line=114, offs=24)
 */
 ATSINSmove(tmpret124, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp154)) ;
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2926(line=107, offs=15) -- 3104(line=114, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2973(line=108, offs=15) -- 3151(line=115, offs=10)
 */
 /*
 INSletpop()
@@ -4067,7 +4073,7 @@
 ATScaseof_end()
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2480(line=92, offs=3) -- 3110(line=115, offs=6)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2527(line=93, offs=3) -- 3157(line=116, offs=6)
 */
 /*
 INSletpop()
@@ -4077,7 +4083,7 @@
 } /* end of [choose_55] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2492(line=93, offs=9) -- 2837(line=102, offs=12)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2539(line=94, offs=9) -- 2884(line=103, offs=12)
 */
 /*
 local: numerator_loop_56$0(level=1)
@@ -4102,11 +4108,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2492(line=93, offs=9) -- 2837(line=102, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2539(line=94, offs=9) -- 2884(line=103, offs=12)
 */
 ATSINSflab(__patsflab_numerator_loop_56):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2586(line=94, offs=7) -- 2837(line=102, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2633(line=95, offs=7) -- 2884(line=103, offs=12)
 */
 ATScaseof_beg()
 /*
@@ -4114,15 +4120,15 @@
 */
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2607(line=95, offs=11) -- 2608(line=95, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2654(line=96, offs=11) -- 2655(line=96, offs=12)
 */
 ATSINSlab(__atstmplab25):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2534(line=93, offs=51) -- 2535(line=93, offs=52)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2581(line=94, offs=51) -- 2582(line=94, offs=52)
 */
 ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab27) ; } ;
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2608(line=95, offs=12) -- 2608(line=95, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2655(line=96, offs=12) -- 2655(line=96, offs=12)
 */
 ATSINSlab(__atstmplab26):
 /*
@@ -4132,7 +4138,7 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2612(line=95, offs=16) -- 2624(line=95, offs=28)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2659(line=96, offs=16) -- 2671(line=96, offs=28)
 */
 ATSINSmove(tmpret125, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__13(env0)) ;
 
@@ -4140,15 +4146,15 @@
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2636(line=96, offs=11) -- 2637(line=96, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2683(line=97, offs=11) -- 2684(line=97, offs=12)
 */
 ATSINSlab(__atstmplab27):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2534(line=93, offs=51) -- 2535(line=93, offs=52)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2581(line=94, offs=51) -- 2582(line=94, offs=52)
 */
 ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(2))) { ATSINSgoto(__atstmplab29) ; } ;
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2637(line=96, offs=12) -- 2637(line=96, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2684(line=97, offs=12) -- 2684(line=97, offs=12)
 */
 ATSINSlab(__atstmplab28):
 /*
@@ -4158,29 +4164,29 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2655(line=96, offs=30) -- 2678(line=96, offs=53)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2702(line=97, offs=30) -- 2725(line=97, offs=53)
 */
 ATSINSmove(tmp136, atspre_g1int_sub_int(env0, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2655(line=96, offs=30) -- 2678(line=96, offs=53)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2702(line=97, offs=30) -- 2725(line=97, offs=53)
 */
 ATSINSmove(tmp135, atspre_g1int_mul_int(tmp136, env0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2655(line=96, offs=30) -- 2678(line=96, offs=53)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2702(line=97, offs=30) -- 2725(line=97, offs=53)
 */
 ATSINSmove(tmp130, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__14(tmp135)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2641(line=96, offs=16) -- 2679(line=96, offs=54)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2688(line=97, offs=16) -- 2726(line=97, offs=54)
 */
 ATSINSmove(tmpret125, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp130)) ;
 ATSbranch_end()
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2691(line=97, offs=12) -- 2691(line=97, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2738(line=98, offs=12) -- 2738(line=98, offs=12)
 */
 ATSINSlab(__atstmplab29):
 /*
@@ -4190,33 +4196,33 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2696(line=97, offs=17) -- 2837(line=102, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2743(line=98, offs=17) -- 2884(line=103, offs=12)
 */
 /*
 letpush(beg)
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2733(line=98, offs=34) -- 2738(line=98, offs=39)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2780(line=99, offs=34) -- 2785(line=99, offs=39)
 */
 ATSINSmove(tmp138, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2718(line=98, offs=19) -- 2739(line=98, offs=40)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2765(line=99, offs=19) -- 2786(line=99, offs=40)
 */
 ATSINSmove(tmp137, numerator_loop_56(env0, tmp138)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2777(line=99, offs=38) -- 2782(line=99, offs=43)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2824(line=100, offs=38) -- 2829(line=100, offs=43)
 */
 ATSINSmove(tmp143, atspre_g1int_add_int(env0, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2777(line=99, offs=38) -- 2786(line=99, offs=47)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2824(line=100, offs=38) -- 2833(line=100, offs=47)
 */
 ATSINSmove(tmp142, atspre_g1int_sub_int(tmp143, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2758(line=99, offs=19) -- 2787(line=99, offs=48)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2805(line=100, offs=19) -- 2834(line=100, offs=48)
 */
 ATSINSmove(tmp139, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__6(tmp137, tmp142)) ;
 
@@ -4225,11 +4231,11 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2809(line=101, offs=11) -- 2824(line=101, offs=26)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2856(line=102, offs=11) -- 2871(line=102, offs=26)
 */
 ATSINSmove(tmpret125, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp139)) ;
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2696(line=97, offs=17) -- 2837(line=102, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2743(line=98, offs=17) -- 2884(line=103, offs=12)
 */
 /*
 INSletpop()
@@ -4804,7 +4810,7 @@
 } /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__4] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 595(line=28, offs=22) -- 618(line=29, offs=15)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 661(line=32, offs=22) -- 684(line=33, offs=15)
 */
 /*
 local: choose_55$0(level=0)
@@ -4821,11 +4827,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 584(line=28, offs=11) -- 618(line=29, offs=15)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 650(line=32, offs=11) -- 684(line=33, offs=15)
 */
 ATSINSflab(__patsflab_choose_ats):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 606(line=29, offs=3) -- 618(line=29, offs=15)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 672(line=33, offs=3) -- 684(line=33, offs=15)
 */
 ATSINSmove(tmpret160, choose_55(arg0, arg1)) ;
 
@@ -4834,7 +4840,7 @@
 } /* end of [choose_ats] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 647(line=31, offs=28) -- 670(line=32, offs=15)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 713(line=35, offs=28) -- 736(line=36, offs=15)
 */
 /*
 local: choose_55$0(level=0)
@@ -4851,11 +4857,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 630(line=31, offs=11) -- 670(line=32, offs=15)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 696(line=35, offs=11) -- 736(line=36, offs=15)
 */
 ATSINSflab(__patsflab_permutations_ats):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 658(line=32, offs=3) -- 670(line=32, offs=15)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 724(line=36, offs=3) -- 736(line=36, offs=15)
 */
 ATSINSmove(tmpret161, choose_55(arg0, arg1)) ;
 
@@ -4864,7 +4870,7 @@
 } /* end of [permutations_ats] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 703(line=34, offs=32) -- 718(line=35, offs=10)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 769(line=38, offs=32) -- 784(line=39, offs=10)
 */
 /*
 local: dfact_34$0(level=0)
@@ -4881,11 +4887,11 @@
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 682(line=34, offs=11) -- 719(line=35, offs=11)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 748(line=38, offs=11) -- 785(line=39, offs=11)
 */
 ATSINSflab(__patsflab_double_factorial_ats):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 711(line=35, offs=3) -- 718(line=35, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 777(line=39, offs=3) -- 784(line=39, offs=10)
 */
 ATSINSmove(tmpret162, dfact_34(arg0)) ;
 
@@ -4894,11 +4900,41 @@
 } /* end of [double_factorial_ats] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 743(line=37, offs=23) -- 760(line=38, offs=12)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 811(line=41, offs=25) -- 825(line=42, offs=9)
 */
 /*
+local: fact_28$0(level=0)
+global: fact_28$0(level=0), factorial_ats$72$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+factorial_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret163, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 797(line=41, offs=11) -- 826(line=42, offs=10)
+*/
+ATSINSflab(__patsflab_factorial_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 819(line=42, offs=3) -- 825(line=42, offs=9)
+*/
+ATSINSmove(tmpret163, fact_28(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret163) ;
+} /* end of [factorial_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 850(line=44, offs=23) -- 867(line=45, offs=12)
+*/
+/*
 local: catalan_44$0(level=0)
-global: fact_28$0(level=0), catalan_44$0(level=0), catalan_ats$72$0(level=0)
+global: fact_28$0(level=0), catalan_44$0(level=0), catalan_ats$73$0(level=0)
 local: 
 global: 
 */
@@ -4907,20 +4943,20 @@
 catalan_ats(atstkind_t0ype(atstype_int) arg0)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret163, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpret164, atstkind_type(atstype_ptrk)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 731(line=37, offs=11) -- 761(line=38, offs=13)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 838(line=44, offs=11) -- 868(line=45, offs=13)
 */
 ATSINSflab(__patsflab_catalan_ats):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 751(line=38, offs=3) -- 760(line=38, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 858(line=45, offs=3) -- 867(line=45, offs=12)
 */
-ATSINSmove(tmpret163, catalan_44(arg0)) ;
+ATSINSmove(tmpret164, catalan_44(arg0)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret163) ;
+ATSreturn(tmpret164) ;
 } /* end of [catalan_ats] */
 
 /*
diff --git a/cbits/number-theory.c b/cbits/number-theory.c
--- a/cbits/number-theory.c
+++ b/cbits/number-theory.c
@@ -1,4537 +1,5123 @@
 /*
 **
 ** The C code is generated by [ATS/Postiats-0-3-8]
-** The starting compilation time is: 2018-1-10:  0h:16m
-**
-*/
-
-/*
-** include runtime header files
-*/
-#ifndef _ATS_CCOMP_HEADER_NONE_
-#include "pats_ccomp_config.h"
-#include "pats_ccomp_basics.h"
-#include "pats_ccomp_typedefs.h"
-#include "pats_ccomp_instrset.h"
-#include "pats_ccomp_memalloc.h"
-#ifndef _ATS_CCOMP_EXCEPTION_NONE_
-#include "pats_ccomp_memalloca.h"
-#include "pats_ccomp_exception.h"
-#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
-#endif /* _ATS_CCOMP_HEADER_NONE_ */
-
-
-/*
-** include prelude cats files
-*/
-#ifndef _ATS_CCOMP_PRELUDE_NONE_
-//
-#include "prelude/CATS/basics.cats"
-#include "prelude/CATS/integer.cats"
-#include "prelude/CATS/pointer.cats"
-#include "prelude/CATS/integer_long.cats"
-#include "prelude/CATS/integer_size.cats"
-#include "prelude/CATS/integer_short.cats"
-#include "prelude/CATS/bool.cats"
-#include "prelude/CATS/char.cats"
-#include "prelude/CATS/float.cats"
-#include "prelude/CATS/integer_ptr.cats"
-#include "prelude/CATS/integer_fixed.cats"
-#include "prelude/CATS/memory.cats"
-#include "prelude/CATS/string.cats"
-#include "prelude/CATS/strptr.cats"
-//
-#include "prelude/CATS/fprintf.cats"
-//
-#include "prelude/CATS/filebas.cats"
-//
-#include "prelude/CATS/list.cats"
-#include "prelude/CATS/option.cats"
-#include "prelude/CATS/array.cats"
-#include "prelude/CATS/arrayptr.cats"
-#include "prelude/CATS/arrayref.cats"
-#include "prelude/CATS/matrix.cats"
-#include "prelude/CATS/matrixptr.cats"
-//
-#endif /* _ATS_CCOMP_PRELUDE_NONE_ */
-/*
-** for user-supplied prelude
-*/
-#ifdef _ATS_CCOMP_PRELUDE_USER_
-//
-#include _ATS_CCOMP_PRELUDE_USER_
-//
-#endif /* _ATS_CCOMP_PRELUDE_USER_ */
-/*
-** for user2-supplied prelude
-*/
-#ifdef _ATS_CCOMP_PRELUDE_USER2_
-//
-#include _ATS_CCOMP_PRELUDE_USER2_
-//
-#endif /* _ATS_CCOMP_PRELUDE_USER2_ */
-
-/*
-staload-prologues(beg)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/basics.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 1533(line=44, offs=1) -- 1572(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_long.dats: 1602(line=49, offs=1) -- 1641(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_size.dats: 1597(line=49, offs=1) -- 1636(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_short.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/char.dats: 1610(line=48, offs=1) -- 1649(line=48, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/float.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/string.dats: 1631(line=50, offs=1) -- 1670(line=50, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1629(line=50, offs=1) -- 1668(line=50, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1691(line=54, offs=1) -- 1738(line=54, offs=48)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_ptr.dats: 1601(line=49, offs=1) -- 1640(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_fixed.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/memory.dats: 1410(line=38, offs=1) -- 1449(line=39, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1613(line=49, offs=1) -- 1652(line=50, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1675(line=54, offs=1) -- 1721(line=55, offs=39)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1744(line=59, offs=1) -- 1789(line=60, offs=38)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/stdio.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1871(line=66, offs=1) -- 1918(line=66, offs=48)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1390(line=36, offs=1) -- 1440(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/stat.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1756(line=58, offs=1) -- 1805(line=60, offs=34)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 15552(line=879, offs=1) -- 15589(line=880, offs=30)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/stdio.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1529(line=44, offs=1) -- 1568(line=45, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1569(line=46, offs=1) -- 1615(line=47, offs=39)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1538(line=44, offs=1) -- 1577(line=45, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1578(line=46, offs=1) -- 1624(line=47, offs=39)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_mergesort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_quicksort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1534(line=44, offs=1) -- 1573(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1574(line=45, offs=1) -- 1616(line=45, offs=43)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_bsearch.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_quicksort.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayptr.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayref.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrix.dats: 1535(line=44, offs=1) -- 1574(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixptr.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixref.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream_vt.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/tostring.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/checkast.dats: 1531(line=44, offs=1) -- 1570(line=45, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/mydepies.hats: 192(line=16, offs=1) -- 232(line=16, offs=41)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1233(line=43, offs=3)
-*/
-
-//
-#include \
-"atscntrb-libgmp/CATS/gmp.cats"
-//
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1233(line=43, offs=3)
-*/
-
-//
-#include \
-"atscntrb-libgmp/CATS/gmp.cats"
-//
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/math.sats: 1380(line=35, offs=1) -- 1426(line=38, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/math.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/mydepies.hats: 192(line=16, offs=1) -- 232(line=16, offs=41)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1233(line=43, offs=3)
-*/
-
-//
-#include \
-"atscntrb-libgmp/CATS/gmp.cats"
-//
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-staload-prologues(end)
-*/
-/*
-typedefs-for-tyrecs-and-tysums(beg)
-*/
-typedef
-ATSstruct {
-#if(0)
-int contag ;
-#endif
-atstkind_t0ype(atstype_int) atslab__0 ;
-atstkind_type(atstype_ptrk) atslab__1 ;
-} postiats_tysum_0 ;
-/*
-typedefs-for-tyrecs-and-tysums(end)
-*/
-/*
-dynconlst-declaration(beg)
-*/
-/*
-dynconlst-declaration(end)
-*/
-/*
-dyncstlst-declaration(beg)
-*/
-ATSdyncst_mac(atspre_ptr_alloc_tsz)
-ATSdyncst_mac(atspre_g0int2uint_int_ulint)
-ATSdyncst_mac(atspre_g1int_add_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_init)
-ATSdyncst_mac(atscntrb_gmp_mpz_fib_uint)
-ATSdyncst_mac(atspre_g1int2int_int_int)
-ATSdyncst_mac(atspre_g1int_gt_int)
-ATSdyncst_mac(atspre_g1int_half_int)
-ATSdyncst_mac(atspre_g0int_mod_int)
-ATSdyncst_mac(atspre_g0int2int_int_int)
-ATSdyncst_mac(atspre_g0int_eq_int)
-ATSdyncst_mac(atspre_g0int_mul_int)
-ATSdyncst_mac(atspre_g0float2int_float_int)
-ATSdyncst_mac(atslib_libats_libc_sqrt_float)
-ATSdyncst_mac(atspre_g0int2float_int_float)
-ATSdyncst_mac(atspre_g1int_lt_int)
-ATSdyncst_mac(atspre_g1int_eq_int)
-ATSdyncst_mac(atspre_g0int_div_int)
-ATSdyncst_mac(atspre_g1int_gte_int)
-ATSdyncst_mac(atspre_g0int_add_int)
-ATSdyncst_mac(atspre_g1int_sub_int)
-ATSdyncst_mac(atspre_g1int_neq_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_add2_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_init_set_int)
-/*
-dyncstlst-declaration(end)
-*/
-/*
-dynvalist-implementation(beg)
-*/
-/*
-dynvalist-implementation(end)
-*/
-/*
-exnconlst-declaration(beg)
-*/
-#ifndef _ATS_CCOMP_EXCEPTION_NONE_
-ATSextern()
-atsvoid_t0ype
-the_atsexncon_initize
-(
-  atstype_exnconptr d2c, atstype_string exnmsg
-) ;
-#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
-/*
-exnconlst-declaration(end)
-*/
-/*
-extypelst-declaration(beg)
-*/
-/*
-extypelst-declaration(end)
-*/
-/*
-assumelst-declaration(beg)
-*/
-#ifndef _ATS_CCOMP_ASSUME_CHECK_NONE_
-#endif // #ifndef(_ATS_CCOMP_ASSUME_CHECK_NONE_)
-/*
-assumelst-declaration(end)
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-witness_0(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-fib_gmp_1(atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__2() ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__2__1() ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-exp_5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-sqrt_int_17(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_prime_20(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-loop_21(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__22(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__22__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__26(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__26__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-divides_30(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-gcd_32(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-lcm_34(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-divisors_36(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_37(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__38(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__38__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_41(atstkind_t0ype(atstype_int), atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_42(atstype_bool) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_44(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_45(atstype_bool) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-count_divisors_46(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_47(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__38__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__6(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-sum_divisors_51(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_52(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__38__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__7(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_perfect_55(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__8(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-little_omega_57(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_58(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__38__4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__9(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-totient_61(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_62(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__38__5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__10(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__66(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__66__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-totient_sum_69(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_70(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__22__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__72(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__72__1(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__74(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__74__1(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__2__2() ;
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-sum_divisors_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-count_divisors_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-totient_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-little_omega_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-is_perfect_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-ATSclosurerize_beg(__patsfun_41, (atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-atstkind_t0ype(atstype_int) env0 ;
-} __patsfun_41__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_41__cfun
-(
-__patsfun_41__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_41(p_cenv->env0, arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_41__closureinit
-(
-__patsfun_41__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0
-)
-{
-p_cenv->env0 = env0 ;
-p_cenv->cfun = __patsfun_41__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_41__closurerize
-(
-atstkind_t0ype(atstype_int) env0
-)
-{
-return __patsfun_41__closureinit(ATS_MALLOC(sizeof(__patsfun_41__closure_t0ype)), env0) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_42, (), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-} __patsfun_42__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_42__cfun
-(
-__patsfun_42__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_42(arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_42__closureinit
-(
-__patsfun_42__closure_t0ype *p_cenv
-)
-{
-p_cenv->cfun = __patsfun_42__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_42__closurerize
-(
-// argumentless
-)
-{
-return __patsfun_42__closureinit(ATS_MALLOC(sizeof(__patsfun_42__closure_t0ype))) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_44, (atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-atstkind_t0ype(atstype_int) env0 ;
-atstkind_t0ype(atstype_int) env1 ;
-} __patsfun_44__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_44__cfun
-(
-__patsfun_44__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_44(p_cenv->env0, p_cenv->env1, arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_44__closureinit
-(
-__patsfun_44__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1
-)
-{
-p_cenv->env0 = env0 ;
-p_cenv->env1 = env1 ;
-p_cenv->cfun = __patsfun_44__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_44__closurerize
-(
-atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1
-)
-{
-return __patsfun_44__closureinit(ATS_MALLOC(sizeof(__patsfun_44__closure_t0ype)), env0, env1) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_45, (), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-} __patsfun_45__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_45__cfun
-(
-__patsfun_45__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_45(arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_45__closureinit
-(
-__patsfun_45__closure_t0ype *p_cenv
-)
-{
-p_cenv->cfun = __patsfun_45__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_45__closurerize
-(
-// argumentless
-)
-{
-return __patsfun_45__closureinit(ATS_MALLOC(sizeof(__patsfun_45__closure_t0ype))) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 305(line=11, offs=4) -- 360(line=12, offs=14)
-*/
-/*
-local: 
-global: witness_0$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-witness_0(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret0, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 305(line=11, offs=4) -- 360(line=12, offs=14)
-*/
-ATSINSflab(__patsflab_witness_0):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 349(line=12, offs=3) -- 359(line=12, offs=13)
-*/
-ATSINSmove(tmpret0, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), arg0)) ;
-ATSfunbody_end()
-ATSreturn(tmpret0) ;
-} /* end of [witness_0] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 425(line=15, offs=5) -- 644(line=23, offs=6)
-*/
-/*
-local: 
-global: fib_gmp_1$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-fib_gmp_1(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp2, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp5, atstkind_t0ype(atstype_ulint)) ;
-ATStmpdec(tmp6, atstkind_t0ype(atstype_int)) ;
-// ATStmpdec_void(tmp7) ;
-// ATStmpdec_void(tmp8) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 425(line=15, offs=5) -- 644(line=23, offs=6)
-*/
-ATSINSflab(__patsflab_fib_gmp_1):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 461(line=16, offs=3) -- 644(line=23, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 477(line=17, offs=13) -- 488(line=17, offs=24)
-*/
-ATSINSmove(tmp2, ATSLIB_056_prelude__ptr_alloc__2__1()) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 529(line=18, offs=41) -- 534(line=18, offs=46)
-*/
-ATSINSmove(tmp6, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 508(line=18, offs=20) -- 535(line=18, offs=47)
-*/
-ATSINSmove(tmp5, atspre_g0int2uint_int_ulint(tmp6)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 549(line=19, offs=14) -- 570(line=19, offs=35)
-*/
-ATSINSmove_void(tmp7, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp2, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 584(line=20, offs=14) -- 612(line=20, offs=42)
-*/
-ATSINSmove_void(tmp8, atscntrb_gmp_mpz_fib_uint(ATSPMVrefarg1(ATSSELrecsin(tmp2, atstkind_type(atstype_ptrk), atslab__2)), tmp5)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 622(line=22, offs=5) -- 637(line=22, offs=20)
-*/
-ATSINSmove(tmpret1, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp2)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 461(line=16, offs=3) -- 644(line=23, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret1) ;
-} /* end of [fib_gmp_1] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$2$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = a(4806)
-tmparg = S2Evar(a(4806))
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__2()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret3, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3708(line=184, offs=1) -- 3749(line=184, offs=42)
-*/
-ATSINSflab(__patsflab_ptr_alloc):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret3, atspre_ptr_alloc_tsz(ATSPMVsizeof(atstyvar_type(a)))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret3) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__2] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$2$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4806)
-tmparg = S2Evar(a(4806))
-tmpsub = Some(a(4806) -> S2EVar(5569))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__2__1()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret3__1, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3708(line=184, offs=1) -- 3749(line=184, offs=42)
-*/
-ATSINSflab(__patsflab_ptr_alloc):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret3__1, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret3__1) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__2__1] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 722(line=26, offs=5) -- 1159(line=47, offs=10)
-*/
-/*
-local: exp_5$0(level=0)
-global: exp_5$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-exp_5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret9, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp10, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmpref15, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref16, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp17, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp22, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp23, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 722(line=26, offs=5) -- 1159(line=47, offs=10)
-*/
-ATSINSflab(__patsflab_exp_5):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 774(line=27, offs=3) -- 1159(line=47, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 791(line=28, offs=7) -- 792(line=28, offs=8)
-*/
-ATSINSlab(__atstmplab0):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 743(line=26, offs=26) -- 744(line=26, offs=27)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 792(line=28, offs=8) -- 792(line=28, offs=8)
-*/
-ATSINSlab(__atstmplab1):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 796(line=28, offs=12) -- 797(line=28, offs=13)
-*/
-ATSINSmove(tmpret9, ATSPMVi0nt(0)) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 805(line=29, offs=8) -- 805(line=29, offs=8)
-*/
-ATSINSlab(__atstmplab2):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 834(line=31, offs=12) -- 839(line=31, offs=17)
-*/
-ATSINSmove(tmp10, ATSLIB_056_prelude__gt_g1int_int__6__1(arg1, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 831(line=31, offs=9) -- 1149(line=46, offs=12)
-*/
-ATSif(
-tmp10
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 855(line=32, offs=11) -- 1124(line=44, offs=14)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 875(line=33, offs=17) -- 877(line=33, offs=19)
-*/
-/*
-ATSINStmpdec(tmpref15) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 880(line=33, offs=22) -- 886(line=33, offs=28)
-*/
-ATSINSmove(tmpref15, atspre_g1int_half_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 904(line=34, offs=17) -- 906(line=34, offs=19)
-*/
-/*
-ATSINStmpdec(tmpref16) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 909(line=34, offs=22) -- 914(line=34, offs=27)
-*/
-ATSINSmove(tmpref16, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 943(line=36, offs=16) -- 949(line=36, offs=22)
-*/
-ATSINSmove(tmp17, ATSLIB_056_prelude__eq_g0int_int__12__1(tmpref16, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 940(line=36, offs=13) -- 1110(line=43, offs=18)
-*/
-ATSif(
-tmp17
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 973(line=37, offs=19) -- 978(line=37, offs=24)
-*/
-ATSINSmove(tmp22, atspre_g0int_mul_int(arg0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 969(line=37, offs=15) -- 983(line=37, offs=29)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp22) ;
-ATSINSmove_tlcal(apy1, tmpref15) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_exp_5) ;
-ATStailcal_end()
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1015(line=39, offs=15) -- 1110(line=43, offs=18)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1047(line=40, offs=29) -- 1052(line=40, offs=34)
-*/
-ATSINSmove(tmp23, atspre_g0int_mul_int(arg0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1043(line=40, offs=25) -- 1057(line=40, offs=39)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp23) ;
-ATSINSmove_tlcal(apy1, tmpref15) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_exp_5) ;
-ATStailcal_end()
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1015(line=39, offs=15) -- 1110(line=43, offs=18)
-*/
-/*
-INSletpop()
-*/
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 855(line=32, offs=11) -- 1124(line=44, offs=14)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1148(line=46, offs=11) -- 1149(line=46, offs=12)
-*/
-ATSINSmove(tmpret9, ATSPMVi0nt(1)) ;
-} /* ATSendif */
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret9) ;
-} /* end of [exp_5] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$6$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4703)
-tmparg = S2Evar(tk(4703))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret11, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp12, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12664(line=658, offs=1) -- 12718(line=659, offs=42)
-*/
-ATSINSflab(__patsflab_gt_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp12, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4703))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret11, PMVtmpltcst(g1int_gt<S2Evar(tk(4703))>)(arg0, tmp12)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret11) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__6] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$6$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4703)
-tmparg = S2Evar(tk(4703))
-tmpsub = Some(tk(4703) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret11__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp12__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12664(line=658, offs=1) -- 12718(line=659, offs=42)
-*/
-ATSINSflab(__patsflab_gt_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp12__1, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret11__1, atspre_g1int_gt_int(arg0, tmp12__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret11__1) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__1] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4694)
-tmparg = S2Evar(tk(4694))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret18, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp19, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
-*/
-ATSINSflab(__patsflab_eq_g0int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp19, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4694))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret18, PMVtmpltcst(g0int_eq<S2Evar(tk(4694))>)(arg0, tmp19)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret18) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4694)
-tmparg = S2Evar(tk(4694))
-tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret18__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp19__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
-*/
-ATSINSflab(__patsflab_eq_g0int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp19__1, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret18__1, atspre_g0int_eq_int(arg0, tmp19__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret18__1) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__1] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1164(line=49, offs=4) -- 1308(line=54, offs=6)
-*/
-/*
-local: witness_0$0(level=0)
-global: witness_0$0(level=0), sqrt_int_17$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-sqrt_int_17(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret24, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref25, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp26, atstkind_t0ype(atstype_float)) ;
-ATStmpdec(tmp27, atstkind_t0ype(atstype_float)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1164(line=49, offs=4) -- 1308(line=54, offs=6)
-*/
-ATSINSflab(__patsflab_sqrt_int_17):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1214(line=50, offs=3) -- 1308(line=54, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1226(line=51, offs=9) -- 1231(line=51, offs=14)
-*/
-/*
-ATSINStmpdec(tmpref25) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1262(line=51, offs=45) -- 1275(line=51, offs=58)
-*/
-ATSINSmove(tmp27, atspre_g0int2float_int_float(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1251(line=51, offs=34) -- 1277(line=51, offs=60)
-*/
-ATSINSmove(tmp26, atslib_libats_libc_sqrt_float(tmp27)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1239(line=51, offs=22) -- 1278(line=51, offs=61)
-*/
-ATSINSmove(tmpref25, atspre_g0float2int_float_int(tmp26)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1288(line=53, offs=5) -- 1301(line=53, offs=18)
-*/
-ATSINSmove(tmpret24, witness_0(tmpref25)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1214(line=50, offs=3) -- 1308(line=54, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret24) ;
-} /* end of [sqrt_int_17] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1344(line=57, offs=4) -- 1929(line=80, offs=10)
-*/
-/*
-local: sqrt_int_17$0(level=0)
-global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_prime_20(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret28, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp49, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1344(line=57, offs=4) -- 1929(line=80, offs=10)
-*/
-ATSINSflab(__patsflab_is_prime_20):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1380(line=58, offs=3) -- 1929(line=80, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1397(line=59, offs=7) -- 1398(line=59, offs=8)
-*/
-ATSINSlab(__atstmplab3):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1353(line=57, offs=13) -- 1354(line=57, offs=14)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab5) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1398(line=59, offs=8) -- 1398(line=59, offs=8)
-*/
-ATSINSlab(__atstmplab4):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1402(line=59, offs=12) -- 1407(line=59, offs=17)
-*/
-ATSINSmove(tmpret28, ATSPMVbool_false()) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1415(line=60, offs=8) -- 1415(line=60, offs=8)
-*/
-ATSINSlab(__atstmplab5):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1440(line=62, offs=9) -- 1919(line=79, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1895(line=78, offs=19) -- 1905(line=78, offs=29)
-*/
-ATSINSmove(tmp49, sqrt_int_17(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1887(line=78, offs=11) -- 1907(line=78, offs=31)
-*/
-ATSINSmove(tmpret28, loop_21(arg0, ATSPMVi0nt(2), tmp49)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1440(line=62, offs=9) -- 1919(line=79, offs=12)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret28) ;
-} /* end of [is_prime_20] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1458(line=63, offs=15) -- 1865(line=76, offs=21)
-*/
-/*
-local: loop_21$0(level=1)
-global: loop_21$0(level=1)
-local: k$5106(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: k$5106(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-loop_21(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret29, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp30, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp35, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp38, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp39, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp40, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp45, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp48, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-/*
-emit_funent_fnxdeclst:
-*/
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1458(line=63, offs=15) -- 1865(line=76, offs=21)
-*/
-ATSINSflab(__patsflab_loop_21):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1552(line=64, offs=16) -- 1561(line=64, offs=25)
-*/
-ATSINSmove(tmp30, ATSLIB_056_prelude__lt_g1int_int__22__1(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1549(line=64, offs=13) -- 1865(line=76, offs=21)
-*/
-ATSif(
-tmp30
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1584(line=65, offs=18) -- 1589(line=65, offs=23)
-*/
-ATSINSmove(tmp38, atspre_g0int_mod_int(env0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1584(line=65, offs=18) -- 1593(line=65, offs=27)
-*/
-ATSINSmove(tmp35, ATSLIB_056_prelude__eq_g0int_int__12__2(tmp38, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1581(line=65, offs=15) -- 1674(line=68, offs=35)
-*/
-ATSif(
-tmp35
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1615(line=66, offs=17) -- 1620(line=66, offs=22)
-*/
-ATSINSmove(tmpret29, ATSPMVbool_false()) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1661(line=68, offs=22) -- 1666(line=68, offs=27)
-*/
-ATSINSmove(tmp39, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1656(line=68, offs=17) -- 1674(line=68, offs=35)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp39) ;
-ATSINSmove_tlcal(apy1, arg1) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_21) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1709(line=70, offs=18) -- 1718(line=70, offs=27)
-*/
-ATSINSmove(tmp40, ATSLIB_056_prelude__eq_g1int_int__26__1(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1706(line=70, offs=15) -- 1865(line=76, offs=21)
-*/
-ATSif(
-tmp40
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1743(line=71, offs=20) -- 1748(line=71, offs=25)
-*/
-ATSINSmove(tmp48, atspre_g0int_mod_int(env0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1743(line=71, offs=20) -- 1752(line=71, offs=29)
-*/
-ATSINSmove(tmp45, ATSLIB_056_prelude__eq_g0int_int__12__3(tmp48, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1740(line=71, offs=17) -- 1825(line=74, offs=23)
-*/
-ATSif(
-tmp45
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1776(line=72, offs=19) -- 1781(line=72, offs=24)
-*/
-ATSINSmove(tmpret29, ATSPMVbool_false()) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1821(line=74, offs=19) -- 1825(line=74, offs=23)
-*/
-ATSINSmove(tmpret29, ATSPMVbool_true()) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1861(line=76, offs=17) -- 1865(line=76, offs=21)
-*/
-ATSINSmove(tmpret29, ATSPMVbool_true()) ;
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret29) ;
-/*
-emit_funent_fnxbodylst:
-*/
-} /* end of [loop_21] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
-*/
-/*
-local: 
-global: lt_g1int_int$22$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4697)
-tmparg = S2Evar(tk(4697))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__22(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret31, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp32, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12505(line=649, offs=1) -- 12559(line=650, offs=42)
-*/
-ATSINSflab(__patsflab_lt_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
-*/
-ATSINSmove(tmp32, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4697))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
-*/
-ATSINSmove(tmpret31, PMVtmpltcst(g1int_lt<S2Evar(tk(4697))>)(arg0, tmp32)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret31) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__22] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
-*/
-/*
-local: 
-global: lt_g1int_int$22$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4697)
-tmparg = S2Evar(tk(4697))
-tmpsub = Some(tk(4697) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__22__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret31__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp32__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12505(line=649, offs=1) -- 12559(line=650, offs=42)
-*/
-ATSINSflab(__patsflab_lt_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
-*/
-ATSINSmove(tmp32__1, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
-*/
-ATSINSmove(tmpret31__1, atspre_g1int_lt_int(arg0, tmp32__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret31__1) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__22__1] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$2(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4694)
-tmparg = S2Evar(tk(4694))
-tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret18__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp19__2, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
-*/
-ATSINSflab(__patsflab_eq_g0int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp19__2, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret18__2, atspre_g0int_eq_int(arg0, tmp19__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret18__2) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__2] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
-*/
-/*
-local: 
-global: eq_g1int_int$26$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4709)
-tmparg = S2Evar(tk(4709))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__26(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret41, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp42, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12823(line=667, offs=1) -- 12877(line=668, offs=42)
-*/
-ATSINSflab(__patsflab_eq_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
-*/
-ATSINSmove(tmp42, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4709))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
-*/
-ATSINSmove(tmpret41, PMVtmpltcst(g1int_eq<S2Evar(tk(4709))>)(arg0, tmp42)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret41) ;
-} /* end of [ATSLIB_056_prelude__eq_g1int_int__26] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
-*/
-/*
-local: 
-global: eq_g1int_int$26$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4709)
-tmparg = S2Evar(tk(4709))
-tmpsub = Some(tk(4709) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__26__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret41__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp42__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12823(line=667, offs=1) -- 12877(line=668, offs=42)
-*/
-ATSINSflab(__patsflab_eq_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
-*/
-ATSINSmove(tmp42__1, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
-*/
-ATSINSmove(tmpret41__1, atspre_g1int_eq_int(arg0, tmp42__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret41__1) ;
-} /* end of [ATSLIB_056_prelude__eq_g1int_int__26__1] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$3(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4694)
-tmparg = S2Evar(tk(4694))
-tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret18__3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp19__3, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
-*/
-ATSINSflab(__patsflab_eq_g0int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp19__3, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret18__3, atspre_g0int_eq_int(arg0, tmp19__3)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret18__3) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__3] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 519(line=20, offs=4) -- 567(line=21, offs=12)
-*/
-/*
-local: 
-global: divides_30$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-divides_30(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret50, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp53, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 519(line=20, offs=4) -- 567(line=21, offs=12)
-*/
-ATSINSflab(__patsflab_divides_30):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 558(line=21, offs=3) -- 563(line=21, offs=8)
-*/
-ATSINSmove(tmp53, atspre_g0int_mod_int(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 558(line=21, offs=3) -- 567(line=21, offs=12)
-*/
-ATSINSmove(tmpret50, ATSLIB_056_prelude__eq_g0int_int__12__4(tmp53, ATSPMVi0nt(0))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret50) ;
-} /* end of [divides_30] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$4(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4694)
-tmparg = S2Evar(tk(4694))
-tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret18__4, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp19__4, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
-*/
-ATSINSflab(__patsflab_eq_g0int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp19__4, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret18__4, atspre_g0int_eq_int(arg0, tmp19__4)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret18__4) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__4] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 573(line=23, offs=5) -- 684(line=27, offs=6)
-*/
-/*
-local: witness_0$0(level=0), gcd_32$0(level=0)
-global: witness_0$0(level=0), gcd_32$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-gcd_32(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret54, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp55, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp58, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp59, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-/*
-emit_funent_fnxdeclst:
-*/
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 573(line=23, offs=5) -- 684(line=27, offs=6)
-*/
-ATSINSflab(__patsflab_gcd_32):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 634(line=24, offs=6) -- 639(line=24, offs=11)
-*/
-ATSINSmove(tmp55, ATSLIB_056_prelude__gt_g1int_int__6__2(arg1, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 631(line=24, offs=3) -- 684(line=27, offs=6)
-*/
-ATSif(
-tmp55
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 664(line=25, offs=20) -- 669(line=25, offs=25)
-*/
-ATSINSmove(tmp59, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 656(line=25, offs=12) -- 670(line=25, offs=26)
-*/
-ATSINSmove(tmp58, witness_0(tmp59)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 649(line=25, offs=5) -- 671(line=25, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg1) ;
-ATSINSmove_tlcal(apy1, tmp58) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_gcd_32) ;
-ATStailcal_end()
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 683(line=27, offs=5) -- 684(line=27, offs=6)
-*/
-ATSINSmove(tmpret54, arg0) ;
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret54) ;
-/*
-emit_funent_fnxbodylst:
-*/
-} /* end of [gcd_32] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$6$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4703)
-tmparg = S2Evar(tk(4703))
-tmpsub = Some(tk(4703) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__6__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret11__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp12__2, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12664(line=658, offs=1) -- 12718(line=659, offs=42)
-*/
-ATSINSflab(__patsflab_gt_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp12__2, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret11__2, atspre_g1int_gt_int(arg0, tmp12__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret11__2) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__6__2] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 689(line=29, offs=4) -- 766(line=30, offs=22)
-*/
-/*
-local: gcd_32$0(level=0)
-global: witness_0$0(level=0), gcd_32$0(level=0), lcm_34$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-lcm_34(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret60, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp61, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp62, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 689(line=29, offs=4) -- 766(line=30, offs=22)
-*/
-ATSINSflab(__patsflab_lcm_34):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 752(line=30, offs=8) -- 761(line=30, offs=17)
-*/
-ATSINSmove(tmp62, gcd_32(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 748(line=30, offs=4) -- 761(line=30, offs=17)
-*/
-ATSINSmove(tmp61, atspre_g0int_div_int(arg0, tmp62)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 747(line=30, offs=3) -- 766(line=30, offs=22)
-*/
-ATSINSmove(tmpret60, atspre_g0int_mul_int(tmp61, arg1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret60) ;
-} /* end of [lcm_34] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 809(line=33, offs=4) -- 1217(line=45, offs=6)
-*/
-/*
-local: 
-global: divisors_36$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-divisors_36(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret63, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 809(line=33, offs=4) -- 1217(line=45, offs=6)
-*/
-ATSINSflab(__patsflab_divisors_36):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 856(line=34, offs=3) -- 1217(line=45, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1201(line=44, offs=5) -- 1211(line=44, offs=15)
-*/
-ATSINSmove(tmpret63, loop_37(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 856(line=34, offs=3) -- 1217(line=45, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret63) ;
-} /* end of [divisors_36] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 868(line=35, offs=9) -- 1191(line=42, offs=33)
-*/
-/*
-local: loop_37$0(level=1)
-global: loop_37$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_37(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret64, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp65, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp73, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp76, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 868(line=35, offs=9) -- 1191(line=42, offs=33)
-*/
-ATSINSflab(__patsflab_loop_37):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 977(line=36, offs=10) -- 985(line=36, offs=18)
-*/
-ATSINSmove(tmp65, ATSLIB_056_prelude__gte_g1int_int__38__1(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 974(line=36, offs=7) -- 1191(line=42, offs=33)
-*/
-ATSif(
-tmp65
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 999(line=37, offs=9) -- 1051(line=37, offs=61)
-*/
-ATSINSmove_ldelay(tmpret64, atstype_boxed, ATSPMVcfunlab(1, __patsfun_41, (arg1))) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1074(line=39, offs=12) -- 1081(line=39, offs=19)
-*/
-ATSINSmove(tmp76, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1074(line=39, offs=12) -- 1085(line=39, offs=23)
-*/
-ATSINSmove(tmp73, ATSLIB_056_prelude__eq_g0int_int__12__5(tmp76, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1071(line=39, offs=9) -- 1191(line=42, offs=33)
-*/
-ATSif(
-tmp73
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1101(line=40, offs=11) -- 1145(line=40, offs=55)
-*/
-ATSINSmove_ldelay(tmpret64, atstype_boxed, ATSPMVcfunlab(1, __patsfun_44, (arg0, arg1))) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1169(line=42, offs=11) -- 1191(line=42, offs=33)
-*/
-ATSINSmove_ldelay(tmpret64, atstype_boxed, ATSPMVcfunlab(1, __patsfun_45, ())) ;
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret64) ;
-} /* end of [loop_37] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$38$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__38(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret66, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp67, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
-*/
-ATSINSflab(__patsflab_gte_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
-*/
-ATSINSmove(tmp67, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4706))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
-*/
-ATSINSmove(tmpret66, PMVtmpltcst(g1int_gte<S2Evar(tk(4706))>)(arg0, tmp67)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret66) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__38] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$38$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__38__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret66__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp67__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
-*/
-ATSINSflab(__patsflab_gte_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
-*/
-ATSINSmove(tmp67__1, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
-*/
-ATSINSmove(tmpret66__1, atspre_g1int_gte_int(arg0, tmp67__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret66__1) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__38__1] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 999(line=37, offs=9) -- 1051(line=37, offs=61)
-*/
-/*
-local: 
-global: __patsfun_41$0(level=2)
-local: acc$5123(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: acc$5123(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_41(atstkind_t0ype(atstype_int) env0, atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret70, atstype_boxed) ;
-ATStmpdec(tmp71, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 999(line=37, offs=9) -- 1051(line=37, offs=61)
-*/
-ATSINSflab(__patsflab___patsfun_41):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 999(line=37, offs=9) -- 1051(line=37, offs=61)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1027(line=37, offs=37) -- 1049(line=37, offs=59)
-*/
-ATSINSmove_ldelay(tmp71, atstype_boxed, ATSPMVcfunlab(1, __patsfun_42, ())) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1007(line=37, offs=17) -- 1050(line=37, offs=60)
-*/
-
-/*
-#LINCONSTATUS==0
-*/
-ATSINSmove_con1_beg()
-ATSINSmove_con1_new(tmpret70, postiats_tysum_0) ;
-#if(0)
-ATSINSstore_con1_tag(tmpret70, 1) ;
-#endif
-ATSINSstore_con1_ofs(tmpret70, postiats_tysum_0, atslab__0, env0) ;
-ATSINSstore_con1_ofs(tmpret70, postiats_tysum_0, atslab__1, tmp71) ;
-ATSINSmove_con1_end()
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret70) ;
-} /* end of [__patsfun_41] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1027(line=37, offs=37) -- 1049(line=37, offs=59)
-*/
-/*
-local: 
-global: __patsfun_42$0(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_42(atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret72, atstype_boxed) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1027(line=37, offs=37) -- 1049(line=37, offs=59)
-*/
-ATSINSflab(__patsflab___patsfun_42):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1027(line=37, offs=37) -- 1049(line=37, offs=59)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1035(line=37, offs=45) -- 1048(line=37, offs=58)
-*/
-
-ATSINSmove_nil(tmpret72) ;
-
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret72) ;
-} /* end of [__patsfun_42] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$5(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4694)
-tmparg = S2Evar(tk(4694))
-tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret18__5, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp19__5, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
-*/
-ATSINSflab(__patsflab_eq_g0int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp19__5, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret18__5, atspre_g0int_eq_int(arg0, tmp19__5)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret18__5) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__5] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1101(line=40, offs=11) -- 1145(line=40, offs=55)
-*/
-/*
-local: loop_37$0(level=1)
-global: loop_37$0(level=1), __patsfun_44$0(level=2)
-local: n$5122(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5123(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: n$5122(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5123(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_44(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret77, atstype_boxed) ;
-ATStmpdec(tmp78, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp79, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1101(line=40, offs=11) -- 1145(line=40, offs=55)
-*/
-ATSINSflab(__patsflab___patsfun_44):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1101(line=40, offs=11) -- 1145(line=40, offs=55)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1135(line=40, offs=45) -- 1142(line=40, offs=52)
-*/
-ATSINSmove(tmp79, atspre_g1int_add_int(env1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1127(line=40, offs=37) -- 1143(line=40, offs=53)
-*/
-ATSINSmove(tmp78, loop_37(env0, tmp79)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1109(line=40, offs=19) -- 1144(line=40, offs=54)
-*/
-
-/*
-#LINCONSTATUS==0
-*/
-ATSINSmove_con1_beg()
-ATSINSmove_con1_new(tmpret77, postiats_tysum_0) ;
-#if(0)
-ATSINSstore_con1_tag(tmpret77, 1) ;
-#endif
-ATSINSstore_con1_ofs(tmpret77, postiats_tysum_0, atslab__0, env0) ;
-ATSINSstore_con1_ofs(tmpret77, postiats_tysum_0, atslab__1, tmp78) ;
-ATSINSmove_con1_end()
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret77) ;
-} /* end of [__patsfun_44] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1169(line=42, offs=11) -- 1191(line=42, offs=33)
-*/
-/*
-local: 
-global: __patsfun_45$0(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_45(atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret80, atstype_boxed) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1169(line=42, offs=11) -- 1191(line=42, offs=33)
-*/
-ATSINSflab(__patsflab___patsfun_45):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1169(line=42, offs=11) -- 1191(line=42, offs=33)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1177(line=42, offs=19) -- 1190(line=42, offs=32)
-*/
-
-ATSINSmove_nil(tmpret80) ;
-
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret80) ;
-} /* end of [__patsfun_45] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1222(line=47, offs=4) -- 1533(line=59, offs=6)
-*/
-/*
-local: 
-global: count_divisors_46$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-count_divisors_46(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret81, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1222(line=47, offs=4) -- 1533(line=59, offs=6)
-*/
-ATSINSflab(__patsflab_count_divisors_46):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1264(line=48, offs=3) -- 1533(line=59, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1517(line=58, offs=5) -- 1527(line=58, offs=15)
-*/
-ATSINSmove(tmpret81, loop_47(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1264(line=48, offs=3) -- 1533(line=59, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret81) ;
-} /* end of [count_divisors_46] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1276(line=49, offs=9) -- 1507(line=56, offs=27)
-*/
-/*
-local: loop_47$0(level=1)
-global: loop_47$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_47(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret82, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp83, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp86, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp89, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp90, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp91, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp92, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1276(line=49, offs=9) -- 1507(line=56, offs=27)
-*/
-ATSINSflab(__patsflab_loop_47):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1374(line=50, offs=10) -- 1382(line=50, offs=18)
-*/
-ATSINSmove(tmp83, ATSLIB_056_prelude__gte_g1int_int__38__2(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1371(line=50, offs=7) -- 1507(line=56, offs=27)
-*/
-ATSif(
-tmp83
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1396(line=51, offs=9) -- 1397(line=51, offs=10)
-*/
-ATSINSmove(tmpret82, ATSPMVi0nt(1)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1420(line=53, offs=12) -- 1427(line=53, offs=19)
-*/
-ATSINSmove(tmp89, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1420(line=53, offs=12) -- 1431(line=53, offs=23)
-*/
-ATSINSmove(tmp86, ATSLIB_056_prelude__eq_g0int_int__12__6(tmp89, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1417(line=53, offs=9) -- 1507(line=56, offs=27)
-*/
-ATSif(
-tmp86
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1459(line=54, offs=23) -- 1466(line=54, offs=30)
-*/
-ATSINSmove(tmp91, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1451(line=54, offs=15) -- 1467(line=54, offs=31)
-*/
-ATSINSmove(tmp90, loop_47(arg0, tmp91)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1447(line=54, offs=11) -- 1467(line=54, offs=31)
-*/
-ATSINSmove(tmpret82, atspre_g0int_add_int(ATSPMVi0nt(1), tmp90)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1499(line=56, offs=19) -- 1506(line=56, offs=26)
-*/
-ATSINSmove(tmp92, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1491(line=56, offs=11) -- 1507(line=56, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg0) ;
-ATSINSmove_tlcal(apy1, tmp92) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_47) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret82) ;
-} /* end of [loop_47] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$38$2(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__38__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret66__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp67__2, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
-*/
-ATSINSflab(__patsflab_gte_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
-*/
-ATSINSmove(tmp67__2, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
-*/
-ATSINSmove(tmpret66__2, atspre_g1int_gte_int(arg0, tmp67__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret66__2) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__38__2] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$6(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4694)
-tmparg = S2Evar(tk(4694))
-tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__6(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret18__6, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp19__6, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
-*/
-ATSINSflab(__patsflab_eq_g0int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp19__6, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret18__6, atspre_g0int_eq_int(arg0, tmp19__6)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret18__6) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__6] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1538(line=61, offs=4) -- 1849(line=73, offs=6)
-*/
-/*
-local: 
-global: sum_divisors_51$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-sum_divisors_51(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret93, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1538(line=61, offs=4) -- 1849(line=73, offs=6)
-*/
-ATSINSflab(__patsflab_sum_divisors_51):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1578(line=62, offs=3) -- 1849(line=73, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1833(line=72, offs=5) -- 1843(line=72, offs=15)
-*/
-ATSINSmove(tmpret93, loop_52(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1578(line=62, offs=3) -- 1849(line=73, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret93) ;
-} /* end of [sum_divisors_51] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1590(line=63, offs=9) -- 1823(line=70, offs=27)
-*/
-/*
-local: loop_52$0(level=1)
-global: loop_52$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_52(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret94, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp95, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp98, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp101, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp102, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp103, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp104, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1590(line=63, offs=9) -- 1823(line=70, offs=27)
-*/
-ATSINSflab(__patsflab_loop_52):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1688(line=64, offs=10) -- 1696(line=64, offs=18)
-*/
-ATSINSmove(tmp95, ATSLIB_056_prelude__gte_g1int_int__38__3(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1685(line=64, offs=7) -- 1823(line=70, offs=27)
-*/
-ATSif(
-tmp95
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1710(line=65, offs=9) -- 1711(line=65, offs=10)
-*/
-ATSINSmove(tmpret94, ATSPMVi0nt(0)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1734(line=67, offs=12) -- 1741(line=67, offs=19)
-*/
-ATSINSmove(tmp101, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1734(line=67, offs=12) -- 1745(line=67, offs=23)
-*/
-ATSINSmove(tmp98, ATSLIB_056_prelude__eq_g0int_int__12__7(tmp101, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1731(line=67, offs=9) -- 1823(line=70, offs=27)
-*/
-ATSif(
-tmp98
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1775(line=68, offs=25) -- 1782(line=68, offs=32)
-*/
-ATSINSmove(tmp103, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1767(line=68, offs=17) -- 1783(line=68, offs=33)
-*/
-ATSINSmove(tmp102, loop_52(arg0, tmp103)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1761(line=68, offs=11) -- 1783(line=68, offs=33)
-*/
-ATSINSmove(tmpret94, atspre_g0int_add_int(arg1, tmp102)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1815(line=70, offs=19) -- 1822(line=70, offs=26)
-*/
-ATSINSmove(tmp104, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1807(line=70, offs=11) -- 1823(line=70, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg0) ;
-ATSINSmove_tlcal(apy1, tmp104) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_52) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret94) ;
-} /* end of [loop_52] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$38$3(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__38__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret66__3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp67__3, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
-*/
-ATSINSflab(__patsflab_gte_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
-*/
-ATSINSmove(tmp67__3, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
-*/
-ATSINSmove(tmpret66__3, atspre_g1int_gte_int(arg0, tmp67__3)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret66__3) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__38__3] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$7(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4694)
-tmparg = S2Evar(tk(4694))
-tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__7(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret18__7, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp19__7, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
-*/
-ATSINSflab(__patsflab_eq_g0int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp19__7, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret18__7, atspre_g0int_eq_int(arg0, tmp19__7)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret18__7) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__7] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1854(line=75, offs=4) -- 1912(line=76, offs=22)
-*/
-/*
-local: sum_divisors_51$0(level=0)
-global: sum_divisors_51$0(level=0), is_perfect_55$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_perfect_55(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret105, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp108, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1854(line=75, offs=4) -- 1912(line=76, offs=22)
-*/
-ATSINSflab(__patsflab_is_perfect_55):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1893(line=76, offs=3) -- 1907(line=76, offs=17)
-*/
-ATSINSmove(tmp108, sum_divisors_51(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1893(line=76, offs=3) -- 1912(line=76, offs=22)
-*/
-ATSINSmove(tmpret105, ATSLIB_056_prelude__eq_g0int_int__12__8(tmp108, arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret105) ;
-} /* end of [is_perfect_55] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$8(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4694)
-tmparg = S2Evar(tk(4694))
-tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__8(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret18__8, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp19__8, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
-*/
-ATSINSflab(__patsflab_eq_g0int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp19__8, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret18__8, atspre_g0int_eq_int(arg0, tmp19__8)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret18__8) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__8] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1944(line=79, offs=4) -- 2325(line=94, offs=6)
-*/
-/*
-local: is_prime_20$0(level=0)
-global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), little_omega_57$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-little_omega_57(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret109, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1944(line=79, offs=4) -- 2325(line=94, offs=6)
-*/
-ATSINSflab(__patsflab_little_omega_57):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1984(line=80, offs=3) -- 2325(line=94, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2309(line=93, offs=5) -- 2319(line=93, offs=15)
-*/
-ATSINSmove(tmpret109, loop_58(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1984(line=80, offs=3) -- 2325(line=94, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret109) ;
-} /* end of [little_omega_57] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1996(line=81, offs=9) -- 2299(line=91, offs=27)
-*/
-/*
-local: is_prime_20$0(level=0), loop_58$0(level=1)
-global: is_prime_20$0(level=0), loop_58$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_58(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret110, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp111, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp114, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp115, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp116, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp119, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp120, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp121, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp122, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1996(line=81, offs=9) -- 2299(line=91, offs=27)
-*/
-ATSINSflab(__patsflab_loop_58):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2094(line=82, offs=10) -- 2102(line=82, offs=18)
-*/
-ATSINSmove(tmp111, ATSLIB_056_prelude__gte_g1int_int__38__4(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2091(line=82, offs=7) -- 2299(line=91, offs=27)
-*/
-ATSif(
-tmp111
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2119(line=83, offs=12) -- 2129(line=83, offs=22)
-*/
-ATSINSmove(tmp114, is_prime_20(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2116(line=83, offs=9) -- 2172(line=86, offs=12)
-*/
-ATSif(
-tmp114
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2146(line=84, offs=11) -- 2147(line=84, offs=12)
-*/
-ATSINSmove(tmpret110, ATSPMVi0nt(1)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2171(line=86, offs=11) -- 2172(line=86, offs=12)
-*/
-ATSINSmove(tmpret110, ATSPMVi0nt(0)) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
-*/
-ATSINSmove(tmp119, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
-*/
-ATSINSmove(tmp116, ATSLIB_056_prelude__eq_g0int_int__12__9(tmp119, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
-*/
-ATSif(
-tmp116
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
-*/
-ATSINSmove(tmp115, is_prime_20(arg1)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
-*/
-ATSINSmove(tmp115, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2192(line=88, offs=9) -- 2299(line=91, offs=27)
-*/
-ATSif(
-tmp115
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2251(line=89, offs=23) -- 2258(line=89, offs=30)
-*/
-ATSINSmove(tmp121, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2243(line=89, offs=15) -- 2259(line=89, offs=31)
-*/
-ATSINSmove(tmp120, loop_58(arg0, tmp121)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2239(line=89, offs=11) -- 2259(line=89, offs=31)
-*/
-ATSINSmove(tmpret110, atspre_g0int_add_int(ATSPMVi0nt(1), tmp120)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2291(line=91, offs=19) -- 2298(line=91, offs=26)
-*/
-ATSINSmove(tmp122, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2283(line=91, offs=11) -- 2299(line=91, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg0) ;
-ATSINSmove_tlcal(apy1, tmp122) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_58) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret110) ;
-} /* end of [loop_58] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$38$4(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__38__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret66__4, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp67__4, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
-*/
-ATSINSflab(__patsflab_gte_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
-*/
-ATSINSmove(tmp67__4, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
-*/
-ATSINSmove(tmpret66__4, atspre_g1int_gte_int(arg0, tmp67__4)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret66__4) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__38__4] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$9(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4694)
-tmparg = S2Evar(tk(4694))
-tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__9(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret18__9, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp19__9, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
-*/
-ATSINSflab(__patsflab_eq_g0int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp19__9, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret18__9, atspre_g0int_eq_int(arg0, tmp19__9)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret18__9) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__9] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2359(line=97, offs=4) -- 2907(line=117, offs=10)
-*/
-/*
-local: is_prime_20$0(level=0)
-global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), totient_61$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-totient_61(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret123, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2359(line=97, offs=4) -- 2907(line=117, offs=10)
-*/
-ATSINSflab(__patsflab_totient_61):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2392(line=98, offs=3) -- 2907(line=117, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2409(line=99, offs=7) -- 2410(line=99, offs=8)
-*/
-ATSINSlab(__atstmplab6):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2367(line=97, offs=12) -- 2368(line=97, offs=13)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab8) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2410(line=99, offs=8) -- 2410(line=99, offs=8)
-*/
-ATSINSlab(__atstmplab7):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2414(line=99, offs=12) -- 2415(line=99, offs=13)
-*/
-ATSINSmove(tmpret123, ATSPMVi0nt(1)) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2423(line=100, offs=8) -- 2423(line=100, offs=8)
-*/
-ATSINSlab(__atstmplab8):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2449(line=102, offs=9) -- 2897(line=116, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2875(line=115, offs=11) -- 2885(line=115, offs=21)
-*/
-ATSINSmove(tmpret123, loop_62(ATSPMVi0nt(1), arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2449(line=102, offs=9) -- 2897(line=116, offs=12)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret123) ;
-} /* end of [totient_61] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2467(line=103, offs=15) -- 2853(line=113, offs=31)
-*/
-/*
-local: is_prime_20$0(level=0), loop_62$0(level=1)
-global: is_prime_20$0(level=0), loop_62$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_62(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret124, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp125, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp128, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp129, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp130, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp131, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp134, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp139, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp140, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp141, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp142, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp143, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-/*
-emit_funent_fnxdeclst:
-*/
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2467(line=103, offs=15) -- 2853(line=113, offs=31)
-*/
-ATSINSflab(__patsflab_loop_62):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2578(line=104, offs=16) -- 2584(line=104, offs=22)
-*/
-ATSINSmove(tmp125, ATSLIB_056_prelude__gte_g1int_int__38__5(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2575(line=104, offs=13) -- 2853(line=113, offs=31)
-*/
-ATSif(
-tmp125
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2607(line=105, offs=18) -- 2617(line=105, offs=28)
-*/
-ATSINSmove(tmp128, is_prime_20(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2604(line=105, offs=15) -- 2682(line=108, offs=18)
-*/
-ATSif(
-tmp128
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2640(line=106, offs=17) -- 2645(line=106, offs=22)
-*/
-ATSINSmove(tmpret124, atspre_g1int_sub_int(arg1, ATSPMVi0nt(1))) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2681(line=108, offs=17) -- 2682(line=108, offs=18)
-*/
-ATSINSmove(tmpret124, arg1) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
-*/
-ATSINSmove(tmp134, atspre_g0int_mod_int(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
-*/
-ATSINSmove(tmp131, ATSLIB_056_prelude__eq_g0int_int__12__10(tmp134, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
-*/
-ATSif(
-tmp131
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
-*/
-ATSINSmove(tmp130, is_prime_20(arg0)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
-*/
-ATSINSmove(tmp130, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
-*/
-ATSif(
-tmp130
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
-*/
-ATSINSmove(tmp129, ATSLIB_056_prelude__neq_g1int_int__66__1(arg0, arg1)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
-*/
-ATSINSmove(tmp129, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2714(line=110, offs=15) -- 2853(line=113, offs=31)
-*/
-ATSif(
-tmp129
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2779(line=111, offs=23) -- 2784(line=111, offs=28)
-*/
-ATSINSmove(tmp141, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2774(line=111, offs=18) -- 2788(line=111, offs=32)
-*/
-ATSINSmove(tmp140, loop_62(tmp141, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2774(line=111, offs=18) -- 2792(line=111, offs=36)
-*/
-ATSINSmove(tmp139, atspre_g0int_div_int(tmp140, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2797(line=111, offs=41) -- 2802(line=111, offs=46)
-*/
-ATSINSmove(tmp142, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2773(line=111, offs=17) -- 2803(line=111, offs=47)
-*/
-ATSINSmove(tmpret124, atspre_g0int_mul_int(tmp139, tmp142)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2844(line=113, offs=22) -- 2849(line=113, offs=27)
-*/
-ATSINSmove(tmp143, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2839(line=113, offs=17) -- 2853(line=113, offs=31)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp143) ;
-ATSINSmove_tlcal(apy1, arg1) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_62) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret124) ;
-/*
-emit_funent_fnxbodylst:
-*/
-} /* end of [loop_62] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$38$5(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__38__5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret66__5, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp67__5, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
-*/
-ATSINSflab(__patsflab_gte_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
-*/
-ATSINSmove(tmp67__5, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
-*/
-ATSINSmove(tmpret66__5, atspre_g1int_gte_int(arg0, tmp67__5)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret66__5) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__38__5] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$12$10(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4694)
-tmparg = S2Evar(tk(4694))
-tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__12__10(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret18__10, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp19__10, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
-*/
-ATSINSflab(__patsflab_eq_g0int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp19__10, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret18__10, atspre_g0int_eq_int(arg0, tmp19__10)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret18__10) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__12__10] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12916(line=672, offs=3) -- 12956(line=672, offs=43)
-*/
-/*
-local: 
-global: neq_g1int_int$66$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4712)
-tmparg = S2Evar(tk(4712))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__66(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret135, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp136, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12900(line=671, offs=1) -- 12956(line=672, offs=43)
-*/
-ATSINSflab(__patsflab_neq_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12943(line=672, offs=30) -- 12954(line=672, offs=41)
-*/
-ATSINSmove(tmp136, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4712))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12925(line=672, offs=12) -- 12956(line=672, offs=43)
-*/
-ATSINSmove(tmpret135, PMVtmpltcst(g1int_neq<S2Evar(tk(4712))>)(arg0, tmp136)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret135) ;
-} /* end of [ATSLIB_056_prelude__neq_g1int_int__66] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12916(line=672, offs=3) -- 12956(line=672, offs=43)
-*/
-/*
-local: 
-global: neq_g1int_int$66$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4712)
-tmparg = S2Evar(tk(4712))
-tmpsub = Some(tk(4712) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__66__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret135__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp136__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12900(line=671, offs=1) -- 12956(line=672, offs=43)
-*/
-ATSINSflab(__patsflab_neq_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12943(line=672, offs=30) -- 12954(line=672, offs=41)
-*/
-ATSINSmove(tmp136__1, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12925(line=672, offs=12) -- 12956(line=672, offs=43)
-*/
-ATSINSmove(tmpret135__1, atspre_g1int_neq_int(arg0, tmp136__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret135__1) ;
-} /* end of [ATSLIB_056_prelude__neq_g1int_int__66__1] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2991(line=121, offs=5) -- 3379(line=135, offs=6)
-*/
-/*
-local: witness_0$0(level=0), totient_61$0(level=0)
-global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), totient_61$0(level=0), totient_sum_69$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-totient_sum_69(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret144, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2991(line=121, offs=5) -- 3379(line=135, offs=6)
-*/
-ATSINSflab(__patsflab_totient_sum_69):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3031(line=122, offs=3) -- 3379(line=135, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3363(line=134, offs=5) -- 3373(line=134, offs=15)
-*/
-ATSINSmove(tmpret144, loop_70(ATSPMVi0nt(1), arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3031(line=122, offs=3) -- 3379(line=135, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret144) ;
-} /* end of [totient_sum_69] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3043(line=123, offs=9) -- 3353(line=132, offs=40)
-*/
-/*
-local: witness_0$0(level=0), totient_61$0(level=0), loop_70$0(level=1)
-global: witness_0$0(level=0), totient_61$0(level=0), loop_70$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_70(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret145, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp146, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp149, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp150, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp155, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp156, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp164, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp165, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-/*
-emit_funent_fnxdeclst:
-*/
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3043(line=123, offs=9) -- 3353(line=132, offs=40)
-*/
-ATSINSflab(__patsflab_loop_70):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3146(line=124, offs=10) -- 3155(line=124, offs=19)
-*/
-ATSINSmove(tmp146, ATSLIB_056_prelude__lt_g1int_int__22__2(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3143(line=124, offs=7) -- 3353(line=132, offs=40)
-*/
-ATSif(
-tmp146
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3169(line=125, offs=9) -- 3302(line=130, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3196(line=126, offs=24) -- 3201(line=126, offs=29)
-*/
-ATSINSmove(tmp150, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3191(line=126, offs=19) -- 3209(line=126, offs=37)
-*/
-ATSINSmove(tmp149, loop_70(tmp150, arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3255(line=127, offs=46) -- 3264(line=127, offs=55)
-*/
-ATSINSmove(tmp156, totient_61(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3247(line=127, offs=38) -- 3266(line=127, offs=57)
-*/
-ATSINSmove(tmp155, witness_0(tmp156)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3228(line=127, offs=19) -- 3267(line=127, offs=58)
-*/
-ATSINSmove(tmpret145, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__72__1(tmp149, tmp155)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3169(line=125, offs=9) -- 3302(line=130, offs=12)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3322(line=132, offs=9) -- 3353(line=132, offs=40)
-*/
-ATSINSmove(tmp165, totient_61(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3322(line=132, offs=9) -- 3353(line=132, offs=40)
-*/
-ATSINSmove(tmp164, witness_0(tmp165)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3322(line=132, offs=9) -- 3353(line=132, offs=40)
-*/
-ATSINSmove(tmpret145, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__74__1(tmp164)) ;
-
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret145) ;
-/*
-emit_funent_fnxbodylst:
-*/
-} /* end of [loop_70] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
-*/
-/*
-local: 
-global: lt_g1int_int$22$2(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4697)
-tmparg = S2Evar(tk(4697))
-tmpsub = Some(tk(4697) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__22__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret31__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp32__2, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12505(line=649, offs=1) -- 12559(line=650, offs=42)
-*/
-ATSINSflab(__patsflab_lt_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
-*/
-ATSINSmove(tmp32__2, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
-*/
-ATSINSmove(tmpret31__2, atspre_g1int_lt_int(arg0, tmp32__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret31__2) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__22__2] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5151(line=274, offs=3) -- 5217(line=279, offs=2)
-*/
-/*
-local: 
-global: add_intinf0_int$72$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__72(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret151, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp152) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5133(line=273, offs=1) -- 5217(line=279, offs=2)
-*/
-ATSINSflab(__patsflab_add_intinf0_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5184(line=277, offs=10) -- 5212(line=277, offs=38)
-*/
-ATSINSmove_void(tmp152, atscntrb_gmp_mpz_add2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5161(line=274, offs=13) -- 5162(line=274, offs=14)
-*/
-ATSINSmove(tmpret151, arg0) ;
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret151) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__72] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5151(line=274, offs=3) -- 5217(line=279, offs=2)
-*/
-/*
-local: 
-global: add_intinf0_int$72$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__72__1(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret151__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp152__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5133(line=273, offs=1) -- 5217(line=279, offs=2)
-*/
-ATSINSflab(__patsflab_add_intinf0_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5184(line=277, offs=10) -- 5212(line=277, offs=38)
-*/
-ATSINSmove_void(tmp152__1, atscntrb_gmp_mpz_add2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5161(line=274, offs=13) -- 5162(line=274, offs=14)
-*/
-ATSINSmove(tmpret151__1, arg0) ;
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret151__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__72__1] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$74$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__74(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret157, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp158, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp159) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2191(line=73, offs=1) -- 2301(line=80, offs=2)
-*/
-ATSINSflab(__patsflab_intinf_make_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp158, PMVtmpltcst(ptr_alloc<S2Ecst(mpz_vt0ype)>)()) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp159, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp158, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret157, tmp158) ;
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret157) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__74] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$74$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__74__1(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret157__1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp158__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp159__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2191(line=73, offs=1) -- 2301(line=80, offs=2)
-*/
-ATSINSflab(__patsflab_intinf_make_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
-*/
-ATSINSmove(tmp158__1, ATSLIB_056_prelude__ptr_alloc__2__2()) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp159__1, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp158__1, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
-*/
-ATSINSmove(tmpret157__1, tmp158__1) ;
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret157__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__74__1] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$2$2(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4806)
-tmparg = S2Evar(a(4806))
-tmpsub = Some(a(4806) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__2__2()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret3__2, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3708(line=184, offs=1) -- 3749(line=184, offs=42)
-*/
-ATSINSflab(__patsflab_ptr_alloc):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
-*/
-ATSINSmove(tmpret3__2, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret3__2) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__2__2] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 491(line=26, offs=28) -- 513(line=27, offs=17)
-*/
-/*
-local: sum_divisors_51$0(level=0)
-global: sum_divisors_51$0(level=0), sum_divisors_ats$77$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-sum_divisors_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret166, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 474(line=26, offs=11) -- 514(line=27, offs=18)
-*/
-ATSINSflab(__patsflab_sum_divisors_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 499(line=27, offs=3) -- 513(line=27, offs=17)
-*/
-ATSINSmove(tmpret166, sum_divisors_51(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret166) ;
-} /* end of [sum_divisors_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 545(line=29, offs=30) -- 569(line=30, offs=19)
-*/
-/*
-local: count_divisors_46$0(level=0)
-global: count_divisors_46$0(level=0), count_divisors_ats$78$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-count_divisors_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret167, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 526(line=29, offs=11) -- 570(line=30, offs=20)
-*/
-ATSINSflab(__patsflab_count_divisors_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 553(line=30, offs=3) -- 569(line=30, offs=19)
-*/
-ATSINSmove(tmpret167, count_divisors_46(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret167) ;
-} /* end of [count_divisors_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 594(line=32, offs=23) -- 611(line=33, offs=12)
-*/
-/*
-local: totient_61$0(level=0)
-global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), totient_61$0(level=0), totient_ats$79$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-totient_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret168, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 582(line=32, offs=11) -- 612(line=33, offs=13)
-*/
-ATSINSflab(__patsflab_totient_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 602(line=33, offs=3) -- 611(line=33, offs=12)
-*/
-ATSINSmove(tmpret168, totient_61(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret168) ;
-} /* end of [totient_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 641(line=35, offs=28) -- 663(line=36, offs=17)
-*/
-/*
-local: little_omega_57$0(level=0)
-global: witness_0$0(level=0), sqrt_int_17$0(level=0), is_prime_20$0(level=0), little_omega_57$0(level=0), little_omega_ats$80$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-little_omega_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret169, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 624(line=35, offs=11) -- 664(line=36, offs=18)
-*/
-ATSINSflab(__patsflab_little_omega_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 649(line=36, offs=3) -- 663(line=36, offs=17)
-*/
-ATSINSmove(tmpret169, little_omega_57(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret169) ;
-} /* end of [little_omega_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 691(line=38, offs=26) -- 711(line=39, offs=15)
-*/
-/*
-local: is_perfect_55$0(level=0)
-global: sum_divisors_51$0(level=0), is_perfect_55$0(level=0), is_perfect_ats$81$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_bool)
-is_perfect_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret170, atstkind_t0ype(atstype_bool)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 676(line=38, offs=11) -- 712(line=39, offs=16)
-*/
-ATSINSflab(__patsflab_is_perfect_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 699(line=39, offs=3) -- 711(line=39, offs=15)
-*/
-ATSINSmove(tmpret170, is_perfect_55(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret170) ;
+** 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] */
 
 /*
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-10:  0h:16m
+** The starting compilation time is: 2018-1-11: 12h:57m
 **
 */
 
@@ -165,7 +165,7 @@
 #include \
 "libats/libc/CATS/sys/types.cats"
 /*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 15552(line=879, offs=1) -- 15589(line=880, offs=30)
+/usr/local/lib/ats2-postiats-0.3.8/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)
diff --git a/fast-arithmetic.cabal b/fast-arithmetic.cabal
--- a/fast-arithmetic.cabal
+++ b/fast-arithmetic.cabal
@@ -1,5 +1,5 @@
 name:                fast-arithmetic
-version:             0.2.2.3
+version:             0.2.3.0
 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.
@@ -55,6 +55,7 @@
     build-depends:     base >= 4.7 && < 5
                      , composition-prelude
                      , recursion-schemes
+                     , integer-gmp
                      , foundation < 0.0.18
   else
     build-depends:     base >= 4.7 && < 5
diff --git a/shake.hs b/shake.hs
--- a/shake.hs
+++ b/shake.hs
@@ -41,6 +41,11 @@
         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/Data/GMP.hs b/src/Data/GMP.hs
--- a/src/Data/GMP.hs
+++ b/src/Data/GMP.hs
@@ -28,9 +28,9 @@
 -- | The GMP integer type holds information about array size as well as
 -- a pointer to an array.
 data GMPInt = GMPInt {
-                       _mp_alloc :: Word32 -- ^ Number of limbs allocated.
-                     , _mp_size  :: Word32 -- ^ Number of limbs used.
-                     , _mp_d     :: Ptr Word64 -- ^ Pointer to an array containing the limbs.
+                       _mp_alloc :: !Word32 -- ^ Number of limbs allocated.
+                     , _mp_size  :: !Word32 -- ^ Number of limbs used.
+                     , _mp_d     :: !(Ptr Word64) -- ^ Pointer to an array containing the limbs.
                      }
 
 wordWidth :: Int
@@ -62,4 +62,3 @@
         pokeByteOff ptr 0 a >>
         pokeByteOff ptr wordWidth s >>
         pokeByteOff ptr (wordWidth * 2) d
-
diff --git a/src/Numeric/Combinatorics.hs b/src/Numeric/Combinatorics.hs
--- a/src/Numeric/Combinatorics.hs
+++ b/src/Numeric/Combinatorics.hs
@@ -9,6 +9,7 @@
 module Numeric.Combinatorics ( choose
                              , doubleFactorial
                              , catalan
+                             , factorial
                              ) where
 
 import           Control.Composition
@@ -18,6 +19,7 @@
 import           Foreign.Storable
 
 foreign import ccall unsafe double_factorial_ats :: CInt -> Ptr GMPInt
+foreign import ccall unsafe factorial_ats :: CInt -> Ptr GMPInt
 foreign import ccall unsafe choose_ats :: CInt -> CInt -> Ptr GMPInt
 foreign import ccall unsafe catalan_ats :: CInt -> Ptr GMPInt
 
@@ -32,6 +34,9 @@
 -- | See [here](http://mathworld.wolfram.com/BinomialCoefficient.html).
 choose :: Int -> Int -> IO Integer
 choose = (gmpToInteger <=<) . (peek .* on choose_ats fromIntegral)
+
+factorial :: Int -> IO Integer
+factorial = conjugateGMP factorial_ats
 
 -- | See [here](http://mathworld.wolfram.com/DoubleFactorial.html).
 doubleFactorial :: Int -> IO Integer
diff --git a/src/Numeric/Pure.hs b/src/Numeric/Pure.hs
--- a/src/Numeric/Pure.hs
+++ b/src/Numeric/Pure.hs
@@ -1,9 +1,9 @@
 {-# LANGUAGE CPP #-}
 
--- | Pure Haskell functions for testing and benchmarking.
+-- | Pure Haskell functions. These tend to be more general than the equivalents
+-- in ATS.
 module Numeric.Pure ( -- * Useful functions
                       derangement
-                    , factorial
                     -- * Functions exported for testing and benchmarking
                     , hsIsPrime
                     , hsDoubleFactorial
@@ -16,14 +16,13 @@
                     , hsSumDivisors
                     , hsCatalan
                     , hsFibonacci
+                    , hsFactorial
                     ) where
 
 #if __GLASGOW_HASKELL__ <= 784
 import           Control.Applicative
 #endif
 
-{-# SPECIALIZE factorial :: Int -> Integer #-}
-{-# SPECIALIZE derangement :: Int -> Integer #-}
 {-# SPECIALIZE hsLittleOmega :: Int -> Int #-}
 {-# SPECIALIZE hsTau :: Int -> Int #-}
 {-# SPECIALIZE hsTotient :: Int -> Int #-}
@@ -55,8 +54,8 @@
 hsSumDivisors :: (Integral a) => a -> a
 hsSumDivisors = sum . init . divisors
 
-hsCatalan :: (Integral a) => Int -> a
-hsCatalan n = let n' = fromIntegral n in product [ n' + k | k <- [2..n']] `div` factorial n
+hsCatalan :: (Integral a) => a -> a
+hsCatalan n = product [ n + k | k <- [2..n]] `div` hsFactorial n
 
 hsIsPerfect :: (Integral a) => a -> Bool
 hsIsPerfect = idem hsSumDivisors where idem = ((==) <*>)
@@ -73,11 +72,8 @@
 hsIsPrime x = all ((/=0) . (x `mod`)) [2..m]
     where m = floor (sqrt (fromIntegral x :: Float))
 
-factorials :: (Integral a) => [a]
-factorials = 1 : 1 : zipWith (*) [2..] (tail factorials)
-
-factorial :: (Integral a) => Int -> a
-factorial = (factorials !!)
+hsFactorial :: (Integral a) => a -> a
+hsFactorial n = product [1..n]
 
 hsDoubleFactorial :: (Integral a) => a -> a
 hsDoubleFactorial 0 = 1
@@ -88,8 +84,8 @@
     | odd n = product [1, 3 .. n]
     | otherwise = 1
 
-hsChoose :: (Integral a) => a -> Int -> a
-hsChoose n k = product [ n + 1 - i | i <- [1..(fromIntegral k)] ] `div` factorial k
+hsChoose :: (Integral a) => a -> a -> a
+hsChoose n k =  product [ n + 1 - i | i <- [1..k] ] `div` hsFactorial k
 
 fibs :: (Integral a) => [a]
 fibs = 1 : 1 : zipWith (+) fibs (tail fibs)
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -23,13 +23,6 @@
     it ("should work for n=" ++ show n) $
         f n >>= (`shouldBe` g (fromIntegral n))
 
-{- mkIoProp :: (Int -> IO Integer) -> (Int -> Integer) -> Property -}
-{- mkIoProp f g = again $ ioProperty $ do -}
-    {- m <- randomIO -}
-    {- actual <- f m -}
-    {- let expected = g m -}
-    {- pure $ m < 1 || actual == expected -}
-
 main :: IO ()
 main = hspec $ parallel $ do
 
@@ -48,14 +41,13 @@
             \m -> m < 1 || not (isPrime m) || totient m == m - 1
     describe "derangement" $
         prop "should be equal to [n!/e]" $
-            \n -> n < 1 || n > 18 || (derangement n :: Integer) == floor ((fromIntegral (factorial n :: Integer) :: Double) / exp 1 + 0.5)
+            \n -> n < 1 || n > 18 || (derangement n :: Integer) == floor ((fromIntegral (hsFactorial (fromIntegral n) :: Integer) :: Double) / exp 1 + 0.5)
     describe "totient" $
         prop "should satisfy Fermat's little theorem" $
             \a m -> a < 1 || m < 2 || gcd a m /= 1 || tooBig a m || (a ^ totient m) `mod` m == 1
 
-    -- TODO property test w/ recurrence relations?
     sequence_ $ zipWith4 check
-        ["choose 101", "doubleFactorial", "catalan", "fibonacci"]
-        [choose 101, doubleFactorial, catalan, fibonacci]
-        [hsChoose 101 . fromIntegral, hsDoubleFactorial, hsCatalan . fromIntegral, hsFibonacci . fromIntegral]
-        [16, 79, 300, 121]
+        ["choose 101", "doubleFactorial", "catalan", "fibonacci", "factorial"]
+        [choose 101, doubleFactorial, catalan, fibonacci, factorial]
+        [hsChoose 101 . fromIntegral, hsDoubleFactorial, hsCatalan . fromIntegral, hsFibonacci . fromIntegral, hsFactorial]
+        [16, 79, 300, 121, 231]
