diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# fast-combinatorics
+# fast-arithmetic
 
 [![Build Status](https://travis-ci.org/vmchale/fast-arithmetic.svg?branch=master)](https://travis-ci.org/vmchale/fast-arithmetic)
 
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
@@ -25,6 +25,10 @@
 fun factorial_ats {n : nat} : int(n) -> Intinf =
   "mac#"
 
+extern
+fun derangement_ats {n : nat} : int(n) -> Intinf =
+  "mac#"
+
 implement choose_ats (n, k) =
   choose(n, k)
 
@@ -36,3 +40,6 @@
 
 implement factorial_ats (m) =
   fact(m)
+
+implement derangement_ats (m) =
+  derangements(m)
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,34 @@
 staload "contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats"
 staload UN = "prelude/SATS/unsafe.sats"
 
-fnx fact {n : nat} .<n>. (k : int(n)) : [ n : nat | n > 0 ] intinf(n) =
+// 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 =
+      if i < n then
+        let
+          var x = add_intinf0_intinf1(n2, n1)
+          var y = mul_intinf0_int(x, i)
+        in
+          loop(n, i + 1, y, n1)
+        end
+      else
+        let
+          var x = add_intinf0_intinf1(n2, n1)
+          val _ = intinf_free(n1)
+          var y = mul_intinf0_int(x, i)
+        in
+          y
+        end
+  in
+    case+ n of
+      | 0 => int2intinf(1)
+      | 1 =>> int2intinf(0)
+      | 2 =>> int2intinf(1)
+      | n =>> loop(n - 1, 2, int2intinf(1), int2intinf(0))
+  end
+
+fnx fact {n : nat} .<n>. (k : int(n)) : intinfGte(1) =
   case+ k of
     | 0 => int2intinf(1)
     | 1 => int2intinf(1)
diff --git a/ats-src/number-theory-ffi.dats b/ats-src/number-theory-ffi.dats
--- a/ats-src/number-theory-ffi.dats
+++ b/ats-src/number-theory-ffi.dats
@@ -1,7 +1,7 @@
-#define ATS_MAINATSFLAG 1
-
 #include "share/atspre_staload.hats"
 #include "ats-src/number-theory.dats"
+
+#define ATS_MAINATSFLAG 1
 
 extern
 fun totient_ats { k : nat | k >= 2 } (int(k)) : int =
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
@@ -13,6 +13,9 @@
 
 typedef Odd = [ n : nat ] int(2 * n+1)
 
+// TODO jacobi symbol
+// fn legendre(a: int, p: int) : int =
+//  a ^ (p - 1 / 2) % p
 // m | n
 fn divides(m : int, n : int) :<> bool =
   n % m = 0
@@ -27,9 +30,9 @@
   (m / gcd(m, n)) * n
 
 // stream all divisors of an integer.
-fn divisors(n : intGte(1)) : stream_vt(int) =
+fn 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) =
+    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
@@ -113,6 +116,7 @@
         end
       end
 
+// TODO modular exponentiation
 // The sum of all φ(m) for m between 1 and n 
 fun totient_sum(n : intGte(1)) : Intinf =
   let
@@ -129,3 +133,6 @@
   in
     loop(1, n)
   end
+
+extern
+fun chinese_remainder {n : nat} (residues : list_vt(int, n), moduli : list_vt(int, n)) : Option_vt(int)
diff --git a/ats-src/numerics-ffi.dats b/ats-src/numerics-ffi.dats
--- a/ats-src/numerics-ffi.dats
+++ b/ats-src/numerics-ffi.dats
@@ -2,7 +2,10 @@
 
 #include "share/atspre_staload.hats"
 #include "ats-src/numerics.dats"
+#include "contrib/atscntrb-hx-intinf/mylibies.hats"
 
+staload "contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats"
+
 extern
 fun is_prime_ats { n : nat | n > 0 } : int(n) -> bool =
   "mac#"
@@ -12,8 +15,15 @@
   "mac#"
 
 extern
+fun exp_ats {m : nat} : ([ n : nat ] int(n), int(m)) -> int =
+  "mac#"
+
+extern
 fun is_odd_ats { n : nat | n > 0 } : int(n) -> bool =
   "mac#"
 
 implement is_prime_ats (n) =
   is_prime(n)
+
+implement exp_ats (m, n) =
+  exp(m, n)
diff --git a/ats-src/numerics.dats b/ats-src/numerics.dats
--- a/ats-src/numerics.dats
+++ b/ats-src/numerics.dats
@@ -1,15 +1,20 @@
 #define ATS_MAINATSFLAG 1
 
 #include "share/atspre_staload.hats"
+#include "contrib/atscntrb-hx-intinf/mylibies.hats"
 
+staload "contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats"
 staload "libats/libc/SATS/math.sats"
 staload UN = "prelude/SATS/unsafe.sats"
 
+fn witness(n : int) :<> [ m : nat ] int(m) =
+  $UN.cast(n)
+
 // Fast integer exponentiation. Modified from an example in the manual.
-fun exp {n : nat} .<n>. (x : int, n : int(n)) :<> int =
+fun exp {n : nat} .<n>. (x : int, n : int(n)) : int =
   case+ x of
     | 0 => 0
-    | x => 
+    | x =>> 
       begin
         if n > 0 then
           let
@@ -19,14 +24,15 @@
             if i2 = 0 then
               exp(x * x, n2)
             else
-              x * exp(x * x, n2)
+              let
+                val y = exp(x * x, n2)
+              in
+                y
+              end
           end
         else
           1
       end
-
-fn witness(n : int) :<> [ m : nat ] int(m) =
-  $UN.cast(n)
 
 fn sqrt_int(k : intGt(0)) :<> [ m : nat ] int(m) =
   let
diff --git a/bench/Bench.hs b/bench/Bench.hs
--- a/bench/Bench.hs
+++ b/bench/Bench.hs
@@ -14,7 +14,7 @@
                       ]
                 , bgroup "φ"
                       [ bench "totient" $ nf totient 2016
-                      , bench "hsTotient" $ nf (hsTotient :: Int -> Int) 2016
+                      , bench "hsTotient" $ nf hsTotient (2016 :: Int)
                       ]
                 , bgroup "τ"
                       [ bench "tau" $ nf tau 3018
diff --git a/cbits/combinatorics.c b/cbits/combinatorics.c
--- a/cbits/combinatorics.c
+++ b/cbits/combinatorics.c
@@ -1,2807 +1,4170 @@
 /*
 **
 ** The C code is generated by [ATS/Postiats-0-3-8]
-** The starting compilation time is: 2018-1-7: 23h: 3m
-**
-*/
-
-/*
-** include runtime header files
-*/
-#ifndef _ATS_CCOMP_HEADER_NONE_
-#include "pats_ccomp_config.h"
-#include "pats_ccomp_basics.h"
-#include "pats_ccomp_typedefs.h"
-#include "pats_ccomp_instrset.h"
-#include "pats_ccomp_memalloc.h"
-#ifndef _ATS_CCOMP_EXCEPTION_NONE_
-#include "pats_ccomp_memalloca.h"
-#include "pats_ccomp_exception.h"
-#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
-#endif /* _ATS_CCOMP_HEADER_NONE_ */
-
-
-/*
-** include prelude cats files
-*/
-#ifndef _ATS_CCOMP_PRELUDE_NONE_
-//
-#include "prelude/CATS/basics.cats"
-#include "prelude/CATS/integer.cats"
-#include "prelude/CATS/pointer.cats"
-#include "prelude/CATS/integer_long.cats"
-#include "prelude/CATS/integer_size.cats"
-#include "prelude/CATS/integer_short.cats"
-#include "prelude/CATS/bool.cats"
-#include "prelude/CATS/char.cats"
-#include "prelude/CATS/float.cats"
-#include "prelude/CATS/integer_ptr.cats"
-#include "prelude/CATS/integer_fixed.cats"
-#include "prelude/CATS/memory.cats"
-#include "prelude/CATS/string.cats"
-#include "prelude/CATS/strptr.cats"
-//
-#include "prelude/CATS/fprintf.cats"
-//
-#include "prelude/CATS/filebas.cats"
-//
-#include "prelude/CATS/list.cats"
-#include "prelude/CATS/option.cats"
-#include "prelude/CATS/array.cats"
-#include "prelude/CATS/arrayptr.cats"
-#include "prelude/CATS/arrayref.cats"
-#include "prelude/CATS/matrix.cats"
-#include "prelude/CATS/matrixptr.cats"
-//
-#endif /* _ATS_CCOMP_PRELUDE_NONE_ */
-/*
-** for user-supplied prelude
-*/
-#ifdef _ATS_CCOMP_PRELUDE_USER_
-//
-#include _ATS_CCOMP_PRELUDE_USER_
-//
-#endif /* _ATS_CCOMP_PRELUDE_USER_ */
-/*
-** for user2-supplied prelude
-*/
-#ifdef _ATS_CCOMP_PRELUDE_USER2_
-//
-#include _ATS_CCOMP_PRELUDE_USER2_
-//
-#endif /* _ATS_CCOMP_PRELUDE_USER2_ */
-
-/*
-staload-prologues(beg)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/basics.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 1533(line=44, offs=1) -- 1572(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_long.dats: 1602(line=49, offs=1) -- 1641(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_size.dats: 1597(line=49, offs=1) -- 1636(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_short.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/char.dats: 1610(line=48, offs=1) -- 1649(line=48, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/float.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/string.dats: 1631(line=50, offs=1) -- 1670(line=50, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1629(line=50, offs=1) -- 1668(line=50, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1691(line=54, offs=1) -- 1738(line=54, offs=48)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_ptr.dats: 1601(line=49, offs=1) -- 1640(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_fixed.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/memory.dats: 1410(line=38, offs=1) -- 1449(line=39, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1613(line=49, offs=1) -- 1652(line=50, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1675(line=54, offs=1) -- 1721(line=55, offs=39)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1744(line=59, offs=1) -- 1789(line=60, offs=38)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/stdio.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1871(line=66, offs=1) -- 1918(line=66, offs=48)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1390(line=36, offs=1) -- 1440(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/stat.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1756(line=58, offs=1) -- 1805(line=60, offs=34)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 15552(line=879, offs=1) -- 15589(line=880, offs=30)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/stdio.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1529(line=44, offs=1) -- 1568(line=45, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1569(line=46, offs=1) -- 1615(line=47, offs=39)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1538(line=44, offs=1) -- 1577(line=45, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1578(line=46, offs=1) -- 1624(line=47, offs=39)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_mergesort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_quicksort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1534(line=44, offs=1) -- 1573(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1574(line=45, offs=1) -- 1616(line=45, offs=43)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_bsearch.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_quicksort.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayptr.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayref.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrix.dats: 1535(line=44, offs=1) -- 1574(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixptr.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixref.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream_vt.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/tostring.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/checkast.dats: 1531(line=44, offs=1) -- 1570(line=45, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/mydepies.hats: 192(line=16, offs=1) -- 232(line=16, offs=41)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1233(line=43, offs=3)
-*/
-
-//
-#include \
-"atscntrb-libgmp/CATS/gmp.cats"
-//
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-staload-prologues(end)
-*/
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 77(line=4, offs=1) -- 216(line=8, offs=3)
-*/
-ATSextcode_beg()
-#define ATS_MEMALLOC_LIBC
-#include "ccomp/runtime/pats_ccomp_memalloc_libc.h"
-#include "ccomp/runtime/pats_ccomp_runtime_memalloc.c"
-ATSextcode_end()
-/*
-typedefs-for-tyrecs-and-tysums(beg)
-*/
-/*
-typedefs-for-tyrecs-and-tysums(end)
-*/
-/*
-dynconlst-declaration(beg)
-*/
-/*
-dynconlst-declaration(end)
-*/
-/*
-dyncstlst-declaration(beg)
-*/
-ATSdyncst_mac(atscntrb_gmp_mpz_init_set_int)
-ATSdyncst_mac(atspre_ptr_alloc_tsz)
-ATSdyncst_mac(atscntrb_gmp_mpz_mul2_int)
-ATSdyncst_mac(atspre_g1int_sub_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_tdiv2_q_mpz)
-ATSdyncst_mac(atscntrb_gmp_mpz_clear)
-ATSdyncst_mac(atspre_ptr_free)
-ATSdyncst_mac(atspre_g1int_mul_int)
-ATSdyncst_mac(atspre_g1int_add_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_type(atstype_ptrk)
-fact_0(atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1(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__1__1(atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__3() ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__3__1() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__2(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__3__2() ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__7(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__mul_intinf0_int__7__1(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-dfact_10(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__3(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__3__3() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__4(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__3__4() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__7__2(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-permutations_16(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__17(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__17__1(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__19(atstkind_type(atstype_ptrk)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__19__1(atstkind_type(atstype_ptrk)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-choose_21(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-numerator_loop_22(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__5(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__3__5() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__6(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__3__6() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__7__3(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__7(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__3__7() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__8(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__3__8() ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__17__2(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
-
-ATSstatic()
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__19__2(atstkind_type(atstype_ptrk)) ;
-
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-choose_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-permutations_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-double_factorial_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-factorial_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 220(line=9, offs=5) -- 409(line=13, offs=59)
-*/
-/*
-local: fact_0$0(level=0)
-global: fact_0$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-fact_0(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret0, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp13, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp18, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp19, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-/*
-emit_funent_fnxdeclst:
-*/
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 220(line=9, offs=5) -- 409(line=13, offs=59)
-*/
-ATSINSflab(__patsflab_fact_0):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 290(line=10, offs=3) -- 409(line=13, offs=59)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 307(line=11, offs=7) -- 308(line=11, offs=8)
-*/
-ATSINSlab(__atstmplab0):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 242(line=9, offs=27) -- 243(line=9, offs=28)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 308(line=11, offs=8) -- 308(line=11, 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/combinatorics.dats: 312(line=11, offs=12) -- 325(line=11, offs=25)
-*/
-ATSINSmove(tmpret0, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__1(ATSPMVi0nt(1))) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 332(line=12, offs=7) -- 333(line=12, offs=8)
-*/
-ATSINSlab(__atstmplab2):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 242(line=9, offs=27) -- 243(line=9, offs=28)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab4) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 333(line=12, offs=8) -- 333(line=12, offs=8)
-*/
-ATSINSlab(__atstmplab3):
-/*
-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/combinatorics.dats: 337(line=12, offs=12) -- 350(line=12, offs=25)
-*/
-ATSINSmove(tmpret0, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__2(ATSPMVi0nt(1))) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 358(line=13, offs=8) -- 358(line=13, 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/combinatorics.dats: 398(line=13, offs=48) -- 403(line=13, offs=53)
-*/
-ATSINSmove(tmp19, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 393(line=13, offs=43) -- 404(line=13, offs=54)
-*/
-ATSINSmove(tmp18, fact_0(tmp19)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 377(line=13, offs=27) -- 408(line=13, offs=58)
-*/
-ATSINSmove(tmp13, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__7__1(tmp18, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 363(line=13, offs=13) -- 409(line=13, offs=59)
-*/
-ATSINSmove(tmpret0, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp13)) ;
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret0) ;
-/*
-emit_funent_fnxbodylst:
-*/
-} /* end of [fact_0] */
-
-#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$1$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp2, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp3) ;
-/* 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(tmp2, 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(tmp3, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp2, 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(tmpret1, tmp2) ;
-/*
-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(tmpret1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1] */
-#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$1$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__1(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret1__1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp2__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp3__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(tmp2__1, ATSLIB_056_prelude__ptr_alloc__3__1()) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp3__1, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp2__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(tmpret1__1, tmp2__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(tmpret1__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__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$3$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = a(4806)
-tmparg = S2Evar(a(4806))
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__3()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret7, 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(tmpret7, atspre_ptr_alloc_tsz(ATSPMVsizeof(atstyvar_type(a)))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret7) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__3] */
-#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$3$1(level=2)
-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__3__1()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret7__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(tmpret7__1, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret7__1) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__3__1] */
-
-/*
-/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$1$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__2(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret1__2, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp2__2, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp3__2) ;
-/* 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(tmp2__2, ATSLIB_056_prelude__ptr_alloc__3__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(tmp3__2, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp2__2, 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(tmpret1__2, tmp2__2) ;
-/*
-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(tmpret1__2) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__2] */
-
-/*
-/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$3$2(level=2)
-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__3__2()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret7__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(tmpret7__2, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret7__2) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__3__2] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_int$7$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__7(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret14, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp15) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7376(line=412, offs=1) -- 7461(line=418, offs=2)
-*/
-ATSINSflab(__patsflab_mul_intinf0_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
-*/
-ATSINSmove_void(tmp15, atscntrb_gmp_mpz_mul2_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: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
-*/
-ATSINSmove(tmpret14, arg0) ;
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret14) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__7] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_int$7$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__7__1(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret14__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp15__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7376(line=412, offs=1) -- 7461(line=418, offs=2)
-*/
-ATSINSflab(__patsflab_mul_intinf0_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
-*/
-ATSINSmove_void(tmp15__1, atscntrb_gmp_mpz_mul2_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: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
-*/
-ATSINSmove(tmpret14__1, arg0) ;
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret14__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__7__1] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 485(line=16, offs=5) -- 695(line=25, offs=8)
-*/
-/*
-local: dfact_10$0(level=0)
-global: dfact_10$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-dfact_10(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret20, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp29, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp30, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-/*
-emit_funent_fnxdeclst:
-*/
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 485(line=16, offs=5) -- 695(line=25, offs=8)
-*/
-ATSINSflab(__patsflab_dfact_10):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 533(line=17, offs=3) -- 695(line=25, offs=8)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 550(line=18, offs=7) -- 551(line=18, offs=8)
-*/
-ATSINSlab(__atstmplab5):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 508(line=16, offs=28) -- 509(line=16, offs=29)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab7) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 551(line=18, offs=8) -- 551(line=18, offs=8)
-*/
-ATSINSlab(__atstmplab6):
-/*
-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/combinatorics.dats: 555(line=18, offs=12) -- 568(line=18, offs=25)
-*/
-ATSINSmove(tmpret20, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__3(ATSPMVi0nt(1))) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 575(line=19, offs=7) -- 576(line=19, offs=8)
-*/
-ATSINSlab(__atstmplab7):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 508(line=16, offs=28) -- 509(line=16, offs=29)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab9) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 576(line=19, offs=8) -- 576(line=19, 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/combinatorics.dats: 580(line=19, offs=12) -- 593(line=19, offs=25)
-*/
-ATSINSmove(tmpret20, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__4(ATSPMVi0nt(1))) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 601(line=20, offs=8) -- 601(line=20, offs=8)
-*/
-ATSINSlab(__atstmplab9):
-/*
-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/combinatorics.dats: 606(line=20, offs=13) -- 695(line=25, offs=8)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 630(line=21, offs=21) -- 635(line=21, offs=26)
-*/
-ATSINSmove(tmp30, atspre_g1int_sub_int(arg0, ATSPMVi0nt(2))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 624(line=21, offs=15) -- 636(line=21, offs=27)
-*/
-ATSINSmove(tmp29, dfact_10(tmp30)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 651(line=22, offs=15) -- 672(line=22, offs=36)
-*/
-ATSINSmove(tmpret20, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__7__2(tmp29, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 606(line=20, offs=13) -- 695(line=25, offs=8)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret20) ;
-/*
-emit_funent_fnxbodylst:
-*/
-} /* end of [dfact_10] */
-
-/*
-/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$1$3(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__3(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret1__3, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp2__3, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp3__3) ;
-/* 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(tmp2__3, ATSLIB_056_prelude__ptr_alloc__3__3()) ;
-
-/*
-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(tmp3__3, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp2__3, 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(tmpret1__3, tmp2__3) ;
-/*
-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(tmpret1__3) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__3] */
-
-/*
-/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$3$3(level=2)
-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__3__3()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret7__3, 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(tmpret7__3, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret7__3) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__3__3] */
-
-/*
-/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$1$4(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__4(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret1__4, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp2__4, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp3__4) ;
-/* 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(tmp2__4, ATSLIB_056_prelude__ptr_alloc__3__4()) ;
-
-/*
-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(tmp3__4, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp2__4, 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(tmpret1__4, tmp2__4) ;
-/*
-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(tmpret1__4) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__4] */
-
-/*
-/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$3$4(level=2)
-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__3__4()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret7__4, 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(tmpret7__4, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret7__4) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__3__4] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_int$7$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__7__2(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret14__2, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp15__2) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7376(line=412, offs=1) -- 7461(line=418, offs=2)
-*/
-ATSINSflab(__patsflab_mul_intinf0_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
-*/
-ATSINSmove_void(tmp15__2, atscntrb_gmp_mpz_mul2_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: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
-*/
-ATSINSmove(tmpret14__2, arg0) ;
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret14__2) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__7__2] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 758(line=28, offs=4) -- 968(line=36, offs=6)
-*/
-/*
-local: fact_0$0(level=0)
-global: fact_0$0(level=0), permutations_16$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-permutations_16(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret33, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp34, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp35, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp36, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp37, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp42) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 758(line=28, offs=4) -- 968(line=36, offs=6)
-*/
-ATSINSflab(__patsflab_permutations_16):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 839(line=29, offs=3) -- 968(line=36, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 855(line=30, offs=13) -- 861(line=30, offs=19)
-*/
-ATSINSmove(tmp34, fact_0(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 880(line=31, offs=18) -- 885(line=31, offs=23)
-*/
-ATSINSmove(tmp36, atspre_g1int_sub_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 875(line=31, offs=13) -- 886(line=31, offs=24)
-*/
-ATSINSmove(tmp35, fact_0(tmp36)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 899(line=32, offs=13) -- 924(line=32, offs=38)
-*/
-ATSINSmove(tmp37, ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__17__1(tmp34, ATSPMVrefarg0(tmp35))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 937(line=33, offs=13) -- 950(line=33, offs=26)
-*/
-ATSINSmove_void(tmp42, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__19__1(tmp35)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 961(line=35, offs=5) -- 962(line=35, offs=6)
-*/
-ATSINSmove(tmpret33, tmp37) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 839(line=29, offs=3) -- 968(line=36, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret33) ;
-} /* end of [permutations_16] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9009(line=513, offs=3) -- 9083(line=518, offs=2)
-*/
-/*
-local: 
-global: div_intinf0_intinf1$17$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__17(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret38, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp39) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8987(line=512, offs=1) -- 9083(line=518, offs=2)
-*/
-ATSINSflab(__patsflab_div_intinf0_intinf1):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9042(line=516, offs=10) -- 9078(line=516, offs=46)
-*/
-ATSINSmove_void(tmp39, atscntrb_gmp_mpz_tdiv2_q_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9019(line=513, offs=13) -- 9020(line=513, offs=14)
-*/
-ATSINSmove(tmpret38, arg0) ;
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret38) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__17] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9009(line=513, offs=3) -- 9083(line=518, offs=2)
-*/
-/*
-local: 
-global: div_intinf0_intinf1$17$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__17__1(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret38__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp39__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8987(line=512, offs=1) -- 9083(line=518, offs=2)
-*/
-ATSINSflab(__patsflab_div_intinf0_intinf1):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9042(line=516, offs=10) -- 9078(line=516, offs=46)
-*/
-ATSINSmove_void(tmp39__1, atscntrb_gmp_mpz_tdiv2_q_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9019(line=513, offs=13) -- 9020(line=513, offs=14)
-*/
-ATSINSmove(tmpret38__1, arg0) ;
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret38__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__17__1] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$19$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__19(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret43) ;
-// ATStmpdec_void(tmp44) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2877(line=119, offs=1) -- 2987(line=122, offs=4)
-*/
-ATSINSflab(__patsflab_intinf_free):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp44, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret43, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret43) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__19] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$19$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__19__1(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret43__1) ;
-// ATStmpdec_void(tmp44__1) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2877(line=119, offs=1) -- 2987(line=122, offs=4)
-*/
-ATSINSflab(__patsflab_intinf_free):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp44__1, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret43__1, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret43__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__19__1] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1031(line=39, offs=4) -- 1736(line=63, offs=6)
-*/
-/*
-local: fact_0$0(level=0)
-global: fact_0$0(level=0), choose_21$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-choose_21(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret47, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp75, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp76, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp77, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp80) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1031(line=39, offs=4) -- 1736(line=63, offs=6)
-*/
-ATSINSflab(__patsflab_choose_21):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1106(line=40, offs=3) -- 1736(line=63, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1473(line=52, offs=5) -- 1730(line=62, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1492(line=53, offs=9) -- 1493(line=53, offs=10)
-*/
-ATSINSlab(__atstmplab15):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1081(line=39, offs=54) -- 1082(line=39, offs=55)
-*/
-ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(0))) { ATSINSgoto(__atstmplab17) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1493(line=53, offs=10) -- 1493(line=53, offs=10)
-*/
-ATSINSlab(__atstmplab16):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1497(line=53, offs=14) -- 1510(line=53, offs=27)
-*/
-ATSINSmove(tmpret47, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__7(ATSPMVi0nt(1))) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1519(line=54, offs=9) -- 1520(line=54, offs=10)
-*/
-ATSINSlab(__atstmplab17):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1081(line=39, offs=54) -- 1082(line=39, offs=55)
-*/
-ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(1))) { ATSINSgoto(__atstmplab19) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1520(line=54, offs=10) -- 1520(line=54, offs=10)
-*/
-ATSINSlab(__atstmplab18):
-/*
-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/combinatorics.dats: 1524(line=54, offs=14) -- 1536(line=54, offs=26)
-*/
-ATSINSmove(tmpret47, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__8(arg0)) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1547(line=55, offs=10) -- 1547(line=55, offs=10)
-*/
-ATSINSlab(__atstmplab19):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1552(line=55, offs=15) -- 1730(line=62, offs=10)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1572(line=56, offs=17) -- 1588(line=56, offs=33)
-*/
-ATSINSmove(tmp75, numerator_loop_22(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1606(line=57, offs=17) -- 1612(line=57, offs=23)
-*/
-ATSINSmove(tmp76, fact_0(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1630(line=58, offs=17) -- 1655(line=58, offs=42)
-*/
-ATSINSmove(tmp77, ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__17__2(tmp75, ATSPMVrefarg0(tmp76))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1672(line=59, offs=17) -- 1685(line=59, offs=30)
-*/
-ATSINSmove_void(tmp80, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__19__2(tmp76)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1704(line=61, offs=9) -- 1719(line=61, offs=24)
-*/
-ATSINSmove(tmpret47, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp77)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1552(line=55, offs=15) -- 1730(line=62, offs=10)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1106(line=40, offs=3) -- 1736(line=63, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret47) ;
-} /* end of [choose_21] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1118(line=41, offs=9) -- 1463(line=50, offs=12)
-*/
-/*
-local: numerator_loop_22$0(level=1)
-global: numerator_loop_22$0(level=1)
-local: n$5103(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: n$5103(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-numerator_loop_22(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret48, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp53, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp58, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp59, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp60, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp61, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp62, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp65, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp66, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1118(line=41, offs=9) -- 1463(line=50, offs=12)
-*/
-ATSINSflab(__patsflab_numerator_loop_22):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1212(line=42, offs=7) -- 1463(line=50, offs=12)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1233(line=43, offs=11) -- 1234(line=43, offs=12)
-*/
-ATSINSlab(__atstmplab10):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1160(line=41, offs=51) -- 1161(line=41, offs=52)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab12) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1234(line=43, offs=12) -- 1234(line=43, offs=12)
-*/
-ATSINSlab(__atstmplab11):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1238(line=43, offs=16) -- 1250(line=43, offs=28)
-*/
-ATSINSmove(tmpret48, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__5(env0)) ;
-
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1262(line=44, offs=11) -- 1263(line=44, offs=12)
-*/
-ATSINSlab(__atstmplab12):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1160(line=41, offs=51) -- 1161(line=41, offs=52)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(2))) { ATSINSgoto(__atstmplab14) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1263(line=44, offs=12) -- 1263(line=44, offs=12)
-*/
-ATSINSlab(__atstmplab13):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1281(line=44, offs=30) -- 1304(line=44, offs=53)
-*/
-ATSINSmove(tmp59, atspre_g1int_sub_int(env0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1281(line=44, offs=30) -- 1304(line=44, offs=53)
-*/
-ATSINSmove(tmp58, atspre_g1int_mul_int(tmp59, env0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1281(line=44, offs=30) -- 1304(line=44, offs=53)
-*/
-ATSINSmove(tmp53, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__6(tmp58)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1267(line=44, offs=16) -- 1305(line=44, offs=54)
-*/
-ATSINSmove(tmpret48, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp53)) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1317(line=45, offs=12) -- 1317(line=45, offs=12)
-*/
-ATSINSlab(__atstmplab14):
-/*
-emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
-*/
-/*
-ibranch-mbody:
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1322(line=45, offs=17) -- 1463(line=50, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1359(line=46, offs=34) -- 1364(line=46, offs=39)
-*/
-ATSINSmove(tmp61, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1344(line=46, offs=19) -- 1365(line=46, offs=40)
-*/
-ATSINSmove(tmp60, numerator_loop_22(env0, tmp61)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1403(line=47, offs=38) -- 1408(line=47, offs=43)
-*/
-ATSINSmove(tmp66, atspre_g1int_add_int(env0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1403(line=47, offs=38) -- 1412(line=47, offs=47)
-*/
-ATSINSmove(tmp65, atspre_g1int_sub_int(tmp66, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1384(line=47, offs=19) -- 1413(line=47, offs=48)
-*/
-ATSINSmove(tmp62, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__7__3(tmp60, tmp65)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1435(line=49, offs=11) -- 1450(line=49, offs=26)
-*/
-ATSINSmove(tmpret48, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp62)) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1322(line=45, offs=17) -- 1463(line=50, offs=12)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret48) ;
-} /* end of [numerator_loop_22] */
-
-/*
-/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$1$5(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__5(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret1__5, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp2__5, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp3__5) ;
-/* 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(tmp2__5, ATSLIB_056_prelude__ptr_alloc__3__5()) ;
-
-/*
-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(tmp3__5, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp2__5, 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(tmpret1__5, tmp2__5) ;
-/*
-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(tmpret1__5) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__5] */
-
-/*
-/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$3$5(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__3__5()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret7__5, 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(tmpret7__5, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret7__5) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__3__5] */
-
-/*
-/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$1$6(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__6(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret1__6, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp2__6, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp3__6) ;
-/* 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(tmp2__6, ATSLIB_056_prelude__ptr_alloc__3__6()) ;
-
-/*
-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(tmp3__6, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp2__6, 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(tmpret1__6, tmp2__6) ;
-/*
-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(tmpret1__6) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__6] */
-
-/*
-/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$3$6(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__3__6()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret7__6, 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(tmpret7__6, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret7__6) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__3__6] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
-*/
-/*
-local: 
-global: mul_intinf0_int$7$3(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__7__3(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret14__3, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp15__3) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7376(line=412, offs=1) -- 7461(line=418, offs=2)
-*/
-ATSINSflab(__patsflab_mul_intinf0_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
-*/
-ATSINSmove_void(tmp15__3, atscntrb_gmp_mpz_mul2_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: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
-*/
-ATSINSmove(tmpret14__3, arg0) ;
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret14__3) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__7__3] */
-
-/*
-/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$1$7(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__7(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret1__7, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp2__7, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp3__7) ;
-/* 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(tmp2__7, ATSLIB_056_prelude__ptr_alloc__3__7()) ;
-
-/*
-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(tmp3__7, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp2__7, 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(tmpret1__7, tmp2__7) ;
-/*
-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(tmpret1__7) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__7] */
-
-/*
-/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$3$7(level=2)
-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__3__7()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret7__7, 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(tmpret7__7, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret7__7) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__3__7] */
-
-/*
-/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$1$8(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__8(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret1__8, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp2__8, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp3__8) ;
-/* 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(tmp2__8, ATSLIB_056_prelude__ptr_alloc__3__8()) ;
-
-/*
-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(tmp3__8, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp2__8, 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(tmpret1__8, tmp2__8) ;
-/*
-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(tmpret1__8) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__1__8] */
-
-/*
-/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$3$8(level=2)
-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__3__8()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret7__8, 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(tmpret7__8, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret7__8) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__3__8] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9009(line=513, offs=3) -- 9083(line=518, offs=2)
-*/
-/*
-local: 
-global: div_intinf0_intinf1$17$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__17__2(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret38__2, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp39__2) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8987(line=512, offs=1) -- 9083(line=518, offs=2)
-*/
-ATSINSflab(__patsflab_div_intinf0_intinf1):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9042(line=516, offs=10) -- 9078(line=516, offs=46)
-*/
-ATSINSmove_void(tmp39__2, atscntrb_gmp_mpz_tdiv2_q_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9019(line=513, offs=13) -- 9020(line=513, offs=14)
-*/
-ATSINSmove(tmpret38__2, arg0) ;
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret38__2) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__17__2] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
-*/
-/*
-local: 
-global: intinf_free$19$2(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atsvoid_t0ype
-ATSCNTRB_056_HX_056_intinf_vt__intinf_free__19__2(atstkind_type(atstype_ptrk) arg0)
-{
-/* tmpvardeclst(beg) */
-// ATStmpdec_void(tmpret43__2) ;
-// ATStmpdec_void(tmp44__2) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2877(line=119, offs=1) -- 2987(line=122, offs=4)
-*/
-ATSINSflab(__patsflab_intinf_free):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-letpush(beg)
-*/
-/* (*nothing*) */
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
-*/
-ATSINSmove_void(tmp44__2, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
-*/
-ATSINSmove_void(tmpret43__2, atspre_ptr_free(arg0)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn_void(tmpret43__2) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__19__2] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 597(line=28, offs=22) -- 620(line=29, offs=15)
-*/
-/*
-local: choose_21$0(level=0)
-global: fact_0$0(level=0), choose_21$0(level=0), choose_ats$36$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_type(atstype_ptrk)
-choose_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret83, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 586(line=28, offs=11) -- 620(line=29, offs=15)
-*/
-ATSINSflab(__patsflab_choose_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 608(line=29, offs=3) -- 620(line=29, offs=15)
-*/
-ATSINSmove(tmpret83, choose_21(arg0, arg1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret83) ;
-} /* end of [choose_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 649(line=31, offs=28) -- 672(line=32, offs=15)
-*/
-/*
-local: choose_21$0(level=0)
-global: fact_0$0(level=0), choose_21$0(level=0), permutations_ats$37$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_type(atstype_ptrk)
-permutations_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret84, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 632(line=31, offs=11) -- 672(line=32, offs=15)
-*/
-ATSINSflab(__patsflab_permutations_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 660(line=32, offs=3) -- 672(line=32, offs=15)
-*/
-ATSINSmove(tmpret84, choose_21(arg0, arg1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret84) ;
-} /* end of [permutations_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 705(line=34, offs=32) -- 720(line=35, offs=10)
-*/
-/*
-local: dfact_10$0(level=0)
-global: dfact_10$0(level=0), double_factorial_ats$38$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_type(atstype_ptrk)
-double_factorial_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret85, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 684(line=34, offs=11) -- 721(line=35, offs=11)
-*/
-ATSINSflab(__patsflab_double_factorial_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 713(line=35, offs=3) -- 720(line=35, offs=10)
-*/
-ATSINSmove(tmpret85, dfact_10(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret85) ;
-} /* end of [double_factorial_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 747(line=37, offs=25) -- 761(line=38, offs=9)
-*/
-/*
-local: fact_0$0(level=0)
-global: fact_0$0(level=0), factorial_ats$39$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_type(atstype_ptrk)
-factorial_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret86, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 733(line=37, offs=11) -- 762(line=38, offs=10)
-*/
-ATSINSflab(__patsflab_factorial_ats):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 755(line=38, offs=3) -- 761(line=38, offs=9)
-*/
-ATSINSmove(tmpret86, fact_0(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret86) ;
-} /* end of [factorial_ats] */
+** The starting compilation time is: 2018-1-9: 15h:48m
+**
+*/
+
+/*
+** include runtime header files
+*/
+#ifndef _ATS_CCOMP_HEADER_NONE_
+#include "pats_ccomp_config.h"
+#include "pats_ccomp_basics.h"
+#include "pats_ccomp_typedefs.h"
+#include "pats_ccomp_instrset.h"
+#include "pats_ccomp_memalloc.h"
+#ifndef _ATS_CCOMP_EXCEPTION_NONE_
+#include "pats_ccomp_memalloca.h"
+#include "pats_ccomp_exception.h"
+#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
+#endif /* _ATS_CCOMP_HEADER_NONE_ */
+
+
+/*
+** include prelude cats files
+*/
+#ifndef _ATS_CCOMP_PRELUDE_NONE_
+//
+#include "prelude/CATS/basics.cats"
+#include "prelude/CATS/integer.cats"
+#include "prelude/CATS/pointer.cats"
+#include "prelude/CATS/integer_long.cats"
+#include "prelude/CATS/integer_size.cats"
+#include "prelude/CATS/integer_short.cats"
+#include "prelude/CATS/bool.cats"
+#include "prelude/CATS/char.cats"
+#include "prelude/CATS/float.cats"
+#include "prelude/CATS/integer_ptr.cats"
+#include "prelude/CATS/integer_fixed.cats"
+#include "prelude/CATS/memory.cats"
+#include "prelude/CATS/string.cats"
+#include "prelude/CATS/strptr.cats"
+//
+#include "prelude/CATS/fprintf.cats"
+//
+#include "prelude/CATS/filebas.cats"
+//
+#include "prelude/CATS/list.cats"
+#include "prelude/CATS/option.cats"
+#include "prelude/CATS/array.cats"
+#include "prelude/CATS/arrayptr.cats"
+#include "prelude/CATS/arrayref.cats"
+#include "prelude/CATS/matrix.cats"
+#include "prelude/CATS/matrixptr.cats"
+//
+#endif /* _ATS_CCOMP_PRELUDE_NONE_ */
+/*
+** for user-supplied prelude
+*/
+#ifdef _ATS_CCOMP_PRELUDE_USER_
+//
+#include _ATS_CCOMP_PRELUDE_USER_
+//
+#endif /* _ATS_CCOMP_PRELUDE_USER_ */
+/*
+** for user2-supplied prelude
+*/
+#ifdef _ATS_CCOMP_PRELUDE_USER2_
+//
+#include _ATS_CCOMP_PRELUDE_USER2_
+//
+#endif /* _ATS_CCOMP_PRELUDE_USER2_ */
+
+/*
+staload-prologues(beg)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/basics.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 1533(line=44, offs=1) -- 1572(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_long.dats: 1602(line=49, offs=1) -- 1641(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_size.dats: 1597(line=49, offs=1) -- 1636(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_short.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/char.dats: 1610(line=48, offs=1) -- 1649(line=48, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/float.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/string.dats: 1631(line=50, offs=1) -- 1670(line=50, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1629(line=50, offs=1) -- 1668(line=50, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1691(line=54, offs=1) -- 1738(line=54, offs=48)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_ptr.dats: 1601(line=49, offs=1) -- 1640(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_fixed.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/memory.dats: 1410(line=38, offs=1) -- 1449(line=39, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1613(line=49, offs=1) -- 1652(line=50, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1675(line=54, offs=1) -- 1721(line=55, offs=39)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1744(line=59, offs=1) -- 1789(line=60, offs=38)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/stdio.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1871(line=66, offs=1) -- 1918(line=66, offs=48)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1390(line=36, offs=1) -- 1440(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/stat.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1756(line=58, offs=1) -- 1805(line=60, offs=34)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 15552(line=879, offs=1) -- 15589(line=880, offs=30)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/stdio.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1529(line=44, offs=1) -- 1568(line=45, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1569(line=46, offs=1) -- 1615(line=47, offs=39)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1538(line=44, offs=1) -- 1577(line=45, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1578(line=46, offs=1) -- 1624(line=47, offs=39)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_mergesort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_quicksort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1534(line=44, offs=1) -- 1573(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1574(line=45, offs=1) -- 1616(line=45, offs=43)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_bsearch.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_quicksort.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayptr.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayref.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrix.dats: 1535(line=44, offs=1) -- 1574(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixptr.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixref.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream_vt.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/tostring.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/checkast.dats: 1531(line=44, offs=1) -- 1570(line=45, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/mydepies.hats: 192(line=16, offs=1) -- 232(line=16, offs=41)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1233(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-libgmp/CATS/gmp.cats"
+//
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+staload-prologues(end)
+*/
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 77(line=4, offs=1) -- 216(line=8, offs=3)
+*/
+ATSextcode_beg()
+#define ATS_MEMALLOC_LIBC
+#include "ccomp/runtime/pats_ccomp_memalloc_libc.h"
+#include "ccomp/runtime/pats_ccomp_runtime_memalloc.c"
+ATSextcode_end()
+/*
+typedefs-for-tyrecs-and-tysums(beg)
+*/
+/*
+typedefs-for-tyrecs-and-tysums(end)
+*/
+/*
+dynconlst-declaration(beg)
+*/
+/*
+dynconlst-declaration(end)
+*/
+/*
+dyncstlst-declaration(beg)
+*/
+ATSdyncst_mac(atspre_g1int2int_int_int)
+ATSdyncst_mac(atspre_g1int_lt_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_add2_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_mul2_int)
+ATSdyncst_mac(atspre_g1int_add_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_clear)
+ATSdyncst_mac(atspre_ptr_free)
+ATSdyncst_mac(atscntrb_gmp_mpz_init_set_int)
+ATSdyncst_mac(atspre_ptr_alloc_tsz)
+ATSdyncst_mac(atspre_g1int_sub_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_tdiv2_q_mpz)
+ATSdyncst_mac(atspre_g1int_mul_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_type(atstype_ptrk)
+derangements_0(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk), atstkind_type(atstype_ptrk)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__2(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__2__1(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_intinf1__6(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__1(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8(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__mul_intinf0_int__8__1(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__2(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__1(atstkind_type(atstype_ptrk)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__2(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__15(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__15__1(atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17() ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__1() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__2(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__2() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__3(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__3() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__4(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__4() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__5(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__5() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+fact_28(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__6(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__6() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__7(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__7() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__3(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+dfact_34(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__8(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__8() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__9(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__9() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__4(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+permutations_40(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__41(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__41__1(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__2(atstkind_type(atstype_ptrk)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+choose_44(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+numerator_loop_45(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__10(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__10() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__11(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__11() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__5(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__12(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__12() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__13(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17__13() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__41__2(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+
+ATSstatic()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__3(atstkind_type(atstype_ptrk)) ;
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+choose_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+permutations_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+double_factorial_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+factorial_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+derangement_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 280(line=10, offs=4) -- 980(line=34, offs=6)
+*/
+/*
+local: 
+global: derangements_0$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+derangements_0(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret0, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp45, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp46, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp51, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 280(line=10, offs=4) -- 980(line=34, offs=6)
+*/
+ATSINSflab(__patsflab_derangements_0):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 335(line=11, offs=3) -- 980(line=34, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 822(line=29, offs=5) -- 974(line=33, offs=59)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 841(line=30, offs=9) -- 842(line=30, offs=10)
+*/
+ATSINSlab(__atstmplab0):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 310(line=10, offs=34) -- 311(line=10, offs=35)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 842(line=30, offs=10) -- 842(line=30, offs=10)
+*/
+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/combinatorics.dats: 846(line=30, offs=14) -- 859(line=30, offs=27)
+*/
+ATSINSmove(tmpret0, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__1(ATSPMVi0nt(1))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 868(line=31, offs=9) -- 869(line=31, offs=10)
+*/
+ATSINSlab(__atstmplab2):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 310(line=10, offs=34) -- 311(line=10, offs=35)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab4) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 869(line=31, offs=10) -- 869(line=31, offs=10)
+*/
+ATSINSlab(__atstmplab3):
+/*
+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/combinatorics.dats: 874(line=31, offs=15) -- 887(line=31, offs=28)
+*/
+ATSINSmove(tmpret0, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__2(ATSPMVi0nt(0))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 896(line=32, offs=9) -- 897(line=32, offs=10)
+*/
+ATSINSlab(__atstmplab4):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 310(line=10, offs=34) -- 311(line=10, offs=35)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(2))) { ATSINSgoto(__atstmplab6) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 897(line=32, offs=10) -- 897(line=32, offs=10)
+*/
+ATSINSlab(__atstmplab5):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 902(line=32, offs=15) -- 915(line=32, offs=28)
+*/
+ATSINSmove(tmpret0, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__3(ATSPMVi0nt(1))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 925(line=33, offs=10) -- 925(line=33, offs=10)
+*/
+ATSINSlab(__atstmplab6):
+/*
+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/combinatorics.dats: 935(line=33, offs=20) -- 940(line=33, offs=25)
+*/
+ATSINSmove(tmp45, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 945(line=33, offs=30) -- 958(line=33, offs=43)
+*/
+ATSINSmove(tmp46, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__4(ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 960(line=33, offs=45) -- 973(line=33, offs=58)
+*/
+ATSINSmove(tmp51, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__5(ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 930(line=33, offs=15) -- 974(line=33, offs=59)
+*/
+ATSINSmove(tmpret0, loop_1(tmp45, ATSPMVi0nt(2), tmp46, tmp51)) ;
+
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 335(line=11, offs=3) -- 980(line=34, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret0) ;
+} /* end of [derangements_0] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 347(line=12, offs=9) -- 812(line=27, offs=12)
+*/
+/*
+local: loop_1$0(level=1)
+global: loop_1$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1, atstkind_type(atstype_ptrk) arg2, atstkind_type(atstype_ptrk) arg3)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(apy2, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(apy3, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpret1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpref7, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmpref12, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp17, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref18, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp21) ;
+ATStmpdec(tmpref26, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+/*
+emit_funent_fnxdeclst:
+*/
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 347(line=12, offs=9) -- 812(line=27, offs=12)
+*/
+ATSINSflab(__patsflab_loop_1):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 471(line=13, offs=10) -- 476(line=13, offs=15)
+*/
+ATSINSmove(tmp2, ATSLIB_056_prelude__lt_g1int_int__2__1(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 468(line=13, offs=7) -- 812(line=27, offs=12)
+*/
+ATSif(
+tmp2
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 490(line=14, offs=9) -- 634(line=19, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 508(line=15, offs=15) -- 509(line=15, offs=16)
+*/
+/*
+ATSINStmpdec(tmpref7) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 512(line=15, offs=19) -- 539(line=15, offs=46)
+*/
+ATSINSmove(tmpref7, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__1(arg3, ATSPMVrefarg0(arg2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 554(line=16, offs=15) -- 555(line=16, offs=16)
+*/
+/*
+ATSINStmpdec(tmpref12) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 558(line=16, offs=19) -- 579(line=16, offs=40)
+*/
+ATSINSmove(tmpref12, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__1(tmpref7, arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 609(line=18, offs=19) -- 614(line=18, offs=24)
+*/
+ATSINSmove(tmp17, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 601(line=18, offs=11) -- 622(line=18, offs=32)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp17) ;
+ATSINSmove_tlcal(apy2, tmpref12) ;
+ATSINSmove_tlcal(apy3, arg2) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSargmove_tlcal(arg2, apy2) ;
+ATSINSargmove_tlcal(arg3, apy3) ;
+ATSINSfgoto(__patsflab_loop_1) ;
+ATStailcal_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 490(line=14, offs=9) -- 634(line=19, offs=12)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 654(line=21, offs=9) -- 812(line=27, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 672(line=22, offs=15) -- 673(line=22, offs=16)
+*/
+/*
+ATSINStmpdec(tmpref18) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 676(line=22, offs=19) -- 703(line=22, offs=46)
+*/
+ATSINSmove(tmpref18, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__2(arg3, ATSPMVrefarg0(arg2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 722(line=23, offs=19) -- 736(line=23, offs=33)
+*/
+ATSINSmove_void(tmp21, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__1(arg2)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 752(line=24, offs=15) -- 753(line=24, offs=16)
+*/
+/*
+ATSINStmpdec(tmpref26) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 756(line=24, offs=19) -- 777(line=24, offs=40)
+*/
+ATSINSmove(tmpref26, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__2(tmpref18, arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 799(line=26, offs=11) -- 800(line=26, offs=12)
+*/
+ATSINSmove(tmpret1, tmpref26) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 654(line=21, offs=9) -- 812(line=27, offs=12)
+*/
+/*
+INSletpop()
+*/
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret1) ;
+/*
+emit_funent_fnxbodylst:
+*/
+} /* end of [loop_1] */
+
+#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$2$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__2(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp4, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 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(tmp4, 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(tmpret3, PMVtmpltcst(g1int_lt<S2Evar(tk(4697))>)(arg0, tmp4)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret3) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__2] */
+#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$2$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__2__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret3__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp4__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 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(tmp4__1, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
+*/
+ATSINSmove(tmpret3__1, atspre_g1int_lt_int(arg0, tmp4__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret3__1) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__2__1] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5514(line=298, offs=3) -- 5585(line=303, offs=2)
+*/
+/*
+local: 
+global: add_intinf0_intinf1$6$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp9) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5492(line=297, offs=1) -- 5585(line=303, offs=2)
+*/
+ATSINSflab(__patsflab_add_intinf0_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5547(line=301, offs=10) -- 5580(line=301, offs=43)
+*/
+ATSINSmove_void(tmp9, atscntrb_gmp_mpz_add2_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5524(line=298, offs=13) -- 5525(line=298, offs=14)
+*/
+ATSINSmove(tmpret8, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret8) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5514(line=298, offs=3) -- 5585(line=303, offs=2)
+*/
+/*
+local: 
+global: add_intinf0_intinf1$6$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__1(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp9__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5492(line=297, offs=1) -- 5585(line=303, offs=2)
+*/
+ATSINSflab(__patsflab_add_intinf0_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5547(line=301, offs=10) -- 5580(line=301, offs=43)
+*/
+ATSINSmove_void(tmp9__1, atscntrb_gmp_mpz_add2_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5524(line=298, offs=13) -- 5525(line=298, offs=14)
+*/
+ATSINSmove(tmpret8__1, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret8__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__1] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_int$8$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret13, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp14) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7376(line=412, offs=1) -- 7461(line=418, offs=2)
+*/
+ATSINSflab(__patsflab_mul_intinf0_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
+*/
+ATSINSmove_void(tmp14, atscntrb_gmp_mpz_mul2_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: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
+*/
+ATSINSmove(tmpret13, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret13) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_int$8$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__1(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret13__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp14__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7376(line=412, offs=1) -- 7461(line=418, offs=2)
+*/
+ATSINSflab(__patsflab_mul_intinf0_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
+*/
+ATSINSmove_void(tmp14__1, atscntrb_gmp_mpz_mul2_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: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
+*/
+ATSINSmove(tmpret13__1, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret13__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__1] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5514(line=298, offs=3) -- 5585(line=303, offs=2)
+*/
+/*
+local: 
+global: add_intinf0_intinf1$6$2(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__2(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret8__2, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp9__2) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5492(line=297, offs=1) -- 5585(line=303, offs=2)
+*/
+ATSINSflab(__patsflab_add_intinf0_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5547(line=301, offs=10) -- 5580(line=301, offs=43)
+*/
+ATSINSmove_void(tmp9__2, atscntrb_gmp_mpz_add2_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5524(line=298, offs=13) -- 5525(line=298, offs=14)
+*/
+ATSINSmove(tmpret8__2, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5523(line=298, offs=12) -- 5585(line=303, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret8__2) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__6__2] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$12$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret22) ;
+// ATStmpdec_void(tmp23) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2877(line=119, offs=1) -- 2987(line=122, offs=4)
+*/
+ATSINSflab(__patsflab_intinf_free):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp23, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret22, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret22) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$12$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__1(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret22__1) ;
+// ATStmpdec_void(tmp23__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2877(line=119, offs=1) -- 2987(line=122, offs=4)
+*/
+ATSINSflab(__patsflab_intinf_free):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp23__1, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret22__1, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret22__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__1] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_int$8$2(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__2(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret13__2, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp14__2) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7376(line=412, offs=1) -- 7461(line=418, offs=2)
+*/
+ATSINSflab(__patsflab_mul_intinf0_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
+*/
+ATSINSmove_void(tmp14__2, atscntrb_gmp_mpz_mul2_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: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
+*/
+ATSINSmove(tmpret13__2, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret13__2) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__2] */
+
+#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$15$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31) ;
+/* 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(tmp30, 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(tmp31, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30, 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(tmpret29, tmp30) ;
+/*
+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(tmpret29) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15] */
+#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$15$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__1(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__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(tmp30__1, ATSLIB_056_prelude__ptr_alloc__17__1()) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp31__1, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__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(tmpret29__1, tmp30__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(tmpret29__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__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$17$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = a(4806)
+tmparg = S2Evar(a(4806))
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__17()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35, 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(tmpret35, atspre_ptr_alloc_tsz(ATSPMVsizeof(atstyvar_type(a)))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17] */
+#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$17$1(level=2)
+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__17__1()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__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(tmpret35__1, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__1) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__1] */
+
+/*
+/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$15$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__2(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__2, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__2, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__2) ;
+/* 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(tmp30__2, ATSLIB_056_prelude__ptr_alloc__17__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(tmp31__2, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__2, 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(tmpret29__2, tmp30__2) ;
+/*
+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(tmpret29__2) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__2] */
+
+/*
+/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$17$2(level=2)
+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__17__2()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__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(tmpret35__2, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__2) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__2] */
+
+/*
+/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$15$3(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__3(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__3, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__3, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__3) ;
+/* 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(tmp30__3, ATSLIB_056_prelude__ptr_alloc__17__3()) ;
+
+/*
+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(tmp31__3, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__3, 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(tmpret29__3, tmp30__3) ;
+/*
+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(tmpret29__3) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__3] */
+
+/*
+/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$17$3(level=2)
+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__17__3()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__3, 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(tmpret35__3, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__3) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__3] */
+
+/*
+/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$15$4(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__4(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__4, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__4, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__4) ;
+/* 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(tmp30__4, ATSLIB_056_prelude__ptr_alloc__17__4()) ;
+
+/*
+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(tmp31__4, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__4, 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(tmpret29__4, tmp30__4) ;
+/*
+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(tmpret29__4) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__4] */
+
+/*
+/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$17$4(level=2)
+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__17__4()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__4, 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(tmpret35__4, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__4) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__4] */
+
+/*
+/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$15$5(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__5(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__5, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__5, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__5) ;
+/* 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(tmp30__5, ATSLIB_056_prelude__ptr_alloc__17__5()) ;
+
+/*
+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(tmp31__5, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__5, 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(tmpret29__5, tmp30__5) ;
+/*
+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(tmpret29__5) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__5] */
+
+/*
+/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$17$5(level=2)
+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__17__5()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__5, 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(tmpret35__5, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__5) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__5] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 986(line=36, offs=5) -- 1158(line=40, offs=59)
+*/
+/*
+local: fact_28$0(level=0)
+global: fact_28$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+fact_28(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret56, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp65, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp68, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp69, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+/*
+emit_funent_fnxdeclst:
+*/
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 986(line=36, offs=5) -- 1158(line=40, offs=59)
+*/
+ATSINSflab(__patsflab_fact_28):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1039(line=37, offs=3) -- 1158(line=40, offs=59)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1056(line=38, offs=7) -- 1057(line=38, offs=8)
+*/
+ATSINSlab(__atstmplab7):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1008(line=36, offs=27) -- 1009(line=36, offs=28)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab9) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1057(line=38, offs=8) -- 1057(line=38, 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/combinatorics.dats: 1061(line=38, offs=12) -- 1074(line=38, offs=25)
+*/
+ATSINSmove(tmpret56, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__6(ATSPMVi0nt(1))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1081(line=39, offs=7) -- 1082(line=39, offs=8)
+*/
+ATSINSlab(__atstmplab9):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1008(line=36, offs=27) -- 1009(line=36, offs=28)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab11) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1082(line=39, offs=8) -- 1082(line=39, offs=8)
+*/
+ATSINSlab(__atstmplab10):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1086(line=39, offs=12) -- 1099(line=39, offs=25)
+*/
+ATSINSmove(tmpret56, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__7(ATSPMVi0nt(1))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1107(line=40, offs=8) -- 1107(line=40, offs=8)
+*/
+ATSINSlab(__atstmplab11):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1147(line=40, offs=48) -- 1152(line=40, offs=53)
+*/
+ATSINSmove(tmp69, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1142(line=40, offs=43) -- 1153(line=40, offs=54)
+*/
+ATSINSmove(tmp68, fact_28(tmp69)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1126(line=40, offs=27) -- 1157(line=40, offs=58)
+*/
+ATSINSmove(tmp65, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__3(tmp68, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1112(line=40, offs=13) -- 1158(line=40, offs=59)
+*/
+ATSINSmove(tmpret56, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp65)) ;
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret56) ;
+/*
+emit_funent_fnxbodylst:
+*/
+} /* end of [fact_28] */
+
+/*
+/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$15$6(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__6(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__6, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__6, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__6) ;
+/* 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(tmp30__6, ATSLIB_056_prelude__ptr_alloc__17__6()) ;
+
+/*
+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(tmp31__6, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__6, 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(tmpret29__6, tmp30__6) ;
+/*
+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(tmpret29__6) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__6] */
+
+/*
+/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$17$6(level=2)
+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__17__6()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__6, 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(tmpret35__6, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__6) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__6] */
+
+/*
+/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$15$7(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__7(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__7, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__7, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__7) ;
+/* 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(tmp30__7, ATSLIB_056_prelude__ptr_alloc__17__7()) ;
+
+/*
+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(tmp31__7, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__7, 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(tmpret29__7, tmp30__7) ;
+/*
+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(tmpret29__7) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__7] */
+
+/*
+/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$17$7(level=2)
+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__17__7()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__7, 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(tmpret35__7, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__7) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__7] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_int$8$3(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__3(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret13__3, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp14__3) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7376(line=412, offs=1) -- 7461(line=418, offs=2)
+*/
+ATSINSflab(__patsflab_mul_intinf0_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
+*/
+ATSINSmove_void(tmp14__3, atscntrb_gmp_mpz_mul2_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: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
+*/
+ATSINSmove(tmpret13__3, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret13__3) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__3] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1234(line=43, offs=5) -- 1444(line=52, offs=8)
+*/
+/*
+local: dfact_34$0(level=0)
+global: dfact_34$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+dfact_34(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret70, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp79, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp80, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+/*
+emit_funent_fnxdeclst:
+*/
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1234(line=43, offs=5) -- 1444(line=52, offs=8)
+*/
+ATSINSflab(__patsflab_dfact_34):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1282(line=44, offs=3) -- 1444(line=52, offs=8)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1299(line=45, offs=7) -- 1300(line=45, offs=8)
+*/
+ATSINSlab(__atstmplab12):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1257(line=43, offs=28) -- 1258(line=43, offs=29)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab14) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1300(line=45, offs=8) -- 1300(line=45, offs=8)
+*/
+ATSINSlab(__atstmplab13):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1304(line=45, offs=12) -- 1317(line=45, offs=25)
+*/
+ATSINSmove(tmpret70, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__8(ATSPMVi0nt(1))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1324(line=46, offs=7) -- 1325(line=46, offs=8)
+*/
+ATSINSlab(__atstmplab14):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1257(line=43, offs=28) -- 1258(line=43, offs=29)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab16) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1325(line=46, offs=8) -- 1325(line=46, offs=8)
+*/
+ATSINSlab(__atstmplab15):
+/*
+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/combinatorics.dats: 1329(line=46, offs=12) -- 1342(line=46, offs=25)
+*/
+ATSINSmove(tmpret70, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__9(ATSPMVi0nt(1))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1350(line=47, offs=8) -- 1350(line=47, offs=8)
+*/
+ATSINSlab(__atstmplab16):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1355(line=47, offs=13) -- 1444(line=52, offs=8)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1379(line=48, offs=21) -- 1384(line=48, offs=26)
+*/
+ATSINSmove(tmp80, atspre_g1int_sub_int(arg0, ATSPMVi0nt(2))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1373(line=48, offs=15) -- 1385(line=48, offs=27)
+*/
+ATSINSmove(tmp79, dfact_34(tmp80)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1400(line=49, offs=15) -- 1421(line=49, offs=36)
+*/
+ATSINSmove(tmpret70, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__4(tmp79, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1355(line=47, offs=13) -- 1444(line=52, offs=8)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret70) ;
+/*
+emit_funent_fnxbodylst:
+*/
+} /* end of [dfact_34] */
+
+/*
+/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$15$8(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__8(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__8, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__8, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__8) ;
+/* 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(tmp30__8, ATSLIB_056_prelude__ptr_alloc__17__8()) ;
+
+/*
+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(tmp31__8, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__8, 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(tmpret29__8, tmp30__8) ;
+/*
+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(tmpret29__8) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__8] */
+
+/*
+/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$17$8(level=2)
+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__17__8()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__8, 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(tmpret35__8, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__8) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__8] */
+
+/*
+/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$15$9(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__9(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__9, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__9, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__9) ;
+/* 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(tmp30__9, ATSLIB_056_prelude__ptr_alloc__17__9()) ;
+
+/*
+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(tmp31__9, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__9, 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(tmpret29__9, tmp30__9) ;
+/*
+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(tmpret29__9) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__9] */
+
+/*
+/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$17$9(level=2)
+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__17__9()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__9, 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(tmpret35__9, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__9) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__9] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_int$8$4(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__4(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret13__4, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp14__4) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7376(line=412, offs=1) -- 7461(line=418, offs=2)
+*/
+ATSINSflab(__patsflab_mul_intinf0_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
+*/
+ATSINSmove_void(tmp14__4, atscntrb_gmp_mpz_mul2_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: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
+*/
+ATSINSmove(tmpret13__4, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret13__4) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__4] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1507(line=55, offs=4) -- 1717(line=63, offs=6)
+*/
+/*
+local: fact_28$0(level=0)
+global: fact_28$0(level=0), permutations_40$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+permutations_40(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret83, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp84, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp85, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp86, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp87, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp92) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1507(line=55, offs=4) -- 1717(line=63, offs=6)
+*/
+ATSINSflab(__patsflab_permutations_40):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1588(line=56, offs=3) -- 1717(line=63, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1604(line=57, offs=13) -- 1610(line=57, offs=19)
+*/
+ATSINSmove(tmp84, fact_28(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1629(line=58, offs=18) -- 1634(line=58, offs=23)
+*/
+ATSINSmove(tmp86, atspre_g1int_sub_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1624(line=58, offs=13) -- 1635(line=58, offs=24)
+*/
+ATSINSmove(tmp85, fact_28(tmp86)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1648(line=59, offs=13) -- 1673(line=59, offs=38)
+*/
+ATSINSmove(tmp87, ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__41__1(tmp84, ATSPMVrefarg0(tmp85))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1686(line=60, offs=13) -- 1699(line=60, offs=26)
+*/
+ATSINSmove_void(tmp92, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__2(tmp85)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1710(line=62, offs=5) -- 1711(line=62, offs=6)
+*/
+ATSINSmove(tmpret83, tmp87) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1588(line=56, offs=3) -- 1717(line=63, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret83) ;
+} /* end of [permutations_40] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9009(line=513, offs=3) -- 9083(line=518, offs=2)
+*/
+/*
+local: 
+global: div_intinf0_intinf1$41$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__41(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret88, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp89) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8987(line=512, offs=1) -- 9083(line=518, offs=2)
+*/
+ATSINSflab(__patsflab_div_intinf0_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9042(line=516, offs=10) -- 9078(line=516, offs=46)
+*/
+ATSINSmove_void(tmp89, atscntrb_gmp_mpz_tdiv2_q_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9019(line=513, offs=13) -- 9020(line=513, offs=14)
+*/
+ATSINSmove(tmpret88, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret88) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__41] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9009(line=513, offs=3) -- 9083(line=518, offs=2)
+*/
+/*
+local: 
+global: div_intinf0_intinf1$41$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__41__1(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret88__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp89__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8987(line=512, offs=1) -- 9083(line=518, offs=2)
+*/
+ATSINSflab(__patsflab_div_intinf0_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9042(line=516, offs=10) -- 9078(line=516, offs=46)
+*/
+ATSINSmove_void(tmp89__1, atscntrb_gmp_mpz_tdiv2_q_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9019(line=513, offs=13) -- 9020(line=513, offs=14)
+*/
+ATSINSmove(tmpret88__1, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret88__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__41__1] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$12$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__2(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret22__2) ;
+// ATStmpdec_void(tmp23__2) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2877(line=119, offs=1) -- 2987(line=122, offs=4)
+*/
+ATSINSflab(__patsflab_intinf_free):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp23__2, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret22__2, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret22__2) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__2] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1780(line=66, offs=4) -- 2485(line=90, offs=6)
+*/
+/*
+local: fact_28$0(level=0)
+global: fact_28$0(level=0), choose_44$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+choose_44(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret95, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp123, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp124, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp125, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp128) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1780(line=66, offs=4) -- 2485(line=90, offs=6)
+*/
+ATSINSflab(__patsflab_choose_44):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1855(line=67, offs=3) -- 2485(line=90, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2222(line=79, offs=5) -- 2479(line=89, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2241(line=80, offs=9) -- 2242(line=80, offs=10)
+*/
+ATSINSlab(__atstmplab22):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1830(line=66, offs=54) -- 1831(line=66, offs=55)
+*/
+ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(0))) { ATSINSgoto(__atstmplab24) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2242(line=80, offs=10) -- 2242(line=80, offs=10)
+*/
+ATSINSlab(__atstmplab23):
+/*
+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/combinatorics.dats: 2246(line=80, offs=14) -- 2259(line=80, offs=27)
+*/
+ATSINSmove(tmpret95, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__12(ATSPMVi0nt(1))) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2268(line=81, offs=9) -- 2269(line=81, offs=10)
+*/
+ATSINSlab(__atstmplab24):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1830(line=66, offs=54) -- 1831(line=66, offs=55)
+*/
+ATSifnthen(ATSCKpat_int(arg1, ATSPMVint(1))) { ATSINSgoto(__atstmplab26) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2269(line=81, offs=10) -- 2269(line=81, offs=10)
+*/
+ATSINSlab(__atstmplab25):
+/*
+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/combinatorics.dats: 2273(line=81, offs=14) -- 2285(line=81, offs=26)
+*/
+ATSINSmove(tmpret95, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__13(arg0)) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2296(line=82, offs=10) -- 2296(line=82, offs=10)
+*/
+ATSINSlab(__atstmplab26):
+/*
+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/combinatorics.dats: 2301(line=82, offs=15) -- 2479(line=89, offs=10)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2321(line=83, offs=17) -- 2337(line=83, offs=33)
+*/
+ATSINSmove(tmp123, numerator_loop_45(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2355(line=84, offs=17) -- 2361(line=84, offs=23)
+*/
+ATSINSmove(tmp124, fact_28(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2379(line=85, offs=17) -- 2404(line=85, offs=42)
+*/
+ATSINSmove(tmp125, ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__41__2(tmp123, ATSPMVrefarg0(tmp124))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2421(line=86, offs=17) -- 2434(line=86, offs=30)
+*/
+ATSINSmove_void(tmp128, ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__3(tmp124)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2453(line=88, offs=9) -- 2468(line=88, offs=24)
+*/
+ATSINSmove(tmpret95, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp125)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2301(line=82, offs=15) -- 2479(line=89, offs=10)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1855(line=67, offs=3) -- 2485(line=90, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret95) ;
+} /* end of [choose_44] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1867(line=68, offs=9) -- 2212(line=77, offs=12)
+*/
+/*
+local: numerator_loop_45$0(level=1)
+global: numerator_loop_45$0(level=1)
+local: n$5115(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: n$5115(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+numerator_loop_45(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret96, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp101, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp106, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp107, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp108, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp109, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp110, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp113, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp114, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1867(line=68, offs=9) -- 2212(line=77, offs=12)
+*/
+ATSINSflab(__patsflab_numerator_loop_45):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1961(line=69, offs=7) -- 2212(line=77, offs=12)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1982(line=70, offs=11) -- 1983(line=70, offs=12)
+*/
+ATSINSlab(__atstmplab17):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1909(line=68, offs=51) -- 1910(line=68, offs=52)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab19) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1983(line=70, offs=12) -- 1983(line=70, offs=12)
+*/
+ATSINSlab(__atstmplab18):
+/*
+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/combinatorics.dats: 1987(line=70, offs=16) -- 1999(line=70, offs=28)
+*/
+ATSINSmove(tmpret96, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__10(env0)) ;
+
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2011(line=71, offs=11) -- 2012(line=71, offs=12)
+*/
+ATSINSlab(__atstmplab19):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 1909(line=68, offs=51) -- 1910(line=68, offs=52)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(2))) { ATSINSgoto(__atstmplab21) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2012(line=71, offs=12) -- 2012(line=71, offs=12)
+*/
+ATSINSlab(__atstmplab20):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2030(line=71, offs=30) -- 2053(line=71, offs=53)
+*/
+ATSINSmove(tmp107, atspre_g1int_sub_int(env0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2030(line=71, offs=30) -- 2053(line=71, offs=53)
+*/
+ATSINSmove(tmp106, atspre_g1int_mul_int(tmp107, env0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2030(line=71, offs=30) -- 2053(line=71, offs=53)
+*/
+ATSINSmove(tmp101, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__11(tmp106)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2016(line=71, offs=16) -- 2054(line=71, offs=54)
+*/
+ATSINSmove(tmpret96, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp101)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2066(line=72, offs=12) -- 2066(line=72, offs=12)
+*/
+ATSINSlab(__atstmplab21):
+/*
+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/combinatorics.dats: 2071(line=72, offs=17) -- 2212(line=77, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2108(line=73, offs=34) -- 2113(line=73, offs=39)
+*/
+ATSINSmove(tmp109, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2093(line=73, offs=19) -- 2114(line=73, offs=40)
+*/
+ATSINSmove(tmp108, numerator_loop_45(env0, tmp109)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2152(line=74, offs=38) -- 2157(line=74, offs=43)
+*/
+ATSINSmove(tmp114, atspre_g1int_add_int(env0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2152(line=74, offs=38) -- 2161(line=74, offs=47)
+*/
+ATSINSmove(tmp113, atspre_g1int_sub_int(tmp114, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2133(line=74, offs=19) -- 2162(line=74, offs=48)
+*/
+ATSINSmove(tmp110, ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__5(tmp108, tmp113)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2184(line=76, offs=11) -- 2199(line=76, offs=26)
+*/
+ATSINSmove(tmpret96, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp110)) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics.dats: 2071(line=72, offs=17) -- 2212(line=77, offs=12)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret96) ;
+} /* end of [numerator_loop_45] */
+
+/*
+/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$15$10(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__10(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__10, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__10, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__10) ;
+/* 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(tmp30__10, ATSLIB_056_prelude__ptr_alloc__17__10()) ;
+
+/*
+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(tmp31__10, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__10, 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(tmpret29__10, tmp30__10) ;
+/*
+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(tmpret29__10) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__10] */
+
+/*
+/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$17$10(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__17__10()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__10, 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(tmpret35__10, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__10) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__10] */
+
+/*
+/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$15$11(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__11(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__11, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__11, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__11) ;
+/* 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(tmp30__11, ATSLIB_056_prelude__ptr_alloc__17__11()) ;
+
+/*
+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(tmp31__11, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__11, 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(tmpret29__11, tmp30__11) ;
+/*
+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(tmpret29__11) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__11] */
+
+/*
+/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$17$11(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__17__11()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__11, 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(tmpret35__11, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__11) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__11] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7394(line=413, offs=3) -- 7461(line=418, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_int$8$5(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__5(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret13__5, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp14__5) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7376(line=412, offs=1) -- 7461(line=418, offs=2)
+*/
+ATSINSflab(__patsflab_mul_intinf0_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7427(line=416, offs=10) -- 7456(line=416, offs=39)
+*/
+ATSINSmove_void(tmp14__5, atscntrb_gmp_mpz_mul2_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: 7404(line=413, offs=13) -- 7405(line=413, offs=14)
+*/
+ATSINSmove(tmpret13__5, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7403(line=413, offs=12) -- 7461(line=418, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret13__5) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__8__5] */
+
+/*
+/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$15$12(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__12(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__12, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__12, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__12) ;
+/* 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(tmp30__12, ATSLIB_056_prelude__ptr_alloc__17__12()) ;
+
+/*
+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(tmp31__12, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__12, 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(tmpret29__12, tmp30__12) ;
+/*
+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(tmpret29__12) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__12] */
+
+/*
+/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$17$12(level=2)
+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__17__12()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__12, 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(tmpret35__12, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__12) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__12] */
+
+/*
+/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$15$13(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__13(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret29__13, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp30__13, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp31__13) ;
+/* 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(tmp30__13, ATSLIB_056_prelude__ptr_alloc__17__13()) ;
+
+/*
+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(tmp31__13, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp30__13, 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(tmpret29__13, tmp30__13) ;
+/*
+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(tmpret29__13) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__15__13] */
+
+/*
+/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$17$13(level=2)
+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__17__13()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret35__13, 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(tmpret35__13, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret35__13) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__17__13] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9009(line=513, offs=3) -- 9083(line=518, offs=2)
+*/
+/*
+local: 
+global: div_intinf0_intinf1$41$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__41__2(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret88__2, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp89__2) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8987(line=512, offs=1) -- 9083(line=518, offs=2)
+*/
+ATSINSflab(__patsflab_div_intinf0_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9042(line=516, offs=10) -- 9078(line=516, offs=46)
+*/
+ATSINSmove_void(tmp89__2, atscntrb_gmp_mpz_tdiv2_q_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9019(line=513, offs=13) -- 9020(line=513, offs=14)
+*/
+ATSINSmove(tmpret88__2, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9018(line=513, offs=12) -- 9083(line=518, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret88__2) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__41__2] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2888(line=119, offs=12) -- 2987(line=122, offs=4)
+*/
+/*
+local: 
+global: intinf_free$12$3(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__3(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret22__3) ;
+// ATStmpdec_void(tmp23__3) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2877(line=119, offs=1) -- 2987(line=122, offs=4)
+*/
+ATSINSflab(__patsflab_intinf_free):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2936(line=121, offs=12) -- 2955(line=121, offs=31)
+*/
+ATSINSmove_void(tmp23__3, atscntrb_gmp_mpz_clear(ATSPMVrefarg1(arg0))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2959(line=121, offs=35) -- 2983(line=121, offs=59)
+*/
+ATSINSmove_void(tmpret22__3, atspre_ptr_free(arg0)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2894(line=119, offs=18) -- 2987(line=122, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret22__3) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__12__3] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 665(line=32, offs=22) -- 688(line=33, offs=15)
+*/
+/*
+local: choose_44$0(level=0)
+global: fact_28$0(level=0), choose_44$0(level=0), choose_ats$58$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+choose_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret131, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 654(line=32, offs=11) -- 688(line=33, offs=15)
+*/
+ATSINSflab(__patsflab_choose_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 676(line=33, offs=3) -- 688(line=33, offs=15)
+*/
+ATSINSmove(tmpret131, choose_44(arg0, arg1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret131) ;
+} /* end of [choose_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 717(line=35, offs=28) -- 740(line=36, offs=15)
+*/
+/*
+local: choose_44$0(level=0)
+global: fact_28$0(level=0), choose_44$0(level=0), permutations_ats$59$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+permutations_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret132, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 700(line=35, offs=11) -- 740(line=36, offs=15)
+*/
+ATSINSflab(__patsflab_permutations_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 728(line=36, offs=3) -- 740(line=36, offs=15)
+*/
+ATSINSmove(tmpret132, choose_44(arg0, arg1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret132) ;
+} /* end of [permutations_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 773(line=38, offs=32) -- 788(line=39, offs=10)
+*/
+/*
+local: dfact_34$0(level=0)
+global: dfact_34$0(level=0), double_factorial_ats$60$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+double_factorial_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret133, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 752(line=38, offs=11) -- 789(line=39, offs=11)
+*/
+ATSINSflab(__patsflab_double_factorial_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 781(line=39, offs=3) -- 788(line=39, offs=10)
+*/
+ATSINSmove(tmpret133, dfact_34(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret133) ;
+} /* end of [double_factorial_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 815(line=41, offs=25) -- 829(line=42, offs=9)
+*/
+/*
+local: fact_28$0(level=0)
+global: fact_28$0(level=0), factorial_ats$61$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+factorial_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret134, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 801(line=41, offs=11) -- 830(line=42, offs=10)
+*/
+ATSINSflab(__patsflab_factorial_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 823(line=42, offs=3) -- 829(line=42, offs=9)
+*/
+ATSINSmove(tmpret134, fact_28(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret134) ;
+} /* end of [factorial_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 858(line=44, offs=27) -- 880(line=45, offs=17)
+*/
+/*
+local: derangements_0$0(level=0)
+global: derangements_0$0(level=0), derangement_ats$62$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_type(atstype_ptrk)
+derangement_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret135, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 842(line=44, offs=11) -- 881(line=45, offs=18)
+*/
+ATSINSflab(__patsflab_derangement_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/combinatorics-ffi.dats: 866(line=45, offs=3) -- 880(line=45, offs=17)
+*/
+ATSINSmove(tmpret135, derangements_0(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret135) ;
+} /* end of [derangement_ats] */
 
 /*
 ** for initialization(dynloading)
diff --git a/cbits/number-theory.c b/cbits/number-theory.c
--- a/cbits/number-theory.c
+++ b/cbits/number-theory.c
@@ -1,4333 +1,4408 @@
 /*
 **
 ** The C code is generated by [ATS/Postiats-0-3-8]
-** The starting compilation time is: 2018-1-7: 23h:10m
-**
-*/
-
-/*
-** include runtime header files
-*/
-#ifndef _ATS_CCOMP_HEADER_NONE_
-#include "pats_ccomp_config.h"
-#include "pats_ccomp_basics.h"
-#include "pats_ccomp_typedefs.h"
-#include "pats_ccomp_instrset.h"
-#include "pats_ccomp_memalloc.h"
-#ifndef _ATS_CCOMP_EXCEPTION_NONE_
-#include "pats_ccomp_memalloca.h"
-#include "pats_ccomp_exception.h"
-#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
-#endif /* _ATS_CCOMP_HEADER_NONE_ */
-
-
-/*
-** include prelude cats files
-*/
-#ifndef _ATS_CCOMP_PRELUDE_NONE_
-//
-#include "prelude/CATS/basics.cats"
-#include "prelude/CATS/integer.cats"
-#include "prelude/CATS/pointer.cats"
-#include "prelude/CATS/integer_long.cats"
-#include "prelude/CATS/integer_size.cats"
-#include "prelude/CATS/integer_short.cats"
-#include "prelude/CATS/bool.cats"
-#include "prelude/CATS/char.cats"
-#include "prelude/CATS/float.cats"
-#include "prelude/CATS/integer_ptr.cats"
-#include "prelude/CATS/integer_fixed.cats"
-#include "prelude/CATS/memory.cats"
-#include "prelude/CATS/string.cats"
-#include "prelude/CATS/strptr.cats"
-//
-#include "prelude/CATS/fprintf.cats"
-//
-#include "prelude/CATS/filebas.cats"
-//
-#include "prelude/CATS/list.cats"
-#include "prelude/CATS/option.cats"
-#include "prelude/CATS/array.cats"
-#include "prelude/CATS/arrayptr.cats"
-#include "prelude/CATS/arrayref.cats"
-#include "prelude/CATS/matrix.cats"
-#include "prelude/CATS/matrixptr.cats"
-//
-#endif /* _ATS_CCOMP_PRELUDE_NONE_ */
-/*
-** for user-supplied prelude
-*/
-#ifdef _ATS_CCOMP_PRELUDE_USER_
-//
-#include _ATS_CCOMP_PRELUDE_USER_
-//
-#endif /* _ATS_CCOMP_PRELUDE_USER_ */
-/*
-** for user2-supplied prelude
-*/
-#ifdef _ATS_CCOMP_PRELUDE_USER2_
-//
-#include _ATS_CCOMP_PRELUDE_USER2_
-//
-#endif /* _ATS_CCOMP_PRELUDE_USER2_ */
-
-/*
-staload-prologues(beg)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/basics.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 1533(line=44, offs=1) -- 1572(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_long.dats: 1602(line=49, offs=1) -- 1641(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_size.dats: 1597(line=49, offs=1) -- 1636(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_short.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/char.dats: 1610(line=48, offs=1) -- 1649(line=48, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/float.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/string.dats: 1631(line=50, offs=1) -- 1670(line=50, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1629(line=50, offs=1) -- 1668(line=50, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1691(line=54, offs=1) -- 1738(line=54, offs=48)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_ptr.dats: 1601(line=49, offs=1) -- 1640(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_fixed.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/memory.dats: 1410(line=38, offs=1) -- 1449(line=39, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1613(line=49, offs=1) -- 1652(line=50, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1675(line=54, offs=1) -- 1721(line=55, offs=39)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1744(line=59, offs=1) -- 1789(line=60, offs=38)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/stdio.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1871(line=66, offs=1) -- 1918(line=66, offs=48)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1390(line=36, offs=1) -- 1440(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/stat.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1756(line=58, offs=1) -- 1805(line=60, offs=34)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 15552(line=879, offs=1) -- 15589(line=880, offs=30)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/stdio.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/sys/types.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1529(line=44, offs=1) -- 1568(line=45, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1569(line=46, offs=1) -- 1615(line=47, offs=39)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1538(line=44, offs=1) -- 1577(line=45, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1578(line=46, offs=1) -- 1624(line=47, offs=39)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_mergesort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_quicksort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1534(line=44, offs=1) -- 1573(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1574(line=45, offs=1) -- 1616(line=45, offs=43)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_bsearch.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_quicksort.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayptr.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayref.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrix.dats: 1535(line=44, offs=1) -- 1574(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixptr.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixref.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream_vt.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/tostring.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/checkast.dats: 1531(line=44, offs=1) -- 1570(line=45, offs=32)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/math.sats: 1380(line=35, offs=1) -- 1426(line=38, offs=3)
-*/
-
-#include \
-"libats/libc/CATS/math.cats"
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/mydepies.hats: 192(line=16, offs=1) -- 232(line=16, offs=41)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1233(line=43, offs=3)
-*/
-
-//
-#include \
-"atscntrb-libgmp/CATS/gmp.cats"
-//
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
-*/
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
-*/
-/*
-staload-prologues(end)
-*/
-/*
-typedefs-for-tyrecs-and-tysums(beg)
-*/
-typedef
-ATSstruct {
-#if(0)
-int contag ;
-#endif
-atstkind_t0ype(atstype_int) atslab__0 ;
-atstkind_type(atstype_ptrk) atslab__1 ;
-} postiats_tysum_0 ;
-/*
-typedefs-for-tyrecs-and-tysums(end)
-*/
-/*
-dynconlst-declaration(beg)
-*/
-/*
-dynconlst-declaration(end)
-*/
-/*
-dyncstlst-declaration(beg)
-*/
-ATSdyncst_mac(atspre_g1int2int_int_int)
-ATSdyncst_mac(atspre_g1int_gt_int)
-ATSdyncst_mac(atspre_g1int_half_int)
-ATSdyncst_mac(atspre_g0int_mod_int)
-ATSdyncst_mac(atspre_g0int2int_int_int)
-ATSdyncst_mac(atspre_g0int_eq_int)
-ATSdyncst_mac(atspre_g0int_mul_int)
-ATSdyncst_mac(atspre_g0float2int_float_int)
-ATSdyncst_mac(atslib_libats_libc_sqrt_float)
-ATSdyncst_mac(atspre_g0int2float_int_float)
-ATSdyncst_mac(atspre_g1int_lt_int)
-ATSdyncst_mac(atspre_g1int_add_int)
-ATSdyncst_mac(atspre_g1int_eq_int)
-ATSdyncst_mac(atspre_g0int_div_int)
-ATSdyncst_mac(atspre_g1int_gte_int)
-ATSdyncst_mac(atspre_g0int_add_int)
-ATSdyncst_mac(atspre_g1int_sub_int)
-ATSdyncst_mac(atspre_g1int_neq_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_add2_int)
-ATSdyncst_mac(atscntrb_gmp_mpz_init_set_int)
-ATSdyncst_mac(atspre_ptr_alloc_tsz)
-/*
-dyncstlst-declaration(end)
-*/
-/*
-dynvalist-implementation(beg)
-*/
-/*
-dynvalist-implementation(end)
-*/
-/*
-exnconlst-declaration(beg)
-*/
-#ifndef _ATS_CCOMP_EXCEPTION_NONE_
-ATSextern()
-atsvoid_t0ype
-the_atsexncon_initize
-(
-  atstype_exnconptr d2c, atstype_string exnmsg
-) ;
-#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
-/*
-exnconlst-declaration(end)
-*/
-/*
-extypelst-declaration(beg)
-*/
-/*
-extypelst-declaration(end)
-*/
-/*
-assumelst-declaration(beg)
-*/
-#ifndef _ATS_CCOMP_ASSUME_CHECK_NONE_
-#endif // #ifndef(_ATS_CCOMP_ASSUME_CHECK_NONE_)
-/*
-assumelst-declaration(end)
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-exp_0(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__1(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__1__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-witness_12(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-sqrt_int_13(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_prime_16(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-loop_17(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__18(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__18__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__23(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__23__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-divides_27(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-gcd_29(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__1__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-lcm_31(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-divisors_33(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_34(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_38(atstkind_t0ype(atstype_int), atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_39(atstype_bool) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_41(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstype_bool) ;
-
-ATSstatic()
-atstype_boxed
-__patsfun_42(atstype_bool) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-count_divisors_43(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_44(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__6(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-sum_divisors_48(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_49(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__7(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_perfect_52(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__8(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-little_omega_54(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_55(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__9(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-totient_58(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_59(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__10(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__63(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__63__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-totient_sum_66(atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_67(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__18__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69__1(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71__1(atstkind_t0ype(atstype_int)) ;
-
-#if(0)
-#if(0)
-ATSextern()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__73() ;
-#endif // end of [QUALIFIED]
-#endif // end of [TEMPLATE]
-
-ATSstatic()
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__73__1() ;
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-sum_divisors_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-count_divisors_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-totient_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_int)
-little_omega_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-#if(0)
-ATSextern()
-atstkind_t0ype(atstype_bool)
-is_perfect_ats(atstkind_t0ype(atstype_int)) ;
-#endif // end of [QUALIFIED]
-
-ATSclosurerize_beg(__patsfun_38, (atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-atstkind_t0ype(atstype_int) env0 ;
-} __patsfun_38__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_38__cfun
-(
-__patsfun_38__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_38(p_cenv->env0, arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_38__closureinit
-(
-__patsfun_38__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0
-)
-{
-p_cenv->env0 = env0 ;
-p_cenv->cfun = __patsfun_38__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_38__closurerize
-(
-atstkind_t0ype(atstype_int) env0
-)
-{
-return __patsfun_38__closureinit(ATS_MALLOC(sizeof(__patsfun_38__closure_t0ype)), env0) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_39, (), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-} __patsfun_39__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_39__cfun
-(
-__patsfun_39__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_39(arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_39__closureinit
-(
-__patsfun_39__closure_t0ype *p_cenv
-)
-{
-p_cenv->cfun = __patsfun_39__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_39__closurerize
-(
-// argumentless
-)
-{
-return __patsfun_39__closureinit(ATS_MALLOC(sizeof(__patsfun_39__closure_t0ype))) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_41, (atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-atstkind_t0ype(atstype_int) env0 ;
-atstkind_t0ype(atstype_int) env1 ;
-} __patsfun_41__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_41__cfun
-(
-__patsfun_41__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_41(p_cenv->env0, p_cenv->env1, arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_41__closureinit
-(
-__patsfun_41__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1
-)
-{
-p_cenv->env0 = env0 ;
-p_cenv->env1 = env1 ;
-p_cenv->cfun = __patsfun_41__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_41__closurerize
-(
-atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1
-)
-{
-return __patsfun_41__closureinit(ATS_MALLOC(sizeof(__patsfun_41__closure_t0ype)), env0, env1) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-ATSclosurerize_beg(__patsfun_42, (), (atstype_bool), atstype_boxed)
-typedef
-ATSstruct {
-atstype_funptr cfun ;
-} __patsfun_42__closure_t0ype ;
-ATSstatic()
-atstype_boxed
-__patsfun_42__cfun
-(
-__patsfun_42__closure_t0ype *p_cenv, atstype_bool arg0
-)
-{
-ATSFCreturn(__patsfun_42(arg0)) ;
-} /* end of [cfun] */
-ATSstatic()
-atstype_cloptr
-__patsfun_42__closureinit
-(
-__patsfun_42__closure_t0ype *p_cenv
-)
-{
-p_cenv->cfun = __patsfun_42__cfun ;
-return p_cenv ;
-} /* end of [closureinit] */
-ATSstatic()
-atstype_cloptr
-__patsfun_42__closurerize
-(
-// argumentless
-)
-{
-return __patsfun_42__closureinit(ATS_MALLOC(sizeof(__patsfun_42__closure_t0ype))) ;
-} /* end of [closurerize] */
-ATSclosurerize_end()
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 220(line=9, offs=5) -- 581(line=26, offs=10)
-*/
-/*
-local: exp_0$0(level=0)
-global: exp_0$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-exp_0(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmpref6, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref7, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp8, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp13, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp14, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp15, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 220(line=9, offs=5) -- 581(line=26, offs=10)
-*/
-ATSINSflab(__patsflab_exp_0):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 274(line=10, offs=3) -- 581(line=26, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 291(line=11, offs=7) -- 292(line=11, offs=8)
-*/
-ATSINSlab(__atstmplab0):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 241(line=9, offs=26) -- 242(line=9, offs=27)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 292(line=11, offs=8) -- 292(line=11, 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: 296(line=11, offs=12) -- 297(line=11, offs=13)
-*/
-ATSINSmove(tmpret0, ATSPMVi0nt(0)) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 305(line=12, offs=8) -- 305(line=12, 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: 333(line=14, offs=12) -- 338(line=14, offs=17)
-*/
-ATSINSmove(tmp1, ATSLIB_056_prelude__gt_g1int_int__1__1(arg1, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 330(line=14, offs=9) -- 571(line=25, offs=12)
-*/
-ATSif(
-tmp1
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 354(line=15, offs=11) -- 546(line=23, offs=14)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 374(line=16, offs=17) -- 376(line=16, offs=19)
-*/
-/*
-ATSINStmpdec(tmpref6) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 379(line=16, offs=22) -- 385(line=16, offs=28)
-*/
-ATSINSmove(tmpref6, atspre_g1int_half_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 403(line=17, offs=17) -- 405(line=17, offs=19)
-*/
-/*
-ATSINStmpdec(tmpref7) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 408(line=17, offs=22) -- 413(line=17, offs=27)
-*/
-ATSINSmove(tmpref7, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 442(line=19, offs=16) -- 448(line=19, offs=22)
-*/
-ATSINSmove(tmp8, ATSLIB_056_prelude__eq_g0int_int__7__1(tmpref7, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 439(line=19, offs=13) -- 532(line=22, offs=33)
-*/
-ATSif(
-tmp8
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 472(line=20, offs=19) -- 477(line=20, offs=24)
-*/
-ATSINSmove(tmp13, atspre_g0int_mul_int(arg0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 468(line=20, offs=15) -- 482(line=20, offs=29)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp13) ;
-ATSINSmove_tlcal(apy1, tmpref6) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_exp_0) ;
-ATStailcal_end()
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 522(line=22, offs=23) -- 527(line=22, offs=28)
-*/
-ATSINSmove(tmp15, atspre_g0int_mul_int(arg0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 518(line=22, offs=19) -- 532(line=22, offs=33)
-*/
-ATSINSmove(tmp14, exp_0(tmp15, tmpref6)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 514(line=22, offs=15) -- 532(line=22, offs=33)
-*/
-ATSINSmove(tmpret0, atspre_g0int_mul_int(arg0, tmp14)) ;
-
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 354(line=15, offs=11) -- 546(line=23, offs=14)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 570(line=25, offs=11) -- 571(line=25, offs=12)
-*/
-ATSINSmove(tmpret0, ATSPMVi0nt(1)) ;
-} /* ATSendif */
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret0) ;
-} /* end of [exp_0] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$1$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4703)
-tmparg = S2Evar(tk(4703))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__1(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp3, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12664(line=658, offs=1) -- 12718(line=659, offs=42)
-*/
-ATSINSflab(__patsflab_gt_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp3, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4703))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret2, PMVtmpltcst(g1int_gt<S2Evar(tk(4703))>)(arg0, tmp3)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret2) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__1] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$1$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4703)
-tmparg = S2Evar(tk(4703))
-tmpsub = Some(tk(4703) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__1__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret2__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp3__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12664(line=658, offs=1) -- 12718(line=659, offs=42)
-*/
-ATSINSflab(__patsflab_gt_g1int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
-*/
-ATSINSmove(tmp3__1, atspre_g1int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
-*/
-ATSINSmove(tmpret2__1, atspre_g1int_gt_int(arg0, tmp3__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret2__1) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__1__1] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$7$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4694)
-tmparg = S2Evar(tk(4694))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret9, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp10, atstkind_t0ype(atstyvar_type(tk))) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
-*/
-ATSINSflab(__patsflab_eq_g0int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp10, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4694))>)(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret9, PMVtmpltcst(g0int_eq<S2Evar(tk(4694))>)(arg0, tmp10)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret9) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__7] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$7$1(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4694)
-tmparg = S2Evar(tk(4694))
-tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret9__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp10__1, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
-*/
-ATSINSflab(__patsflab_eq_g0int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp10__1, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret9__1, atspre_g0int_eq_int(arg0, tmp10__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret9__1) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__1] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 586(line=28, offs=4) -- 641(line=29, offs=14)
-*/
-/*
-local: 
-global: witness_12$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-witness_12(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret16, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 586(line=28, offs=4) -- 641(line=29, offs=14)
-*/
-ATSINSflab(__patsflab_witness_12):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 630(line=29, offs=3) -- 640(line=29, offs=13)
-*/
-ATSINSmove(tmpret16, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), arg0)) ;
-ATSfunbody_end()
-ATSreturn(tmpret16) ;
-} /* end of [witness_12] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 646(line=31, offs=4) -- 790(line=36, offs=6)
-*/
-/*
-local: witness_12$0(level=0)
-global: witness_12$0(level=0), sqrt_int_13$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-sqrt_int_13(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret17, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref18, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp19, atstkind_t0ype(atstype_float)) ;
-ATStmpdec(tmp20, atstkind_t0ype(atstype_float)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 646(line=31, offs=4) -- 790(line=36, offs=6)
-*/
-ATSINSflab(__patsflab_sqrt_int_13):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 696(line=32, offs=3) -- 790(line=36, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 708(line=33, offs=9) -- 713(line=33, offs=14)
-*/
-/*
-ATSINStmpdec(tmpref18) ;
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 744(line=33, offs=45) -- 757(line=33, offs=58)
-*/
-ATSINSmove(tmp20, atspre_g0int2float_int_float(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 733(line=33, offs=34) -- 759(line=33, offs=60)
-*/
-ATSINSmove(tmp19, atslib_libats_libc_sqrt_float(tmp20)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 721(line=33, offs=22) -- 760(line=33, offs=61)
-*/
-ATSINSmove(tmpref18, atspre_g0float2int_float_int(tmp19)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 770(line=35, offs=5) -- 783(line=35, offs=18)
-*/
-ATSINSmove(tmpret17, witness_12(tmpref18)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 696(line=32, offs=3) -- 790(line=36, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret17) ;
-} /* end of [sqrt_int_13] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 826(line=39, offs=4) -- 1411(line=62, offs=10)
-*/
-/*
-local: sqrt_int_13$0(level=0)
-global: witness_12$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_prime_16(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret21, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp42, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 826(line=39, offs=4) -- 1411(line=62, offs=10)
-*/
-ATSINSflab(__patsflab_is_prime_16):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 862(line=40, offs=3) -- 1411(line=62, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 879(line=41, offs=7) -- 880(line=41, offs=8)
-*/
-ATSINSlab(__atstmplab3):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 835(line=39, offs=13) -- 836(line=39, offs=14)
-*/
-ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab5) ; } ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 880(line=41, offs=8) -- 880(line=41, 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: 884(line=41, offs=12) -- 889(line=41, offs=17)
-*/
-ATSINSmove(tmpret21, ATSPMVbool_false()) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 897(line=42, offs=8) -- 897(line=42, 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: 922(line=44, offs=9) -- 1401(line=61, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1377(line=60, offs=19) -- 1387(line=60, offs=29)
-*/
-ATSINSmove(tmp42, sqrt_int_13(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1369(line=60, offs=11) -- 1389(line=60, offs=31)
-*/
-ATSINSmove(tmpret21, loop_17(arg0, ATSPMVi0nt(2), tmp42)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 922(line=44, offs=9) -- 1401(line=61, offs=12)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret21) ;
-} /* end of [is_prime_16] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 940(line=45, offs=15) -- 1347(line=58, offs=21)
-*/
-/*
-local: loop_17$0(level=1)
-global: loop_17$0(level=1)
-local: k$4740(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: k$4740(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-loop_17(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret22, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp23, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp28, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp31, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp32, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp33, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp38, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp41, 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: 940(line=45, offs=15) -- 1347(line=58, offs=21)
-*/
-ATSINSflab(__patsflab_loop_17):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1034(line=46, offs=16) -- 1043(line=46, offs=25)
-*/
-ATSINSmove(tmp23, ATSLIB_056_prelude__lt_g1int_int__18__1(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1031(line=46, offs=13) -- 1347(line=58, offs=21)
-*/
-ATSif(
-tmp23
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1066(line=47, offs=18) -- 1071(line=47, offs=23)
-*/
-ATSINSmove(tmp31, atspre_g0int_mod_int(env0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1066(line=47, offs=18) -- 1075(line=47, offs=27)
-*/
-ATSINSmove(tmp28, ATSLIB_056_prelude__eq_g0int_int__7__2(tmp31, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1063(line=47, offs=15) -- 1156(line=50, offs=35)
-*/
-ATSif(
-tmp28
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1097(line=48, offs=17) -- 1102(line=48, offs=22)
-*/
-ATSINSmove(tmpret22, ATSPMVbool_false()) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1143(line=50, offs=22) -- 1148(line=50, offs=27)
-*/
-ATSINSmove(tmp32, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1138(line=50, offs=17) -- 1156(line=50, offs=35)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp32) ;
-ATSINSmove_tlcal(apy1, arg1) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_17) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1191(line=52, offs=18) -- 1200(line=52, offs=27)
-*/
-ATSINSmove(tmp33, ATSLIB_056_prelude__eq_g1int_int__23__1(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1188(line=52, offs=15) -- 1347(line=58, offs=21)
-*/
-ATSif(
-tmp33
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1225(line=53, offs=20) -- 1230(line=53, offs=25)
-*/
-ATSINSmove(tmp41, atspre_g0int_mod_int(env0, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1225(line=53, offs=20) -- 1234(line=53, offs=29)
-*/
-ATSINSmove(tmp38, ATSLIB_056_prelude__eq_g0int_int__7__3(tmp41, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1222(line=53, offs=17) -- 1307(line=56, offs=23)
-*/
-ATSif(
-tmp38
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1258(line=54, offs=19) -- 1263(line=54, offs=24)
-*/
-ATSINSmove(tmpret22, ATSPMVbool_false()) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1303(line=56, offs=19) -- 1307(line=56, offs=23)
-*/
-ATSINSmove(tmpret22, ATSPMVbool_true()) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1343(line=58, offs=17) -- 1347(line=58, offs=21)
-*/
-ATSINSmove(tmpret22, ATSPMVbool_true()) ;
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret22) ;
-/*
-emit_funent_fnxbodylst:
-*/
-} /* end of [loop_17] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
-*/
-/*
-local: 
-global: lt_g1int_int$18$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4697)
-tmparg = S2Evar(tk(4697))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__18(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret24, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp25, 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(tmp25, 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(tmpret24, PMVtmpltcst(g1int_lt<S2Evar(tk(4697))>)(arg0, tmp25)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret24) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__18] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
-*/
-/*
-local: 
-global: lt_g1int_int$18$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4697)
-tmparg = S2Evar(tk(4697))
-tmpsub = Some(tk(4697) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__18__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret24__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp25__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(tmp25__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(tmpret24__1, atspre_g1int_lt_int(arg0, tmp25__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret24__1) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__18__1] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$7$2(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4694)
-tmparg = S2Evar(tk(4694))
-tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret9__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp10__2, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
-*/
-ATSINSflab(__patsflab_eq_g0int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp10__2, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret9__2, atspre_g0int_eq_int(arg0, tmp10__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret9__2) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__2] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
-*/
-/*
-local: 
-global: eq_g1int_int$23$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4709)
-tmparg = S2Evar(tk(4709))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__23(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret34, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp35, 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(tmp35, 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(tmpret34, PMVtmpltcst(g1int_eq<S2Evar(tk(4709))>)(arg0, tmp35)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret34) ;
-} /* end of [ATSLIB_056_prelude__eq_g1int_int__23] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
-*/
-/*
-local: 
-global: eq_g1int_int$23$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4709)
-tmparg = S2Evar(tk(4709))
-tmpsub = Some(tk(4709) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g1int_int__23__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret34__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp35__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(tmp35__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(tmpret34__1, atspre_g1int_eq_int(arg0, tmp35__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret34__1) ;
-} /* end of [ATSLIB_056_prelude__eq_g1int_int__23__1] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$7$3(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4694)
-tmparg = S2Evar(tk(4694))
-tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret9__3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp10__3, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
-*/
-ATSINSflab(__patsflab_eq_g0int_int):
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
-*/
-ATSINSmove(tmp10__3, atspre_g0int2int_int_int(arg1)) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
-*/
-ATSINSmove(tmpret9__3, atspre_g0int_eq_int(arg0, tmp10__3)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret9__3) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__3] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 434(line=17, offs=4) -- 482(line=18, offs=12)
-*/
-/*
-local: 
-global: divides_27$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-divides_27(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret43, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp46, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 434(line=17, offs=4) -- 482(line=18, offs=12)
-*/
-ATSINSflab(__patsflab_divides_27):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 473(line=18, offs=3) -- 478(line=18, offs=8)
-*/
-ATSINSmove(tmp46, atspre_g0int_mod_int(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 473(line=18, offs=3) -- 482(line=18, offs=12)
-*/
-ATSINSmove(tmpret43, ATSLIB_056_prelude__eq_g0int_int__7__4(tmp46, ATSPMVi0nt(0))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret43) ;
-} /* end of [divides_27] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$7$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__7__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret9__4, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp10__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(tmp10__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(tmpret9__4, atspre_g0int_eq_int(arg0, tmp10__4)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret9__4) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__4] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 488(line=20, offs=5) -- 599(line=24, offs=6)
-*/
-/*
-local: witness_12$0(level=0), gcd_29$0(level=0)
-global: witness_12$0(level=0), gcd_29$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-gcd_29(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret47, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp48, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp51, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp52, 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: 488(line=20, offs=5) -- 599(line=24, offs=6)
-*/
-ATSINSflab(__patsflab_gcd_29):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 549(line=21, offs=6) -- 554(line=21, offs=11)
-*/
-ATSINSmove(tmp48, ATSLIB_056_prelude__gt_g1int_int__1__2(arg1, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 546(line=21, offs=3) -- 599(line=24, offs=6)
-*/
-ATSif(
-tmp48
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 579(line=22, offs=20) -- 584(line=22, offs=25)
-*/
-ATSINSmove(tmp52, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 571(line=22, offs=12) -- 585(line=22, offs=26)
-*/
-ATSINSmove(tmp51, witness_12(tmp52)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 564(line=22, offs=5) -- 586(line=22, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg1) ;
-ATSINSmove_tlcal(apy1, tmp51) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_gcd_29) ;
-ATStailcal_end()
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 598(line=24, offs=5) -- 599(line=24, offs=6)
-*/
-ATSINSmove(tmpret47, arg0) ;
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret47) ;
-/*
-emit_funent_fnxbodylst:
-*/
-} /* end of [gcd_29] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
-*/
-/*
-local: 
-global: gt_g1int_int$1$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__1__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret2__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp3__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(tmp3__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(tmpret2__2, atspre_g1int_gt_int(arg0, tmp3__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret2__2) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__1__2] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 604(line=26, offs=4) -- 681(line=27, offs=22)
-*/
-/*
-local: gcd_29$0(level=0)
-global: witness_12$0(level=0), gcd_29$0(level=0), lcm_31$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-lcm_31(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret53, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp54, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp55, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 604(line=26, offs=4) -- 681(line=27, offs=22)
-*/
-ATSINSflab(__patsflab_lcm_31):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 667(line=27, offs=8) -- 676(line=27, offs=17)
-*/
-ATSINSmove(tmp55, gcd_29(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 663(line=27, offs=4) -- 676(line=27, offs=17)
-*/
-ATSINSmove(tmp54, atspre_g0int_div_int(arg0, tmp55)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 662(line=27, offs=3) -- 681(line=27, offs=22)
-*/
-ATSINSmove(tmpret53, atspre_g0int_mul_int(tmp54, arg1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret53) ;
-} /* end of [lcm_31] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 724(line=30, offs=4) -- 1128(line=42, offs=6)
-*/
-/*
-local: 
-global: divisors_33$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-divisors_33(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret56, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 724(line=30, offs=4) -- 1128(line=42, offs=6)
-*/
-ATSINSflab(__patsflab_divisors_33):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 769(line=31, offs=3) -- 1128(line=42, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1112(line=41, offs=5) -- 1122(line=41, offs=15)
-*/
-ATSINSmove(tmpret56, loop_34(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 769(line=31, offs=3) -- 1128(line=42, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret56) ;
-} /* end of [divisors_33] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 781(line=32, offs=9) -- 1102(line=39, offs=33)
-*/
-/*
-local: loop_34$0(level=1)
-global: loop_34$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_34(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret57, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp58, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp66, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp69, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 781(line=32, offs=9) -- 1102(line=39, offs=33)
-*/
-ATSINSflab(__patsflab_loop_34):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 888(line=33, offs=10) -- 896(line=33, offs=18)
-*/
-ATSINSmove(tmp58, ATSLIB_056_prelude__gte_g1int_int__35__1(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 885(line=33, offs=7) -- 1102(line=39, offs=33)
-*/
-ATSif(
-tmp58
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 910(line=34, offs=9) -- 962(line=34, offs=61)
-*/
-ATSINSmove_ldelay(tmpret57, atstype_boxed, ATSPMVcfunlab(1, __patsfun_38, (arg1))) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 985(line=36, offs=12) -- 992(line=36, offs=19)
-*/
-ATSINSmove(tmp69, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 985(line=36, offs=12) -- 996(line=36, offs=23)
-*/
-ATSINSmove(tmp66, ATSLIB_056_prelude__eq_g0int_int__7__5(tmp69, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 982(line=36, offs=9) -- 1102(line=39, offs=33)
-*/
-ATSif(
-tmp66
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1012(line=37, offs=11) -- 1056(line=37, offs=55)
-*/
-ATSINSmove_ldelay(tmpret57, atstype_boxed, ATSPMVcfunlab(1, __patsfun_41, (arg0, arg1))) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1080(line=39, offs=11) -- 1102(line=39, offs=33)
-*/
-ATSINSmove_ldelay(tmpret57, atstype_boxed, ATSPMVcfunlab(1, __patsfun_42, ())) ;
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret57) ;
-} /* end of [loop_34] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$35$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret59, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp60, 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(tmp60, 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(tmpret59, PMVtmpltcst(g1int_gte<S2Evar(tk(4706))>)(arg0, tmp60)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret59) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__35] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$35$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret59__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp60__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(tmp60__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(tmpret59__1, atspre_g1int_gte_int(arg0, tmp60__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret59__1) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__35__1] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 910(line=34, offs=9) -- 962(line=34, offs=61)
-*/
-/*
-local: 
-global: __patsfun_38$0(level=2)
-local: acc$5118(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: acc$5118(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_38(atstkind_t0ype(atstype_int) env0, atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret63, atstype_boxed) ;
-ATStmpdec(tmp64, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 910(line=34, offs=9) -- 962(line=34, offs=61)
-*/
-ATSINSflab(__patsflab___patsfun_38):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 910(line=34, offs=9) -- 962(line=34, offs=61)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 938(line=34, offs=37) -- 960(line=34, offs=59)
-*/
-ATSINSmove_ldelay(tmp64, atstype_boxed, ATSPMVcfunlab(1, __patsfun_39, ())) ;
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 918(line=34, offs=17) -- 961(line=34, offs=60)
-*/
-
-/*
-#LINCONSTATUS==0
-*/
-ATSINSmove_con1_beg()
-ATSINSmove_con1_new(tmpret63, postiats_tysum_0) ;
-#if(0)
-ATSINSstore_con1_tag(tmpret63, 1) ;
-#endif
-ATSINSstore_con1_ofs(tmpret63, postiats_tysum_0, atslab__0, env0) ;
-ATSINSstore_con1_ofs(tmpret63, postiats_tysum_0, atslab__1, tmp64) ;
-ATSINSmove_con1_end()
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret63) ;
-} /* end of [__patsfun_38] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 938(line=34, offs=37) -- 960(line=34, offs=59)
-*/
-/*
-local: 
-global: __patsfun_39$0(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_39(atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret65, atstype_boxed) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 938(line=34, offs=37) -- 960(line=34, offs=59)
-*/
-ATSINSflab(__patsflab___patsfun_39):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 938(line=34, offs=37) -- 960(line=34, offs=59)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 946(line=34, offs=45) -- 959(line=34, offs=58)
-*/
-
-ATSINSmove_nil(tmpret65) ;
-
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret65) ;
-} /* end of [__patsfun_39] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$7$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__7__5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret9__5, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp10__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(tmp10__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(tmpret9__5, atspre_g0int_eq_int(arg0, tmp10__5)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret9__5) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__5] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1012(line=37, offs=11) -- 1056(line=37, offs=55)
-*/
-/*
-local: loop_34$0(level=1)
-global: loop_34$0(level=1), __patsfun_41$0(level=2)
-local: n$5117(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5118(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: n$5117(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5118(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_41(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret70, atstype_boxed) ;
-ATStmpdec(tmp71, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp72, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1012(line=37, offs=11) -- 1056(line=37, offs=55)
-*/
-ATSINSflab(__patsflab___patsfun_41):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1012(line=37, offs=11) -- 1056(line=37, offs=55)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1046(line=37, offs=45) -- 1053(line=37, offs=52)
-*/
-ATSINSmove(tmp72, atspre_g1int_add_int(env1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1038(line=37, offs=37) -- 1054(line=37, offs=53)
-*/
-ATSINSmove(tmp71, loop_34(env0, tmp72)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1020(line=37, offs=19) -- 1055(line=37, offs=54)
-*/
-
-/*
-#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: 1080(line=39, offs=11) -- 1102(line=39, offs=33)
-*/
-/*
-local: 
-global: __patsfun_42$0(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-atstype_boxed
-__patsfun_42(atstype_bool arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret73, atstype_boxed) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1080(line=39, offs=11) -- 1102(line=39, offs=33)
-*/
-ATSINSflab(__patsflab___patsfun_42):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1080(line=39, offs=11) -- 1102(line=39, offs=33)
-*/
-ATSif(
-arg0
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1088(line=39, offs=19) -- 1101(line=39, offs=32)
-*/
-
-ATSINSmove_nil(tmpret73) ;
-
-} ATSelse() {
-/* (*nothing*) */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret73) ;
-} /* end of [__patsfun_42] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1133(line=44, offs=4) -- 1444(line=56, offs=6)
-*/
-/*
-local: 
-global: count_divisors_43$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-count_divisors_43(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret74, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1133(line=44, offs=4) -- 1444(line=56, offs=6)
-*/
-ATSINSflab(__patsflab_count_divisors_43):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1175(line=45, offs=3) -- 1444(line=56, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1428(line=55, offs=5) -- 1438(line=55, offs=15)
-*/
-ATSINSmove(tmpret74, loop_44(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1175(line=45, offs=3) -- 1444(line=56, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret74) ;
-} /* end of [count_divisors_43] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1187(line=46, offs=9) -- 1418(line=53, offs=27)
-*/
-/*
-local: loop_44$0(level=1)
-global: loop_44$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_44(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret75, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp76, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp79, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp82, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp83, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp84, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp85, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1187(line=46, offs=9) -- 1418(line=53, offs=27)
-*/
-ATSINSflab(__patsflab_loop_44):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1285(line=47, offs=10) -- 1293(line=47, offs=18)
-*/
-ATSINSmove(tmp76, ATSLIB_056_prelude__gte_g1int_int__35__2(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1282(line=47, offs=7) -- 1418(line=53, offs=27)
-*/
-ATSif(
-tmp76
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1307(line=48, offs=9) -- 1308(line=48, offs=10)
-*/
-ATSINSmove(tmpret75, ATSPMVi0nt(1)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1331(line=50, offs=12) -- 1338(line=50, offs=19)
-*/
-ATSINSmove(tmp82, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1331(line=50, offs=12) -- 1342(line=50, offs=23)
-*/
-ATSINSmove(tmp79, ATSLIB_056_prelude__eq_g0int_int__7__6(tmp82, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1328(line=50, offs=9) -- 1418(line=53, offs=27)
-*/
-ATSif(
-tmp79
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1370(line=51, offs=23) -- 1377(line=51, offs=30)
-*/
-ATSINSmove(tmp84, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1362(line=51, offs=15) -- 1378(line=51, offs=31)
-*/
-ATSINSmove(tmp83, loop_44(arg0, tmp84)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1358(line=51, offs=11) -- 1378(line=51, offs=31)
-*/
-ATSINSmove(tmpret75, atspre_g0int_add_int(ATSPMVi0nt(1), tmp83)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1410(line=53, offs=19) -- 1417(line=53, offs=26)
-*/
-ATSINSmove(tmp85, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1402(line=53, offs=11) -- 1418(line=53, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg0) ;
-ATSINSmove_tlcal(apy1, tmp85) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_44) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret75) ;
-} /* end of [loop_44] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$35$2(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret59__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp60__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(tmp60__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(tmpret59__2, atspre_g1int_gte_int(arg0, tmp60__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret59__2) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__35__2] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$7$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__7__6(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret9__6, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp10__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(tmp10__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(tmpret9__6, atspre_g0int_eq_int(arg0, tmp10__6)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret9__6) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__6] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1449(line=58, offs=4) -- 1760(line=70, offs=6)
-*/
-/*
-local: 
-global: sum_divisors_48$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-sum_divisors_48(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret86, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1449(line=58, offs=4) -- 1760(line=70, offs=6)
-*/
-ATSINSflab(__patsflab_sum_divisors_48):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1489(line=59, offs=3) -- 1760(line=70, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1744(line=69, offs=5) -- 1754(line=69, offs=15)
-*/
-ATSINSmove(tmpret86, loop_49(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1489(line=59, offs=3) -- 1760(line=70, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret86) ;
-} /* end of [sum_divisors_48] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1501(line=60, offs=9) -- 1734(line=67, offs=27)
-*/
-/*
-local: loop_49$0(level=1)
-global: loop_49$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_49(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret87, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp88, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp91, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp94, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp95, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp96, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp97, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1501(line=60, offs=9) -- 1734(line=67, offs=27)
-*/
-ATSINSflab(__patsflab_loop_49):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1599(line=61, offs=10) -- 1607(line=61, offs=18)
-*/
-ATSINSmove(tmp88, ATSLIB_056_prelude__gte_g1int_int__35__3(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1596(line=61, offs=7) -- 1734(line=67, offs=27)
-*/
-ATSif(
-tmp88
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1621(line=62, offs=9) -- 1622(line=62, offs=10)
-*/
-ATSINSmove(tmpret87, ATSPMVi0nt(0)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1645(line=64, offs=12) -- 1652(line=64, offs=19)
-*/
-ATSINSmove(tmp94, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1645(line=64, offs=12) -- 1656(line=64, offs=23)
-*/
-ATSINSmove(tmp91, ATSLIB_056_prelude__eq_g0int_int__7__7(tmp94, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1642(line=64, offs=9) -- 1734(line=67, offs=27)
-*/
-ATSif(
-tmp91
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1686(line=65, offs=25) -- 1693(line=65, offs=32)
-*/
-ATSINSmove(tmp96, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1678(line=65, offs=17) -- 1694(line=65, offs=33)
-*/
-ATSINSmove(tmp95, loop_49(arg0, tmp96)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1672(line=65, offs=11) -- 1694(line=65, offs=33)
-*/
-ATSINSmove(tmpret87, atspre_g0int_add_int(arg1, tmp95)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1726(line=67, offs=19) -- 1733(line=67, offs=26)
-*/
-ATSINSmove(tmp97, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1718(line=67, offs=11) -- 1734(line=67, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg0) ;
-ATSINSmove_tlcal(apy1, tmp97) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_49) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret87) ;
-} /* end of [loop_49] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$35$3(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret59__3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp60__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(tmp60__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(tmpret59__3, atspre_g1int_gte_int(arg0, tmp60__3)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret59__3) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__35__3] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$7$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__7__7(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret9__7, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp10__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(tmp10__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(tmpret9__7, atspre_g0int_eq_int(arg0, tmp10__7)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret9__7) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__7] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1765(line=72, offs=4) -- 1823(line=73, offs=22)
-*/
-/*
-local: sum_divisors_48$0(level=0)
-global: sum_divisors_48$0(level=0), is_perfect_52$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_bool)
-is_perfect_52(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret98, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp101, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1765(line=72, offs=4) -- 1823(line=73, offs=22)
-*/
-ATSINSflab(__patsflab_is_perfect_52):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1804(line=73, offs=3) -- 1818(line=73, offs=17)
-*/
-ATSINSmove(tmp101, sum_divisors_48(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1804(line=73, offs=3) -- 1823(line=73, offs=22)
-*/
-ATSINSmove(tmpret98, ATSLIB_056_prelude__eq_g0int_int__7__8(tmp101, arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret98) ;
-} /* end of [is_perfect_52] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$7$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__7__8(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret9__8, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp10__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(tmp10__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(tmpret9__8, atspre_g0int_eq_int(arg0, tmp10__8)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret9__8) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__8] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1855(line=76, offs=4) -- 2236(line=91, offs=6)
-*/
-/*
-local: is_prime_16$0(level=0)
-global: witness_12$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), little_omega_54$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-little_omega_54(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret102, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1855(line=76, offs=4) -- 2236(line=91, offs=6)
-*/
-ATSINSflab(__patsflab_little_omega_54):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1895(line=77, offs=3) -- 2236(line=91, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2220(line=90, offs=5) -- 2230(line=90, offs=15)
-*/
-ATSINSmove(tmpret102, loop_55(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1895(line=77, offs=3) -- 2236(line=91, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret102) ;
-} /* end of [little_omega_54] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1907(line=78, offs=9) -- 2210(line=88, offs=27)
-*/
-/*
-local: is_prime_16$0(level=0), loop_55$0(level=1)
-global: is_prime_16$0(level=0), loop_55$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_55(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret103, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp104, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp107, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp108, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp109, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp112, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp113, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp114, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp115, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1907(line=78, offs=9) -- 2210(line=88, offs=27)
-*/
-ATSINSflab(__patsflab_loop_55):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2005(line=79, offs=10) -- 2013(line=79, offs=18)
-*/
-ATSINSmove(tmp104, ATSLIB_056_prelude__gte_g1int_int__35__4(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2002(line=79, offs=7) -- 2210(line=88, offs=27)
-*/
-ATSif(
-tmp104
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2030(line=80, offs=12) -- 2040(line=80, offs=22)
-*/
-ATSINSmove(tmp107, is_prime_16(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2027(line=80, offs=9) -- 2083(line=83, offs=12)
-*/
-ATSif(
-tmp107
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2057(line=81, offs=11) -- 2058(line=81, offs=12)
-*/
-ATSINSmove(tmpret103, ATSPMVi0nt(1)) ;
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2082(line=83, offs=11) -- 2083(line=83, offs=12)
-*/
-ATSINSmove(tmpret103, ATSPMVi0nt(0)) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2106(line=85, offs=12) -- 2133(line=85, offs=39)
-*/
-ATSINSmove(tmp112, atspre_g0int_mod_int(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2106(line=85, offs=12) -- 2133(line=85, offs=39)
-*/
-ATSINSmove(tmp109, ATSLIB_056_prelude__eq_g0int_int__7__9(tmp112, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2106(line=85, offs=12) -- 2133(line=85, offs=39)
-*/
-ATSif(
-tmp109
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2106(line=85, offs=12) -- 2133(line=85, offs=39)
-*/
-ATSINSmove(tmp108, is_prime_16(arg1)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2106(line=85, offs=12) -- 2133(line=85, offs=39)
-*/
-ATSINSmove(tmp108, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2103(line=85, offs=9) -- 2210(line=88, offs=27)
-*/
-ATSif(
-tmp108
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2162(line=86, offs=23) -- 2169(line=86, offs=30)
-*/
-ATSINSmove(tmp114, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2154(line=86, offs=15) -- 2170(line=86, offs=31)
-*/
-ATSINSmove(tmp113, loop_55(arg0, tmp114)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2150(line=86, offs=11) -- 2170(line=86, offs=31)
-*/
-ATSINSmove(tmpret103, atspre_g0int_add_int(ATSPMVi0nt(1), tmp113)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2202(line=88, offs=19) -- 2209(line=88, offs=26)
-*/
-ATSINSmove(tmp115, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2194(line=88, offs=11) -- 2210(line=88, offs=27)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, arg0) ;
-ATSINSmove_tlcal(apy1, tmp115) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_55) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret103) ;
-} /* end of [loop_55] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$35$4(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret59__4, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp60__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(tmp60__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(tmpret59__4, atspre_g1int_gte_int(arg0, tmp60__4)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret59__4) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__35__4] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$7$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__7__9(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret9__9, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp10__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(tmp10__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(tmpret9__9, atspre_g0int_eq_int(arg0, tmp10__9)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret9__9) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__9] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2270(line=94, offs=4) -- 2818(line=114, offs=10)
-*/
-/*
-local: is_prime_16$0(level=0)
-global: witness_12$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), totient_58$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-totient_58(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret116, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2270(line=94, offs=4) -- 2818(line=114, offs=10)
-*/
-ATSINSflab(__patsflab_totient_58):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2303(line=95, offs=3) -- 2818(line=114, offs=10)
-*/
-ATScaseof_beg()
-/*
-** ibranchlst-beg
-*/
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2320(line=96, offs=7) -- 2321(line=96, offs=8)
-*/
-ATSINSlab(__atstmplab6):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2278(line=94, offs=12) -- 2279(line=94, 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: 2321(line=96, offs=8) -- 2321(line=96, 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: 2325(line=96, offs=12) -- 2326(line=96, offs=13)
-*/
-ATSINSmove(tmpret116, ATSPMVi0nt(1)) ;
-ATSbranch_end()
-
-ATSbranch_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2334(line=97, offs=8) -- 2334(line=97, 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: 2360(line=99, offs=9) -- 2808(line=113, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2786(line=112, offs=11) -- 2796(line=112, offs=21)
-*/
-ATSINSmove(tmpret116, loop_59(ATSPMVi0nt(1), arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2360(line=99, offs=9) -- 2808(line=113, offs=12)
-*/
-/*
-INSletpop()
-*/
-ATSbranch_end()
-
-/*
-** ibranchlst-end
-*/
-ATScaseof_end()
-
-ATSfunbody_end()
-ATSreturn(tmpret116) ;
-} /* end of [totient_58] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2378(line=100, offs=15) -- 2764(line=110, offs=31)
-*/
-/*
-local: is_prime_16$0(level=0), loop_59$0(level=1)
-global: is_prime_16$0(level=0), loop_59$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-loop_59(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret117, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp118, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp121, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp122, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp123, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp124, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp127, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp132, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp133, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp134, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp135, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp136, 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: 2378(line=100, offs=15) -- 2764(line=110, offs=31)
-*/
-ATSINSflab(__patsflab_loop_59):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2489(line=101, offs=16) -- 2495(line=101, offs=22)
-*/
-ATSINSmove(tmp118, ATSLIB_056_prelude__gte_g1int_int__35__5(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2486(line=101, offs=13) -- 2764(line=110, offs=31)
-*/
-ATSif(
-tmp118
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2518(line=102, offs=18) -- 2528(line=102, offs=28)
-*/
-ATSINSmove(tmp121, is_prime_16(arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2515(line=102, offs=15) -- 2593(line=105, offs=18)
-*/
-ATSif(
-tmp121
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2551(line=103, offs=17) -- 2556(line=103, offs=22)
-*/
-ATSINSmove(tmpret117, atspre_g1int_sub_int(arg1, ATSPMVi0nt(1))) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2592(line=105, offs=17) -- 2593(line=105, offs=18)
-*/
-ATSINSmove(tmpret117, arg1) ;
-} /* ATSendif */
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2628(line=107, offs=18) -- 2662(line=107, offs=52)
-*/
-ATSINSmove(tmp127, atspre_g0int_mod_int(arg1, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2628(line=107, offs=18) -- 2662(line=107, offs=52)
-*/
-ATSINSmove(tmp124, ATSLIB_056_prelude__eq_g0int_int__7__10(tmp127, ATSPMVi0nt(0))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2628(line=107, offs=18) -- 2662(line=107, offs=52)
-*/
-ATSif(
-tmp124
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2628(line=107, offs=18) -- 2662(line=107, offs=52)
-*/
-ATSINSmove(tmp123, is_prime_16(arg0)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2628(line=107, offs=18) -- 2662(line=107, offs=52)
-*/
-ATSINSmove(tmp123, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2628(line=107, offs=18) -- 2662(line=107, offs=52)
-*/
-ATSif(
-tmp123
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2628(line=107, offs=18) -- 2662(line=107, offs=52)
-*/
-ATSINSmove(tmp122, ATSLIB_056_prelude__neq_g1int_int__63__1(arg0, arg1)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2628(line=107, offs=18) -- 2662(line=107, offs=52)
-*/
-ATSINSmove(tmp122, ATSPMVbool_false()) ;
-} /* ATSendif */
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2625(line=107, offs=15) -- 2764(line=110, offs=31)
-*/
-ATSif(
-tmp122
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2690(line=108, offs=23) -- 2695(line=108, offs=28)
-*/
-ATSINSmove(tmp134, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2685(line=108, offs=18) -- 2699(line=108, offs=32)
-*/
-ATSINSmove(tmp133, loop_59(tmp134, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2685(line=108, offs=18) -- 2703(line=108, offs=36)
-*/
-ATSINSmove(tmp132, atspre_g0int_div_int(tmp133, arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2708(line=108, offs=41) -- 2713(line=108, offs=46)
-*/
-ATSINSmove(tmp135, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2684(line=108, offs=17) -- 2714(line=108, offs=47)
-*/
-ATSINSmove(tmpret117, atspre_g0int_mul_int(tmp132, tmp135)) ;
-
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2755(line=110, offs=22) -- 2760(line=110, offs=27)
-*/
-ATSINSmove(tmp136, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2750(line=110, offs=17) -- 2764(line=110, offs=31)
-*/
-ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp136) ;
-ATSINSmove_tlcal(apy1, arg1) ;
-ATSINSargmove_tlcal(arg0, apy0) ;
-ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_loop_59) ;
-ATStailcal_end()
-
-} /* ATSendif */
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret117) ;
-/*
-emit_funent_fnxbodylst:
-*/
-} /* end of [loop_59] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
-*/
-/*
-local: 
-global: gte_g1int_int$35$5(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4706)
-tmparg = S2Evar(tk(4706))
-tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gte_g1int_int__35__5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret59__5, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp60__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(tmp60__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(tmpret59__5, atspre_g1int_gte_int(arg0, tmp60__5)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret59__5) ;
-} /* end of [ATSLIB_056_prelude__gte_g1int_int__35__5] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
-*/
-/*
-local: 
-global: eq_g0int_int$7$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__7__10(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret9__10, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp10__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(tmp10__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(tmpret9__10, atspre_g0int_eq_int(arg0, tmp10__10)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret9__10) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__10] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12916(line=672, offs=3) -- 12956(line=672, offs=43)
-*/
-/*
-local: 
-global: neq_g1int_int$63$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = tk(4712)
-tmparg = S2Evar(tk(4712))
-tmpsub = None()
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__63(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret128, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp129, 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(tmp129, 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(tmpret128, PMVtmpltcst(g1int_neq<S2Evar(tk(4712))>)(arg0, tmp129)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret128) ;
-} /* end of [ATSLIB_056_prelude__neq_g1int_int__63] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12916(line=672, offs=3) -- 12956(line=672, offs=43)
-*/
-/*
-local: 
-global: neq_g1int_int$63$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4712)
-tmparg = S2Evar(tk(4712))
-tmpsub = Some(tk(4712) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__neq_g1int_int__63__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret128__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp129__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(tmp129__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(tmpret128__1, atspre_g1int_neq_int(arg0, tmp129__1)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret128__1) ;
-} /* end of [ATSLIB_056_prelude__neq_g1int_int__63__1] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2871(line=117, offs=5) -- 3259(line=131, offs=6)
-*/
-/*
-local: witness_12$0(level=0), totient_58$0(level=0)
-global: witness_12$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), totient_58$0(level=0), totient_sum_66$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-totient_sum_66(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret137, atstkind_type(atstype_ptrk)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2871(line=117, offs=5) -- 3259(line=131, offs=6)
-*/
-ATSINSflab(__patsflab_totient_sum_66):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2911(line=118, offs=3) -- 3259(line=131, offs=6)
-*/
-/*
-letpush(beg)
-*/
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3243(line=130, offs=5) -- 3253(line=130, offs=15)
-*/
-ATSINSmove(tmpret137, loop_67(ATSPMVi0nt(1), arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2911(line=118, offs=3) -- 3259(line=131, offs=6)
-*/
-/*
-INSletpop()
-*/
-ATSfunbody_end()
-ATSreturn(tmpret137) ;
-} /* end of [totient_sum_66] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2923(line=119, offs=9) -- 3233(line=128, offs=40)
-*/
-/*
-local: witness_12$0(level=0), totient_58$0(level=0), loop_67$0(level=1)
-global: witness_12$0(level=0), totient_58$0(level=0), loop_67$0(level=1)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_type(atstype_ptrk)
-loop_67(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret138, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp139, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp142, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp143, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp148, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp149, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp158, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp159, 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: 2923(line=119, offs=9) -- 3233(line=128, offs=40)
-*/
-ATSINSflab(__patsflab_loop_67):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3026(line=120, offs=10) -- 3035(line=120, offs=19)
-*/
-ATSINSmove(tmp139, ATSLIB_056_prelude__lt_g1int_int__18__2(arg0, arg1)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3023(line=120, offs=7) -- 3233(line=128, offs=40)
-*/
-ATSif(
-tmp139
-) ATSthen() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3049(line=121, offs=9) -- 3182(line=126, offs=12)
-*/
-/*
-letpush(beg)
-*/
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3076(line=122, offs=24) -- 3081(line=122, offs=29)
-*/
-ATSINSmove(tmp143, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3071(line=122, offs=19) -- 3089(line=122, offs=37)
-*/
-ATSINSmove(tmp142, loop_67(tmp143, arg1)) ;
-
-/*
-letpush(end)
-*/
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3135(line=123, offs=46) -- 3144(line=123, offs=55)
-*/
-ATSINSmove(tmp149, totient_58(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3127(line=123, offs=38) -- 3146(line=123, offs=57)
-*/
-ATSINSmove(tmp148, witness_12(tmp149)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3108(line=123, offs=19) -- 3147(line=123, offs=58)
-*/
-ATSINSmove(tmpret138, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69__1(tmp142, tmp148)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3049(line=121, offs=9) -- 3182(line=126, offs=12)
-*/
-/*
-INSletpop()
-*/
-} ATSelse() {
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3202(line=128, offs=9) -- 3233(line=128, offs=40)
-*/
-ATSINSmove(tmp159, totient_58(arg0)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3202(line=128, offs=9) -- 3233(line=128, offs=40)
-*/
-ATSINSmove(tmp158, witness_12(tmp159)) ;
-
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3202(line=128, offs=9) -- 3233(line=128, offs=40)
-*/
-ATSINSmove(tmpret138, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71__1(tmp158)) ;
-
-} /* ATSendif */
-ATSfunbody_end()
-ATSreturn(tmpret138) ;
-/*
-emit_funent_fnxbodylst:
-*/
-} /* end of [loop_67] */
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
-*/
-/*
-local: 
-global: lt_g1int_int$18$2(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = tk(4697)
-tmparg = S2Evar(tk(4697))
-tmpsub = Some(tk(4697) -> S2Eextkind(atstype_int))
-*/
-atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__lt_g1int_int__18__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret24__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp25__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(tmp25__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(tmpret24__2, atspre_g1int_lt_int(arg0, tmp25__2)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret24__2) ;
-} /* end of [ATSLIB_056_prelude__lt_g1int_int__18__2] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5151(line=274, offs=3) -- 5217(line=279, offs=2)
-*/
-/*
-local: 
-global: add_intinf0_int$69$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret144, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp145) ;
-/* 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(tmp145, 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(tmpret144, 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(tmpret144) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5151(line=274, offs=3) -- 5217(line=279, offs=2)
-*/
-/*
-local: 
-global: add_intinf0_int$69$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69__1(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret144__1, atstkind_type(atstype_ptrk)) ;
-// ATStmpdec_void(tmp145__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(tmp145__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(tmpret144__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(tmpret144__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69__1] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$71$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = 
-tmparg = 
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret150, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp151, 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: 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(tmp151, 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(tmp152, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp151, 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(tmpret150, tmp151) ;
-/*
-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(tmpret150) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
-*/
-/*
-local: 
-global: intinf_make_int$71$1(level=2)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = 
-tmparg = 
-tmpsub = Some()
-*/
-atstkind_type(atstype_ptrk)
-ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71__1(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret150__1, atstkind_type(atstype_ptrk)) ;
-ATStmpdec(tmp151__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: 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(tmp151__1, ATSLIB_056_prelude__ptr_alloc__73__1()) ;
-
-/*
-emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
-*/
-ATSINSmove_void(tmp152__1, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp151__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(tmpret150__1, tmp151__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(tmpret150__1) ;
-} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71__1] */
-
-#if(0)
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$73$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-/*
-imparg = a(4806)
-tmparg = S2Evar(a(4806))
-tmpsub = None()
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__73()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret156, 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(tmpret156, atspre_ptr_alloc_tsz(ATSPMVsizeof(atstyvar_type(a)))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret156) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__73] */
-#endif // end of [TEMPLATE]
-
-/*
-/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
-*/
-/*
-local: 
-global: ptr_alloc$73$1(level=3)
-local: 
-global: 
-*/
-ATSstatic()
-/*
-imparg = a(4806)
-tmparg = S2Evar(a(4806))
-tmpsub = Some(a(4806) -> S2Ecst(mpz_vt0ype))
-*/
-atstkind_type(atstype_ptrk)
-ATSLIB_056_prelude__ptr_alloc__73__1()
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret156__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(tmpret156__1, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret156__1) ;
-} /* end of [ATSLIB_056_prelude__ptr_alloc__73__1] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 491(line=26, offs=28) -- 513(line=27, offs=17)
-*/
-/*
-local: sum_divisors_48$0(level=0)
-global: sum_divisors_48$0(level=0), sum_divisors_ats$75$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-sum_divisors_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret160, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 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(tmpret160, sum_divisors_48(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret160) ;
-} /* end of [sum_divisors_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 545(line=29, offs=30) -- 569(line=30, offs=19)
-*/
-/*
-local: count_divisors_43$0(level=0)
-global: count_divisors_43$0(level=0), count_divisors_ats$76$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-count_divisors_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret161, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 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(tmpret161, count_divisors_43(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret161) ;
-} /* end of [count_divisors_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 594(line=32, offs=23) -- 611(line=33, offs=12)
-*/
-/*
-local: totient_58$0(level=0)
-global: witness_12$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), totient_58$0(level=0), totient_ats$77$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-totient_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret162, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 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(tmpret162, totient_58(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret162) ;
-} /* end of [totient_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 641(line=35, offs=28) -- 663(line=36, offs=17)
-*/
-/*
-local: little_omega_54$0(level=0)
-global: witness_12$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), little_omega_54$0(level=0), little_omega_ats$78$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_int)
-little_omega_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret163, 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(tmpret163, little_omega_54(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret163) ;
-} /* end of [little_omega_ats] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 691(line=38, offs=26) -- 711(line=39, offs=15)
-*/
-/*
-local: is_perfect_52$0(level=0)
-global: sum_divisors_48$0(level=0), is_perfect_52$0(level=0), is_perfect_ats$79$0(level=0)
-local: 
-global: 
-*/
-ATSextern()
-atstkind_t0ype(atstype_bool)
-is_perfect_ats(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret164, 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(tmpret164, is_perfect_52(arg0)) ;
-
-ATSfunbody_end()
-ATSreturn(tmpret164) ;
+** The starting compilation time is: 2018-1-9: 15h:48m
+**
+*/
+
+/*
+** include runtime header files
+*/
+#ifndef _ATS_CCOMP_HEADER_NONE_
+#include "pats_ccomp_config.h"
+#include "pats_ccomp_basics.h"
+#include "pats_ccomp_typedefs.h"
+#include "pats_ccomp_instrset.h"
+#include "pats_ccomp_memalloc.h"
+#ifndef _ATS_CCOMP_EXCEPTION_NONE_
+#include "pats_ccomp_memalloca.h"
+#include "pats_ccomp_exception.h"
+#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
+#endif /* _ATS_CCOMP_HEADER_NONE_ */
+
+
+/*
+** include prelude cats files
+*/
+#ifndef _ATS_CCOMP_PRELUDE_NONE_
+//
+#include "prelude/CATS/basics.cats"
+#include "prelude/CATS/integer.cats"
+#include "prelude/CATS/pointer.cats"
+#include "prelude/CATS/integer_long.cats"
+#include "prelude/CATS/integer_size.cats"
+#include "prelude/CATS/integer_short.cats"
+#include "prelude/CATS/bool.cats"
+#include "prelude/CATS/char.cats"
+#include "prelude/CATS/float.cats"
+#include "prelude/CATS/integer_ptr.cats"
+#include "prelude/CATS/integer_fixed.cats"
+#include "prelude/CATS/memory.cats"
+#include "prelude/CATS/string.cats"
+#include "prelude/CATS/strptr.cats"
+//
+#include "prelude/CATS/fprintf.cats"
+//
+#include "prelude/CATS/filebas.cats"
+//
+#include "prelude/CATS/list.cats"
+#include "prelude/CATS/option.cats"
+#include "prelude/CATS/array.cats"
+#include "prelude/CATS/arrayptr.cats"
+#include "prelude/CATS/arrayref.cats"
+#include "prelude/CATS/matrix.cats"
+#include "prelude/CATS/matrixptr.cats"
+//
+#endif /* _ATS_CCOMP_PRELUDE_NONE_ */
+/*
+** for user-supplied prelude
+*/
+#ifdef _ATS_CCOMP_PRELUDE_USER_
+//
+#include _ATS_CCOMP_PRELUDE_USER_
+//
+#endif /* _ATS_CCOMP_PRELUDE_USER_ */
+/*
+** for user2-supplied prelude
+*/
+#ifdef _ATS_CCOMP_PRELUDE_USER2_
+//
+#include _ATS_CCOMP_PRELUDE_USER2_
+//
+#endif /* _ATS_CCOMP_PRELUDE_USER2_ */
+
+/*
+staload-prologues(beg)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/basics.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 1533(line=44, offs=1) -- 1572(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_long.dats: 1602(line=49, offs=1) -- 1641(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_size.dats: 1597(line=49, offs=1) -- 1636(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_short.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/char.dats: 1610(line=48, offs=1) -- 1649(line=48, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/float.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/string.dats: 1631(line=50, offs=1) -- 1670(line=50, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1629(line=50, offs=1) -- 1668(line=50, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1691(line=54, offs=1) -- 1738(line=54, offs=48)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_ptr.dats: 1601(line=49, offs=1) -- 1640(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_fixed.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/memory.dats: 1410(line=38, offs=1) -- 1449(line=39, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1613(line=49, offs=1) -- 1652(line=50, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1675(line=54, offs=1) -- 1721(line=55, offs=39)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1744(line=59, offs=1) -- 1789(line=60, offs=38)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/stdio.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1871(line=66, offs=1) -- 1918(line=66, offs=48)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1390(line=36, offs=1) -- 1440(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/stat.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1756(line=58, offs=1) -- 1805(line=60, offs=34)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 15552(line=879, offs=1) -- 15589(line=880, offs=30)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/stdio.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1529(line=44, offs=1) -- 1568(line=45, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1569(line=46, offs=1) -- 1615(line=47, offs=39)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1538(line=44, offs=1) -- 1577(line=45, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1578(line=46, offs=1) -- 1624(line=47, offs=39)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_mergesort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_quicksort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1534(line=44, offs=1) -- 1573(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1574(line=45, offs=1) -- 1616(line=45, offs=43)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_bsearch.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_quicksort.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayptr.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayref.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrix.dats: 1535(line=44, offs=1) -- 1574(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixptr.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixref.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream_vt.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/tostring.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/checkast.dats: 1531(line=44, offs=1) -- 1570(line=45, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/mydepies.hats: 192(line=16, offs=1) -- 232(line=16, offs=41)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1233(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-libgmp/CATS/gmp.cats"
+//
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/math.sats: 1380(line=35, offs=1) -- 1426(line=38, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/math.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/mydepies.hats: 192(line=16, offs=1) -- 232(line=16, offs=41)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1233(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-libgmp/CATS/gmp.cats"
+//
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+staload-prologues(end)
+*/
+/*
+typedefs-for-tyrecs-and-tysums(beg)
+*/
+typedef
+ATSstruct {
+#if(0)
+int contag ;
+#endif
+atstkind_t0ype(atstype_int) atslab__0 ;
+atstkind_type(atstype_ptrk) atslab__1 ;
+} postiats_tysum_0 ;
+/*
+typedefs-for-tyrecs-and-tysums(end)
+*/
+/*
+dynconlst-declaration(beg)
+*/
+/*
+dynconlst-declaration(end)
+*/
+/*
+dyncstlst-declaration(beg)
+*/
+ATSdyncst_mac(atspre_g1int2int_int_int)
+ATSdyncst_mac(atspre_g1int_gt_int)
+ATSdyncst_mac(atspre_g1int_half_int)
+ATSdyncst_mac(atspre_g0int_mod_int)
+ATSdyncst_mac(atspre_g0int2int_int_int)
+ATSdyncst_mac(atspre_g0int_eq_int)
+ATSdyncst_mac(atspre_g0int_mul_int)
+ATSdyncst_mac(atspre_g0float2int_float_int)
+ATSdyncst_mac(atslib_libats_libc_sqrt_float)
+ATSdyncst_mac(atspre_g0int2float_int_float)
+ATSdyncst_mac(atspre_g1int_lt_int)
+ATSdyncst_mac(atspre_g1int_add_int)
+ATSdyncst_mac(atspre_g1int_eq_int)
+ATSdyncst_mac(atspre_g0int_div_int)
+ATSdyncst_mac(atspre_g1int_gte_int)
+ATSdyncst_mac(atspre_g0int_add_int)
+ATSdyncst_mac(atspre_g1int_sub_int)
+ATSdyncst_mac(atspre_g1int_neq_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_add2_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_init_set_int)
+ATSdyncst_mac(atspre_ptr_alloc_tsz)
+/*
+dyncstlst-declaration(end)
+*/
+/*
+dynvalist-implementation(beg)
+*/
+/*
+dynvalist-implementation(end)
+*/
+/*
+exnconlst-declaration(beg)
+*/
+#ifndef _ATS_CCOMP_EXCEPTION_NONE_
+ATSextern()
+atsvoid_t0ype
+the_atsexncon_initize
+(
+  atstype_exnconptr d2c, atstype_string exnmsg
+) ;
+#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
+/*
+exnconlst-declaration(end)
+*/
+/*
+extypelst-declaration(beg)
+*/
+/*
+extypelst-declaration(end)
+*/
+/*
+assumelst-declaration(beg)
+*/
+#ifndef _ATS_CCOMP_ASSUME_CHECK_NONE_
+#endif // #ifndef(_ATS_CCOMP_ASSUME_CHECK_NONE_)
+/*
+assumelst-declaration(end)
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+witness_0(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+exp_1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__2(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__2__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+sqrt_int_13(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+is_prime_16(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+loop_17(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__18(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__18__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__23(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__23__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+divides_27(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+gcd_29(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__2__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+lcm_31(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+divisors_33(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_34(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__35(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__35__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_38(atstkind_t0ype(atstype_int), atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_39(atstype_bool) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_41(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_42(atstype_bool) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+count_divisors_43(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_44(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__35__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__6(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+sum_divisors_48(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_49(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__35__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__7(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+is_perfect_52(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__8(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+little_omega_54(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_55(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__35__4(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__9(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+totient_58(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_59(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__35__5(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__10(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g1int_int__63(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g1int_int__63__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+totient_sum_66(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_67(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__18__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69__1(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71__1(atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__73() ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__73__1() ;
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+sum_divisors_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+count_divisors_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+totient_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+little_omega_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+is_perfect_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+ATSclosurerize_beg(__patsfun_38, (atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+atstkind_t0ype(atstype_int) env0 ;
+} __patsfun_38__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_38__cfun
+(
+__patsfun_38__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_38(p_cenv->env0, arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_38__closureinit
+(
+__patsfun_38__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0
+)
+{
+p_cenv->env0 = env0 ;
+p_cenv->cfun = __patsfun_38__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_38__closurerize
+(
+atstkind_t0ype(atstype_int) env0
+)
+{
+return __patsfun_38__closureinit(ATS_MALLOC(sizeof(__patsfun_38__closure_t0ype)), env0) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_39, (), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+} __patsfun_39__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_39__cfun
+(
+__patsfun_39__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_39(arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_39__closureinit
+(
+__patsfun_39__closure_t0ype *p_cenv
+)
+{
+p_cenv->cfun = __patsfun_39__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_39__closurerize
+(
+// argumentless
+)
+{
+return __patsfun_39__closureinit(ATS_MALLOC(sizeof(__patsfun_39__closure_t0ype))) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_41, (atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+atstkind_t0ype(atstype_int) env0 ;
+atstkind_t0ype(atstype_int) env1 ;
+} __patsfun_41__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_41__cfun
+(
+__patsfun_41__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_41(p_cenv->env0, p_cenv->env1, arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_41__closureinit
+(
+__patsfun_41__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1
+)
+{
+p_cenv->env0 = env0 ;
+p_cenv->env1 = env1 ;
+p_cenv->cfun = __patsfun_41__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_41__closurerize
+(
+atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1
+)
+{
+return __patsfun_41__closureinit(ATS_MALLOC(sizeof(__patsfun_41__closure_t0ype)), env0, env1) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_42, (), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+} __patsfun_42__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_42__cfun
+(
+__patsfun_42__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_42(arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_42__closureinit
+(
+__patsfun_42__closure_t0ype *p_cenv
+)
+{
+p_cenv->cfun = __patsfun_42__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_42__closurerize
+(
+// argumentless
+)
+{
+return __patsfun_42__closureinit(ATS_MALLOC(sizeof(__patsfun_42__closure_t0ype))) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 256(line=10, offs=4) -- 311(line=11, offs=14)
+*/
+/*
+local: 
+global: witness_0$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+witness_0(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret0, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 256(line=10, offs=4) -- 311(line=11, offs=14)
+*/
+ATSINSflab(__patsflab_witness_0):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 300(line=11, offs=3) -- 310(line=11, offs=13)
+*/
+ATSINSmove(tmpret0, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), arg0)) ;
+ATSfunbody_end()
+ATSreturn(tmpret0) ;
+} /* end of [witness_0] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 389(line=14, offs=5) -- 826(line=35, offs=10)
+*/
+/*
+local: exp_1$0(level=0)
+global: exp_1$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+exp_1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpref7, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref8, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp9, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp14, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp15, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 389(line=14, offs=5) -- 826(line=35, offs=10)
+*/
+ATSINSflab(__patsflab_exp_1):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 441(line=15, offs=3) -- 826(line=35, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 458(line=16, offs=7) -- 459(line=16, offs=8)
+*/
+ATSINSlab(__atstmplab0):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 410(line=14, offs=26) -- 411(line=14, offs=27)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 459(line=16, offs=8) -- 459(line=16, offs=8)
+*/
+ATSINSlab(__atstmplab1):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 463(line=16, offs=12) -- 464(line=16, offs=13)
+*/
+ATSINSmove(tmpret1, ATSPMVi0nt(0)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 472(line=17, offs=8) -- 472(line=17, offs=8)
+*/
+ATSINSlab(__atstmplab2):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 501(line=19, offs=12) -- 506(line=19, offs=17)
+*/
+ATSINSmove(tmp2, ATSLIB_056_prelude__gt_g1int_int__2__1(arg1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 498(line=19, offs=9) -- 816(line=34, offs=12)
+*/
+ATSif(
+tmp2
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 522(line=20, offs=11) -- 791(line=32, offs=14)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 542(line=21, offs=17) -- 544(line=21, offs=19)
+*/
+/*
+ATSINStmpdec(tmpref7) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 547(line=21, offs=22) -- 553(line=21, offs=28)
+*/
+ATSINSmove(tmpref7, atspre_g1int_half_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 571(line=22, offs=17) -- 573(line=22, offs=19)
+*/
+/*
+ATSINStmpdec(tmpref8) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 576(line=22, offs=22) -- 581(line=22, offs=27)
+*/
+ATSINSmove(tmpref8, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 610(line=24, offs=16) -- 616(line=24, offs=22)
+*/
+ATSINSmove(tmp9, ATSLIB_056_prelude__eq_g0int_int__8__1(tmpref8, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 607(line=24, offs=13) -- 777(line=31, offs=18)
+*/
+ATSif(
+tmp9
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 640(line=25, offs=19) -- 645(line=25, offs=24)
+*/
+ATSINSmove(tmp14, atspre_g0int_mul_int(arg0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 636(line=25, offs=15) -- 650(line=25, offs=29)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp14) ;
+ATSINSmove_tlcal(apy1, tmpref7) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_exp_1) ;
+ATStailcal_end()
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 682(line=27, offs=15) -- 777(line=31, offs=18)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 714(line=28, offs=29) -- 719(line=28, offs=34)
+*/
+ATSINSmove(tmp15, atspre_g0int_mul_int(arg0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 710(line=28, offs=25) -- 724(line=28, offs=39)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp15) ;
+ATSINSmove_tlcal(apy1, tmpref7) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_exp_1) ;
+ATStailcal_end()
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 682(line=27, offs=15) -- 777(line=31, offs=18)
+*/
+/*
+INSletpop()
+*/
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 522(line=20, offs=11) -- 791(line=32, offs=14)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 815(line=34, offs=11) -- 816(line=34, offs=12)
+*/
+ATSINSmove(tmpret1, ATSPMVi0nt(1)) ;
+} /* ATSendif */
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret1) ;
+} /* end of [exp_1] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$2$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4703)
+tmparg = S2Evar(tk(4703))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__2(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp4, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12664(line=658, offs=1) -- 12718(line=659, offs=42)
+*/
+ATSINSflab(__patsflab_gt_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp4, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4703))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret3, PMVtmpltcst(g1int_gt<S2Evar(tk(4703))>)(arg0, tmp4)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret3) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__2] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$2$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4703)
+tmparg = S2Evar(tk(4703))
+tmpsub = Some(tk(4703) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__2__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret3__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp4__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12664(line=658, offs=1) -- 12718(line=659, offs=42)
+*/
+ATSINSflab(__patsflab_gt_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp4__1, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret3__1, atspre_g1int_gt_int(arg0, tmp4__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret3__1) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__2__1] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$8$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4694)
+tmparg = S2Evar(tk(4694))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret10, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp11, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
+*/
+ATSINSflab(__patsflab_eq_g0int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp11, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4694))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret10, PMVtmpltcst(g0int_eq<S2Evar(tk(4694))>)(arg0, tmp11)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret10) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__8] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$8$1(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4694)
+tmparg = S2Evar(tk(4694))
+tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret10__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp11__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
+*/
+ATSINSflab(__patsflab_eq_g0int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp11__1, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret10__1, atspre_g0int_eq_int(arg0, tmp11__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret10__1) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__1] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 831(line=37, offs=4) -- 975(line=42, offs=6)
+*/
+/*
+local: witness_0$0(level=0)
+global: witness_0$0(level=0), sqrt_int_13$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+sqrt_int_13(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret16, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref17, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp18, atstkind_t0ype(atstype_float)) ;
+ATStmpdec(tmp19, atstkind_t0ype(atstype_float)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 831(line=37, offs=4) -- 975(line=42, offs=6)
+*/
+ATSINSflab(__patsflab_sqrt_int_13):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 881(line=38, offs=3) -- 975(line=42, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 893(line=39, offs=9) -- 898(line=39, offs=14)
+*/
+/*
+ATSINStmpdec(tmpref17) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 929(line=39, offs=45) -- 942(line=39, offs=58)
+*/
+ATSINSmove(tmp19, atspre_g0int2float_int_float(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 918(line=39, offs=34) -- 944(line=39, offs=60)
+*/
+ATSINSmove(tmp18, atslib_libats_libc_sqrt_float(tmp19)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 906(line=39, offs=22) -- 945(line=39, offs=61)
+*/
+ATSINSmove(tmpref17, atspre_g0float2int_float_int(tmp18)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 955(line=41, offs=5) -- 968(line=41, offs=18)
+*/
+ATSINSmove(tmpret16, witness_0(tmpref17)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 881(line=38, offs=3) -- 975(line=42, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret16) ;
+} /* end of [sqrt_int_13] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1011(line=45, offs=4) -- 1596(line=68, offs=10)
+*/
+/*
+local: sqrt_int_13$0(level=0)
+global: witness_0$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+is_prime_16(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret20, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp41, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1011(line=45, offs=4) -- 1596(line=68, offs=10)
+*/
+ATSINSflab(__patsflab_is_prime_16):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1047(line=46, offs=3) -- 1596(line=68, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1064(line=47, offs=7) -- 1065(line=47, offs=8)
+*/
+ATSINSlab(__atstmplab3):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1020(line=45, offs=13) -- 1021(line=45, offs=14)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab5) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1065(line=47, offs=8) -- 1065(line=47, offs=8)
+*/
+ATSINSlab(__atstmplab4):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1069(line=47, offs=12) -- 1074(line=47, offs=17)
+*/
+ATSINSmove(tmpret20, ATSPMVbool_false()) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1082(line=48, offs=8) -- 1082(line=48, offs=8)
+*/
+ATSINSlab(__atstmplab5):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1107(line=50, offs=9) -- 1586(line=67, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1562(line=66, offs=19) -- 1572(line=66, offs=29)
+*/
+ATSINSmove(tmp41, sqrt_int_13(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1554(line=66, offs=11) -- 1574(line=66, offs=31)
+*/
+ATSINSmove(tmpret20, loop_17(arg0, ATSPMVi0nt(2), tmp41)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1107(line=50, offs=9) -- 1586(line=67, offs=12)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret20) ;
+} /* end of [is_prime_16] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1125(line=51, offs=15) -- 1532(line=64, offs=21)
+*/
+/*
+local: loop_17$0(level=1)
+global: loop_17$0(level=1)
+local: k$5102(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: k$5102(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+loop_17(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret21, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp22, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp27, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp30, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp31, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp32, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp37, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp40, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+/*
+emit_funent_fnxdeclst:
+*/
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1125(line=51, offs=15) -- 1532(line=64, offs=21)
+*/
+ATSINSflab(__patsflab_loop_17):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1219(line=52, offs=16) -- 1228(line=52, offs=25)
+*/
+ATSINSmove(tmp22, ATSLIB_056_prelude__lt_g1int_int__18__1(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1216(line=52, offs=13) -- 1532(line=64, offs=21)
+*/
+ATSif(
+tmp22
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1251(line=53, offs=18) -- 1256(line=53, offs=23)
+*/
+ATSINSmove(tmp30, atspre_g0int_mod_int(env0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1251(line=53, offs=18) -- 1260(line=53, offs=27)
+*/
+ATSINSmove(tmp27, ATSLIB_056_prelude__eq_g0int_int__8__2(tmp30, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1248(line=53, offs=15) -- 1341(line=56, offs=35)
+*/
+ATSif(
+tmp27
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1282(line=54, offs=17) -- 1287(line=54, offs=22)
+*/
+ATSINSmove(tmpret21, ATSPMVbool_false()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1328(line=56, offs=22) -- 1333(line=56, offs=27)
+*/
+ATSINSmove(tmp31, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1323(line=56, offs=17) -- 1341(line=56, offs=35)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp31) ;
+ATSINSmove_tlcal(apy1, arg1) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_17) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1376(line=58, offs=18) -- 1385(line=58, offs=27)
+*/
+ATSINSmove(tmp32, ATSLIB_056_prelude__eq_g1int_int__23__1(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1373(line=58, offs=15) -- 1532(line=64, offs=21)
+*/
+ATSif(
+tmp32
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1410(line=59, offs=20) -- 1415(line=59, offs=25)
+*/
+ATSINSmove(tmp40, atspre_g0int_mod_int(env0, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1410(line=59, offs=20) -- 1419(line=59, offs=29)
+*/
+ATSINSmove(tmp37, ATSLIB_056_prelude__eq_g0int_int__8__3(tmp40, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1407(line=59, offs=17) -- 1492(line=62, offs=23)
+*/
+ATSif(
+tmp37
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1443(line=60, offs=19) -- 1448(line=60, offs=24)
+*/
+ATSINSmove(tmpret21, ATSPMVbool_false()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1488(line=62, offs=19) -- 1492(line=62, offs=23)
+*/
+ATSINSmove(tmpret21, ATSPMVbool_true()) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1528(line=64, offs=17) -- 1532(line=64, offs=21)
+*/
+ATSINSmove(tmpret21, ATSPMVbool_true()) ;
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret21) ;
+/*
+emit_funent_fnxbodylst:
+*/
+} /* end of [loop_17] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
+*/
+/*
+local: 
+global: lt_g1int_int$18$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4697)
+tmparg = S2Evar(tk(4697))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__18(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret23, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp24, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12505(line=649, offs=1) -- 12559(line=650, offs=42)
+*/
+ATSINSflab(__patsflab_lt_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
+*/
+ATSINSmove(tmp24, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4697))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
+*/
+ATSINSmove(tmpret23, PMVtmpltcst(g1int_lt<S2Evar(tk(4697))>)(arg0, tmp24)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret23) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__18] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
+*/
+/*
+local: 
+global: lt_g1int_int$18$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4697)
+tmparg = S2Evar(tk(4697))
+tmpsub = Some(tk(4697) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__18__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret23__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp24__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12505(line=649, offs=1) -- 12559(line=650, offs=42)
+*/
+ATSINSflab(__patsflab_lt_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
+*/
+ATSINSmove(tmp24__1, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
+*/
+ATSINSmove(tmpret23__1, atspre_g1int_lt_int(arg0, tmp24__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret23__1) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__18__1] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$8$2(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4694)
+tmparg = S2Evar(tk(4694))
+tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret10__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp11__2, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
+*/
+ATSINSflab(__patsflab_eq_g0int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp11__2, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret10__2, atspre_g0int_eq_int(arg0, tmp11__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret10__2) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__2] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
+*/
+/*
+local: 
+global: eq_g1int_int$23$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4709)
+tmparg = S2Evar(tk(4709))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__23(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret33, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp34, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12823(line=667, offs=1) -- 12877(line=668, offs=42)
+*/
+ATSINSflab(__patsflab_eq_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
+*/
+ATSINSmove(tmp34, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4709))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
+*/
+ATSINSmove(tmpret33, PMVtmpltcst(g1int_eq<S2Evar(tk(4709))>)(arg0, tmp34)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret33) ;
+} /* end of [ATSLIB_056_prelude__eq_g1int_int__23] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12838(line=668, offs=3) -- 12877(line=668, offs=42)
+*/
+/*
+local: 
+global: eq_g1int_int$23$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4709)
+tmparg = S2Evar(tk(4709))
+tmpsub = Some(tk(4709) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g1int_int__23__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret33__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp34__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12823(line=667, offs=1) -- 12877(line=668, offs=42)
+*/
+ATSINSflab(__patsflab_eq_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
+*/
+ATSINSmove(tmp34__1, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
+*/
+ATSINSmove(tmpret33__1, atspre_g1int_eq_int(arg0, tmp34__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret33__1) ;
+} /* end of [ATSLIB_056_prelude__eq_g1int_int__23__1] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$8$3(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4694)
+tmparg = S2Evar(tk(4694))
+tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret10__3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp11__3, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
+*/
+ATSINSflab(__patsflab_eq_g0int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp11__3, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret10__3, atspre_g0int_eq_int(arg0, tmp11__3)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret10__3) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__3] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 519(line=20, offs=4) -- 567(line=21, offs=12)
+*/
+/*
+local: 
+global: divides_27$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+divides_27(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret42, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp45, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 519(line=20, offs=4) -- 567(line=21, offs=12)
+*/
+ATSINSflab(__patsflab_divides_27):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 558(line=21, offs=3) -- 563(line=21, offs=8)
+*/
+ATSINSmove(tmp45, atspre_g0int_mod_int(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 558(line=21, offs=3) -- 567(line=21, offs=12)
+*/
+ATSINSmove(tmpret42, ATSLIB_056_prelude__eq_g0int_int__8__4(tmp45, ATSPMVi0nt(0))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret42) ;
+} /* end of [divides_27] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$8$4(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4694)
+tmparg = S2Evar(tk(4694))
+tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret10__4, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp11__4, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
+*/
+ATSINSflab(__patsflab_eq_g0int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp11__4, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret10__4, atspre_g0int_eq_int(arg0, tmp11__4)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret10__4) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__4] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 573(line=23, offs=5) -- 684(line=27, offs=6)
+*/
+/*
+local: witness_0$0(level=0), gcd_29$0(level=0)
+global: witness_0$0(level=0), gcd_29$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+gcd_29(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret46, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp47, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp50, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp51, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+/*
+emit_funent_fnxdeclst:
+*/
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 573(line=23, offs=5) -- 684(line=27, offs=6)
+*/
+ATSINSflab(__patsflab_gcd_29):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 634(line=24, offs=6) -- 639(line=24, offs=11)
+*/
+ATSINSmove(tmp47, ATSLIB_056_prelude__gt_g1int_int__2__2(arg1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 631(line=24, offs=3) -- 684(line=27, offs=6)
+*/
+ATSif(
+tmp47
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 664(line=25, offs=20) -- 669(line=25, offs=25)
+*/
+ATSINSmove(tmp51, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 656(line=25, offs=12) -- 670(line=25, offs=26)
+*/
+ATSINSmove(tmp50, witness_0(tmp51)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 649(line=25, offs=5) -- 671(line=25, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg1) ;
+ATSINSmove_tlcal(apy1, tmp50) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_gcd_29) ;
+ATStailcal_end()
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 683(line=27, offs=5) -- 684(line=27, offs=6)
+*/
+ATSINSmove(tmpret46, arg0) ;
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret46) ;
+/*
+emit_funent_fnxbodylst:
+*/
+} /* end of [gcd_29] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12679(line=659, offs=3) -- 12718(line=659, offs=42)
+*/
+/*
+local: 
+global: gt_g1int_int$2$2(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4703)
+tmparg = S2Evar(tk(4703))
+tmpsub = Some(tk(4703) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__2__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret3__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp4__2, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12664(line=658, offs=1) -- 12718(line=659, offs=42)
+*/
+ATSINSflab(__patsflab_gt_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
+*/
+ATSINSmove(tmp4__2, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
+*/
+ATSINSmove(tmpret3__2, atspre_g1int_gt_int(arg0, tmp4__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret3__2) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__2__2] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 689(line=29, offs=4) -- 766(line=30, offs=22)
+*/
+/*
+local: gcd_29$0(level=0)
+global: witness_0$0(level=0), gcd_29$0(level=0), lcm_31$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+lcm_31(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret52, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp53, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp54, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 689(line=29, offs=4) -- 766(line=30, offs=22)
+*/
+ATSINSflab(__patsflab_lcm_31):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 752(line=30, offs=8) -- 761(line=30, offs=17)
+*/
+ATSINSmove(tmp54, gcd_29(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 748(line=30, offs=4) -- 761(line=30, offs=17)
+*/
+ATSINSmove(tmp53, atspre_g0int_div_int(arg0, tmp54)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 747(line=30, offs=3) -- 766(line=30, offs=22)
+*/
+ATSINSmove(tmpret52, atspre_g0int_mul_int(tmp53, arg1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret52) ;
+} /* end of [lcm_31] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 809(line=33, offs=4) -- 1217(line=45, offs=6)
+*/
+/*
+local: 
+global: divisors_33$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+divisors_33(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret55, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 809(line=33, offs=4) -- 1217(line=45, offs=6)
+*/
+ATSINSflab(__patsflab_divisors_33):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 856(line=34, offs=3) -- 1217(line=45, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1201(line=44, offs=5) -- 1211(line=44, offs=15)
+*/
+ATSINSmove(tmpret55, loop_34(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 856(line=34, offs=3) -- 1217(line=45, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret55) ;
+} /* end of [divisors_33] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 868(line=35, offs=9) -- 1191(line=42, offs=33)
+*/
+/*
+local: loop_34$0(level=1)
+global: loop_34$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_34(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret56, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp57, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp65, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp68, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 868(line=35, offs=9) -- 1191(line=42, offs=33)
+*/
+ATSINSflab(__patsflab_loop_34):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 977(line=36, offs=10) -- 985(line=36, offs=18)
+*/
+ATSINSmove(tmp57, ATSLIB_056_prelude__gte_g1int_int__35__1(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 974(line=36, offs=7) -- 1191(line=42, offs=33)
+*/
+ATSif(
+tmp57
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 999(line=37, offs=9) -- 1051(line=37, offs=61)
+*/
+ATSINSmove_ldelay(tmpret56, atstype_boxed, ATSPMVcfunlab(1, __patsfun_38, (arg1))) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1074(line=39, offs=12) -- 1081(line=39, offs=19)
+*/
+ATSINSmove(tmp68, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1074(line=39, offs=12) -- 1085(line=39, offs=23)
+*/
+ATSINSmove(tmp65, ATSLIB_056_prelude__eq_g0int_int__8__5(tmp68, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1071(line=39, offs=9) -- 1191(line=42, offs=33)
+*/
+ATSif(
+tmp65
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1101(line=40, offs=11) -- 1145(line=40, offs=55)
+*/
+ATSINSmove_ldelay(tmpret56, atstype_boxed, ATSPMVcfunlab(1, __patsfun_41, (arg0, arg1))) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1169(line=42, offs=11) -- 1191(line=42, offs=33)
+*/
+ATSINSmove_ldelay(tmpret56, atstype_boxed, ATSPMVcfunlab(1, __patsfun_42, ())) ;
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret56) ;
+} /* end of [loop_34] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
+*/
+/*
+local: 
+global: gte_g1int_int$35$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4706)
+tmparg = S2Evar(tk(4706))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__35(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret58, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp59, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
+*/
+ATSINSflab(__patsflab_gte_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
+*/
+ATSINSmove(tmp59, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4706))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
+*/
+ATSINSmove(tmpret58, PMVtmpltcst(g1int_gte<S2Evar(tk(4706))>)(arg0, tmp59)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret58) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__35] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
+*/
+/*
+local: 
+global: gte_g1int_int$35$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4706)
+tmparg = S2Evar(tk(4706))
+tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__35__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret58__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp59__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
+*/
+ATSINSflab(__patsflab_gte_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
+*/
+ATSINSmove(tmp59__1, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
+*/
+ATSINSmove(tmpret58__1, atspre_g1int_gte_int(arg0, tmp59__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret58__1) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__35__1] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 999(line=37, offs=9) -- 1051(line=37, offs=61)
+*/
+/*
+local: 
+global: __patsfun_38$0(level=2)
+local: acc$5119(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: acc$5119(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_38(atstkind_t0ype(atstype_int) env0, atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret62, atstype_boxed) ;
+ATStmpdec(tmp63, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 999(line=37, offs=9) -- 1051(line=37, offs=61)
+*/
+ATSINSflab(__patsflab___patsfun_38):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 999(line=37, offs=9) -- 1051(line=37, offs=61)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1027(line=37, offs=37) -- 1049(line=37, offs=59)
+*/
+ATSINSmove_ldelay(tmp63, atstype_boxed, ATSPMVcfunlab(1, __patsfun_39, ())) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1007(line=37, offs=17) -- 1050(line=37, offs=60)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret62, postiats_tysum_0) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret62, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret62, postiats_tysum_0, atslab__0, env0) ;
+ATSINSstore_con1_ofs(tmpret62, postiats_tysum_0, atslab__1, tmp63) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret62) ;
+} /* end of [__patsfun_38] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1027(line=37, offs=37) -- 1049(line=37, offs=59)
+*/
+/*
+local: 
+global: __patsfun_39$0(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_39(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret64, atstype_boxed) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1027(line=37, offs=37) -- 1049(line=37, offs=59)
+*/
+ATSINSflab(__patsflab___patsfun_39):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1027(line=37, offs=37) -- 1049(line=37, offs=59)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1035(line=37, offs=45) -- 1048(line=37, offs=58)
+*/
+
+ATSINSmove_nil(tmpret64) ;
+
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret64) ;
+} /* end of [__patsfun_39] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$8$5(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4694)
+tmparg = S2Evar(tk(4694))
+tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret10__5, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp11__5, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
+*/
+ATSINSflab(__patsflab_eq_g0int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp11__5, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret10__5, atspre_g0int_eq_int(arg0, tmp11__5)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret10__5) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__5] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1101(line=40, offs=11) -- 1145(line=40, offs=55)
+*/
+/*
+local: loop_34$0(level=1)
+global: loop_34$0(level=1), __patsfun_41$0(level=2)
+local: n$5118(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5119(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: n$5118(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5119(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_41(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret69, atstype_boxed) ;
+ATStmpdec(tmp70, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp71, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1101(line=40, offs=11) -- 1145(line=40, offs=55)
+*/
+ATSINSflab(__patsflab___patsfun_41):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1101(line=40, offs=11) -- 1145(line=40, offs=55)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1135(line=40, offs=45) -- 1142(line=40, offs=52)
+*/
+ATSINSmove(tmp71, atspre_g1int_add_int(env1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1127(line=40, offs=37) -- 1143(line=40, offs=53)
+*/
+ATSINSmove(tmp70, loop_34(env0, tmp71)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1109(line=40, offs=19) -- 1144(line=40, offs=54)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret69, postiats_tysum_0) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret69, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret69, postiats_tysum_0, atslab__0, env0) ;
+ATSINSstore_con1_ofs(tmpret69, postiats_tysum_0, atslab__1, tmp70) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret69) ;
+} /* end of [__patsfun_41] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1169(line=42, offs=11) -- 1191(line=42, offs=33)
+*/
+/*
+local: 
+global: __patsfun_42$0(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_42(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret72, atstype_boxed) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1169(line=42, offs=11) -- 1191(line=42, offs=33)
+*/
+ATSINSflab(__patsflab___patsfun_42):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1169(line=42, offs=11) -- 1191(line=42, offs=33)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1177(line=42, offs=19) -- 1190(line=42, offs=32)
+*/
+
+ATSINSmove_nil(tmpret72) ;
+
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret72) ;
+} /* end of [__patsfun_42] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1222(line=47, offs=4) -- 1533(line=59, offs=6)
+*/
+/*
+local: 
+global: count_divisors_43$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+count_divisors_43(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret73, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1222(line=47, offs=4) -- 1533(line=59, offs=6)
+*/
+ATSINSflab(__patsflab_count_divisors_43):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1264(line=48, offs=3) -- 1533(line=59, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1517(line=58, offs=5) -- 1527(line=58, offs=15)
+*/
+ATSINSmove(tmpret73, loop_44(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1264(line=48, offs=3) -- 1533(line=59, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret73) ;
+} /* end of [count_divisors_43] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1276(line=49, offs=9) -- 1507(line=56, offs=27)
+*/
+/*
+local: loop_44$0(level=1)
+global: loop_44$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_44(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret74, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp75, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp78, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp81, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp82, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp83, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp84, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1276(line=49, offs=9) -- 1507(line=56, offs=27)
+*/
+ATSINSflab(__patsflab_loop_44):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1374(line=50, offs=10) -- 1382(line=50, offs=18)
+*/
+ATSINSmove(tmp75, ATSLIB_056_prelude__gte_g1int_int__35__2(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1371(line=50, offs=7) -- 1507(line=56, offs=27)
+*/
+ATSif(
+tmp75
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1396(line=51, offs=9) -- 1397(line=51, offs=10)
+*/
+ATSINSmove(tmpret74, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1420(line=53, offs=12) -- 1427(line=53, offs=19)
+*/
+ATSINSmove(tmp81, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1420(line=53, offs=12) -- 1431(line=53, offs=23)
+*/
+ATSINSmove(tmp78, ATSLIB_056_prelude__eq_g0int_int__8__6(tmp81, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1417(line=53, offs=9) -- 1507(line=56, offs=27)
+*/
+ATSif(
+tmp78
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1459(line=54, offs=23) -- 1466(line=54, offs=30)
+*/
+ATSINSmove(tmp83, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1451(line=54, offs=15) -- 1467(line=54, offs=31)
+*/
+ATSINSmove(tmp82, loop_44(arg0, tmp83)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1447(line=54, offs=11) -- 1467(line=54, offs=31)
+*/
+ATSINSmove(tmpret74, atspre_g0int_add_int(ATSPMVi0nt(1), tmp82)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1499(line=56, offs=19) -- 1506(line=56, offs=26)
+*/
+ATSINSmove(tmp84, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1491(line=56, offs=11) -- 1507(line=56, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp84) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_44) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret74) ;
+} /* end of [loop_44] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
+*/
+/*
+local: 
+global: gte_g1int_int$35$2(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4706)
+tmparg = S2Evar(tk(4706))
+tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__35__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret58__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp59__2, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
+*/
+ATSINSflab(__patsflab_gte_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
+*/
+ATSINSmove(tmp59__2, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
+*/
+ATSINSmove(tmpret58__2, atspre_g1int_gte_int(arg0, tmp59__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret58__2) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__35__2] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$8$6(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4694)
+tmparg = S2Evar(tk(4694))
+tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__6(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret10__6, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp11__6, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
+*/
+ATSINSflab(__patsflab_eq_g0int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp11__6, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret10__6, atspre_g0int_eq_int(arg0, tmp11__6)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret10__6) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__6] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1538(line=61, offs=4) -- 1849(line=73, offs=6)
+*/
+/*
+local: 
+global: sum_divisors_48$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+sum_divisors_48(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret85, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1538(line=61, offs=4) -- 1849(line=73, offs=6)
+*/
+ATSINSflab(__patsflab_sum_divisors_48):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1578(line=62, offs=3) -- 1849(line=73, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1833(line=72, offs=5) -- 1843(line=72, offs=15)
+*/
+ATSINSmove(tmpret85, loop_49(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1578(line=62, offs=3) -- 1849(line=73, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret85) ;
+} /* end of [sum_divisors_48] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1590(line=63, offs=9) -- 1823(line=70, offs=27)
+*/
+/*
+local: loop_49$0(level=1)
+global: loop_49$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_49(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret86, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp87, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp90, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp93, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp94, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp95, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp96, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1590(line=63, offs=9) -- 1823(line=70, offs=27)
+*/
+ATSINSflab(__patsflab_loop_49):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1688(line=64, offs=10) -- 1696(line=64, offs=18)
+*/
+ATSINSmove(tmp87, ATSLIB_056_prelude__gte_g1int_int__35__3(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1685(line=64, offs=7) -- 1823(line=70, offs=27)
+*/
+ATSif(
+tmp87
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1710(line=65, offs=9) -- 1711(line=65, offs=10)
+*/
+ATSINSmove(tmpret86, ATSPMVi0nt(0)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1734(line=67, offs=12) -- 1741(line=67, offs=19)
+*/
+ATSINSmove(tmp93, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1734(line=67, offs=12) -- 1745(line=67, offs=23)
+*/
+ATSINSmove(tmp90, ATSLIB_056_prelude__eq_g0int_int__8__7(tmp93, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1731(line=67, offs=9) -- 1823(line=70, offs=27)
+*/
+ATSif(
+tmp90
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1775(line=68, offs=25) -- 1782(line=68, offs=32)
+*/
+ATSINSmove(tmp95, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1767(line=68, offs=17) -- 1783(line=68, offs=33)
+*/
+ATSINSmove(tmp94, loop_49(arg0, tmp95)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1761(line=68, offs=11) -- 1783(line=68, offs=33)
+*/
+ATSINSmove(tmpret86, atspre_g0int_add_int(arg1, tmp94)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1815(line=70, offs=19) -- 1822(line=70, offs=26)
+*/
+ATSINSmove(tmp96, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1807(line=70, offs=11) -- 1823(line=70, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp96) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_49) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret86) ;
+} /* end of [loop_49] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
+*/
+/*
+local: 
+global: gte_g1int_int$35$3(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4706)
+tmparg = S2Evar(tk(4706))
+tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__35__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret58__3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp59__3, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
+*/
+ATSINSflab(__patsflab_gte_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
+*/
+ATSINSmove(tmp59__3, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
+*/
+ATSINSmove(tmpret58__3, atspre_g1int_gte_int(arg0, tmp59__3)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret58__3) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__35__3] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$8$7(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4694)
+tmparg = S2Evar(tk(4694))
+tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__7(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret10__7, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp11__7, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
+*/
+ATSINSflab(__patsflab_eq_g0int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp11__7, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret10__7, atspre_g0int_eq_int(arg0, tmp11__7)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret10__7) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__7] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1854(line=75, offs=4) -- 1912(line=76, offs=22)
+*/
+/*
+local: sum_divisors_48$0(level=0)
+global: sum_divisors_48$0(level=0), is_perfect_52$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+is_perfect_52(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret97, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp100, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1854(line=75, offs=4) -- 1912(line=76, offs=22)
+*/
+ATSINSflab(__patsflab_is_perfect_52):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1893(line=76, offs=3) -- 1907(line=76, offs=17)
+*/
+ATSINSmove(tmp100, sum_divisors_48(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1893(line=76, offs=3) -- 1912(line=76, offs=22)
+*/
+ATSINSmove(tmpret97, ATSLIB_056_prelude__eq_g0int_int__8__8(tmp100, arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret97) ;
+} /* end of [is_perfect_52] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$8$8(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4694)
+tmparg = S2Evar(tk(4694))
+tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__8(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret10__8, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp11__8, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
+*/
+ATSINSflab(__patsflab_eq_g0int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp11__8, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret10__8, atspre_g0int_eq_int(arg0, tmp11__8)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret10__8) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__8] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1944(line=79, offs=4) -- 2325(line=94, offs=6)
+*/
+/*
+local: is_prime_16$0(level=0)
+global: witness_0$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), little_omega_54$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+little_omega_54(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret101, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1944(line=79, offs=4) -- 2325(line=94, offs=6)
+*/
+ATSINSflab(__patsflab_little_omega_54):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1984(line=80, offs=3) -- 2325(line=94, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2309(line=93, offs=5) -- 2319(line=93, offs=15)
+*/
+ATSINSmove(tmpret101, loop_55(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1984(line=80, offs=3) -- 2325(line=94, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret101) ;
+} /* end of [little_omega_54] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1996(line=81, offs=9) -- 2299(line=91, offs=27)
+*/
+/*
+local: is_prime_16$0(level=0), loop_55$0(level=1)
+global: is_prime_16$0(level=0), loop_55$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_55(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret102, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp103, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp106, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp107, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp108, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp111, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp112, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp113, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp114, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 1996(line=81, offs=9) -- 2299(line=91, offs=27)
+*/
+ATSINSflab(__patsflab_loop_55):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2094(line=82, offs=10) -- 2102(line=82, offs=18)
+*/
+ATSINSmove(tmp103, ATSLIB_056_prelude__gte_g1int_int__35__4(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2091(line=82, offs=7) -- 2299(line=91, offs=27)
+*/
+ATSif(
+tmp103
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2119(line=83, offs=12) -- 2129(line=83, offs=22)
+*/
+ATSINSmove(tmp106, is_prime_16(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2116(line=83, offs=9) -- 2172(line=86, offs=12)
+*/
+ATSif(
+tmp106
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2146(line=84, offs=11) -- 2147(line=84, offs=12)
+*/
+ATSINSmove(tmpret102, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2171(line=86, offs=11) -- 2172(line=86, offs=12)
+*/
+ATSINSmove(tmpret102, ATSPMVi0nt(0)) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
+*/
+ATSINSmove(tmp111, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
+*/
+ATSINSmove(tmp108, ATSLIB_056_prelude__eq_g0int_int__8__9(tmp111, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
+*/
+ATSif(
+tmp108
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
+*/
+ATSINSmove(tmp107, is_prime_16(arg1)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2195(line=88, offs=12) -- 2222(line=88, offs=39)
+*/
+ATSINSmove(tmp107, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2192(line=88, offs=9) -- 2299(line=91, offs=27)
+*/
+ATSif(
+tmp107
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2251(line=89, offs=23) -- 2258(line=89, offs=30)
+*/
+ATSINSmove(tmp113, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2243(line=89, offs=15) -- 2259(line=89, offs=31)
+*/
+ATSINSmove(tmp112, loop_55(arg0, tmp113)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2239(line=89, offs=11) -- 2259(line=89, offs=31)
+*/
+ATSINSmove(tmpret102, atspre_g0int_add_int(ATSPMVi0nt(1), tmp112)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2291(line=91, offs=19) -- 2298(line=91, offs=26)
+*/
+ATSINSmove(tmp114, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2283(line=91, offs=11) -- 2299(line=91, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp114) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_55) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret102) ;
+} /* end of [loop_55] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
+*/
+/*
+local: 
+global: gte_g1int_int$35$4(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4706)
+tmparg = S2Evar(tk(4706))
+tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__35__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret58__4, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp59__4, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
+*/
+ATSINSflab(__patsflab_gte_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
+*/
+ATSINSmove(tmp59__4, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
+*/
+ATSINSmove(tmpret58__4, atspre_g1int_gte_int(arg0, tmp59__4)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret58__4) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__35__4] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$8$9(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4694)
+tmparg = S2Evar(tk(4694))
+tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__9(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret10__9, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp11__9, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
+*/
+ATSINSflab(__patsflab_eq_g0int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp11__9, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret10__9, atspre_g0int_eq_int(arg0, tmp11__9)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret10__9) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__9] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2359(line=97, offs=4) -- 2907(line=117, offs=10)
+*/
+/*
+local: is_prime_16$0(level=0)
+global: witness_0$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), totient_58$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+totient_58(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret115, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2359(line=97, offs=4) -- 2907(line=117, offs=10)
+*/
+ATSINSflab(__patsflab_totient_58):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2392(line=98, offs=3) -- 2907(line=117, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2409(line=99, offs=7) -- 2410(line=99, offs=8)
+*/
+ATSINSlab(__atstmplab6):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2367(line=97, offs=12) -- 2368(line=97, offs=13)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab8) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2410(line=99, offs=8) -- 2410(line=99, offs=8)
+*/
+ATSINSlab(__atstmplab7):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2414(line=99, offs=12) -- 2415(line=99, offs=13)
+*/
+ATSINSmove(tmpret115, ATSPMVi0nt(1)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2423(line=100, offs=8) -- 2423(line=100, offs=8)
+*/
+ATSINSlab(__atstmplab8):
+/*
+emit_instr: loc0 = : 0(line=0, offs=0) -- 0(line=0, offs=0)
+*/
+/*
+ibranch-mbody:
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2449(line=102, offs=9) -- 2897(line=116, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2875(line=115, offs=11) -- 2885(line=115, offs=21)
+*/
+ATSINSmove(tmpret115, loop_59(ATSPMVi0nt(1), arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2449(line=102, offs=9) -- 2897(line=116, offs=12)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret115) ;
+} /* end of [totient_58] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2467(line=103, offs=15) -- 2853(line=113, offs=31)
+*/
+/*
+local: is_prime_16$0(level=0), loop_59$0(level=1)
+global: is_prime_16$0(level=0), loop_59$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_59(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret116, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp117, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp120, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp121, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp122, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp123, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp126, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp131, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp132, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp133, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp134, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp135, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+/*
+emit_funent_fnxdeclst:
+*/
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2467(line=103, offs=15) -- 2853(line=113, offs=31)
+*/
+ATSINSflab(__patsflab_loop_59):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2578(line=104, offs=16) -- 2584(line=104, offs=22)
+*/
+ATSINSmove(tmp117, ATSLIB_056_prelude__gte_g1int_int__35__5(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2575(line=104, offs=13) -- 2853(line=113, offs=31)
+*/
+ATSif(
+tmp117
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2607(line=105, offs=18) -- 2617(line=105, offs=28)
+*/
+ATSINSmove(tmp120, is_prime_16(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2604(line=105, offs=15) -- 2682(line=108, offs=18)
+*/
+ATSif(
+tmp120
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2640(line=106, offs=17) -- 2645(line=106, offs=22)
+*/
+ATSINSmove(tmpret116, atspre_g1int_sub_int(arg1, ATSPMVi0nt(1))) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2681(line=108, offs=17) -- 2682(line=108, offs=18)
+*/
+ATSINSmove(tmpret116, arg1) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
+*/
+ATSINSmove(tmp126, atspre_g0int_mod_int(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
+*/
+ATSINSmove(tmp123, ATSLIB_056_prelude__eq_g0int_int__8__10(tmp126, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
+*/
+ATSif(
+tmp123
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
+*/
+ATSINSmove(tmp122, is_prime_16(arg0)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
+*/
+ATSINSmove(tmp122, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
+*/
+ATSif(
+tmp122
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
+*/
+ATSINSmove(tmp121, ATSLIB_056_prelude__neq_g1int_int__63__1(arg0, arg1)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2717(line=110, offs=18) -- 2751(line=110, offs=52)
+*/
+ATSINSmove(tmp121, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2714(line=110, offs=15) -- 2853(line=113, offs=31)
+*/
+ATSif(
+tmp121
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2779(line=111, offs=23) -- 2784(line=111, offs=28)
+*/
+ATSINSmove(tmp133, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2774(line=111, offs=18) -- 2788(line=111, offs=32)
+*/
+ATSINSmove(tmp132, loop_59(tmp133, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2774(line=111, offs=18) -- 2792(line=111, offs=36)
+*/
+ATSINSmove(tmp131, atspre_g0int_div_int(tmp132, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2797(line=111, offs=41) -- 2802(line=111, offs=46)
+*/
+ATSINSmove(tmp134, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2773(line=111, offs=17) -- 2803(line=111, offs=47)
+*/
+ATSINSmove(tmpret116, atspre_g0int_mul_int(tmp131, tmp134)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2844(line=113, offs=22) -- 2849(line=113, offs=27)
+*/
+ATSINSmove(tmp135, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2839(line=113, offs=17) -- 2853(line=113, offs=31)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp135) ;
+ATSINSmove_tlcal(apy1, arg1) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_59) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret116) ;
+/*
+emit_funent_fnxbodylst:
+*/
+} /* end of [loop_59] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12757(line=663, offs=3) -- 12797(line=663, offs=43)
+*/
+/*
+local: 
+global: gte_g1int_int$35$5(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4706)
+tmparg = S2Evar(tk(4706))
+tmpsub = Some(tk(4706) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__35__5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret58__5, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp59__5, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12741(line=662, offs=1) -- 12797(line=663, offs=43)
+*/
+ATSINSflab(__patsflab_gte_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12784(line=663, offs=30) -- 12795(line=663, offs=41)
+*/
+ATSINSmove(tmp59__5, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12766(line=663, offs=12) -- 12797(line=663, offs=43)
+*/
+ATSINSmove(tmpret58__5, atspre_g1int_gte_int(arg0, tmp59__5)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret58__5) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__35__5] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12259(line=635, offs=3) -- 12298(line=635, offs=42)
+*/
+/*
+local: 
+global: eq_g0int_int$8$10(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4694)
+tmparg = S2Evar(tk(4694))
+tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__8__10(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret10__10, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp11__10, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12244(line=634, offs=1) -- 12298(line=635, offs=42)
+*/
+ATSINSflab(__patsflab_eq_g0int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
+*/
+ATSINSmove(tmp11__10, atspre_g0int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
+*/
+ATSINSmove(tmpret10__10, atspre_g0int_eq_int(arg0, tmp11__10)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret10__10) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__10] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12916(line=672, offs=3) -- 12956(line=672, offs=43)
+*/
+/*
+local: 
+global: neq_g1int_int$63$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = tk(4712)
+tmparg = S2Evar(tk(4712))
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g1int_int__63(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret127, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp128, atstkind_t0ype(atstyvar_type(tk))) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12900(line=671, offs=1) -- 12956(line=672, offs=43)
+*/
+ATSINSflab(__patsflab_neq_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12943(line=672, offs=30) -- 12954(line=672, offs=41)
+*/
+ATSINSmove(tmp128, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4712))>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12925(line=672, offs=12) -- 12956(line=672, offs=43)
+*/
+ATSINSmove(tmpret127, PMVtmpltcst(g1int_neq<S2Evar(tk(4712))>)(arg0, tmp128)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret127) ;
+} /* end of [ATSLIB_056_prelude__neq_g1int_int__63] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12916(line=672, offs=3) -- 12956(line=672, offs=43)
+*/
+/*
+local: 
+global: neq_g1int_int$63$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4712)
+tmparg = S2Evar(tk(4712))
+tmpsub = Some(tk(4712) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__neq_g1int_int__63__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret127__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp128__1, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12900(line=671, offs=1) -- 12956(line=672, offs=43)
+*/
+ATSINSflab(__patsflab_neq_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12943(line=672, offs=30) -- 12954(line=672, offs=41)
+*/
+ATSINSmove(tmp128__1, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12925(line=672, offs=12) -- 12956(line=672, offs=43)
+*/
+ATSINSmove(tmpret127__1, atspre_g1int_neq_int(arg0, tmp128__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret127__1) ;
+} /* end of [ATSLIB_056_prelude__neq_g1int_int__63__1] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2991(line=121, offs=5) -- 3379(line=135, offs=6)
+*/
+/*
+local: witness_0$0(level=0), totient_58$0(level=0)
+global: witness_0$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), totient_58$0(level=0), totient_sum_66$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+totient_sum_66(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret136, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 2991(line=121, offs=5) -- 3379(line=135, offs=6)
+*/
+ATSINSflab(__patsflab_totient_sum_66):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3031(line=122, offs=3) -- 3379(line=135, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3363(line=134, offs=5) -- 3373(line=134, offs=15)
+*/
+ATSINSmove(tmpret136, loop_67(ATSPMVi0nt(1), arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3031(line=122, offs=3) -- 3379(line=135, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret136) ;
+} /* end of [totient_sum_66] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3043(line=123, offs=9) -- 3353(line=132, offs=40)
+*/
+/*
+local: witness_0$0(level=0), totient_58$0(level=0), loop_67$0(level=1)
+global: witness_0$0(level=0), totient_58$0(level=0), loop_67$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_67(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret137, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp138, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp141, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp142, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp147, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp148, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp157, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp158, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+/*
+emit_funent_fnxdeclst:
+*/
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3043(line=123, offs=9) -- 3353(line=132, offs=40)
+*/
+ATSINSflab(__patsflab_loop_67):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3146(line=124, offs=10) -- 3155(line=124, offs=19)
+*/
+ATSINSmove(tmp138, ATSLIB_056_prelude__lt_g1int_int__18__2(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3143(line=124, offs=7) -- 3353(line=132, offs=40)
+*/
+ATSif(
+tmp138
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3169(line=125, offs=9) -- 3302(line=130, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3196(line=126, offs=24) -- 3201(line=126, offs=29)
+*/
+ATSINSmove(tmp142, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3191(line=126, offs=19) -- 3209(line=126, offs=37)
+*/
+ATSINSmove(tmp141, loop_67(tmp142, arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3255(line=127, offs=46) -- 3264(line=127, offs=55)
+*/
+ATSINSmove(tmp148, totient_58(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3247(line=127, offs=38) -- 3266(line=127, offs=57)
+*/
+ATSINSmove(tmp147, witness_0(tmp148)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3228(line=127, offs=19) -- 3267(line=127, offs=58)
+*/
+ATSINSmove(tmpret137, ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69__1(tmp141, tmp147)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3169(line=125, offs=9) -- 3302(line=130, offs=12)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3322(line=132, offs=9) -- 3353(line=132, offs=40)
+*/
+ATSINSmove(tmp158, totient_58(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3322(line=132, offs=9) -- 3353(line=132, offs=40)
+*/
+ATSINSmove(tmp157, witness_0(tmp158)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory.dats: 3322(line=132, offs=9) -- 3353(line=132, offs=40)
+*/
+ATSINSmove(tmpret137, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71__1(tmp157)) ;
+
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret137) ;
+/*
+emit_funent_fnxbodylst:
+*/
+} /* end of [loop_67] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 12520(line=650, offs=3) -- 12559(line=650, offs=42)
+*/
+/*
+local: 
+global: lt_g1int_int$18$2(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = tk(4697)
+tmparg = S2Evar(tk(4697))
+tmpsub = Some(tk(4697) -> S2Eextkind(atstype_int))
+*/
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__lt_g1int_int__18__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret23__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp24__2, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12505(line=649, offs=1) -- 12559(line=650, offs=42)
+*/
+ATSINSflab(__patsflab_lt_g1int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
+*/
+ATSINSmove(tmp24__2, atspre_g1int2int_int_int(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
+*/
+ATSINSmove(tmpret23__2, atspre_g1int_lt_int(arg0, tmp24__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret23__2) ;
+} /* end of [ATSLIB_056_prelude__lt_g1int_int__18__2] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5151(line=274, offs=3) -- 5217(line=279, offs=2)
+*/
+/*
+local: 
+global: add_intinf0_int$69$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret143, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp144) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5133(line=273, offs=1) -- 5217(line=279, offs=2)
+*/
+ATSINSflab(__patsflab_add_intinf0_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5184(line=277, offs=10) -- 5212(line=277, offs=38)
+*/
+ATSINSmove_void(tmp144, atscntrb_gmp_mpz_add2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5161(line=274, offs=13) -- 5162(line=274, offs=14)
+*/
+ATSINSmove(tmpret143, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret143) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5151(line=274, offs=3) -- 5217(line=279, offs=2)
+*/
+/*
+local: 
+global: add_intinf0_int$69$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69__1(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret143__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp144__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5133(line=273, offs=1) -- 5217(line=279, offs=2)
+*/
+ATSINSflab(__patsflab_add_intinf0_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5184(line=277, offs=10) -- 5212(line=277, offs=38)
+*/
+ATSINSmove_void(tmp144__1, atscntrb_gmp_mpz_add2_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5161(line=274, offs=13) -- 5162(line=274, offs=14)
+*/
+ATSINSmove(tmpret143__1, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5160(line=274, offs=12) -- 5217(line=279, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret143__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__69__1] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$71$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret149, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp150, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp151) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2191(line=73, offs=1) -- 2301(line=80, offs=2)
+*/
+ATSINSflab(__patsflab_intinf_make_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp150, PMVtmpltcst(ptr_alloc<S2Ecst(mpz_vt0ype)>)()) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp151, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp150, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret149, tmp150) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret149) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2209(line=74, offs=3) -- 2301(line=80, offs=2)
+*/
+/*
+local: 
+global: intinf_make_int$71$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71__1(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret149__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp150__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp151__1) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2191(line=73, offs=1) -- 2301(line=80, offs=2)
+*/
+ATSINSflab(__patsflab_intinf_make_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2238(line=77, offs=9) -- 2254(line=77, offs=25)
+*/
+ATSINSmove(tmp150__1, ATSLIB_056_prelude__ptr_alloc__73__1()) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2264(line=78, offs=10) -- 2296(line=78, offs=42)
+*/
+ATSINSmove_void(tmp151__1, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp150__1, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2216(line=74, offs=10) -- 2217(line=74, offs=11)
+*/
+ATSINSmove(tmpret149__1, tmp150__1) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2215(line=74, offs=9) -- 2301(line=80, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret149__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__71__1] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$73$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = a(4806)
+tmparg = S2Evar(a(4806))
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__73()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret155, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3708(line=184, offs=1) -- 3749(line=184, offs=42)
+*/
+ATSINSflab(__patsflab_ptr_alloc):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret155, atspre_ptr_alloc_tsz(ATSPMVsizeof(atstyvar_type(a)))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret155) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__73] */
+#endif // end of [TEMPLATE]
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$73$1(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = a(4806)
+tmparg = S2Evar(a(4806))
+tmpsub = Some(a(4806) -> S2Ecst(mpz_vt0ype))
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__73__1()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret155__1, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3708(line=184, offs=1) -- 3749(line=184, offs=42)
+*/
+ATSINSflab(__patsflab_ptr_alloc):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats({$PATSPRE}/DATS/pointer.dats): 3722(line=184, offs=15) -- 3749(line=184, offs=42)
+*/
+ATSINSmove(tmpret155__1, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret155__1) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__73__1] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 491(line=26, offs=28) -- 513(line=27, offs=17)
+*/
+/*
+local: sum_divisors_48$0(level=0)
+global: sum_divisors_48$0(level=0), sum_divisors_ats$75$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+sum_divisors_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret159, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 474(line=26, offs=11) -- 514(line=27, offs=18)
+*/
+ATSINSflab(__patsflab_sum_divisors_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 499(line=27, offs=3) -- 513(line=27, offs=17)
+*/
+ATSINSmove(tmpret159, sum_divisors_48(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret159) ;
+} /* end of [sum_divisors_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 545(line=29, offs=30) -- 569(line=30, offs=19)
+*/
+/*
+local: count_divisors_43$0(level=0)
+global: count_divisors_43$0(level=0), count_divisors_ats$76$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+count_divisors_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret160, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 526(line=29, offs=11) -- 570(line=30, offs=20)
+*/
+ATSINSflab(__patsflab_count_divisors_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 553(line=30, offs=3) -- 569(line=30, offs=19)
+*/
+ATSINSmove(tmpret160, count_divisors_43(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret160) ;
+} /* end of [count_divisors_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 594(line=32, offs=23) -- 611(line=33, offs=12)
+*/
+/*
+local: totient_58$0(level=0)
+global: witness_0$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), totient_58$0(level=0), totient_ats$77$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+totient_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret161, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 582(line=32, offs=11) -- 612(line=33, offs=13)
+*/
+ATSINSflab(__patsflab_totient_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 602(line=33, offs=3) -- 611(line=33, offs=12)
+*/
+ATSINSmove(tmpret161, totient_58(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret161) ;
+} /* end of [totient_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 641(line=35, offs=28) -- 663(line=36, offs=17)
+*/
+/*
+local: little_omega_54$0(level=0)
+global: witness_0$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), little_omega_54$0(level=0), little_omega_ats$78$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+little_omega_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret162, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 624(line=35, offs=11) -- 664(line=36, offs=18)
+*/
+ATSINSflab(__patsflab_little_omega_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 649(line=36, offs=3) -- 663(line=36, offs=17)
+*/
+ATSINSmove(tmpret162, little_omega_54(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret162) ;
+} /* end of [little_omega_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 691(line=38, offs=26) -- 711(line=39, offs=15)
+*/
+/*
+local: is_perfect_52$0(level=0)
+global: sum_divisors_48$0(level=0), is_perfect_52$0(level=0), is_perfect_ats$79$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_bool)
+is_perfect_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret163, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 676(line=38, offs=11) -- 712(line=39, offs=16)
+*/
+ATSINSflab(__patsflab_is_perfect_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/number-theory-ffi.dats: 699(line=39, offs=3) -- 711(line=39, offs=15)
+*/
+ATSINSmove(tmpret163, is_perfect_52(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret163) ;
 } /* 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-7: 23h:21m
+** The starting compilation time is: 2018-1-9: 15h:48m
 **
 */
 
@@ -249,12 +249,130 @@
 /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/checkast.dats: 1531(line=44, offs=1) -- 1570(line=45, offs=32)
 */
 /*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/mydepies.hats: 192(line=16, offs=1) -- 232(line=16, offs=41)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1233(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-libgmp/CATS/gmp.cats"
+//
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
 /usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/math.sats: 1380(line=35, offs=1) -- 1426(line=38, offs=3)
 */
 
 #include \
 "libats/libc/CATS/math.cats"
 /*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1660(line=37, offs=1) -- 1700(line=38, offs=27)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1727(line=42, offs=1) -- 1759(line=42, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1833(line=49, offs=1) -- 1867(line=49, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1868(line=50, offs=1) -- 1908(line=50, offs=41)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1656(line=37, offs=1) -- 1696(line=39, offs=27)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/mydepies.hats: 192(line=16, offs=1) -- 232(line=16, offs=41)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1233(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-libgmp/CATS/gmp.cats"
+//
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1813(line=49, offs=1) -- 1845(line=49, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 1846(line=50, offs=1) -- 1881(line=50, offs=36)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1657(line=37, offs=1) -- 1689(line=37, offs=33)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/gintinf_t.dats: 1690(line=38, offs=1) -- 1724(line=38, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
 staload-prologues(end)
 */
 /*
@@ -324,35 +442,35 @@
 */
 ATSstatic()
 atstkind_t0ype(atstype_int)
-exp_0(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+witness_0(atstkind_t0ype(atstype_int)) ;
 
+ATSstatic()
+atstkind_t0ype(atstype_int)
+exp_1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
 #if(0)
 #if(0)
 ATSextern()
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__1(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
+ATSLIB_056_prelude__gt_g1int_int__2(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
 #endif // end of [QUALIFIED]
 #endif // end of [TEMPLATE]
 
 ATSstatic()
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__1__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+ATSLIB_056_prelude__gt_g1int_int__2__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
 
 #if(0)
 #if(0)
 ATSextern()
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
+ATSLIB_056_prelude__eq_g0int_int__8(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
 #endif // end of [QUALIFIED]
 #endif // end of [TEMPLATE]
 
 ATSstatic()
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
-
-ATSstatic()
-atstkind_t0ype(atstype_int)
-witness_12(atstkind_t0ype(atstype_int)) ;
+ATSLIB_056_prelude__eq_g0int_int__8__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
 
 ATSstatic()
 atstkind_t0ype(atstype_int)
@@ -380,7 +498,7 @@
 
 ATSstatic()
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+ATSLIB_056_prelude__eq_g0int_int__8__2(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
 
 #if(0)
 #if(0)
@@ -396,7 +514,7 @@
 
 ATSstatic()
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+ATSLIB_056_prelude__eq_g0int_int__8__3(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
 
 #if(0)
 ATSextern()
@@ -404,38 +522,72 @@
 is_prime_ats(atstkind_t0ype(atstype_int)) ;
 #endif // end of [QUALIFIED]
 
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+exp_ats(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 220(line=9, offs=5) -- 581(line=26, offs=10)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 256(line=10, offs=4) -- 311(line=11, offs=14)
 */
 /*
-local: exp_0$0(level=0)
-global: exp_0$0(level=0)
 local: 
+global: witness_0$0(level=0)
+local: 
 global: 
 */
 ATSstatic()
 atstkind_t0ype(atstype_int)
-exp_0(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+witness_0(atstkind_t0ype(atstype_int) arg0)
 {
 /* tmpvardeclst(beg) */
+ATStmpdec(tmpret0, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 256(line=10, offs=4) -- 311(line=11, offs=14)
+*/
+ATSINSflab(__patsflab_witness_0):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 300(line=11, offs=3) -- 310(line=11, offs=13)
+*/
+ATSINSmove(tmpret0, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), arg0)) ;
+ATSfunbody_end()
+ATSreturn(tmpret0) ;
+} /* end of [witness_0] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 389(line=14, offs=5) -- 826(line=35, offs=10)
+*/
+/*
+local: exp_1$0(level=0)
+global: exp_1$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+exp_1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
 ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
 ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret0, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmpref6, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp2, atstkind_t0ype(atstype_bool)) ;
 ATStmpdec(tmpref7, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp8, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp13, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref8, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp9, atstkind_t0ype(atstype_bool)) ;
 ATStmpdec(tmp14, atstkind_t0ype(atstype_int)) ;
 ATStmpdec(tmp15, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 220(line=9, offs=5) -- 581(line=26, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 389(line=14, offs=5) -- 826(line=35, offs=10)
 */
-ATSINSflab(__patsflab_exp_0):
+ATSINSflab(__patsflab_exp_1):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 274(line=10, offs=3) -- 581(line=26, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 441(line=15, offs=3) -- 826(line=35, offs=10)
 */
 ATScaseof_beg()
 /*
@@ -443,15 +595,15 @@
 */
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 291(line=11, offs=7) -- 292(line=11, offs=8)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 458(line=16, offs=7) -- 459(line=16, offs=8)
 */
 ATSINSlab(__atstmplab0):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 241(line=9, offs=26) -- 242(line=9, offs=27)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 410(line=14, offs=26) -- 411(line=14, offs=27)
 */
 ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(0))) { ATSINSgoto(__atstmplab2) ; } ;
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 292(line=11, offs=8) -- 292(line=11, offs=8)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 459(line=16, offs=8) -- 459(line=16, offs=8)
 */
 ATSINSlab(__atstmplab1):
 /*
@@ -461,14 +613,14 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 296(line=11, offs=12) -- 297(line=11, offs=13)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 463(line=16, offs=12) -- 464(line=16, offs=13)
 */
-ATSINSmove(tmpret0, ATSPMVi0nt(0)) ;
+ATSINSmove(tmpret1, ATSPMVi0nt(0)) ;
 ATSbranch_end()
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 305(line=12, offs=8) -- 305(line=12, offs=8)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 472(line=17, offs=8) -- 472(line=17, offs=8)
 */
 ATSINSlab(__atstmplab2):
 /*
@@ -478,103 +630,120 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 333(line=14, offs=12) -- 338(line=14, offs=17)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 501(line=19, offs=12) -- 506(line=19, offs=17)
 */
-ATSINSmove(tmp1, ATSLIB_056_prelude__gt_g1int_int__1__1(arg1, ATSPMVi0nt(0))) ;
+ATSINSmove(tmp2, ATSLIB_056_prelude__gt_g1int_int__2__1(arg1, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 330(line=14, offs=9) -- 571(line=25, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 498(line=19, offs=9) -- 816(line=34, offs=12)
 */
 ATSif(
-tmp1
+tmp2
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 354(line=15, offs=11) -- 546(line=23, offs=14)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 522(line=20, offs=11) -- 791(line=32, offs=14)
 */
 /*
 letpush(beg)
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 374(line=16, offs=17) -- 376(line=16, offs=19)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 542(line=21, offs=17) -- 544(line=21, offs=19)
 */
 /*
-ATSINStmpdec(tmpref6) ;
+ATSINStmpdec(tmpref7) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 379(line=16, offs=22) -- 385(line=16, offs=28)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 547(line=21, offs=22) -- 553(line=21, offs=28)
 */
-ATSINSmove(tmpref6, atspre_g1int_half_int(arg1)) ;
+ATSINSmove(tmpref7, atspre_g1int_half_int(arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 403(line=17, offs=17) -- 405(line=17, offs=19)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 571(line=22, offs=17) -- 573(line=22, offs=19)
 */
 /*
-ATSINStmpdec(tmpref7) ;
+ATSINStmpdec(tmpref8) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 408(line=17, offs=22) -- 413(line=17, offs=27)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 576(line=22, offs=22) -- 581(line=22, offs=27)
 */
-ATSINSmove(tmpref7, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;
+ATSINSmove(tmpref8, atspre_g0int_mod_int(arg1, ATSPMVi0nt(2))) ;
 
 /*
 letpush(end)
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 442(line=19, offs=16) -- 448(line=19, offs=22)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 610(line=24, offs=16) -- 616(line=24, offs=22)
 */
-ATSINSmove(tmp8, ATSLIB_056_prelude__eq_g0int_int__7__1(tmpref7, ATSPMVi0nt(0))) ;
+ATSINSmove(tmp9, ATSLIB_056_prelude__eq_g0int_int__8__1(tmpref8, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 439(line=19, offs=13) -- 532(line=22, offs=33)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 607(line=24, offs=13) -- 777(line=31, offs=18)
 */
 ATSif(
-tmp8
+tmp9
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 472(line=20, offs=19) -- 477(line=20, offs=24)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 640(line=25, offs=19) -- 645(line=25, offs=24)
 */
-ATSINSmove(tmp13, atspre_g0int_mul_int(arg0, arg0)) ;
+ATSINSmove(tmp14, atspre_g0int_mul_int(arg0, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 468(line=20, offs=15) -- 482(line=20, offs=29)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 636(line=25, offs=15) -- 650(line=25, offs=29)
 */
 ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp13) ;
-ATSINSmove_tlcal(apy1, tmpref6) ;
+ATSINSmove_tlcal(apy0, tmp14) ;
+ATSINSmove_tlcal(apy1, tmpref7) ;
 ATSINSargmove_tlcal(arg0, apy0) ;
 ATSINSargmove_tlcal(arg1, apy1) ;
-ATSINSfgoto(__patsflab_exp_0) ;
+ATSINSfgoto(__patsflab_exp_1) ;
 ATStailcal_end()
 
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 522(line=22, offs=23) -- 527(line=22, offs=28)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 682(line=27, offs=15) -- 777(line=31, offs=18)
 */
-ATSINSmove(tmp15, atspre_g0int_mul_int(arg0, arg0)) ;
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 518(line=22, offs=19) -- 532(line=22, offs=33)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 714(line=28, offs=29) -- 719(line=28, offs=34)
 */
-ATSINSmove(tmp14, exp_0(tmp15, tmpref6)) ;
+ATSINSmove(tmp15, atspre_g0int_mul_int(arg0, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 514(line=22, offs=15) -- 532(line=22, offs=33)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 710(line=28, offs=25) -- 724(line=28, offs=39)
 */
-ATSINSmove(tmpret0, atspre_g0int_mul_int(arg0, tmp14)) ;
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp15) ;
+ATSINSmove_tlcal(apy1, tmpref7) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_exp_1) ;
+ATStailcal_end()
 
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 682(line=27, offs=15) -- 777(line=31, offs=18)
+*/
+/*
+INSletpop()
+*/
 } /* ATSendif */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 354(line=15, offs=11) -- 546(line=23, offs=14)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 522(line=20, offs=11) -- 791(line=32, offs=14)
 */
 /*
 INSletpop()
 */
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 570(line=25, offs=11) -- 571(line=25, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 815(line=34, offs=11) -- 816(line=34, offs=12)
 */
-ATSINSmove(tmpret0, ATSPMVi0nt(1)) ;
+ATSINSmove(tmpret1, ATSPMVi0nt(1)) ;
 } /* ATSendif */
 ATSbranch_end()
 
@@ -584,8 +753,8 @@
 ATScaseof_end()
 
 ATSfunbody_end()
-ATSreturn(tmpret0) ;
-} /* end of [exp_0] */
+ATSreturn(tmpret1) ;
+} /* end of [exp_1] */
 
 #if(0)
 /*
@@ -593,7 +762,7 @@
 */
 /*
 local: 
-global: gt_g1int_int$1$0(level=0)
+global: gt_g1int_int$2$0(level=0)
 local: 
 global: 
 */
@@ -604,11 +773,11 @@
 tmpsub = None()
 */
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__1(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+ATSLIB_056_prelude__gt_g1int_int__2(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp3, atstkind_t0ype(atstyvar_type(tk))) ;
+ATStmpdec(tmpret3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp4, atstkind_t0ype(atstyvar_type(tk))) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -618,16 +787,16 @@
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
 */
-ATSINSmove(tmp3, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4703))>)(arg1)) ;
+ATSINSmove(tmp4, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4703))>)(arg1)) ;
 
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
 */
-ATSINSmove(tmpret2, PMVtmpltcst(g1int_gt<S2Evar(tk(4703))>)(arg0, tmp3)) ;
+ATSINSmove(tmpret3, PMVtmpltcst(g1int_gt<S2Evar(tk(4703))>)(arg0, tmp4)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret2) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__1] */
+ATSreturn(tmpret3) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__2] */
 #endif // end of [TEMPLATE]
 
 /*
@@ -635,7 +804,7 @@
 */
 /*
 local: 
-global: gt_g1int_int$1$1(level=1)
+global: gt_g1int_int$2$1(level=1)
 local: 
 global: 
 */
@@ -646,11 +815,11 @@
 tmpsub = Some(tk(4703) -> S2Eextkind(atstype_int))
 */
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__gt_g1int_int__1__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+ATSLIB_056_prelude__gt_g1int_int__2__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret2__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp3__1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret3__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp4__1, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -660,16 +829,16 @@
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12705(line=659, offs=29) -- 12716(line=659, offs=40)
 */
-ATSINSmove(tmp3__1, atspre_g1int2int_int_int(arg1)) ;
+ATSINSmove(tmp4__1, atspre_g1int2int_int_int(arg1)) ;
 
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12688(line=659, offs=12) -- 12718(line=659, offs=42)
 */
-ATSINSmove(tmpret2__1, atspre_g1int_gt_int(arg0, tmp3__1)) ;
+ATSINSmove(tmpret3__1, atspre_g1int_gt_int(arg0, tmp4__1)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret2__1) ;
-} /* end of [ATSLIB_056_prelude__gt_g1int_int__1__1] */
+ATSreturn(tmpret3__1) ;
+} /* end of [ATSLIB_056_prelude__gt_g1int_int__2__1] */
 
 #if(0)
 /*
@@ -677,7 +846,7 @@
 */
 /*
 local: 
-global: eq_g0int_int$7$0(level=0)
+global: eq_g0int_int$8$0(level=0)
 local: 
 global: 
 */
@@ -688,11 +857,11 @@
 tmpsub = None()
 */
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+ATSLIB_056_prelude__eq_g0int_int__8(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret9, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp10, atstkind_t0ype(atstyvar_type(tk))) ;
+ATStmpdec(tmpret10, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp11, atstkind_t0ype(atstyvar_type(tk))) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -702,16 +871,16 @@
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
 */
-ATSINSmove(tmp10, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4694))>)(arg1)) ;
+ATSINSmove(tmp11, PMVtmpltcst(g0int2int<S2Eextkind(atstype_int), S2Evar(tk(4694))>)(arg1)) ;
 
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
 */
-ATSINSmove(tmpret9, PMVtmpltcst(g0int_eq<S2Evar(tk(4694))>)(arg0, tmp10)) ;
+ATSINSmove(tmpret10, PMVtmpltcst(g0int_eq<S2Evar(tk(4694))>)(arg0, tmp11)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret9) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__7] */
+ATSreturn(tmpret10) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__8] */
 #endif // end of [TEMPLATE]
 
 /*
@@ -719,7 +888,7 @@
 */
 /*
 local: 
-global: eq_g0int_int$7$1(level=1)
+global: eq_g0int_int$8$1(level=1)
 local: 
 global: 
 */
@@ -730,11 +899,11 @@
 tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
 */
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+ATSLIB_056_prelude__eq_g0int_int__8__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret9__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp10__1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret10__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp11__1, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -744,52 +913,23 @@
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
 */
-ATSINSmove(tmp10__1, atspre_g0int2int_int_int(arg1)) ;
+ATSINSmove(tmp11__1, atspre_g0int2int_int_int(arg1)) ;
 
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
 */
-ATSINSmove(tmpret9__1, atspre_g0int_eq_int(arg0, tmp10__1)) ;
+ATSINSmove(tmpret10__1, atspre_g0int_eq_int(arg0, tmp11__1)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret9__1) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__1] */
-
-/*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 586(line=28, offs=4) -- 641(line=29, offs=14)
-*/
-/*
-local: 
-global: witness_12$0(level=0)
-local: 
-global: 
-*/
-ATSstatic()
-atstkind_t0ype(atstype_int)
-witness_12(atstkind_t0ype(atstype_int) arg0)
-{
-/* tmpvardeclst(beg) */
-ATStmpdec(tmpret16, atstkind_t0ype(atstype_int)) ;
-/* tmpvardeclst(end) */
-ATSfunbody_beg()
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 586(line=28, offs=4) -- 641(line=29, offs=14)
-*/
-ATSINSflab(__patsflab_witness_12):
-/*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 630(line=29, offs=3) -- 640(line=29, offs=13)
-*/
-ATSINSmove(tmpret16, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), arg0)) ;
-ATSfunbody_end()
-ATSreturn(tmpret16) ;
-} /* end of [witness_12] */
+ATSreturn(tmpret10__1) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__1] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 646(line=31, offs=4) -- 790(line=36, offs=6)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 831(line=37, offs=4) -- 975(line=42, offs=6)
 */
 /*
-local: witness_12$0(level=0)
-global: witness_12$0(level=0), sqrt_int_13$0(level=0)
+local: witness_0$0(level=0)
+global: witness_0$0(level=0), sqrt_int_13$0(level=0)
 local: 
 global: 
 */
@@ -798,68 +938,68 @@
 sqrt_int_13(atstkind_t0ype(atstype_int) arg0)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret17, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpref18, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret16, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpref17, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp18, atstkind_t0ype(atstype_float)) ;
 ATStmpdec(tmp19, atstkind_t0ype(atstype_float)) ;
-ATStmpdec(tmp20, atstkind_t0ype(atstype_float)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 646(line=31, offs=4) -- 790(line=36, offs=6)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 831(line=37, offs=4) -- 975(line=42, offs=6)
 */
 ATSINSflab(__patsflab_sqrt_int_13):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 696(line=32, offs=3) -- 790(line=36, offs=6)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 881(line=38, offs=3) -- 975(line=42, offs=6)
 */
 /*
 letpush(beg)
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 708(line=33, offs=9) -- 713(line=33, offs=14)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 893(line=39, offs=9) -- 898(line=39, offs=14)
 */
 /*
-ATSINStmpdec(tmpref18) ;
+ATSINStmpdec(tmpref17) ;
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 744(line=33, offs=45) -- 757(line=33, offs=58)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 929(line=39, offs=45) -- 942(line=39, offs=58)
 */
-ATSINSmove(tmp20, atspre_g0int2float_int_float(arg0)) ;
+ATSINSmove(tmp19, atspre_g0int2float_int_float(arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 733(line=33, offs=34) -- 759(line=33, offs=60)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 918(line=39, offs=34) -- 944(line=39, offs=60)
 */
-ATSINSmove(tmp19, atslib_libats_libc_sqrt_float(tmp20)) ;
+ATSINSmove(tmp18, atslib_libats_libc_sqrt_float(tmp19)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 721(line=33, offs=22) -- 760(line=33, offs=61)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 906(line=39, offs=22) -- 945(line=39, offs=61)
 */
-ATSINSmove(tmpref18, atspre_g0float2int_float_int(tmp19)) ;
+ATSINSmove(tmpref17, atspre_g0float2int_float_int(tmp18)) ;
 
 /*
 letpush(end)
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 770(line=35, offs=5) -- 783(line=35, offs=18)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 955(line=41, offs=5) -- 968(line=41, offs=18)
 */
-ATSINSmove(tmpret17, witness_12(tmpref18)) ;
+ATSINSmove(tmpret16, witness_0(tmpref17)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 696(line=32, offs=3) -- 790(line=36, offs=6)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 881(line=38, offs=3) -- 975(line=42, offs=6)
 */
 /*
 INSletpop()
 */
 ATSfunbody_end()
-ATSreturn(tmpret17) ;
+ATSreturn(tmpret16) ;
 } /* end of [sqrt_int_13] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 826(line=39, offs=4) -- 1411(line=62, offs=10)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1011(line=45, offs=4) -- 1596(line=68, offs=10)
 */
 /*
 local: sqrt_int_13$0(level=0)
-global: witness_12$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0)
+global: witness_0$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0)
 local: 
 global: 
 */
@@ -868,16 +1008,16 @@
 is_prime_16(atstkind_t0ype(atstype_int) arg0)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret21, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp42, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret20, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp41, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 826(line=39, offs=4) -- 1411(line=62, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1011(line=45, offs=4) -- 1596(line=68, offs=10)
 */
 ATSINSflab(__patsflab_is_prime_16):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 862(line=40, offs=3) -- 1411(line=62, offs=10)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1047(line=46, offs=3) -- 1596(line=68, offs=10)
 */
 ATScaseof_beg()
 /*
@@ -885,15 +1025,15 @@
 */
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 879(line=41, offs=7) -- 880(line=41, offs=8)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1064(line=47, offs=7) -- 1065(line=47, offs=8)
 */
 ATSINSlab(__atstmplab3):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 835(line=39, offs=13) -- 836(line=39, offs=14)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1020(line=45, offs=13) -- 1021(line=45, offs=14)
 */
 ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab5) ; } ;
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 880(line=41, offs=8) -- 880(line=41, offs=8)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1065(line=47, offs=8) -- 1065(line=47, offs=8)
 */
 ATSINSlab(__atstmplab4):
 /*
@@ -903,14 +1043,14 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 884(line=41, offs=12) -- 889(line=41, offs=17)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1069(line=47, offs=12) -- 1074(line=47, offs=17)
 */
-ATSINSmove(tmpret21, ATSPMVbool_false()) ;
+ATSINSmove(tmpret20, ATSPMVbool_false()) ;
 ATSbranch_end()
 
 ATSbranch_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 897(line=42, offs=8) -- 897(line=42, offs=8)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1082(line=48, offs=8) -- 1082(line=48, offs=8)
 */
 ATSINSlab(__atstmplab5):
 /*
@@ -920,7 +1060,7 @@
 ibranch-mbody:
 */
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 922(line=44, offs=9) -- 1401(line=61, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1107(line=50, offs=9) -- 1586(line=67, offs=12)
 */
 /*
 letpush(beg)
@@ -930,17 +1070,17 @@
 */
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1377(line=60, offs=19) -- 1387(line=60, offs=29)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1562(line=66, offs=19) -- 1572(line=66, offs=29)
 */
-ATSINSmove(tmp42, sqrt_int_13(arg0)) ;
+ATSINSmove(tmp41, sqrt_int_13(arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1369(line=60, offs=11) -- 1389(line=60, offs=31)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1554(line=66, offs=11) -- 1574(line=66, offs=31)
 */
-ATSINSmove(tmpret21, loop_17(arg0, ATSPMVi0nt(2), tmp42)) ;
+ATSINSmove(tmpret20, loop_17(arg0, ATSPMVi0nt(2), tmp41)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 922(line=44, offs=9) -- 1401(line=61, offs=12)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1107(line=50, offs=9) -- 1586(line=67, offs=12)
 */
 /*
 INSletpop()
@@ -953,17 +1093,17 @@
 ATScaseof_end()
 
 ATSfunbody_end()
-ATSreturn(tmpret21) ;
+ATSreturn(tmpret20) ;
 } /* end of [is_prime_16] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 940(line=45, offs=15) -- 1347(line=58, offs=21)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1125(line=51, offs=15) -- 1532(line=64, offs=21)
 */
 /*
 local: loop_17$0(level=1)
 global: loop_17$0(level=1)
-local: k$4740(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
-global: k$4740(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+local: k$5102(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: k$5102(1)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
 */
 ATSstatic()
 atstkind_t0ype(atstype_bool)
@@ -972,65 +1112,65 @@
 /* tmpvardeclst(beg) */
 ATStmpdec(apy0, atstkind_t0ype(atstype_int)) ;
 ATStmpdec(apy1, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmpret22, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp23, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp28, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpret21, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp22, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp27, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp30, atstkind_t0ype(atstype_int)) ;
 ATStmpdec(tmp31, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp32, atstkind_t0ype(atstype_int)) ;
-ATStmpdec(tmp33, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp38, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp41, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp32, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp37, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp40, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 /*
 emit_funent_fnxdeclst:
 */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 940(line=45, offs=15) -- 1347(line=58, offs=21)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1125(line=51, offs=15) -- 1532(line=64, offs=21)
 */
 ATSINSflab(__patsflab_loop_17):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1034(line=46, offs=16) -- 1043(line=46, offs=25)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1219(line=52, offs=16) -- 1228(line=52, offs=25)
 */
-ATSINSmove(tmp23, ATSLIB_056_prelude__lt_g1int_int__18__1(arg0, arg1)) ;
+ATSINSmove(tmp22, ATSLIB_056_prelude__lt_g1int_int__18__1(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1031(line=46, offs=13) -- 1347(line=58, offs=21)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1216(line=52, offs=13) -- 1532(line=64, offs=21)
 */
 ATSif(
-tmp23
+tmp22
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1066(line=47, offs=18) -- 1071(line=47, offs=23)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1251(line=53, offs=18) -- 1256(line=53, offs=23)
 */
-ATSINSmove(tmp31, atspre_g0int_mod_int(env0, arg0)) ;
+ATSINSmove(tmp30, atspre_g0int_mod_int(env0, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1066(line=47, offs=18) -- 1075(line=47, offs=27)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1251(line=53, offs=18) -- 1260(line=53, offs=27)
 */
-ATSINSmove(tmp28, ATSLIB_056_prelude__eq_g0int_int__7__2(tmp31, ATSPMVi0nt(0))) ;
+ATSINSmove(tmp27, ATSLIB_056_prelude__eq_g0int_int__8__2(tmp30, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1063(line=47, offs=15) -- 1156(line=50, offs=35)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1248(line=53, offs=15) -- 1341(line=56, offs=35)
 */
 ATSif(
-tmp28
+tmp27
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1097(line=48, offs=17) -- 1102(line=48, offs=22)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1282(line=54, offs=17) -- 1287(line=54, offs=22)
 */
-ATSINSmove(tmpret22, ATSPMVbool_false()) ;
+ATSINSmove(tmpret21, ATSPMVbool_false()) ;
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1143(line=50, offs=22) -- 1148(line=50, offs=27)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1328(line=56, offs=22) -- 1333(line=56, offs=27)
 */
-ATSINSmove(tmp32, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+ATSINSmove(tmp31, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1138(line=50, offs=17) -- 1156(line=50, offs=35)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1323(line=56, offs=17) -- 1341(line=56, offs=35)
 */
 ATStailcal_beg()
-ATSINSmove_tlcal(apy0, tmp32) ;
+ATSINSmove_tlcal(apy0, tmp31) ;
 ATSINSmove_tlcal(apy1, arg1) ;
 ATSINSargmove_tlcal(arg0, apy0) ;
 ATSINSargmove_tlcal(arg1, apy1) ;
@@ -1040,51 +1180,51 @@
 } /* ATSendif */
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1191(line=52, offs=18) -- 1200(line=52, offs=27)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1376(line=58, offs=18) -- 1385(line=58, offs=27)
 */
-ATSINSmove(tmp33, ATSLIB_056_prelude__eq_g1int_int__23__1(arg0, arg1)) ;
+ATSINSmove(tmp32, ATSLIB_056_prelude__eq_g1int_int__23__1(arg0, arg1)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1188(line=52, offs=15) -- 1347(line=58, offs=21)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1373(line=58, offs=15) -- 1532(line=64, offs=21)
 */
 ATSif(
-tmp33
+tmp32
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1225(line=53, offs=20) -- 1230(line=53, offs=25)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1410(line=59, offs=20) -- 1415(line=59, offs=25)
 */
-ATSINSmove(tmp41, atspre_g0int_mod_int(env0, arg0)) ;
+ATSINSmove(tmp40, atspre_g0int_mod_int(env0, arg0)) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1225(line=53, offs=20) -- 1234(line=53, offs=29)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1410(line=59, offs=20) -- 1419(line=59, offs=29)
 */
-ATSINSmove(tmp38, ATSLIB_056_prelude__eq_g0int_int__7__3(tmp41, ATSPMVi0nt(0))) ;
+ATSINSmove(tmp37, ATSLIB_056_prelude__eq_g0int_int__8__3(tmp40, ATSPMVi0nt(0))) ;
 
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1222(line=53, offs=17) -- 1307(line=56, offs=23)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1407(line=59, offs=17) -- 1492(line=62, offs=23)
 */
 ATSif(
-tmp38
+tmp37
 ) ATSthen() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1258(line=54, offs=19) -- 1263(line=54, offs=24)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1443(line=60, offs=19) -- 1448(line=60, offs=24)
 */
-ATSINSmove(tmpret22, ATSPMVbool_false()) ;
+ATSINSmove(tmpret21, ATSPMVbool_false()) ;
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1303(line=56, offs=19) -- 1307(line=56, offs=23)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1488(line=62, offs=19) -- 1492(line=62, offs=23)
 */
-ATSINSmove(tmpret22, ATSPMVbool_true()) ;
+ATSINSmove(tmpret21, ATSPMVbool_true()) ;
 } /* ATSendif */
 } ATSelse() {
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1343(line=58, offs=17) -- 1347(line=58, offs=21)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics.dats: 1528(line=64, offs=17) -- 1532(line=64, offs=21)
 */
-ATSINSmove(tmpret22, ATSPMVbool_true()) ;
+ATSINSmove(tmpret21, ATSPMVbool_true()) ;
 } /* ATSendif */
 } /* ATSendif */
 ATSfunbody_end()
-ATSreturn(tmpret22) ;
+ATSreturn(tmpret21) ;
 /*
 emit_funent_fnxbodylst:
 */
@@ -1110,8 +1250,8 @@
 ATSLIB_056_prelude__lt_g1int_int__18(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret24, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp25, atstkind_t0ype(atstyvar_type(tk))) ;
+ATStmpdec(tmpret23, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp24, atstkind_t0ype(atstyvar_type(tk))) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1121,15 +1261,15 @@
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
 */
-ATSINSmove(tmp25, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4697))>)(arg1)) ;
+ATSINSmove(tmp24, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4697))>)(arg1)) ;
 
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
 */
-ATSINSmove(tmpret24, PMVtmpltcst(g1int_lt<S2Evar(tk(4697))>)(arg0, tmp25)) ;
+ATSINSmove(tmpret23, PMVtmpltcst(g1int_lt<S2Evar(tk(4697))>)(arg0, tmp24)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret24) ;
+ATSreturn(tmpret23) ;
 } /* end of [ATSLIB_056_prelude__lt_g1int_int__18] */
 #endif // end of [TEMPLATE]
 
@@ -1152,8 +1292,8 @@
 ATSLIB_056_prelude__lt_g1int_int__18__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret24__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp25__1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret23__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp24__1, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1163,15 +1303,15 @@
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12546(line=650, offs=29) -- 12557(line=650, offs=40)
 */
-ATSINSmove(tmp25__1, atspre_g1int2int_int_int(arg1)) ;
+ATSINSmove(tmp24__1, atspre_g1int2int_int_int(arg1)) ;
 
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12529(line=650, offs=12) -- 12559(line=650, offs=42)
 */
-ATSINSmove(tmpret24__1, atspre_g1int_lt_int(arg0, tmp25__1)) ;
+ATSINSmove(tmpret23__1, atspre_g1int_lt_int(arg0, tmp24__1)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret24__1) ;
+ATSreturn(tmpret23__1) ;
 } /* end of [ATSLIB_056_prelude__lt_g1int_int__18__1] */
 
 /*
@@ -1179,7 +1319,7 @@
 */
 /*
 local: 
-global: eq_g0int_int$7$2(level=2)
+global: eq_g0int_int$8$2(level=2)
 local: 
 global: 
 */
@@ -1190,11 +1330,11 @@
 tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
 */
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+ATSLIB_056_prelude__eq_g0int_int__8__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret9__2, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp10__2, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret10__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp11__2, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1204,16 +1344,16 @@
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
 */
-ATSINSmove(tmp10__2, atspre_g0int2int_int_int(arg1)) ;
+ATSINSmove(tmp11__2, atspre_g0int2int_int_int(arg1)) ;
 
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
 */
-ATSINSmove(tmpret9__2, atspre_g0int_eq_int(arg0, tmp10__2)) ;
+ATSINSmove(tmpret10__2, atspre_g0int_eq_int(arg0, tmp11__2)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret9__2) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__2] */
+ATSreturn(tmpret10__2) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__2] */
 
 #if(0)
 /*
@@ -1235,8 +1375,8 @@
 ATSLIB_056_prelude__eq_g1int_int__23(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret34, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp35, atstkind_t0ype(atstyvar_type(tk))) ;
+ATStmpdec(tmpret33, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp34, atstkind_t0ype(atstyvar_type(tk))) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1246,15 +1386,15 @@
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
 */
-ATSINSmove(tmp35, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4709))>)(arg1)) ;
+ATSINSmove(tmp34, PMVtmpltcst(g1int2int<S2Eextkind(atstype_int), S2Evar(tk(4709))>)(arg1)) ;
 
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
 */
-ATSINSmove(tmpret34, PMVtmpltcst(g1int_eq<S2Evar(tk(4709))>)(arg0, tmp35)) ;
+ATSINSmove(tmpret33, PMVtmpltcst(g1int_eq<S2Evar(tk(4709))>)(arg0, tmp34)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret34) ;
+ATSreturn(tmpret33) ;
 } /* end of [ATSLIB_056_prelude__eq_g1int_int__23] */
 #endif // end of [TEMPLATE]
 
@@ -1277,8 +1417,8 @@
 ATSLIB_056_prelude__eq_g1int_int__23__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret34__1, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp35__1, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret33__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp34__1, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1288,15 +1428,15 @@
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12864(line=668, offs=29) -- 12875(line=668, offs=40)
 */
-ATSINSmove(tmp35__1, atspre_g1int2int_int_int(arg1)) ;
+ATSINSmove(tmp34__1, atspre_g1int2int_int_int(arg1)) ;
 
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12847(line=668, offs=12) -- 12877(line=668, offs=42)
 */
-ATSINSmove(tmpret34__1, atspre_g1int_eq_int(arg0, tmp35__1)) ;
+ATSINSmove(tmpret33__1, atspre_g1int_eq_int(arg0, tmp34__1)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret34__1) ;
+ATSreturn(tmpret33__1) ;
 } /* end of [ATSLIB_056_prelude__eq_g1int_int__23__1] */
 
 /*
@@ -1304,7 +1444,7 @@
 */
 /*
 local: 
-global: eq_g0int_int$7$3(level=2)
+global: eq_g0int_int$8$3(level=2)
 local: 
 global: 
 */
@@ -1315,11 +1455,11 @@
 tmpsub = Some(tk(4694) -> S2Eextkind(atstype_int))
 */
 atstkind_t0ype(atstype_bool)
-ATSLIB_056_prelude__eq_g0int_int__7__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+ATSLIB_056_prelude__eq_g0int_int__8__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret9__3, atstkind_t0ype(atstype_bool)) ;
-ATStmpdec(tmp10__3, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmpret10__3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp11__3, atstkind_t0ype(atstype_int)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
@@ -1329,23 +1469,23 @@
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12285(line=635, offs=29) -- 12296(line=635, offs=40)
 */
-ATSINSmove(tmp10__3, atspre_g0int2int_int_int(arg1)) ;
+ATSINSmove(tmp11__3, atspre_g0int2int_int_int(arg1)) ;
 
 /*
 emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats({$PATSPRE}/DATS/integer.dats): 12268(line=635, offs=12) -- 12298(line=635, offs=42)
 */
-ATSINSmove(tmpret9__3, atspre_g0int_eq_int(arg0, tmp10__3)) ;
+ATSINSmove(tmpret10__3, atspre_g0int_eq_int(arg0, tmp11__3)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret9__3) ;
-} /* end of [ATSLIB_056_prelude__eq_g0int_int__7__3] */
+ATSreturn(tmpret10__3) ;
+} /* end of [ATSLIB_056_prelude__eq_g0int_int__8__3] */
 
 /*
-/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 338(line=18, offs=24) -- 356(line=19, offs=13)
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 527(line=25, offs=24) -- 545(line=26, offs=13)
 */
 /*
 local: is_prime_16$0(level=0)
-global: witness_12$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), is_prime_ats$27$0(level=0)
+global: witness_0$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), is_prime_ats$27$0(level=0)
 local: 
 global: 
 */
@@ -1354,21 +1494,51 @@
 is_prime_ats(atstkind_t0ype(atstype_int) arg0)
 {
 /* tmpvardeclst(beg) */
-ATStmpdec(tmpret43, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmpret42, atstkind_t0ype(atstype_bool)) ;
 /* tmpvardeclst(end) */
 ATSfunbody_beg()
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 325(line=18, offs=11) -- 357(line=19, offs=14)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 514(line=25, offs=11) -- 546(line=26, offs=14)
 */
 ATSINSflab(__patsflab_is_prime_ats):
 /*
-emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 346(line=19, offs=3) -- 356(line=19, offs=13)
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 535(line=26, offs=3) -- 545(line=26, offs=13)
 */
-ATSINSmove(tmpret43, is_prime_16(arg0)) ;
+ATSINSmove(tmpret42, is_prime_16(arg0)) ;
 
 ATSfunbody_end()
-ATSreturn(tmpret43) ;
+ATSreturn(tmpret42) ;
 } /* end of [is_prime_ats] */
+
+/*
+/home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 566(line=28, offs=19) -- 586(line=29, offs=12)
+*/
+/*
+local: exp_1$0(level=0)
+global: exp_1$0(level=0), exp_ats$28$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+exp_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret43, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 558(line=28, offs=11) -- 586(line=29, offs=12)
+*/
+ATSINSflab(__patsflab_exp_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/done/fast-arithmetic/ats-src/numerics-ffi.dats: 577(line=29, offs=3) -- 586(line=29, offs=12)
+*/
+ATSINSmove(tmpret43, exp_1(arg0, arg1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret43) ;
+} /* end of [exp_ats] */
 
 /*
 ** for initialization(dynloading)
diff --git a/fast-arithmetic.cabal b/fast-arithmetic.cabal
--- a/fast-arithmetic.cabal
+++ b/fast-arithmetic.cabal
@@ -1,5 +1,5 @@
 name:                fast-arithmetic
-version:             0.1.1.5
+version:             0.2.0.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.
diff --git a/shake.hs b/shake.hs
--- a/shake.hs
+++ b/shake.hs
@@ -27,9 +27,6 @@
     "ci" ~> do
         need ["cbits/number-theory.c", "cbits/numerics.c", "cbits/combinatorics.c"]
         cmd_ ["cabal", "new-build"]
-        cmd_ ["cabal", "new-build", "-w", "ghc-8.0.2"]
-        cmd_ ["cabal", "new-build", "-w", "ghc-7.10.3"]
-        cmd_ ["cabal", "new-build", "-w", "ghc-7.8.4"]
         cmd_ ["cabal", "new-test"]
         cmd_ ["cabal", "new-haddock"]
         cmd_ ["hlint", "bench", "src", "test/", "Setup.hs"]
@@ -40,6 +37,9 @@
         cmd_ ["yamllint", ".yamllint"]
         cmd_ ["stack", "build", "--test", "--bench", "--no-run-tests", "--no-run-benchmarks"]
         cmd_ ["weeder"]
+
+    {- "/home/vanessa/programming/haskell/done/fast-arithmetic/dist-newstyle/build/x86_64-linux/ghc-8.2.2/fast-arithmetic-0.1.1.5/opt/build/fast-arithmetic-test/fast-arithmetic-test" %> \_ -> -}
+        {- cmd ["cabal", "new-build"] -}
 
     "build" %> \_ -> do
         need ["shake.hs"]
diff --git a/src/Data/GMP.hs b/src/Data/GMP.hs
--- a/src/Data/GMP.hs
+++ b/src/Data/GMP.hs
@@ -11,13 +11,16 @@
 
 module Data.GMP ( GMPInt (..)
                 , gmpToInteger
+                , conjugateGMP
                 ) where
 
 #if __GLASGOW_HASKELL__ <= 784
 import           Control.Applicative
 #endif
+import           Control.Monad         ((<=<))
 import           Data.Functor.Foldable
 import           Data.Word
+import           Foreign.C
 import           Foreign.Marshal.Array
 import           Foreign.Ptr
 import           Foreign.Storable
@@ -43,6 +46,9 @@
 wordListToInteger = cata a where
     a Nil         = 0
     a (Cons x xs) = fromIntegral x + (2 ^ (64 :: Integer)) * xs
+
+conjugateGMP :: (CInt -> Ptr GMPInt) -> Int -> IO Integer
+conjugateGMP f = gmpToInteger <=< (peek . f . fromIntegral)
 
 -- | Convert a GMP @mpz@ to Haskell's 'Integer' type.
 gmpToInteger :: GMPInt -> IO Integer
diff --git a/src/Numeric/Combinatorics.hs b/src/Numeric/Combinatorics.hs
--- a/src/Numeric/Combinatorics.hs
+++ b/src/Numeric/Combinatorics.hs
@@ -27,7 +27,7 @@
 
 -- | See [here](http://mathworld.wolfram.com/DoubleFactorial.html).
 doubleFactorial :: Int -> IO Integer
-doubleFactorial = gmpToInteger <=< (peek . double_factorial_ats . fromIntegral)
+doubleFactorial = conjugateGMP double_factorial_ats
 
 factorial :: Int -> IO Integer
-factorial = gmpToInteger <=< (peek . factorial_ats . fromIntegral)
+factorial = conjugateGMP factorial_ats
diff --git a/src/Numeric/Pure.hs b/src/Numeric/Pure.hs
--- a/src/Numeric/Pure.hs
+++ b/src/Numeric/Pure.hs
@@ -12,6 +12,7 @@
                     , hsLittleOmega
                     , hsIsPerfect
                     , hsSumDivisors
+                    , hsDerangement
                     ) where
 
 #if __GLASGOW_HASKELL__ <= 784
@@ -25,6 +26,13 @@
 {-# SPECIALIZE hsIsPrime :: Int -> Bool #-}
 {-# SPECIALIZE hsChoose :: Int -> Int -> Int #-}
 {-# SPECIALIZE hsDoubleFactorial :: Int -> Int #-}
+
+hsDerangement :: Int -> Integer
+hsDerangement n = derangements !! n
+
+derangements :: [Integer]
+derangements = fmap snd g
+    where g = (0, 1) : (1, 0) : zipWith (\(_, n) (i, m) -> (i + 1, i * (n + m))) g (tail g)
 
 divisors :: (Integral a) => a -> [a]
 divisors n = filter ((== 0) . (n `mod`)) [1..n]
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -1,11 +1,11 @@
-import           Data.List                 (zipWith4)
+import           Data.List             (zipWith4)
 import           Numeric.Combinatorics
 import           Numeric.Integer
 import           Numeric.NumberTheory
 import           Numeric.Pure
 import           Test.Hspec
 import           Test.Hspec.QuickCheck
-import           Test.QuickCheck.Arbitrary
+import           Test.QuickCheck       hiding (choose)
 
 tooBig :: Int -> Int -> Bool
 tooBig x y = go x y >= 2 ^ (16 :: Integer)
@@ -23,6 +23,13 @@
     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
 
@@ -45,7 +52,7 @@
 
     -- TODO property test w/ recurrence relations?
     sequence_ $ zipWith4 check
-        ["factorial", "choose", "doubleFactorial"]
+        ["factorial", "choose 101", "doubleFactorial"]
         [factorial, choose 101, doubleFactorial]
         [hsFactorial, hsChoose 101, hsDoubleFactorial]
         [3141, 16, 79]
