diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,11 @@
+Copyright Vanessa McHale (c) 2017
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,47 @@
+# fast-combinatorics
+
+[![Build Status](https://travis-ci.org/vmchale/fast-combinatorics.svg?branch=master)](https://travis-ci.org/vmchale/fast-combinatorics)
+
+This is a library for fast arithmetical functions using ATS, with a Haskell
+wrapper.
+
+It is intended to supplement (but not replace)
+[arithmoi](https://hackage.haskell.org/package/arithmoi) where speed is
+important. In particular, this library provides a fast primality check.
+
+## Benchmarks
+
+| Computation | Version (ATS/Haskell) | Time |
+| ----------- | --------------------- | ---- |
+| `isPrime 2017` | ATS | 118.9 ns |
+| `isPrime 2017` | Haskell | 497.3 ns |
+| `φ(2016)` | ATS | 5.574 μs |
+| `φ(2016)` | Haskell | 177.3 μs |
+| `τ(3018)` | ATS | 7.962 μs |
+| `τ(3018)` | Haskell | 35.87 μs |
+| `ω(91)` | ATS | 282.1 ns |
+| `ω(91)` | Haskell | 1.194 μs |
+| `gcd(201, 67)` | ATS | 8.848 ns |
+| `gcd(201, 67)` | Haskell | 11.26 ns |
+
+## Building
+
+The Haskell library comes with the C bundled, however you will likely want to build from
+source if you are hacking on the library. To that end, you can install
+[stack](http://haskellstack.org/), [patsopt](http://www.ats-lang.org/Downloads.html), and
+[pats-filter](https://github.com/Hibou57/PostiATS-Utilities) and build with
+
+```bash
+ $ ./shake.hs
+```
+
+You will also likely want to install
+[GHC](https://www.haskell.org/ghc/download.html) as well as
+[cabal](https://www.haskell.org/cabal/).
+
+## Documentation
+
+You can find documentation for the Haskell library on 
+[Hackage](https://hackage.haskell.org/package/fast-arithmetic/).
+Unfortunately, there is no documentation for the ATS library, however, you may
+find the bundled source code informative.
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,69 @@
+{-# LANGUAGE CPP               #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+#if __GLASGOW_HASKELL__ <= 784
+import           Control.Applicative
+#endif
+import qualified Codec.Archive.Tar                            as Tar
+import           Codec.Compression.GZip                       (decompress)
+import           Control.Concurrent.ParallelIO.Global
+import           Control.Monad                                (unless, when)
+import           Distribution.Simple
+import           Distribution.Simple.Setup
+import           Distribution.Types.GenericPackageDescription
+import           Distribution.Types.HookedBuildInfo
+import           Distribution.Types.LocalBuildInfo
+import           Distribution.Types.PackageDescription
+import           Network.HTTP.Client                          hiding (decompress)
+import           Network.HTTP.Client.TLS                      (tlsManagerSettings)
+import           System.Directory
+
+main = defaultMainWithHooks myHooks
+
+    where myHooks = simpleUserHooks { preConf = buildScript
+                                    , postBuild = maybeCleanATS }
+
+maybeCleanATS :: Args -> BuildFlags -> PackageDescription -> LocalBuildInfo -> IO ()
+maybeCleanATS _ _ _ li =
+    let cf = configConfigurationsFlags (configFlags li) in
+
+    unless ((mkFlagName "development", True) `elem` cf) $
+        putStrLn "Cleaning up ATS dependencies..." >>
+        cleanATS
+
+cleanATS :: IO ()
+cleanATS = removeDirectoryRecursive "ats-deps"
+
+buildScript :: Args -> ConfigFlags -> IO HookedBuildInfo
+buildScript _ _ = do
+
+    putStrLn "Setting up ATS dependencies..."
+
+    let libs = zipWith3 buildHelper
+            ["ats2-postiats-0.3.8-prelude", "atscntrb-hs-intinf-1.0.6", "atscntrb-libgmp-1.0.4"]
+            ["ats-deps/prelude", "ats-deps/contrib/atscntrb-hx-intinf", "ats-deps/contrib/atscntrb-libgmp"]
+            ["https://downloads.sourceforge.net/project/ats2-lang/ats2-lang/ats2-postiats-0.3.8/ATS2-Postiats-include-0.3.8.tgz", "https://registry.npmjs.org/atscntrb-hx-intinf/-/atscntrb-hx-intinf-1.0.6.tgz", "https://registry.npmjs.org/atscntrb-libgmp/-/atscntrb-libgmp-1.0.4.tgz" ]
+    parallel_ libs >> stopGlobalPool
+
+    pure emptyHookedBuildInfo
+
+buildHelper libName dirName url = do
+
+    needsSetup <- not <$> doesDirectoryExist dirName
+
+    when needsSetup $ do
+
+        putStrLn ("Fetching library " ++ libName ++ "...")
+        manager <- newManager tlsManagerSettings
+        initialRequest <- parseRequest url
+        response <- responseBody <$> httpLbs (initialRequest { method = "GET" }) manager
+
+        putStrLn ("Unpacking library " ++ libName ++ "...")
+        Tar.unpack dirName . Tar.read . decompress $ response
+
+        putStrLn ("Setting up library " ++ libName ++ "...")
+        needsMove <- doesDirectoryExist (dirName ++ "/package")
+        when needsMove $ do
+            renameDirectory (dirName ++ "/package") "tempdir"
+            removeDirectory dirName
+            renameDirectory "tempdir" dirName
diff --git a/ats-deps/contrib/atscntrb-libgmp/CATS/gmp.cats b/ats-deps/contrib/atscntrb-libgmp/CATS/gmp.cats
new file mode 100644
--- /dev/null
+++ b/ats-deps/contrib/atscntrb-libgmp/CATS/gmp.cats
@@ -0,0 +1,327 @@
+/* ****** ****** */
+//
+// API in ATS for libgmp
+//
+/* ****** ****** */
+
+/*
+(*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2011-2013 Hongwei Xi, ATS Trustful Software, Inc.
+** All rights reserved
+**
+** Permission to use, copy, modify, and distribute this software for any
+** purpose with or without fee is hereby granted, provided that the above
+** copyright notice and this permission notice appear in all copies.
+** 
+** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+** ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*)
+*/
+
+/* ****** ****** */
+
+/*
+** Author: Hongwei Xi
+** Authoremail: gmhwxiATgmailDOTcom
+*/
+
+/* ****** ****** */
+
+#ifndef ATSCNTRB_LIBGMP_GMP_CATS
+#define ATSCNTRB_LIBGMP_GMP_CATS
+
+/* ****** ****** */
+
+#include <gmp.h>
+
+/* ****** ****** */
+
+typedef
+__mpz_struct atscntrb_gmp_mpz ;
+typedef atscntrb_gmp_mpz *ptrmpz;
+
+/* ****** ****** */
+//
+// init/clear/realloc
+//
+#define atscntrb_gmp_mpz_init mpz_init
+#define atscntrb_gmp_mpz_init2 mpz_init2
+#define atscntrb_gmp_mpz_clear mpz_clear
+#define atscntrb_gmp_mpz_realloc2 mpz_realloc2
+//
+/* ****** ****** */
+//
+// get-functions
+//
+#define atscntrb_gmp_mpz_get_int mpz_get_si
+#define atscntrb_gmp_mpz_get_uint mpz_get_ui
+#define atscntrb_gmp_mpz_get_lint mpz_get_si
+#define atscntrb_gmp_mpz_get_ulint mpz_get_ui
+#define atscntrb_gmp_mpz_get_double mpz_get_d
+#define atscntrb_gmp_mpz_get_str mpz_get_str
+#define atscntrb_gmp_mpz_get_str_null(base, mpz) mpz_get_str((char*)0, base, mpz)
+//
+/* ****** ****** */
+//
+// set-functions
+//
+#define atscntrb_gmp_mpz_set_int mpz_set_si
+#define atscntrb_gmp_mpz_set_uint mpz_set_ui
+#define atscntrb_gmp_mpz_set_lint mpz_set_si
+#define atscntrb_gmp_mpz_set_ulint mpz_set_ui
+#define atscntrb_gmp_mpz_set_mpz mpz_set
+//
+/* ****** ****** */
+//
+// init-set functions
+//
+#define atscntrb_gmp_mpz_init_set_mpz mpz_init_set
+#define atscntrb_gmp_mpz_init_set_int mpz_init_set_si
+#define atscntrb_gmp_mpz_init_set_uint mpz_init_set_ui
+#define atscntrb_gmp_mpz_init_set_lint mpz_init_set_si
+#define atscntrb_gmp_mpz_init_set_ulint mpz_init_set_ui
+//
+/* ****** ****** */
+
+#define atscntrb_gmp_mpz_size mpz_size
+
+/* ****** ****** */
+//
+// input-output-functions
+//
+#define atscntrb_gmp_mpz_inp_str mpz_inp_str
+#define atscntrb_gmp_mpz_out_str mpz_out_str
+//
+/* ****** ****** */
+
+ATSinline()
+atsvoid_t0ype
+atscntrb_gmp_fprint_mpz_base
+(
+  atstype_ref out, atstype_ptr x, atstype_int base
+) {
+  size_t ndigit ;
+  ndigit = mpz_out_str ((FILE*)out, base, (ptrmpz)x) ;
+  return ;
+} // end of [atscntrb_gmp_fprint_mpz_base]
+
+#define atscntrb_gmp_fprint_mpz(out, x) \
+  atscntrb_gmp_fprint_mpz_base(out, x, 10)
+
+/* ****** ****** */
+//
+#define atscntrb_gmp_mpz_inp_raw mpz_inp_raw
+#define atscntrb_gmp_mpz_out_raw mpz_out_raw
+//
+/* ****** ****** */
+
+#define atscntrb_gmp_mpz_odd_p(x) mpz_odd_p((ptrmpz)x)
+#define atscntrb_gmp_mpz_even_p(x) mpz_even_p((ptrmpz)x)
+
+/* ****** ****** */
+
+#define atscntrb_gmp_mpz_neg1(x) mpz_neg(x, x)
+#define atscntrb_gmp_mpz_neg2(x, y) mpz_neg(x, y)
+
+/* ****** ****** */
+
+#define atscntrb_gmp_mpz_abs1(x) mpz_abs(x, x)
+#define atscntrb_gmp_mpz_abs2(x, y) mpz_abs(x, y)
+
+/* ****** ****** */
+//
+// addition-functions
+//
+ATSinline()
+atsvoid_t0ype
+mpz_add_si
+(
+  mpz_t rop
+, mpz_t op1, atstype_lint op2
+)
+{
+  if (op2 >= 0)
+    mpz_add_ui (rop, op1,  op2) ;
+  else
+    mpz_add_ui (rop, op1, -op2) ;
+  // end of [if]
+} /* end of [mpz_add_si] */
+//
+// x := x+y // y+z
+//
+#define atscntrb_gmp_mpz_add2_mpz(x, y) mpz_add(x, x, y)
+#define atscntrb_gmp_mpz_add2_int(x, y) mpz_add_si(x, x, y)
+#define atscntrb_gmp_mpz_add2_uint(x, y) mpz_add_ui(x, x, y)
+#define atscntrb_gmp_mpz_add2_lint(x, y) mpz_add_si(x, x, y)
+#define atscntrb_gmp_mpz_add2_ulint(x, y) mpz_add_ui(x, x, y)
+#define atscntrb_gmp_mpz_add3_mpz(x, y, z) mpz_add(x, y, z)
+#define atscntrb_gmp_mpz_add3_int(x, y, z) mpz_add_si(x, y, z)
+#define atscntrb_gmp_mpz_add3_uint(x, y, z) mpz_add_ui(x, y, z)
+#define atscntrb_gmp_mpz_add3_lint(x, y, z) mpz_add_si(x, y, z)
+#define atscntrb_gmp_mpz_add3_ulint(x, y, z) mpz_add_ui(x, y, z)
+//
+/* ****** ****** */
+//
+// subtraction-functions
+//
+ATSinline()
+atsvoid_t0ype
+mpz_sub_si
+(
+  mpz_t rop
+, mpz_t op1, atstype_lint op2
+)
+{
+  if (op2 >= 0)
+    mpz_sub_ui (rop, op1,  op2) ;
+  else
+    mpz_sub_ui (rop, op1, -op2) ;
+  // end of [if]
+} /* end of [mpz_sub_si] */
+//
+#define atscntrb_gmp_mpz_sub2_mpz(x, y) mpz_sub(x, x, y)
+#define atscntrb_gmp_mpz_sub2_int(x, y) mpz_sub_si(x, x, y)
+#define atscntrb_gmp_mpz_sub2_uint(x, y) mpz_sub_ui(x, x, y)
+#define atscntrb_gmp_mpz_sub2_lint(x, y) mpz_sub_si(x, x, y)
+#define atscntrb_gmp_mpz_sub2_ulint(x, y) mpz_sub_ui(x, x, y)
+#define atscntrb_gmp_mpz_sub3_mpz(x, y, z) mpz_sub(x, y, z)
+#define atscntrb_gmp_mpz_sub3_int(x, y, z) mpz_sub_si(x, y, z)
+#define atscntrb_gmp_mpz_sub3_uint(x, y, z) mpz_sub_ui(x, y, z)
+#define atscntrb_gmp_mpz_sub3_lint(x, y, z) mpz_sub_si(x, y, z)
+#define atscntrb_gmp_mpz_sub3_ulint(x, y, z) mpz_sub_ui(x, y, z)
+//
+/* ****** ****** */
+//
+// multiplication-functions
+//
+// x := x * y // y * z
+//
+#define atscntrb_gmp_mpz_mul2_mpz(x, y) mpz_mul(x, x, y)
+#define atscntrb_gmp_mpz_mul2_int(x, y) mpz_mul_si(x, x, y)
+#define atscntrb_gmp_mpz_mul2_uint(x, y) mpz_mul_ui(x, x, y)
+#define atscntrb_gmp_mpz_mul2_lint(x, y) mpz_mul_si(x, x, y)
+#define atscntrb_gmp_mpz_mul2_ulint(x, y) mpz_mul_ui(x, x, y)
+#define atscntrb_gmp_mpz_mul3_mpz(x, y, z) mpz_mul(x, y, z)
+#define atscntrb_gmp_mpz_mul3_int(x, y, z) mpz_mul_si(x, y, z)
+#define atscntrb_gmp_mpz_mul3_uint(x, y, z) mpz_mul_ui(x, y, z)
+#define atscntrb_gmp_mpz_mul3_lint(x, y, z) mpz_mul_si(x, y, z)
+#define atscntrb_gmp_mpz_mul3_ulint(x, y, z) mpz_mul_ui(x, y, z)
+//
+#define atscntrb_gmp_mpz_mul3_2exp(x, y, z) mpz_mul_2exp(x, y, z)
+//
+/* ****** ****** */
+//
+// trunc-division-functions
+//
+#define atscntrb_gmp_mpz_tdiv2_q_mpz(x, y) mpz_tdiv_q(x, x, y)
+#define atscntrb_gmp_mpz_tdiv2_q_uint(x, y) mpz_tdiv_q_ui(x, x, y)
+#define atscntrb_gmp_mpz_tdiv2_q_ulint(x, y) mpz_tdiv_q_ui(x, x, y)
+#define atscntrb_gmp_mpz_tdiv3_q_mpz(x, y, z) mpz_tdiv_q(x, y, z)
+#define atscntrb_gmp_mpz_tdiv3_q_uint(x, y, z) mpz_tdiv_q_ui(x, y, z)
+#define atscntrb_gmp_mpz_tdiv3_q_ulint(x, y, z) mpz_tdiv_q_ui(x, y, z)
+//
+#define atscntrb_gmp_mpz_tdiv2_r_mpz(x, y) mpz_tdiv_r(x, x, y)
+#define atscntrb_gmp_mpz_tdiv2_r_uint(x, y) mpz_tdiv_r_ui(x, x, y)
+#define atscntrb_gmp_mpz_tdiv2_r_ulint(x, y) mpz_tdiv_r_ui(x, x, y)
+#define atscntrb_gmp_mpz_tdiv3_r_mpz(x, y, z) mpz_tdiv_r(x, y, z)
+#define atscntrb_gmp_mpz_tdiv3_r_uint(x, y, z) mpz_tdiv_r_ui(x, y, z)
+#define atscntrb_gmp_mpz_tdiv3_r_ulint(x, y, z) mpz_tdiv_r_ui(x, y, z)
+//
+#define atscntrb_gmp_mpz_tdiv3_qr_mpz(xq, xr, y) mpz_tdiv_qr(xq, xr, xq, y)
+#define atscntrb_gmp_mpz_tdiv3_qr_uint(xq, xr, y) mpz_tdiv_qr_ui(xq, xr, xq, y)
+#define atscntrb_gmp_mpz_tdiv3_qr_ulint(xq, xr, y) mpz_tdiv_qr_ui(xq, xr, xq, y)
+#define atscntrb_gmp_mpz_tdiv4_qr_mpz(xq, xr, y, z) mpz_tdiv_qr(xq, xr, y, z)
+#define atscntrb_gmp_mpz_tdiv4_qr_uint(xq, xr, y, z) mpz_tdiv_qr_ui(xq, xr, y, z)
+#define atscntrb_gmp_mpz_tdiv4_qr_ulint(xq, xr, y, z) mpz_tdiv_qr_ui(xq, xr, y, z)
+//
+/* ****** ****** */
+//
+// floor-division-functions
+//
+#define atscntrb_gmp_mpz_fdiv_uint(x, y) mpz_fdiv_ui(x, y)
+#define atscntrb_gmp_mpz_fdiv_ulint(x, y) mpz_fdiv_ui(x, y)
+//
+#define atscntrb_gmp_mpz_fdiv2_q_mpz(x, y) mpz_fdiv_q(x, x, y)
+#define atscntrb_gmp_mpz_fdiv2_q_uint(x, y) mpz_fdiv_q_ui(x, x, y)
+#define atscntrb_gmp_mpz_fdiv2_q_ulint(x, y) mpz_fdiv_q_ui(x, x, y)
+#define atscntrb_gmp_mpz_fdiv3_q_mpz(x, y, z) mpz_fdiv_q(x, y, z)
+#define atscntrb_gmp_mpz_fdiv3_q_uint(x, y, z) mpz_fdiv_q_ui(x, y, z)
+#define atscntrb_gmp_mpz_fdiv3_q_ulint(x, y, z) mpz_fdiv_q_ui(x, y, z)
+//
+#define atscntrb_gmp_mpz_fdiv4_qr_mpz(q, r, dd, dr) mpz_fdiv_qr(q, r, dd, dr)
+#define atscntrb_gmp_mpz_fdiv4_qr_ulint(q, r, dd, dr) mpz_fdiv_qr_ui(q, r, dd, dr)
+//
+/* ****** ****** */
+//
+// ceiling-division-functions
+//
+#define atscntrb_gmp_mpz_cdiv_uint(x, y) mpz_cdiv_ui(x, y)
+#define atscntrb_gmp_mpz_cdiv_ulint(x, y) mpz_cdiv_ui(x, y)
+//
+#define atscntrb_gmp_mpz_cdiv2_q_mpz(x, y) mpz_cdiv_q(x, x, y)
+#define atscntrb_gmp_mpz_cdiv2_q_uint(x, y) mpz_cdiv_q_ui(x, x, y)
+#define atscntrb_gmp_mpz_cdiv2_q_ulint(x, y) mpz_cdiv_q_ui(x, x, y)
+#define atscntrb_gmp_mpz_cdiv3_q_mpz(x, y, z) mpz_cdiv_q(x, y, z)
+#define atscntrb_gmp_mpz_cdiv3_q_uint(x, y, z) mpz_cdiv_q_ui(x, y, z)
+#define atscntrb_gmp_mpz_cdiv3_q_ulint(x, y, z) mpz_cdiv_q_ui(x, y, z)
+//
+/* ****** ****** */
+//
+// modulo-functions
+//
+// x := x mod y // y mod z
+//
+#define atscntrb_gmp_mpz_mod2_mpz(x, y) mpz_mod(x, x, y)
+#define atscntrb_gmp_mpz_mod2_uint(x, y) mpz_mod_ui(x, x, y)
+#define atscntrb_gmp_mpz_mod2_ulint(x, y) mpz_mod_ui(x, x, y)
+#define atscntrb_gmp_mpz_mod3_mpz(x, y, z) mpz_mod(x, y, z)
+#define atscntrb_gmp_mpz_mod3_uint(x, y, z) mpz_mod_ui(x, y, z)
+#define atscntrb_gmp_mpz_mod3_ulint(x, y, z) mpz_mod_ui(x, y, z)
+//
+/* ****** ****** */
+//
+#define atscntrb_gmp_mpz_addmul3_mpz(x, y, z) mpz_addmul(x, y, z)
+#define atscntrb_gmp_mpz_addmul3_uint(x, y, z) mpz_addmul_ui(x, y, z)
+#define atscntrb_gmp_mpz_addmul3_ulint(x, y, z) mpz_addmul_ui(x, y, z)
+//
+#define atscntrb_gmp_mpz_submul3_mpz(x, y, z) mpz_submul(x, y, z)
+#define atscntrb_gmp_mpz_submul3_uint(x, y, z) mpz_submul_ui(x, y, z)
+#define atscntrb_gmp_mpz_submul3_ulint(x, y, z) mpz_submul_ui(x, y, z)
+//
+/* ****** ****** */
+//
+// comparison-functions
+//
+#define atscntrb_gmp_mpz_cmp_mpz(x, y) mpz_cmp((ptrmpz)x, y)
+#define atscntrb_gmp_mpz_cmp_int(x, y) mpz_cmp_si((ptrmpz)x, y)
+#define atscntrb_gmp_mpz_cmp_uint(x, y) mpz_cmp_ui((ptrmpz)x, y)
+#define atscntrb_gmp_mpz_cmp_lint(x, y) mpz_cmp_si((ptrmpz)x, y)
+#define atscntrb_gmp_mpz_cmp_ulint(x, y) mpz_cmp_ui((ptrmpz)x, y)
+//
+/* ****** ****** */
+//
+// power-functions
+//
+#define atscntrb_gmp_mpz_pow_uint(pow, base, exp) mpz_pow_ui(pow, base, exp)
+#define atscntrb_gmp_mpz_pow_ulint(pow, base, exp) mpz_pow_ui(pow, base, exp)
+//
+#define atscntrb_gmp_mpz_ui_pow_ui(pow, base, exp) mpz_ui_pow_ui(pow, base, exp)
+//
+/* ****** ****** */
+//
+#define atscntrb_gmp_mpz_fib_uint(res, n) mpz_fib_ui(res, n)
+#define atscntrb_gmp_mpz_fib2_uint(res1, res2, n) mpz_fib2_ui(res1, res2, n)
+//
+/* ****** ****** */
+
+#endif // ifndef ATSCNTRB_LIBGMP_GMP_CATS
+
+/* ****** ****** */
+
+/* end of [gmp.cats] */
diff --git a/ats-deps/prelude/ATS2-Postiats-include-0.3.8/ccomp/runtime/pats_ccomp_config.h b/ats-deps/prelude/ATS2-Postiats-include-0.3.8/ccomp/runtime/pats_ccomp_config.h
new file mode 100644
--- /dev/null
+++ b/ats-deps/prelude/ATS2-Postiats-include-0.3.8/ccomp/runtime/pats_ccomp_config.h
@@ -0,0 +1,49 @@
+/* ******************************************************************* */
+/*                                                                     */
+/*                         Applied Type System                         */
+/*                                                                     */
+/* ******************************************************************* */
+
+/*
+** ATS/Postiats - Unleashing the Potential of Types!
+** Copyright (C) 2011-20?? Hongwei Xi, ATS Trustful Software, Inc.
+** All rights reserved
+**
+** ATS is free software;  you can  redistribute it and/or modify it under
+** the terms of  the GNU GENERAL PUBLIC LICENSE (GPL) as published by the
+** Free Software Foundation; either version 3, or (at  your  option)  any
+** later version.
+** 
+** ATS is distributed in the hope that it will be useful, but WITHOUT ANY
+** WARRANTY; without  even  the  implied  warranty  of MERCHANTABILITY or
+** FITNESS FOR A PARTICULAR PURPOSE.  See the  GNU General Public License
+** for more details.
+** 
+** You  should  have  received  a  copy of the GNU General Public License
+** along  with  ATS;  see the  file COPYING.  If not, please write to the
+** Free Software Foundation,  51 Franklin Street, Fifth Floor, Boston, MA
+** 02110-1301, USA.
+*/
+
+/* ****** ****** */
+
+/*
+(* Author: Hongwei Xi *)
+(* Authoremail: hwxi AT cs DOT bu DOT edu *)
+(* Start time: January, 2013 *)
+*/
+
+/* ****** ****** */
+
+#ifndef PATS_CCOMP_CONFIG_H
+#define PATS_CCOMP_CONFIG_H
+
+/* ****** ****** */
+
+// HX: it is yet empty
+
+/* ****** ****** */
+
+#endif /* PATS_CCOMP_CONFIG_H */
+
+/* end of [pats_ccomp_config.h] */
diff --git a/ats-src/combinatorics-ffi.dats b/ats-src/combinatorics-ffi.dats
new file mode 100644
--- /dev/null
+++ b/ats-src/combinatorics-ffi.dats
@@ -0,0 +1,25 @@
+#define ATS_MAINATSFLAG 1
+
+#include "share/atspre_staload.hats"
+#include "ats-src/combinatorics.dats"
+
+extern
+fun choose_ats {n : nat}{ m : nat | m <= n } : (int(n), int(m)) -> Intinf =
+  "mac#"
+
+extern
+fun double_factorial {n : nat} : int(n) -> Intinf =
+  "mac#"
+
+extern
+fun factorial_ats {n : nat} : int(n) -> Intinf =
+  "mac#"
+
+implement choose_ats (n, k) =
+  choose(n, k)
+
+implement double_factorial (m) =
+  dfact(m)
+
+implement factorial_ats (m) =
+  fact(m)
diff --git a/ats-src/combinatorics.dats b/ats-src/combinatorics.dats
new file mode 100644
--- /dev/null
+++ b/ats-src/combinatorics.dats
@@ -0,0 +1,47 @@
+#define ATS_MAINATSFLAG 1
+
+#include "share/atspre_staload.hats"
+
+staload "contrib/atscntrb-hx-intinf/SATS/intinf_t.sats"
+staload "libats/libc/SATS/math.sats"
+staload "contrib/atscntrb-hx-intinf/SATS/intinf.sats"
+staload UN = "prelude/SATS/unsafe.sats"
+
+fnx fact {n : nat} .<n>. (k : int(n)) : [ n : nat | n > 0 ] intinf(n) =
+  case+ k of
+    | 0 => int2intinf(1)
+    | 1 => int2intinf(1)
+    | k =>> let
+      val x = fact(k - 1) * k
+    in
+      if compare(x, 0) = 1 then
+        x
+      else
+        int2intinf(1)
+    end
+
+// double factorial http://mathworld.wolfram.com/DoubleFactorial.html
+fnx dfact {n : nat} .<n>. (k : int(n)) : Intinf =
+  case+ k of
+    | 0 => int2intinf(1)
+    | 1 => int2intinf(1)
+    | k =>> k * dfact(k - 2)
+
+// Number of permutations on n objects using k at a time.
+fn permutatsions {n : nat}{ k : nat | k <= n } (n : int(n), k : int(k)) : Intinf =
+  fact(n) / fact(n - k)
+
+// Number of permutations on n objects using k at a time.
+fn choose {n : nat}{ m : nat | m <= n } (n : int(n), k : int(m)) : Intinf =
+  let
+    fun numerator_loop { m : nat | m > 1 } .<m>. (i : int(m)) : Intinf =
+      case+ i of
+        | 1 => int2intinf(n)
+        | 2 => int2intinf(n - 1) * n
+        | i =>> (n + 1 - i) * numerator_loop(i - 1)
+  in
+    case+ k of
+      | 0 => int2intinf(1)
+      | 1 => int2intinf(n)
+      | k =>> numerator_loop(k) / fact(k)
+  end
diff --git a/ats-src/number-theory-ffi.dats b/ats-src/number-theory-ffi.dats
new file mode 100644
--- /dev/null
+++ b/ats-src/number-theory-ffi.dats
@@ -0,0 +1,39 @@
+#define ATS_MAINATSFLAG 1
+
+#include "share/atspre_staload.hats"
+#include "ats-src/number-theory.dats"
+
+extern
+fun totient_ats { k : nat | k >= 2 } (int(k)) : int =
+  "mac#"
+
+extern
+fun count_divisors_ats { k : nat | k >= 2 } (int(k)) : int =
+  "mac#"
+
+extern
+fun little_omega_ats { n : nat | n > 0 } : int(n) -> int =
+  "mac#"
+
+extern
+fun gcd_ats : {n : nat} {m : nat} (int(m), int(n)) -> int =
+  "mac#"
+
+extern
+fun is_perfect_ats : intGte(1) -> bool =
+  "mac#"
+
+implement gcd_ats (m, n) =
+  gcd(m, n)
+
+implement count_divisors_ats (n) =
+  count_divisors(n)
+
+implement totient_ats (n) =
+  totient(n)
+
+implement little_omega_ats (n) =
+  little_omega(n)
+
+implement is_perfect_ats (n) =
+  is_perfect(n)
diff --git a/ats-src/number-theory.dats b/ats-src/number-theory.dats
new file mode 100644
--- /dev/null
+++ b/ats-src/number-theory.dats
@@ -0,0 +1,129 @@
+#include "share/atspre_staload.hats"
+#include "ats-src/numerics.dats"
+#include "contrib/atscntrb-hx-intinf/DATS/intinf_t.dats"
+#include "contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats"
+
+staload "libats/libc/SATS/math.sats"
+staload UN = "prelude/SATS/unsafe.sats"
+staload "contrib/atscntrb-hx-intinf/SATS/intinf.sats"
+staload "contrib/atscntrb-hx-intinf/SATS/intinf_t.sats"
+
+#define ATS_MAINATSFLAG 1
+
+// Existential types for even and odd numbers. These are only usable with the
+// ATS library.
+typedef Even = [ n : nat ] int(2 * n)
+
+typedef Odd = [ n : nat ] int(2 * n+1)
+
+// m | n
+fn divides(m : int, n : int) :<> bool =
+  n % m = 0
+
+fnx gcd {k : nat}{l : nat} (m : int(l), n : int(k)) : int =
+  if n > 0 then
+    gcd(n, witness(m % n))
+  else
+    m
+
+fn lcm {k : nat}{l : nat} (m : int(l), n : int(k)) : int =
+  (m / gcd(m, n)) * n
+
+// stream all divisors of an integer.
+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) =
+      if acc >= n then
+        $ldelay(stream_vt_cons(acc, $ldelay(stream_vt_nil)))
+      else
+        if n % acc = 0 then
+          $ldelay(stream_vt_cons(n, loop(n, acc + 1)))
+        else
+          $ldelay(stream_vt_nil)
+  in
+    loop(n, 1)
+  end
+
+fn count_divisors(n : intGte(1)) :<> int =
+  let
+    fun loop {k : nat}{ m : nat | m > 0 && k >= m } .<k-m>. (n : int(k), acc : int(m)) :<> int =
+      if acc >= n then
+        1
+      else
+        if n % acc = 0 then
+          1 + loop(n, acc + 1)
+        else
+          loop(n, acc + 1)
+  in
+    loop(n, 1)
+  end
+
+fn sum_divisors(n : intGte(1)) :<> int =
+  let
+    fun loop {k : nat}{ m : nat | m > 0 && k >= m } .<k-m>. (n : int(k), acc : int(m)) :<> int =
+      if acc >= n then
+        0
+      else
+        if n % acc = 0 then
+          acc + loop(n, acc + 1)
+        else
+          loop(n, acc + 1)
+  in
+    loop(n, 1)
+  end
+
+fn is_perfect(n : intGte(1)) :<> bool =
+  sum_divisors(n) = n
+
+// distinct prime divisors
+fn little_omega(n : intGte(1)) :<> int =
+  let
+    fun loop {k : nat}{ m : nat | m > 0 && k >= m } .<k-m>. (n : int(k), acc : int(m)) :<> int =
+      if acc >= n then
+        if is_prime(n) then
+          1
+        else
+          0
+      else
+        if n % acc = 0 && is_prime(acc) then
+          1 + loop(n, acc + 1)
+        else
+          loop(n, acc + 1)
+  in
+    loop(n, 1)
+  end
+
+// Euler's totient function.
+fn totient(n : intGte(1)) : int =
+  case+ n of
+    | 1 => 1
+    | n =>> 
+      begin
+        let
+          fnx loop { k : nat | k >= 2 }{ m : nat | m > 0 && k >= m } .<k-m>. (i : int(m), n : int(k)) : int =
+            if i >= n then
+              if is_prime(n) then
+                n - 1
+              else
+                n
+            else
+              if n % i = 0 && is_prime(i) && i != n then
+                (loop(i + 1, n) / i) * (i - 1)
+              else
+                loop(i + 1, n)
+        in
+          loop(1, n)
+        end
+      end
+
+// The sum of all φ(m) for m between 1 and n 
+fun totient_sum(n : intGte(1)) : Intinf =
+  let
+    fnx loop { n : nat | n >= 1 }{ m : nat | m >= n } .<m-n>. (i : int(n), bound : int(m)) : Intinf =
+      if i < bound then
+        loop(i + 1, bound) + witness(totient(i))
+      else
+        int2intinf(witness(totient(i)))
+  in
+    loop(1, n)
+  end
diff --git a/ats-src/numerics-ffi.dats b/ats-src/numerics-ffi.dats
new file mode 100644
--- /dev/null
+++ b/ats-src/numerics-ffi.dats
@@ -0,0 +1,19 @@
+#define ATS_MAINATSFLAG 1
+
+#include "share/atspre_staload.hats"
+#include "ats-src/numerics.dats"
+
+extern
+fun is_prime_ats { n : nat | n > 0 } : int(n) -> bool =
+  "mac#"
+
+extern
+fun is_even_ats { n : nat | n > 0 } : int(n) -> bool =
+  "mac#"
+
+extern
+fun is_odd_ats { n : nat | n > 0 } : int(n) -> bool =
+  "mac#"
+
+implement is_prime_ats (n) =
+  is_prime(n)
diff --git a/ats-src/numerics.dats b/ats-src/numerics.dats
new file mode 100644
--- /dev/null
+++ b/ats-src/numerics.dats
@@ -0,0 +1,62 @@
+#define ATS_MAINATSFLAG 1
+
+#include "share/atspre_staload.hats"
+
+staload "libats/libc/SATS/math.sats"
+staload UN = "prelude/SATS/unsafe.sats"
+
+// Fast integer exponentiation. Modified from an example in the manual.
+fun exp {n : nat} .<n>. (x : int, n : int(n)) :<> int =
+  case+ x of
+    | 0 => 0
+    | x => 
+      begin
+        if n > 0 then
+          let
+            var n2 = half(n)
+            var i2 = n % 2
+          in
+            if i2 = 0 then
+              exp(x * x, n2)
+            else
+              x * exp(x * x, n2)
+          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
+    var bound: int = g0float2int(sqrt_float(g0int2float(k)))
+  in
+    witness(bound)
+  end
+
+// function to check primality
+fn is_prime(k : intGt(0)) :<> bool =
+  case+ k of
+    | 1 => false
+    | k => 
+      begin
+        let
+          fnx loop {n : nat}{m : nat} .<max(0,m-n)>. (i : int(n), bound : int(m)) :<> bool =
+            if i < bound then
+              if k % i = 0 then
+                false
+              else
+                loop(i + 1, bound)
+            else
+              if i = bound then
+                if k % i = 0 then
+                  false
+                else
+                  true
+              else
+                true
+        in
+          loop(2, sqrt_int(k))
+        end
+      end
diff --git a/bench/Bench.hs b/bench/Bench.hs
new file mode 100644
--- /dev/null
+++ b/bench/Bench.hs
@@ -0,0 +1,30 @@
+module Main where
+
+import           Criterion.Main
+import           Numeric.Integer
+import           Numeric.NumberTheory
+import           Numeric.Pure
+
+main :: IO ()
+main =
+    defaultMain [ bgroup "primality check"
+                      [ bench "isPrime" $ nf isPrime 2017
+                      , bench "hsIsPrime" $ nf hsIsPrime (2017 :: Int)
+                      ]
+                , bgroup "φ"
+                      [ bench "totient" $ nf totient 2016
+                      , bench "hsTotient" $ nf (hsTotient :: Int -> Int) 2016
+                      ]
+                , bgroup "τ"
+                      [ bench "tau" $ nf tau 3018
+                      , bench "hsTau" $ nf hsTau (3018 :: Int)
+                      ]
+                , bgroup "ω"
+                      [ bench "littleOmega" $ nf littleOmega 91
+                      , bench "hsLittleOmega" $ nf hsLittleOmega (91 :: Int)
+                      ]
+                , bgroup "perfection check"
+                      [ bench "isPerfect" $ nf isPerfect 318
+                      , bench "hsIsPerfect" $ nf hsIsPerfect (318 :: Int)
+                      ]
+                ]
diff --git a/cabal.project.local b/cabal.project.local
new file mode 100644
--- /dev/null
+++ b/cabal.project.local
@@ -0,0 +1,9 @@
+constraints: fast-arithmetic +development
+optimization: 2
+with-compiler: ghc-8.2.2
+tests: True
+benchmarks: True
+documentation: True
+haddock-hoogle: True
+haddock-internal: True
+allow-boot-library-installs: True
diff --git a/cbits/number-theory.c b/cbits/number-theory.c
new file mode 100644
--- /dev/null
+++ b/cbits/number-theory.c
@@ -0,0 +1,11431 @@
+/*
+**
+** The C code is generated by [ATS/Postiats-0-3-8]
+** The starting compilation time is: 2018-1-4:  0h:59m
+**
+*/
+
+/*
+** 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-libgmp/SATS/gmp.sats: 1178(line=38, offs=1) -- 1233(line=43, offs=3)
+*/
+
+//
+#include \
+"atscntrb-libgmp/CATS/gmp.cats"
+//
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_vt.sats: 1806(line=48, offs=1) -- 1829(line=48, offs=24)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/math.sats: 1380(line=35, offs=1) -- 1426(line=38, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/math.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/SATS/intinf_t.sats: 1805(line=48, offs=1) -- 1828(line=48, offs=24)
+*/
+/*
+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_FILE_stdout)
+ATSdyncst_mac(atspre_FILE_stderr)
+ATSdyncst_mac(atscntrb_gmp_mpz_init_set_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_init_set_uint)
+ATSdyncst_mac(atscntrb_gmp_mpz_init_set_lint)
+ATSdyncst_mac(atscntrb_gmp_mpz_init_set_ulint)
+ATSdyncst_mac(atscntrb_gmp_mpz_clear)
+ATSdyncst_mac(atspre_ptr_free)
+ATSdyncst_mac(atscntrb_gmp_mpz_get_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_get_lint)
+ATSdyncst_mac(atscntrb_gmp_mpz_get_str_null)
+ATSdyncst_mac(atscntrb_gmp_mpz_out_str)
+ATSdyncst_mac(atspre_exit_errmsg)
+ATSdyncst_mac(atscntrb_gmp_mpz_neg1)
+ATSdyncst_mac(atscntrb_gmp_mpz_init)
+ATSdyncst_mac(atscntrb_gmp_mpz_neg2)
+ATSdyncst_mac(atscntrb_gmp_mpz_abs1)
+ATSdyncst_mac(atscntrb_gmp_mpz_abs2)
+ATSdyncst_mac(atscntrb_gmp_mpz_init_set_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_mul2_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_add2_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_add3_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_add2_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_add3_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_sub2_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_sub3_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_sub2_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_sub3_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_mul2_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_mul3_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_mul3_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_tdiv2_q_uint)
+ATSdyncst_mac(atspre_g1int2uint_int_uint)
+ATSdyncst_mac(atscntrb_gmp_mpz_tdiv3_q_uint)
+ATSdyncst_mac(atscntrb_gmp_mpz_tdiv2_q_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_tdiv3_q_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_fdiv_uint)
+ATSdyncst_mac(atscntrb_gmp_mpz_mod2_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_mod3_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_cmp_int)
+ATSdyncst_mac(atscntrb_gmp_mpz_cmp_mpz)
+ATSdyncst_mac(atscntrb_gmp_mpz_ui_pow_ui)
+ATSdyncst_mac(atspre_g1int2uint_int_ulint)
+ATSdyncst_mac(atscntrb_gmp_mpz_pow_uint)
+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(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_
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2025(line=63, offs=1) -- 2120(line=66, offs=43)
+*/
+ATSassume(ATSCNTRB_056_HX_056_intinf__intinf_vtype) ;
+#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)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__intinf_make_int__27(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__intinf_make_uint__28(atstkind_t0ype(atstype_uint)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__intinf_make_lint__29(atstkind_t0ype(atstype_lint)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__intinf_make_ulint__30(atstkind_t0ype(atstype_ulint)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_t__intinf_get_int__31(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_lint)
+ATSCNTRB_056_HX_056_intinf_t__intinf_get_lint__32(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__intinf_get_string__33(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_t__print_intinf__34(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_t__prerr_intinf__35(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_t__fprint_intinf__36(atstkind_type(atstype_ptrk), atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_t__fprint_intinf_base__37(atstkind_type(atstype_ptrk), atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__neg_intinf__38(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__abs_intinf__39(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__succ_intinf__40(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__pred_intinf__41(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__add_intinf_int__42(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__add_int_intinf__43(atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__add_intinf_intinf__44(atstkind_type(atstype_ptrk), atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__sub_intinf_int__45(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__sub_int_intinf__46(atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__sub_intinf_intinf__47(atstkind_type(atstype_ptrk), atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__mul_intinf_int__48(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__mul_int_intinf__49(atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__mul_intinf_intinf__50(atstkind_type(atstype_ptrk), atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__div_intinf_int__51(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__div_intinf_intinf__52(atstkind_type(atstype_ptrk), atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_t__nmod_intinf_int__53(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_t__compare_intinf_int__54(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_t__compare_int_intinf__55(atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_t__compare_intinf_intinf__56(atstkind_type(atstype_ptrk), atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__pow_int_int__57(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__pow_intinf_int__58(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__59(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_uint__60(atstkind_t0ype(atstype_uint)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_lint__61(atstkind_t0ype(atstype_lint)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_ulint__62(atstkind_t0ype(atstype_ulint)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__63(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_get_int__64(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_lint)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_get_lint__65(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_get_strptr__66(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__fprint_intinf_base__67(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__68(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__neg_intinf1__69(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__abs_intinf0__70(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__abs_intinf1__71(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__succ_intinf0__72(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__succ_intinf1__73(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__pred_intinf0__74(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__pred_intinf1__75(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__76(atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__77(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_int_intinf0__78(atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_int_intinf1__79(atstkind_t0ype(atstype_int), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__80(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf1_int__81(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__82(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf1_intinf0__83(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf1_intinf1__84(atsrefarg0_type(atstkind_type(atstype_ptrk)), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__sub_intinf0_int__85(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__sub_intinf1_int__86(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__sub_int_intinf0__87(atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__sub_int_intinf1__88(atstkind_t0ype(atstype_int), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__sub_intinf0_intinf1__89(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__sub_intinf1_intinf0__90(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__sub_intinf1_intinf1__91(atsrefarg0_type(atstkind_type(atstype_ptrk)), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_int_intinf0__92(atstkind_t0ype(atstype_int), atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_int_intinf1__93(atstkind_t0ype(atstype_int), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__94(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf1_int__95(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__96(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf1_intinf0__97(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_type(atstype_ptrk)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf1_intinf1__98(atsrefarg0_type(atstkind_type(atstype_ptrk)), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_int__99(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf1_int__100(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__101(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf1_intinf1__102(atsrefarg0_type(atstkind_type(atstype_ptrk)), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__ndiv_intinf0_int__103(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__ndiv_intinf1_int__104(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__ndiv_intinf1_intinf1__105(atsrefarg0_type(atstkind_type(atstype_ptrk)), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__nmod_intinf0_int__106(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__nmod_intinf1_int__107(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__nmod_intinf0_intinf1__108(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__nmod_intinf1_intinf1__109(atsrefarg0_type(atstkind_type(atstype_ptrk)), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__lt_intinf_int__110(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__lt_intinf_intinf__111(atsrefarg0_type(atstkind_type(atstype_ptrk)), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__lte_intinf_int__112(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__lte_intinf_intinf__113(atsrefarg0_type(atstkind_type(atstype_ptrk)), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__gt_intinf_int__114(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__gt_intinf_intinf__115(atsrefarg0_type(atstkind_type(atstype_ptrk)), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__gte_intinf_int__116(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__gte_intinf_intinf__117(atsrefarg0_type(atstkind_type(atstype_ptrk)), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__eq_intinf_int__118(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__eq_intinf_intinf__119(atsrefarg0_type(atstkind_type(atstype_ptrk)), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__neq_intinf_int__120(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__neq_intinf_intinf__121(atsrefarg0_type(atstkind_type(atstype_ptrk)), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__122(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__compare_int_intinf__123(atstkind_t0ype(atstype_int), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_intinf__124(atsrefarg0_type(atstkind_type(atstype_ptrk)), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__125(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__pow_intinf_int__126(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__print_intinf__127(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__prerr_intinf__128(atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+#if(0)
+#if(0)
+ATSextern()
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__fprint_intinf__129(atstkind_type(atstype_ptrk), atsrefarg0_type(atstkind_type(atstype_ptrk))) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+divides_130(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_132(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_134(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+divisors_136(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_137(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__138(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__138__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_141(atstkind_t0ype(atstype_int), atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_142(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_144(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int), atstype_bool) ;
+
+ATSstatic()
+atstype_boxed
+__patsfun_145(atstype_bool) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+count_divisors_146(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_147(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__138__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_151(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_152(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__138__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_155(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_157(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_158(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__138__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_161(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_162(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gte_g1int_int__138__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__166(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__166__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+totient_sum_169(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_170(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)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__add_intinf_int__42__1(atstkind_type(atstype_ptrk), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf1_int__81__1(atsrefarg0_type(atstkind_type(atstype_ptrk)), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__174() ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__174__1() ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__intinf_make_int__27__1(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__59__1(atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__174__2() ;
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_int)
+gcd_ats(atstkind_t0ype(atstype_int), 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_141, (atstkind_t0ype(atstype_int)), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+atstkind_t0ype(atstype_int) env0 ;
+} __patsfun_141__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_141__cfun
+(
+__patsfun_141__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_141(p_cenv->env0, arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_141__closureinit
+(
+__patsfun_141__closure_t0ype *p_cenv, atstkind_t0ype(atstype_int) env0
+)
+{
+p_cenv->env0 = env0 ;
+p_cenv->cfun = __patsfun_141__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_141__closurerize
+(
+atstkind_t0ype(atstype_int) env0
+)
+{
+return __patsfun_141__closureinit(ATS_MALLOC(sizeof(__patsfun_141__closure_t0ype)), env0) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_142, (), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+} __patsfun_142__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_142__cfun
+(
+__patsfun_142__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_142(arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_142__closureinit
+(
+__patsfun_142__closure_t0ype *p_cenv
+)
+{
+p_cenv->cfun = __patsfun_142__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_142__closurerize
+(
+// argumentless
+)
+{
+return __patsfun_142__closureinit(ATS_MALLOC(sizeof(__patsfun_142__closure_t0ype))) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_144, (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_144__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_144__cfun
+(
+__patsfun_144__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_144(p_cenv->env0, p_cenv->env1, arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_144__closureinit
+(
+__patsfun_144__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_144__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_144__closurerize
+(
+atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1
+)
+{
+return __patsfun_144__closureinit(ATS_MALLOC(sizeof(__patsfun_144__closure_t0ype)), env0, env1) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+ATSclosurerize_beg(__patsfun_145, (), (atstype_bool), atstype_boxed)
+typedef
+ATSstruct {
+atstype_funptr cfun ;
+} __patsfun_145__closure_t0ype ;
+ATSstatic()
+atstype_boxed
+__patsfun_145__cfun
+(
+__patsfun_145__closure_t0ype *p_cenv, atstype_bool arg0
+)
+{
+ATSFCreturn(__patsfun_145(arg0)) ;
+} /* end of [cfun] */
+ATSstatic()
+atstype_cloptr
+__patsfun_145__closureinit
+(
+__patsfun_145__closure_t0ype *p_cenv
+)
+{
+p_cenv->cfun = __patsfun_145__cfun ;
+return p_cenv ;
+} /* end of [closureinit] */
+ATSstatic()
+atstype_cloptr
+__patsfun_145__closurerize
+(
+// argumentless
+)
+{
+return __patsfun_145__closureinit(ATS_MALLOC(sizeof(__patsfun_145__closure_t0ype))) ;
+} /* end of [closurerize] */
+ATSclosurerize_end()
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 291(line=11, offs=7) -- 292(line=11, offs=8)
+*/
+ATSINSlab(__atstmplab0):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 330(line=14, offs=9) -- 571(line=25, offs=12)
+*/
+ATSif(
+tmp1
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 354(line=15, offs=11) -- 546(line=23, offs=14)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 374(line=16, offs=17) -- 376(line=16, offs=19)
+*/
+/*
+ATSINStmpdec(tmpref6) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 403(line=17, offs=17) -- 405(line=17, offs=19)
+*/
+/*
+ATSINStmpdec(tmpref7) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 439(line=19, offs=13) -- 532(line=22, offs=33)
+*/
+ATSif(
+tmp8
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 354(line=15, offs=11) -- 546(line=23, offs=14)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 696(line=32, offs=3) -- 790(line=36, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 708(line=33, offs=9) -- 713(line=33, offs=14)
+*/
+/*
+ATSINStmpdec(tmpref18) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 879(line=41, offs=7) -- 880(line=41, offs=8)
+*/
+ATSINSlab(__atstmplab3):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 1031(line=46, offs=13) -- 1347(line=58, offs=21)
+*/
+ATSif(
+tmp23
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 1063(line=47, offs=15) -- 1156(line=50, offs=35)
+*/
+ATSif(
+tmp28
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 1188(line=52, offs=15) -- 1347(line=58, offs=21)
+*/
+ATSif(
+tmp33
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 1222(line=53, offs=17) -- 1307(line=56, offs=23)
+*/
+ATSif(
+tmp38
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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] */
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1973(line=57, offs=3) -- 2035(line=58, offs=38)
+*/
+/*
+local: 
+global: intinf_make_int$27$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__intinf_make_int__27(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret43, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp44, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1955(line=56, offs=1) -- 2035(line=58, offs=38)
+*/
+ATSINSflab(__patsflab_intinf_make_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2012(line=58, offs=15) -- 2033(line=58, offs=36)
+*/
+ATSINSmove(tmp44, PMVtmpltcst(intinf_make_int<>)(arg0)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2000(line=58, offs=3) -- 2035(line=58, offs=38)
+*/
+ATSINSmove(tmpret43, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp44)) ;
+ATSfunbody_end()
+ATSreturn(tmpret43) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__intinf_make_int__27] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2075(line=62, offs=3) -- 2139(line=63, offs=39)
+*/
+/*
+local: 
+global: intinf_make_uint$28$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__intinf_make_uint__28(atstkind_t0ype(atstype_uint) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret45, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp46, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2056(line=61, offs=1) -- 2139(line=63, offs=39)
+*/
+ATSINSflab(__patsflab_intinf_make_uint):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2115(line=63, offs=15) -- 2137(line=63, offs=37)
+*/
+ATSINSmove(tmp46, PMVtmpltcst(intinf_make_uint<>)(arg0)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2103(line=63, offs=3) -- 2139(line=63, offs=39)
+*/
+ATSINSmove(tmpret45, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp46)) ;
+ATSfunbody_end()
+ATSreturn(tmpret45) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__intinf_make_uint__28] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2179(line=67, offs=3) -- 2243(line=68, offs=39)
+*/
+/*
+local: 
+global: intinf_make_lint$29$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__intinf_make_lint__29(atstkind_t0ype(atstype_lint) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret47, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp48, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2160(line=66, offs=1) -- 2243(line=68, offs=39)
+*/
+ATSINSflab(__patsflab_intinf_make_lint):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2219(line=68, offs=15) -- 2241(line=68, offs=37)
+*/
+ATSINSmove(tmp48, PMVtmpltcst(intinf_make_lint<>)(arg0)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2207(line=68, offs=3) -- 2243(line=68, offs=39)
+*/
+ATSINSmove(tmpret47, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp48)) ;
+ATSfunbody_end()
+ATSreturn(tmpret47) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__intinf_make_lint__29] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2284(line=72, offs=3) -- 2350(line=73, offs=40)
+*/
+/*
+local: 
+global: intinf_make_ulint$30$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__intinf_make_ulint__30(atstkind_t0ype(atstype_ulint) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret49, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp50, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2264(line=71, offs=1) -- 2350(line=73, offs=40)
+*/
+ATSINSflab(__patsflab_intinf_make_ulint):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2325(line=73, offs=15) -- 2348(line=73, offs=38)
+*/
+ATSINSmove(tmp50, PMVtmpltcst(intinf_make_ulint<>)(arg0)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2313(line=73, offs=3) -- 2350(line=73, offs=40)
+*/
+ATSINSmove(tmpret49, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp50)) ;
+ATSfunbody_end()
+ATSreturn(tmpret49) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__intinf_make_ulint__30] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2412(line=80, offs=3) -- 2544(line=92, offs=2)
+*/
+/*
+local: 
+global: intinf_get_int$31$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_t__intinf_get_int__31(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret51, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2395(line=79, offs=1) -- 2544(line=92, offs=2)
+*/
+ATSINSflab(__patsflab_intinf_get_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2418(line=80, offs=9) -- 2544(line=92, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2485(line=88, offs=11) -- 2505(line=88, offs=31)
+*/
+ATSINSmove(tmpret51, PMVtmpltcst(intinf_get_int<>)(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2418(line=80, offs=9) -- 2544(line=92, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret51) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__intinf_get_int__31] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2614(line=97, offs=3) -- 2747(line=109, offs=2)
+*/
+/*
+local: 
+global: intinf_get_lint$32$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_lint)
+ATSCNTRB_056_HX_056_intinf_t__intinf_get_lint__32(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret52, atstkind_t0ype(atstype_lint)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2596(line=96, offs=1) -- 2747(line=109, offs=2)
+*/
+ATSINSflab(__patsflab_intinf_get_lint):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2620(line=97, offs=9) -- 2747(line=109, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2687(line=105, offs=11) -- 2708(line=105, offs=32)
+*/
+ATSINSmove(tmpret52, PMVtmpltcst(intinf_get_lint<>)(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2620(line=97, offs=9) -- 2747(line=109, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret52) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__intinf_get_lint__32] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2841(line=116, offs=3) -- 2991(line=127, offs=4)
+*/
+/*
+local: 
+global: intinf_get_string$33$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__intinf_get_string__33(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret53, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp54, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2821(line=115, offs=1) -- 2991(line=127, offs=4)
+*/
+ATSINSflab(__patsflab_intinf_get_string):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2853(line=116, offs=15) -- 2991(line=127, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2909(line=122, offs=11) -- 2940(line=122, offs=42)
+*/
+ATSINSmove(tmp54, PMVtmpltcst(intinf_get_strptr<>)(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2968(line=126, offs=3) -- 2986(line=126, offs=21)
+*/
+ATSINSmove(tmpret53, ATSPMVcastfn(strptr2string, atstkind_type(atstype_ptrk), tmp54)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2853(line=116, offs=15) -- 2991(line=127, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret53) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__intinf_get_string__33] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3084(line=134, offs=3) -- 3118(line=134, offs=37)
+*/
+/*
+local: 
+global: print_intinf$34$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_t__print_intinf__34(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret55) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3069(line=133, offs=1) -- 3118(line=134, offs=37)
+*/
+ATSINSflab(__patsflab_print_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3090(line=134, offs=9) -- 3118(line=134, offs=37)
+*/
+ATSINSmove_void(tmpret55, PMVtmpltcst(fprint_intinf<>)(atspre_FILE_stdout, arg0)) ;
+
+ATSfunbody_end()
+ATSreturn_void(tmpret55) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__print_intinf__34] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3154(line=138, offs=3) -- 3188(line=138, offs=37)
+*/
+/*
+local: 
+global: prerr_intinf$35$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_t__prerr_intinf__35(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret56) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3139(line=137, offs=1) -- 3188(line=138, offs=37)
+*/
+ATSINSflab(__patsflab_prerr_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3160(line=138, offs=9) -- 3188(line=138, offs=37)
+*/
+ATSINSmove_void(tmpret56, PMVtmpltcst(fprint_intinf<>)(atspre_FILE_stderr, arg0)) ;
+
+ATSfunbody_end()
+ATSreturn_void(tmpret56) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__prerr_intinf__35] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3228(line=143, offs=3) -- 3277(line=143, offs=52)
+*/
+/*
+local: 
+global: fprint_intinf$36$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_t__fprint_intinf__36(atstkind_type(atstype_ptrk) arg0, atstkind_type(atstype_ptrk) arg1)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret57) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3212(line=142, offs=1) -- 3277(line=143, offs=52)
+*/
+ATSINSflab(__patsflab_fprint_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3239(line=143, offs=14) -- 3277(line=143, offs=52)
+*/
+ATSINSmove_void(tmpret57, PMVtmpltcst(fprint_intinf_base<>)(arg0, arg1, ATSPMVi0nt(10))) ;
+
+ATSfunbody_end()
+ATSreturn_void(tmpret57) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__fprint_intinf__36] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3343(line=150, offs=3) -- 3487(line=161, offs=2)
+*/
+/*
+local: 
+global: fprint_intinf_base$37$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_t__fprint_intinf_base__37(atstkind_type(atstype_ptrk) arg0, atstkind_type(atstype_ptrk) arg1, atstkind_t0ype(atstype_int) arg2)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret58) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3322(line=149, offs=1) -- 3487(line=161, offs=2)
+*/
+ATSINSflab(__patsflab_fprint_intinf_base):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3360(line=151, offs=1) -- 3487(line=161, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3415(line=158, offs=3) -- 3452(line=158, offs=40)
+*/
+ATSINSmove_void(tmpret58, PMVtmpltcst(fprint_intinf_base<>)(arg0, ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg1)), arg2)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3360(line=151, offs=1) -- 3487(line=161, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret58) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__fprint_intinf_base__37] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3568(line=168, offs=3) -- 3709(line=180, offs=4)
+*/
+/*
+local: 
+global: neg_intinf$38$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__neg_intinf__38(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret59, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp60, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3555(line=167, offs=1) -- 3709(line=180, offs=4)
+*/
+ATSINSflab(__patsflab_neg_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3574(line=168, offs=9) -- 3709(line=180, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3629(line=174, offs=11) -- 3646(line=174, offs=28)
+*/
+ATSINSmove(tmp60, PMVtmpltcst(neg_intinf1<>)(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3689(line=179, offs=3) -- 3704(line=179, offs=18)
+*/
+ATSINSmove(tmpret59, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp60)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3574(line=168, offs=9) -- 3709(line=180, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret59) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__neg_intinf__38] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3791(line=187, offs=3) -- 3936(line=200, offs=4)
+*/
+/*
+local: 
+global: abs_intinf$39$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__abs_intinf__39(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret61, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp62, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3778(line=186, offs=1) -- 3936(line=200, offs=4)
+*/
+ATSINSflab(__patsflab_abs_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3797(line=187, offs=9) -- 3936(line=200, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3856(line=194, offs=11) -- 3873(line=194, offs=28)
+*/
+ATSINSmove(tmp62, PMVtmpltcst(abs_intinf1<>)(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3916(line=199, offs=3) -- 3931(line=199, offs=18)
+*/
+ATSINSmove(tmpret61, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp62)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 3797(line=187, offs=9) -- 3936(line=200, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret61) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__abs_intinf__39] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4016(line=206, offs=12) -- 4043(line=206, offs=39)
+*/
+/*
+local: 
+global: succ_intinf$40$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__succ_intinf__40(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret63, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4005(line=206, offs=1) -- 4043(line=206, offs=39)
+*/
+ATSINSflab(__patsflab_succ_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4022(line=206, offs=18) -- 4043(line=206, offs=39)
+*/
+ATSINSmove(tmpret63, PMVtmpltcst(add_intinf_int<>)(arg0, ATSPMVi0nt(1))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret63) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__succ_intinf__40] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4075(line=209, offs=12) -- 4102(line=209, offs=39)
+*/
+/*
+local: 
+global: pred_intinf$41$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__pred_intinf__41(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret64, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4064(line=209, offs=1) -- 4102(line=209, offs=39)
+*/
+ATSINSflab(__patsflab_pred_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4081(line=209, offs=18) -- 4102(line=209, offs=39)
+*/
+ATSINSmove(tmpret64, PMVtmpltcst(sub_intinf_int<>)(arg0, ATSPMVi0nt(1))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret64) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__pred_intinf__41] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4162(line=216, offs=3) -- 4320(line=230, offs=4)
+*/
+/*
+local: 
+global: add_intinf_int$42$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__add_intinf_int__42(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret65, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp66, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4145(line=215, offs=1) -- 4320(line=230, offs=4)
+*/
+ATSINSflab(__patsflab_add_intinf_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4171(line=216, offs=12) -- 4320(line=230, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4232(line=224, offs=3) -- 4258(line=224, offs=29)
+*/
+ATSINSmove(tmp66, PMVtmpltcst(add_intinf1_int<>)(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4300(line=229, offs=3) -- 4315(line=229, offs=18)
+*/
+ATSINSmove(tmpret65, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp66)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4171(line=216, offs=12) -- 4320(line=230, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret65) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__add_intinf_int__42] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4386(line=235, offs=3) -- 4542(line=249, offs=4)
+*/
+/*
+local: 
+global: add_int_intinf$43$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__add_int_intinf__43(atstkind_t0ype(atstype_int) arg0, atstkind_type(atstype_ptrk) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret67, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp68, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4369(line=234, offs=1) -- 4542(line=249, offs=4)
+*/
+ATSINSflab(__patsflab_add_int_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4395(line=235, offs=12) -- 4542(line=249, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4455(line=243, offs=3) -- 4480(line=243, offs=28)
+*/
+ATSINSmove(tmp68, PMVtmpltcst(add_int_intinf1<>)(arg0, ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg1)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4522(line=248, offs=3) -- 4537(line=248, offs=18)
+*/
+ATSINSmove(tmpret67, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp68)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4395(line=235, offs=12) -- 4542(line=249, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret67) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__add_int_intinf__43] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4611(line=254, offs=3) -- 4840(line=272, offs=4)
+*/
+/*
+local: 
+global: add_intinf_intinf$44$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__add_intinf_intinf__44(atstkind_type(atstype_ptrk) arg0, atstkind_type(atstype_ptrk) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret69, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp70, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4591(line=253, offs=1) -- 4840(line=272, offs=4)
+*/
+ATSINSflab(__patsflab_add_intinf_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4620(line=254, offs=12) -- 4840(line=272, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4717(line=265, offs=3) -- 4746(line=265, offs=32)
+*/
+ATSINSmove(tmp70, PMVtmpltcst(add_intinf1_intinf1<>)(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)), ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg1)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4820(line=271, offs=3) -- 4835(line=271, offs=18)
+*/
+ATSINSmove(tmpret69, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp70)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4620(line=254, offs=12) -- 4840(line=272, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret69) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__add_intinf_intinf__44] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4933(line=279, offs=3) -- 5090(line=293, offs=4)
+*/
+/*
+local: 
+global: sub_intinf_int$45$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__sub_intinf_int__45(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret71, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp72, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4916(line=278, offs=1) -- 5090(line=293, offs=4)
+*/
+ATSINSflab(__patsflab_sub_intinf_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4942(line=279, offs=12) -- 5090(line=293, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5002(line=287, offs=3) -- 5027(line=287, offs=28)
+*/
+ATSINSmove(tmp72, PMVtmpltcst(sub_intinf1_int<>)(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5070(line=292, offs=3) -- 5085(line=292, offs=18)
+*/
+ATSINSmove(tmpret71, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp72)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4942(line=279, offs=12) -- 5090(line=293, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret71) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__sub_intinf_int__45] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5156(line=298, offs=3) -- 5313(line=312, offs=4)
+*/
+/*
+local: 
+global: sub_int_intinf$46$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__sub_int_intinf__46(atstkind_t0ype(atstype_int) arg0, atstkind_type(atstype_ptrk) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret73, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp74, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5139(line=297, offs=1) -- 5313(line=312, offs=4)
+*/
+ATSINSflab(__patsflab_sub_int_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5165(line=298, offs=12) -- 5313(line=312, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5226(line=306, offs=3) -- 5251(line=306, offs=28)
+*/
+ATSINSmove(tmp74, PMVtmpltcst(sub_int_intinf1<>)(arg0, ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg1)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5293(line=311, offs=3) -- 5308(line=311, offs=18)
+*/
+ATSINSmove(tmpret73, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp74)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5165(line=298, offs=12) -- 5313(line=312, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret73) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__sub_int_intinf__46] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5382(line=317, offs=3) -- 5616(line=335, offs=4)
+*/
+/*
+local: 
+global: sub_intinf_intinf$47$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__sub_intinf_intinf__47(atstkind_type(atstype_ptrk) arg0, atstkind_type(atstype_ptrk) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret75, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp76, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5362(line=316, offs=1) -- 5616(line=335, offs=4)
+*/
+ATSINSflab(__patsflab_sub_intinf_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5391(line=317, offs=12) -- 5616(line=335, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5490(line=328, offs=3) -- 5520(line=328, offs=33)
+*/
+ATSINSmove(tmp76, PMVtmpltcst(sub_intinf1_intinf1<>)(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)), ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg1)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5596(line=334, offs=3) -- 5611(line=334, offs=18)
+*/
+ATSINSmove(tmpret75, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp76)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5391(line=317, offs=12) -- 5616(line=335, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret75) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__sub_intinf_intinf__47] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5709(line=342, offs=3) -- 5865(line=356, offs=4)
+*/
+/*
+local: 
+global: mul_intinf_int$48$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__mul_intinf_int__48(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret77, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp78, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5692(line=341, offs=1) -- 5865(line=356, offs=4)
+*/
+ATSINSflab(__patsflab_mul_intinf_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5718(line=342, offs=12) -- 5865(line=356, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5778(line=350, offs=3) -- 5803(line=350, offs=28)
+*/
+ATSINSmove(tmp78, PMVtmpltcst(mul_intinf1_int<>)(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5845(line=355, offs=3) -- 5860(line=355, offs=18)
+*/
+ATSINSmove(tmpret77, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp78)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5718(line=342, offs=12) -- 5865(line=356, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret77) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__mul_intinf_int__48] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5931(line=361, offs=3) -- 6087(line=375, offs=4)
+*/
+/*
+local: 
+global: mul_int_intinf$49$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__mul_int_intinf__49(atstkind_t0ype(atstype_int) arg0, atstkind_type(atstype_ptrk) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret79, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp80, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5914(line=360, offs=1) -- 6087(line=375, offs=4)
+*/
+ATSINSflab(__patsflab_mul_int_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5940(line=361, offs=12) -- 6087(line=375, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6000(line=369, offs=3) -- 6025(line=369, offs=28)
+*/
+ATSINSmove(tmp80, PMVtmpltcst(mul_int_intinf1<>)(arg0, ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg1)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6067(line=374, offs=3) -- 6082(line=374, offs=18)
+*/
+ATSINSmove(tmpret79, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp80)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 5940(line=361, offs=12) -- 6087(line=375, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret79) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__mul_int_intinf__49] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6156(line=380, offs=3) -- 6387(line=398, offs=4)
+*/
+/*
+local: 
+global: mul_intinf_intinf$50$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__mul_intinf_intinf__50(atstkind_type(atstype_ptrk) arg0, atstkind_type(atstype_ptrk) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret81, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp82, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6136(line=379, offs=1) -- 6387(line=398, offs=4)
+*/
+ATSINSflab(__patsflab_mul_intinf_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6165(line=380, offs=12) -- 6387(line=398, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6264(line=391, offs=3) -- 6293(line=391, offs=32)
+*/
+ATSINSmove(tmp82, PMVtmpltcst(mul_intinf1_intinf1<>)(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)), ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg1)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6367(line=397, offs=3) -- 6382(line=397, offs=18)
+*/
+ATSINSmove(tmpret81, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp82)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6165(line=380, offs=12) -- 6387(line=398, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret81) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__mul_intinf_intinf__50] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6480(line=405, offs=3) -- 6639(line=419, offs=4)
+*/
+/*
+local: 
+global: div_intinf_int$51$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__div_intinf_int__51(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret83, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp84, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6463(line=404, offs=1) -- 6639(line=419, offs=4)
+*/
+ATSINSflab(__patsflab_div_intinf_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6489(line=405, offs=12) -- 6639(line=419, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6550(line=413, offs=3) -- 6576(line=413, offs=29)
+*/
+ATSINSmove(tmp84, PMVtmpltcst(div_intinf1_int<>)(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6619(line=418, offs=3) -- 6634(line=418, offs=18)
+*/
+ATSINSmove(tmpret83, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp84)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6489(line=405, offs=12) -- 6639(line=419, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret83) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__div_intinf_int__51] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6708(line=424, offs=3) -- 6939(line=442, offs=4)
+*/
+/*
+local: 
+global: div_intinf_intinf$52$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__div_intinf_intinf__52(atstkind_type(atstype_ptrk) arg0, atstkind_type(atstype_ptrk) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret85, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp86, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6688(line=423, offs=1) -- 6939(line=442, offs=4)
+*/
+ATSINSflab(__patsflab_div_intinf_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6717(line=424, offs=12) -- 6939(line=442, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6816(line=435, offs=3) -- 6845(line=435, offs=32)
+*/
+ATSINSmove(tmp86, PMVtmpltcst(div_intinf1_intinf1<>)(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)), ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg1)))) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6919(line=441, offs=3) -- 6934(line=441, offs=18)
+*/
+ATSINSmove(tmpret85, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp86)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 6717(line=424, offs=12) -- 6939(line=442, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret85) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__div_intinf_intinf__52] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7033(line=449, offs=3) -- 7172(line=461, offs=2)
+*/
+/*
+local: 
+global: nmod_intinf_int$53$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_t__nmod_intinf_int__53(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret87, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7015(line=448, offs=1) -- 7172(line=461, offs=2)
+*/
+ATSINSflab(__patsflab_nmod_intinf_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7042(line=449, offs=12) -- 7172(line=461, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7108(line=457, offs=11) -- 7134(line=457, offs=37)
+*/
+ATSINSmove(tmpret87, PMVtmpltcst(nmod_intinf1_int<>)(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)), arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7042(line=449, offs=12) -- 7172(line=461, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret87) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__nmod_intinf_int__53] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7267(line=468, offs=3) -- 7415(line=479, offs=4)
+*/
+/*
+local: 
+global: compare_intinf_int$54$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_t__compare_intinf_int__54(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret88, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7246(line=467, offs=1) -- 7415(line=479, offs=4)
+*/
+ATSINSflab(__patsflab_compare_intinf_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7276(line=468, offs=12) -- 7415(line=479, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7333(line=474, offs=11) -- 7362(line=474, offs=40)
+*/
+ATSINSmove(tmpret88, PMVtmpltcst(compare_intinf_int<>)(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)), arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7276(line=468, offs=12) -- 7415(line=479, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret88) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__compare_intinf_int__54] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7492(line=484, offs=3) -- 7640(line=495, offs=4)
+*/
+/*
+local: 
+global: compare_int_intinf$55$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_t__compare_int_intinf__55(atstkind_t0ype(atstype_int) arg0, atstkind_type(atstype_ptrk) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret89, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7471(line=483, offs=1) -- 7640(line=495, offs=4)
+*/
+ATSINSflab(__patsflab_compare_int_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7501(line=484, offs=12) -- 7640(line=495, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7558(line=490, offs=11) -- 7587(line=490, offs=40)
+*/
+ATSINSmove(tmpret89, PMVtmpltcst(compare_int_intinf<>)(arg0, ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg1)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7501(line=484, offs=12) -- 7640(line=495, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret89) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__compare_int_intinf__55] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7720(line=500, offs=3) -- 7931(line=516, offs=4)
+*/
+/*
+local: 
+global: compare_intinf_intinf$56$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_t__compare_intinf_intinf__56(atstkind_type(atstype_ptrk) arg0, atstkind_type(atstype_ptrk) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret90, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7696(line=499, offs=1) -- 7931(line=516, offs=4)
+*/
+ATSINSflab(__patsflab_compare_intinf_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7729(line=500, offs=12) -- 7931(line=516, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/* (*nothing*) */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7826(line=510, offs=11) -- 7858(line=510, offs=43)
+*/
+ATSINSmove(tmpret90, PMVtmpltcst(compare_intinf_intinf<>)(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)), ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg1)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 7729(line=500, offs=12) -- 7931(line=516, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret90) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__compare_intinf_intinf__56] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 8025(line=523, offs=3) -- 8113(line=530, offs=4)
+*/
+/*
+local: 
+global: pow_int_int$57$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__pow_int_int__57(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret91, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp92, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 8011(line=522, offs=1) -- 8113(line=530, offs=4)
+*/
+ATSINSflab(__patsflab_pow_int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 8039(line=523, offs=17) -- 8113(line=530, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 8058(line=526, offs=3) -- 8084(line=526, offs=29)
+*/
+ATSINSmove(tmp92, PMVtmpltcst(pow_int_int<>)(arg0, arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 8093(line=529, offs=3) -- 8108(line=529, offs=18)
+*/
+ATSINSmove(tmpret91, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp92)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 8039(line=523, offs=17) -- 8113(line=530, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret91) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__pow_int_int__57] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 8200(line=537, offs=3) -- 8374(line=551, offs=4)
+*/
+/*
+local: 
+global: pow_intinf_int$58$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__pow_intinf_int__58(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret93, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp94, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 8183(line=536, offs=1) -- 8374(line=551, offs=4)
+*/
+ATSINSflab(__patsflab_pow_intinf_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 8214(line=537, offs=17) -- 8374(line=551, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 8280(line=545, offs=3) -- 8309(line=545, offs=32)
+*/
+ATSINSmove(tmp94, PMVtmpltcst(pow_intinf_int<>)(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 8354(line=550, offs=3) -- 8369(line=550, offs=18)
+*/
+ATSINSmove(tmpret93, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp94)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 8214(line=537, offs=17) -- 8374(line=551, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret93) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__pow_intinf_int__58] */
+#endif // end of [TEMPLATE]
+
+#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$59$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__59(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret95, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp96, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp97) ;
+/* 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(tmp96, 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(tmp97, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp96, 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(tmpret95, tmp96) ;
+/*
+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(tmpret95) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__59] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2373(line=85, offs=3) -- 2466(line=91, offs=2)
+*/
+/*
+local: 
+global: intinf_make_uint$60$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_uint__60(atstkind_t0ype(atstype_uint) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret98, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp99, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp100) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2354(line=84, offs=1) -- 2466(line=91, offs=2)
+*/
+ATSINSflab(__patsflab_intinf_make_uint):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2379(line=85, offs=9) -- 2466(line=91, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2402(line=88, offs=9) -- 2418(line=88, offs=25)
+*/
+ATSINSmove(tmp99, 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: 2428(line=89, offs=10) -- 2461(line=89, offs=43)
+*/
+ATSINSmove_void(tmp100, atscntrb_gmp_mpz_init_set_uint(ATSPMVrefarg1(ATSSELrecsin(tmp99, 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: 2380(line=85, offs=10) -- 2381(line=85, offs=11)
+*/
+ATSINSmove(tmpret98, tmp99) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2379(line=85, offs=9) -- 2466(line=91, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret98) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_uint__60] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2539(line=96, offs=3) -- 2632(line=102, offs=2)
+*/
+/*
+local: 
+global: intinf_make_lint$61$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_lint__61(atstkind_t0ype(atstype_lint) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret101, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp102, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp103) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2520(line=95, offs=1) -- 2632(line=102, offs=2)
+*/
+ATSINSflab(__patsflab_intinf_make_lint):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2545(line=96, offs=9) -- 2632(line=102, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2568(line=99, offs=9) -- 2584(line=99, offs=25)
+*/
+ATSINSmove(tmp102, 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: 2594(line=100, offs=10) -- 2627(line=100, offs=43)
+*/
+ATSINSmove_void(tmp103, atscntrb_gmp_mpz_init_set_lint(ATSPMVrefarg1(ATSSELrecsin(tmp102, 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: 2546(line=96, offs=10) -- 2547(line=96, offs=11)
+*/
+ATSINSmove(tmpret101, tmp102) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2545(line=96, offs=9) -- 2632(line=102, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret101) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_lint__61] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2706(line=107, offs=3) -- 2801(line=113, offs=2)
+*/
+/*
+local: 
+global: intinf_make_ulint$62$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_ulint__62(atstkind_t0ype(atstype_ulint) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret104, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp105, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp106) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2686(line=106, offs=1) -- 2801(line=113, offs=2)
+*/
+ATSINSflab(__patsflab_intinf_make_ulint):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2712(line=107, offs=9) -- 2801(line=113, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2735(line=110, offs=9) -- 2752(line=110, offs=26)
+*/
+ATSINSmove(tmp105, 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: 2762(line=111, offs=10) -- 2796(line=111, offs=44)
+*/
+ATSINSmove_void(tmp106, atscntrb_gmp_mpz_init_set_ulint(ATSPMVrefarg1(ATSSELrecsin(tmp105, 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: 2713(line=107, offs=10) -- 2714(line=107, offs=11)
+*/
+ATSINSmove(tmpret104, tmp105) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 2712(line=107, offs=9) -- 2801(line=113, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret104) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_ulint__62] */
+#endif // end of [TEMPLATE]
+
+#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$63$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__intinf_free__63(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret107) ;
+// ATStmpdec_void(tmp108) ;
+/* 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(tmp108, 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(tmpret107, 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(tmpret107) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_free__63] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3071(line=128, offs=15) -- 3101(line=128, offs=45)
+*/
+/*
+local: 
+global: intinf_get_int$64$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_get_int__64(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret109, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3057(line=128, offs=1) -- 3101(line=128, offs=45)
+*/
+ATSINSflab(__patsflab_intinf_get_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3077(line=128, offs=21) -- 3101(line=128, offs=45)
+*/
+ATSINSmove(tmpret109, atscntrb_gmp_mpz_get_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret109) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_get_int__64] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3137(line=131, offs=16) -- 3168(line=131, offs=47)
+*/
+/*
+local: 
+global: intinf_get_lint$65$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_lint)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_get_lint__65(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret110, atstkind_t0ype(atstype_lint)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3122(line=131, offs=1) -- 3168(line=131, offs=47)
+*/
+ATSINSflab(__patsflab_intinf_get_lint):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3143(line=131, offs=22) -- 3168(line=131, offs=47)
+*/
+ATSINSmove(tmpret110, atscntrb_gmp_mpz_get_lint(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret110) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_get_lint__65] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3233(line=138, offs=3) -- 3280(line=138, offs=50)
+*/
+/*
+local: 
+global: intinf_get_strptr$66$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_get_strptr__66(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret111, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3213(line=137, offs=1) -- 3280(line=138, offs=50)
+*/
+ATSINSflab(__patsflab_intinf_get_strptr):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3245(line=138, offs=15) -- 3280(line=138, offs=50)
+*/
+ATSINSmove(tmpret111, atscntrb_gmp_mpz_get_str_null(arg1, ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret111) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_get_strptr__66] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3378(line=146, offs=3) -- 3545(line=158, offs=4)
+*/
+/*
+local: 
+global: fprint_intinf_base$67$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__fprint_intinf_base__67(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1, atstkind_t0ype(atstype_int) arg2)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret112) ;
+ATStmpdec(tmp113, atstkind_t0ype(atstype_size)) ;
+ATStmpdec(tmp114, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3357(line=145, offs=1) -- 3545(line=158, offs=4)
+*/
+ATSINSflab(__patsflab_fprint_intinf_base):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3395(line=146, offs=20) -- 3545(line=158, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3412(line=148, offs=11) -- 3447(line=148, offs=46)
+*/
+ATSINSmove(tmp113, atscntrb_gmp_mpz_out_str(arg0, arg2, 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: 3461(line=153, offs=2) -- 3468(line=153, offs=9)
+*/
+ATSINSmove(tmp114, PMVtmpltcst(eq_g0uint_int<S2Eextkind(atstype_size)>)(tmp113, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3457(line=152, offs=1) -- 3523(line=155, offs=49)
+*/
+ATSif(
+tmp114
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3475(line=155, offs=1) -- 3523(line=155, offs=49)
+*/
+ATSINSmove_void(tmpret112, atspre_exit_errmsg(ATSPMVi0nt(1), ATSPMVstring("libgmp/gmp: fprint_intinf_base"))) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3523(line=155, offs=49) -- 3523(line=155, offs=49)
+*/
+ATSINSmove_void(tmpret112, ATSPMVempty()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3395(line=146, offs=20) -- 3545(line=158, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn_void(tmpret112) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__fprint_intinf_base__67] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3629(line=165, offs=3) -- 3684(line=170, offs=2)
+*/
+/*
+local: 
+global: neg_intinf0$68$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__68(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret115, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp116) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3615(line=164, offs=1) -- 3684(line=170, offs=2)
+*/
+ATSINSflab(__patsflab_neg_intinf0):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3635(line=165, offs=9) -- 3684(line=170, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3659(line=168, offs=10) -- 3679(line=168, offs=30)
+*/
+ATSINSmove_void(tmp116, atscntrb_gmp_mpz_neg1(ATSPMVrefarg1(ATSSELrecsin(arg0, 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: 3636(line=165, offs=10) -- 3637(line=165, offs=11)
+*/
+ATSINSmove(tmpret115, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3635(line=165, offs=9) -- 3684(line=170, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret115) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__neg_intinf0__68] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3747(line=175, offs=3) -- 3866(line=182, offs=2)
+*/
+/*
+local: 
+global: neg_intinf1$69$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__neg_intinf1__69(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret117, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp118, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp119) ;
+// ATStmpdec_void(tmp120) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3733(line=174, offs=1) -- 3866(line=182, offs=2)
+*/
+ATSINSflab(__patsflab_neg_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3753(line=175, offs=9) -- 3866(line=182, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3776(line=178, offs=9) -- 3792(line=178, offs=25)
+*/
+ATSINSmove(tmp118, 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: 3802(line=179, offs=10) -- 3823(line=179, offs=31)
+*/
+ATSINSmove_void(tmp119, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp118, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3833(line=180, offs=10) -- 3861(line=180, offs=38)
+*/
+ATSINSmove_void(tmp120, atscntrb_gmp_mpz_neg2(ATSPMVrefarg1(ATSSELrecsin(tmp118, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, 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: 3754(line=175, offs=10) -- 3755(line=175, offs=11)
+*/
+ATSINSmove(tmpret117, tmp118) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3753(line=175, offs=9) -- 3866(line=182, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret117) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__neg_intinf1__69] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3950(line=189, offs=3) -- 4005(line=194, offs=2)
+*/
+/*
+local: 
+global: abs_intinf0$70$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__abs_intinf0__70(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret121, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp122) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3936(line=188, offs=1) -- 4005(line=194, offs=2)
+*/
+ATSINSflab(__patsflab_abs_intinf0):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3956(line=189, offs=9) -- 4005(line=194, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3980(line=192, offs=10) -- 4000(line=192, offs=30)
+*/
+ATSINSmove_void(tmp122, atscntrb_gmp_mpz_abs1(ATSPMVrefarg1(ATSSELrecsin(arg0, 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: 3957(line=189, offs=10) -- 3958(line=189, offs=11)
+*/
+ATSINSmove(tmpret121, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 3956(line=189, offs=9) -- 4005(line=194, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret121) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__abs_intinf0__70] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4068(line=199, offs=3) -- 4190(line=207, offs=2)
+*/
+/*
+local: 
+global: abs_intinf1$71$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__abs_intinf1__71(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret123, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp124, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp125) ;
+// ATStmpdec_void(tmp126) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4054(line=198, offs=1) -- 4190(line=207, offs=2)
+*/
+ATSINSflab(__patsflab_abs_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4074(line=199, offs=9) -- 4190(line=207, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4097(line=202, offs=9) -- 4113(line=202, offs=25)
+*/
+ATSINSmove(tmp124, 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: 4126(line=204, offs=10) -- 4147(line=204, offs=31)
+*/
+ATSINSmove_void(tmp125, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp124, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4157(line=205, offs=10) -- 4185(line=205, offs=38)
+*/
+ATSINSmove_void(tmp126, atscntrb_gmp_mpz_abs2(ATSPMVrefarg1(ATSSELrecsin(tmp124, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, 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: 4075(line=199, offs=10) -- 4076(line=199, offs=11)
+*/
+ATSINSmove(tmpret123, tmp124) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4074(line=199, offs=9) -- 4190(line=207, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret123) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__abs_intinf1__71] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4277(line=214, offs=3) -- 4304(line=214, offs=30)
+*/
+/*
+local: 
+global: succ_intinf0$72$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__succ_intinf0__72(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret127, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4262(line=213, offs=1) -- 4304(line=214, offs=30)
+*/
+ATSINSflab(__patsflab_succ_intinf0):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4283(line=214, offs=9) -- 4304(line=214, offs=30)
+*/
+ATSINSmove(tmpret127, PMVtmpltcst(add_intinf0_int<>)(arg0, ATSPMVi0nt(1))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret127) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__succ_intinf0__72] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4340(line=218, offs=3) -- 4367(line=218, offs=30)
+*/
+/*
+local: 
+global: succ_intinf1$73$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__succ_intinf1__73(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret128, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4325(line=217, offs=1) -- 4367(line=218, offs=30)
+*/
+ATSINSflab(__patsflab_succ_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4346(line=218, offs=9) -- 4367(line=218, offs=30)
+*/
+ATSINSmove(tmpret128, PMVtmpltcst(add_intinf1_int<>)(ATSPMVrefarg0(arg0), ATSPMVi0nt(1))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret128) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__succ_intinf1__73] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4429(line=225, offs=3) -- 4456(line=225, offs=30)
+*/
+/*
+local: 
+global: pred_intinf0$74$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__pred_intinf0__74(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret129, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4414(line=224, offs=1) -- 4456(line=225, offs=30)
+*/
+ATSINSflab(__patsflab_pred_intinf0):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4435(line=225, offs=9) -- 4456(line=225, offs=30)
+*/
+ATSINSmove(tmpret129, PMVtmpltcst(sub_intinf0_int<>)(arg0, ATSPMVi0nt(1))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret129) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__pred_intinf0__74] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4492(line=229, offs=3) -- 4519(line=229, offs=30)
+*/
+/*
+local: 
+global: pred_intinf1$75$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__pred_intinf1__75(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret130, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4477(line=228, offs=1) -- 4519(line=229, offs=30)
+*/
+ATSINSflab(__patsflab_pred_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4498(line=229, offs=9) -- 4519(line=229, offs=30)
+*/
+ATSINSmove(tmpret130, PMVtmpltcst(sub_intinf1_int<>)(ATSPMVrefarg0(arg0), ATSPMVi0nt(1))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret130) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__pred_intinf1__75] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4581(line=236, offs=3) -- 4665(line=240, offs=2)
+*/
+/*
+local: 
+global: square_intinf0$76$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__76(atstkind_type(atstype_ptrk) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret131, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp132, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp133) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4564(line=235, offs=1) -- 4665(line=240, offs=2)
+*/
+ATSINSflab(__patsflab_square_intinf0):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4611(line=238, offs=13) -- 4627(line=238, offs=29)
+*/
+ATSINSmove(tmp132, PMVtmpltcst(square_intinf1<>)(ATSPMVrefarg0(arg0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4649(line=239, offs=21) -- 4662(line=239, offs=34)
+*/
+ATSINSmove_void(tmp133, PMVtmpltcst(intinf_free<>)(arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4590(line=236, offs=12)
+*/
+ATSINSmove(tmpret131, tmp132) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4587(line=236, offs=9) -- 4665(line=240, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret131) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf0__76] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4755(line=247, offs=3) -- 4900(line=256, offs=2)
+*/
+/*
+local: 
+global: square_intinf1$77$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__77(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret134, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp135, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp136) ;
+// ATStmpdec_void(tmp137) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4738(line=246, offs=1) -- 4900(line=256, offs=2)
+*/
+ATSINSflab(__patsflab_square_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4784(line=250, offs=9) -- 4800(line=250, offs=25)
+*/
+ATSINSmove(tmp135, 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: 4812(line=252, offs=3) -- 4849(line=252, offs=40)
+*/
+ATSINSmove_void(tmp136, atscntrb_gmp_mpz_init_set_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp135, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4862(line=254, offs=10) -- 4895(line=254, offs=43)
+*/
+ATSINSmove_void(tmp137, atscntrb_gmp_mpz_mul2_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp135, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, 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: 4762(line=247, offs=10) -- 4763(line=247, offs=11)
+*/
+ATSINSmove(tmpret134, tmp135) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4761(line=247, offs=9) -- 4900(line=256, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret134) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__square_intinf1__77] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4991(line=263, offs=3) -- 5021(line=263, offs=33)
+*/
+/*
+local: 
+global: add_int_intinf0$78$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_int_intinf0__78(atstkind_t0ype(atstype_int) arg0, atstkind_type(atstype_ptrk) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret138, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 4973(line=262, offs=1) -- 5021(line=263, offs=33)
+*/
+ATSINSflab(__patsflab_add_int_intinf0):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5000(line=263, offs=12) -- 5021(line=263, offs=33)
+*/
+ATSINSmove(tmpret138, PMVtmpltcst(add_intinf0_int<>)(arg1, arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret138) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_int_intinf0__78] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5060(line=267, offs=3) -- 5090(line=267, offs=33)
+*/
+/*
+local: 
+global: add_int_intinf1$79$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_int_intinf1__79(atstkind_t0ype(atstype_int) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret139, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5042(line=266, offs=1) -- 5090(line=267, offs=33)
+*/
+ATSINSflab(__patsflab_add_int_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5069(line=267, offs=12) -- 5090(line=267, offs=33)
+*/
+ATSINSmove(tmpret139, PMVtmpltcst(add_intinf1_int<>)(ATSPMVrefarg0(arg1), arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret139) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_int_intinf1__79] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5151(line=274, offs=3) -- 5217(line=279, offs=2)
+*/
+/*
+local: 
+global: add_intinf0_int$80$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__80(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret140, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp141) ;
+/* 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(tmp141, 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(tmpret140, 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(tmpret140) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_int__80] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5288(line=284, offs=3) -- 5418(line=291, offs=2)
+*/
+/*
+local: 
+global: add_intinf1_int$81$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf1_int__81(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret142, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp143, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp144) ;
+// 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: 5270(line=283, offs=1) -- 5418(line=291, offs=2)
+*/
+ATSINSflab(__patsflab_add_intinf1_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5297(line=284, offs=12) -- 5418(line=291, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5320(line=287, offs=9) -- 5336(line=287, offs=25)
+*/
+ATSINSmove(tmp143, 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: 5346(line=288, offs=10) -- 5367(line=288, offs=31)
+*/
+ATSINSmove_void(tmp144, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp143, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5377(line=289, offs=10) -- 5413(line=289, offs=46)
+*/
+ATSINSmove_void(tmp145, atscntrb_gmp_mpz_add3_int(ATSPMVrefarg1(ATSSELrecsin(tmp143, atstkind_type(atstype_ptrk), atslab__2)), 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: 5298(line=284, offs=13) -- 5299(line=284, offs=14)
+*/
+ATSINSmove(tmpret142, tmp143) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5297(line=284, offs=12) -- 5418(line=291, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret142) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf1_int__81] */
+#endif // end of [TEMPLATE]
+
+#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$82$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__82(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret146, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp147) ;
+/* 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(tmp147, 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(tmpret146, 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(tmpret146) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf0_intinf1__82] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5664(line=308, offs=3) -- 5735(line=313, offs=2)
+*/
+/*
+local: 
+global: add_intinf1_intinf0$83$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf1_intinf0__83(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_type(atstype_ptrk) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret148, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp149) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5642(line=307, offs=1) -- 5735(line=313, offs=2)
+*/
+ATSINSflab(__patsflab_add_intinf1_intinf0):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5673(line=308, offs=12) -- 5735(line=313, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5697(line=311, offs=10) -- 5730(line=311, offs=43)
+*/
+ATSINSmove_void(tmp149, atscntrb_gmp_mpz_add2_mpz(ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, 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: 5674(line=308, offs=13) -- 5675(line=308, offs=14)
+*/
+ATSINSmove(tmpret148, arg1) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5673(line=308, offs=12) -- 5735(line=313, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret148) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf1_intinf0__83] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5835(line=320, offs=3) -- 5970(line=327, offs=2)
+*/
+/*
+local: 
+global: add_intinf1_intinf1$84$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf1_intinf1__84(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret150, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp151, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp152) ;
+// ATStmpdec_void(tmp153) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5813(line=319, offs=1) -- 5970(line=327, offs=2)
+*/
+ATSINSflab(__patsflab_add_intinf1_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5844(line=320, offs=12) -- 5970(line=327, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5867(line=323, offs=9) -- 5883(line=323, 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: 5893(line=324, offs=10) -- 5914(line=324, offs=31)
+*/
+ATSINSmove_void(tmp152, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp151, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5924(line=325, offs=10) -- 5965(line=325, offs=51)
+*/
+ATSINSmove_void(tmp153, atscntrb_gmp_mpz_add3_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp151, atstkind_type(atstype_ptrk), atslab__2)), 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: 5845(line=320, offs=13) -- 5846(line=320, offs=14)
+*/
+ATSINSmove(tmpret150, tmp151) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5844(line=320, offs=12) -- 5970(line=327, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret150) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf1_intinf1__84] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6066(line=334, offs=3) -- 6132(line=339, offs=2)
+*/
+/*
+local: 
+global: sub_intinf0_int$85$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__sub_intinf0_int__85(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret154, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp155) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6048(line=333, offs=1) -- 6132(line=339, offs=2)
+*/
+ATSINSflab(__patsflab_sub_intinf0_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6075(line=334, offs=12) -- 6132(line=339, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6099(line=337, offs=10) -- 6127(line=337, offs=38)
+*/
+ATSINSmove_void(tmp155, atscntrb_gmp_mpz_sub2_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: 6076(line=334, offs=13) -- 6077(line=334, offs=14)
+*/
+ATSINSmove(tmpret154, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6075(line=334, offs=12) -- 6132(line=339, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret154) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__sub_intinf0_int__85] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6203(line=344, offs=3) -- 6333(line=351, offs=2)
+*/
+/*
+local: 
+global: sub_intinf1_int$86$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__sub_intinf1_int__86(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret156, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp157, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp158) ;
+// ATStmpdec_void(tmp159) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6185(line=343, offs=1) -- 6333(line=351, offs=2)
+*/
+ATSINSflab(__patsflab_sub_intinf1_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6212(line=344, offs=12) -- 6333(line=351, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6235(line=347, offs=9) -- 6251(line=347, offs=25)
+*/
+ATSINSmove(tmp157, 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: 6261(line=348, offs=10) -- 6282(line=348, offs=31)
+*/
+ATSINSmove_void(tmp158, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp157, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6292(line=349, offs=10) -- 6328(line=349, offs=46)
+*/
+ATSINSmove_void(tmp159, atscntrb_gmp_mpz_sub3_int(ATSPMVrefarg1(ATSSELrecsin(tmp157, atstkind_type(atstype_ptrk), atslab__2)), 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: 6213(line=344, offs=13) -- 6214(line=344, offs=14)
+*/
+ATSINSmove(tmpret156, tmp157) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6212(line=344, offs=12) -- 6333(line=351, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret156) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__sub_intinf1_int__86] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6422(line=357, offs=16) -- 6489(line=359, offs=4)
+*/
+/*
+local: 
+global: sub_int_intinf0$87$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__sub_int_intinf0__87(atstkind_t0ype(atstype_int) arg0, atstkind_type(atstype_ptrk) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret160, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp161, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6407(line=357, offs=1) -- 6489(line=359, offs=4)
+*/
+ATSINSflab(__patsflab_sub_int_intinf0):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6431(line=357, offs=25) -- 6489(line=359, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6445(line=358, offs=11) -- 6467(line=358, offs=33)
+*/
+ATSINSmove(tmp161, PMVtmpltcst(sub_intinf0_int<>)(arg1, arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6471(line=358, offs=37) -- 6484(line=358, offs=50)
+*/
+ATSINSmove(tmpret160, PMVtmpltcst(neg_intinf0<>)(tmp161)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6431(line=357, offs=25) -- 6489(line=359, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret160) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__sub_int_intinf0__87] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6557(line=363, offs=16) -- 6624(line=365, offs=4)
+*/
+/*
+local: 
+global: sub_int_intinf1$88$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__sub_int_intinf1__88(atstkind_t0ype(atstype_int) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret162, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp163, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6542(line=363, offs=1) -- 6624(line=365, offs=4)
+*/
+ATSINSflab(__patsflab_sub_int_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6566(line=363, offs=25) -- 6624(line=365, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6580(line=364, offs=11) -- 6602(line=364, offs=33)
+*/
+ATSINSmove(tmp163, PMVtmpltcst(sub_intinf1_int<>)(ATSPMVrefarg0(arg1), arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6606(line=364, offs=37) -- 6619(line=364, offs=50)
+*/
+ATSINSmove(tmpret162, PMVtmpltcst(neg_intinf0<>)(tmp163)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6566(line=363, offs=25) -- 6624(line=365, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret162) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__sub_int_intinf1__88] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6720(line=372, offs=3) -- 6792(line=377, offs=2)
+*/
+/*
+local: 
+global: sub_intinf0_intinf1$89$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__sub_intinf0_intinf1__89(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret164, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp165) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6698(line=371, offs=1) -- 6792(line=377, offs=2)
+*/
+ATSINSflab(__patsflab_sub_intinf0_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6729(line=372, offs=12) -- 6792(line=377, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6753(line=375, offs=10) -- 6787(line=375, offs=44)
+*/
+ATSINSmove_void(tmp165, atscntrb_gmp_mpz_sub2_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: 6730(line=372, offs=13) -- 6731(line=372, offs=14)
+*/
+ATSINSmove(tmpret164, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6729(line=372, offs=12) -- 6792(line=377, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret164) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__sub_intinf0_intinf1__89] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6871(line=382, offs=3) -- 6920(line=382, offs=52)
+*/
+/*
+local: 
+global: sub_intinf1_intinf0$90$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__sub_intinf1_intinf0__90(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_type(atstype_ptrk) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret166, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp167, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6849(line=381, offs=1) -- 6920(line=382, offs=52)
+*/
+ATSINSflab(__patsflab_sub_intinf1_intinf0):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6893(line=382, offs=25) -- 6919(line=382, offs=51)
+*/
+ATSINSmove(tmp167, PMVtmpltcst(sub_intinf0_intinf1<>)(arg1, ATSPMVrefarg0(arg0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6880(line=382, offs=12) -- 6920(line=382, offs=52)
+*/
+ATSINSmove(tmpret166, PMVtmpltcst(neg_intinf0<>)(tmp167)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret166) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__sub_intinf1_intinf0__90] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6996(line=388, offs=3) -- 7134(line=395, offs=2)
+*/
+/*
+local: 
+global: sub_intinf1_intinf1$91$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__sub_intinf1_intinf1__91(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret168, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp169, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp170) ;
+// ATStmpdec_void(tmp171) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 6974(line=387, offs=1) -- 7134(line=395, offs=2)
+*/
+ATSINSflab(__patsflab_sub_intinf1_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7005(line=388, offs=12) -- 7134(line=395, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7028(line=391, offs=9) -- 7045(line=391, offs=26)
+*/
+ATSINSmove(tmp169, 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: 7055(line=392, offs=10) -- 7077(line=392, offs=32)
+*/
+ATSINSmove_void(tmp170, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp169, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7087(line=393, offs=10) -- 7129(line=393, offs=52)
+*/
+ATSINSmove_void(tmp171, atscntrb_gmp_mpz_sub3_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp169, atstkind_type(atstype_ptrk), atslab__2)), 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: 7006(line=388, offs=13) -- 7007(line=388, offs=14)
+*/
+ATSINSmove(tmpret168, tmp169) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7005(line=388, offs=12) -- 7134(line=395, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret168) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__sub_intinf1_intinf1__91] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7232(line=402, offs=3) -- 7262(line=402, offs=33)
+*/
+/*
+local: 
+global: mul_int_intinf0$92$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_int_intinf0__92(atstkind_t0ype(atstype_int) arg0, atstkind_type(atstype_ptrk) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret172, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7214(line=401, offs=1) -- 7262(line=402, offs=33)
+*/
+ATSINSflab(__patsflab_mul_int_intinf0):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7241(line=402, offs=12) -- 7262(line=402, offs=33)
+*/
+ATSINSmove(tmpret172, PMVtmpltcst(mul_intinf0_int<>)(arg1, arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret172) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_int_intinf0__92] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7301(line=406, offs=3) -- 7331(line=406, offs=33)
+*/
+/*
+local: 
+global: mul_int_intinf1$93$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_int_intinf1__93(atstkind_t0ype(atstype_int) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret173, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7283(line=405, offs=1) -- 7331(line=406, offs=33)
+*/
+ATSINSflab(__patsflab_mul_int_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7310(line=406, offs=12) -- 7331(line=406, offs=33)
+*/
+ATSINSmove(tmpret173, PMVtmpltcst(mul_intinf1_int<>)(ATSPMVrefarg0(arg1), arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret173) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_int_intinf1__93] */
+#endif // end of [TEMPLATE]
+
+#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$94$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__94(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret174, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp175) ;
+/* 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(tmp175, 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(tmpret174, 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(tmpret174) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_int__94] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7532(line=423, offs=3) -- 7665(line=430, offs=2)
+*/
+/*
+local: 
+global: mul_intinf1_int$95$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf1_int__95(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret176, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp177, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp178) ;
+// ATStmpdec_void(tmp179) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7514(line=422, offs=1) -- 7665(line=430, offs=2)
+*/
+ATSINSflab(__patsflab_mul_intinf1_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7541(line=423, offs=12) -- 7665(line=430, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7564(line=426, offs=9) -- 7581(line=426, offs=26)
+*/
+ATSINSmove(tmp177, 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: 7591(line=427, offs=10) -- 7613(line=427, offs=32)
+*/
+ATSINSmove_void(tmp178, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp177, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7623(line=428, offs=10) -- 7660(line=428, offs=47)
+*/
+ATSINSmove_void(tmp179, atscntrb_gmp_mpz_mul3_int(ATSPMVrefarg1(ATSSELrecsin(tmp177, atstkind_type(atstype_ptrk), atslab__2)), 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: 7542(line=423, offs=13) -- 7543(line=423, offs=14)
+*/
+ATSINSmove(tmpret176, tmp177) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7541(line=423, offs=12) -- 7665(line=430, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret176) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf1_int__95] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7761(line=437, offs=3) -- 7833(line=442, offs=2)
+*/
+/*
+local: 
+global: mul_intinf0_intinf1$96$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__96(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret180, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp181) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7739(line=436, offs=1) -- 7833(line=442, offs=2)
+*/
+ATSINSflab(__patsflab_mul_intinf0_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7794(line=440, offs=10) -- 7828(line=440, offs=44)
+*/
+ATSINSmove_void(tmp181, atscntrb_gmp_mpz_mul2_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: 7771(line=437, offs=13) -- 7772(line=437, offs=14)
+*/
+ATSINSmove(tmpret180, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7770(line=437, offs=12) -- 7833(line=442, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret180) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf0_intinf1__96] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7912(line=447, offs=3) -- 7983(line=452, offs=2)
+*/
+/*
+local: 
+global: mul_intinf1_intinf0$97$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf1_intinf0__97(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_type(atstype_ptrk) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret182, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp183) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7890(line=446, offs=1) -- 7983(line=452, offs=2)
+*/
+ATSINSflab(__patsflab_mul_intinf1_intinf0):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7921(line=447, offs=12) -- 7983(line=452, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7945(line=450, offs=10) -- 7978(line=450, offs=43)
+*/
+ATSINSmove_void(tmp183, atscntrb_gmp_mpz_mul2_mpz(ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, 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: 7922(line=447, offs=13) -- 7923(line=447, offs=14)
+*/
+ATSINSmove(tmpret182, arg1) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 7921(line=447, offs=12) -- 7983(line=452, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret182) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf1_intinf0__97] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8083(line=459, offs=3) -- 8218(line=466, offs=2)
+*/
+/*
+local: 
+global: mul_intinf1_intinf1$98$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__mul_intinf1_intinf1__98(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret184, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp185, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp186) ;
+// ATStmpdec_void(tmp187) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8061(line=458, offs=1) -- 8218(line=466, offs=2)
+*/
+ATSINSflab(__patsflab_mul_intinf1_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8092(line=459, offs=12) -- 8218(line=466, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8115(line=462, offs=9) -- 8131(line=462, offs=25)
+*/
+ATSINSmove(tmp185, 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: 8141(line=463, offs=10) -- 8162(line=463, offs=31)
+*/
+ATSINSmove_void(tmp186, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp185, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8172(line=464, offs=10) -- 8213(line=464, offs=51)
+*/
+ATSINSmove_void(tmp187, atscntrb_gmp_mpz_mul3_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp185, atstkind_type(atstype_ptrk), atslab__2)), 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: 8093(line=459, offs=13) -- 8094(line=459, offs=14)
+*/
+ATSINSmove(tmpret184, tmp185) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8092(line=459, offs=12) -- 8218(line=466, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret184) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__mul_intinf1_intinf1__98] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8320(line=473, offs=9) -- 8539(line=485, offs=4)
+*/
+/*
+local: 
+global: div_intinf0_int$99$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_int__99(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret188, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp189, atstkind_t0ype(atstype_bool)) ;
+// ATStmpdec_void(tmp190) ;
+ATStmpdec(tmp191, atstkind_t0ype(atstype_uint)) ;
+// ATStmpdec_void(tmp192) ;
+ATStmpdec(tmp193, atstkind_t0ype(atstype_uint)) ;
+ATStmpdec(tmp194, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8296(line=472, offs=1) -- 8539(line=485, offs=4)
+*/
+ATSINSflab(__patsflab_div_intinf0_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8343(line=477, offs=2) -- 8349(line=477, offs=8)
+*/
+ATSINSmove(tmp189, PMVtmpltcst(gte_g1int_int<S2Eextkind(atstype_int)>)(arg1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8339(line=476, offs=1) -- 8515(line=483, offs=4)
+*/
+ATSif(
+tmp189
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8356(line=478, offs=6) -- 8417(line=480, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8401(line=479, offs=42) -- 8406(line=479, offs=47)
+*/
+ATSINSmove(tmp191, atspre_g1int2uint_int_uint(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8371(line=479, offs=12) -- 8408(line=479, offs=49)
+*/
+ATSINSmove_void(tmp190, atscntrb_gmp_mpz_tdiv2_q_uint(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), tmp191)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8412(line=479, offs=53) -- 8413(line=479, offs=54)
+*/
+ATSINSmove(tmpret188, arg0) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8356(line=478, offs=6) -- 8417(line=480, offs=4)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8440(line=481, offs=6) -- 8515(line=483, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8485(line=482, offs=42) -- 8492(line=482, offs=49)
+*/
+ATSINSmove(tmp194, PMVtmpltcst(g1int_neg<S2Eextkind(atstype_int)>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8485(line=482, offs=42) -- 8492(line=482, offs=49)
+*/
+ATSINSmove(tmp193, atspre_g1int2uint_int_uint(tmp194)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8455(line=482, offs=12) -- 8493(line=482, offs=50)
+*/
+ATSINSmove_void(tmp192, atscntrb_gmp_mpz_tdiv2_q_uint(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), tmp193)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8497(line=482, offs=54) -- 8510(line=482, offs=67)
+*/
+ATSINSmove(tmpret188, PMVtmpltcst(neg_intinf0<>)(arg0)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8440(line=481, offs=6) -- 8515(line=483, offs=4)
+*/
+/*
+INSletpop()
+*/
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret188) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_int__99] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8616(line=490, offs=9) -- 8913(line=506, offs=4)
+*/
+/*
+local: 
+global: div_intinf1_int$100$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf1_int__100(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret195, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp196, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp197) ;
+ATStmpdec(tmp198, atstkind_t0ype(atstype_bool)) ;
+// ATStmpdec_void(tmp199) ;
+ATStmpdec(tmp200, atstkind_t0ype(atstype_uint)) ;
+// ATStmpdec_void(tmp201) ;
+ATStmpdec(tmp202, atstkind_t0ype(atstype_uint)) ;
+ATStmpdec(tmp203, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8592(line=489, offs=1) -- 8913(line=506, offs=4)
+*/
+ATSINSflab(__patsflab_div_intinf1_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8625(line=490, offs=18) -- 8913(line=506, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8640(line=492, offs=9) -- 8656(line=492, offs=25)
+*/
+ATSINSmove(tmp196, 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: 8666(line=493, offs=10) -- 8687(line=493, offs=31)
+*/
+ATSINSmove_void(tmp197, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp196, 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: 8701(line=498, offs=2) -- 8707(line=498, offs=8)
+*/
+ATSINSmove(tmp198, PMVtmpltcst(gte_g1int_int<S2Eextkind(atstype_int)>)(arg1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8697(line=497, offs=1) -- 8889(line=504, offs=4)
+*/
+ATSif(
+tmp198
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8714(line=499, offs=6) -- 8783(line=501, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8767(line=500, offs=50) -- 8772(line=500, offs=55)
+*/
+ATSINSmove(tmp200, atspre_g1int2uint_int_uint(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8729(line=500, offs=12) -- 8774(line=500, offs=57)
+*/
+ATSINSmove_void(tmp199, atscntrb_gmp_mpz_tdiv3_q_uint(ATSPMVrefarg1(ATSSELrecsin(tmp196, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), tmp200)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8778(line=500, offs=61) -- 8779(line=500, offs=62)
+*/
+ATSINSmove(tmpret195, tmp196) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8714(line=499, offs=6) -- 8783(line=501, offs=4)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8806(line=502, offs=6) -- 8889(line=504, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8859(line=503, offs=50) -- 8866(line=503, offs=57)
+*/
+ATSINSmove(tmp203, PMVtmpltcst(g1int_neg<S2Eextkind(atstype_int)>)(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8859(line=503, offs=50) -- 8866(line=503, offs=57)
+*/
+ATSINSmove(tmp202, atspre_g1int2uint_int_uint(tmp203)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8821(line=503, offs=12) -- 8867(line=503, offs=58)
+*/
+ATSINSmove_void(tmp201, atscntrb_gmp_mpz_tdiv3_q_uint(ATSPMVrefarg1(ATSSELrecsin(tmp196, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), tmp202)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8871(line=503, offs=62) -- 8884(line=503, offs=75)
+*/
+ATSINSmove(tmpret195, PMVtmpltcst(neg_intinf0<>)(tmp196)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8806(line=502, offs=6) -- 8889(line=504, offs=4)
+*/
+/*
+INSletpop()
+*/
+} /* ATSendif */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 8625(line=490, offs=18) -- 8913(line=506, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret195) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf1_int__100] */
+#endif // end of [TEMPLATE]
+
+#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$101$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__101(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret204, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp205) ;
+/* 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(tmp205, 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(tmpret204, 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(tmpret204) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf0_intinf1__101] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9183(line=525, offs=3) -- 9321(line=532, offs=2)
+*/
+/*
+local: 
+global: div_intinf1_intinf1$102$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__div_intinf1_intinf1__102(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret206, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp207, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp208) ;
+// ATStmpdec_void(tmp209) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9161(line=524, offs=1) -- 9321(line=532, offs=2)
+*/
+ATSINSflab(__patsflab_div_intinf1_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9192(line=525, offs=12) -- 9321(line=532, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9215(line=528, offs=9) -- 9231(line=528, offs=25)
+*/
+ATSINSmove(tmp207, 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: 9241(line=529, offs=10) -- 9262(line=529, offs=31)
+*/
+ATSINSmove_void(tmp208, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp207, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9272(line=530, offs=10) -- 9316(line=530, offs=54)
+*/
+ATSINSmove_void(tmp209, atscntrb_gmp_mpz_tdiv3_q_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp207, atstkind_type(atstype_ptrk), atslab__2)), 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: 9193(line=525, offs=13) -- 9194(line=525, offs=14)
+*/
+ATSINSmove(tmpret206, tmp207) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9192(line=525, offs=12) -- 9321(line=532, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret206) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__div_intinf1_intinf1__102] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9417(line=538, offs=17) -- 9447(line=538, offs=47)
+*/
+/*
+local: 
+global: ndiv_intinf0_int$103$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__ndiv_intinf0_int__103(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret210, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9401(line=538, offs=1) -- 9447(line=538, offs=47)
+*/
+ATSINSflab(__patsflab_ndiv_intinf0_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9426(line=538, offs=26) -- 9447(line=538, offs=47)
+*/
+ATSINSmove(tmpret210, PMVtmpltcst(div_intinf0_int<>)(arg0, arg1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret210) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__ndiv_intinf0_int__103] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9484(line=541, offs=17) -- 9514(line=541, offs=47)
+*/
+/*
+local: 
+global: ndiv_intinf1_int$104$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__ndiv_intinf1_int__104(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret211, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9468(line=541, offs=1) -- 9514(line=541, offs=47)
+*/
+ATSINSflab(__patsflab_ndiv_intinf1_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9493(line=541, offs=26) -- 9514(line=541, offs=47)
+*/
+ATSINSmove(tmpret211, PMVtmpltcst(div_intinf1_int<>)(ATSPMVrefarg0(arg0), arg1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret211) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__ndiv_intinf1_int__104] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9558(line=545, offs=21) -- 9592(line=545, offs=55)
+*/
+/*
+local: 
+global: ndiv_intinf1_intinf1$105$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__ndiv_intinf1_intinf1__105(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret212, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9538(line=545, offs=1) -- 9592(line=545, offs=55)
+*/
+ATSINSflab(__patsflab_ndiv_intinf1_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9567(line=545, offs=30) -- 9592(line=545, offs=55)
+*/
+ATSINSmove(tmpret212, PMVtmpltcst(div_intinf1_intinf1<>)(ATSPMVrefarg0(arg0), ATSPMVrefarg0(arg1))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret212) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__ndiv_intinf1_intinf1__105] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9661(line=552, offs=8) -- 9789(line=562, offs=4)
+*/
+/*
+local: 
+global: nmod_intinf0_int$106$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__nmod_intinf0_int__106(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret213, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp214, atstkind_t0ype(atstype_uint)) ;
+ATStmpdec(tmp215, atstkind_t0ype(atstype_uint)) ;
+// ATStmpdec_void(tmp216) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9637(line=551, offs=1) -- 9789(line=562, offs=4)
+*/
+ATSINSflab(__patsflab_nmod_intinf0_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9670(line=552, offs=17) -- 9789(line=562, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9716(line=556, offs=30) -- 9721(line=556, offs=35)
+*/
+ATSINSmove(tmp215, atspre_g1int2uint_int_uint(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9689(line=556, offs=3) -- 9723(line=556, offs=37)
+*/
+ATSINSmove(tmp214, atscntrb_gmp_mpz_fdiv_uint(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), tmp215)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9736(line=558, offs=10) -- 9749(line=558, offs=23)
+*/
+ATSINSmove_void(tmp216, PMVtmpltcst(intinf_free<>)(arg0)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9759(line=561, offs=3) -- 9784(line=561, offs=28)
+*/
+ATSINSmove(tmpret213, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp214)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9670(line=552, offs=17) -- 9789(line=562, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret213) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__nmod_intinf0_int__106] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9867(line=567, offs=8) -- 9966(line=575, offs=4)
+*/
+/*
+local: 
+global: nmod_intinf1_int$107$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__nmod_intinf1_int__107(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret217, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp218, atstkind_t0ype(atstype_uint)) ;
+ATStmpdec(tmp219, atstkind_t0ype(atstype_uint)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9843(line=566, offs=1) -- 9966(line=575, offs=4)
+*/
+ATSINSflab(__patsflab_nmod_intinf1_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9876(line=567, offs=17) -- 9966(line=575, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9920(line=571, offs=28) -- 9925(line=571, offs=33)
+*/
+ATSINSmove(tmp219, atspre_g1int2uint_int_uint(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9893(line=571, offs=1) -- 9927(line=571, offs=35)
+*/
+ATSINSmove(tmp218, atscntrb_gmp_mpz_fdiv_uint(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), tmp219)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9936(line=574, offs=3) -- 9961(line=574, offs=28)
+*/
+ATSINSmove(tmpret217, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp218)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 9876(line=567, offs=17) -- 9966(line=575, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret217) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__nmod_intinf1_int__107] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10069(line=582, offs=8) -- 10155(line=588, offs=2)
+*/
+/*
+local: 
+global: nmod_intinf0_intinf1$108$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__nmod_intinf0_intinf1__108(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret220, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp221) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10041(line=581, offs=1) -- 10155(line=588, offs=2)
+*/
+ATSINSflab(__patsflab_nmod_intinf0_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10080(line=583, offs=3) -- 10155(line=588, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10117(line=586, offs=10) -- 10150(line=586, offs=43)
+*/
+ATSINSmove_void(tmp221, atscntrb_gmp_mpz_mod2_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: 10080(line=583, offs=3) -- 10095(line=583, offs=18)
+*/
+ATSINSmove(tmpret220, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), arg0)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10080(line=583, offs=3) -- 10155(line=588, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret220) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__nmod_intinf0_intinf1__108] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10241(line=593, offs=8) -- 10391(line=601, offs=2)
+*/
+/*
+local: 
+global: nmod_intinf1_intinf1$109$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__nmod_intinf1_intinf1__109(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret222, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp223, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp224) ;
+// ATStmpdec_void(tmp225) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10213(line=592, offs=1) -- 10391(line=601, offs=2)
+*/
+ATSINSflab(__patsflab_nmod_intinf1_intinf1):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10252(line=594, offs=3) -- 10391(line=601, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10288(line=597, offs=9) -- 10304(line=597, offs=25)
+*/
+ATSINSmove(tmp223, 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: 10314(line=598, offs=10) -- 10335(line=598, offs=31)
+*/
+ATSINSmove_void(tmp224, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp223, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10345(line=599, offs=10) -- 10386(line=599, offs=51)
+*/
+ATSINSmove_void(tmp225, atscntrb_gmp_mpz_mod3_mpz(ATSPMVrefarg1(ATSSELrecsin(tmp223, atstkind_type(atstype_ptrk), atslab__2)), 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: 10252(line=594, offs=3) -- 10267(line=594, offs=18)
+*/
+ATSINSmove(tmpret222, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp223)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10252(line=594, offs=3) -- 10391(line=601, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret222) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__nmod_intinf1_intinf1__109] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10542(line=612, offs=9) -- 10685(line=619, offs=4)
+*/
+/*
+local: 
+global: lt_intinf_int$110$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__lt_intinf_int__110(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret226, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp227, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp228, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp229, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10520(line=611, offs=1) -- 10685(line=619, offs=4)
+*/
+ATSINSflab(__patsflab_lt_intinf_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10551(line=612, offs=18) -- 10685(line=619, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10568(line=614, offs=11) -- 10596(line=614, offs=39)
+*/
+ATSINSmove(tmp227, atscntrb_gmp_mpz_cmp_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10611(line=615, offs=15) -- 10618(line=615, offs=22)
+*/
+ATSINSmove(tmp229, PMVtmpltcst(lt_g0int_int<S2Eextkind(atstype_int)>)(tmp227, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10608(line=615, offs=12) -- 10639(line=615, offs=43)
+*/
+ATSif(
+tmp229
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10624(line=615, offs=28) -- 10628(line=615, offs=32)
+*/
+ATSINSmove(tmp228, ATSPMVbool_true()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10634(line=615, offs=38) -- 10639(line=615, offs=43)
+*/
+ATSINSmove(tmp228, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10655(line=618, offs=3) -- 10680(line=618, offs=28)
+*/
+ATSINSmove(tmpret226, ATSPMVcastfn(cast, atstkind_t0ype(atstype_bool), tmp228)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10551(line=612, offs=18) -- 10685(line=619, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret226) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__lt_intinf_int__110] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10758(line=624, offs=9) -- 10906(line=631, offs=4)
+*/
+/*
+local: 
+global: lt_intinf_intinf$111$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__lt_intinf_intinf__111(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret230, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp231, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp232, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp233, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10733(line=623, offs=1) -- 10906(line=631, offs=4)
+*/
+ATSINSflab(__patsflab_lt_intinf_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10767(line=624, offs=18) -- 10906(line=631, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10784(line=626, offs=11) -- 10817(line=626, offs=44)
+*/
+ATSINSmove(tmp231, atscntrb_gmp_mpz_cmp_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10832(line=627, offs=15) -- 10839(line=627, offs=22)
+*/
+ATSINSmove(tmp233, PMVtmpltcst(lt_g0int_int<S2Eextkind(atstype_int)>)(tmp231, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10829(line=627, offs=12) -- 10860(line=627, offs=43)
+*/
+ATSif(
+tmp233
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10845(line=627, offs=28) -- 10849(line=627, offs=32)
+*/
+ATSINSmove(tmp232, ATSPMVbool_true()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10855(line=627, offs=38) -- 10860(line=627, offs=43)
+*/
+ATSINSmove(tmp232, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10876(line=630, offs=3) -- 10901(line=630, offs=28)
+*/
+ATSINSmove(tmpret230, ATSPMVcastfn(cast, atstkind_t0ype(atstype_bool), tmp232)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10767(line=624, offs=18) -- 10906(line=631, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret230) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__lt_intinf_intinf__111] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11001(line=638, offs=9) -- 11146(line=645, offs=4)
+*/
+/*
+local: 
+global: lte_intinf_int$112$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__lte_intinf_int__112(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret234, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp235, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp236, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp237, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 10978(line=637, offs=1) -- 11146(line=645, offs=4)
+*/
+ATSINSflab(__patsflab_lte_intinf_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11010(line=638, offs=18) -- 11146(line=645, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11027(line=640, offs=11) -- 11055(line=640, offs=39)
+*/
+ATSINSmove(tmp235, atscntrb_gmp_mpz_cmp_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11070(line=641, offs=15) -- 11078(line=641, offs=23)
+*/
+ATSINSmove(tmp237, PMVtmpltcst(lte_g0int_int<S2Eextkind(atstype_int)>)(tmp235, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11067(line=641, offs=12) -- 11099(line=641, offs=44)
+*/
+ATSif(
+tmp237
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11084(line=641, offs=29) -- 11088(line=641, offs=33)
+*/
+ATSINSmove(tmp236, ATSPMVbool_true()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11094(line=641, offs=39) -- 11099(line=641, offs=44)
+*/
+ATSINSmove(tmp236, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11115(line=644, offs=3) -- 11141(line=644, offs=29)
+*/
+ATSINSmove(tmpret234, ATSPMVcastfn(cast, atstkind_t0ype(atstype_bool), tmp236)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11010(line=638, offs=18) -- 11146(line=645, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret234) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__lte_intinf_int__112] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11221(line=650, offs=9) -- 11371(line=657, offs=4)
+*/
+/*
+local: 
+global: lte_intinf_intinf$113$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__lte_intinf_intinf__113(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret238, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp239, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp240, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp241, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11195(line=649, offs=1) -- 11371(line=657, offs=4)
+*/
+ATSINSflab(__patsflab_lte_intinf_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11230(line=650, offs=18) -- 11371(line=657, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11247(line=652, offs=11) -- 11280(line=652, offs=44)
+*/
+ATSINSmove(tmp239, atscntrb_gmp_mpz_cmp_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11295(line=653, offs=15) -- 11303(line=653, offs=23)
+*/
+ATSINSmove(tmp241, PMVtmpltcst(lte_g0int_int<S2Eextkind(atstype_int)>)(tmp239, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11292(line=653, offs=12) -- 11324(line=653, offs=44)
+*/
+ATSif(
+tmp241
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11309(line=653, offs=29) -- 11313(line=653, offs=33)
+*/
+ATSINSmove(tmp240, ATSPMVbool_true()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11319(line=653, offs=39) -- 11324(line=653, offs=44)
+*/
+ATSINSmove(tmp240, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11340(line=656, offs=3) -- 11366(line=656, offs=29)
+*/
+ATSINSmove(tmpret238, ATSPMVcastfn(cast, atstkind_t0ype(atstype_bool), tmp240)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11230(line=650, offs=18) -- 11371(line=657, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret238) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__lte_intinf_intinf__113] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11466(line=664, offs=9) -- 11609(line=671, offs=4)
+*/
+/*
+local: 
+global: gt_intinf_int$114$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__gt_intinf_int__114(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret242, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp243, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp244, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp245, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11444(line=663, offs=1) -- 11609(line=671, offs=4)
+*/
+ATSINSflab(__patsflab_gt_intinf_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11475(line=664, offs=18) -- 11609(line=671, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11492(line=666, offs=11) -- 11520(line=666, offs=39)
+*/
+ATSINSmove(tmp243, atscntrb_gmp_mpz_cmp_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11535(line=667, offs=15) -- 11542(line=667, offs=22)
+*/
+ATSINSmove(tmp245, PMVtmpltcst(gt_g0int_int<S2Eextkind(atstype_int)>)(tmp243, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11532(line=667, offs=12) -- 11563(line=667, offs=43)
+*/
+ATSif(
+tmp245
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11548(line=667, offs=28) -- 11552(line=667, offs=32)
+*/
+ATSINSmove(tmp244, ATSPMVbool_true()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11558(line=667, offs=38) -- 11563(line=667, offs=43)
+*/
+ATSINSmove(tmp244, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11579(line=670, offs=3) -- 11604(line=670, offs=28)
+*/
+ATSINSmove(tmpret242, ATSPMVcastfn(cast, atstkind_t0ype(atstype_bool), tmp244)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11475(line=664, offs=18) -- 11609(line=671, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret242) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__gt_intinf_int__114] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11682(line=676, offs=9) -- 11830(line=683, offs=4)
+*/
+/*
+local: 
+global: gt_intinf_intinf$115$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__gt_intinf_intinf__115(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret246, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp247, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp248, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp249, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11657(line=675, offs=1) -- 11830(line=683, offs=4)
+*/
+ATSINSflab(__patsflab_gt_intinf_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11691(line=676, offs=18) -- 11830(line=683, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11708(line=678, offs=11) -- 11741(line=678, offs=44)
+*/
+ATSINSmove(tmp247, atscntrb_gmp_mpz_cmp_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11756(line=679, offs=15) -- 11763(line=679, offs=22)
+*/
+ATSINSmove(tmp249, PMVtmpltcst(gt_g0int_int<S2Eextkind(atstype_int)>)(tmp247, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11753(line=679, offs=12) -- 11784(line=679, offs=43)
+*/
+ATSif(
+tmp249
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11769(line=679, offs=28) -- 11773(line=679, offs=32)
+*/
+ATSINSmove(tmp248, ATSPMVbool_true()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11779(line=679, offs=38) -- 11784(line=679, offs=43)
+*/
+ATSINSmove(tmp248, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11800(line=682, offs=3) -- 11825(line=682, offs=28)
+*/
+ATSINSmove(tmpret246, ATSPMVcastfn(cast, atstkind_t0ype(atstype_bool), tmp248)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11691(line=676, offs=18) -- 11830(line=683, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret246) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__gt_intinf_intinf__115] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11925(line=690, offs=9) -- 12070(line=697, offs=4)
+*/
+/*
+local: 
+global: gte_intinf_int$116$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__gte_intinf_int__116(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret250, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp251, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp252, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp253, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11902(line=689, offs=1) -- 12070(line=697, offs=4)
+*/
+ATSINSflab(__patsflab_gte_intinf_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11934(line=690, offs=18) -- 12070(line=697, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11951(line=692, offs=11) -- 11979(line=692, offs=39)
+*/
+ATSINSmove(tmp251, atscntrb_gmp_mpz_cmp_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11994(line=693, offs=15) -- 12002(line=693, offs=23)
+*/
+ATSINSmove(tmp253, PMVtmpltcst(gte_g0int_int<S2Eextkind(atstype_int)>)(tmp251, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11991(line=693, offs=12) -- 12023(line=693, offs=44)
+*/
+ATSif(
+tmp253
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12008(line=693, offs=29) -- 12012(line=693, offs=33)
+*/
+ATSINSmove(tmp252, ATSPMVbool_true()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12018(line=693, offs=39) -- 12023(line=693, offs=44)
+*/
+ATSINSmove(tmp252, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12039(line=696, offs=3) -- 12065(line=696, offs=29)
+*/
+ATSINSmove(tmpret250, ATSPMVcastfn(cast, atstkind_t0ype(atstype_bool), tmp252)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 11934(line=690, offs=18) -- 12070(line=697, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret250) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__gte_intinf_int__116] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12145(line=702, offs=9) -- 12295(line=709, offs=4)
+*/
+/*
+local: 
+global: gte_intinf_intinf$117$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__gte_intinf_intinf__117(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret254, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp255, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp256, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp257, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12119(line=701, offs=1) -- 12295(line=709, offs=4)
+*/
+ATSINSflab(__patsflab_gte_intinf_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12154(line=702, offs=18) -- 12295(line=709, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12171(line=704, offs=11) -- 12204(line=704, offs=44)
+*/
+ATSINSmove(tmp255, atscntrb_gmp_mpz_cmp_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12219(line=705, offs=15) -- 12227(line=705, offs=23)
+*/
+ATSINSmove(tmp257, PMVtmpltcst(gte_g0int_int<S2Eextkind(atstype_int)>)(tmp255, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12216(line=705, offs=12) -- 12248(line=705, offs=44)
+*/
+ATSif(
+tmp257
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12233(line=705, offs=29) -- 12237(line=705, offs=33)
+*/
+ATSINSmove(tmp256, ATSPMVbool_true()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12243(line=705, offs=39) -- 12248(line=705, offs=44)
+*/
+ATSINSmove(tmp256, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12264(line=708, offs=3) -- 12290(line=708, offs=29)
+*/
+ATSINSmove(tmpret254, ATSPMVcastfn(cast, atstkind_t0ype(atstype_bool), tmp256)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12154(line=702, offs=18) -- 12295(line=709, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret254) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__gte_intinf_intinf__117] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12390(line=716, offs=9) -- 12534(line=723, offs=4)
+*/
+/*
+local: 
+global: eq_intinf_int$118$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__eq_intinf_int__118(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret258, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp259, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp260, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp261, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12368(line=715, offs=1) -- 12534(line=723, offs=4)
+*/
+ATSINSflab(__patsflab_eq_intinf_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12399(line=716, offs=18) -- 12534(line=723, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12416(line=718, offs=11) -- 12444(line=718, offs=39)
+*/
+ATSINSmove(tmp259, atscntrb_gmp_mpz_cmp_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12459(line=719, offs=15) -- 12466(line=719, offs=22)
+*/
+ATSINSmove(tmp261, PMVtmpltcst(eq_g0int_int<S2Eextkind(atstype_int)>)(tmp259, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12456(line=719, offs=12) -- 12487(line=719, offs=43)
+*/
+ATSif(
+tmp261
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12472(line=719, offs=28) -- 12476(line=719, offs=32)
+*/
+ATSINSmove(tmp260, ATSPMVbool_true()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12482(line=719, offs=38) -- 12487(line=719, offs=43)
+*/
+ATSINSmove(tmp260, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12503(line=722, offs=3) -- 12529(line=722, offs=29)
+*/
+ATSINSmove(tmpret258, ATSPMVcastfn(cast, atstkind_t0ype(atstype_bool), tmp260)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12399(line=716, offs=18) -- 12534(line=723, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret258) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__eq_intinf_int__118] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12607(line=728, offs=9) -- 12756(line=735, offs=4)
+*/
+/*
+local: 
+global: eq_intinf_intinf$119$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__eq_intinf_intinf__119(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret262, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp263, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp264, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp265, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12582(line=727, offs=1) -- 12756(line=735, offs=4)
+*/
+ATSINSflab(__patsflab_eq_intinf_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12616(line=728, offs=18) -- 12756(line=735, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12633(line=730, offs=11) -- 12666(line=730, offs=44)
+*/
+ATSINSmove(tmp263, atscntrb_gmp_mpz_cmp_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12681(line=731, offs=15) -- 12688(line=731, offs=22)
+*/
+ATSINSmove(tmp265, PMVtmpltcst(eq_g0int_int<S2Eextkind(atstype_int)>)(tmp263, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12678(line=731, offs=12) -- 12709(line=731, offs=43)
+*/
+ATSif(
+tmp265
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12694(line=731, offs=28) -- 12698(line=731, offs=32)
+*/
+ATSINSmove(tmp264, ATSPMVbool_true()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12704(line=731, offs=38) -- 12709(line=731, offs=43)
+*/
+ATSINSmove(tmp264, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12725(line=734, offs=3) -- 12751(line=734, offs=29)
+*/
+ATSINSmove(tmpret262, ATSPMVcastfn(cast, atstkind_t0ype(atstype_bool), tmp264)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12616(line=728, offs=18) -- 12756(line=735, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret262) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__eq_intinf_intinf__119] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12851(line=742, offs=9) -- 12996(line=749, offs=4)
+*/
+/*
+local: 
+global: neq_intinf_int$120$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__neq_intinf_int__120(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret266, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp267, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp268, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp269, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12828(line=741, offs=1) -- 12996(line=749, offs=4)
+*/
+ATSINSflab(__patsflab_neq_intinf_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12860(line=742, offs=18) -- 12996(line=749, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12877(line=744, offs=11) -- 12905(line=744, offs=39)
+*/
+ATSINSmove(tmp267, atscntrb_gmp_mpz_cmp_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12920(line=745, offs=15) -- 12928(line=745, offs=23)
+*/
+ATSINSmove(tmp269, PMVtmpltcst(neq_g0int_int<S2Eextkind(atstype_int)>)(tmp267, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12917(line=745, offs=12) -- 12949(line=745, offs=44)
+*/
+ATSif(
+tmp269
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12934(line=745, offs=29) -- 12938(line=745, offs=33)
+*/
+ATSINSmove(tmp268, ATSPMVbool_true()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12944(line=745, offs=39) -- 12949(line=745, offs=44)
+*/
+ATSINSmove(tmp268, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12965(line=748, offs=3) -- 12991(line=748, offs=29)
+*/
+ATSINSmove(tmpret266, ATSPMVcastfn(cast, atstkind_t0ype(atstype_bool), tmp268)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 12860(line=742, offs=18) -- 12996(line=749, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret266) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__neq_intinf_int__120] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13071(line=754, offs=9) -- 13221(line=761, offs=4)
+*/
+/*
+local: 
+global: neq_intinf_intinf$121$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_bool)
+ATSCNTRB_056_HX_056_intinf_vt__neq_intinf_intinf__121(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret270, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp271, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp272, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp273, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13045(line=753, offs=1) -- 13221(line=761, offs=4)
+*/
+ATSINSflab(__patsflab_neq_intinf_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13080(line=754, offs=18) -- 13221(line=761, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13097(line=756, offs=11) -- 13130(line=756, offs=44)
+*/
+ATSINSmove(tmp271, atscntrb_gmp_mpz_cmp_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13145(line=757, offs=15) -- 13153(line=757, offs=23)
+*/
+ATSINSmove(tmp273, PMVtmpltcst(neq_g0int_int<S2Eextkind(atstype_int)>)(tmp271, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13142(line=757, offs=12) -- 13174(line=757, offs=44)
+*/
+ATSif(
+tmp273
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13159(line=757, offs=29) -- 13163(line=757, offs=33)
+*/
+ATSINSmove(tmp272, ATSPMVbool_true()) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13169(line=757, offs=39) -- 13174(line=757, offs=44)
+*/
+ATSINSmove(tmp272, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13190(line=760, offs=3) -- 13216(line=760, offs=29)
+*/
+ATSINSmove(tmpret270, ATSPMVcastfn(cast, atstkind_t0ype(atstype_bool), tmp272)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13080(line=754, offs=18) -- 13221(line=761, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret270) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__neq_intinf_intinf__121] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13321(line=768, offs=9) -- 13484(line=775, offs=4)
+*/
+/*
+local: 
+global: compare_intinf_int$122$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__122(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret274, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp275, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp276, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp277, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp278, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13294(line=767, offs=1) -- 13484(line=775, offs=4)
+*/
+ATSINSflab(__patsflab_compare_intinf_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13347(line=770, offs=11) -- 13375(line=770, offs=39)
+*/
+ATSINSmove(tmp275, atscntrb_gmp_mpz_cmp_int(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13390(line=771, offs=15) -- 13397(line=771, offs=22)
+*/
+ATSINSmove(tmp277, PMVtmpltcst(lt_g0int_int<S2Eextkind(atstype_int)>)(tmp275, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13387(line=771, offs=12) -- 13437(line=771, offs=62)
+*/
+ATSif(
+tmp277
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13403(line=771, offs=28) -- 13405(line=771, offs=30)
+*/
+ATSINSmove(tmp276, PMVtmpltcst(g1int_neg<S2Eextkind(atstype_int)>)(ATSPMVi0nt(1))) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13415(line=771, offs=40) -- 13422(line=771, offs=47)
+*/
+ATSINSmove(tmp278, PMVtmpltcst(gt_g0int_int<S2Eextkind(atstype_int)>)(tmp275, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13412(line=771, offs=37) -- 13436(line=771, offs=61)
+*/
+ATSif(
+tmp278
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13428(line=771, offs=53) -- 13429(line=771, offs=54)
+*/
+ATSINSmove(tmp276, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13435(line=771, offs=60) -- 13436(line=771, offs=61)
+*/
+ATSINSmove(tmp276, ATSPMVi0nt(0)) ;
+} /* ATSendif */
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13452(line=774, offs=3) -- 13479(line=774, offs=30)
+*/
+ATSINSmove(tmpret274, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp276)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13330(line=768, offs=18) -- 13484(line=775, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret274) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_int__122] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13564(line=780, offs=9) -- 13729(line=789, offs=4)
+*/
+/*
+local: 
+global: compare_int_intinf$123$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__compare_int_intinf__123(atstkind_t0ype(atstype_int) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret279, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp280, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp281, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp282, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp283, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13537(line=779, offs=1) -- 13729(line=789, offs=4)
+*/
+ATSINSflab(__patsflab_compare_int_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13573(line=780, offs=18) -- 13729(line=789, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13592(line=783, offs=3) -- 13619(line=783, offs=30)
+*/
+ATSINSmove(tmp280, atscntrb_gmp_mpz_cmp_int(ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)), arg0)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13636(line=785, offs=7) -- 13643(line=785, offs=14)
+*/
+ATSINSmove(tmp282, PMVtmpltcst(gt_g0int_int<S2Eextkind(atstype_int)>)(tmp280, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13633(line=785, offs=4) -- 13682(line=785, offs=53)
+*/
+ATSif(
+tmp282
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13649(line=785, offs=20) -- 13651(line=785, offs=22)
+*/
+ATSINSmove(tmp281, PMVtmpltcst(g1int_neg<S2Eextkind(atstype_int)>)(ATSPMVi0nt(1))) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13660(line=785, offs=31) -- 13667(line=785, offs=38)
+*/
+ATSINSmove(tmp283, PMVtmpltcst(lt_g0int_int<S2Eextkind(atstype_int)>)(tmp280, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13657(line=785, offs=28) -- 13681(line=785, offs=52)
+*/
+ATSif(
+tmp283
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13673(line=785, offs=44) -- 13674(line=785, offs=45)
+*/
+ATSINSmove(tmp281, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13680(line=785, offs=51) -- 13681(line=785, offs=52)
+*/
+ATSINSmove(tmp281, ATSPMVi0nt(0)) ;
+} /* ATSendif */
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13697(line=788, offs=3) -- 13724(line=788, offs=30)
+*/
+ATSINSmove(tmpret279, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp281)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13573(line=780, offs=18) -- 13729(line=789, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret279) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__compare_int_intinf__123] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13812(line=794, offs=9) -- 13982(line=803, offs=4)
+*/
+/*
+local: 
+global: compare_intinf_intinf$124$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_t0ype(atstype_int)
+ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_intinf__124(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret284, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp285, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp286, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp287, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp288, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13782(line=793, offs=1) -- 13982(line=803, offs=4)
+*/
+ATSINSflab(__patsflab_compare_intinf_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13821(line=794, offs=18) -- 13982(line=803, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13840(line=797, offs=3) -- 13872(line=797, offs=35)
+*/
+ATSINSmove(tmp285, atscntrb_gmp_mpz_cmp_mpz(ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13889(line=799, offs=7) -- 13896(line=799, offs=14)
+*/
+ATSINSmove(tmp287, PMVtmpltcst(lt_g0int_int<S2Eextkind(atstype_int)>)(tmp285, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13886(line=799, offs=4) -- 13935(line=799, offs=53)
+*/
+ATSif(
+tmp287
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13902(line=799, offs=20) -- 13904(line=799, offs=22)
+*/
+ATSINSmove(tmp286, PMVtmpltcst(g1int_neg<S2Eextkind(atstype_int)>)(ATSPMVi0nt(1))) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13913(line=799, offs=31) -- 13920(line=799, offs=38)
+*/
+ATSINSmove(tmp288, PMVtmpltcst(gt_g0int_int<S2Eextkind(atstype_int)>)(tmp285, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13910(line=799, offs=28) -- 13934(line=799, offs=52)
+*/
+ATSif(
+tmp288
+) ATSthen() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13926(line=799, offs=44) -- 13927(line=799, offs=45)
+*/
+ATSINSmove(tmp286, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13933(line=799, offs=51) -- 13934(line=799, offs=52)
+*/
+ATSINSmove(tmp286, ATSPMVi0nt(0)) ;
+} /* ATSendif */
+} /* ATSendif */
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13950(line=802, offs=3) -- 13977(line=802, offs=30)
+*/
+ATSINSmove(tmpret284, ATSPMVcastfn(cast, atstkind_t0ype(atstype_int), tmp286)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 13821(line=794, offs=18) -- 13982(line=803, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret284) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__compare_intinf_intinf__124] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14073(line=810, offs=3) -- 14242(line=819, offs=2)
+*/
+/*
+local: 
+global: pow_int_int$125$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__125(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret289, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp290, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp291) ;
+// ATStmpdec_void(tmp292) ;
+ATStmpdec(tmp293, atstkind_t0ype(atstype_ulint)) ;
+ATStmpdec(tmp294, atstkind_t0ype(atstype_ulint)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14059(line=809, offs=1) -- 14242(line=819, offs=2)
+*/
+ATSINSflab(__patsflab_pow_int_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14089(line=811, offs=3) -- 14242(line=819, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14127(line=814, offs=10) -- 14143(line=814, offs=26)
+*/
+ATSINSmove(tmp290, 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: 14153(line=815, offs=10) -- 14175(line=815, offs=32)
+*/
+ATSINSmove_void(tmp291, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp290, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14215(line=817, offs=31) -- 14224(line=817, offs=40)
+*/
+ATSINSmove(tmp293, atspre_g1int2uint_int_ulint(arg0)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14227(line=817, offs=43) -- 14235(line=817, offs=51)
+*/
+ATSINSmove(tmp294, atspre_g1int2uint_int_ulint(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14187(line=817, offs=3) -- 14237(line=817, offs=53)
+*/
+ATSINSmove_void(tmp292, atscntrb_gmp_mpz_ui_pow_ui(ATSPMVrefarg1(ATSSELrecsin(tmp290, atstkind_type(atstype_ptrk), atslab__2)), tmp293, tmp294)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14089(line=811, offs=3) -- 14105(line=811, offs=19)
+*/
+ATSINSmove(tmpret289, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp290)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14089(line=811, offs=3) -- 14242(line=819, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret289) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__pow_int_int__125] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14311(line=824, offs=3) -- 14475(line=832, offs=2)
+*/
+/*
+local: 
+global: pow_intinf_int$126$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__pow_intinf_int__126(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret295, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp296, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp297) ;
+// ATStmpdec_void(tmp298) ;
+ATStmpdec(tmp299, atstkind_t0ype(atstype_uint)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14294(line=823, offs=1) -- 14475(line=832, offs=2)
+*/
+ATSINSflab(__patsflab_pow_intinf_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14327(line=825, offs=3) -- 14475(line=832, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14365(line=828, offs=10) -- 14381(line=828, offs=26)
+*/
+ATSINSmove(tmp296, 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: 14391(line=829, offs=10) -- 14413(line=829, offs=32)
+*/
+ATSINSmove_void(tmp297, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp296, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14461(line=830, offs=48) -- 14468(line=830, offs=55)
+*/
+ATSINSmove(tmp299, atspre_g1int2uint_int_uint(arg1)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14423(line=830, offs=10) -- 14470(line=830, offs=57)
+*/
+ATSINSmove_void(tmp298, atscntrb_gmp_mpz_pow_uint(ATSPMVrefarg1(ATSSELrecsin(tmp296, atstkind_type(atstype_ptrk), atslab__2)), ATSPMVrefarg1(ATSSELrecsin(arg0, atstkind_type(atstype_ptrk), atslab__2)), tmp299)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14327(line=825, offs=3) -- 14343(line=825, offs=19)
+*/
+ATSINSmove(tmpret295, ATSPMVcastfn(castvwtp0, atstkind_type(atstype_ptrk), tmp296)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14327(line=825, offs=3) -- 14475(line=832, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret295) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__pow_intinf_int__126] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14598(line=841, offs=13) -- 14632(line=841, offs=47)
+*/
+/*
+local: 
+global: print_intinf$127$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__print_intinf__127(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret300) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14586(line=841, offs=1) -- 14632(line=841, offs=47)
+*/
+ATSINSflab(__patsflab_print_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14604(line=841, offs=19) -- 14632(line=841, offs=47)
+*/
+ATSINSmove_void(tmpret300, PMVtmpltcst(fprint_intinf<>)(atspre_FILE_stdout, ATSPMVrefarg0(arg0))) ;
+
+ATSfunbody_end()
+ATSreturn_void(tmpret300) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__print_intinf__127] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14657(line=843, offs=13) -- 14691(line=843, offs=47)
+*/
+/*
+local: 
+global: prerr_intinf$128$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__prerr_intinf__128(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret301) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14645(line=843, offs=1) -- 14691(line=843, offs=47)
+*/
+ATSINSflab(__patsflab_prerr_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14663(line=843, offs=19) -- 14691(line=843, offs=47)
+*/
+ATSINSmove_void(tmpret301, PMVtmpltcst(fprint_intinf<>)(atspre_FILE_stderr, ATSPMVrefarg0(arg0))) ;
+
+ATSfunbody_end()
+ATSreturn_void(tmpret301) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__prerr_intinf__128] */
+#endif // end of [TEMPLATE]
+
+#if(0)
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14717(line=845, offs=14) -- 14766(line=845, offs=63)
+*/
+/*
+local: 
+global: fprint_intinf$129$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = 
+tmparg = 
+tmpsub = None()
+*/
+atsvoid_t0ype
+ATSCNTRB_056_HX_056_intinf_vt__fprint_intinf__129(atstkind_type(atstype_ptrk) arg0, atsrefarg0_type(atstkind_type(atstype_ptrk)) arg1)
+{
+/* tmpvardeclst(beg) */
+// ATStmpdec_void(tmpret302) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14704(line=845, offs=1) -- 14766(line=845, offs=63)
+*/
+ATSINSflab(__patsflab_fprint_intinf):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 14728(line=845, offs=25) -- 14766(line=845, offs=63)
+*/
+ATSINSmove_void(tmpret302, PMVtmpltcst(fprint_intinf_base<>)(arg0, ATSPMVrefarg0(arg1), ATSPMVi0nt(10))) ;
+
+ATSfunbody_end()
+ATSreturn_void(tmpret302) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__fprint_intinf__129] */
+#endif // end of [TEMPLATE]
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 587(line=20, offs=4) -- 635(line=21, offs=12)
+*/
+/*
+local: 
+global: divides_130$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+divides_130(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret303, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp306, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 587(line=20, offs=4) -- 635(line=21, offs=12)
+*/
+ATSINSflab(__patsflab_divides_130):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 626(line=21, offs=3) -- 631(line=21, offs=8)
+*/
+ATSINSmove(tmp306, atspre_g0int_mod_int(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 626(line=21, offs=3) -- 635(line=21, offs=12)
+*/
+ATSINSmove(tmpret303, ATSLIB_056_prelude__eq_g0int_int__7__4(tmp306, ATSPMVi0nt(0))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret303) ;
+} /* end of [divides_130] */
+
+/*
+/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/current/fast-combinatorics/ats-src/number-theory.dats: 641(line=23, offs=5) -- 752(line=27, offs=6)
+*/
+/*
+local: witness_12$0(level=0), gcd_132$0(level=0)
+global: witness_12$0(level=0), gcd_132$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+gcd_132(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(tmpret307, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp308, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp311, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp312, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+/*
+emit_funent_fnxdeclst:
+*/
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 641(line=23, offs=5) -- 752(line=27, offs=6)
+*/
+ATSINSflab(__patsflab_gcd_132):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 702(line=24, offs=6) -- 707(line=24, offs=11)
+*/
+ATSINSmove(tmp308, ATSLIB_056_prelude__gt_g1int_int__1__2(arg1, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 699(line=24, offs=3) -- 752(line=27, offs=6)
+*/
+ATSif(
+tmp308
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 732(line=25, offs=20) -- 737(line=25, offs=25)
+*/
+ATSINSmove(tmp312, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 724(line=25, offs=12) -- 738(line=25, offs=26)
+*/
+ATSINSmove(tmp311, witness_12(tmp312)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 717(line=25, offs=5) -- 739(line=25, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg1) ;
+ATSINSmove_tlcal(apy1, tmp311) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_gcd_132) ;
+ATStailcal_end()
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 751(line=27, offs=5) -- 752(line=27, offs=6)
+*/
+ATSINSmove(tmpret307, arg0) ;
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret307) ;
+/*
+emit_funent_fnxbodylst:
+*/
+} /* end of [gcd_132] */
+
+/*
+/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/current/fast-combinatorics/ats-src/number-theory.dats: 757(line=29, offs=4) -- 834(line=30, offs=22)
+*/
+/*
+local: gcd_132$0(level=0)
+global: witness_12$0(level=0), gcd_132$0(level=0), lcm_134$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+lcm_134(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret313, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp314, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp315, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 757(line=29, offs=4) -- 834(line=30, offs=22)
+*/
+ATSINSflab(__patsflab_lcm_134):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 820(line=30, offs=8) -- 829(line=30, offs=17)
+*/
+ATSINSmove(tmp315, gcd_132(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 816(line=30, offs=4) -- 829(line=30, offs=17)
+*/
+ATSINSmove(tmp314, atspre_g0int_div_int(arg0, tmp315)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 815(line=30, offs=3) -- 834(line=30, offs=22)
+*/
+ATSINSmove(tmpret313, atspre_g0int_mul_int(tmp314, arg1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret313) ;
+} /* end of [lcm_134] */
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 877(line=33, offs=4) -- 1281(line=45, offs=6)
+*/
+/*
+local: 
+global: divisors_136$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+divisors_136(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret316, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 877(line=33, offs=4) -- 1281(line=45, offs=6)
+*/
+ATSINSflab(__patsflab_divisors_136):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 922(line=34, offs=3) -- 1281(line=45, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1265(line=44, offs=5) -- 1275(line=44, offs=15)
+*/
+ATSINSmove(tmpret316, loop_137(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 922(line=34, offs=3) -- 1281(line=45, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret316) ;
+} /* end of [divisors_136] */
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 934(line=35, offs=9) -- 1255(line=42, offs=33)
+*/
+/*
+local: loop_137$0(level=1)
+global: loop_137$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_137(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret317, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp318, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp326, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp329, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 934(line=35, offs=9) -- 1255(line=42, offs=33)
+*/
+ATSINSflab(__patsflab_loop_137):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1041(line=36, offs=10) -- 1049(line=36, offs=18)
+*/
+ATSINSmove(tmp318, ATSLIB_056_prelude__gte_g1int_int__138__1(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1038(line=36, offs=7) -- 1255(line=42, offs=33)
+*/
+ATSif(
+tmp318
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1063(line=37, offs=9) -- 1115(line=37, offs=61)
+*/
+ATSINSmove_ldelay(tmpret317, atstype_boxed, ATSPMVcfunlab(1, __patsfun_141, (arg1))) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1138(line=39, offs=12) -- 1145(line=39, offs=19)
+*/
+ATSINSmove(tmp329, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1138(line=39, offs=12) -- 1149(line=39, offs=23)
+*/
+ATSINSmove(tmp326, ATSLIB_056_prelude__eq_g0int_int__7__5(tmp329, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1135(line=39, offs=9) -- 1255(line=42, offs=33)
+*/
+ATSif(
+tmp326
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1165(line=40, offs=11) -- 1209(line=40, offs=55)
+*/
+ATSINSmove_ldelay(tmpret317, atstype_boxed, ATSPMVcfunlab(1, __patsfun_144, (arg0, arg1))) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1233(line=42, offs=11) -- 1255(line=42, offs=33)
+*/
+ATSINSmove_ldelay(tmpret317, atstype_boxed, ATSPMVcfunlab(1, __patsfun_145, ())) ;
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret317) ;
+} /* end of [loop_137] */
+
+#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$138$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__138(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret319, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp320, 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(tmp320, 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(tmpret319, PMVtmpltcst(g1int_gte<S2Evar(tk(4706))>)(arg0, tmp320)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret319) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__138] */
+#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$138$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__138__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret319__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp320__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(tmp320__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(tmpret319__1, atspre_g1int_gte_int(arg0, tmp320__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret319__1) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__138__1] */
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1063(line=37, offs=9) -- 1115(line=37, offs=61)
+*/
+/*
+local: 
+global: __patsfun_141$0(level=2)
+local: acc$5071(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: acc$5071(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_141(atstkind_t0ype(atstype_int) env0, atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret323, atstype_boxed) ;
+ATStmpdec(tmp324, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1063(line=37, offs=9) -- 1115(line=37, offs=61)
+*/
+ATSINSflab(__patsflab___patsfun_141):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1063(line=37, offs=9) -- 1115(line=37, offs=61)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1091(line=37, offs=37) -- 1113(line=37, offs=59)
+*/
+ATSINSmove_ldelay(tmp324, atstype_boxed, ATSPMVcfunlab(1, __patsfun_142, ())) ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1071(line=37, offs=17) -- 1114(line=37, offs=60)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret323, postiats_tysum_0) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret323, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret323, postiats_tysum_0, atslab__0, env0) ;
+ATSINSstore_con1_ofs(tmpret323, postiats_tysum_0, atslab__1, tmp324) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret323) ;
+} /* end of [__patsfun_141] */
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1091(line=37, offs=37) -- 1113(line=37, offs=59)
+*/
+/*
+local: 
+global: __patsfun_142$0(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_142(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret325, atstype_boxed) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1091(line=37, offs=37) -- 1113(line=37, offs=59)
+*/
+ATSINSflab(__patsflab___patsfun_142):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1091(line=37, offs=37) -- 1113(line=37, offs=59)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1099(line=37, offs=45) -- 1112(line=37, offs=58)
+*/
+
+ATSINSmove_nil(tmpret325) ;
+
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret325) ;
+} /* end of [__patsfun_142] */
+
+/*
+/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/current/fast-combinatorics/ats-src/number-theory.dats: 1165(line=40, offs=11) -- 1209(line=40, offs=55)
+*/
+/*
+local: loop_137$0(level=1)
+global: loop_137$0(level=1), __patsfun_144$0(level=2)
+local: n$5070(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5071(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+global: n$5070(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int)))), acc$5071(2)(HSEapp(HSEcst(atstkind_t0ype); HSEs2exp(S2Eextkind(atstype_int))))
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_144(atstkind_t0ype(atstype_int) env0, atstkind_t0ype(atstype_int) env1, atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret330, atstype_boxed) ;
+ATStmpdec(tmp331, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp332, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1165(line=40, offs=11) -- 1209(line=40, offs=55)
+*/
+ATSINSflab(__patsflab___patsfun_144):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1165(line=40, offs=11) -- 1209(line=40, offs=55)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1199(line=40, offs=45) -- 1206(line=40, offs=52)
+*/
+ATSINSmove(tmp332, atspre_g1int_add_int(env1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1191(line=40, offs=37) -- 1207(line=40, offs=53)
+*/
+ATSINSmove(tmp331, loop_137(env0, tmp332)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1173(line=40, offs=19) -- 1208(line=40, offs=54)
+*/
+
+/*
+#LINCONSTATUS==0
+*/
+ATSINSmove_con1_beg()
+ATSINSmove_con1_new(tmpret330, postiats_tysum_0) ;
+#if(0)
+ATSINSstore_con1_tag(tmpret330, 1) ;
+#endif
+ATSINSstore_con1_ofs(tmpret330, postiats_tysum_0, atslab__0, env0) ;
+ATSINSstore_con1_ofs(tmpret330, postiats_tysum_0, atslab__1, tmp331) ;
+ATSINSmove_con1_end()
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret330) ;
+} /* end of [__patsfun_144] */
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1233(line=42, offs=11) -- 1255(line=42, offs=33)
+*/
+/*
+local: 
+global: __patsfun_145$0(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+atstype_boxed
+__patsfun_145(atstype_bool arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret333, atstype_boxed) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1233(line=42, offs=11) -- 1255(line=42, offs=33)
+*/
+ATSINSflab(__patsflab___patsfun_145):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1233(line=42, offs=11) -- 1255(line=42, offs=33)
+*/
+ATSif(
+arg0
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1241(line=42, offs=19) -- 1254(line=42, offs=32)
+*/
+
+ATSINSmove_nil(tmpret333) ;
+
+} ATSelse() {
+/* (*nothing*) */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret333) ;
+} /* end of [__patsfun_145] */
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1286(line=47, offs=4) -- 1597(line=59, offs=6)
+*/
+/*
+local: 
+global: count_divisors_146$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+count_divisors_146(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret334, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1286(line=47, offs=4) -- 1597(line=59, offs=6)
+*/
+ATSINSflab(__patsflab_count_divisors_146):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1328(line=48, offs=3) -- 1597(line=59, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1581(line=58, offs=5) -- 1591(line=58, offs=15)
+*/
+ATSINSmove(tmpret334, loop_147(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1328(line=48, offs=3) -- 1597(line=59, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret334) ;
+} /* end of [count_divisors_146] */
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1340(line=49, offs=9) -- 1571(line=56, offs=27)
+*/
+/*
+local: loop_147$0(level=1)
+global: loop_147$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_147(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(tmpret335, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp336, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp339, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp342, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp343, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp344, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp345, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1340(line=49, offs=9) -- 1571(line=56, offs=27)
+*/
+ATSINSflab(__patsflab_loop_147):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1438(line=50, offs=10) -- 1446(line=50, offs=18)
+*/
+ATSINSmove(tmp336, ATSLIB_056_prelude__gte_g1int_int__138__2(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1435(line=50, offs=7) -- 1571(line=56, offs=27)
+*/
+ATSif(
+tmp336
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1460(line=51, offs=9) -- 1461(line=51, offs=10)
+*/
+ATSINSmove(tmpret335, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1484(line=53, offs=12) -- 1491(line=53, offs=19)
+*/
+ATSINSmove(tmp342, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1484(line=53, offs=12) -- 1495(line=53, offs=23)
+*/
+ATSINSmove(tmp339, ATSLIB_056_prelude__eq_g0int_int__7__6(tmp342, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1481(line=53, offs=9) -- 1571(line=56, offs=27)
+*/
+ATSif(
+tmp339
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1523(line=54, offs=23) -- 1530(line=54, offs=30)
+*/
+ATSINSmove(tmp344, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1515(line=54, offs=15) -- 1531(line=54, offs=31)
+*/
+ATSINSmove(tmp343, loop_147(arg0, tmp344)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1511(line=54, offs=11) -- 1531(line=54, offs=31)
+*/
+ATSINSmove(tmpret335, atspre_g0int_add_int(ATSPMVi0nt(1), tmp343)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1563(line=56, offs=19) -- 1570(line=56, offs=26)
+*/
+ATSINSmove(tmp345, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1555(line=56, offs=11) -- 1571(line=56, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp345) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_147) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret335) ;
+} /* end of [loop_147] */
+
+/*
+/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$138$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__138__2(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret319__2, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp320__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(tmp320__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(tmpret319__2, atspre_g1int_gte_int(arg0, tmp320__2)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret319__2) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__138__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/current/fast-combinatorics/ats-src/number-theory.dats: 1602(line=61, offs=4) -- 1913(line=73, offs=6)
+*/
+/*
+local: 
+global: sum_divisors_151$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+sum_divisors_151(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret346, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1602(line=61, offs=4) -- 1913(line=73, offs=6)
+*/
+ATSINSflab(__patsflab_sum_divisors_151):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1642(line=62, offs=3) -- 1913(line=73, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1897(line=72, offs=5) -- 1907(line=72, offs=15)
+*/
+ATSINSmove(tmpret346, loop_152(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1642(line=62, offs=3) -- 1913(line=73, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret346) ;
+} /* end of [sum_divisors_151] */
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1654(line=63, offs=9) -- 1887(line=70, offs=27)
+*/
+/*
+local: loop_152$0(level=1)
+global: loop_152$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_152(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(tmpret347, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp348, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp351, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp354, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp355, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp356, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp357, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1654(line=63, offs=9) -- 1887(line=70, offs=27)
+*/
+ATSINSflab(__patsflab_loop_152):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1752(line=64, offs=10) -- 1760(line=64, offs=18)
+*/
+ATSINSmove(tmp348, ATSLIB_056_prelude__gte_g1int_int__138__3(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1749(line=64, offs=7) -- 1887(line=70, offs=27)
+*/
+ATSif(
+tmp348
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1774(line=65, offs=9) -- 1775(line=65, offs=10)
+*/
+ATSINSmove(tmpret347, ATSPMVi0nt(0)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1798(line=67, offs=12) -- 1805(line=67, offs=19)
+*/
+ATSINSmove(tmp354, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1798(line=67, offs=12) -- 1809(line=67, offs=23)
+*/
+ATSINSmove(tmp351, ATSLIB_056_prelude__eq_g0int_int__7__7(tmp354, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1795(line=67, offs=9) -- 1887(line=70, offs=27)
+*/
+ATSif(
+tmp351
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1839(line=68, offs=25) -- 1846(line=68, offs=32)
+*/
+ATSINSmove(tmp356, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1831(line=68, offs=17) -- 1847(line=68, offs=33)
+*/
+ATSINSmove(tmp355, loop_152(arg0, tmp356)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1825(line=68, offs=11) -- 1847(line=68, offs=33)
+*/
+ATSINSmove(tmpret347, atspre_g0int_add_int(arg1, tmp355)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1879(line=70, offs=19) -- 1886(line=70, offs=26)
+*/
+ATSINSmove(tmp357, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1871(line=70, offs=11) -- 1887(line=70, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp357) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_152) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret347) ;
+} /* end of [loop_152] */
+
+/*
+/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$138$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__138__3(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret319__3, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp320__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(tmp320__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(tmpret319__3, atspre_g1int_gte_int(arg0, tmp320__3)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret319__3) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__138__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/current/fast-combinatorics/ats-src/number-theory.dats: 1918(line=75, offs=4) -- 1976(line=76, offs=22)
+*/
+/*
+local: sum_divisors_151$0(level=0)
+global: sum_divisors_151$0(level=0), is_perfect_155$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+is_perfect_155(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret358, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp361, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1918(line=75, offs=4) -- 1976(line=76, offs=22)
+*/
+ATSINSflab(__patsflab_is_perfect_155):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1957(line=76, offs=3) -- 1971(line=76, offs=17)
+*/
+ATSINSmove(tmp361, sum_divisors_151(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 1957(line=76, offs=3) -- 1976(line=76, offs=22)
+*/
+ATSINSmove(tmpret358, ATSLIB_056_prelude__eq_g0int_int__7__8(tmp361, arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret358) ;
+} /* end of [is_perfect_155] */
+
+/*
+/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/current/fast-combinatorics/ats-src/number-theory.dats: 2008(line=79, offs=4) -- 2389(line=94, 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_157$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+little_omega_157(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret362, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2008(line=79, offs=4) -- 2389(line=94, offs=6)
+*/
+ATSINSflab(__patsflab_little_omega_157):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2048(line=80, offs=3) -- 2389(line=94, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2373(line=93, offs=5) -- 2383(line=93, offs=15)
+*/
+ATSINSmove(tmpret362, loop_158(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2048(line=80, offs=3) -- 2389(line=94, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret362) ;
+} /* end of [little_omega_157] */
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2060(line=81, offs=9) -- 2363(line=91, offs=27)
+*/
+/*
+local: is_prime_16$0(level=0), loop_158$0(level=1)
+global: is_prime_16$0(level=0), loop_158$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_158(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(tmpret363, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp364, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp367, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp368, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp369, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp372, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp373, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp374, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp375, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2060(line=81, offs=9) -- 2363(line=91, offs=27)
+*/
+ATSINSflab(__patsflab_loop_158):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2158(line=82, offs=10) -- 2166(line=82, offs=18)
+*/
+ATSINSmove(tmp364, ATSLIB_056_prelude__gte_g1int_int__138__4(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2155(line=82, offs=7) -- 2363(line=91, offs=27)
+*/
+ATSif(
+tmp364
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2183(line=83, offs=12) -- 2193(line=83, offs=22)
+*/
+ATSINSmove(tmp367, is_prime_16(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2180(line=83, offs=9) -- 2236(line=86, offs=12)
+*/
+ATSif(
+tmp367
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2210(line=84, offs=11) -- 2211(line=84, offs=12)
+*/
+ATSINSmove(tmpret363, ATSPMVi0nt(1)) ;
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2235(line=86, offs=11) -- 2236(line=86, offs=12)
+*/
+ATSINSmove(tmpret363, ATSPMVi0nt(0)) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2259(line=88, offs=12) -- 2286(line=88, offs=39)
+*/
+ATSINSmove(tmp372, atspre_g0int_mod_int(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2259(line=88, offs=12) -- 2286(line=88, offs=39)
+*/
+ATSINSmove(tmp369, ATSLIB_056_prelude__eq_g0int_int__7__9(tmp372, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2259(line=88, offs=12) -- 2286(line=88, offs=39)
+*/
+ATSif(
+tmp369
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2259(line=88, offs=12) -- 2286(line=88, offs=39)
+*/
+ATSINSmove(tmp368, is_prime_16(arg1)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2259(line=88, offs=12) -- 2286(line=88, offs=39)
+*/
+ATSINSmove(tmp368, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2256(line=88, offs=9) -- 2363(line=91, offs=27)
+*/
+ATSif(
+tmp368
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2315(line=89, offs=23) -- 2322(line=89, offs=30)
+*/
+ATSINSmove(tmp374, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2307(line=89, offs=15) -- 2323(line=89, offs=31)
+*/
+ATSINSmove(tmp373, loop_158(arg0, tmp374)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2303(line=89, offs=11) -- 2323(line=89, offs=31)
+*/
+ATSINSmove(tmpret363, atspre_g0int_add_int(ATSPMVi0nt(1), tmp373)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2355(line=91, offs=19) -- 2362(line=91, offs=26)
+*/
+ATSINSmove(tmp375, atspre_g1int_add_int(arg1, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2347(line=91, offs=11) -- 2363(line=91, offs=27)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, arg0) ;
+ATSINSmove_tlcal(apy1, tmp375) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_158) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret363) ;
+} /* end of [loop_158] */
+
+/*
+/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$138$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__138__4(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret319__4, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp320__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(tmp320__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(tmpret319__4, atspre_g1int_gte_int(arg0, tmp320__4)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret319__4) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__138__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/current/fast-combinatorics/ats-src/number-theory.dats: 2423(line=97, offs=4) -- 2971(line=117, 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_161$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+totient_161(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret376, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2423(line=97, offs=4) -- 2971(line=117, offs=10)
+*/
+ATSINSflab(__patsflab_totient_161):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2456(line=98, offs=3) -- 2971(line=117, offs=10)
+*/
+ATScaseof_beg()
+/*
+** ibranchlst-beg
+*/
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2473(line=99, offs=7) -- 2474(line=99, offs=8)
+*/
+ATSINSlab(__atstmplab6):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2431(line=97, offs=12) -- 2432(line=97, offs=13)
+*/
+ATSifnthen(ATSCKpat_int(arg0, ATSPMVint(1))) { ATSINSgoto(__atstmplab8) ; } ;
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2474(line=99, offs=8) -- 2474(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/current/fast-combinatorics/ats-src/number-theory.dats: 2478(line=99, offs=12) -- 2479(line=99, offs=13)
+*/
+ATSINSmove(tmpret376, ATSPMVi0nt(1)) ;
+ATSbranch_end()
+
+ATSbranch_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2487(line=100, offs=8) -- 2487(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/current/fast-combinatorics/ats-src/number-theory.dats: 2513(line=102, offs=9) -- 2961(line=116, offs=12)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2939(line=115, offs=11) -- 2949(line=115, offs=21)
+*/
+ATSINSmove(tmpret376, loop_162(ATSPMVi0nt(1), arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2513(line=102, offs=9) -- 2961(line=116, offs=12)
+*/
+/*
+INSletpop()
+*/
+ATSbranch_end()
+
+/*
+** ibranchlst-end
+*/
+ATScaseof_end()
+
+ATSfunbody_end()
+ATSreturn(tmpret376) ;
+} /* end of [totient_161] */
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2531(line=103, offs=15) -- 2917(line=113, offs=31)
+*/
+/*
+local: is_prime_16$0(level=0), loop_162$0(level=1)
+global: is_prime_16$0(level=0), loop_162$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+loop_162(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(tmpret377, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp378, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp381, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp382, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp383, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp384, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp387, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp392, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp393, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp394, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp395, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp396, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+/*
+emit_funent_fnxdeclst:
+*/
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2531(line=103, offs=15) -- 2917(line=113, offs=31)
+*/
+ATSINSflab(__patsflab_loop_162):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2642(line=104, offs=16) -- 2648(line=104, offs=22)
+*/
+ATSINSmove(tmp378, ATSLIB_056_prelude__gte_g1int_int__138__5(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2639(line=104, offs=13) -- 2917(line=113, offs=31)
+*/
+ATSif(
+tmp378
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2671(line=105, offs=18) -- 2681(line=105, offs=28)
+*/
+ATSINSmove(tmp381, is_prime_16(arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2668(line=105, offs=15) -- 2746(line=108, offs=18)
+*/
+ATSif(
+tmp381
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2704(line=106, offs=17) -- 2709(line=106, offs=22)
+*/
+ATSINSmove(tmpret377, atspre_g1int_sub_int(arg1, ATSPMVi0nt(1))) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2745(line=108, offs=17) -- 2746(line=108, offs=18)
+*/
+ATSINSmove(tmpret377, arg1) ;
+} /* ATSendif */
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2781(line=110, offs=18) -- 2815(line=110, offs=52)
+*/
+ATSINSmove(tmp387, atspre_g0int_mod_int(arg1, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2781(line=110, offs=18) -- 2815(line=110, offs=52)
+*/
+ATSINSmove(tmp384, ATSLIB_056_prelude__eq_g0int_int__7__10(tmp387, ATSPMVi0nt(0))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2781(line=110, offs=18) -- 2815(line=110, offs=52)
+*/
+ATSif(
+tmp384
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2781(line=110, offs=18) -- 2815(line=110, offs=52)
+*/
+ATSINSmove(tmp383, is_prime_16(arg0)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2781(line=110, offs=18) -- 2815(line=110, offs=52)
+*/
+ATSINSmove(tmp383, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2781(line=110, offs=18) -- 2815(line=110, offs=52)
+*/
+ATSif(
+tmp383
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2781(line=110, offs=18) -- 2815(line=110, offs=52)
+*/
+ATSINSmove(tmp382, ATSLIB_056_prelude__neq_g1int_int__166__1(arg0, arg1)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2781(line=110, offs=18) -- 2815(line=110, offs=52)
+*/
+ATSINSmove(tmp382, ATSPMVbool_false()) ;
+} /* ATSendif */
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2778(line=110, offs=15) -- 2917(line=113, offs=31)
+*/
+ATSif(
+tmp382
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2843(line=111, offs=23) -- 2848(line=111, offs=28)
+*/
+ATSINSmove(tmp394, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2838(line=111, offs=18) -- 2852(line=111, offs=32)
+*/
+ATSINSmove(tmp393, loop_162(tmp394, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2838(line=111, offs=18) -- 2856(line=111, offs=36)
+*/
+ATSINSmove(tmp392, atspre_g0int_div_int(tmp393, arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2861(line=111, offs=41) -- 2866(line=111, offs=46)
+*/
+ATSINSmove(tmp395, atspre_g1int_sub_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2837(line=111, offs=17) -- 2867(line=111, offs=47)
+*/
+ATSINSmove(tmpret377, atspre_g0int_mul_int(tmp392, tmp395)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2908(line=113, offs=22) -- 2913(line=113, offs=27)
+*/
+ATSINSmove(tmp396, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 2903(line=113, offs=17) -- 2917(line=113, offs=31)
+*/
+ATStailcal_beg()
+ATSINSmove_tlcal(apy0, tmp396) ;
+ATSINSmove_tlcal(apy1, arg1) ;
+ATSINSargmove_tlcal(arg0, apy0) ;
+ATSINSargmove_tlcal(arg1, apy1) ;
+ATSINSfgoto(__patsflab_loop_162) ;
+ATStailcal_end()
+
+} /* ATSendif */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret377) ;
+/*
+emit_funent_fnxbodylst:
+*/
+} /* end of [loop_162] */
+
+/*
+/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$138$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__138__5(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret319__5, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp320__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(tmp320__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(tmpret319__5, atspre_g1int_gte_int(arg0, tmp320__5)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret319__5) ;
+} /* end of [ATSLIB_056_prelude__gte_g1int_int__138__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$166$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__166(atstkind_t0ype(atstyvar_type(tk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret388, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp389, 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(tmp389, 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(tmpret388, PMVtmpltcst(g1int_neq<S2Evar(tk(4712))>)(arg0, tmp389)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret388) ;
+} /* end of [ATSLIB_056_prelude__neq_g1int_int__166] */
+#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$166$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__166__1(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret388__1, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp389__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(tmp389__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(tmpret388__1, atspre_g1int_neq_int(arg0, tmp389__1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret388__1) ;
+} /* end of [ATSLIB_056_prelude__neq_g1int_int__166__1] */
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 3024(line=120, offs=5) -- 3319(line=129, offs=6)
+*/
+/*
+local: witness_12$0(level=0), totient_161$0(level=0)
+global: witness_12$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), totient_161$0(level=0), totient_sum_169$0(level=0)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+totient_sum_169(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret397, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 3024(line=120, offs=5) -- 3319(line=129, offs=6)
+*/
+ATSINSflab(__patsflab_totient_sum_169):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 3064(line=121, offs=3) -- 3319(line=129, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 3303(line=128, offs=5) -- 3313(line=128, offs=15)
+*/
+ATSINSmove(tmpret397, loop_170(ATSPMVi0nt(1), arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 3064(line=121, offs=3) -- 3319(line=129, offs=6)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret397) ;
+} /* end of [totient_sum_169] */
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 3076(line=122, offs=9) -- 3293(line=126, offs=40)
+*/
+/*
+local: witness_12$0(level=0), totient_161$0(level=0), loop_170$0(level=1)
+global: witness_12$0(level=0), totient_161$0(level=0), loop_170$0(level=1)
+local: 
+global: 
+*/
+ATSstatic()
+atstkind_type(atstype_ptrk)
+loop_170(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(tmpret398, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp399, atstkind_t0ype(atstype_bool)) ;
+ATStmpdec(tmp410, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp411, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp412, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp413, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp420, atstkind_t0ype(atstype_int)) ;
+ATStmpdec(tmp421, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+/*
+emit_funent_fnxdeclst:
+*/
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 3076(line=122, offs=9) -- 3293(line=126, offs=40)
+*/
+ATSINSflab(__patsflab_loop_170):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 3179(line=123, offs=10) -- 3188(line=123, offs=19)
+*/
+ATSINSmove(tmp399, ATSLIB_056_prelude__lt_g1int_int__18__2(arg0, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 3176(line=123, offs=7) -- 3293(line=126, offs=40)
+*/
+ATSif(
+tmp399
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 3207(line=124, offs=14) -- 3212(line=124, offs=19)
+*/
+ATSINSmove(tmp411, atspre_g1int_add_int(arg0, ATSPMVi0nt(1))) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 3202(line=124, offs=9) -- 3220(line=124, offs=27)
+*/
+ATSINSmove(tmp410, loop_170(tmp411, arg1)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 3231(line=124, offs=38) -- 3240(line=124, offs=47)
+*/
+ATSINSmove(tmp413, totient_161(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 3223(line=124, offs=30) -- 3242(line=124, offs=49)
+*/
+ATSINSmove(tmp412, witness_12(tmp413)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 3202(line=124, offs=9) -- 3242(line=124, offs=49)
+*/
+ATSINSmove(tmpret398, ATSCNTRB_056_HX_056_intinf_t__add_intinf_int__42__1(tmp410, tmp412)) ;
+
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 3262(line=126, offs=9) -- 3293(line=126, offs=40)
+*/
+ATSINSmove(tmp421, totient_161(arg0)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 3262(line=126, offs=9) -- 3293(line=126, offs=40)
+*/
+ATSINSmove(tmp420, witness_12(tmp421)) ;
+
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory.dats: 3262(line=126, offs=9) -- 3293(line=126, offs=40)
+*/
+ATSINSmove(tmpret398, ATSCNTRB_056_HX_056_intinf_t__intinf_make_int__27__1(tmp420)) ;
+
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn(tmpret398) ;
+/*
+emit_funent_fnxbodylst:
+*/
+} /* end of [loop_170] */
+
+/*
+/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] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4162(line=216, offs=3) -- 4320(line=230, offs=4)
+*/
+/*
+local: 
+global: add_intinf_int$42$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__add_intinf_int__42__1(atstkind_type(atstype_ptrk) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret65__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp66__1, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4145(line=215, offs=1) -- 4320(line=230, offs=4)
+*/
+ATSINSflab(__patsflab_add_intinf_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4171(line=216, offs=12) -- 4320(line=230, offs=4)
+*/
+/*
+letpush(beg)
+*/
+/* (*nothing*) */
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4232(line=224, offs=3) -- 4258(line=224, offs=29)
+*/
+ATSINSmove(tmp66__1, ATSCNTRB_056_HX_056_intinf_vt__add_intinf1_int__81__1(ATSPMVrefarg0(ATSPMVcastfn(intinf_takeout, atstkind_type(atstype_ptrk), arg0)), arg1)) ;
+
+/*
+letpush(end)
+*/
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4300(line=229, offs=3) -- 4315(line=229, offs=18)
+*/
+ATSINSmove(tmpret65__1, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp66__1)) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 4171(line=216, offs=12) -- 4320(line=230, offs=4)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret65__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__add_intinf_int__42__1] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5288(line=284, offs=3) -- 5418(line=291, offs=2)
+*/
+/*
+local: 
+global: add_intinf1_int$81$1(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__add_intinf1_int__81__1(atsrefarg0_type(atstkind_type(atstype_ptrk)) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret142__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp143__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp144__1) ;
+// 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: 5270(line=283, offs=1) -- 5418(line=291, offs=2)
+*/
+ATSINSflab(__patsflab_add_intinf1_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5297(line=284, offs=12) -- 5418(line=291, offs=2)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5320(line=287, offs=9) -- 5336(line=287, offs=25)
+*/
+ATSINSmove(tmp143__1, ATSLIB_056_prelude__ptr_alloc__174__1()) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5346(line=288, offs=10) -- 5367(line=288, offs=31)
+*/
+ATSINSmove_void(tmp144__1, atscntrb_gmp_mpz_init(ATSPMVrefarg1(ATSSELrecsin(tmp143__1, atstkind_type(atstype_ptrk), atslab__2)))) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5377(line=289, offs=10) -- 5413(line=289, offs=46)
+*/
+ATSINSmove_void(tmp145__1, atscntrb_gmp_mpz_add3_int(ATSPMVrefarg1(ATSSELrecsin(tmp143__1, atstkind_type(atstype_ptrk), atslab__2)), 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: 5298(line=284, offs=13) -- 5299(line=284, offs=14)
+*/
+ATSINSmove(tmpret142__1, tmp143__1) ;
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_vt.dats: 5297(line=284, offs=12) -- 5418(line=291, offs=2)
+*/
+/*
+INSletpop()
+*/
+ATSfunbody_end()
+ATSreturn(tmpret142__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__add_intinf1_int__81__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$174$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+/*
+imparg = a(4806)
+tmparg = S2Evar(a(4806))
+tmpsub = None()
+*/
+atstkind_type(atstype_ptrk)
+ATSLIB_056_prelude__ptr_alloc__174()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret408, 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(tmpret408, atspre_ptr_alloc_tsz(ATSPMVsizeof(atstyvar_type(a)))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret408) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__174] */
+#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$174$1(level=4)
+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__174__1()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret408__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(tmpret408__1, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret408__1) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__174__1] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1973(line=57, offs=3) -- 2035(line=58, offs=38)
+*/
+/*
+local: 
+global: intinf_make_int$27$1(level=2)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_t__intinf_make_int__27__1(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret43__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp44__1, atstkind_type(atstype_ptrk)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 1955(line=56, offs=1) -- 2035(line=58, offs=38)
+*/
+ATSINSflab(__patsflab_intinf_make_int):
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2012(line=58, offs=15) -- 2033(line=58, offs=36)
+*/
+ATSINSmove(tmp44__1, ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__59__1(arg0)) ;
+
+/*
+emit_instr: loc0 = /usr/local/lib/ats2-postiats-0.3.8/contrib/atscntrb-hx-intinf/DATS/intinf_t.dats: 2000(line=58, offs=3) -- 2035(line=58, offs=38)
+*/
+ATSINSmove(tmpret43__1, ATSPMVcastfn(intinf_vt2t, atstkind_type(atstype_ptrk), tmp44__1)) ;
+ATSfunbody_end()
+ATSreturn(tmpret43__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_t__intinf_make_int__27__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$59$1(level=3)
+local: 
+global: 
+*/
+ATSstatic()
+/*
+imparg = 
+tmparg = 
+tmpsub = Some()
+*/
+atstkind_type(atstype_ptrk)
+ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__59__1(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret95__1, atstkind_type(atstype_ptrk)) ;
+ATStmpdec(tmp96__1, atstkind_type(atstype_ptrk)) ;
+// ATStmpdec_void(tmp97__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(tmp96__1, ATSLIB_056_prelude__ptr_alloc__174__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(tmp97__1, atscntrb_gmp_mpz_init_set_int(ATSPMVrefarg1(ATSSELrecsin(tmp96__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(tmpret95__1, tmp96__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(tmpret95__1) ;
+} /* end of [ATSCNTRB_056_HX_056_intinf_vt__intinf_make_int__59__1] */
+
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 3717(line=184, offs=10) -- 3749(line=184, offs=42)
+*/
+/*
+local: 
+global: ptr_alloc$174$2(level=4)
+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__174__2()
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret408__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(tmpret408__2, atspre_ptr_alloc_tsz(ATSPMVsizeof(atscntrb_gmp_mpz))) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret408__2) ;
+} /* end of [ATSLIB_056_prelude__ptr_alloc__174__2] */
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory-ffi.dats: 482(line=26, offs=19) -- 502(line=27, offs=12)
+*/
+/*
+local: gcd_132$0(level=0)
+global: witness_12$0(level=0), gcd_132$0(level=0), gcd_ats$179$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+gcd_ats(atstkind_t0ype(atstype_int) arg0, atstkind_t0ype(atstype_int) arg1)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret422, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory-ffi.dats: 474(line=26, offs=11) -- 502(line=27, offs=12)
+*/
+ATSINSflab(__patsflab_gcd_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory-ffi.dats: 493(line=27, offs=3) -- 502(line=27, offs=12)
+*/
+ATSINSmove(tmpret422, gcd_132(arg0, arg1)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret422) ;
+} /* end of [gcd_ats] */
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory-ffi.dats: 533(line=29, offs=30) -- 557(line=30, offs=19)
+*/
+/*
+local: count_divisors_146$0(level=0)
+global: count_divisors_146$0(level=0), count_divisors_ats$180$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+count_divisors_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret423, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory-ffi.dats: 514(line=29, offs=11) -- 558(line=30, offs=20)
+*/
+ATSINSflab(__patsflab_count_divisors_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory-ffi.dats: 541(line=30, offs=3) -- 557(line=30, offs=19)
+*/
+ATSINSmove(tmpret423, count_divisors_146(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret423) ;
+} /* end of [count_divisors_ats] */
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory-ffi.dats: 582(line=32, offs=23) -- 599(line=33, offs=12)
+*/
+/*
+local: totient_161$0(level=0)
+global: witness_12$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), totient_161$0(level=0), totient_ats$181$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+totient_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret424, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory-ffi.dats: 570(line=32, offs=11) -- 600(line=33, offs=13)
+*/
+ATSINSflab(__patsflab_totient_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory-ffi.dats: 590(line=33, offs=3) -- 599(line=33, offs=12)
+*/
+ATSINSmove(tmpret424, totient_161(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret424) ;
+} /* end of [totient_ats] */
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory-ffi.dats: 629(line=35, offs=28) -- 651(line=36, offs=17)
+*/
+/*
+local: little_omega_157$0(level=0)
+global: witness_12$0(level=0), sqrt_int_13$0(level=0), is_prime_16$0(level=0), little_omega_157$0(level=0), little_omega_ats$182$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_int)
+little_omega_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret425, atstkind_t0ype(atstype_int)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory-ffi.dats: 612(line=35, offs=11) -- 652(line=36, offs=18)
+*/
+ATSINSflab(__patsflab_little_omega_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory-ffi.dats: 637(line=36, offs=3) -- 651(line=36, offs=17)
+*/
+ATSINSmove(tmpret425, little_omega_157(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret425) ;
+} /* end of [little_omega_ats] */
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory-ffi.dats: 679(line=38, offs=26) -- 699(line=39, offs=15)
+*/
+/*
+local: is_perfect_155$0(level=0)
+global: sum_divisors_151$0(level=0), is_perfect_155$0(level=0), is_perfect_ats$183$0(level=0)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_bool)
+is_perfect_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret426, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory-ffi.dats: 664(line=38, offs=11) -- 700(line=39, offs=16)
+*/
+ATSINSflab(__patsflab_is_perfect_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/number-theory-ffi.dats: 687(line=39, offs=3) -- 699(line=39, offs=15)
+*/
+ATSINSmove(tmpret426, is_perfect_155(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret426) ;
+} /* end of [is_perfect_ats] */
+
+/*
+** for initialization(dynloading)
+*/
+ATSdynloadflag_minit(_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_number_055_theory_055_ffi_056_dats__dynloadflag) ;
+ATSextern()
+atsvoid_t0ype
+_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_number_055_theory_055_ffi_056_dats__dynload()
+{
+ATSfunbody_beg()
+ATSdynload(/*void*/)
+ATSdynloadflag_sta(
+_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_number_055_theory_055_ffi_056_dats__dynloadflag
+) ;
+ATSif(
+ATSCKiseqz(
+_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_number_055_theory_055_ffi_056_dats__dynloadflag
+)
+) ATSthen() {
+ATSdynloadset(_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_number_055_theory_055_ffi_056_dats__dynloadflag) ;
+/*
+dynexnlst-initize(beg)
+*/
+/*
+dynexnlst-initize(end)
+*/
+/* local */
+/* in of [local] */
+/* local */
+/* in of [local] */
+/* end of [local] */
+/* local */
+/* in of [local] */
+/* end of [local] */
+/* end of [local] */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn_void(tmpret_void) ;
+} /* end of [*_dynload] */
+
+/* ****** ****** */
+
+/* end-of-compilation-unit */
diff --git a/cbits/numerics.c b/cbits/numerics.c
new file mode 100644
--- /dev/null
+++ b/cbits/numerics.c
@@ -0,0 +1,1408 @@
+/*
+**
+** The C code is generated by [ATS/Postiats-0-3-8]
+** The starting compilation time is: 2018-1-4:  0h:59m
+**
+*/
+
+/*
+** include runtime header files
+*/
+#ifndef _ATS_CCOMP_HEADER_NONE_
+#include "pats_ccomp_config.h"
+#include "pats_ccomp_basics.h"
+#include "pats_ccomp_typedefs.h"
+#include "pats_ccomp_instrset.h"
+#include "pats_ccomp_memalloc.h"
+#ifndef _ATS_CCOMP_EXCEPTION_NONE_
+#include "pats_ccomp_memalloca.h"
+#include "pats_ccomp_exception.h"
+#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
+#endif /* _ATS_CCOMP_HEADER_NONE_ */
+
+
+/*
+** include prelude cats files
+*/
+#ifndef _ATS_CCOMP_PRELUDE_NONE_
+//
+#include "prelude/CATS/basics.cats"
+#include "prelude/CATS/integer.cats"
+#include "prelude/CATS/pointer.cats"
+#include "prelude/CATS/integer_long.cats"
+#include "prelude/CATS/integer_size.cats"
+#include "prelude/CATS/integer_short.cats"
+#include "prelude/CATS/bool.cats"
+#include "prelude/CATS/char.cats"
+#include "prelude/CATS/float.cats"
+#include "prelude/CATS/integer_ptr.cats"
+#include "prelude/CATS/integer_fixed.cats"
+#include "prelude/CATS/memory.cats"
+#include "prelude/CATS/string.cats"
+#include "prelude/CATS/strptr.cats"
+//
+#include "prelude/CATS/fprintf.cats"
+//
+#include "prelude/CATS/filebas.cats"
+//
+#include "prelude/CATS/list.cats"
+#include "prelude/CATS/option.cats"
+#include "prelude/CATS/array.cats"
+#include "prelude/CATS/arrayptr.cats"
+#include "prelude/CATS/arrayref.cats"
+#include "prelude/CATS/matrix.cats"
+#include "prelude/CATS/matrixptr.cats"
+//
+#endif /* _ATS_CCOMP_PRELUDE_NONE_ */
+/*
+** for user-supplied prelude
+*/
+#ifdef _ATS_CCOMP_PRELUDE_USER_
+//
+#include _ATS_CCOMP_PRELUDE_USER_
+//
+#endif /* _ATS_CCOMP_PRELUDE_USER_ */
+/*
+** for user2-supplied prelude
+*/
+#ifdef _ATS_CCOMP_PRELUDE_USER2_
+//
+#include _ATS_CCOMP_PRELUDE_USER2_
+//
+#endif /* _ATS_CCOMP_PRELUDE_USER2_ */
+
+/*
+staload-prologues(beg)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/basics.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/pointer.dats: 1533(line=44, offs=1) -- 1572(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_long.dats: 1602(line=49, offs=1) -- 1641(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_size.dats: 1597(line=49, offs=1) -- 1636(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_short.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/char.dats: 1610(line=48, offs=1) -- 1649(line=48, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/float.dats: 1636(line=50, offs=1) -- 1675(line=50, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/string.dats: 1631(line=50, offs=1) -- 1670(line=50, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1629(line=50, offs=1) -- 1668(line=50, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/strptr.dats: 1691(line=54, offs=1) -- 1738(line=54, offs=48)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_ptr.dats: 1601(line=49, offs=1) -- 1640(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer_fixed.dats: 1603(line=49, offs=1) -- 1642(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/memory.dats: 1410(line=38, offs=1) -- 1449(line=39, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1613(line=49, offs=1) -- 1652(line=50, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1675(line=54, offs=1) -- 1721(line=55, offs=39)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/integer.dats: 1596(line=49, offs=1) -- 1635(line=49, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1744(line=59, offs=1) -- 1789(line=60, offs=38)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/stdio.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 1871(line=66, offs=1) -- 1918(line=66, offs=48)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1390(line=36, offs=1) -- 1440(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/stat.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/stat.sats: 1756(line=58, offs=1) -- 1805(line=60, offs=34)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/filebas.dats: 15552(line=879, offs=1) -- 15589(line=880, offs=30)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1390(line=36, offs=1) -- 1437(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/stdio.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/stdio.sats: 1950(line=69, offs=1) -- 1999(line=71, offs=34)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/sys/types.sats: 1390(line=36, offs=1) -- 1441(line=39, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/sys/types.cats"
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1529(line=44, offs=1) -- 1568(line=45, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list.dats: 1569(line=46, offs=1) -- 1615(line=47, offs=39)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1538(line=44, offs=1) -- 1577(line=45, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/list_vt.dats: 1578(line=46, offs=1) -- 1624(line=47, offs=39)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_mergesort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/list_vt_quicksort.dats: 1546(line=44, offs=1) -- 1585(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1534(line=44, offs=1) -- 1573(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/array.dats: 1574(line=45, offs=1) -- 1616(line=45, offs=43)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_bsearch.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/SHARE/array_quicksort.dats: 1531(line=44, offs=1) -- 1570(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayptr.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/arrayref.dats: 1532(line=44, offs=1) -- 1571(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrix.dats: 1535(line=44, offs=1) -- 1574(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixptr.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/matrixref.dats: 1538(line=44, offs=1) -- 1577(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/stream_vt.dats: 1523(line=44, offs=1) -- 1562(line=44, offs=40)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/tostring.dats: 1528(line=44, offs=1) -- 1567(line=45, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/unsafe.dats: 1532(line=44, offs=1) -- 1566(line=44, offs=35)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/prelude/DATS/checkast.dats: 1531(line=44, offs=1) -- 1570(line=45, offs=32)
+*/
+/*
+/usr/local/lib/ats2-postiats-0.3.8/libats/libc/SATS/math.sats: 1380(line=35, offs=1) -- 1426(line=38, offs=3)
+*/
+
+#include \
+"libats/libc/CATS/math.cats"
+/*
+staload-prologues(end)
+*/
+/*
+typedefs-for-tyrecs-and-tysums(beg)
+*/
+/*
+typedefs-for-tyrecs-and-tysums(end)
+*/
+/*
+dynconlst-declaration(beg)
+*/
+/*
+dynconlst-declaration(end)
+*/
+/*
+dyncstlst-declaration(beg)
+*/
+ATSdyncst_mac(atspre_g1int2int_int_int)
+ATSdyncst_mac(atspre_g1int_gt_int)
+ATSdyncst_mac(atspre_g1int_half_int)
+ATSdyncst_mac(atspre_g0int_mod_int)
+ATSdyncst_mac(atspre_g0int2int_int_int)
+ATSdyncst_mac(atspre_g0int_eq_int)
+ATSdyncst_mac(atspre_g0int_mul_int)
+ATSdyncst_mac(atspre_g0float2int_float_int)
+ATSdyncst_mac(atslib_libats_libc_sqrt_float)
+ATSdyncst_mac(atspre_g0int2float_int_float)
+ATSdyncst_mac(atspre_g1int_lt_int)
+ATSdyncst_mac(atspre_g1int_add_int)
+ATSdyncst_mac(atspre_g1int_eq_int)
+/*
+dyncstlst-declaration(end)
+*/
+/*
+dynvalist-implementation(beg)
+*/
+/*
+dynvalist-implementation(end)
+*/
+/*
+exnconlst-declaration(beg)
+*/
+#ifndef _ATS_CCOMP_EXCEPTION_NONE_
+ATSextern()
+atsvoid_t0ype
+the_atsexncon_initize
+(
+  atstype_exnconptr d2c, atstype_string exnmsg
+) ;
+#endif // end of [_ATS_CCOMP_EXCEPTION_NONE_]
+/*
+exnconlst-declaration(end)
+*/
+/*
+extypelst-declaration(beg)
+*/
+/*
+extypelst-declaration(end)
+*/
+/*
+assumelst-declaration(beg)
+*/
+#ifndef _ATS_CCOMP_ASSUME_CHECK_NONE_
+#endif // #ifndef(_ATS_CCOMP_ASSUME_CHECK_NONE_)
+/*
+assumelst-declaration(end)
+*/
+ATSstatic()
+atstkind_t0ype(atstype_int)
+exp_0(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__1(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__gt_g1int_int__1__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+#if(0)
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__7(atstkind_t0ype(atstyvar_type(tk)), atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+#endif // end of [TEMPLATE]
+
+ATSstatic()
+atstkind_t0ype(atstype_bool)
+ATSLIB_056_prelude__eq_g0int_int__7__1(atstkind_t0ype(atstype_int), atstkind_t0ype(atstype_int)) ;
+
+ATSstatic()
+atstkind_t0ype(atstype_int)
+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)) ;
+
+#if(0)
+ATSextern()
+atstkind_t0ype(atstype_bool)
+is_prime_ats(atstkind_t0ype(atstype_int)) ;
+#endif // end of [QUALIFIED]
+
+/*
+/home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 291(line=11, offs=7) -- 292(line=11, offs=8)
+*/
+ATSINSlab(__atstmplab0):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 330(line=14, offs=9) -- 571(line=25, offs=12)
+*/
+ATSif(
+tmp1
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 354(line=15, offs=11) -- 546(line=23, offs=14)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 374(line=16, offs=17) -- 376(line=16, offs=19)
+*/
+/*
+ATSINStmpdec(tmpref6) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 403(line=17, offs=17) -- 405(line=17, offs=19)
+*/
+/*
+ATSINStmpdec(tmpref7) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 439(line=19, offs=13) -- 532(line=22, offs=33)
+*/
+ATSif(
+tmp8
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 354(line=15, offs=11) -- 546(line=23, offs=14)
+*/
+/*
+INSletpop()
+*/
+} ATSelse() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 696(line=32, offs=3) -- 790(line=36, offs=6)
+*/
+/*
+letpush(beg)
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics.dats: 708(line=33, offs=9) -- 713(line=33, offs=14)
+*/
+/*
+ATSINStmpdec(tmpref18) ;
+*/
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 879(line=41, offs=7) -- 880(line=41, offs=8)
+*/
+ATSINSlab(__atstmplab3):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 1031(line=46, offs=13) -- 1347(line=58, offs=21)
+*/
+ATSif(
+tmp23
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 1063(line=47, offs=15) -- 1156(line=50, offs=35)
+*/
+ATSif(
+tmp28
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 1188(line=52, offs=15) -- 1347(line=58, offs=21)
+*/
+ATSif(
+tmp33
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics.dats: 1222(line=53, offs=17) -- 1307(line=56, offs=23)
+*/
+ATSif(
+tmp38
+) ATSthen() {
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/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/current/fast-combinatorics/ats-src/numerics-ffi.dats: 338(line=18, offs=24) -- 356(line=19, 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)
+local: 
+global: 
+*/
+ATSextern()
+atstkind_t0ype(atstype_bool)
+is_prime_ats(atstkind_t0ype(atstype_int) arg0)
+{
+/* tmpvardeclst(beg) */
+ATStmpdec(tmpret43, atstkind_t0ype(atstype_bool)) ;
+/* tmpvardeclst(end) */
+ATSfunbody_beg()
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics-ffi.dats: 325(line=18, offs=11) -- 357(line=19, offs=14)
+*/
+ATSINSflab(__patsflab_is_prime_ats):
+/*
+emit_instr: loc0 = /home/vanessa/programming/haskell/current/fast-combinatorics/ats-src/numerics-ffi.dats: 346(line=19, offs=3) -- 356(line=19, offs=13)
+*/
+ATSINSmove(tmpret43, is_prime_16(arg0)) ;
+
+ATSfunbody_end()
+ATSreturn(tmpret43) ;
+} /* end of [is_prime_ats] */
+
+/*
+** for initialization(dynloading)
+*/
+ATSdynloadflag_minit(_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_numerics_055_ffi_056_dats__dynloadflag) ;
+ATSextern()
+atsvoid_t0ype
+_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_numerics_055_ffi_056_dats__dynload()
+{
+ATSfunbody_beg()
+ATSdynload(/*void*/)
+ATSdynloadflag_sta(
+_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_numerics_055_ffi_056_dats__dynloadflag
+) ;
+ATSif(
+ATSCKiseqz(
+_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_numerics_055_ffi_056_dats__dynloadflag
+)
+) ATSthen() {
+ATSdynloadset(_057_home_057_vanessa_057_programming_057_haskell_057_current_057_fast_055_combinatorics_057_ats_055_src_057_numerics_055_ffi_056_dats__dynloadflag) ;
+/*
+dynexnlst-initize(beg)
+*/
+/*
+dynexnlst-initize(end)
+*/
+/* local */
+/* in of [local] */
+/* end of [local] */
+} /* ATSendif */
+ATSfunbody_end()
+ATSreturn_void(tmpret_void) ;
+} /* end of [*_dynload] */
+
+/* ****** ****** */
+
+/* end-of-compilation-unit */
diff --git a/fast-arithmetic.cabal b/fast-arithmetic.cabal
new file mode 100644
--- /dev/null
+++ b/fast-arithmetic.cabal
@@ -0,0 +1,89 @@
+name:                fast-arithmetic
+version:             0.1.0.0
+synopsis:            Fast number-theoretic functions.
+description:         Fast number-theoretic code with a high level of safety guaranteed by ATS.
+homepage:            https://github.com/vmchale/fast-arithmetic#readme
+license:             BSD3
+license-file:        LICENSE
+author:              Vanessa McHale
+maintainer:          vamchale@gmail.com
+copyright:           Copyright: (c) 2017 Vanessa McHale
+category:            Numerics
+build-type:          Custom
+extra-source-files:  ats-deps/prelude/ATS2-Postiats-include-0.3.8/ccomp/runtime/pats_ccomp_config.h
+                   , ats-src/*.dats
+                   , cabal.project.local
+                   , shake.hs
+                   , ats-deps/contrib/atscntrb-libgmp/CATS/gmp.cats
+extra-doc-files:     README.md
+cabal-version:       >= 1.18
+
+Flag development {
+  Description: Enable `-Werror`
+  manual: True
+  default: False
+}
+
+custom-setup
+  -- ghc-options:     -threaded -rtsopts -with-rtsopts=-N
+  setup-depends:   base
+                 , Cabal >= 2.0
+                 , http-client
+                 , http-client-tls
+                 , tar
+                 , zlib
+                 , directory
+                 , parallel-io
+
+library
+  c-sources:           cbits/numerics.c
+                     , cbits/number-theory.c
+  include-dirs:        ats-deps/
+                     , ats-deps/contrib
+                     , ats-deps/prelude/ATS2-Postiats-include-0.3.8
+                     , ats-deps/prelude/ATS2-Postiats-include-0.3.8/ccomp/runtime
+  hs-source-dirs:      src
+  exposed-modules:     Numeric.Pure
+                     , Numeric.Integer
+                     , Numeric.NumberTheory
+  other-modules:       Numeric.Common
+  build-depends:       base >= 4.7 && < 5
+  default-language:    Haskell2010
+  if flag(development)
+    if impl(ghc >= 8.0)
+      ghc-options:       -Werror
+  if impl(ghc >= 8.0)
+    ghc-options:       -Wincomplete-uni-patterns -Wincomplete-record-updates -Wcompat
+  ghc-options:         -Wall -optc-mtune=native -optc-flto -optc-O3
+
+test-suite fast-arithmetic-test
+  type:                exitcode-stdio-1.0
+  hs-source-dirs:      test
+  main-is:             Spec.hs
+  build-depends:       base
+                     , fast-arithmetic
+                     , hspec
+  if flag(development)
+    ghc-options: -Werror
+  if impl(ghc >= 8.0)
+    ghc-options:       -Wincomplete-uni-patterns -Wincomplete-record-updates -Wcompat 
+  ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wall
+  default-language:    Haskell2010
+
+benchmark fast-arithmetic-bench
+  type:                exitcode-stdio-1.0
+  hs-source-dirs:      bench
+  main-is:             Bench.hs
+  build-depends:       base
+                     , fast-arithmetic
+                     , criterion
+  if flag(development)
+    ghc-options: -Werror
+  if impl(ghc >= 8.0)
+    ghc-options:       -Wincomplete-uni-patterns -Wincomplete-record-updates -Wcompat
+  ghc-options:         -Wall
+  default-language:    Haskell2010
+
+source-repository head
+  type:     git
+  location: https://github.com/vmchale/fast-arithmetic
diff --git a/shake.hs b/shake.hs
new file mode 100644
--- /dev/null
+++ b/shake.hs
@@ -0,0 +1,68 @@
+#!/usr/bin/env stack
+-- stack runghc --resolver lts-10.2 --package shake --package split --install-ghc
+
+import           Data.List                  (intercalate)
+import           Data.List.Split            (splitOn)
+import           Data.Maybe                 (fromMaybe)
+import           Data.Monoid
+import           Development.Shake
+import           Development.Shake.FilePath
+import           System.Exit                (ExitCode (..))
+import           System.FilePath.Posix
+
+replace :: Eq a => [a] -> [a] -> [a] -> [a]
+replace old new = intercalate new . splitOn old
+
+main :: IO ()
+main = shakeArgs shakeOptions { shakeFiles = ".shake"
+                              , shakeProgress = progressSimple
+                              , shakeThreads = 4
+                              } $ do
+
+    want [ "cbits/numerics.c"
+         , "cbits/number-theory.c"
+         , "cbits/combinatorics.c"
+         ]
+
+    "ci" ~> do
+        need ["cbits/number-theory.c", "cbits/numerics.c"]
+        cmd_ ["cabal", "new-build"]
+        cmd_ ["cabal", "new-test"]
+        cmd_ ["cabal", "new-haddock"]
+        cmd_ ["hlint", "bench", "src", "test/", "Setup.hs"]
+        cmd_ ["tomlcheck", "--file", ".atsfmt.toml"]
+        cmd_ ["yamllint", ".travis.yml"]
+        cmd_ ["yamllint", ".hlint.yaml"]
+        cmd_ ["yamllint", ".stylish-haskell.yaml"]
+        cmd_ ["yamllint", ".yamllint"]
+        cmd_ ["stack", "build", "--test", "--bench", "--no-run-tests", "--no-run-benchmarks"]
+        cmd_ ["weeder"]
+
+    "build" %> \_ -> do
+        need ["shake.hs"]
+        cmd_ ["cp", "shake.hs", ".shake/shake.hs"]
+        command_ [Cwd ".shake"] "ghc-8.2.2" ["-O", "shake.hs", "-o", "build", "-threaded", "-rtsopts", "-with-rtsopts=-I0 -qg -qb"]
+        cmd ["cp", "-f", ".shake/build", "."]
+
+    "//*.c" %> \out -> do
+        let patshome = "/usr/local/lib/ats2-postiats-0.3.8"
+        let preSource = dropDirectory1 out
+        let sourcePlain = preSource -<.> "dats"
+        let sourceFile = replace ".dats" "-ffi.dats" sourcePlain
+        need (("ats-src/" ++) <$> [sourceFile, sourcePlain])
+        (Exit c, Stderr err) <- command [EchoStderr False, AddEnv "PATSHOME" patshome] "patsopt" ["--output", out, "-dd", "ats-src/" ++ sourceFile, "-cc"]
+        cmd_ [Stdin err] Shell "pats-filter"
+        if c /= ExitSuccess
+            then error "patscc failure"
+            else pure ()
+
+    "poly" ~> do
+        cmd_ ["sn", "c"]
+        removeFilesAfter "." ["//*.c", "tags"]
+        cmd ["poly", "src", "Setup.hs", "test", "bench", "shake.hs", "ats-src/"]
+
+    "clean" ~> do
+        cmd_ ["sn", "c"]
+        removeFilesAfter "." ["//*.c", "//tags"]
+        removeFilesAfter ".shake" ["//*"]
+        removeFilesAfter "ats-deps" ["//*"]
diff --git a/src/Numeric/Common.hs b/src/Numeric/Common.hs
new file mode 100644
--- /dev/null
+++ b/src/Numeric/Common.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE CPP #-}
+
+module Numeric.Common ( convertBool
+                      , conjugate
+                      ) where
+
+import           Data.Word
+import           Foreign.C
+
+conjugate :: (CInt -> CInt) -> Int -> Int
+conjugate f = fromIntegral . f . fromIntegral
+
+#if __GLASGOW_HASKELL__ >= 820
+convertBool :: CBool -> Bool
+#else
+convertBool :: CUChar -> Bool
+#endif
+convertBool = go . fromIntegral
+    where
+        go :: Word8 -> Bool
+        go 0 = False
+        go 1 = True
+        go _ = False
diff --git a/src/Numeric/Integer.hs b/src/Numeric/Integer.hs
new file mode 100644
--- /dev/null
+++ b/src/Numeric/Integer.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE CPP #-}
+
+{-|
+Module      : Numeric.Combinatorics
+Description : Fast computation of common functions on integers.
+Copyright   : Copyright (c) 2017 Vanessa McHale
+
+-}
+
+module Numeric.Integer ( isPrime
+                       ) where
+
+import           Foreign.C
+import           Numeric.Common
+
+#if __GLASGOW_HASKELL__ >= 820
+foreign import ccall unsafe is_prime_ats :: CInt -> CBool
+#else
+foreign import ccall unsafe is_prime_ats :: CInt -> CUChar
+#endif
+
+-- | O(√n)
+isPrime :: Int -> Bool
+isPrime = convertBool . is_prime_ats . fromIntegral
diff --git a/src/Numeric/NumberTheory.hs b/src/Numeric/NumberTheory.hs
new file mode 100644
--- /dev/null
+++ b/src/Numeric/NumberTheory.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE CPP #-}
+
+{-|
+Module      : Numeric.NumberTheory
+Description : Fast computation of number theoretic functions
+Copyright   : Copyright (c) 2017 Vanessa McHale
+
+-}
+
+module Numeric.NumberTheory ( totient
+                            , tau
+                            , littleOmega
+                            , isPerfect
+                            ) where
+
+import           Foreign.C
+import           Numeric.Common
+
+foreign import ccall unsafe totient_ats :: CInt -> CInt
+foreign import ccall unsafe count_divisors_ats :: CInt -> CInt
+foreign import ccall unsafe little_omega_ats :: CInt -> CInt
+#if __GLASGOW_HASKELL__ >= 820
+foreign import ccall unsafe is_perfect_ats :: CInt -> CBool
+#else
+foreign import ccall unsafe is_perfect_ats :: CInt -> CUChar
+#endif
+
+isPerfect :: Int -> Bool
+isPerfect = convertBool . is_perfect_ats . fromIntegral
+
+-- TODO mathworld link
+littleOmega :: Int -> Int
+littleOmega = conjugate little_omega_ats
+
+-- | Number of distinct prime divisors.
+tau :: Int -> Int
+tau = conjugate count_divisors_ats
+
+-- | Euler totient function.
+totient :: Int -> Int
+totient = conjugate totient_ats
diff --git a/src/Numeric/Pure.hs b/src/Numeric/Pure.hs
new file mode 100644
--- /dev/null
+++ b/src/Numeric/Pure.hs
@@ -0,0 +1,70 @@
+{-# LANGUAGE CPP #-}
+-- | Pure Haskell functions for testing and benchmarking. Specialized for
+-- 'Int's.
+module Numeric.Pure ( hsIsPrime
+                    , hsFactorial
+                    , hsDoubleFactorial
+                    , hsChoose
+                    , hsTotient
+                    , hsTau
+                    , hsTotientSum
+                    , hsLittleOmega
+                    , hsIsPerfect
+                    ) where
+
+#if __GLASGOW_HASKELL__ <= 784
+import           Control.Applicative
+#endif
+
+{-# SPECIALIZE hsLittleOmega :: Int -> Int #-}
+{-# SPECIALIZE hsFactorial :: Int -> Int #-}
+{-# SPECIALIZE hsTau :: Int -> Int #-}
+{-# SPECIALIZE hsTotient :: Int -> Int #-}
+{-# SPECIALIZE hsIsPrime :: Int -> Bool #-}
+{-# SPECIALIZE hsChoose :: Int -> Int -> Int #-}
+{-# SPECIALIZE hsIsPerfect :: Int -> Bool #-}
+{-# SPECIALIZE hsDoubleFactorial :: Int -> Int #-}
+
+-- | N.B. positive integers only
+divisors :: (Integral a) => a -> [a]
+divisors n = filter ((== 0) . (n `mod`)) [1..n]
+
+hsLittleOmega :: (Integral a) => a -> Int
+hsLittleOmega = length . filter hsIsPrime . divisors
+
+hsTau :: (Integral a) => a -> Int
+hsTau = length . divisors
+
+-- N.B. sum of proper divisors
+hsSumDivisors :: (Integral a) => a -> a
+hsSumDivisors = sum . init . divisors
+
+hsIsPerfect :: (Integral a) => a -> Bool
+hsIsPerfect = idem hsSumDivisors where idem = ((==) <*>)
+
+hsTotientSum :: (Integral a) => a -> a
+hsTotientSum k = sum [ hsTotient n | n <- [1..k] ]
+
+hsTotient :: (Integral a) => a -> a
+hsTotient n = (n * product [ p - 1 | p <- ps ]) `div` product ps
+    where ps = filter (\k -> hsIsPrime k && n `mod` k == 0) [2..n]
+
+hsIsPrime :: (Integral a) => a -> Bool
+hsIsPrime 1 = False
+hsIsPrime x = all ((/=0) . (x `mod`)) [2..m]
+    where m = floor (sqrt (fromIntegral x :: Float))
+
+hsFactorial :: (Integral a) => a -> a
+hsFactorial n = product [1..n]
+
+hsDoubleFactorial :: (Integral a) => a -> a
+hsDoubleFactorial 0 = 1
+hsDoubleFactorial 1 = 1
+hsDoubleFactorial 2 = 2
+hsDoubleFactorial n
+    | even n = product [2, 4 .. n]
+    | odd n = product [1, 3 .. n]
+    | otherwise = 1
+
+hsChoose :: (Integral a) => a -> a -> a
+hsChoose n k = product [ n + 1 - i | i <- [1..k] ] `div` hsFactorial k
diff --git a/test/Spec.hs b/test/Spec.hs
new file mode 100644
--- /dev/null
+++ b/test/Spec.hs
@@ -0,0 +1,35 @@
+import           Numeric.Integer
+import           Numeric.NumberTheory
+import           Numeric.Pure
+import           Test.Hspec
+import           Test.Hspec.QuickCheck
+
+tooBig :: Int -> Int -> Bool
+tooBig x y = go x y >= 2 ^ (16 :: Integer)
+    where
+        go :: Int -> Int -> Integer
+        go m n = fromIntegral m ^ (fromIntegral n :: Integer)
+
+main :: IO ()
+main = hspec $ parallel $ do
+    describe "isPrime" $
+        prop "should agree with the pure Haskell function" $
+            \x -> x < 1 || isPrime x == hsIsPrime x
+    describe "totient" $
+        prop "should agree with the pure Haskell function" $
+            \m -> m < 1 || totient m == hsTotient m
+    describe "totient" $
+        prop "should be equal to m-1 for m prime" $
+            \m -> m < 1 || not (isPrime m) || totient m == m - 1
+    describe "totient" $
+        prop "should satisfy Fermat's little theorem" $
+            \a m -> a < 1 || m < 2 || gcd a m /= 1 || tooBig a m || (a ^ totient m) `mod` m == 1
+    describe "tau" $
+        prop "should agree with the pure Haskell function" $
+            \n -> n < 1 || tau n == hsTau n
+    describe "littleOmega" $
+        prop "should agree with the pure Haskell function" $
+            \n -> n < 1 || littleOmega n == hsLittleOmega n
+    describe "isPerfect" $
+        prop "should agree with the pure Haskell function" $
+            \n -> n < 1 || isPerfect n == hsIsPerfect n
